Compare commits

..

10 Commits

Author SHA1 Message Date
Dr-Noob
d36123a363 Completing extension strings... 2025-10-30 09:07:04 +01:00
Dr-Noob
8f40c45211 Fixes 2025-10-30 08:49:25 +01:00
Dr-Noob
6713af7de1 Fixes 2025-10-30 08:49:07 +01:00
Dr-Noob
9bd50264b3 Fixes 2025-10-30 08:36:50 +01:00
Dr-Noob
bdadac5dd8 Fixes 2025-10-30 08:35:58 +01:00
Dr-Noob
e823c769ff Attempting to replace 64-bit mask with bool array 2025-10-30 08:33:27 +01:00
Dr-Noob
2116f19073 Delete repeated entry 2025-10-30 07:48:21 +01:00
Dr-Noob
8ce24150e7 Add IME 2025-10-29 22:44:22 +01:00
Dr-Noob
a0cb54dc8b Add IME 2025-10-29 22:43:50 +01:00
Dr-Noob
8e6b0b1a2b Crazy amount of new extensions! 2025-10-29 22:39:22 +01:00
3 changed files with 56 additions and 57 deletions

View File

@@ -138,7 +138,7 @@ struct features {
struct extensions { struct extensions {
char* str; char* str;
bool* mask; // allocated at runtime with size RISCV_ISA_EXT_ID_MAX bool* mask; // allocated at runtime with size RISCV_ISA_EXT_ID_MAX-1
}; };
struct cpuInfo { struct cpuInfo {

View File

@@ -62,7 +62,7 @@
#endif #endif
#ifndef GIT_FULL_VERSION #ifndef GIT_FULL_VERSION
static const char* VERSION = "1.07"; static const char* VERSION = "1.06";
#endif #endif
enum { enum {

View File

@@ -98,7 +98,6 @@ enum riscv_isa_ext_id {
// (Zicbop) https://github.com/riscv/riscv-CMOs/blob/master/cmobase/Zicbop.adoc // (Zicbop) https://github.com/riscv/riscv-CMOs/blob/master/cmobase/Zicbop.adoc
// https://raw.githubusercontent.com/riscv/riscv-CMOs/master/specifications/cmobase-v1.0.1.pdf // https://raw.githubusercontent.com/riscv/riscv-CMOs/master/specifications/cmobase-v1.0.1.pdf
// https://www.kernel.org/doc/Documentation/devicetree/bindings/riscv/extensions.yaml // https://www.kernel.org/doc/Documentation/devicetree/bindings/riscv/extensions.yaml
// https://gcc.gnu.org/onlinedocs/gcc/RISC-V-Options.html
// (Ime) https://github.com/riscv/integrated-matrix-extension (not confirmed, just a guess...) // (Ime) https://github.com/riscv/integrated-matrix-extension (not confirmed, just a guess...)
// Included all except for G // Included all except for G
static const struct extension extension_list[] = { static const struct extension extension_list[] = {
@@ -136,63 +135,63 @@ static const struct extension extension_list[] = {
{ RISCV_ISA_EXT_ZICSR, "(Zicsr) Control and Status Register" }, { RISCV_ISA_EXT_ZICSR, "(Zicsr) Control and Status Register" },
{ RISCV_ISA_EXT_ZIFENCEI, "(Zifencei) Instruction-Fetch Fence" }, { RISCV_ISA_EXT_ZIFENCEI, "(Zifencei) Instruction-Fetch Fence" },
{ RISCV_ISA_EXT_ZIHPM, "(Zihpm) Hardware Performance Counters" }, { RISCV_ISA_EXT_ZIHPM, "(Zihpm) Hardware Performance Counters" },
{ RISCV_ISA_EXT_SMSTATEEN, "(Smstateen) Supervisor/Hypervisor State Enable" }, { RISCV_ISA_EXT_SMSTATEEN, "(Smstateen) " },
{ RISCV_ISA_EXT_ZICOND, "(Zicond) Integer Conditional Operations" }, { RISCV_ISA_EXT_ZICOND, "(Zicond) Integer Conditional Operations" },
{ RISCV_ISA_EXT_ZBC, "(Zbc) Carry-Less Multiplication" }, { RISCV_ISA_EXT_ZBC, "(Zbc) Carry-Less Multiplication" },
{ RISCV_ISA_EXT_ZBKB, "(Zbkb) Bit-Manipulation for Cryptography (Byte ops)" }, { RISCV_ISA_EXT_ZBKB, "(Zbkb) " },
{ RISCV_ISA_EXT_ZBKC, "(Zbkc) Bit-Manipulation for Cryptography (Carry-less ops)" }, { RISCV_ISA_EXT_ZBKC, "(Zbkc) " },
{ RISCV_ISA_EXT_ZBKX, "(Zbkx) Bit-Manipulation for Cryptography (Crossbar ops)" }, { RISCV_ISA_EXT_ZBKX, "(Zbkx) " },
{ RISCV_ISA_EXT_ZKND, "(Zknd) NIST AES Decryption Instructions" }, { RISCV_ISA_EXT_ZKND, "(Zknd) " },
{ RISCV_ISA_EXT_ZKNE, "(Zkne) NIST AES Encryption Instructions" }, { RISCV_ISA_EXT_ZKNE, "(Zkne) " },
{ RISCV_ISA_EXT_ZKNH, "(Zknh) NIST Hash (SHA-2/SHA-3) Instructions" }, { RISCV_ISA_EXT_ZKNH, "(Zknh) " },
{ RISCV_ISA_EXT_ZKR, "(Zkr) Entropy Source Reading (Random)" }, { RISCV_ISA_EXT_ZKR, "(Zkr) " },
{ RISCV_ISA_EXT_ZKSED, "(Zksed) SM4 Block Cipher Decryption" }, { RISCV_ISA_EXT_ZKSED, "(Zksed) " },
{ RISCV_ISA_EXT_ZKSH, "(Zksh) SM3 Hash Instructions" }, { RISCV_ISA_EXT_ZKSH, "(Zksh) " },
{ RISCV_ISA_EXT_ZKT, "(Zkt) Data-Independent Execution Latency" }, { RISCV_ISA_EXT_ZKT, "(Zkt) Data-Independent Execution Latency" },
{ RISCV_ISA_EXT_ZVBB, "(Zvbb) Vector Basic Bit-Manipulation" }, { RISCV_ISA_EXT_ZVBB, "(Zvbb) " },
{ RISCV_ISA_EXT_ZVBC, "(Zvbc) Vector Carry-Less Multiplication" }, { RISCV_ISA_EXT_ZVBC, "(Zvbc) " },
{ RISCV_ISA_EXT_ZVKB, "(Zvkb) Vector Cryptography (Byte ops)" }, { RISCV_ISA_EXT_ZVKB, "(Zvkb) " },
{ RISCV_ISA_EXT_ZVKG, "(Zvkg) Vector GCM/GMAC Instructions" }, { RISCV_ISA_EXT_ZVKG, "(Zvkg) " },
{ RISCV_ISA_EXT_ZVKNED, "(Zvkned) Vector AES Decryption" }, { RISCV_ISA_EXT_ZVKNED, "(Zvkned) " },
{ RISCV_ISA_EXT_ZVKNHA, "(Zvknha) Vector SHA-2 Hash (A variant)" }, { RISCV_ISA_EXT_ZVKNHA, "(Zvknha) " },
{ RISCV_ISA_EXT_ZVKNHB, "(Zvknhb) Vector SHA-2 Hash (B variant)" }, { RISCV_ISA_EXT_ZVKNHB, "(Zvknhb) " },
{ RISCV_ISA_EXT_ZVKSED, "(Zvksed) Vector SM4 Block Cipher Decryption" }, { RISCV_ISA_EXT_ZVKSED, "(Zvksed) " },
{ RISCV_ISA_EXT_ZVKSH, "(Zvksh) Vector SM3 Hash Instructions" }, { RISCV_ISA_EXT_ZVKSH, "(Zvksh) " },
{ RISCV_ISA_EXT_ZVKT, "(Zvkt) Vector Data-Independent Execution Latency" }, { RISCV_ISA_EXT_ZVKT, "(Zvkt) " },
{ RISCV_ISA_EXT_ZFH, "(Zfh) Half-Precision Floating Point" }, { RISCV_ISA_EXT_ZFH, "(Zfh) " },
{ RISCV_ISA_EXT_ZFHMIN, "(Zfhmin) Minimal Half-Precision Floating Point" }, { RISCV_ISA_EXT_ZFHMIN, "(Zfhmin) " },
{ RISCV_ISA_EXT_ZIHINTNTL, "(Zihintntl) Non-Temporal Load/Store Hints" }, { RISCV_ISA_EXT_ZIHINTNTL, "(Zihintntl) " },
{ RISCV_ISA_EXT_ZVFH, "(Zvfh) Vector Half-Precision Floating Point" }, { RISCV_ISA_EXT_ZVFH, "(Zvfh) " },
{ RISCV_ISA_EXT_ZVFHMIN, "(Zvfhmin) Minimal Vector Half-Precision Floating Point" }, { RISCV_ISA_EXT_ZVFHMIN, "(Zvfhmin) " },
{ RISCV_ISA_EXT_ZFA, "(Zfa) Additional Floating-Point Instructions" }, { RISCV_ISA_EXT_ZFA, "(Zfa) " },
{ RISCV_ISA_EXT_ZTSO, "(Ztso) Total Store Ordering Memory Model" }, { RISCV_ISA_EXT_ZTSO, "(Ztso) " },
{ RISCV_ISA_EXT_ZACAS, "(Zacas) Atomic Compare-and-Swap" }, { RISCV_ISA_EXT_ZACAS, "(Zacas) " },
{ RISCV_ISA_EXT_ZVE32X, "(Zve32x) Embedded Vector Integer (32-bit elements)" }, { RISCV_ISA_EXT_ZVE32X, "(Zve32x) Vector Extensions (i32)" },
{ RISCV_ISA_EXT_ZVE32F, "(Zve32f) Embedded Vector Floating Point (f32)" }, { RISCV_ISA_EXT_ZVE32F, "(Zve32f) Vector Extensions (f32)" },
{ RISCV_ISA_EXT_ZVE64X, "(Zve64x) Embedded Vector Integer (64-bit elements)" }, { RISCV_ISA_EXT_ZVE64X, "(Zve64x) Vector Extensions (i64)" },
{ RISCV_ISA_EXT_ZVE64F, "(Zve64f) Embedded Vector Floating Point (f64)" }, { RISCV_ISA_EXT_ZVE64F, "(Zve64f) Vector Extensions (f64)" },
{ RISCV_ISA_EXT_ZVE64D, "(Zve64d) Embedded Vector Double-Precision FP (f64)" }, { RISCV_ISA_EXT_ZVE64D, "(Zve64d) Vector Extensions (???)" },
{ RISCV_ISA_EXT_ZIMOP, "(Zimop) Integer Multiply-Only Instructions" }, { RISCV_ISA_EXT_ZIMOP, "(Zimop) " },
{ RISCV_ISA_EXT_ZCA, "(Zca) Compressed Integer Instructions" }, { RISCV_ISA_EXT_ZCA, "(Zca) " },
{ RISCV_ISA_EXT_ZCB, "(Zcb) Compressed Bit-Manipulation Instructions" }, { RISCV_ISA_EXT_ZCB, "(Zcb) " },
{ RISCV_ISA_EXT_ZCD, "(Zcd) Compressed Double-Precision FP Instructions" }, { RISCV_ISA_EXT_ZCD, "(Zcd) " },
{ RISCV_ISA_EXT_ZCF, "(Zcf) Compressed Single-Precision FP Instructions" }, { RISCV_ISA_EXT_ZCF, "(Zcf) " },
{ RISCV_ISA_EXT_ZCMOP, "(Zcmop) Compressed Multiply-Only Instructions" }, { RISCV_ISA_EXT_ZCMOP, "(Zcmop) " },
{ RISCV_ISA_EXT_ZAWRS, "(Zawrs) Wait-on-Reservation-Set Instruction" }, { RISCV_ISA_EXT_ZAWRS, "(Zawrs) " },
{ RISCV_ISA_EXT_SVVPTC, "(Svvptc) Supervisor Virtual Page Table Cache Control" }, { RISCV_ISA_EXT_SVVPTC, "(Svvptc) " },
{ RISCV_ISA_EXT_SMMPM, "(Smmpm) Supervisor Memory Protection Modification" }, { RISCV_ISA_EXT_SMMPM, "(Smmpm) " },
{ RISCV_ISA_EXT_SMNPM, "(Smnpm) Supervisor Non-Privileged Memory Access Control" }, { RISCV_ISA_EXT_SMNPM, "(Smnpm) " },
{ RISCV_ISA_EXT_SSNPM, "(Ssnpm) Supervisor Secure Non-Privileged Memory" }, { RISCV_ISA_EXT_SSNPM, "(Ssnpm) " },
{ RISCV_ISA_EXT_ZABHA, "(Zabha) Atomic Byte/Halfword Operations" }, { RISCV_ISA_EXT_ZABHA, "(Zabha) " },
{ RISCV_ISA_EXT_ZICCRSE, "(Ziccrse) Cache Control Range Start/End Operations" }, { RISCV_ISA_EXT_ZICCRSE, "(Ziccrse) " },
{ RISCV_ISA_EXT_SVADE, "(Svade) Supervisor Virtual Address Deferred Exception" }, { RISCV_ISA_EXT_SVADE, "(Svade) " },
{ RISCV_ISA_EXT_SVADU, "(Svadu) Supervisor Virtual Address Dirty Update" }, { RISCV_ISA_EXT_SVADU, "(Svadu) " },
{ RISCV_ISA_EXT_ZFBFMIN, "(Zfbfmin) Minimal BFloat16 Floating Point" }, { RISCV_ISA_EXT_ZFBFMIN, "(Zfbfmin) " },
{ RISCV_ISA_EXT_ZVFBFMIN, "(Zvfbfmin) Vector Minimal BFloat16 Floating Point" }, { RISCV_ISA_EXT_ZVFBFMIN, "(Zvfbfmin) " },
{ RISCV_ISA_EXT_ZVFBFWMA, "(Zvfbfwma) Vector BFloat16 Widening Multiply-Accumulate" }, { RISCV_ISA_EXT_ZVFBFWMA, "(Zvfbfwma) " },
{ RISCV_ISA_EXT_ZAAMO, "(Zaamo) Atomic Memory Operation (AMO) Instructions" }, { RISCV_ISA_EXT_ZAAMO, "(Zaamo) " },
{ RISCV_ISA_EXT_ZALRSC, "(Zalrsc) Atomic Load-Reserved/Store-Conditional" }, { RISCV_ISA_EXT_ZALRSC, "(Zalrsc) " },
{ RISCV_ISA_EXT_ZICBOP, "(Zicbop) Cache Block Prefetch/Zero Operations" }, { RISCV_ISA_EXT_ZICBOP, "(Zicbop) " },
{ RISCV_ISA_EXT_IME, "(Ime) Integrated Matrix Extension" }, { RISCV_ISA_EXT_IME, "(Ime) Integrated Matrix Extension" },
}; };