diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-10-03 19:46:59 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2024-10-03 20:02:27 +0200 |
commit | 547219f41f049083cda55929ae1c900195993504 (patch) | |
tree | b1857874f64ce355288ce426ac9678f5769e20bd | |
parent | fe33530e6241712c42feeb2a649c1e8b2f2cb406 (diff) | |
download | gcc-547219f41f049083cda55929ae1c900195993504.zip gcc-547219f41f049083cda55929ae1c900195993504.tar.gz gcc-547219f41f049083cda55929ae1c900195993504.tar.bz2 |
Aarch64: Define WIDEST_HARDWARE_FP_SIZE
The macro is documented like this in the internal manual:
-- Macro: WIDEST_HARDWARE_FP_SIZE
A C expression for the size in bits of the widest floating-point
format supported by the hardware. If you define this macro, you
must specify a value less than or equal to mode precision of the
mode used for C type 'long double' (from hook
'targetm.c.mode_for_floating_type' with argument
'TI_LONG_DOUBLE_TYPE'). If you do not define this macro, mode
precision of the mode used for C type 'long double' is the default.
AArch64 uses 128-bit TFmode for long double but, as far as I know, no FPU
implemented in hardware supports it.
gcc/
* config/aarch64/aarch64.h (WIDEST_HARDWARE_FP_SIZE): Define to 64.
gcc/testsuite/
* gnat.dg/specs/size_clause6.ads: New test.
-rw-r--r-- | gcc/config/aarch64/aarch64.h | 2 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/size_clause6.ads | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index ec8fde7..030cffb 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -96,6 +96,8 @@ #define LONG_LONG_TYPE_SIZE 64 +#define WIDEST_HARDWARE_FP_SIZE 64 + /* This value is the amount of bytes a caller is allowed to drop the stack before probing has to be done for stack clash protection. */ #define STACK_CLASH_CALLER_GUARD 1024 diff --git a/gcc/testsuite/gnat.dg/specs/size_clause6.ads b/gcc/testsuite/gnat.dg/specs/size_clause6.ads new file mode 100644 index 0000000..6015bcd --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/size_clause6.ads @@ -0,0 +1,12 @@ +-- { dg-do compile } + +with Interfaces; + +package Size_Clause6 is + + type Long_Double is new Interfaces.IEEE_Extended_Float; + for Long_Double'Size use 128; -- { dg-warning "unused" "" { target { ! { { i?86-*-* x86_64-*-* } && lp64 } } } } + + function Int (X : in Long_Double) return Integer is (0); + +end Size_Clause6; |