# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ # RUN: | llvm-objdump -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s # These user mode CSR register names are RV32 only, but RV64 # can encode and disassemble these registers if given their value. ################################## # User Counter and Timers ################################## # cycleh # uimm12 # CHECK-INST: csrrs t2, 3200, zero # CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc8] # CHECK-INST-ALIAS: csrr t2, 3200 csrrs t2, 0xC80, zero # timeh # uimm12 # CHECK-INST: csrrs t2, 3201, zero # CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc8] # CHECK-INST-ALIAS: csrr t2, 3201 csrrs t2, 0xC81, zero # instreth # uimm12 # CHECK-INST: csrrs t2, 3202, zero # CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc8] # CHECK-INST-ALIAS: csrr t2, 3202 csrrs t2, 0xC82, zero # hpmcounter3h # uimm12 # CHECK-INST: csrrs t2, 3203, zero # CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc8] # CHECK-INST-ALIAS: csrr t2, 3203 csrrs t2, 0xC83, zero # hpmcounter4h # uimm12 # CHECK-INST: csrrs t2, 3204, zero # CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc8] # CHECK-INST-ALIAS: csrr t2, 3204 csrrs t2, 0xC84, zero # hpmcounter5h # uimm12 # CHECK-INST: csrrs t2, 3205, zero # CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc8] # CHECK-INST-ALIAS: csrr t2, 3205 csrrs t2, 0xC85, zero # hpmcounter6h # uimm12 # CHECK-INST: csrrs t2, 3206, zero # CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc8] # CHECK-INST-ALIAS: csrr t2, 3206 csrrs t2, 0xC86, zero # hpmcounter7h # uimm12 # CHECK-INST: csrrs t2, 3207, zero # CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc8] # CHECK-INST-ALIAS: csrr t2, 3207 csrrs t2, 0xC87, zero # hpmcounter8h # uimm12 # CHECK-INST: csrrs t2, 3208, zero # CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc8] # CHECK-INST-ALIAS: csrr t2, 3208 csrrs t2, 0xC88, zero # hpmcounter9h # uimm12 # CHECK-INST: csrrs t2, 3209, zero # CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc8] # CHECK-INST-ALIAS: csrr t2, 3209 csrrs t2, 0xC89, zero # hpmcounter10h # uimm12 # CHECK-INST: csrrs t2, 3210, zero # CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc8] # CHECK-INST-ALIAS: csrr t2, 3210 csrrs t2, 0xC8A, zero # hpmcounter11h # uimm12 # CHECK-INST: csrrs t2, 3211, zero # CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc8] # CHECK-INST-ALIAS: csrr t2, 3211 csrrs t2, 0xC8B, zero # hpmcounter12h # uimm12 # CHECK-INST: csrrs t2, 3212, zero # CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc8] # CHECK-INST-ALIAS: csrr t2, 3212 csrrs t2, 0xC8C, zero # hpmcounter13h # uimm12 # CHECK-INST: csrrs t2, 3213, zero # CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc8] # CHECK-INST-ALIAS: csrr t2, 3213 csrrs t2, 0xC8D, zero # hpmcounter14h # uimm12 # CHECK-INST: csrrs t2, 3214, zero # CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc8] # CHECK-INST-ALIAS: csrr t2, 3214 csrrs t2, 0xC8E, zero # hpmcounter15h # uimm12 # CHECK-INST: csrrs t2, 3215, zero # CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc8] # CHECK-INST-ALIAS: csrr t2, 3215 csrrs t2, 0xC8F, zero # hpmcounter16h # uimm12 # CHECK-INST: csrrs t2, 3216, zero # CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc9] # CHECK-INST-ALIAS: csrr t2, 3216 csrrs t2, 0xC90, zero # hpmcounter17h # uimm12 # CHECK-INST: csrrs t2, 3217, zero # CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc9] # CHECK-INST-ALIAS: csrr t2, 3217 csrrs t2, 0xC91, zero # hpmcounter18h # uimm12 # CHECK-INST: csrrs t2, 3218, zero # CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc9] # CHECK-INST-ALIAS: csrr t2, 3218 csrrs t2, 0xC92, zero # hpmcounter19h # uimm12 # CHECK-INST: csrrs t2, 3219, zero # CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc9] # CHECK-INST-ALIAS: csrr t2, 3219 csrrs t2, 0xC93, zero # hpmcounter20h # uimm12 # CHECK-INST: csrrs t2, 3220, zero # CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc9] # CHECK-INST-ALIAS: csrr t2, 3220 csrrs t2, 0xC94, zero # hpmcounter21h # uimm12 # CHECK-INST: csrrs t2, 3221, zero # CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc9] # CHECK-INST-ALIAS: csrr t2, 3221 csrrs t2, 0xC95, zero # hpmcounter22h # uimm12 # CHECK-INST: csrrs t2, 3222, zero # CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc9] # CHECK-INST-ALIAS: csrr t2, 3222 csrrs t2, 0xC96, zero # hpmcounter23h # uimm12 # CHECK-INST: csrrs t2, 3223, zero # CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc9] # CHECK-INST-ALIAS: csrr t2, 3223 csrrs t2, 0xC97, zero # hpmcounter24h # uimm12 # CHECK-INST: csrrs t2, 3224, zero # CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc9] # CHECK-INST-ALIAS: csrr t2, 3224 csrrs t2, 0xC98, zero # hpmcounter25h # uimm12 # CHECK-INST: csrrs t2, 3225, zero # CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc9] # CHECK-INST-ALIAS: csrr t2, 3225 csrrs t2, 0xC99, zero # hpmcounter26h # uimm12 # CHECK-INST: csrrs t2, 3226, zero # CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc9] # CHECK-INST-ALIAS: csrr t2, 3226 csrrs t2, 0xC9A, zero # hpmcounter27h # uimm12 # CHECK-INST: csrrs t2, 3227, zero # CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc9] # CHECK-INST-ALIAS: csrr t2, 3227 csrrs t2, 0xC9B, zero # hpmcounter28h # uimm12 # CHECK-INST: csrrs t2, 3228, zero # CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc9] # CHECK-INST-ALIAS: csrr t2, 3228 csrrs t2, 0xC9C, zero # hpmcounter29h # uimm12 # CHECK-INST: csrrs t2, 3229, zero # CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc9] # CHECK-INST-ALIAS: csrr t2, 3229 csrrs t2, 0xC9D, zero # hpmcounter30h # uimm12 # CHECK-INST: csrrs t2, 3230, zero # CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc9] # CHECK-INST-ALIAS: csrr t2, 3230 csrrs t2, 0xC9E, zero # hpmcounter31h # uimm12 # CHECK-INST: csrrs t2, 3231, zero # CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc9] # CHECK-INST-ALIAS: csrr t2, 3231 csrrs t2, 0xC9F, zero