# RUN: llvm-mc -triple=riscv32 -mattr=+c -riscv-no-aliases -show-encoding < %s \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -triple=riscv64 -mattr=+c -riscv-no-aliases -show-encoding < %s \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c < %s \ # RUN: | llvm-objdump -riscv-no-aliases -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c < %s \ # RUN: | llvm-objdump -riscv-no-aliases -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # TODO: more exhaustive testing of immediate encoding. # CHECK-INST: c.lwsp ra, 0(sp) # CHECK: encoding: [0x82,0x40] c.lwsp ra, 0(sp) # CHECK-INST: c.swsp ra, 252(sp) # CHECK: encoding: [0x86,0xdf] c.swsp ra, 252(sp) # CHECK-INST: c.lw a2, 0(a0) # CHECK: encoding: [0x10,0x41] c.lw a2, 0(a0) # CHECK-INST: c.sw a5, 124(a3) # CHECK: encoding: [0xfc,0xde] c.sw a5, 124(a3) # CHECK-INST: c.j -2048 # CHECK: encoding: [0x01,0xb0] c.j -2048 # CHECK-INST: c.jr a7 # CHECK: encoding: [0x82,0x88] c.jr a7 # CHECK-INST: c.jalr a1 # CHECK: encoding: [0x82,0x95] c.jalr a1 # CHECK-INST: c.beqz a3, -256 # CHECK: encoding: [0x81,0xd2] c.beqz a3, -256 # CHECK-INST: c.bnez a5, 254 # CHECK: encoding: [0xfd,0xef] c.bnez a5, 254 # CHECK-INST: c.li a7, 31 # CHECK: encoding: [0xfd,0x48] c.li a7, 31 # CHECK-INST: c.addi a3, -32 # CHECK: encoding: [0x81,0x16] c.addi a3, -32 # CHECK-INST: c.addi16sp sp, -512 # CHECK: encoding: [0x01,0x71] c.addi16sp sp, -512 # CHECK-INST: c.addi16sp sp, 496 # CHECK: encoding: [0x7d,0x61] c.addi16sp sp, 496 # CHECK-INST: c.addi4spn a3, sp, 1020 # CHECK: encoding: [0xf4,0x1f] c.addi4spn a3, sp, 1020 # CHECK-INST: c.addi4spn a3, sp, 4 # CHECK: encoding: [0x54,0x00] c.addi4spn a3, sp, 4 # CHECK-INST: c.slli a1, 1 # CHECK: encoding: [0x86,0x05] c.slli a1, 1 # CHECK-INST: c.srli a3, 31 # CHECK: encoding: [0xfd,0x82] c.srli a3, 31 # CHECK-INST: c.srai a4, 2 # CHECK: encoding: [0x09,0x87] c.srai a4, 2 # CHECK-INST: c.andi a5, 15 # CHECK: encoding: [0xbd,0x8b] c.andi a5, 15 # CHECK-INST: c.mv a7, s0 # CHECK: encoding: [0xa2,0x88] c.mv a7, s0 # CHECK-INST: c.and a1, a2 # CHECK: encoding: [0xf1,0x8d] c.and a1, a2 # CHECK-INST: c.or a2, a3 # CHECK: encoding: [0x55,0x8e] c.or a2, a3 # CHECK-INST: c.xor a3, a4 # CHECK: encoding: [0xb9,0x8e] c.xor a3, a4 # CHECK-INST: c.sub a4, a5 # CHECK: encoding: [0x1d,0x8f] c.sub a4, a5 # CHECK-INST: c.nop # CHECK: encoding: [0x01,0x00] c.nop # CHECK-INST: c.ebreak # CHECK: encoding: [0x02,0x90] c.ebreak # CHECK-INST: c.lui s0, 1 # CHECK: encoding: [0x05,0x64] c.lui s0, 1 # CHECK-INST: c.lui s0, 31 # CHECK: encoding: [0x7d,0x64] c.lui s0, 31 # CHECK-INST: c.lui s0, 1048544 # CHECK: encoding: [0x01,0x74] c.lui s0, 0xfffe0 # CHECK-INST: c.lui s0, 1048575 # CHECK: encoding: [0x7d,0x74] c.lui s0, 0xfffff