diff options
author | Sam Elliott <selliott@lowrisc.org> | 2019-07-12 08:36:07 +0000 |
---|---|---|
committer | Sam Elliott <selliott@lowrisc.org> | 2019-07-12 08:36:07 +0000 |
commit | fafec5155e39f5dad098376c1beb4a56604aa655 (patch) | |
tree | 608076462d201906f79b657ac3d2fca85e9d04f1 /llvm/test/MC/RISCV | |
parent | 4a9a772f44bfcd5d3387cce61e140cfd7e54f913 (diff) | |
download | bcm5719-llvm-fafec5155e39f5dad098376c1beb4a56604aa655.tar.gz bcm5719-llvm-fafec5155e39f5dad098376c1beb4a56604aa655.zip |
[RISCV] Allow parsing dot '.' in assembly
Summary:
Useful for jumps, such as `j .`.
I am not sure who should review this. Do not hesitate to change the reviewers if needed.
Reviewers: asb, jrtc27, lenary
Reviewed By: lenary
Subscribers: MaskRay, lenary, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63669
Patch by John LLVM (JohnLLVM)
llvm-svn: 365881
Diffstat (limited to 'llvm/test/MC/RISCV')
-rw-r--r-- | llvm/test/MC/RISCV/rv32i-aliases-invalid.s | 2 | ||||
-rw-r--r-- | llvm/test/MC/RISCV/rv32i-valid.s | 3 | ||||
-rw-r--r-- | llvm/test/MC/RISCV/rvi-aliases-valid.s | 7 |
3 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/MC/RISCV/rv32i-aliases-invalid.s b/llvm/test/MC/RISCV/rv32i-aliases-invalid.s index b50a8e4033e..4080d892a67 100644 --- a/llvm/test/MC/RISCV/rv32i-aliases-invalid.s +++ b/llvm/test/MC/RISCV/rv32i-aliases-invalid.s @@ -19,5 +19,7 @@ sll x2, x3, -1 # CHECK: :[[@LINE]]:13: error: immediate must be an integer in t srl x2, x3, -2 # CHECK: :[[@LINE]]:13: error: immediate must be an integer in the range [0, 31] sra x2, x3, -3 # CHECK: :[[@LINE]]:13: error: immediate must be an integer in the range [0, 31] +addi x1, . # CHECK: :[[@LINE]]:10: error: invalid operand for instruction + foo: .space 4 diff --git a/llvm/test/MC/RISCV/rv32i-valid.s b/llvm/test/MC/RISCV/rv32i-valid.s index 9571659b79b..3611d71ac43 100644 --- a/llvm/test/MC/RISCV/rv32i-valid.s +++ b/llvm/test/MC/RISCV/rv32i-valid.s @@ -90,6 +90,9 @@ jal s0, (0) # CHECK-ASM-AND-OBJ: jal s0, 156 # CHECK-ASM: encoding: [0x6f,0x04,0xc0,0x09] jal s0, (0xff-99) +# CHECK-ASM: encoding: [0x6f,0bAAAA0000,A,A] +# CHECK-OBJ: jal zero, 0 +jal zero, . # CHECK-ASM-AND-OBJ: jalr a0, a1, -2048 # CHECK-ASM: encoding: [0x67,0x85,0x05,0x80] diff --git a/llvm/test/MC/RISCV/rvi-aliases-valid.s b/llvm/test/MC/RISCV/rvi-aliases-valid.s index a4aef05f8be..a3050aa46f6 100644 --- a/llvm/test/MC/RISCV/rvi-aliases-valid.s +++ b/llvm/test/MC/RISCV/rvi-aliases-valid.s @@ -117,6 +117,13 @@ j foo # CHECK-OBJ: j 0 # CHECK-OBJ: R_RISCV_JAL a0 j a0 +# CHECK-S-NOALIAS: [[LABEL:.L[[:alnum:]_]+]]: +# CHECK-S-NOALIAS-NEXT: jal zero, [[LABEL]] +# CHECK-S: [[LABEL:.L[[:alnum:]_]+]]: +# CHECK-S-NEXT: j [[LABEL]] +# CHECK-OBJ-NOALIAS: jal zero, 0 +# CHECK-OBJ: j 0 +j . # CHECK-S-OBJ-NOALIAS: jal ra, 2040 # CHECK-S-OBJ: jal 2040 jal 2040 |