| 1 | #ifdef GET_SUPPORTED_EXTENSIONS |
| 2 | #undef GET_SUPPORTED_EXTENSIONS |
| 3 | |
| 4 | static const RISCVSupportedExtension SupportedExtensions[] = { |
| 5 | {.Name: "a" , .Version: {.Major: 2, .Minor: 1}}, |
| 6 | {.Name: "b" , .Version: {.Major: 1, .Minor: 0}}, |
| 7 | {.Name: "c" , .Version: {.Major: 2, .Minor: 0}}, |
| 8 | {.Name: "d" , .Version: {.Major: 2, .Minor: 2}}, |
| 9 | {.Name: "e" , .Version: {.Major: 2, .Minor: 0}}, |
| 10 | {.Name: "f" , .Version: {.Major: 2, .Minor: 2}}, |
| 11 | {.Name: "h" , .Version: {.Major: 1, .Minor: 0}}, |
| 12 | {.Name: "i" , .Version: {.Major: 2, .Minor: 1}}, |
| 13 | {.Name: "m" , .Version: {.Major: 2, .Minor: 0}}, |
| 14 | {.Name: "q" , .Version: {.Major: 2, .Minor: 2}}, |
| 15 | {.Name: "sdext" , .Version: {.Major: 1, .Minor: 0}}, |
| 16 | {.Name: "sdtrig" , .Version: {.Major: 1, .Minor: 0}}, |
| 17 | {.Name: "sha" , .Version: {.Major: 1, .Minor: 0}}, |
| 18 | {.Name: "shcounterenw" , .Version: {.Major: 1, .Minor: 0}}, |
| 19 | {.Name: "shgatpa" , .Version: {.Major: 1, .Minor: 0}}, |
| 20 | {.Name: "shlcofideleg" , .Version: {.Major: 1, .Minor: 0}}, |
| 21 | {.Name: "shtvala" , .Version: {.Major: 1, .Minor: 0}}, |
| 22 | {.Name: "shvsatpa" , .Version: {.Major: 1, .Minor: 0}}, |
| 23 | {.Name: "shvstvala" , .Version: {.Major: 1, .Minor: 0}}, |
| 24 | {.Name: "shvstvecd" , .Version: {.Major: 1, .Minor: 0}}, |
| 25 | {.Name: "smaia" , .Version: {.Major: 1, .Minor: 0}}, |
| 26 | {.Name: "smcdeleg" , .Version: {.Major: 1, .Minor: 0}}, |
| 27 | {.Name: "smcntrpmf" , .Version: {.Major: 1, .Minor: 0}}, |
| 28 | {.Name: "smcsrind" , .Version: {.Major: 1, .Minor: 0}}, |
| 29 | {.Name: "smdbltrp" , .Version: {.Major: 1, .Minor: 0}}, |
| 30 | {.Name: "smepmp" , .Version: {.Major: 1, .Minor: 0}}, |
| 31 | {.Name: "smmpm" , .Version: {.Major: 1, .Minor: 0}}, |
| 32 | {.Name: "smnpm" , .Version: {.Major: 1, .Minor: 0}}, |
| 33 | {.Name: "smrnmi" , .Version: {.Major: 1, .Minor: 0}}, |
| 34 | {.Name: "smstateen" , .Version: {.Major: 1, .Minor: 0}}, |
| 35 | {.Name: "ssaia" , .Version: {.Major: 1, .Minor: 0}}, |
| 36 | {.Name: "ssccfg" , .Version: {.Major: 1, .Minor: 0}}, |
| 37 | {.Name: "ssccptr" , .Version: {.Major: 1, .Minor: 0}}, |
| 38 | {.Name: "sscofpmf" , .Version: {.Major: 1, .Minor: 0}}, |
| 39 | {.Name: "sscounterenw" , .Version: {.Major: 1, .Minor: 0}}, |
| 40 | {.Name: "sscsrind" , .Version: {.Major: 1, .Minor: 0}}, |
| 41 | {.Name: "ssdbltrp" , .Version: {.Major: 1, .Minor: 0}}, |
| 42 | {.Name: "ssnpm" , .Version: {.Major: 1, .Minor: 0}}, |
| 43 | {.Name: "sspm" , .Version: {.Major: 1, .Minor: 0}}, |
| 44 | {.Name: "ssqosid" , .Version: {.Major: 1, .Minor: 0}}, |
| 45 | {.Name: "ssstateen" , .Version: {.Major: 1, .Minor: 0}}, |
| 46 | {.Name: "ssstrict" , .Version: {.Major: 1, .Minor: 0}}, |
| 47 | {.Name: "sstc" , .Version: {.Major: 1, .Minor: 0}}, |
| 48 | {.Name: "sstvala" , .Version: {.Major: 1, .Minor: 0}}, |
| 49 | {.Name: "sstvecd" , .Version: {.Major: 1, .Minor: 0}}, |
| 50 | {.Name: "ssu64xl" , .Version: {.Major: 1, .Minor: 0}}, |
| 51 | {.Name: "supm" , .Version: {.Major: 1, .Minor: 0}}, |
| 52 | {.Name: "svade" , .Version: {.Major: 1, .Minor: 0}}, |
| 53 | {.Name: "svadu" , .Version: {.Major: 1, .Minor: 0}}, |
| 54 | {.Name: "svbare" , .Version: {.Major: 1, .Minor: 0}}, |
| 55 | {.Name: "svinval" , .Version: {.Major: 1, .Minor: 0}}, |
| 56 | {.Name: "svnapot" , .Version: {.Major: 1, .Minor: 0}}, |
| 57 | {.Name: "svpbmt" , .Version: {.Major: 1, .Minor: 0}}, |
| 58 | {.Name: "svvptc" , .Version: {.Major: 1, .Minor: 0}}, |
| 59 | {.Name: "v" , .Version: {.Major: 1, .Minor: 0}}, |
| 60 | {.Name: "xandesperf" , .Version: {.Major: 5, .Minor: 0}}, |
| 61 | {.Name: "xandesvbfhcvt" , .Version: {.Major: 5, .Minor: 0}}, |
| 62 | {.Name: "xandesvdot" , .Version: {.Major: 5, .Minor: 0}}, |
| 63 | {.Name: "xandesvpackfph" , .Version: {.Major: 5, .Minor: 0}}, |
| 64 | {.Name: "xcvalu" , .Version: {.Major: 1, .Minor: 0}}, |
| 65 | {.Name: "xcvbi" , .Version: {.Major: 1, .Minor: 0}}, |
| 66 | {.Name: "xcvbitmanip" , .Version: {.Major: 1, .Minor: 0}}, |
| 67 | {.Name: "xcvelw" , .Version: {.Major: 1, .Minor: 0}}, |
| 68 | {.Name: "xcvmac" , .Version: {.Major: 1, .Minor: 0}}, |
| 69 | {.Name: "xcvmem" , .Version: {.Major: 1, .Minor: 0}}, |
| 70 | {.Name: "xcvsimd" , .Version: {.Major: 1, .Minor: 0}}, |
| 71 | {.Name: "xmipscbop" , .Version: {.Major: 1, .Minor: 0}}, |
| 72 | {.Name: "xmipscmov" , .Version: {.Major: 1, .Minor: 0}}, |
| 73 | {.Name: "xmipslsp" , .Version: {.Major: 1, .Minor: 0}}, |
| 74 | {.Name: "xsfcease" , .Version: {.Major: 1, .Minor: 0}}, |
| 75 | {.Name: "xsfmm128t" , .Version: {.Major: 0, .Minor: 6}}, |
| 76 | {.Name: "xsfmm16t" , .Version: {.Major: 0, .Minor: 6}}, |
| 77 | {.Name: "xsfmm32a16f" , .Version: {.Major: 0, .Minor: 6}}, |
| 78 | {.Name: "xsfmm32a32f" , .Version: {.Major: 0, .Minor: 6}}, |
| 79 | {.Name: "xsfmm32a8f" , .Version: {.Major: 0, .Minor: 6}}, |
| 80 | {.Name: "xsfmm32a8i" , .Version: {.Major: 0, .Minor: 6}}, |
| 81 | {.Name: "xsfmm32t" , .Version: {.Major: 0, .Minor: 6}}, |
| 82 | {.Name: "xsfmm64a64f" , .Version: {.Major: 0, .Minor: 6}}, |
| 83 | {.Name: "xsfmm64t" , .Version: {.Major: 0, .Minor: 6}}, |
| 84 | {.Name: "xsfmmbase" , .Version: {.Major: 0, .Minor: 6}}, |
| 85 | {.Name: "xsfvcp" , .Version: {.Major: 1, .Minor: 0}}, |
| 86 | {.Name: "xsfvfnrclipxfqf" , .Version: {.Major: 1, .Minor: 0}}, |
| 87 | {.Name: "xsfvfwmaccqqq" , .Version: {.Major: 1, .Minor: 0}}, |
| 88 | {.Name: "xsfvqmaccdod" , .Version: {.Major: 1, .Minor: 0}}, |
| 89 | {.Name: "xsfvqmaccqoq" , .Version: {.Major: 1, .Minor: 0}}, |
| 90 | {.Name: "xsifivecdiscarddlone" , .Version: {.Major: 1, .Minor: 0}}, |
| 91 | {.Name: "xsifivecflushdlone" , .Version: {.Major: 1, .Minor: 0}}, |
| 92 | {.Name: "xtheadba" , .Version: {.Major: 1, .Minor: 0}}, |
| 93 | {.Name: "xtheadbb" , .Version: {.Major: 1, .Minor: 0}}, |
| 94 | {.Name: "xtheadbs" , .Version: {.Major: 1, .Minor: 0}}, |
| 95 | {.Name: "xtheadcmo" , .Version: {.Major: 1, .Minor: 0}}, |
| 96 | {.Name: "xtheadcondmov" , .Version: {.Major: 1, .Minor: 0}}, |
| 97 | {.Name: "xtheadfmemidx" , .Version: {.Major: 1, .Minor: 0}}, |
| 98 | {.Name: "xtheadmac" , .Version: {.Major: 1, .Minor: 0}}, |
| 99 | {.Name: "xtheadmemidx" , .Version: {.Major: 1, .Minor: 0}}, |
| 100 | {.Name: "xtheadmempair" , .Version: {.Major: 1, .Minor: 0}}, |
| 101 | {.Name: "xtheadsync" , .Version: {.Major: 1, .Minor: 0}}, |
| 102 | {.Name: "xtheadvdot" , .Version: {.Major: 1, .Minor: 0}}, |
| 103 | {.Name: "xventanacondops" , .Version: {.Major: 1, .Minor: 0}}, |
| 104 | {.Name: "xwchc" , .Version: {.Major: 2, .Minor: 2}}, |
| 105 | {.Name: "za128rs" , .Version: {.Major: 1, .Minor: 0}}, |
| 106 | {.Name: "za64rs" , .Version: {.Major: 1, .Minor: 0}}, |
| 107 | {.Name: "zaamo" , .Version: {.Major: 1, .Minor: 0}}, |
| 108 | {.Name: "zabha" , .Version: {.Major: 1, .Minor: 0}}, |
| 109 | {.Name: "zacas" , .Version: {.Major: 1, .Minor: 0}}, |
| 110 | {.Name: "zalrsc" , .Version: {.Major: 1, .Minor: 0}}, |
| 111 | {.Name: "zama16b" , .Version: {.Major: 1, .Minor: 0}}, |
| 112 | {.Name: "zawrs" , .Version: {.Major: 1, .Minor: 0}}, |
| 113 | {.Name: "zba" , .Version: {.Major: 1, .Minor: 0}}, |
| 114 | {.Name: "zbb" , .Version: {.Major: 1, .Minor: 0}}, |
| 115 | {.Name: "zbc" , .Version: {.Major: 1, .Minor: 0}}, |
| 116 | {.Name: "zbkb" , .Version: {.Major: 1, .Minor: 0}}, |
| 117 | {.Name: "zbkc" , .Version: {.Major: 1, .Minor: 0}}, |
| 118 | {.Name: "zbkx" , .Version: {.Major: 1, .Minor: 0}}, |
| 119 | {.Name: "zbs" , .Version: {.Major: 1, .Minor: 0}}, |
| 120 | {.Name: "zca" , .Version: {.Major: 1, .Minor: 0}}, |
| 121 | {.Name: "zcb" , .Version: {.Major: 1, .Minor: 0}}, |
| 122 | {.Name: "zcd" , .Version: {.Major: 1, .Minor: 0}}, |
| 123 | {.Name: "zce" , .Version: {.Major: 1, .Minor: 0}}, |
| 124 | {.Name: "zcf" , .Version: {.Major: 1, .Minor: 0}}, |
| 125 | {.Name: "zclsd" , .Version: {.Major: 1, .Minor: 0}}, |
| 126 | {.Name: "zcmop" , .Version: {.Major: 1, .Minor: 0}}, |
| 127 | {.Name: "zcmp" , .Version: {.Major: 1, .Minor: 0}}, |
| 128 | {.Name: "zcmt" , .Version: {.Major: 1, .Minor: 0}}, |
| 129 | {.Name: "zdinx" , .Version: {.Major: 1, .Minor: 0}}, |
| 130 | {.Name: "zfa" , .Version: {.Major: 1, .Minor: 0}}, |
| 131 | {.Name: "zfbfmin" , .Version: {.Major: 1, .Minor: 0}}, |
| 132 | {.Name: "zfh" , .Version: {.Major: 1, .Minor: 0}}, |
| 133 | {.Name: "zfhmin" , .Version: {.Major: 1, .Minor: 0}}, |
| 134 | {.Name: "zfinx" , .Version: {.Major: 1, .Minor: 0}}, |
| 135 | {.Name: "zhinx" , .Version: {.Major: 1, .Minor: 0}}, |
| 136 | {.Name: "zhinxmin" , .Version: {.Major: 1, .Minor: 0}}, |
| 137 | {.Name: "zic64b" , .Version: {.Major: 1, .Minor: 0}}, |
| 138 | {.Name: "zicbom" , .Version: {.Major: 1, .Minor: 0}}, |
| 139 | {.Name: "zicbop" , .Version: {.Major: 1, .Minor: 0}}, |
| 140 | {.Name: "zicboz" , .Version: {.Major: 1, .Minor: 0}}, |
| 141 | {.Name: "ziccamoa" , .Version: {.Major: 1, .Minor: 0}}, |
| 142 | {.Name: "ziccamoc" , .Version: {.Major: 1, .Minor: 0}}, |
| 143 | {.Name: "ziccif" , .Version: {.Major: 1, .Minor: 0}}, |
| 144 | {.Name: "zicclsm" , .Version: {.Major: 1, .Minor: 0}}, |
| 145 | {.Name: "ziccrse" , .Version: {.Major: 1, .Minor: 0}}, |
| 146 | {.Name: "zicntr" , .Version: {.Major: 2, .Minor: 0}}, |
| 147 | {.Name: "zicond" , .Version: {.Major: 1, .Minor: 0}}, |
| 148 | {.Name: "zicsr" , .Version: {.Major: 2, .Minor: 0}}, |
| 149 | {.Name: "zifencei" , .Version: {.Major: 2, .Minor: 0}}, |
| 150 | {.Name: "zihintntl" , .Version: {.Major: 1, .Minor: 0}}, |
| 151 | {.Name: "zihintpause" , .Version: {.Major: 2, .Minor: 0}}, |
| 152 | {.Name: "zihpm" , .Version: {.Major: 2, .Minor: 0}}, |
| 153 | {.Name: "zilsd" , .Version: {.Major: 1, .Minor: 0}}, |
| 154 | {.Name: "zimop" , .Version: {.Major: 1, .Minor: 0}}, |
| 155 | {.Name: "zk" , .Version: {.Major: 1, .Minor: 0}}, |
| 156 | {.Name: "zkn" , .Version: {.Major: 1, .Minor: 0}}, |
| 157 | {.Name: "zknd" , .Version: {.Major: 1, .Minor: 0}}, |
| 158 | {.Name: "zkne" , .Version: {.Major: 1, .Minor: 0}}, |
| 159 | {.Name: "zknh" , .Version: {.Major: 1, .Minor: 0}}, |
| 160 | {.Name: "zkr" , .Version: {.Major: 1, .Minor: 0}}, |
| 161 | {.Name: "zks" , .Version: {.Major: 1, .Minor: 0}}, |
| 162 | {.Name: "zksed" , .Version: {.Major: 1, .Minor: 0}}, |
| 163 | {.Name: "zksh" , .Version: {.Major: 1, .Minor: 0}}, |
| 164 | {.Name: "zkt" , .Version: {.Major: 1, .Minor: 0}}, |
| 165 | {.Name: "zmmul" , .Version: {.Major: 1, .Minor: 0}}, |
| 166 | {.Name: "ztso" , .Version: {.Major: 1, .Minor: 0}}, |
| 167 | {.Name: "zvbb" , .Version: {.Major: 1, .Minor: 0}}, |
| 168 | {.Name: "zvbc" , .Version: {.Major: 1, .Minor: 0}}, |
| 169 | {.Name: "zve32f" , .Version: {.Major: 1, .Minor: 0}}, |
| 170 | {.Name: "zve32x" , .Version: {.Major: 1, .Minor: 0}}, |
| 171 | {.Name: "zve64d" , .Version: {.Major: 1, .Minor: 0}}, |
| 172 | {.Name: "zve64f" , .Version: {.Major: 1, .Minor: 0}}, |
| 173 | {.Name: "zve64x" , .Version: {.Major: 1, .Minor: 0}}, |
| 174 | {.Name: "zvfbfmin" , .Version: {.Major: 1, .Minor: 0}}, |
| 175 | {.Name: "zvfbfwma" , .Version: {.Major: 1, .Minor: 0}}, |
| 176 | {.Name: "zvfh" , .Version: {.Major: 1, .Minor: 0}}, |
| 177 | {.Name: "zvfhmin" , .Version: {.Major: 1, .Minor: 0}}, |
| 178 | {.Name: "zvkb" , .Version: {.Major: 1, .Minor: 0}}, |
| 179 | {.Name: "zvkg" , .Version: {.Major: 1, .Minor: 0}}, |
| 180 | {.Name: "zvkn" , .Version: {.Major: 1, .Minor: 0}}, |
| 181 | {.Name: "zvknc" , .Version: {.Major: 1, .Minor: 0}}, |
| 182 | {.Name: "zvkned" , .Version: {.Major: 1, .Minor: 0}}, |
| 183 | {.Name: "zvkng" , .Version: {.Major: 1, .Minor: 0}}, |
| 184 | {.Name: "zvknha" , .Version: {.Major: 1, .Minor: 0}}, |
| 185 | {.Name: "zvknhb" , .Version: {.Major: 1, .Minor: 0}}, |
| 186 | {.Name: "zvks" , .Version: {.Major: 1, .Minor: 0}}, |
| 187 | {.Name: "zvksc" , .Version: {.Major: 1, .Minor: 0}}, |
| 188 | {.Name: "zvksed" , .Version: {.Major: 1, .Minor: 0}}, |
| 189 | {.Name: "zvksg" , .Version: {.Major: 1, .Minor: 0}}, |
| 190 | {.Name: "zvksh" , .Version: {.Major: 1, .Minor: 0}}, |
| 191 | {.Name: "zvkt" , .Version: {.Major: 1, .Minor: 0}}, |
| 192 | {.Name: "zvl1024b" , .Version: {.Major: 1, .Minor: 0}}, |
| 193 | {.Name: "zvl128b" , .Version: {.Major: 1, .Minor: 0}}, |
| 194 | {.Name: "zvl16384b" , .Version: {.Major: 1, .Minor: 0}}, |
| 195 | {.Name: "zvl2048b" , .Version: {.Major: 1, .Minor: 0}}, |
| 196 | {.Name: "zvl256b" , .Version: {.Major: 1, .Minor: 0}}, |
| 197 | {.Name: "zvl32768b" , .Version: {.Major: 1, .Minor: 0}}, |
| 198 | {.Name: "zvl32b" , .Version: {.Major: 1, .Minor: 0}}, |
| 199 | {.Name: "zvl4096b" , .Version: {.Major: 1, .Minor: 0}}, |
| 200 | {.Name: "zvl512b" , .Version: {.Major: 1, .Minor: 0}}, |
| 201 | {.Name: "zvl64b" , .Version: {.Major: 1, .Minor: 0}}, |
| 202 | {.Name: "zvl65536b" , .Version: {.Major: 1, .Minor: 0}}, |
| 203 | {.Name: "zvl8192b" , .Version: {.Major: 1, .Minor: 0}}, |
| 204 | }; |
| 205 | |
| 206 | static const RISCVSupportedExtension SupportedExperimentalExtensions[] = { |
| 207 | {.Name: "p" , .Version: {.Major: 0, .Minor: 14}}, |
| 208 | {.Name: "smctr" , .Version: {.Major: 1, .Minor: 0}}, |
| 209 | {.Name: "ssctr" , .Version: {.Major: 1, .Minor: 0}}, |
| 210 | {.Name: "svukte" , .Version: {.Major: 0, .Minor: 3}}, |
| 211 | {.Name: "xqccmp" , .Version: {.Major: 0, .Minor: 3}}, |
| 212 | {.Name: "xqcia" , .Version: {.Major: 0, .Minor: 7}}, |
| 213 | {.Name: "xqciac" , .Version: {.Major: 0, .Minor: 3}}, |
| 214 | {.Name: "xqcibi" , .Version: {.Major: 0, .Minor: 2}}, |
| 215 | {.Name: "xqcibm" , .Version: {.Major: 0, .Minor: 8}}, |
| 216 | {.Name: "xqcicli" , .Version: {.Major: 0, .Minor: 3}}, |
| 217 | {.Name: "xqcicm" , .Version: {.Major: 0, .Minor: 2}}, |
| 218 | {.Name: "xqcics" , .Version: {.Major: 0, .Minor: 2}}, |
| 219 | {.Name: "xqcicsr" , .Version: {.Major: 0, .Minor: 4}}, |
| 220 | {.Name: "xqciint" , .Version: {.Major: 0, .Minor: 10}}, |
| 221 | {.Name: "xqciio" , .Version: {.Major: 0, .Minor: 1}}, |
| 222 | {.Name: "xqcilb" , .Version: {.Major: 0, .Minor: 2}}, |
| 223 | {.Name: "xqcili" , .Version: {.Major: 0, .Minor: 2}}, |
| 224 | {.Name: "xqcilia" , .Version: {.Major: 0, .Minor: 2}}, |
| 225 | {.Name: "xqcilo" , .Version: {.Major: 0, .Minor: 3}}, |
| 226 | {.Name: "xqcilsm" , .Version: {.Major: 0, .Minor: 6}}, |
| 227 | {.Name: "xqcisim" , .Version: {.Major: 0, .Minor: 2}}, |
| 228 | {.Name: "xqcisls" , .Version: {.Major: 0, .Minor: 2}}, |
| 229 | {.Name: "xqcisync" , .Version: {.Major: 0, .Minor: 3}}, |
| 230 | {.Name: "xrivosvisni" , .Version: {.Major: 0, .Minor: 1}}, |
| 231 | {.Name: "xrivosvizip" , .Version: {.Major: 0, .Minor: 1}}, |
| 232 | {.Name: "xsfmclic" , .Version: {.Major: 0, .Minor: 1}}, |
| 233 | {.Name: "xsfsclic" , .Version: {.Major: 0, .Minor: 1}}, |
| 234 | {.Name: "zalasr" , .Version: {.Major: 0, .Minor: 1}}, |
| 235 | {.Name: "zicfilp" , .Version: {.Major: 1, .Minor: 0}}, |
| 236 | {.Name: "zicfiss" , .Version: {.Major: 1, .Minor: 0}}, |
| 237 | {.Name: "zvbc32e" , .Version: {.Major: 0, .Minor: 7}}, |
| 238 | {.Name: "zvkgs" , .Version: {.Major: 0, .Minor: 7}}, |
| 239 | {.Name: "zvqdotq" , .Version: {.Major: 0, .Minor: 0}}, |
| 240 | }; |
| 241 | |
| 242 | #endif // GET_SUPPORTED_EXTENSIONS |
| 243 | |
| 244 | #ifdef GET_IMPLIED_EXTENSIONS |
| 245 | #undef GET_IMPLIED_EXTENSIONS |
| 246 | |
| 247 | |
| 248 | static constexpr ImpliedExtsEntry ImpliedExts[] = { |
| 249 | { {"a" }, "zaamo" }, |
| 250 | { {"a" }, "zalrsc" }, |
| 251 | { {"b" }, "zba" }, |
| 252 | { {"b" }, "zbb" }, |
| 253 | { {"b" }, "zbs" }, |
| 254 | { {"c" }, "zca" }, |
| 255 | { {"d" }, "f" }, |
| 256 | { {"f" }, "zicsr" }, |
| 257 | { {"m" }, "zmmul" }, |
| 258 | { {"q" }, "d" }, |
| 259 | { {"sha" }, "h" }, |
| 260 | { {"sha" }, "ssstateen" }, |
| 261 | { {"sha" }, "shcounterenw" }, |
| 262 | { {"sha" }, "shvstvala" }, |
| 263 | { {"sha" }, "shtvala" }, |
| 264 | { {"sha" }, "shvstvecd" }, |
| 265 | { {"sha" }, "shvsatpa" }, |
| 266 | { {"sha" }, "shgatpa" }, |
| 267 | { {"smctr" }, "sscsrind" }, |
| 268 | { {"smdbltrp" }, "zicsr" }, |
| 269 | { {"ssctr" }, "sscsrind" }, |
| 270 | { {"ssdbltrp" }, "zicsr" }, |
| 271 | { {"v" }, "zvl128b" }, |
| 272 | { {"v" }, "zve64d" }, |
| 273 | { {"xandesvbfhcvt" }, "zve32f" }, |
| 274 | { {"xandesvdot" }, "zve32x" }, |
| 275 | { {"xandesvpackfph" }, "f" }, |
| 276 | { {"xqccmp" }, "zca" }, |
| 277 | { {"xqciac" }, "zca" }, |
| 278 | { {"xqcibi" }, "zca" }, |
| 279 | { {"xqcibm" }, "zca" }, |
| 280 | { {"xqcicm" }, "zca" }, |
| 281 | { {"xqciint" }, "zca" }, |
| 282 | { {"xqcilb" }, "zca" }, |
| 283 | { {"xqcili" }, "zca" }, |
| 284 | { {"xqcilia" }, "zca" }, |
| 285 | { {"xqcilo" }, "zca" }, |
| 286 | { {"xqcisim" }, "zca" }, |
| 287 | { {"xqcisync" }, "zca" }, |
| 288 | { {"xsfmm128t" }, "xsfmmbase" }, |
| 289 | { {"xsfmm128t" }, "zvl512b" }, |
| 290 | { {"xsfmm16t" }, "xsfmmbase" }, |
| 291 | { {"xsfmm16t" }, "zvl64b" }, |
| 292 | { {"xsfmm32a16f" }, "xsfmmbase" }, |
| 293 | { {"xsfmm32a16f" }, "zve32f" }, |
| 294 | { {"xsfmm32a32f" }, "xsfmmbase" }, |
| 295 | { {"xsfmm32a32f" }, "zve32f" }, |
| 296 | { {"xsfmm32a8f" }, "xsfmmbase" }, |
| 297 | { {"xsfmm32a8f" }, "zve32f" }, |
| 298 | { {"xsfmm32a8i" }, "xsfmmbase" }, |
| 299 | { {"xsfmm32t" }, "xsfmmbase" }, |
| 300 | { {"xsfmm32t" }, "zvl128b" }, |
| 301 | { {"xsfmm64a64f" }, "xsfmmbase" }, |
| 302 | { {"xsfmm64a64f" }, "zve64d" }, |
| 303 | { {"xsfmm64t" }, "xsfmmbase" }, |
| 304 | { {"xsfmm64t" }, "zvl256b" }, |
| 305 | { {"xsfmmbase" }, "zve32x" }, |
| 306 | { {"xsfvcp" }, "zve32x" }, |
| 307 | { {"xsfvfnrclipxfqf" }, "zve32f" }, |
| 308 | { {"xsfvfwmaccqqq" }, "zvfbfmin" }, |
| 309 | { {"xsfvqmaccdod" }, "zve32x" }, |
| 310 | { {"xsfvqmaccqoq" }, "zve32x" }, |
| 311 | { {"xtheadvdot" }, "v" }, |
| 312 | { {"xwchc" }, "zca" }, |
| 313 | { {"zabha" }, "zaamo" }, |
| 314 | { {"zacas" }, "zaamo" }, |
| 315 | { {"zcb" }, "zca" }, |
| 316 | { {"zcd" }, "d" }, |
| 317 | { {"zcd" }, "zca" }, |
| 318 | { {"zce" }, "zca" }, |
| 319 | { {"zce" }, "zcb" }, |
| 320 | { {"zce" }, "zcmp" }, |
| 321 | { {"zce" }, "zcmt" }, |
| 322 | { {"zcf" }, "f" }, |
| 323 | { {"zcf" }, "zca" }, |
| 324 | { {"zclsd" }, "zilsd" }, |
| 325 | { {"zclsd" }, "zca" }, |
| 326 | { {"zcmop" }, "zca" }, |
| 327 | { {"zcmp" }, "zca" }, |
| 328 | { {"zcmt" }, "zca" }, |
| 329 | { {"zcmt" }, "zicsr" }, |
| 330 | { {"zdinx" }, "zfinx" }, |
| 331 | { {"zfa" }, "f" }, |
| 332 | { {"zfbfmin" }, "f" }, |
| 333 | { {"zfh" }, "zfhmin" }, |
| 334 | { {"zfhmin" }, "f" }, |
| 335 | { {"zfinx" }, "zicsr" }, |
| 336 | { {"zhinx" }, "zhinxmin" }, |
| 337 | { {"zhinxmin" }, "zfinx" }, |
| 338 | { {"zicfilp" }, "zicsr" }, |
| 339 | { {"zicfiss" }, "zicsr" }, |
| 340 | { {"zicfiss" }, "zimop" }, |
| 341 | { {"zicntr" }, "zicsr" }, |
| 342 | { {"zihpm" }, "zicsr" }, |
| 343 | { {"zk" }, "zkn" }, |
| 344 | { {"zk" }, "zkr" }, |
| 345 | { {"zk" }, "zkt" }, |
| 346 | { {"zkn" }, "zbkb" }, |
| 347 | { {"zkn" }, "zbkc" }, |
| 348 | { {"zkn" }, "zbkx" }, |
| 349 | { {"zkn" }, "zkne" }, |
| 350 | { {"zkn" }, "zknd" }, |
| 351 | { {"zkn" }, "zknh" }, |
| 352 | { {"zks" }, "zbkb" }, |
| 353 | { {"zks" }, "zbkc" }, |
| 354 | { {"zks" }, "zbkx" }, |
| 355 | { {"zks" }, "zksed" }, |
| 356 | { {"zks" }, "zksh" }, |
| 357 | { {"zvbb" }, "zvkb" }, |
| 358 | { {"zvbc" }, "zve64x" }, |
| 359 | { {"zvbc32e" }, "zve32x" }, |
| 360 | { {"zve32f" }, "zve32x" }, |
| 361 | { {"zve32f" }, "f" }, |
| 362 | { {"zve32x" }, "zicsr" }, |
| 363 | { {"zve32x" }, "zvl32b" }, |
| 364 | { {"zve64d" }, "zve64f" }, |
| 365 | { {"zve64d" }, "d" }, |
| 366 | { {"zve64f" }, "zve32f" }, |
| 367 | { {"zve64f" }, "zve64x" }, |
| 368 | { {"zve64x" }, "zve32x" }, |
| 369 | { {"zve64x" }, "zvl64b" }, |
| 370 | { {"zvfbfmin" }, "zve32f" }, |
| 371 | { {"zvfbfwma" }, "zvfbfmin" }, |
| 372 | { {"zvfbfwma" }, "zfbfmin" }, |
| 373 | { {"zvfh" }, "zvfhmin" }, |
| 374 | { {"zvfh" }, "zfhmin" }, |
| 375 | { {"zvfhmin" }, "zve32f" }, |
| 376 | { {"zvkb" }, "zve32x" }, |
| 377 | { {"zvkg" }, "zve32x" }, |
| 378 | { {"zvkgs" }, "zvkg" }, |
| 379 | { {"zvkn" }, "zvkned" }, |
| 380 | { {"zvkn" }, "zvknhb" }, |
| 381 | { {"zvkn" }, "zvkb" }, |
| 382 | { {"zvkn" }, "zvkt" }, |
| 383 | { {"zvknc" }, "zvkn" }, |
| 384 | { {"zvknc" }, "zvbc" }, |
| 385 | { {"zvkned" }, "zve32x" }, |
| 386 | { {"zvkng" }, "zvkn" }, |
| 387 | { {"zvkng" }, "zvkg" }, |
| 388 | { {"zvknha" }, "zve32x" }, |
| 389 | { {"zvknhb" }, "zve64x" }, |
| 390 | { {"zvks" }, "zvksed" }, |
| 391 | { {"zvks" }, "zvksh" }, |
| 392 | { {"zvks" }, "zvkb" }, |
| 393 | { {"zvks" }, "zvkt" }, |
| 394 | { {"zvksc" }, "zvks" }, |
| 395 | { {"zvksc" }, "zvbc" }, |
| 396 | { {"zvksed" }, "zve32x" }, |
| 397 | { {"zvksg" }, "zvks" }, |
| 398 | { {"zvksg" }, "zvkg" }, |
| 399 | { {"zvksh" }, "zve32x" }, |
| 400 | { {"zvl1024b" }, "zvl512b" }, |
| 401 | { {"zvl128b" }, "zvl64b" }, |
| 402 | { {"zvl16384b" }, "zvl8192b" }, |
| 403 | { {"zvl2048b" }, "zvl1024b" }, |
| 404 | { {"zvl256b" }, "zvl128b" }, |
| 405 | { {"zvl32768b" }, "zvl16384b" }, |
| 406 | { {"zvl4096b" }, "zvl2048b" }, |
| 407 | { {"zvl512b" }, "zvl256b" }, |
| 408 | { {"zvl64b" }, "zvl32b" }, |
| 409 | { {"zvl65536b" }, "zvl32768b" }, |
| 410 | { {"zvl8192b" }, "zvl4096b" }, |
| 411 | { {"zvqdotq" }, "zve32x" }, |
| 412 | }; |
| 413 | |
| 414 | #endif // GET_IMPLIED_EXTENSIONS |
| 415 | |
| 416 | #ifdef GET_SUPPORTED_PROFILES |
| 417 | #undef GET_SUPPORTED_PROFILES |
| 418 | |
| 419 | static constexpr RISCVProfile SupportedProfiles[] = { |
| 420 | {"rva20s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0" }, |
| 421 | {"rva20u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_za128rs1p0" }, |
| 422 | {"rva22s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0" }, |
| 423 | {"rva22u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0" }, |
| 424 | {"rva23s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_sha1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, |
| 425 | {"rva23u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_supm1p0" }, |
| 426 | {"rvb23s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, |
| 427 | {"rvb23u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0" }, |
| 428 | {"rvi20u32" ,"rv32i2p1" }, |
| 429 | {"rvi20u64" ,"rv64i2p1" }, |
| 430 | }; |
| 431 | |
| 432 | static constexpr RISCVProfile SupportedExperimentalProfiles[] = { |
| 433 | {"rvm23u32" ,"rv32i2p1_m2p0_b1p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0" }, |
| 434 | }; |
| 435 | |
| 436 | #endif // GET_SUPPORTED_PROFILES |
| 437 | |
| 438 | #ifndef PROC |
| 439 | #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID) |
| 440 | #endif |
| 441 | |
| 442 | PROC(ANDES_A25, {"andes-a25" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 443 | PROC(ANDES_A45, {"andes-a45" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 444 | PROC(ANDES_AX25, {"andes-ax25" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 445 | PROC(ANDES_AX45, {"andes-ax45" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 446 | PROC(ANDES_AX45MPV, {"andes-ax45mpv" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 447 | PROC(ANDES_N45, {"andes-n45" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 448 | PROC(ANDES_NX45, {"andes-nx45" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 449 | PROC(GENERIC_RV32, {"generic-rv32" }, {"rv32i2p1" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 450 | PROC(GENERIC_RV64, {"generic-rv64" }, {"rv64i2p1" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 451 | PROC(MIPS_P8700, {"mips-p8700" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_xmipscbop1p0_xmipscmov1p0_xmipslsp1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 452 | PROC(ROCKET_RV32, {"rocket-rv32" }, {"rv32i2p1_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 453 | PROC(ROCKET_RV64, {"rocket-rv64" }, {"rv64i2p1_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 454 | PROC(RP2350_HAZARD3, {"rp2350-hazard3" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zcb1p0_zcmp1p0_zba1p0_zbb1p0_zbkb1p0_zbs1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 455 | PROC(SIFIVE_E20, {"sifive-e20" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 456 | PROC(SIFIVE_E21, {"sifive-e21" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 457 | PROC(SIFIVE_E24, {"sifive-e24" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 458 | PROC(SIFIVE_E31, {"sifive-e31" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 459 | PROC(SIFIVE_E34, {"sifive-e34" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 460 | PROC(SIFIVE_E76, {"sifive-e76" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 461 | PROC(SIFIVE_P450, {"sifive-p450" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 462 | PROC(SIFIVE_P470, {"sifive-p470" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 463 | PROC(SIFIVE_P550, {"sifive-p550" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zba1p0_zbb1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 464 | PROC(SIFIVE_P670, {"sifive-p670" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 465 | PROC(SIFIVE_P870, {"sifive-p870" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zama16b1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvkt1p0_zvl128b1p0_supm1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 466 | PROC(SIFIVE_S21, {"sifive-s21" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 467 | PROC(SIFIVE_S51, {"sifive-s51" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 468 | PROC(SIFIVE_S54, {"sifive-s54" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 469 | PROC(SIFIVE_S76, {"sifive-s76" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 470 | PROC(SIFIVE_U54, {"sifive-u54" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 471 | PROC(SIFIVE_U74, {"sifive-u74" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 472 | PROC(SIFIVE_X280, {"sifive-x280" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 473 | PROC(SIFIVE_X390, {"sifive-x390" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_ziccrse1p0_zicfilp1p0_zicfiss1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfh1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvkt1p0_zvl1024b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 474 | PROC(SPACEMIT_X60, {"spacemit-x60" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfh1p0_zfhmin1p0_zbc1p0_zbkc1p0_zkt1p0_zvfh1p0_zvkt1p0_zvl256b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 1, 0, 0x00000710, 0x8000000058000001, 0x1000000049772200) |
| 475 | PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base" }, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 476 | PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 477 | PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 478 | PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 479 | PROC(SYNTACORE_SCR4_RV32, {"syntacore-scr4-rv32" }, {"rv32i2p1_m2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 480 | PROC(SYNTACORE_SCR4_RV64, {"syntacore-scr4-rv64" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 481 | PROC(SYNTACORE_SCR5_RV32, {"syntacore-scr5-rv32" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 482 | PROC(SYNTACORE_SCR5_RV64, {"syntacore-scr5-rv64" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 483 | PROC(SYNTACORE_SCR7, {"syntacore-scr7" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 484 | PROC(TENSTORRENT_ASCALON_D8, {"tt-ascalon-d8" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvbc1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvkng1p0_zvkt1p0_zvl256b1p0_sha1p0_smaia1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 485 | PROC(VENTANA_VEYRON_V1, {"veyron-v1" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicbop1p0_zicboz1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_xventanacondops1p0" }, 0, 0, 0x0000061f, 0x8000000000010000, 0x0000000000000111) |
| 486 | PROC(XIANGSHAN_KUNMINGHU, {"xiangshan-kunminghu" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zacas1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zbc1p0_zkn1p0_zks1p0_zkt1p0_zvbb1p0_zvfh1p0_zvfhmin1p0_zvkt1p0_zvl128b1p0_sha1p0_smaia1p0_smcsrind1p0_smdbltrp1p0_smmpm1p0_smnpm1p0_smrnmi1p0_smstateen1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sscsrind1p0_ssdbltrp1p0_ssnpm1p0_sspm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 487 | PROC(XIANGSHAN_NANHU, {"xiangshan-nanhu" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicboz1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0_zksed1p0_zksh1p0_svinval1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
| 488 | |
| 489 | #undef PROC |
| 490 | |
| 491 | #ifndef TUNE_PROC |
| 492 | #define TUNE_PROC(ENUM, NAME) |
| 493 | #endif |
| 494 | |
| 495 | TUNE_PROC(ANDES_45, "andes-45-series" ) |
| 496 | TUNE_PROC(GENERIC, "generic" ) |
| 497 | TUNE_PROC(GENERIC_OOO, "generic-ooo" ) |
| 498 | TUNE_PROC(ROCKET, "rocket" ) |
| 499 | TUNE_PROC(SIFIVE_7, "sifive-7-series" ) |
| 500 | |
| 501 | #undef TUNE_PROC |
| 502 | #ifdef GET_RISCVExtensionBitmaskTable_IMPL |
| 503 | static const RISCVExtensionBitmask ExtensionBitmask[]={ |
| 504 | {"a" , 0, 0ULL}, |
| 505 | {"b" , 0, 1ULL}, |
| 506 | {"c" , 0, 2ULL}, |
| 507 | {"d" , 0, 3ULL}, |
| 508 | {"e" , 0, 4ULL}, |
| 509 | {"f" , 0, 5ULL}, |
| 510 | {"h" , 0, 7ULL}, |
| 511 | {"i" , 0, 8ULL}, |
| 512 | {"m" , 0, 12ULL}, |
| 513 | {"q" , 0, 16ULL}, |
| 514 | {"v" , 0, 21ULL}, |
| 515 | {"zacas" , 0, 26ULL}, |
| 516 | {"zba" , 0, 27ULL}, |
| 517 | {"zbb" , 0, 28ULL}, |
| 518 | {"zbc" , 0, 29ULL}, |
| 519 | {"zbkb" , 0, 30ULL}, |
| 520 | {"zbkc" , 0, 31ULL}, |
| 521 | {"zbkx" , 0, 32ULL}, |
| 522 | {"zbs" , 0, 33ULL}, |
| 523 | {"zfa" , 0, 34ULL}, |
| 524 | {"zfh" , 0, 35ULL}, |
| 525 | {"zfhmin" , 0, 36ULL}, |
| 526 | {"zicboz" , 0, 37ULL}, |
| 527 | {"zicond" , 0, 38ULL}, |
| 528 | {"zihintntl" , 0, 39ULL}, |
| 529 | {"zihintpause" , 0, 40ULL}, |
| 530 | {"zknd" , 0, 41ULL}, |
| 531 | {"zkne" , 0, 42ULL}, |
| 532 | {"zknh" , 0, 43ULL}, |
| 533 | {"zksed" , 0, 44ULL}, |
| 534 | {"zksh" , 0, 45ULL}, |
| 535 | {"zkt" , 0, 46ULL}, |
| 536 | {"ztso" , 0, 47ULL}, |
| 537 | {"zvbb" , 0, 48ULL}, |
| 538 | {"zvbc" , 0, 49ULL}, |
| 539 | {"zvfh" , 0, 50ULL}, |
| 540 | {"zvfhmin" , 0, 51ULL}, |
| 541 | {"zvkb" , 0, 52ULL}, |
| 542 | {"zvkg" , 0, 53ULL}, |
| 543 | {"zvkned" , 0, 54ULL}, |
| 544 | {"zvknha" , 0, 55ULL}, |
| 545 | {"zvknhb" , 0, 56ULL}, |
| 546 | {"zvksed" , 0, 57ULL}, |
| 547 | {"zvksh" , 0, 58ULL}, |
| 548 | {"zvkt" , 0, 59ULL}, |
| 549 | {"zve32x" , 0, 60ULL}, |
| 550 | {"zve32f" , 0, 61ULL}, |
| 551 | {"zve64x" , 0, 62ULL}, |
| 552 | {"zve64f" , 0, 63ULL}, |
| 553 | {"zve64d" , 1, 0ULL}, |
| 554 | {"zimop" , 1, 1ULL}, |
| 555 | {"zca" , 1, 2ULL}, |
| 556 | {"zcb" , 1, 3ULL}, |
| 557 | {"zcd" , 1, 4ULL}, |
| 558 | {"zcf" , 1, 5ULL}, |
| 559 | {"zcmop" , 1, 6ULL}, |
| 560 | {"zawrs" , 1, 7ULL}, |
| 561 | {"zilsd" , 1, 8ULL}, |
| 562 | {"zclsd" , 1, 9ULL}, |
| 563 | {"zcmp" , 1, 10ULL}, |
| 564 | }; |
| 565 | #endif |
| 566 | |