s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.

2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
	(Compare_Array_S16): Adjust for above change.
	* s-casi32.adb (Uword): Likewise.
	(Compare_Array_S32): Likewise.
	* s-casi64.adb (Uword): Likewise.
	(Compare_Array_S64): Likewise.
	* s-caun16.adb (Uhalf): Likewise.
	(Compare_Array_U16): Likewise.
	* s-caun32.adb (Uword): Likewise.
	(Compare_Array_U32): Likewise.
	* s-caun64.adb (Uword): Likewise.
	(Compare_Array_U64): Likewise.

From-SVN: r135942
This commit is contained in:
Eric Botcazou 2008-05-26 17:51:15 +02:00 committed by Arnaud Charlet
parent 1ce1f00536
commit 6054bf2a35
6 changed files with 24 additions and 42 deletions

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- Copyright (C) 2002-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -44,10 +44,7 @@ package body System.Compare_Array_Signed_16 is
for Half'Size use 16;
-- Used to process operands by half words
type Uhalf is record
H : Half;
end record;
pragma Pack (Uhalf);
type Uhalf is new Half;
for Uhalf'Alignment use 1;
-- Used to process operands when unaligned
@ -110,8 +107,8 @@ package body System.Compare_Array_Signed_16 is
else
while Clen /= 0 loop
if U (L).H /= U (R).H then
if U (L).H > U (R).H then
if U (L).all /= U (R).all then
if U (L).all > U (R).all then
return +1;
else
return -1;

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- Copyright (C) 2002-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -41,10 +41,7 @@ package body System.Compare_Array_Signed_32 is
for Word'Size use 32;
-- Used to process operands by words
type Uword is record
W : Word;
end record;
pragma Pack (Uword);
type Uword is new Word;
for Uword'Alignment use 1;
-- Used to process operands when unaligned
@ -93,8 +90,8 @@ package body System.Compare_Array_Signed_32 is
else
while Clen /= 0 loop
if U (L).W /= U (R).W then
if U (L).W > U (R).W then
if U (L).all /= U (R).all then
if U (L).all > U (R).all then
return +1;
else
return -1;

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- Copyright (C) 2002-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -41,10 +41,7 @@ package body System.Compare_Array_Signed_64 is
for Word'Size use 64;
-- Used to process operands by words
type Uword is record
W : Word;
end record;
pragma Pack (Uword);
type Uword is new Word;
for Uword'Alignment use 1;
-- Used to process operands when unaligned
@ -93,8 +90,8 @@ package body System.Compare_Array_Signed_64 is
else
while Clen /= 0 loop
if U (L).W /= U (R).W then
if U (L).W > U (R).W then
if U (L).all /= U (R).all then
if U (L).all > U (R).all then
return +1;
else
return -1;

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- Copyright (C) 2002-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -44,10 +44,7 @@ package body System.Compare_Array_Unsigned_16 is
for Half'Size use 16;
-- Used to process operands by half words
type Uhalf is record
H : Half;
end record;
pragma Pack (Uhalf);
type Uhalf is new Half;
for Uhalf'Alignment use 1;
-- Used to process operands when unaligned
@ -110,8 +107,8 @@ package body System.Compare_Array_Unsigned_16 is
else
while Clen /= 0 loop
if U (L).H /= U (R).H then
if U (L).H > U (R).H then
if U (L).all /= U (R).all then
if U (L).all > U (R).all then
return +1;
else
return -1;

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- Copyright (C) 2002-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -41,10 +41,7 @@ package body System.Compare_Array_Unsigned_32 is
for Word'Size use 32;
-- Used to process operands by words
type Uword is record
W : Word;
end record;
pragma Pack (Uword);
type Uword is new Word;
for Uword'Alignment use 1;
-- Used to process operands when unaligned
@ -93,8 +90,8 @@ package body System.Compare_Array_Unsigned_32 is
else
while Clen /= 0 loop
if U (L).W /= U (R).W then
if U (L).W > U (R).W then
if U (L).all /= U (R).all then
if U (L).all > U (R).all then
return +1;
else
return -1;

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- Copyright (C) 2002-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -40,10 +40,7 @@ package body System.Compare_Array_Unsigned_64 is
type Word is mod 2 ** 64;
-- Used to process operands by words
type Uword is record
W : Word;
end record;
pragma Pack (Uword);
type Uword is new Word;
for Uword'Alignment use 1;
-- Used to process operands when unaligned
@ -92,8 +89,8 @@ package body System.Compare_Array_Unsigned_64 is
else
while Clen /= 0 loop
if U (L).W /= U (R).W then
if U (L).W > U (R).W then
if U (L).all /= U (R).all then
if U (L).all > U (R).all then
return +1;
else
return -1;