Skip to content

Commit

Permalink
[RISCV] Allow fp as an alias of s0
Browse files Browse the repository at this point in the history
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.

llvm-svn: 355867
  • Loading branch information
asb committed Mar 11, 2019
1 parent 231306b commit b6d322b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion llvm/lib/Target/RISCV/RISCVRegisterInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -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]>;
Expand Down
16 changes: 16 additions & 0 deletions llvm/test/MC/RISCV/rvi-alternate-abi-names.s
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit b6d322b

Please sign in to comment.