aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve
diff options
context:
space:
mode:
authorVictor Do Nascimento <victor.donascimento@arm.com>2023-06-26 14:09:41 +0100
committerVictor Do Nascimento <victor.donascimento@arm.com>2023-12-06 10:39:14 +0000
commitfc42900d21abd5eacb7537c3c8ffc5278d510195 (patch)
tree6d1aaf818e2d51b603defcf01634c63ee4796ad0 /gcc/rust/resolve
parent7d36ea705712539d2c2cda668feb2e675a74958e (diff)
downloadgcc-fc42900d21abd5eacb7537c3c8ffc5278d510195.zip
gcc-fc42900d21abd5eacb7537c3c8ffc5278d510195.tar.gz
gcc-fc42900d21abd5eacb7537c3c8ffc5278d510195.tar.bz2
aarch64: Implement system register r/w arm ACLE intrinsic functions
Implement the aarch64 intrinsics for reading and writing system registers with the following signatures: uint32_t __arm_rsr(const char *special_register); uint64_t __arm_rsr64(const char *special_register); void* __arm_rsrp(const char *special_register); float __arm_rsrf(const char *special_register); double __arm_rsrf64(const char *special_register); void __arm_wsr(const char *special_register, uint32_t value); void __arm_wsr64(const char *special_register, uint64_t value); void __arm_wsrp(const char *special_register, const void *value); void __arm_wsrf(const char *special_register, float value); void __arm_wsrf64(const char *special_register, double value); gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add enums for new builtins. (aarch64_init_rwsr_builtins): New. (aarch64_general_init_builtins): Call aarch64_init_rwsr_builtins. (aarch64_expand_rwsr_builtin): New. (aarch64_general_expand_builtin): Call aarch64_general_expand_builtin. * config/aarch64/aarch64.md (read_sysregdi): New insn_and_split. (write_sysregdi): Likewise. * config/aarch64/arm_acle.h (__arm_rsr): New. (__arm_rsrp): Likewise. (__arm_rsr64): Likewise. (__arm_rsrf): Likewise. (__arm_rsrf64): Likewise. (__arm_wsr): Likewise. (__arm_wsrp): Likewise. (__arm_wsr64): Likewise. (__arm_wsrf): Likewise. (__arm_wsrf64): Likewise. gcc/testsuite/ChangeLog: * gcc.target/aarch64/acle/rwsr.c: New. * gcc.target/aarch64/acle/rwsr-1.c: Likewise. * gcc.target/aarch64/acle/rwsr-2.c: Likewise. * gcc.dg/pch/rwsr-pch.c: Likewise. * gcc.dg/pch/rwsr-pch.hs: Likewise.
Diffstat (limited to 'gcc/rust/resolve')
0 files changed, 0 insertions, 0 deletions