aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/aarch64-protos.h
diff options
context:
space:
mode:
authorVictor Do Nascimento <victor.donascimento@arm.com>2023-10-29 00:38:59 +0100
committerVictor Do Nascimento <victor.donascimento@arm.com>2023-12-06 21:20:36 +0000
commit88157c88172b06f1afb6136e9bd8fce1de5ba823 (patch)
tree65b31cb920b8cecbf8512c11cdad17be95cb0e57 /gcc/config/aarch64/aarch64-protos.h
parenteac59af05aa5d7b420408b12865437dbc8a54218 (diff)
downloadgcc-88157c88172b06f1afb6136e9bd8fce1de5ba823.zip
gcc-88157c88172b06f1afb6136e9bd8fce1de5ba823.tar.gz
gcc-88157c88172b06f1afb6136e9bd8fce1de5ba823.tar.bz2
aarch64: Implement 128-bit extension to ACLE sysreg r/w builtins
Implement the ACLE builtins for 128-bit system register manipulation: * __uint128_t __arm_rsr128(const char *special_register); * void __arm_wsr128(const char *special_register, __uint128_t value); gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (AARCH64_RSR128): New `enum aarch64_builtins' value. (AARCH64_WSR128): Likewise. (aarch64_init_rwsr_builtins): Init `__builtin_aarch64_rsr128' and `__builtin_aarch64_wsr128' builtins. (aarch64_expand_rwsr_builtin): Extend function to handle `__builtin_aarch64_{rsr|wsr}128'. * config/aarch64/aarch64-protos.h (aarch64_retrieve_sysreg): Update function signature. * config/aarch64/aarch64.cc (F_REG_128): New. (aarch64_retrieve_sysreg): Add 128-bit register mode check. * config/aarch64/aarch64.md (UNSPEC_SYSREG_RTI): New. (UNSPEC_SYSREG_WTI): Likewise. (aarch64_read_sysregti): Likewise. (aarch64_write_sysregti): Likewise. * config/aarch64/arm_acle.h (__arm_rsr128): New. (__arm_wsr128): Likewise.
Diffstat (limited to 'gcc/config/aarch64/aarch64-protos.h')
-rw-r--r--gcc/config/aarch64/aarch64-protos.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 60ff61f..f2075a1 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -840,7 +840,7 @@ bool aarch64_sve_ptrue_svpattern_p (rtx, struct simd_immediate_info *);
bool aarch64_simd_valid_immediate (rtx, struct simd_immediate_info *,
enum simd_immediate_check w = AARCH64_CHECK_MOV);
bool aarch64_valid_sysreg_name_p (const char *);
-const char *aarch64_retrieve_sysreg (const char *, bool);
+const char *aarch64_retrieve_sysreg (const char *, bool, bool);
rtx aarch64_check_zero_based_sve_index_immediate (rtx);
bool aarch64_maybe_generate_simd_constant (rtx, rtx, machine_mode);
bool aarch64_simd_special_constant_p (rtx, machine_mode);