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/expr.cc | |
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/expr.cc')
0 files changed, 0 insertions, 0 deletions