diff options
author | Victor Do Nascimento <victor.donascimento@arm.com> | 2023-10-29 00:38:59 +0100 |
---|---|---|
committer | Victor Do Nascimento <victor.donascimento@arm.com> | 2023-12-06 21:20:36 +0000 |
commit | 88157c88172b06f1afb6136e9bd8fce1de5ba823 (patch) | |
tree | 65b31cb920b8cecbf8512c11cdad17be95cb0e57 /gcc/config/aarch64/aarch64-protos.h | |
parent | eac59af05aa5d7b420408b12865437dbc8a54218 (diff) | |
download | gcc-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.h | 2 |
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); |