aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/s-casi64.adb
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2024-06-12 16:05:57 +0200
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-06-27 10:19:13 +0200
commit5c8b7fcc04b1ec412e11ae3d77f704c19a63ab07 (patch)
treedd243d82fbe641f09564c4438f15321f0d8a1a57 /gcc/ada/libgnat/s-casi64.adb
parentfdbc04d13f0e993ecf1a36680c8f7768dfb522fb (diff)
downloadgcc-5c8b7fcc04b1ec412e11ae3d77f704c19a63ab07.zip
gcc-5c8b7fcc04b1ec412e11ae3d77f704c19a63ab07.tar.gz
gcc-5c8b7fcc04b1ec412e11ae3d77f704c19a63ab07.tar.bz2
ada: Remove last uses of System.Address_Operations in runtime library
This completes the switch from using System.Address_Operations to using only System.Storage_Elements in the runtime library. The remaining uses were for simple optimizations that can be done by the optimizer alone. gcc/ada/ * libgnat/s-carsi8.adb: Remove clauses for System.Address_Operations and use only operations of System.Storage_Elements for addresses. * libgnat/s-casi16.adb: Likewise. * libgnat/s-casi32.adb: Likewise. * libgnat/s-casi64.adb: Likewise. * libgnat/s-casi128.adb: Likewise. * libgnat/s-carun8.adb: Likewise. * libgnat/s-caun16.adb: Likewise. * libgnat/s-caun32.adb: Likewise. * libgnat/s-caun64.adb: Likewise. * libgnat/s-caun128.adb: Likewise. * libgnat/s-geveop.adb: Likewise.
Diffstat (limited to 'gcc/ada/libgnat/s-casi64.adb')
-rw-r--r--gcc/ada/libgnat/s-casi64.adb7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/ada/libgnat/s-casi64.adb b/gcc/ada/libgnat/s-casi64.adb
index bcadea1..0625d1f5 100644
--- a/gcc/ada/libgnat/s-casi64.adb
+++ b/gcc/ada/libgnat/s-casi64.adb
@@ -29,8 +29,7 @@
-- --
------------------------------------------------------------------------------
-with System.Address_Operations; use System.Address_Operations;
-with System.Storage_Elements; use System.Storage_Elements;
+with System.Storage_Elements; use System.Storage_Elements;
with Ada.Unchecked_Conversion;
@@ -73,7 +72,9 @@ package body System.Compare_Array_Signed_64 is
begin
-- Case of going by aligned double words
- if ModA (OrA (Left, Right), 8) = 0 then
+ if Left mod Storage_Offset (8) = 0
+ and then Right mod Storage_Offset (8) = 0
+ then
while Clen /= 0 loop
if W (L).all /= W (R).all then
if W (L).all > W (R).all then