@samitouri / QOSamiQemu / commits / 5426459a06

target/riscv/cpu: remove riscv_cpu_* arrays

There is no more uses left for these arrays. isa_edata_arr[] is doing everything we need, making our lives a little easier when adding new extensions. Signed-off-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260512032926.1978818-15-daniel.barboza@oss.qualcomm.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Daniel Henrique Barboza committed May 12, 2026 at 00:29 UTC 5426459a063e1f1690fab1dc2b8118a37b6c782d
2 files changed -169
target/riscv/cpu.c
-159
@@ -1252,165 +1252,6 @@ const char *riscv_get_misa_ext_description(uint32_t bit)
1252 return val;
1253 }
1254
1255 -#define MULTI_EXT_CFG_BOOL(_name, _prop, _defval) \
1256 - {.name = _name, .offset = CPU_CFG_OFFSET(_prop), \
1257 - .enabled = _defval}
1258 -
1259 -const RISCVCPUMultiExtConfig riscv_cpu_extensions[] = {
1260 - /* Defaults for standard extensions */
1261 - MULTI_EXT_CFG_BOOL("sscofpmf", ext_sscofpmf, false),
1262 - MULTI_EXT_CFG_BOOL("smcntrpmf", ext_smcntrpmf, false),
1263 - MULTI_EXT_CFG_BOOL("smcsrind", ext_smcsrind, false),
1264 - MULTI_EXT_CFG_BOOL("smcdeleg", ext_smcdeleg, false),
1265 - MULTI_EXT_CFG_BOOL("sscsrind", ext_sscsrind, false),
1266 - MULTI_EXT_CFG_BOOL("ssccfg", ext_ssccfg, false),
1267 - MULTI_EXT_CFG_BOOL("smctr", ext_smctr, false),
1268 - MULTI_EXT_CFG_BOOL("ssctr", ext_ssctr, false),
1269 - MULTI_EXT_CFG_BOOL("zifencei", ext_zifencei, true),
1270 - MULTI_EXT_CFG_BOOL("zicfilp", ext_zicfilp, false),
1271 - MULTI_EXT_CFG_BOOL("zicfiss", ext_zicfiss, false),
1272 - MULTI_EXT_CFG_BOOL("zicsr", ext_zicsr, true),
1273 - MULTI_EXT_CFG_BOOL("zihintntl", ext_zihintntl, true),
1274 - MULTI_EXT_CFG_BOOL("zihintpause", ext_zihintpause, true),
1275 - MULTI_EXT_CFG_BOOL("zimop", ext_zimop, false),
1276 - MULTI_EXT_CFG_BOOL("zcmop", ext_zcmop, false),
1277 - MULTI_EXT_CFG_BOOL("zacas", ext_zacas, false),
1278 - MULTI_EXT_CFG_BOOL("zama16b", ext_zama16b, false),
1279 - MULTI_EXT_CFG_BOOL("zabha", ext_zabha, false),
1280 - MULTI_EXT_CFG_BOOL("zaamo", ext_zaamo, false),
1281 - MULTI_EXT_CFG_BOOL("zalasr", ext_zalasr, false),
1282 - MULTI_EXT_CFG_BOOL("zalrsc", ext_zalrsc, false),
1283 - MULTI_EXT_CFG_BOOL("zawrs", ext_zawrs, true),
1284 - MULTI_EXT_CFG_BOOL("zfa", ext_zfa, true),
1285 - MULTI_EXT_CFG_BOOL("zfbfmin", ext_zfbfmin, false),
1286 - MULTI_EXT_CFG_BOOL("zfh", ext_zfh, false),
1287 - MULTI_EXT_CFG_BOOL("zfhmin", ext_zfhmin, false),
1288 - MULTI_EXT_CFG_BOOL("zve32f", ext_zve32f, false),
1289 - MULTI_EXT_CFG_BOOL("zve32x", ext_zve32x, false),
1290 - MULTI_EXT_CFG_BOOL("zve64f", ext_zve64f, false),
1291 - MULTI_EXT_CFG_BOOL("zve64d", ext_zve64d, false),
1292 - MULTI_EXT_CFG_BOOL("zve64x", ext_zve64x, false),
1293 - MULTI_EXT_CFG_BOOL("zvfbfa", ext_zvfbfa, false),
1294 - MULTI_EXT_CFG_BOOL("zvfbfmin", ext_zvfbfmin, false),
1295 - MULTI_EXT_CFG_BOOL("zvfbfwma", ext_zvfbfwma, false),
1296 - MULTI_EXT_CFG_BOOL("zvfh", ext_zvfh, false),
1297 - MULTI_EXT_CFG_BOOL("zvfhmin", ext_zvfhmin, false),
1298 - MULTI_EXT_CFG_BOOL("sstc", ext_sstc, true),
1299 - MULTI_EXT_CFG_BOOL("ssnpm", ext_ssnpm, false),
1300 - MULTI_EXT_CFG_BOOL("sspm", ext_sspm, false),
1301 - MULTI_EXT_CFG_BOOL("supm", ext_supm, false),
1302 -
1303 - MULTI_EXT_CFG_BOOL("smaia", ext_smaia, false),
1304 - MULTI_EXT_CFG_BOOL("smdbltrp", ext_smdbltrp, false),
1305 - MULTI_EXT_CFG_BOOL("smepmp", ext_smepmp, false),
1306 - MULTI_EXT_CFG_BOOL("smpmpmt", ext_smpmpmt, false),
1307 - MULTI_EXT_CFG_BOOL("smrnmi", ext_smrnmi, false),
1308 - MULTI_EXT_CFG_BOOL("smmpm", ext_smmpm, false),
1309 - MULTI_EXT_CFG_BOOL("smnpm", ext_smnpm, false),
1310 - MULTI_EXT_CFG_BOOL("smstateen", ext_smstateen, false),
1311 - MULTI_EXT_CFG_BOOL("ssaia", ext_ssaia, false),
1312 - MULTI_EXT_CFG_BOOL("ssdbltrp", ext_ssdbltrp, false),
1313 - MULTI_EXT_CFG_BOOL("svade", ext_svade, false),
1314 - MULTI_EXT_CFG_BOOL("svadu", ext_svadu, true),
1315 - MULTI_EXT_CFG_BOOL("svinval", ext_svinval, false),
1316 - MULTI_EXT_CFG_BOOL("svnapot", ext_svnapot, false),
1317 - MULTI_EXT_CFG_BOOL("svpbmt", ext_svpbmt, false),
1318 - MULTI_EXT_CFG_BOOL("svrsw60t59b", ext_svrsw60t59b, false),
1319 - MULTI_EXT_CFG_BOOL("svvptc", ext_svvptc, true),
1320 -
1321 - MULTI_EXT_CFG_BOOL("zicntr", ext_zicntr, true),
1322 - MULTI_EXT_CFG_BOOL("zihpm", ext_zihpm, true),
1323 - MULTI_EXT_CFG_BOOL("zilsd", ext_zilsd, false),
1324 -
1325 - MULTI_EXT_CFG_BOOL("zba", ext_zba, true),
1326 - MULTI_EXT_CFG_BOOL("zbb", ext_zbb, true),
1327 - MULTI_EXT_CFG_BOOL("zbc", ext_zbc, true),
1328 - MULTI_EXT_CFG_BOOL("zbkb", ext_zbkb, false),
1329 - MULTI_EXT_CFG_BOOL("zbkc", ext_zbkc, false),
1330 - MULTI_EXT_CFG_BOOL("zbkx", ext_zbkx, false),
1331 - MULTI_EXT_CFG_BOOL("zbs", ext_zbs, true),
1332 - MULTI_EXT_CFG_BOOL("zk", ext_zk, false),
1333 - MULTI_EXT_CFG_BOOL("zkn", ext_zkn, false),
1334 - MULTI_EXT_CFG_BOOL("zknd", ext_zknd, false),
1335 - MULTI_EXT_CFG_BOOL("zkne", ext_zkne, false),
1336 - MULTI_EXT_CFG_BOOL("zknh", ext_zknh, false),
1337 - MULTI_EXT_CFG_BOOL("zkr", ext_zkr, false),
1338 - MULTI_EXT_CFG_BOOL("zks", ext_zks, false),
1339 - MULTI_EXT_CFG_BOOL("zksed", ext_zksed, false),
1340 - MULTI_EXT_CFG_BOOL("zksh", ext_zksh, false),
1341 - MULTI_EXT_CFG_BOOL("zkt", ext_zkt, false),
1342 - MULTI_EXT_CFG_BOOL("ztso", ext_ztso, false),
1343 -
1344 - MULTI_EXT_CFG_BOOL("zdinx", ext_zdinx, false),
1345 - MULTI_EXT_CFG_BOOL("zfinx", ext_zfinx, false),
1346 - MULTI_EXT_CFG_BOOL("zhinx", ext_zhinx, false),
1347 - MULTI_EXT_CFG_BOOL("zhinxmin", ext_zhinxmin, false),
1348 -
1349 - MULTI_EXT_CFG_BOOL("zicbom", ext_zicbom, true),
1350 - MULTI_EXT_CFG_BOOL("zicbop", ext_zicbop, true),
1351 - MULTI_EXT_CFG_BOOL("zicboz", ext_zicboz, true),
1352 -
1353 - MULTI_EXT_CFG_BOOL("zmmul", ext_zmmul, false),
1354 -
1355 - MULTI_EXT_CFG_BOOL("zca", ext_zca, false),
1356 - MULTI_EXT_CFG_BOOL("zcb", ext_zcb, false),
1357 - MULTI_EXT_CFG_BOOL("zcd", ext_zcd, false),
1358 - MULTI_EXT_CFG_BOOL("zce", ext_zce, false),
1359 - MULTI_EXT_CFG_BOOL("zcf", ext_zcf, false),
1360 - MULTI_EXT_CFG_BOOL("zcmp", ext_zcmp, false),
1361 - MULTI_EXT_CFG_BOOL("zcmt", ext_zcmt, false),
1362 - MULTI_EXT_CFG_BOOL("zicond", ext_zicond, false),
1363 - MULTI_EXT_CFG_BOOL("zclsd", ext_zclsd, false),
1364 -
1365 - /* Vector cryptography extensions */
1366 - MULTI_EXT_CFG_BOOL("zvbb", ext_zvbb, false),
1367 - MULTI_EXT_CFG_BOOL("zvbc", ext_zvbc, false),
1368 - MULTI_EXT_CFG_BOOL("zvkb", ext_zvkb, false),
1369 - MULTI_EXT_CFG_BOOL("zvkg", ext_zvkg, false),
1370 - MULTI_EXT_CFG_BOOL("zvkned", ext_zvkned, false),
1371 - MULTI_EXT_CFG_BOOL("zvknha", ext_zvknha, false),
1372 - MULTI_EXT_CFG_BOOL("zvknhb", ext_zvknhb, false),
1373 - MULTI_EXT_CFG_BOOL("zvksed", ext_zvksed, false),
1374 - MULTI_EXT_CFG_BOOL("zvksh", ext_zvksh, false),
1375 - MULTI_EXT_CFG_BOOL("zvkt", ext_zvkt, false),
1376 - MULTI_EXT_CFG_BOOL("zvkn", ext_zvkn, false),
1377 - MULTI_EXT_CFG_BOOL("zvknc", ext_zvknc, false),
1378 - MULTI_EXT_CFG_BOOL("zvkng", ext_zvkng, false),
1379 - MULTI_EXT_CFG_BOOL("zvks", ext_zvks, false),
1380 - MULTI_EXT_CFG_BOOL("zvksc", ext_zvksc, false),
1381 - MULTI_EXT_CFG_BOOL("zvksg", ext_zvksg, false),
1382 -
1383 - { },
1384 -};
1385 -
1386 -const RISCVCPUMultiExtConfig riscv_cpu_vendor_exts[] = {
1387 - MULTI_EXT_CFG_BOOL("xtheadba", ext_xtheadba, false),
1388 - MULTI_EXT_CFG_BOOL("xtheadbb", ext_xtheadbb, false),
1389 - MULTI_EXT_CFG_BOOL("xtheadbs", ext_xtheadbs, false),
1390 - MULTI_EXT_CFG_BOOL("xtheadcmo", ext_xtheadcmo, false),
1391 - MULTI_EXT_CFG_BOOL("xtheadcondmov", ext_xtheadcondmov, false),
1392 - MULTI_EXT_CFG_BOOL("xtheadfmemidx", ext_xtheadfmemidx, false),
1393 - MULTI_EXT_CFG_BOOL("xtheadfmv", ext_xtheadfmv, false),
1394 - MULTI_EXT_CFG_BOOL("xtheadmac", ext_xtheadmac, false),
1395 - MULTI_EXT_CFG_BOOL("xtheadmemidx", ext_xtheadmemidx, false),
1396 - MULTI_EXT_CFG_BOOL("xtheadmempair", ext_xtheadmempair, false),
1397 - MULTI_EXT_CFG_BOOL("xtheadsync", ext_xtheadsync, false),
1398 - MULTI_EXT_CFG_BOOL("xventanacondops", ext_XVentanaCondOps, false),
1399 - MULTI_EXT_CFG_BOOL("xmipscbop", ext_xmipscbop, false),
1400 - MULTI_EXT_CFG_BOOL("xmipscmov", ext_xmipscmov, false),
1401 - MULTI_EXT_CFG_BOOL("xmipslsp", ext_xmipslsp, false),
1402 - MULTI_EXT_CFG_BOOL("xlrbr", ext_xlrbr, false),
1403 -
1404 - { },
1405 -};
1406 -
1407 -/* These are experimental so mark with 'x-' */
1408 -const RISCVCPUMultiExtConfig riscv_cpu_experimental_exts[] = {
1409 - MULTI_EXT_CFG_BOOL("x-svukte", ext_svukte, false),
1410 -
1411 - { },
1412 -};
1413 -
1255 static void cpu_set_prop_err(RISCVCPU *cpu, const char *propname,
1256 Error **errp)
1257 {
target/riscv/cpu.h
-10
@@ -983,16 +983,6 @@ bool isa_ext_is_enabled(RISCVCPU *cpu, uint32_t ext_offset);
983 void riscv_cpu_set_misa_ext(CPURISCVState *env, uint32_t ext);
984 bool riscv_cpu_is_vendor(Object *cpu_obj);
985
986 -typedef struct RISCVCPUMultiExtConfig {
987 - const char *name;
988 - uint32_t offset;
989 - bool enabled;
990 -} RISCVCPUMultiExtConfig;
991 -
992 -extern const RISCVCPUMultiExtConfig riscv_cpu_extensions[];
993 -extern const RISCVCPUMultiExtConfig riscv_cpu_vendor_exts[];
994 -extern const RISCVCPUMultiExtConfig riscv_cpu_experimental_exts[];
995 -
986 typedef struct isa_ext_data {
987 const char *name;
988 const char *prop_name;