1- # RUN: llvm-mc -triple riscv32 -show-encoding -mattr=+relax %s \
1+ # RUN: llvm-mc -triple riscv32 -show-encoding \
2+ # RUN: -M no-aliases -mattr=+c,+relax %s \
23# RUN: | FileCheck -check-prefixes=CHECK-ASM %s
3- # RUN: llvm-mc -triple riscv32 -filetype=obj -mattr=+relax %s \
4- # RUN: | llvm-objdump --triple=riscv32 -- no-show-raw-insn -dr - \
4+ # RUN: llvm-mc -triple riscv32 -filetype=obj -mattr=+c,+ relax %s \
5+ # RUN: | llvm-objdump --triple=riscv32 -M no-aliases -dr - \
56# RUN: | FileCheck -check-prefixes=CHECK-OBJDUMP %s
67
7- # RUN: llvm-mc -triple riscv64 -show-encoding -mattr=+relax %s \
8+ # RUN: llvm-mc -triple riscv64 -show-encoding \
9+ # RUN: -M no-aliases -mattr=+c,+relax %s \
810# RUN: | FileCheck -check-prefixes=CHECK-ASM %s
9- # RUN: llvm-mc -triple riscv64 -filetype=obj -mattr=+relax %s \
10- # RUN: | llvm-objdump --triple=riscv64 -- no-show-raw-insn -dr - \
11+ # RUN: llvm-mc -triple riscv64 -filetype=obj -mattr=+c,+ relax %s \
12+ # RUN: | llvm-objdump --triple=riscv64 -M no-aliases -dr - \
1113# RUN: | FileCheck -check-prefixes=CHECK-OBJDUMP %s
1214
1315## `.option exact` disables a variety of assembler behaviour:
1921## This test only checks the branch and linker relaxation part of this behaviour.
2022
2123
22-
2324# CHECK-ASM: call undefined
2425# CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_call_plt
2526# CHECK-ASM-NEXT: fixup B - offset: 0 , value: 0 , kind: fixup_riscv_relax
@@ -32,10 +33,16 @@ call undefined@plt
3233# CHECK-ASM: beq a0 , a1 , undefined
3334# CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_branch
3435# CHECK-OBJDUMP: bne a0 , a1 , 0x10
35- # CHECK-OBJDUMP-NEXT: j 0xc
36+ # CHECK-OBJDUMP-NEXT: jal zero, 0xc
3637# CHECK-OBJDUMP-NEXT: R_RISCV_JAL undefined
3738beq a0 , a1 , undefined
3839
40+ # CHECK-ASM: c.j undefined
41+ # CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_rvc_jump
42+ # CHECK-OBJDUMP: jal zero, 0x10
43+ # CHECK-OBJDUMP-NEXT: R_RISCV_JAL undefined
44+ c .j undefined
45+
3946# CHECK-ASM: .option exact
4047.option exact
4148
@@ -50,10 +57,16 @@ call undefined@plt
5057
5158# CHECK-ASM: beq a0 , a1 , undefined
5259# CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_branch
53- # CHECK-OBJDUMP: beq a0 , a1 , 0x18
60+ # CHECK-OBJDUMP: beq a0 , a1 , 0x1c
5461# CHECK-OBJDUMP-NEXT: R_RISCV_BRANCH undefined
5562beq a0 , a1 , undefined
5663
64+ # CHECK-ASM: c.j undefined
65+ # CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_rvc_jump
66+ # CHECK-OBJDUMP: c.j 0x20
67+ # CHECK-OBJDUMP-NEXT: R_RISCV_RVC_JUMP undefined
68+ c .j undefined
69+
5770# CHECK-ASM: .option noexact
5871.option noexact
5972
@@ -68,7 +81,13 @@ call undefined@plt
6881
6982# CHECK-ASM: beq a0 , a1 , undefined
7083# CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_branch
71- # CHECK-OBJDUMP: bne a0 , a1 , 0x2c
72- # CHECK-OBJDUMP-NEXT: j 0x28
84+ # CHECK-OBJDUMP: bne a0 , a1 , 0x32
85+ # CHECK-OBJDUMP-NEXT: jal zero, 0x2e
7386# CHECK-OBJDUMP-NEXT: R_RISCV_JAL undefined
7487beq a0 , a1 , undefined
88+
89+ # CHECK-ASM: c.j undefined
90+ # CHECK-ASM-NEXT: fixup A - offset: 0 , value: undefined, kind: fixup_riscv_rvc_jump
91+ # CHECK-OBJDUMP: jal zero, 0x32
92+ # CHECK-OBJDUMP-NEXT: R_RISCV_JAL undefined
93+ c .j undefined
0 commit comments