brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 0367ef3 Raw
134 lines · plain
1# RUN: llvm-mc -triple riscv32 -mattr=+experimental -show-encoding < %s \2# RUN:   | FileCheck -check-prefixes=CHECK %s3# RUN: llvm-mc -triple riscv32 -mattr=+experimental -filetype=obj < %s \4# RUN:   | llvm-objdump  --triple=riscv32 --mattr=+c,+m,+a,+f,+zba,+experimental-zicfiss -d -M no-aliases - \5# RUN:   | FileCheck -check-prefixes=CHECK-INST %s6 7# Test '.option arch, +' and '.option arch, -' directive8# The following test cases were copied from MC/RISCV/option-rvc.s9 10# CHECK-INST: addi a0, a1, 0x011# CHECK: # encoding:  [0x13,0x85,0x05,0x00]12addi a0, a1, 013 14# CHECK-INST: addi s0, sp, 0x3fc15# CHECK: # encoding:  [0x13,0x04,0xc1,0x3f]16addi s0, sp, 102017 18# CHECK: .option arch, +c19.option arch, +c20# CHECK-INST: c.mv a0, a121# CHECK: # encoding:  [0x2e,0x85]22addi a0, a1, 023 24# CHECK-INST: c.addi4spn s0, sp, 0x3fc25# CHECK: # encoding:  [0xe0,0x1f]26addi s0, sp, 102027 28# CHECK: .option arch, -c, -zca29.option arch, -c, -zca30# CHECK-INST: addi a0, a1, 0x031# CHECK: # encoding:  [0x13,0x85,0x05,0x00]32addi a0, a1, 033 34# CHECK-INST: addi s0, sp, 0x3fc35# CHECK: # encoding:  [0x13,0x04,0xc1,0x3f]36addi s0, sp, 102037 38# CHECK: .option arch, +c39.option arch, +c40# CHECK-INST: c.mv a0, a141# CHECK: # encoding:  [0x2e,0x85]42addi a0, a1, 043 44# CHECK-INST: c.addi4spn s0, sp, 0x3fc45# CHECK: # encoding:  [0xe0,0x1f]46addi s0, sp, 102047 48# CHECK: .option arch, -c, -zca49.option arch, -c, -zca50# CHECK-INST: addi a0, a1, 0x051# CHECK: # encoding:  [0x13,0x85,0x05,0x00]52addi a0, a1, 053 54# CHECK-INST: addi s0, sp, 0x3fc55# CHECK: # encoding:  [0x13,0x04,0xc1,0x3f]56addi s0, sp, 102057 58# CHECK: .option arch, +d, -d59.option arch, +d, -d60# CHECK-INST: flw ft0, 0xc(a0)61# CHECK: # encoding:  [0x07,0x20,0xc5,0x00]62flw f0, 12(a0)63 64# Test comma-separated list65# CHECK: arch, +m, +a66.option arch, +m, +a67# CHECK-INST: mul a4, ra, s068# CHECK: # encoding:  [0x33,0x87,0x80,0x02]69mul a4, ra, s070# CHECK-INST: lr.w t0, (t1)71# CHECK: # encoding:  [0xaf,0x22,0x03,0x10]72lr.w t0, (t1)73 74# Test multi-letter extension75# CHECK: .option arch, +zba76.option arch, +zba77# CHECK-INST: sh1add t0, t1, t278# CHECK: encoding: [0xb3,0x22,0x73,0x20]79sh1add t0, t1, t280 81# Test experimental extension82# CHECK: .option arch, +zicfiss83.option arch, +zicfiss84# CHECK-INST: sspopchk ra85# CHECK: encoding: [0x73,0xc0,0xc0,0xcd]86sspopchk ra87 88# Test '.option arch, <arch-string>' directive89# CHECK: .option arch, rv32i2p1_m2p0_a2p1_c2p090.option arch, rv32i2p1_m2p0_a2p1_c2p091 92# CHECK-INST: mul a4, ra, s093# CHECK: # encoding:  [0x33,0x87,0x80,0x02]94mul a4, ra, s095# CHECK-INST: lr.w t0, (t1)96# CHECK: # encoding:  [0xaf,0x22,0x03,0x10]97lr.w t0, (t1)98 99# Test arch string without version number100# CHECK: .option arch, rv32i2p1_m2p0_a2p1_c2p0101.option arch, rv32imac102# CHECK-INST: mul a4, ra, s0103# CHECK: # encoding:  [0x33,0x87,0x80,0x02]104mul a4, ra, s0105# CHECK-INST: lr.w t0, (t1)106# CHECK: # encoding:  [0xaf,0x22,0x03,0x10]107lr.w t0, (t1)108 109# Test +c, -c and vice-versa110.option arch, +c, -c, -zca111# CHECK-INST: addi a0, a1, 0x0112# CHECK: # encoding:  [0x13,0x85,0x05,0x00]113addi a0, a1, 0114 115.option arch, -c, -zca, +c116# CHECK-INST: c.mv a0, a1117# CHECK: # encoding:  [0x2e,0x85]118addi a0, a1, 0119 120.option arch, rv32ic121# CHECK-INST: c.mv a0, a1122# CHECK: # encoding:  [0x2e,0x85]123addi a0, a1, 0124 125# Test extension name that has digits.126.option arch, +zve32x127# CHECK: .option arch, +zve32x128 129.option arch, rv32i130.option arch, +zce, +f131# CHECK-INST: flw fa0, 0x0(a0)132# CHECK: # encoding: [0x08,0x61]133c.flw fa0, 0(a0)134