{"zks", "zbkx", check_implicit_always},
{"zks", "zksed", check_implicit_always},
{"zks", "zksh", check_implicit_always},
+ {"smstateen", "ssstateen", check_implicit_always},
{"smepmp", "zicsr", check_implicit_always},
- {"smstateen", "zicsr", check_implicit_always},
{"sscofpmf", "zicsr", check_implicit_always},
+ {"ssstateen", "zicsr", check_implicit_always},
{"sstc", "zicsr", check_implicit_always},
{NULL, NULL, NULL}
};
{"smepmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sscofpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sstc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svinval", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svnapot", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
CSR_CLASS_H, /* hypervisor */
CSR_CLASS_H_32, /* hypervisor, rv32 only */
CSR_CLASS_SMSTATEEN, /* Smstateen only */
- CSR_CLASS_SMSTATEEN_AND_H, /* Smstateen only (with H) */
CSR_CLASS_SMSTATEEN_32, /* Smstateen RV32 only */
- CSR_CLASS_SMSTATEEN_AND_H_32, /* Smstateen RV32 only (with H) */
+ CSR_CLASS_SSSTATEEN, /* S[ms]stateen only */
+ CSR_CLASS_SSSTATEEN_AND_H, /* S[ms]stateen only (with H) */
+ CSR_CLASS_SSSTATEEN_AND_H_32, /* S[ms]stateen RV32 only (with H) */
CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
CSR_CLASS_SSTC, /* Sstc only */
extension = "zve32x";
break;
case CSR_CLASS_SMSTATEEN:
- case CSR_CLASS_SMSTATEEN_AND_H:
case CSR_CLASS_SMSTATEEN_32:
- case CSR_CLASS_SMSTATEEN_AND_H_32:
- is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32
- || csr_class == CSR_CLASS_SMSTATEEN_AND_H_32);
- is_h_required = (csr_class == CSR_CLASS_SMSTATEEN_AND_H
- || csr_class == CSR_CLASS_SMSTATEEN_AND_H_32);
+ is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
extension = "smstateen";
break;
+ case CSR_CLASS_SSSTATEEN:
+ case CSR_CLASS_SSSTATEEN_AND_H:
+ case CSR_CLASS_SSSTATEEN_AND_H_32:
+ is_rv32_only = (csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
+ is_h_required = (csr_class == CSR_CLASS_SSSTATEEN_AND_H
+ || csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
+ extension = "ssstateen";
+ break;
case CSR_CLASS_SSCOFPMF_32:
is_rv32_only = true;
/* Fall through. */
.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: read-only CSR is written `csrw scountovf,a1'
.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: read-only CSR is written `csrw scountovf,a1'
.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: read-only CSR is written `csrw scountovf,a1'
.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen0', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen1', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen2', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
-.*Warning: invalid CSR `sstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0', needs `h' extension
-.*Warning: invalid CSR `hstateen0', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1', needs `h' extension
-.*Warning: invalid CSR `hstateen1', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2', needs `h' extension
-.*Warning: invalid CSR `hstateen2', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3', needs `h' extension
-.*Warning: invalid CSR `hstateen3', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
.*Warning: invalid CSR `mstateen0h', needs rv32i extension
.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen0h', needs rv32i extension
.*Warning: invalid CSR `hstateen0h', needs `h' extension
-.*Warning: invalid CSR `hstateen0h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen1h', needs rv32i extension
.*Warning: invalid CSR `hstateen1h', needs `h' extension
-.*Warning: invalid CSR `hstateen1h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen2h', needs rv32i extension
.*Warning: invalid CSR `hstateen2h', needs `h' extension
-.*Warning: invalid CSR `hstateen2h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `hstateen3h', needs rv32i extension
.*Warning: invalid CSR `hstateen3h', needs `h' extension
-.*Warning: invalid CSR `hstateen3h', needs `smstateen' extension
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
.*Warning: read-only CSR is written `csrw scountovf,a1'
csr vsip
csr vsatp
- # Smstateen extension
+ # Smstateen/Ssstateen extensions
csr mstateen0
csr mstateen1
csr mstateen2
--- /dev/null
+#as: -march=rv32ih_smstateen -mcsr-check -mpriv-spec=1.12
+#source: ssstateen-csr.s
+#objdump: -dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[ ]+[0-9a-f]+:[ ]+10c02573[ ]+csrr[ ]+a0,sstateen0
+[ ]+[0-9a-f]+:[ ]+10d02573[ ]+csrr[ ]+a0,sstateen1
+[ ]+[0-9a-f]+:[ ]+10e02573[ ]+csrr[ ]+a0,sstateen2
+[ ]+[0-9a-f]+:[ ]+10f02573[ ]+csrr[ ]+a0,sstateen3
+[ ]+[0-9a-f]+:[ ]+60c02573[ ]+csrr[ ]+a0,hstateen0
+[ ]+[0-9a-f]+:[ ]+60d02573[ ]+csrr[ ]+a0,hstateen1
+[ ]+[0-9a-f]+:[ ]+60e02573[ ]+csrr[ ]+a0,hstateen2
+[ ]+[0-9a-f]+:[ ]+60f02573[ ]+csrr[ ]+a0,hstateen3
+[ ]+[0-9a-f]+:[ ]+61c02573[ ]+csrr[ ]+a0,hstateen0h
+[ ]+[0-9a-f]+:[ ]+61d02573[ ]+csrr[ ]+a0,hstateen1h
+[ ]+[0-9a-f]+:[ ]+61e02573[ ]+csrr[ ]+a0,hstateen2h
+[ ]+[0-9a-f]+:[ ]+61f02573[ ]+csrr[ ]+a0,hstateen3h
--- /dev/null
+#as: -march=rv32ih_ssstateen -mcsr-check -mpriv-spec=1.12
+#source: ssstateen-csr.s
+#objdump: -dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[ ]+[0-9a-f]+:[ ]+10c02573[ ]+csrr[ ]+a0,sstateen0
+[ ]+[0-9a-f]+:[ ]+10d02573[ ]+csrr[ ]+a0,sstateen1
+[ ]+[0-9a-f]+:[ ]+10e02573[ ]+csrr[ ]+a0,sstateen2
+[ ]+[0-9a-f]+:[ ]+10f02573[ ]+csrr[ ]+a0,sstateen3
+[ ]+[0-9a-f]+:[ ]+60c02573[ ]+csrr[ ]+a0,hstateen0
+[ ]+[0-9a-f]+:[ ]+60d02573[ ]+csrr[ ]+a0,hstateen1
+[ ]+[0-9a-f]+:[ ]+60e02573[ ]+csrr[ ]+a0,hstateen2
+[ ]+[0-9a-f]+:[ ]+60f02573[ ]+csrr[ ]+a0,hstateen3
+[ ]+[0-9a-f]+:[ ]+61c02573[ ]+csrr[ ]+a0,hstateen0h
+[ ]+[0-9a-f]+:[ ]+61d02573[ ]+csrr[ ]+a0,hstateen1h
+[ ]+[0-9a-f]+:[ ]+61e02573[ ]+csrr[ ]+a0,hstateen2h
+[ ]+[0-9a-f]+:[ ]+61f02573[ ]+csrr[ ]+a0,hstateen3h
--- /dev/null
+target:
+ csrr a0, sstateen0
+ csrr a0, sstateen1
+ csrr a0, sstateen2
+ csrr a0, sstateen3
+ csrr a0, hstateen0
+ csrr a0, hstateen1
+ csrr a0, hstateen2
+ csrr a0, hstateen3
+ csrr a0, hstateen0h
+ csrr a0, hstateen1h
+ csrr a0, hstateen2h
+ csrr a0, hstateen3h
DECLARE_CSR(vstval, CSR_VSTVAL, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(vsip, CSR_VSIP, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(vsatp, CSR_VSATP, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-/* Smstateen extension */
+/* Smstateen/Ssstateen extensions. */
DECLARE_CSR(mstateen0, CSR_MSTATEEN0, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen1, CSR_MSTATEEN1, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen2, CSR_MSTATEEN2, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen3, CSR_MSTATEEN3, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(sstateen0, CSR_SSTATEEN0, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(sstateen1, CSR_SSTATEEN1, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(sstateen2, CSR_SSTATEEN2, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(sstateen3, CSR_SSTATEEN3, CSR_CLASS_SMSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen0, CSR_HSTATEEN0, CSR_CLASS_SMSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen1, CSR_HSTATEEN1, CSR_CLASS_SMSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen2, CSR_HSTATEEN2, CSR_CLASS_SMSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen3, CSR_HSTATEEN3, CSR_CLASS_SMSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(sstateen0, CSR_SSTATEEN0, CSR_CLASS_SSSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(sstateen1, CSR_SSTATEEN1, CSR_CLASS_SSSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(sstateen2, CSR_SSTATEEN2, CSR_CLASS_SSSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(sstateen3, CSR_SSTATEEN3, CSR_CLASS_SSSTATEEN, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen0, CSR_HSTATEEN0, CSR_CLASS_SSSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen1, CSR_HSTATEEN1, CSR_CLASS_SSSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen2, CSR_HSTATEEN2, CSR_CLASS_SSSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen3, CSR_HSTATEEN3, CSR_CLASS_SSSTATEEN_AND_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen0h, CSR_MSTATEEN0H, CSR_CLASS_SMSTATEEN_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen1h, CSR_MSTATEEN1H, CSR_CLASS_SMSTATEEN_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen2h, CSR_MSTATEEN2H, CSR_CLASS_SMSTATEEN_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mstateen3h, CSR_MSTATEEN3H, CSR_CLASS_SMSTATEEN_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
-DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SMSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen0h, CSR_HSTATEEN0H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen1h, CSR_HSTATEEN1H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen2h, CSR_HSTATEEN2H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hstateen3h, CSR_HSTATEEN3H, CSR_CLASS_SSSTATEEN_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
/* Sscofpmf extension */
DECLARE_CSR(scountovf, CSR_SCOUNTOVF, CSR_CLASS_SSCOFPMF, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(mhpmevent3h, CSR_MHPMEVENT3H, CSR_CLASS_SSCOFPMF_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)