1# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ 2# RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s 3# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ 4# RUN: | llvm-objdump -d - \ 5# RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s 6 7# These user mode CSR register names are RV32 only, but RV64 8# can encode and disassemble these registers if given their value. 9 10################################## 11# User Counter and Timers 12################################## 13 14# cycleh 15# uimm12 16# CHECK-INST: csrrs t2, 3200, zero 17# CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc8] 18# CHECK-INST-ALIAS: csrr t2, 3200 19csrrs t2, 0xC80, zero 20 21# timeh 22# uimm12 23# CHECK-INST: csrrs t2, 3201, zero 24# CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc8] 25# CHECK-INST-ALIAS: csrr t2, 3201 26csrrs t2, 0xC81, zero 27 28# instreth 29# uimm12 30# CHECK-INST: csrrs t2, 3202, zero 31# CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc8] 32# CHECK-INST-ALIAS: csrr t2, 3202 33csrrs t2, 0xC82, zero 34 35# hpmcounter3h 36# uimm12 37# CHECK-INST: csrrs t2, 3203, zero 38# CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc8] 39# CHECK-INST-ALIAS: csrr t2, 3203 40csrrs t2, 0xC83, zero 41 42# hpmcounter4h 43# uimm12 44# CHECK-INST: csrrs t2, 3204, zero 45# CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc8] 46# CHECK-INST-ALIAS: csrr t2, 3204 47csrrs t2, 0xC84, zero 48 49# hpmcounter5h 50# uimm12 51# CHECK-INST: csrrs t2, 3205, zero 52# CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc8] 53# CHECK-INST-ALIAS: csrr t2, 3205 54csrrs t2, 0xC85, zero 55 56# hpmcounter6h 57# uimm12 58# CHECK-INST: csrrs t2, 3206, zero 59# CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc8] 60# CHECK-INST-ALIAS: csrr t2, 3206 61csrrs t2, 0xC86, zero 62 63# hpmcounter7h 64# uimm12 65# CHECK-INST: csrrs t2, 3207, zero 66# CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc8] 67# CHECK-INST-ALIAS: csrr t2, 3207 68csrrs t2, 0xC87, zero 69 70# hpmcounter8h 71# uimm12 72# CHECK-INST: csrrs t2, 3208, zero 73# CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc8] 74# CHECK-INST-ALIAS: csrr t2, 3208 75csrrs t2, 0xC88, zero 76 77# hpmcounter9h 78# uimm12 79# CHECK-INST: csrrs t2, 3209, zero 80# CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc8] 81# CHECK-INST-ALIAS: csrr t2, 3209 82csrrs t2, 0xC89, zero 83 84# hpmcounter10h 85# uimm12 86# CHECK-INST: csrrs t2, 3210, zero 87# CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc8] 88# CHECK-INST-ALIAS: csrr t2, 3210 89csrrs t2, 0xC8A, zero 90 91# hpmcounter11h 92# uimm12 93# CHECK-INST: csrrs t2, 3211, zero 94# CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc8] 95# CHECK-INST-ALIAS: csrr t2, 3211 96csrrs t2, 0xC8B, zero 97 98# hpmcounter12h 99# uimm12 100# CHECK-INST: csrrs t2, 3212, zero 101# CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc8] 102# CHECK-INST-ALIAS: csrr t2, 3212 103csrrs t2, 0xC8C, zero 104 105# hpmcounter13h 106# uimm12 107# CHECK-INST: csrrs t2, 3213, zero 108# CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc8] 109# CHECK-INST-ALIAS: csrr t2, 3213 110csrrs t2, 0xC8D, zero 111 112# hpmcounter14h 113# uimm12 114# CHECK-INST: csrrs t2, 3214, zero 115# CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc8] 116# CHECK-INST-ALIAS: csrr t2, 3214 117csrrs t2, 0xC8E, zero 118 119# hpmcounter15h 120# uimm12 121# CHECK-INST: csrrs t2, 3215, zero 122# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc8] 123# CHECK-INST-ALIAS: csrr t2, 3215 124csrrs t2, 0xC8F, zero 125 126# hpmcounter16h 127# uimm12 128# CHECK-INST: csrrs t2, 3216, zero 129# CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc9] 130# CHECK-INST-ALIAS: csrr t2, 3216 131csrrs t2, 0xC90, zero 132 133# hpmcounter17h 134# uimm12 135# CHECK-INST: csrrs t2, 3217, zero 136# CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc9] 137# CHECK-INST-ALIAS: csrr t2, 3217 138csrrs t2, 0xC91, zero 139 140# hpmcounter18h 141# uimm12 142# CHECK-INST: csrrs t2, 3218, zero 143# CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc9] 144# CHECK-INST-ALIAS: csrr t2, 3218 145csrrs t2, 0xC92, zero 146 147# hpmcounter19h 148# uimm12 149# CHECK-INST: csrrs t2, 3219, zero 150# CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc9] 151# CHECK-INST-ALIAS: csrr t2, 3219 152csrrs t2, 0xC93, zero 153 154# hpmcounter20h 155# uimm12 156# CHECK-INST: csrrs t2, 3220, zero 157# CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc9] 158# CHECK-INST-ALIAS: csrr t2, 3220 159csrrs t2, 0xC94, zero 160 161# hpmcounter21h 162# uimm12 163# CHECK-INST: csrrs t2, 3221, zero 164# CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc9] 165# CHECK-INST-ALIAS: csrr t2, 3221 166csrrs t2, 0xC95, zero 167 168# hpmcounter22h 169# uimm12 170# CHECK-INST: csrrs t2, 3222, zero 171# CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc9] 172# CHECK-INST-ALIAS: csrr t2, 3222 173csrrs t2, 0xC96, zero 174 175# hpmcounter23h 176# uimm12 177# CHECK-INST: csrrs t2, 3223, zero 178# CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc9] 179# CHECK-INST-ALIAS: csrr t2, 3223 180csrrs t2, 0xC97, zero 181 182# hpmcounter24h 183# uimm12 184# CHECK-INST: csrrs t2, 3224, zero 185# CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc9] 186# CHECK-INST-ALIAS: csrr t2, 3224 187csrrs t2, 0xC98, zero 188 189# hpmcounter25h 190# uimm12 191# CHECK-INST: csrrs t2, 3225, zero 192# CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc9] 193# CHECK-INST-ALIAS: csrr t2, 3225 194csrrs t2, 0xC99, zero 195 196# hpmcounter26h 197# uimm12 198# CHECK-INST: csrrs t2, 3226, zero 199# CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc9] 200# CHECK-INST-ALIAS: csrr t2, 3226 201csrrs t2, 0xC9A, zero 202 203# hpmcounter27h 204# uimm12 205# CHECK-INST: csrrs t2, 3227, zero 206# CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc9] 207# CHECK-INST-ALIAS: csrr t2, 3227 208csrrs t2, 0xC9B, zero 209 210# hpmcounter28h 211# uimm12 212# CHECK-INST: csrrs t2, 3228, zero 213# CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc9] 214# CHECK-INST-ALIAS: csrr t2, 3228 215csrrs t2, 0xC9C, zero 216 217# hpmcounter29h 218# uimm12 219# CHECK-INST: csrrs t2, 3229, zero 220# CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc9] 221# CHECK-INST-ALIAS: csrr t2, 3229 222csrrs t2, 0xC9D, zero 223 224# hpmcounter30h 225# uimm12 226# CHECK-INST: csrrs t2, 3230, zero 227# CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc9] 228# CHECK-INST-ALIAS: csrr t2, 3230 229csrrs t2, 0xC9E, zero 230 231# hpmcounter31h 232# uimm12 233# CHECK-INST: csrrs t2, 3231, zero 234# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc9] 235# CHECK-INST-ALIAS: csrr t2, 3231 236csrrs t2, 0xC9F, zero 237