diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2024-04-08 18:57:49 -0700 |
---|---|---|
committer | H.J. Lu <(no_default)> | 2024-04-08 19:42:36 -0700 |
commit | 18e94e04dae724c61cbc13ace85fa68f2deda900 (patch) | |
tree | 2c1138f6f5aa74245a96fbd6e01e6c7b9a1e605b | |
parent | 9c97de682303b81c8886ac131fcfb3b122f2f1a6 (diff) | |
download | gcc-18e94e04dae724c61cbc13ace85fa68f2deda900.zip gcc-18e94e04dae724c61cbc13ace85fa68f2deda900.tar.gz gcc-18e94e04dae724c61cbc13ace85fa68f2deda900.tar.bz2 |
x86: Define __APX_INLINE_ASM_USE_GPR32__
Define __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
When __APX_INLINE_ASM_USE_GPR32__ is defined, inline asm statements
should contain only instructions compatible with r16-r31.
gcc/
PR target/114587
* config/i386/i386-c.cc (ix86_target_macros_internal): Define
__APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
gcc/testsuite/
PR target/114587
* gcc.target/i386/apx-3.c: Likewise.
-rw-r--r-- | gcc/config/i386/i386-c.cc | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/apx-3.c | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/i386/i386-c.cc b/gcc/config/i386/i386-c.cc index 226d277..07f4936 100644 --- a/gcc/config/i386/i386-c.cc +++ b/gcc/config/i386/i386-c.cc @@ -751,6 +751,8 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, def_or_undef (parse_in, "__AVX10_1_512__"); if (isa_flag2 & OPTION_MASK_ISA2_APX_F) def_or_undef (parse_in, "__APX_F__"); + if (ix86_apx_inline_asm_use_gpr32) + def_or_undef (parse_in, "__APX_INLINE_ASM_USE_GPR32__"); if (TARGET_IAMCU) { def_or_undef (parse_in, "__iamcu"); diff --git a/gcc/testsuite/gcc.target/i386/apx-3.c b/gcc/testsuite/gcc.target/i386/apx-3.c new file mode 100644 index 0000000..1ba4ac0 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/apx-3.c @@ -0,0 +1,6 @@ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-mapx-inline-asm-use-gpr32" } */ + +#ifndef __APX_INLINE_ASM_USE_GPR32__ +# error __APX_INLINE_ASM_USE_GPR32__ not defined +#endif |