62 lines · plain
1# RUN: llvm-mc %s -triple=riscv32 -M no-aliases -show-encoding \2# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s3# RUN: llvm-mc -filetype=obj -triple=riscv32 < %s \4# RUN: | llvm-objdump -M no-aliases --no-print-imm-hex -d -r - \5# RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s6 7# CHECK-ASM-AND-OBJ: addi a0, a1, -18# CHECK-ASM: encoding: [0x13,0x85,0xf5,0xff]9addi a0, a1, 4294967295 # 0xffffffff10# CHECK-ASM-AND-OBJ: ori a2, a3, -204811# CHECK-ASM: encoding: [0x13,0xe6,0x06,0x80]12ori a2, a3, 0xfffff80013# CHECK-ASM-AND-OBJ: lw a1, -1621(a2)14# CHECK-ASM: encoding: [0x83,0x25,0xb6,0x9a]15lw a1, 0xfffff9ab(a2)16# CHECK-ASM-AND-OBJ: sw a1, -8(a2)17# CHECK-ASM: encoding: [0x23,0x2c,0xb6,0xfe]18sw a1, 0xfffffff8(a2)19 20## Branch and Jump immediates are relative but printed as their absolute address21## when disassembling.22 23# CHECK-ASM: beq t0, t1, -409624# CHECK-ASM: encoding: [0x63,0x80,0x62,0x80]25# CHECK-OBJ: beq t0, t1, 0xfffff01026beq t0, t1, 0xfffff00027 28# CHECK-ASM: bne t1, t2, -408229# CHECK-ASM: encoding: [0x63,0x17,0x73,0x80]30# CHECK-OBJ: bne t1, t2, 0xfffff02231bne t1, t2, 0xfffff00e32 33# CHECK-ASM: beq t2, zero, -355034# CHECK-ASM: encoding: [0x63,0x81,0x03,0xa2]35# CHECK-OBJ: beq t2, zero, 0xfffff23a36beqz t2, 0xfffff22237 38# CHECK-ASM: .insn b 99, 0, a0, a1, -300439# CHECK-ASM: encoding: [0x63,0x02,0xb5,0xc4]40# CHECK-OBJ: beq a0, a1, 0xfffff46041.insn b BRANCH, 0, a0, a1, 0xfffff44442 43# CHECK-ASM: jal ra, -245844# CHECK-ASM: encoding: [0xef,0xf0,0x6f,0xe6]45# CHECK-OBJ: jal ra, 0xfffff68646jal ra, 0xfffff66647 48# CHECK-ASM: jal ra, -191249# CHECK-ASM: encoding: [0xef,0xf0,0x9f,0x88]50# CHECK-OBJ: jal ra, 0xfffff8ac51jal 0xfffff88852 53# CHECK-ASM: jal zero, -136654# CHECK-ASM: encoding: [0x6f,0xf0,0xbf,0xaa]55# CHECK-OBJ: jal zero, 0xfffffad256j 0xfffffaaa57 58# CHECK-ASM: .insn j 111, a0, -82059# CHECK-ASM: encoding: [0x6f,0x65,0xe6,0xff]60# CHECK-OBJ: jal a0, 0xfff6682a61.insn j JAL, a0, 0xfffffccc62