130 lines · plain
1# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c < %s \2# RUN: | llvm-objdump -d -M no-aliases - | FileCheck --check-prefix=INSTR %s3# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c,+relax < %s \4# RUN: | llvm-objdump -d -M no-aliases - | FileCheck --check-prefix=RELAX-INSTR %s5# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c,+relax < %s \6# RUN: | llvm-readobj -r - | FileCheck -check-prefix=RELAX-RELOC %s7 8FAR_JUMP_NEGATIVE:9 c.nop10.space 200011 12FAR_BRANCH_NEGATIVE:13 c.nop14.space 25615 16NEAR_NEGATIVE:17 c.nop18 call relax19 20start:21 c.bnez a0, NEAR22#INSTR: c.bnez a0, 0x92e23#RELAX-INSTR: c.bnez a0, 024#RELAX-RELOC: R_RISCV_RVC_BRANCH25 c.bnez a0, NEAR_NEGATIVE26#INSTR: c.bnez a0, 0x8d427#RELAX-INSTR: c.bnez a0, 028#RELAX-RELOC: R_RISCV_RVC_BRANCH29 c.bnez a0, FAR_BRANCH30#INSTR-NEXT: bne a0, zero, 0xa3031#RELAX-INSTR-NEXT: bne a0, zero, 032#RELAX-RELOC: R_RISCV_BRANCH33 c.bnez a0, FAR_BRANCH_NEGATIVE34#INSTR-NEXT: bne a0, zero, 0x7d235#RELAX-INSTR-NEXT: bne a0, zero, 036#RELAX-RELOC: R_RISCV_BRANCH37 c.bnez a0, FAR_JUMP38#INSTR-NEXT: bne a0, zero, 0x120239#RELAX-INSTR-NEXT: bne a0, zero, 040#RELAX-RELOC: R_RISCV_BRANCH41 c.bnez a0, FAR_JUMP_NEGATIVE42#INSTR-NEXT: bne a0, zero, 0x043#RELAX-INSTR-NEXT: bne a0, zero, 044#RELAX-RELOC: R_RISCV_BRANCH45 46 c.beqz a0, NEAR47#INSTR-NEXT: c.beqz a0, 0x92e48#RELAX-INSTR-NEXT: c.beqz a0, 049#RELAX-RELOC: R_RISCV_RVC_BRANCH50 c.beqz a0, NEAR_NEGATIVE51#INSTR-NEXT: c.beqz a0, 0x8d452#RELAX-INSTR-NEXT: c.beqz a0, 053#RELAX-RELOC: R_RISCV_RVC_BRANCH54 c.beqz a0, FAR_BRANCH55#INSTR-NEXT: beq a0, zero, 0xa3056#RELAX-INSTR-NEXT: beq a0, zero, 057#RELAX-RELOC: R_RISCV_BRANCH58 c.beqz a0, FAR_BRANCH_NEGATIVE59#INSTR-NEXT: beq a0, zero, 0x7d260#RELAX-INSTR-NEXT: beq a0, zero, 061#RELAX-RELOC: R_RISCV_BRANCH62 c.beqz a0, FAR_JUMP63#INSTR-NEXT: beq a0, zero, 0x120264#RELAX-INSTR-NEXT: beq a0, zero, 065#RELAX-RELOC: R_RISCV_BRANCH66 c.beqz a0, FAR_JUMP_NEGATIVE67#INSTR-NEXT: beq a0, zero, 0x068#RELAX-INSTR-NEXT: beq a0, zero, 069#RELAX-RELOC: R_RISCV_BRANCH70 71 c.j NEAR72#INSTR-NEXT: c.j 0x92e73#RELAX-INSTR-NEXT: c.j 074#RELAX-RELOC: R_RISCV_RVC_JUMP75 c.j NEAR_NEGATIVE76#INSTR-NEXT: c.j 0x8d477#RELAX-INSTR-NEXT: c.j 078#RELAX-RELOC: R_RISCV_RVC_JUMP79 c.j FAR_BRANCH80#INSTR-NEXT: c.j 0xa3081#RELAX-INSTR-NEXT: c.j 082#RELAX-RELOC: R_RISCV_RVC_JUMP83 c.j FAR_BRANCH_NEGATIVE84#INSTR-NEXT: c.j 0x7d285#RELAX-INSTR-NEXT: c.j 086#RELAX-RELOC: R_RISCV_RVC_JUMP87 c.j FAR_JUMP88#INSTR-NEXT: jal zero, 0x120289#RELAX-INSTR-NEXT: jal zero, 090#RELAX-RELOC: R_RISCV_JAL91 c.j FAR_JUMP_NEGATIVE92#INSTR-NEXT: jal zero, 0x093#RELAX-INSTR-NEXT: jal zero, 094#RELAX-RELOC: R_RISCV_JAL95 96 c.jal NEAR97#INSTR: c.jal 0x92e98#RELAX-INSTR: c.jal 099#RELAX-RELOC: R_RISCV_RVC_JUMP100 c.jal NEAR_NEGATIVE101#INSTR: c.jal 0x8d4102#RELAX-INSTR: c.jal 0103#RELAX-RELOC: R_RISCV_RVC_JUMP104 c.jal FAR_BRANCH105#INSTR-NEXT: c.jal 0xa30106#RELAX-INSTR-NEXT: c.jal 0107#RELAX-RELOC: R_RISCV_RVC_JUMP108 c.jal FAR_BRANCH_NEGATIVE109#INSTR-NEXT: c.jal 0x7d2110#RELAX-INSTR-NEXT: c.jal 0111#RELAX-RELOC: R_RISCV_RVC_JUMP112 c.jal FAR_JUMP113#INSTR-NEXT: jal ra, 0x1202114#RELAX-INSTR-NEXT: jal ra, 0115#RELAX-RELOC: R_RISCV_JAL116 c.jal FAR_JUMP_NEGATIVE117#INSTR-NEXT: jal ra, 0x0118#RELAX-INSTR-NEXT: jal ra, 0119#RELAX-RELOC: R_RISCV_JAL120 121 call relax122NEAR:123 c.nop124.space 256125FAR_BRANCH:126 c.nop127.space 2000128FAR_JUMP:129 c.nop130