aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2024-01-25 23:49:13 +0800
committerXi Ruoyao <xry111@xry111.site>2024-03-05 21:03:17 +0800
commitf628a30f4dbdee9b4531314d72c7762f1fbcf8ff (patch)
tree6ea9cfa7ff83da8ccce7590ddb4501c167a511a1 /gcc
parent49a1a340ea0eef681f23b6861f3cdb6840aadd99 (diff)
downloadgcc-f628a30f4dbdee9b4531314d72c7762f1fbcf8ff.zip
gcc-f628a30f4dbdee9b4531314d72c7762f1fbcf8ff.tar.gz
gcc-f628a30f4dbdee9b4531314d72c7762f1fbcf8ff.tar.bz2
LoongArch: Allow s9 as a register alias
The psABI allows using s9 as an alias of r22. gcc/ChangeLog: * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add s9 as an alias of r22. gcc/testsuite/ChangeLog: * gcc.target/loongarch/regname-fp-s9.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/loongarch/loongarch.h1
-rw-r--r--gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/loongarch/loongarch.h b/gcc/config/loongarch/loongarch.h
index 8b453ab..bf2351f 100644
--- a/gcc/config/loongarch/loongarch.h
+++ b/gcc/config/loongarch/loongarch.h
@@ -931,6 +931,7 @@ typedef struct {
{ "t8", 20 + GP_REG_FIRST }, \
{ "x", 21 + GP_REG_FIRST }, \
{ "fp", 22 + GP_REG_FIRST }, \
+ { "s9", 22 + GP_REG_FIRST }, \
{ "s0", 23 + GP_REG_FIRST }, \
{ "s1", 24 + GP_REG_FIRST }, \
{ "s2", 25 + GP_REG_FIRST }, \
diff --git a/gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c b/gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c
new file mode 100644
index 0000000..d2e3b80
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c
@@ -0,0 +1,3 @@
+/* { dg-do compile } */
+register long s9 asm("s9"); /* { dg-note "conflicts with 's9'" } */
+register long fp asm("fp"); /* { dg-warning "register of 'fp' used for multiple global register variables" } */