From 7cb38d512dc742d95a0278fbf3e29ecd5d319466 Mon Sep 17 00:00:00 2001 From: Alex Bradbury Date: Mon, 11 Mar 2019 21:35:26 +0000 Subject: [PATCH] [RISCV] Allow fp as an alias of s0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The RISC-V Assembly Programmer's Manual defines fp as another alias of x8. However, our tablegen rules only recognise s0. This patch adds fp as another alias of x8. GCC also accepts fp. Differential Revision: https://reviews.llvm.org/D59209 Patch by Ferran Pallarès Roca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355867 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/RISCV/RISCVRegisterInfo.td | 2 +- test/MC/RISCV/rvi-alternate-abi-names.s | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/MC/RISCV/rvi-alternate-abi-names.s diff --git a/lib/Target/RISCV/RISCVRegisterInfo.td b/lib/Target/RISCV/RISCVRegisterInfo.td index 9f6c0908138..79f8ab12f6c 100644 --- a/lib/Target/RISCV/RISCVRegisterInfo.td +++ b/lib/Target/RISCV/RISCVRegisterInfo.td @@ -55,7 +55,7 @@ let RegAltNameIndices = [ABIRegAltName] in { def X6 : RISCVReg<6, "x6", ["t1"]>, DwarfRegNum<[6]>; def X7 : RISCVReg<7, "x7", ["t2"]>, DwarfRegNum<[7]>; } - def X8 : RISCVReg<8, "x8", ["s0"]>, DwarfRegNum<[8]>; + def X8 : RISCVReg<8, "x8", ["s0", "fp"]>, DwarfRegNum<[8]>; def X9 : RISCVReg<9, "x9", ["s1"]>, DwarfRegNum<[9]>; def X10 : RISCVReg<10,"x10", ["a0"]>, DwarfRegNum<[10]>; def X11 : RISCVReg<11,"x11", ["a1"]>, DwarfRegNum<[11]>; diff --git a/test/MC/RISCV/rvi-alternate-abi-names.s b/test/MC/RISCV/rvi-alternate-abi-names.s new file mode 100644 index 00000000000..04ce18f1d20 --- /dev/null +++ b/test/MC/RISCV/rvi-alternate-abi-names.s @@ -0,0 +1,16 @@ +# RUN: llvm-mc %s -triple=riscv32 \ +# RUN: | FileCheck %s +# RUN: llvm-mc %s -triple=riscv64 \ +# RUN: | FileCheck %s +# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ +# RUN: | llvm-objdump -d -r - \ +# RUN: | FileCheck %s +# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ +# RUN: | llvm-objdump -d -r - \ +# RUN: | FileCheck %s + +# 'fp' is an alternate ABI name for 's0' and it should be accepted in input. +# However, 's0' should be printed in preference. + +# CHECK: addi s0, s0, -4 +addi fp, fp, -4 -- 2.40.0