237 lines · plain
1# RUN: llvm-mc %s -triple=riscv64 -M no-aliases -show-encoding \2# RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s3# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \4# RUN: | llvm-objdump -d - \5# RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s6 7# These user mode CSR register names are RV32 only, but RV648# can encode and disassemble these registers if given their value.9 10##################################11# User Counter and Timers12##################################13 14# cycleh15# uimm1216# CHECK-INST: csrrs t2, 3200, zero17# CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc8]18# CHECK-INST-ALIAS: csrr t2, 0xc8019csrrs t2, 0xC80, zero20 21# timeh22# uimm1223# CHECK-INST: csrrs t2, 3201, zero24# CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc8]25# CHECK-INST-ALIAS: csrr t2, 0xc8126csrrs t2, 0xC81, zero27 28# instreth29# uimm1230# CHECK-INST: csrrs t2, 3202, zero31# CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc8]32# CHECK-INST-ALIAS: csrr t2, 0xc8233csrrs t2, 0xC82, zero34 35# hpmcounter3h36# uimm1237# CHECK-INST: csrrs t2, 3203, zero38# CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc8]39# CHECK-INST-ALIAS: csrr t2, 0xc8340csrrs t2, 0xC83, zero41 42# hpmcounter4h43# uimm1244# CHECK-INST: csrrs t2, 3204, zero45# CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc8]46# CHECK-INST-ALIAS: csrr t2, 0xc8447csrrs t2, 0xC84, zero48 49# hpmcounter5h50# uimm1251# CHECK-INST: csrrs t2, 3205, zero52# CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc8]53# CHECK-INST-ALIAS: csrr t2, 0xc8554csrrs t2, 0xC85, zero55 56# hpmcounter6h57# uimm1258# CHECK-INST: csrrs t2, 3206, zero59# CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc8]60# CHECK-INST-ALIAS: csrr t2, 0xc8661csrrs t2, 0xC86, zero62 63# hpmcounter7h64# uimm1265# CHECK-INST: csrrs t2, 3207, zero66# CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc8]67# CHECK-INST-ALIAS: csrr t2, 0xc8768csrrs t2, 0xC87, zero69 70# hpmcounter8h71# uimm1272# CHECK-INST: csrrs t2, 3208, zero73# CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc8]74# CHECK-INST-ALIAS: csrr t2, 0xc8875csrrs t2, 0xC88, zero76 77# hpmcounter9h78# uimm1279# CHECK-INST: csrrs t2, 3209, zero80# CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc8]81# CHECK-INST-ALIAS: csrr t2, 0xc8982csrrs t2, 0xC89, zero83 84# hpmcounter10h85# uimm1286# CHECK-INST: csrrs t2, 3210, zero87# CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc8]88# CHECK-INST-ALIAS: csrr t2, 0xc8a89csrrs t2, 0xC8A, zero90 91# hpmcounter11h92# uimm1293# CHECK-INST: csrrs t2, 3211, zero94# CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc8]95# CHECK-INST-ALIAS: csrr t2, 0xc8b96csrrs t2, 0xC8B, zero97 98# hpmcounter12h99# uimm12100# CHECK-INST: csrrs t2, 3212, zero101# CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc8]102# CHECK-INST-ALIAS: csrr t2, 0xc8c103csrrs t2, 0xC8C, zero104 105# hpmcounter13h106# uimm12107# CHECK-INST: csrrs t2, 3213, zero108# CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc8]109# CHECK-INST-ALIAS: csrr t2, 0xc8d110csrrs t2, 0xC8D, zero111 112# hpmcounter14h113# uimm12114# CHECK-INST: csrrs t2, 3214, zero115# CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc8]116# CHECK-INST-ALIAS: csrr t2, 0xc8e117csrrs t2, 0xC8E, zero118 119# hpmcounter15h120# uimm12121# CHECK-INST: csrrs t2, 3215, zero122# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc8]123# CHECK-INST-ALIAS: csrr t2, 0xc8f124csrrs t2, 0xC8F, zero125 126# hpmcounter16h127# uimm12128# CHECK-INST: csrrs t2, 3216, zero129# CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc9]130# CHECK-INST-ALIAS: csrr t2, 0xc90131csrrs t2, 0xC90, zero132 133# hpmcounter17h134# uimm12135# CHECK-INST: csrrs t2, 3217, zero136# CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc9]137# CHECK-INST-ALIAS: csrr t2, 0xc91138csrrs t2, 0xC91, zero139 140# hpmcounter18h141# uimm12142# CHECK-INST: csrrs t2, 3218, zero143# CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc9]144# CHECK-INST-ALIAS: csrr t2, 0xc92145csrrs t2, 0xC92, zero146 147# hpmcounter19h148# uimm12149# CHECK-INST: csrrs t2, 3219, zero150# CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc9]151# CHECK-INST-ALIAS: csrr t2, 0xc93152csrrs t2, 0xC93, zero153 154# hpmcounter20h155# uimm12156# CHECK-INST: csrrs t2, 3220, zero157# CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc9]158# CHECK-INST-ALIAS: csrr t2, 0xc94159csrrs t2, 0xC94, zero160 161# hpmcounter21h162# uimm12163# CHECK-INST: csrrs t2, 3221, zero164# CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc9]165# CHECK-INST-ALIAS: csrr t2, 0xc95166csrrs t2, 0xC95, zero167 168# hpmcounter22h169# uimm12170# CHECK-INST: csrrs t2, 3222, zero171# CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc9]172# CHECK-INST-ALIAS: csrr t2, 0xc96173csrrs t2, 0xC96, zero174 175# hpmcounter23h176# uimm12177# CHECK-INST: csrrs t2, 3223, zero178# CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc9]179# CHECK-INST-ALIAS: csrr t2, 0xc97180csrrs t2, 0xC97, zero181 182# hpmcounter24h183# uimm12184# CHECK-INST: csrrs t2, 3224, zero185# CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc9]186# CHECK-INST-ALIAS: csrr t2, 0xc98187csrrs t2, 0xC98, zero188 189# hpmcounter25h190# uimm12191# CHECK-INST: csrrs t2, 3225, zero192# CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc9]193# CHECK-INST-ALIAS: csrr t2, 0xc99194csrrs t2, 0xC99, zero195 196# hpmcounter26h197# uimm12198# CHECK-INST: csrrs t2, 3226, zero199# CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc9]200# CHECK-INST-ALIAS: csrr t2, 0xc9a201csrrs t2, 0xC9A, zero202 203# hpmcounter27h204# uimm12205# CHECK-INST: csrrs t2, 3227, zero206# CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc9]207# CHECK-INST-ALIAS: csrr t2, 0xc9b208csrrs t2, 0xC9B, zero209 210# hpmcounter28h211# uimm12212# CHECK-INST: csrrs t2, 3228, zero213# CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc9]214# CHECK-INST-ALIAS: csrr t2, 0xc9c215csrrs t2, 0xC9C, zero216 217# hpmcounter29h218# uimm12219# CHECK-INST: csrrs t2, 3229, zero220# CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc9]221# CHECK-INST-ALIAS: csrr t2, 0xc9d222csrrs t2, 0xC9D, zero223 224# hpmcounter30h225# uimm12226# CHECK-INST: csrrs t2, 3230, zero227# CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc9]228# CHECK-INST-ALIAS: csrr t2, 0xc9e229csrrs t2, 0xC9E, zero230 231# hpmcounter31h232# uimm12233# CHECK-INST: csrrs t2, 3231, zero234# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc9]235# CHECK-INST-ALIAS: csrr t2, 0xc9f236csrrs t2, 0xC9F, zero237