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 machine mode CSR register names are RV32 only, but RV64 8# can encode and disassemble these registers if given their value. 9 10###################################### 11# Machine Protection and Translation 12###################################### 13 14# pmpcfg1 15# uimm12 16# CHECK-INST: csrrs t2, 929, zero 17# CHECK-ENC: encoding: [0xf3,0x23,0x10,0x3a] 18# CHECK-INST-ALIAS: csrr t2, 929 19csrrs t2, 0x3A1, zero 20 21# pmpcfg3 22# uimm12 23# CHECK-INST: csrrs t2, 931, zero 24# CHECK-ENC: encoding: [0xf3,0x23,0x30,0x3a] 25# CHECK-INST-ALIAS: csrr t2, 931 26csrrs t2, 0x3A3, zero 27 28###################################### 29# Machine Counter and Timers 30###################################### 31# mcycleh 32# uimm12 33# CHECK-INST: csrrs t2, 2944, zero 34# CHECK-ENC: encoding: [0xf3,0x23,0x00,0xb8] 35# CHECK-INST-ALIAS: csrr t2, 2944 36csrrs t2, 0xB80, zero 37 38# minstreth 39# uimm12 40# CHECK-INST: csrrs t2, 2946, zero 41# CHECK-ENC: encoding: [0xf3,0x23,0x20,0xb8] 42# CHECK-INST-ALIAS: csrr t2, 2946 43csrrs t2, 0xB82, zero 44 45# mhpmcounter3h 46# uimm12 47# CHECK-INST: csrrs t2, 2947, zero 48# CHECK-ENC: encoding: [0xf3,0x23,0x30,0xb8] 49# CHECK-INST-ALIAS: csrr t2, 2947 50csrrs t2, 0xB83, zero 51 52# mhpmcounter4h 53# uimm12 54# CHECK-INST: csrrs t2, 2948, zero 55# CHECK-ENC: encoding: [0xf3,0x23,0x40,0xb8] 56# CHECK-INST-ALIAS: csrr t2, 2948 57csrrs t2, 0xB84, zero 58 59# mhpmcounter5h 60# uimm12 61# CHECK-INST: csrrs t2, 2949, zero 62# CHECK-ENC: encoding: [0xf3,0x23,0x50,0xb8] 63# CHECK-INST-ALIAS: csrr t2, 2949 64csrrs t2, 0xB85, zero 65 66# mhpmcounter6h 67# uimm12 68# CHECK-INST: csrrs t2, 2950, zero 69# CHECK-ENC: encoding: [0xf3,0x23,0x60,0xb8] 70# CHECK-INST-ALIAS: csrr t2, 2950 71csrrs t2, 0xB86, zero 72 73# mhpmcounter7h 74# uimm12 75# CHECK-INST: csrrs t2, 2951, zero 76# CHECK-ENC: encoding: [0xf3,0x23,0x70,0xb8] 77# CHECK-INST-ALIAS: csrr t2, 2951 78csrrs t2, 0xB87, zero 79 80# mhpmcounter8h 81# uimm12 82# CHECK-INST: csrrs t2, 2952, zero 83# CHECK-ENC: encoding: [0xf3,0x23,0x80,0xb8] 84# CHECK-INST-ALIAS: csrr t2, 2952 85csrrs t2, 0xB88, zero 86 87# mhpmcounter9h 88# uimm12 89# CHECK-INST: csrrs t2, 2953, zero 90# CHECK-ENC: encoding: [0xf3,0x23,0x90,0xb8] 91# CHECK-INST-ALIAS: csrr t2, 2953 92csrrs t2, 0xB89, zero 93 94# mhpmcounter10h 95# uimm12 96# CHECK-INST: csrrs t2, 2954, zero 97# CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xb8] 98# CHECK-INST-ALIAS: csrr t2, 2954 99csrrs t2, 0xB8A, zero 100 101# mhpmcounter11h 102# uimm12 103# CHECK-INST: csrrs t2, 2955, zero 104# CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xb8] 105# CHECK-INST-ALIAS: csrr t2, 2955 106csrrs t2, 0xB8B, zero 107 108# mhpmcounter12h 109# uimm12 110# CHECK-INST: csrrs t2, 2956, zero 111# CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xb8] 112# CHECK-INST-ALIAS: csrr t2, 2956 113csrrs t2, 0xB8C, zero 114 115# mhpmcounter13h 116# uimm12 117# CHECK-INST: csrrs t2, 2957, zero 118# CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xb8] 119# CHECK-INST-ALIAS: csrr t2, 2957 120csrrs t2, 0xB8D, zero 121 122# mhpmcounter14h 123# uimm12 124# CHECK-INST: csrrs t2, 2958, zero 125# CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xb8] 126# CHECK-INST-ALIAS: csrr t2, 2958 127csrrs t2, 0xB8E, zero 128 129# mhpmcounter15h 130# uimm12 131# CHECK-INST: csrrs t2, 2959, zero 132# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xb8] 133# CHECK-INST-ALIAS: csrr t2, 2959 134csrrs t2, 0xB8F, zero 135 136# mhpmcounter16h 137# uimm12 138# CHECK-INST: csrrs t2, 2960, zero 139# CHECK-ENC: encoding: [0xf3,0x23,0x00,0xb9] 140# CHECK-INST-ALIAS: csrr t2, 2960 141csrrs t2, 0xB90, zero 142 143# mhpmcounter17h 144# uimm12 145# CHECK-INST: csrrs t2, 2961, zero 146# CHECK-ENC: encoding: [0xf3,0x23,0x10,0xb9] 147# CHECK-INST-ALIAS: csrr t2, 2961 148csrrs t2, 0xB91, zero 149 150# mhpmcounter18h 151# uimm12 152# CHECK-INST: csrrs t2, 2962, zero 153# CHECK-ENC: encoding: [0xf3,0x23,0x20,0xb9] 154# CHECK-INST-ALIAS: csrr t2, 2962 155csrrs t2, 0xB92, zero 156 157# mhpmcounter19h 158# uimm12 159# CHECK-INST: csrrs t2, 2963, zero 160# CHECK-ENC: encoding: [0xf3,0x23,0x30,0xb9] 161# CHECK-INST-ALIAS: csrr t2, 2963 162csrrs t2, 0xB93, zero 163 164# mhpmcounter20h 165# uimm12 166# CHECK-INST: csrrs t2, 2964, zero 167# CHECK-ENC: encoding: [0xf3,0x23,0x40,0xb9] 168# CHECK-INST-ALIAS: csrr t2, 2964 169csrrs t2, 0xB94, zero 170 171# mhpmcounter21h 172# uimm12 173# CHECK-INST: csrrs t2, 2965, zero 174# CHECK-ENC: encoding: [0xf3,0x23,0x50,0xb9] 175# CHECK-INST-ALIAS: csrr t2, 2965 176csrrs t2, 0xB95, zero 177 178# mhpmcounter22h 179# uimm12 180# CHECK-INST: csrrs t2, 2966, zero 181# CHECK-ENC: encoding: [0xf3,0x23,0x60,0xb9] 182# CHECK-INST-ALIAS: csrr t2, 2966 183csrrs t2, 0xB96, zero 184 185# mhpmcounter23h 186# uimm12 187# CHECK-INST: csrrs t2, 2967, zero 188# CHECK-ENC: encoding: [0xf3,0x23,0x70,0xb9] 189# CHECK-INST-ALIAS: csrr t2, 2967 190csrrs t2, 0xB97, zero 191 192# mhpmcounter24h 193# uimm12 194# CHECK-INST: csrrs t2, 2968, zero 195# CHECK-ENC: encoding: [0xf3,0x23,0x80,0xb9] 196# CHECK-INST-ALIAS: csrr t2, 2968 197csrrs t2, 0xB98, zero 198 199# mhpmcounter25h 200# uimm12 201# CHECK-INST: csrrs t2, 2969, zero 202# CHECK-ENC: encoding: [0xf3,0x23,0x90,0xb9] 203# CHECK-INST-ALIAS: csrr t2, 2969 204csrrs t2, 0xB99, zero 205 206# mhpmcounter26h 207# uimm12 208# CHECK-INST: csrrs t2, 2970, zero 209# CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xb9] 210# CHECK-INST-ALIAS: csrr t2, 2970 211csrrs t2, 0xB9A, zero 212 213# mhpmcounter27h 214# uimm12 215# CHECK-INST: csrrs t2, 2971, zero 216# CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xb9] 217# CHECK-INST-ALIAS: csrr t2, 2971 218csrrs t2, 0xB9B, zero 219 220# mhpmcounter28h 221# uimm12 222# CHECK-INST: csrrs t2, 2972, zero 223# CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xb9] 224# CHECK-INST-ALIAS: csrr t2, 2972 225csrrs t2, 0xB9C, zero 226 227# mhpmcounter29h 228# uimm12 229# CHECK-INST: csrrs t2, 2973, zero 230# CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xb9] 231# CHECK-INST-ALIAS: csrr t2, 2973 232csrrs t2, 0xB9D, zero 233 234# mhpmcounter30h 235# uimm12 236# CHECK-INST: csrrs t2, 2974, zero 237# CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xb9] 238# CHECK-INST-ALIAS: csrr t2, 2974 239csrrs t2, 0xB9E, zero 240 241# mhpmcounter31h 242# uimm12 243# CHECK-INST: csrrs t2, 2975, zero 244# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xb9] 245# CHECK-INST-ALIAS: csrr t2, 2975 246csrrs t2, 0xB9F, zero 247