Yury Khrustalev <yury.khrusta...@arm.com> writes:
> 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

OK, thanks.  (We discussed getting commit access off-list.)

Richard

> ---
>  gcc/config/aarch64/arm_acle.h          | 3 +++
>  libgcc/config/aarch64/aarch64-unwind.h | 6 +++---
>  2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h
> index 7fe61c736ed..7351d1de70b 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 cf4ec749c05..85468f9685e 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 <stdbool.h>
> +#include <arm_acle.h>
>  
>  #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;                                          \

Reply via email to