From 5387a3f55fedbab8c99677c4021061fbaabec3ff Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Tue, 17 Sep 2019 07:59:38 +0000 Subject: [PATCH] [Ada] Refine change for bit-packed slices We use Long_Long_Integer'Size / 2 instead of 4 * 8 to support specifying a target configuration file where the largest integer is 32 bits instead of 64. 2019-09-17 Arnaud Charlet gcc/ada/ * libgnat/s-bitfie.ads (Val_Bits, Val_Bytes): Define from Long_Long_Integer'Size. From-SVN: r275773 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/libgnat/s-bitfie.ads | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index c44a16de2ab..9193e6f1750 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2019-09-17 Arnaud Charlet + + * libgnat/s-bitfie.ads (Val_Bits, Val_Bytes): Define from + Long_Long_Integer'Size. + 2019-09-17 Javier Miranda * exp_ch6.ads (Needs_BIP_Task_Actuals): New subprogram. diff --git a/gcc/ada/libgnat/s-bitfie.ads b/gcc/ada/libgnat/s-bitfie.ads index 1b62b9d1077..a90605b89de 100644 --- a/gcc/ada/libgnat/s-bitfie.ads +++ b/gcc/ada/libgnat/s-bitfie.ads @@ -36,9 +36,13 @@ package System.Bitfields is -- Instances of the generic package in System.Bitfield_Utils. So far -- we have just one, which defaults to the natural endianness of the -- machine. We might someday want to support Scalar_Storage_Order. + -- Note: we use Long_Long_Integer'Size / 2 instead of 32 to support + -- specifying a target configuration file where the largest integer is + -- 32 bits instead of 64. + + Val_Bits : constant := Long_Long_Integer'Size / 2; + Val_Bytes : constant := Val_Bits / System.Storage_Unit; - Val_Bytes : constant := 4; - Val_Bits : constant := Val_Bytes * System.Storage_Unit; type Val_2 is mod 2**(Val_Bits * 2) with Alignment => Val_Bytes; pragma Provide_Shift_Operators (Val_2); type Val is mod 2**Val_Bits with Alignment => Val_Bytes; -- 2.30.2