From: Yury Khrustalev Date: Thu, 21 Nov 2024 15:43:39 +0000 (+0000) Subject: aarch64: add ACLE macro _CHKFEAT_GCS X-Git-Tag: basepoints/gcc-16~3778 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5a6af707f0af0abeafae8459d2f8817716377b4b;p=thirdparty%2Fgcc.git aarch64: add ACLE macro _CHKFEAT_GCS gcc/ChangeLog: * config/aarch64/arm_acle.h (_CHKFEAT_GCS): New. libgcc/ChangeLog: * config/aarch64/aarch64-unwind.h (_Unwind_Frames_Extra): Update. (_Unwind_Frames_Increment): Update Reviewed-by: Richard Sandiford --- diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 7fe61c736ed8..7351d1de70b1 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -194,6 +194,9 @@ __rint64x (double __a) #pragma GCC push_options #pragma GCC target ("+nothing") +/* Feature constants for CHKFEAT operation. */ +#define _CHKFEAT_GCS 1 + __extension__ extern __inline uint64_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __chkfeat (uint64_t __feat) diff --git a/libgcc/config/aarch64/aarch64-unwind.h b/libgcc/config/aarch64/aarch64-unwind.h index cf4ec749c055..85468f9685e0 100644 --- a/libgcc/config/aarch64/aarch64-unwind.h +++ b/libgcc/config/aarch64/aarch64-unwind.h @@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "ansidecl.h" #include +#include #define AARCH64_DWARF_REGNUM_RA_STATE 34 #define AARCH64_DWARF_RA_STATE_MASK 0x1 @@ -179,7 +180,6 @@ aarch64_demangle_return_addr (struct _Unwind_Context *context, } /* GCS enable flag for chkfeat instruction. */ -#define CHKFEAT_GCS 1 /* SME runtime function local to libgcc, streaming compatible and preserves more registers than the base PCS requires, but @@ -194,7 +194,7 @@ void __libgcc_arm_za_disable (void); do \ { \ __libgcc_arm_za_disable (); \ - if (__builtin_aarch64_chkfeat (CHKFEAT_GCS) == 0) \ + if (__builtin_aarch64_chkfeat (_CHKFEAT_GCS) == 0) \ { \ for (_Unwind_Word n = (x); n != 0; n--) \ __builtin_aarch64_gcspopm (); \ @@ -233,7 +233,7 @@ void __libgcc_arm_za_disable (void); do \ { \ frames++; \ - if (__builtin_aarch64_chkfeat (CHKFEAT_GCS) != 0 \ + if (__builtin_aarch64_chkfeat (_CHKFEAT_GCS) != 0 \ || exc->exception_class == 0 \ || _Unwind_GetIP (context) == 0) \ break; \