udb 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.data/cfgs/example_rv64_with_overlay.yaml +157 -2
- data/.data/cfgs/mc100-32-full-example.yaml +6 -0
- data/.data/cfgs/profile/RVA23S64.yaml +1 -1
- data/.data/cfgs/profile/RVA23p1S64.yaml +217 -0
- data/.data/cfgs/profile/RVB23S64.yaml +1 -1
- data/.data/cfgs/profile/RVB23p1S64.yaml +179 -0
- data/.data/cfgs/qc_iu.yaml +14 -0
- data/.data/cfgs/rv32-riscv-tests.yaml +143 -0
- data/.data/cfgs/rv32-vector.yaml +144 -1
- data/.data/cfgs/rv64-riscv-tests.yaml +143 -0
- data/.data/cfgs/rv64-vector.yaml +145 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mva01s.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mvsa01.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pop.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popret.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popretz.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.push.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pushfp.yaml +2 -2
- data/.data/spec/schemas/README.adoc +4 -1
- data/.data/spec/schemas/csr_schema.json +2 -2
- data/.data/spec/schemas/schema_defs.json +4 -1
- data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
- data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
- data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
- data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
- data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
- data/.data/spec/std/isa/csr/H/hvip.yaml +46 -0
- data/.data/spec/std/isa/csr/H/vsie.yaml +86 -0
- data/.data/spec/std/isa/csr/H/vsip.yaml +98 -0
- data/.data/spec/std/isa/csr/H/vsscratch.yaml +29 -0
- data/.data/spec/std/isa/csr/I/mcounteren.layout +7 -0
- data/.data/spec/std/isa/csr/I/mcounteren.yaml +7 -0
- data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddrN.layout +7 -7
- data/.data/spec/std/isa/csr/Smcdeleg/scountinhibit.layout +111 -0
- data/.data/spec/std/isa/csr/Smcdeleg/scountinhibit.yaml +840 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfg.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfgh.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfg.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfgh.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcsrind/mireg.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg2.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg3.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg4.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg5.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg6.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg2.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg3.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg4.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg5.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg6.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg2.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg3.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg4.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg5.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg6.yaml +2 -2
- data/.data/spec/std/isa/csr/Smctr/sctrctl.yaml +1 -1
- data/.data/spec/std/isa/csr/Smctr/sctrdepth.yaml +43 -0
- data/.data/spec/std/isa/csr/Smctr/sctrstatus.yaml +37 -0
- data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +3 -1
- data/.data/spec/std/isa/csr/Sscofpmf/scountovf.layout +7 -0
- data/.data/spec/std/isa/csr/Sscofpmf/scountovf.yaml +7 -0
- data/.data/spec/std/isa/csr/Sstc/stimecmp.yaml +42 -0
- data/.data/spec/std/isa/csr/Sstc/stimecmph.yaml +43 -0
- data/.data/spec/std/isa/csr/Sstc/vstimecmp.yaml +45 -0
- data/.data/spec/std/isa/csr/Sstc/vstimecmph.yaml +46 -0
- data/.data/spec/std/isa/csr/V/vcsr.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vl.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vlenb.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vstart.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vtype.yaml +20 -1
- data/.data/spec/std/isa/csr/V/vxrm.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vxsat.yaml +1 -1
- data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +1 -15
- data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +29 -267
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounterN.layout +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounterNh.layout +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent10.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent10h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent11.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent11h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent12.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent12h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent13.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent13h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent14.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent14h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent15.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent15h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent16.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent16h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent17.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent17h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent18.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent18h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent19.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent19h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent20.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent20h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent21.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent21h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent22.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent22h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent23.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent23h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent24.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent24h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent25.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent25h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent26.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent26h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent27.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent27h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent28.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent28h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent29.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent29h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent3.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent30.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent30h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent31.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent31h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent3h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent4.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent4h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent5.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent5h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent6.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent6h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent7.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent7h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent8.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent8h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent9.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent9h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmeventN.layout +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmeventNh.layout +4 -4
- data/.data/spec/std/isa/csr/Zkr/seed.yaml +75 -0
- data/.data/spec/std/isa/csr/hcontext.yaml +4 -4
- data/.data/spec/std/isa/csr/mcontext.yaml +4 -4
- data/.data/spec/std/isa/csr/mcycle.yaml +2 -0
- data/.data/spec/std/isa/csr/mcycleh.yaml +2 -0
- data/.data/spec/std/isa/csr/medeleg.yaml +72 -36
- data/.data/spec/std/isa/csr/menvcfg.yaml +12 -1
- data/.data/spec/std/isa/csr/menvcfgh.yaml +12 -0
- data/.data/spec/std/isa/csr/mideleg.yaml +37 -12
- data/.data/spec/std/isa/csr/mie.yaml +12 -6
- data/.data/spec/std/isa/csr/minstret.yaml +2 -0
- data/.data/spec/std/isa/csr/minstreth.yaml +2 -0
- data/.data/spec/std/isa/csr/mip.yaml +15 -7
- data/.data/spec/std/isa/csr/misa.yaml +14 -30
- data/.data/spec/std/isa/csr/mseccfg.yaml +27 -1
- data/.data/spec/std/isa/csr/mstatus.yaml +10 -4
- data/.data/spec/std/isa/csr/schema.adoc +10 -4
- data/.data/spec/std/isa/csr/scontext.yaml +8 -4
- data/.data/spec/std/isa/csr/senvcfg.yaml +6 -12
- data/.data/spec/std/isa/csr/sstateen0.yaml +1 -1
- data/.data/spec/std/isa/csr/sstateen1.yaml +2 -3
- data/.data/spec/std/isa/csr/sstateen2.yaml +2 -3
- data/.data/spec/std/isa/csr/sstateen3.yaml +2 -3
- data/.data/spec/std/isa/csr/tcontrol.yaml +41 -0
- data/.data/spec/std/isa/csr/tdata2.yaml +6 -2
- data/.data/spec/std/isa/csr/tdata3.yaml +6 -2
- data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
- data/.data/spec/std/isa/ext/Sdext.yaml +58 -2
- data/.data/spec/std/isa/ext/Sm.yaml +2 -2
- data/.data/spec/std/isa/ext/Smcdeleg.yaml +7 -0
- data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
- data/.data/spec/std/isa/ext/Smmpm.yaml +8 -0
- data/.data/spec/std/isa/ext/Smnpm.yaml +19 -0
- data/.data/spec/std/isa/ext/Smpmpdeleg.yaml +33 -0
- data/.data/spec/std/isa/ext/Ssccfg.yaml +7 -0
- data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
- data/.data/spec/std/isa/ext/Ssnpm.yaml +8 -0
- data/.data/spec/std/isa/ext/Sspmp.yaml +44 -0
- data/.data/spec/std/isa/ext/Sspmpen.yaml +30 -0
- data/.data/spec/std/isa/ext/Ssstrict.yaml +2 -2
- data/.data/spec/std/isa/ext/Sv32.yaml +2 -2
- data/.data/spec/std/isa/ext/Svpbmt.yaml +2 -2
- data/.data/spec/std/isa/ext/Zaamo.yaml +1 -1
- data/.data/spec/std/isa/ext/Zbc.yaml +4 -0
- data/.data/spec/std/isa/ext/Zvabd.yaml +5 -1
- data/.data/spec/std/isa/ext/Zvfbdota32f.yaml +23 -0
- data/.data/spec/std/isa/ext/Zvfbfa.yaml +24 -0
- data/.data/spec/std/isa/ext/Zvfofp4min.yaml +21 -0
- data/.data/spec/std/isa/ext/Zvfofp8min.yaml +20 -0
- data/.data/spec/std/isa/ext/Zvzip.yaml +24 -0
- data/.data/spec/std/isa/inst/B/andn.yaml +0 -4
- data/.data/spec/std/isa/inst/B/orn.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rev8.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rol.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rolw.yaml +0 -4
- data/.data/spec/std/isa/inst/B/ror.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rori.yaml +0 -4
- data/.data/spec/std/isa/inst/B/roriw.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rorw.yaml +0 -4
- data/.data/spec/std/isa/inst/B/xnor.yaml +0 -4
- data/.data/spec/std/isa/inst/C/c.addi.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.addi4spn.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.addiw.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.beqz.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.bnez.yaml +4 -4
- data/.data/spec/std/isa/inst/C/c.ebreak.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.j.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.jal.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.jalr.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.jr.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.ldsp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.li.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.lui.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.lw.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.lwsp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.mv.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.nop.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.sdsp.yaml +5 -5
- data/.data/spec/std/isa/inst/C/c.sw.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.swsp.yaml +2 -2
- data/.data/spec/std/isa/inst/H/hlv.b.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.bu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.d.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.h.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.hu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.w.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.wu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlvx.hu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlvx.wu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.b.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.d.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.h.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.w.yaml +1 -1
- data/.data/spec/std/isa/inst/I/ld.yaml +18 -12
- data/.data/spec/std/isa/inst/I/sd.yaml +18 -12
- data/.data/spec/std/isa/inst/I/wfi.yaml +1 -1
- data/.data/spec/std/isa/inst/M/div.yaml +2 -2
- data/.data/spec/std/isa/inst/M/divu.yaml +2 -2
- data/.data/spec/std/isa/inst/M/divuw.yaml +2 -2
- data/.data/spec/std/isa/inst/M/divw.yaml +2 -2
- data/.data/spec/std/isa/inst/M/mul.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulh.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulhsu.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulhu.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulw.yaml +0 -4
- data/.data/spec/std/isa/inst/M/rem.yaml +2 -2
- data/.data/spec/std/isa/inst/M/remu.yaml +2 -2
- data/.data/spec/std/isa/inst/M/remuw.yaml +2 -2
- data/.data/spec/std/isa/inst/M/remw.yaml +2 -2
- data/.data/spec/std/isa/inst/Q/fcvt.q.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Q/flq.yaml +1 -1
- data/.data/spec/std/isa/inst/Sdext/dret.yaml +72 -6
- data/.data/spec/std/isa/inst/V/vfadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfclass.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmax.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmax.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmerge.vfm.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmin.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmin.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmul.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmul.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmv.f.s.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmv.s.f.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmv.v.f.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +5 -3
- data/.data/spec/std/isa/inst/V/vfncvt.f.x.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.f.xu.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +5 -3
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +5 -3
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +5 -3
- data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +5 -3
- data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +5 -3
- data/.data/spec/std/isa/inst/V/vfnmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfrec7.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfrsqrt7.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfrsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnj.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnj.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjn.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjx.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfslide1down.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfslide1up.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.wf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.wv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwcvt.f.f.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwcvt.f.x.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwcvt.f.xu.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmul.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmul.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.wf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.wv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfeq.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfeq.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfge.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfgt.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfle.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmflt.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfne.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfne.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vnclip.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclip.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclip.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclipu.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclipu.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclipu.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsra.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsra.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsra.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsrl.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsrl.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsrl.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +4 -10
- data/.data/spec/std/isa/inst/Zba/add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh1add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh1add.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh2add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh2add.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh3add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh3add.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/slli.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/clz.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/clzw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/cpop.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/cpopw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/ctz.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/max.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/maxu.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/min.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/minu.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/sext.b.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/sext.h.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/zext.h.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbc/clmulr.yaml +0 -4
- data/.data/spec/std/isa/inst/{B → Zbkc}/clmul.yaml +1 -7
- data/.data/spec/std/isa/inst/{B → Zbkc}/clmulh.yaml +1 -7
- data/.data/spec/std/isa/inst/Zbs/bclr.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bclri.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bext.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bexti.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/binv.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/binvi.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bset.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bseti.yaml +0 -4
- data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.not.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.sext.b.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.sext.h.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.zext.h.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcmp/cm.mva01s.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.mvsa01.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -2
- data/.data/spec/std/isa/inst/Zfh/fcvt.h.s.yaml +28 -20
- data/.data/spec/std/isa/inst/Zfh/fcvt.s.h.yaml +35 -20
- data/.data/spec/std/isa/inst/Zicbom/cbo.clean.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicbom/cbo.flush.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
- data/.data/spec/std/isa/inst/Zvabd/vabd.vv.yaml +3 -3
- data/.data/spec/std/isa/inst/Zvabd/vabd.vx.yaml +69 -0
- data/.data/spec/std/isa/inst/Zvabd/vabdu.vv.yaml +3 -3
- data/.data/spec/std/isa/inst/Zvabd/{vabs.v.yaml → vabdu.vx.yaml} +17 -11
- data/.data/spec/std/isa/inst/Zvabd/vwabda.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/Zvabd/vwabda.vx.yaml +73 -0
- data/.data/spec/std/isa/inst/Zvabd/vwabdau.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/Zvabd/vwabdau.vx.yaml +74 -0
- data/.data/spec/std/isa/inst/Zvfbdota32f/vfbdota.vv.yaml +68 -0
- data/.data/spec/std/isa/inst/Zvfbfmin/vfncvtbf16.f.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/Zvfbfmin/vfwcvtbf16.f.f.v.yaml +3 -1
- data/.data/spec/std/isa/inst/Zvfofp4min/vfext.vf2.yaml +35 -0
- data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.f.f.q.yaml +31 -0
- data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.sat.f.f.q.yaml +32 -0
- data/.data/spec/std/isa/inst/Zvfofp8min/vfncvtbf16.sat.f.f.w.yaml +32 -0
- data/.data/spec/std/isa/inst/Zvzip/vpaire.vv.yaml +36 -0
- data/.data/spec/std/isa/inst/Zvzip/vpairo.vv.yaml +37 -0
- data/.data/spec/std/isa/inst/Zvzip/vunzipe.v.yaml +33 -0
- data/.data/spec/std/isa/inst/Zvzip/vunzipo.v.yaml +33 -0
- data/.data/spec/std/isa/inst/Zvzip/vzip.vv.yaml +37 -0
- data/.data/spec/std/isa/isa/builtin_functions.idl +54 -1
- data/.data/spec/std/isa/isa/globals.isa +117 -5
- data/.data/spec/std/isa/isa/util.idl +1 -0
- data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +2 -10
- data/.data/spec/std/isa/param/HCONTEXT_IMPLEMENTED.yaml +29 -0
- data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +2 -5
- data/.data/spec/std/isa/param/HPM_COUNTER10_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER11_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER12_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER13_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER14_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER15_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER16_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER17_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER18_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER19_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER20_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER21_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER22_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER23_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER24_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER25_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER26_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER27_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER28_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER29_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER30_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER31_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER3_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER4_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER5_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER6_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER7_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER8_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER9_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTERN_WIDTH.layout +27 -0
- data/.data/spec/std/isa/param/HW_MSTATUS_FS_DIRTY_UPDATE.yaml +2 -4
- data/.data/spec/std/isa/param/HW_MSTATUS_VS_DIRTY_UPDATE.yaml +2 -4
- data/.data/spec/std/isa/param/LRSC_FAIL_ON_NON_EXACT_LRSC.yaml +1 -1
- data/.data/spec/std/isa/param/LRSC_FAIL_ON_VA_SYNONYM.yaml +1 -1
- data/.data/spec/std/isa/param/LRSC_MISALIGNED_BEHAVIOR.yaml +4 -4
- data/.data/spec/std/isa/param/LRSC_RESERVATION_STRATEGY.yaml +1 -1
- data/.data/spec/std/isa/param/{MCONTEXT_AVAILABLE.yaml → MCONTEXT_IMPLEMENTED.yaml} +3 -3
- data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +2 -5
- data/.data/spec/std/isa/param/MEDELEG_DELEGATABLE.yaml +121 -0
- data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/MIDELEG_DELEGATABLE.yaml +177 -0
- data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/MSTATUS_FS_LEGAL_VALUES.yaml +8 -15
- data/.data/spec/std/isa/param/MSTATUS_VS_LEGAL_VALUES.yaml +7 -15
- data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/MTVAL_WIDTH.yaml +17 -5
- data/.data/spec/std/isa/param/MUTABLE_MISA_A.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_B.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_C.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_D.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_F.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_M.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_Q.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_U.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_V.yaml +1 -1
- data/.data/spec/std/isa/param/{HCONTEXT_AVAILABLE.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +5 -7
- data/.data/spec/std/isa/param/NUM_EXTERNAL_GUEST_INTERRUPTS.yaml +1 -1
- data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +1 -1
- data/.data/spec/std/isa/param/REPORT_CAUSE_IN_MTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
- data/.data/spec/std/isa/param/REPORT_CAUSE_IN_STVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
- data/.data/spec/std/isa/param/REPORT_CAUSE_IN_VSTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
- data/.data/spec/std/isa/param/SCONTEXT_IMPLEMENTED.yaml +18 -0
- data/.data/spec/std/isa/param/SCOUNTENABLE_EN.yaml +2 -6
- data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
- data/.data/spec/std/isa/param/SDTRIG_BREAKPOINT_REENTRANCY.yaml +45 -0
- data/.data/spec/std/isa/param/SDTRIG_ETRIGGER_SUPPORTED_EXCEPTIONS.yaml +37 -0
- data/.data/spec/std/isa/param/SDTRIG_ETRIGGER_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_ICOUNT_COUNT_HARDWIRED_1.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_ICOUNT_SELF_WRITE_SETS_PENDING.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_ICOUNT_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_ITRIGGER_SUPPORTED_INTERRUPTS.yaml +37 -0
- data/.data/spec/std/isa/param/SDTRIG_ITRIGGER_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_MAX_CHAIN_LENGTH.yaml +33 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_EXECUTE_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_LOAD_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_MASKMAX6.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_MATCH_LEGAL_VALUES.yaml +41 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SELECT_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SIZE_LEGAL_VALUES.yaml +38 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_STORE_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_M_WRITABLE.yaml +17 -0
- data/.data/spec/std/isa/param/SDTRIG_NUM_TRIGGERS.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_S_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHSELECT_MCONTEXT_MATCH.yaml +24 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHSELECT_VMID_MATCH.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHVALUE_LEN.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SSELECT_ASID_MATCH.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SSELECT_SCONTEXT_MATCH.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SVALUE_LEN.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_U_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SDTRIG_VS_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SDTRIG_VU_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/SSEED_READ_ONLY_ZERO.yaml +28 -0
- data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +33 -0
- data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +81 -0
- data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMMPM.yaml +40 -0
- data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMNPM.yaml +42 -0
- data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SSNPM.yaml +42 -0
- data/.data/spec/std/isa/param/TCONTROL_IMPLEMENTED.yaml +16 -0
- data/.data/spec/std/isa/param/TDATA2_IMPLEMENTED.yaml +26 -0
- data/.data/spec/std/isa/param/TDATA3_IMPLEMENTED.yaml +29 -0
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_S.yaml +1 -1
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_U.yaml +1 -1
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_VS.yaml +1 -1
- data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -1
- data/.data/spec/std/isa/param/USEED_READ_ONLY_ZERO.yaml +28 -0
- data/.data/spec/std/isa/param/WFI_FINITE.yaml +20 -0
- data/.data/spec/std/isa/param/WFI_U_MODE.yaml +20 -0
- data/.data/spec/std/isa/profile/RVA23p1S64.yaml +37 -0
- data/.data/spec/std/isa/profile/RVB23p1S64.yaml +39 -0
- data/.data/spec/std/isa/profile_family/RVA.yaml +3 -1
- data/.data/spec/std/isa/profile_family/RVB.yaml +3 -1
- data/.data/spec/std/isa/profile_release/RVA23p1.yaml +30 -0
- data/.data/spec/std/isa/profile_release/RVB23p1.yaml +30 -0
- data/lib/udb/Z3_VERSION +1 -1
- data/lib/udb/log.rb +16 -0
- data/lib/udb/obj/csr.rb +38 -45
- data/lib/udb/obj/database_obj.rb +1 -1
- data/lib/udb/obj/exception_code.rb +3 -3
- data/lib/udb/version.rb +1 -1
- metadata +139 -13
- data/.data/spec/std/isa/param/PMLEN.yaml +0 -20
|
@@ -11,7 +11,9 @@ description: |
|
|
|
11
11
|
Converts each single-precision floating-point element in vector register vs2 to BFloat16 format, storing results in vector register vd according to mask vm. This is a narrowing conversion that compresses 32-bit single-precision values to 16-bit BFloat16 values.
|
|
12
12
|
definedBy:
|
|
13
13
|
extension:
|
|
14
|
-
|
|
14
|
+
anyOf:
|
|
15
|
+
- name: Zvfbfmin
|
|
16
|
+
- name: Zvfofp8min
|
|
15
17
|
assembly: vd, vs2, vm
|
|
16
18
|
encoding:
|
|
17
19
|
match: 010010------11101001-----1010111
|
|
@@ -11,7 +11,9 @@ description: |
|
|
|
11
11
|
Converts each BFloat16 element in vector register vs2 to single-precision floating-point format, storing results in vector register vd according to mask vm. This is a widening conversion that expands 16-bit BFloat16 values to 32-bit single-precision values.
|
|
12
12
|
definedBy:
|
|
13
13
|
extension:
|
|
14
|
-
|
|
14
|
+
anyOf:
|
|
15
|
+
- name: Zvfbfmin
|
|
16
|
+
- name: Zvfofp8min
|
|
15
17
|
assembly: vd, vs2, vm
|
|
16
18
|
encoding:
|
|
17
19
|
match: 010010------01101001-----1010111
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vfext.vf2
|
|
7
|
+
long_name: Vector OFP4 to OFP8 widening conversion
|
|
8
|
+
description: |
|
|
9
|
+
Converts a vector of OFP4 E2M1 values in vector register vs2 (EEW=4,
|
|
10
|
+
EMUL=LMUL/2) to a vector of OFP8 E4M3 values in vector register vd
|
|
11
|
+
(EEW=8, EMUL=LMUL), according to mask vm. Defined only for SEW=8,
|
|
12
|
+
altfmt=0, and LMUL >= 1/4. No rounding occurs, and no floating-point
|
|
13
|
+
exception flags are set. This instruction does not access the fcsr
|
|
14
|
+
and is not considered a floating-point instruction for the purposes
|
|
15
|
+
of the floating-point context status (FS) setting.
|
|
16
|
+
definedBy:
|
|
17
|
+
extension:
|
|
18
|
+
name: Zvfofp4min
|
|
19
|
+
assembly: vd, vs2, vm
|
|
20
|
+
encoding:
|
|
21
|
+
match: "010010------10110010-----1010111"
|
|
22
|
+
variables:
|
|
23
|
+
- name: vm
|
|
24
|
+
location: 25-25
|
|
25
|
+
- name: vs2
|
|
26
|
+
location: 24-20
|
|
27
|
+
- name: vd
|
|
28
|
+
location: 11-7
|
|
29
|
+
access:
|
|
30
|
+
s: always
|
|
31
|
+
u: always
|
|
32
|
+
vs: always
|
|
33
|
+
vu: always
|
|
34
|
+
data_independent_timing: false
|
|
35
|
+
operation(): |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vfncvt.f.f.q
|
|
7
|
+
long_name: Vector floating-point FP32 conversion to OFP8
|
|
8
|
+
description: |
|
|
9
|
+
Converts FP32 floating-point elements in vector register vs2 to OFP8
|
|
10
|
+
elements and stores the results in vector register vd according to mask vm.
|
|
11
|
+
Results are rounded using the dynamic floating-point rounding mode.
|
|
12
|
+
definedBy:
|
|
13
|
+
extension:
|
|
14
|
+
name: Zvfofp8min
|
|
15
|
+
assembly: vd, vs2, vm
|
|
16
|
+
encoding:
|
|
17
|
+
match: 010010------11001001-----1010111
|
|
18
|
+
variables:
|
|
19
|
+
- name: vm
|
|
20
|
+
location: 25-25
|
|
21
|
+
- name: vs2
|
|
22
|
+
location: 24-20
|
|
23
|
+
- name: vd
|
|
24
|
+
location: 11-7
|
|
25
|
+
access:
|
|
26
|
+
s: always
|
|
27
|
+
u: always
|
|
28
|
+
vs: always
|
|
29
|
+
vu: always
|
|
30
|
+
data_independent_timing: false
|
|
31
|
+
operation(): |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vfncvt.sat.f.f.q
|
|
7
|
+
long_name: Vector floating-point FP32 saturating conversion to OFP8
|
|
8
|
+
description: |
|
|
9
|
+
Converts FP32 floating-point elements in vector register vs2 to OFP8
|
|
10
|
+
elements and stores the results in vector register vd according to mask vm.
|
|
11
|
+
Infinite results are converted to the maximum-magnitude finite value of the
|
|
12
|
+
same sign.
|
|
13
|
+
definedBy:
|
|
14
|
+
extension:
|
|
15
|
+
name: Zvfofp8min
|
|
16
|
+
assembly: vd, vs2, vm
|
|
17
|
+
encoding:
|
|
18
|
+
match: 010010------11011001-----1010111
|
|
19
|
+
variables:
|
|
20
|
+
- name: vm
|
|
21
|
+
location: 25-25
|
|
22
|
+
- name: vs2
|
|
23
|
+
location: 24-20
|
|
24
|
+
- name: vd
|
|
25
|
+
location: 11-7
|
|
26
|
+
access:
|
|
27
|
+
s: always
|
|
28
|
+
u: always
|
|
29
|
+
vs: always
|
|
30
|
+
vu: always
|
|
31
|
+
data_independent_timing: false
|
|
32
|
+
operation(): |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vfncvtbf16.sat.f.f.w
|
|
7
|
+
long_name: Vector saturating narrowing BFloat16 to OFP8 conversion
|
|
8
|
+
description: |
|
|
9
|
+
Converts BFloat16 floating-point elements in vector register vs2 to OFP8
|
|
10
|
+
elements and stores the results in vector register vd according to mask vm.
|
|
11
|
+
Infinite results are converted to the maximum-magnitude finite value of the
|
|
12
|
+
same sign.
|
|
13
|
+
definedBy:
|
|
14
|
+
extension:
|
|
15
|
+
name: Zvfofp8min
|
|
16
|
+
assembly: vd, vs2, vm
|
|
17
|
+
encoding:
|
|
18
|
+
match: 010010------11111001-----1010111
|
|
19
|
+
variables:
|
|
20
|
+
- name: vm
|
|
21
|
+
location: 25-25
|
|
22
|
+
- name: vs2
|
|
23
|
+
location: 24-20
|
|
24
|
+
- name: vd
|
|
25
|
+
location: 11-7
|
|
26
|
+
access:
|
|
27
|
+
s: always
|
|
28
|
+
u: always
|
|
29
|
+
vs: always
|
|
30
|
+
vu: always
|
|
31
|
+
data_independent_timing: false
|
|
32
|
+
operation(): |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vpaire.vv
|
|
7
|
+
long_name: Vector pair even
|
|
8
|
+
description: |
|
|
9
|
+
Interleaves even-indexed elements of two source vector register groups into
|
|
10
|
+
the destination. All operands have EMUL=LMUL. For destination index `i`,
|
|
11
|
+
even indices read `vs2[i]` and odd indices read `vs1[i-1]`, producing
|
|
12
|
+
`[vs2[0], vs1[0], vs2[2], vs1[2], ...]`. Standard vector masking,
|
|
13
|
+
prestart, inactive, and tail handling applies. The destination may not
|
|
14
|
+
overlap either source group.
|
|
15
|
+
definedBy:
|
|
16
|
+
extension:
|
|
17
|
+
name: Zvzip
|
|
18
|
+
assembly: vd, vs2, vs1, vm
|
|
19
|
+
encoding:
|
|
20
|
+
match: 001111-----------000-----1010111
|
|
21
|
+
variables:
|
|
22
|
+
- name: vm
|
|
23
|
+
location: 25
|
|
24
|
+
- name: vs2
|
|
25
|
+
location: 24-20
|
|
26
|
+
- name: vs1
|
|
27
|
+
location: 19-15
|
|
28
|
+
- name: vd
|
|
29
|
+
location: 11-7
|
|
30
|
+
access:
|
|
31
|
+
s: always
|
|
32
|
+
u: always
|
|
33
|
+
vs: always
|
|
34
|
+
vu: always
|
|
35
|
+
data_independent_timing: true
|
|
36
|
+
operation(): |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vpairo.vv
|
|
7
|
+
long_name: Vector pair odd
|
|
8
|
+
description: |
|
|
9
|
+
Interleaves odd-indexed elements of two source vector register groups into
|
|
10
|
+
the destination. All operands have EMUL=LMUL. For destination index `i`,
|
|
11
|
+
even indices read `vs2[i+1]` and odd indices read `vs1[i]`, producing
|
|
12
|
+
`[vs2[1], vs1[1], vs2[3], vs1[3], ...]`. When `vl` is odd, the final
|
|
13
|
+
out-of-range source position contributes zero; no source at or above `vl`
|
|
14
|
+
is read. Standard vector masking, prestart, inactive, and tail handling
|
|
15
|
+
applies. The destination may not overlap either source group.
|
|
16
|
+
definedBy:
|
|
17
|
+
extension:
|
|
18
|
+
name: Zvzip
|
|
19
|
+
assembly: vd, vs2, vs1, vm
|
|
20
|
+
encoding:
|
|
21
|
+
match: 001111-----------010-----1010111
|
|
22
|
+
variables:
|
|
23
|
+
- name: vm
|
|
24
|
+
location: 25
|
|
25
|
+
- name: vs2
|
|
26
|
+
location: 24-20
|
|
27
|
+
- name: vs1
|
|
28
|
+
location: 19-15
|
|
29
|
+
- name: vd
|
|
30
|
+
location: 11-7
|
|
31
|
+
access:
|
|
32
|
+
s: always
|
|
33
|
+
u: always
|
|
34
|
+
vs: always
|
|
35
|
+
vu: always
|
|
36
|
+
data_independent_timing: true
|
|
37
|
+
operation(): |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vunzipe.v
|
|
7
|
+
long_name: Vector unzip even
|
|
8
|
+
description: |
|
|
9
|
+
Extracts even-indexed elements from source vector register group `vs2`,
|
|
10
|
+
with EMUL=2*LMUL, into destination `vd`, with EMUL=LMUL. For `0 <= i < vl`,
|
|
11
|
+
`vd[i] = vs2[2*i]`; source indices below `2*vl` may be read. `LMUL=8`
|
|
12
|
+
and masked encodings (`vm=0`) are illegal. Destination/source overlap is
|
|
13
|
+
allowed only when `vd` equals `vs2`, as for narrowing instructions.
|
|
14
|
+
definedBy:
|
|
15
|
+
extension:
|
|
16
|
+
name: Zvzip
|
|
17
|
+
assembly: vd, vs2, vm
|
|
18
|
+
encoding:
|
|
19
|
+
match: 010010------01011010-----1010111
|
|
20
|
+
variables:
|
|
21
|
+
- name: vm
|
|
22
|
+
location: 25
|
|
23
|
+
- name: vs2
|
|
24
|
+
location: 24-20
|
|
25
|
+
- name: vd
|
|
26
|
+
location: 11-7
|
|
27
|
+
access:
|
|
28
|
+
s: always
|
|
29
|
+
u: always
|
|
30
|
+
vs: always
|
|
31
|
+
vu: always
|
|
32
|
+
data_independent_timing: true
|
|
33
|
+
operation(): |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vunzipo.v
|
|
7
|
+
long_name: Vector unzip odd
|
|
8
|
+
description: |
|
|
9
|
+
Extracts odd-indexed elements from source vector register group `vs2`,
|
|
10
|
+
with EMUL=2*LMUL, into destination `vd`, with EMUL=LMUL. For `0 <= i < vl`,
|
|
11
|
+
`vd[i] = vs2[2*i+1]`; source indices below `2*vl` may be read. `LMUL=8`
|
|
12
|
+
and masked encodings (`vm=0`) are illegal. Destination/source overlap is
|
|
13
|
+
allowed only when `vd` equals `vs2`, as for narrowing instructions.
|
|
14
|
+
definedBy:
|
|
15
|
+
extension:
|
|
16
|
+
name: Zvzip
|
|
17
|
+
assembly: vd, vs2, vm
|
|
18
|
+
encoding:
|
|
19
|
+
match: 010010------01111010-----1010111
|
|
20
|
+
variables:
|
|
21
|
+
- name: vm
|
|
22
|
+
location: 25
|
|
23
|
+
- name: vs2
|
|
24
|
+
location: 24-20
|
|
25
|
+
- name: vd
|
|
26
|
+
location: 11-7
|
|
27
|
+
access:
|
|
28
|
+
s: always
|
|
29
|
+
u: always
|
|
30
|
+
vs: always
|
|
31
|
+
vu: always
|
|
32
|
+
data_independent_timing: true
|
|
33
|
+
operation(): |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
|
|
4
|
+
$schema: "inst_schema.json#"
|
|
5
|
+
kind: instruction
|
|
6
|
+
name: vzip.vv
|
|
7
|
+
long_name: Vector zip
|
|
8
|
+
description: |
|
|
9
|
+
Interleaves source vector register groups `vs2` and `vs1`, each with
|
|
10
|
+
EMUL=LMUL/2, into destination `vd` with EMUL=LMUL. For destination index
|
|
11
|
+
`i`, even indices read `vs2[i/2]` and odd indices read `vs1[i/2]`.
|
|
12
|
+
Standard vector masking, prestart, inactive, and tail handling applies.
|
|
13
|
+
The source and destination groups may overlap only when source EMUL is at
|
|
14
|
+
least 1 and their highest-numbered registers coincide. The encoding is
|
|
15
|
+
illegal when `2*SEW > LMUL * ELEN` or overlap rules are violated.
|
|
16
|
+
definedBy:
|
|
17
|
+
extension:
|
|
18
|
+
name: Zvzip
|
|
19
|
+
assembly: vd, vs2, vs1, vm
|
|
20
|
+
encoding:
|
|
21
|
+
match: 111110-----------010-----1010111
|
|
22
|
+
variables:
|
|
23
|
+
- name: vm
|
|
24
|
+
location: 25
|
|
25
|
+
- name: vs2
|
|
26
|
+
location: 24-20
|
|
27
|
+
- name: vs1
|
|
28
|
+
location: 19-15
|
|
29
|
+
- name: vd
|
|
30
|
+
location: 11-7
|
|
31
|
+
access:
|
|
32
|
+
s: always
|
|
33
|
+
u: always
|
|
34
|
+
vs: always
|
|
35
|
+
vu: always
|
|
36
|
+
data_independent_timing: true
|
|
37
|
+
operation(): |
|
|
@@ -58,10 +58,12 @@ generated function direct_csr_lookup {
|
|
|
58
58
|
generated function indirect_csr_lookup {
|
|
59
59
|
returns Csr
|
|
60
60
|
arguments
|
|
61
|
+
PrivilegeMode target_mode,
|
|
61
62
|
Bits<MXLEN> csr_addr,
|
|
62
63
|
Bits<4> window_slot # 1-indexed "slot" in the window (corresponding to *ireg<window_slot>)
|
|
63
64
|
description {
|
|
64
|
-
Return CSR info for a CSR with indirect address +csr_addr+
|
|
65
|
+
Return CSR info for a CSR with indirect address +csr_addr+ in the target privilege-mode
|
|
66
|
+
indirect address space at window slot +window_slot+.
|
|
65
67
|
|
|
66
68
|
If no CSR exists, <return_value>.valid == false
|
|
67
69
|
}
|
|
@@ -654,6 +656,38 @@ builtin function atomically_set_pte_a_d {
|
|
|
654
656
|
}
|
|
655
657
|
}
|
|
656
658
|
|
|
659
|
+
builtin function atomic_read_modify_write_8 {
|
|
660
|
+
returns Bits<8>
|
|
661
|
+
arguments
|
|
662
|
+
Bits<PHYS_ADDR_WIDTH> phys_addr,
|
|
663
|
+
Bits<8> value,
|
|
664
|
+
AmoOperation op
|
|
665
|
+
description {
|
|
666
|
+
Atomically read-modify-write 8-bits starting at phys_address using +value+ and +op+.
|
|
667
|
+
|
|
668
|
+
Return the original (unmodified) read value.
|
|
669
|
+
|
|
670
|
+
All access checks/alignment checks/etc. should be done before calling this function;
|
|
671
|
+
it's assumed the RMW is OK to proceed.
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
builtin function atomic_read_modify_write_16 {
|
|
676
|
+
returns Bits<16>
|
|
677
|
+
arguments
|
|
678
|
+
Bits<PHYS_ADDR_WIDTH> phys_addr,
|
|
679
|
+
Bits<16> value,
|
|
680
|
+
AmoOperation op
|
|
681
|
+
description {
|
|
682
|
+
Atomically read-modify-write 16-bits starting at phys_address using +value+ and +op+.
|
|
683
|
+
|
|
684
|
+
Return the original (unmodified) read value.
|
|
685
|
+
|
|
686
|
+
All access checks/alignment checks/etc. should be done before calling this function;
|
|
687
|
+
it's assumed the RMW is OK to proceed.
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
|
|
657
691
|
builtin function atomic_read_modify_write_32 {
|
|
658
692
|
returns Bits<32>
|
|
659
693
|
arguments
|
|
@@ -685,3 +719,22 @@ builtin function atomic_read_modify_write_64 {
|
|
|
685
719
|
it's assumed the RMW is OK to proceed.
|
|
686
720
|
}
|
|
687
721
|
}
|
|
722
|
+
builtin function read_seed {
|
|
723
|
+
returns Bits<32>
|
|
724
|
+
description {
|
|
725
|
+
Poll the implementation's entropy source and return the 32-bit seed value.
|
|
726
|
+
Bits 31:30 hold the OPST status and bits 15:0 hold the entropy, which is
|
|
727
|
+
only meaningful when OPST is ES16. Each poll returns unique randomness,
|
|
728
|
+
even if its numerical value happens to match a previous poll.
|
|
729
|
+
A single call represents one complete poll, so the status and the entropy
|
|
730
|
+
it returns describe the same state of the source.
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
builtin function write_seed {
|
|
734
|
+
description {
|
|
735
|
+
Signal a write to the seed CSR.
|
|
736
|
+
The written value is ignored; the write exists to signal polling and
|
|
737
|
+
flushing, so an implementation may use this to advance the state of its
|
|
738
|
+
entropy source.
|
|
739
|
+
}
|
|
740
|
+
}
|
|
@@ -945,6 +945,76 @@ function xlen {
|
|
|
945
945
|
}
|
|
946
946
|
}
|
|
947
947
|
|
|
948
|
+
enum Endian {
|
|
949
|
+
Little 0
|
|
950
|
+
Big 1
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
function endianness {
|
|
954
|
+
returns Endian
|
|
955
|
+
description {
|
|
956
|
+
Returns the endianness for the effective privilege mode.
|
|
957
|
+
}
|
|
958
|
+
body {
|
|
959
|
+
if (effective_ldst_mode() == PrivilegeMode::M) {
|
|
960
|
+
if (CSR[mstatus].MBE == 1'b1) {
|
|
961
|
+
return Endian::Big;
|
|
962
|
+
} else {
|
|
963
|
+
return Endian::Little;
|
|
964
|
+
}
|
|
965
|
+
} else if (implemented?(ExtensionName::S) && effective_ldst_mode() == PrivilegeMode::S) {
|
|
966
|
+
if (CSR[mstatus].SBE == 1'b1) {
|
|
967
|
+
return Endian::Big;
|
|
968
|
+
} else {
|
|
969
|
+
return Endian::Little;
|
|
970
|
+
}
|
|
971
|
+
} else if (implemented?(ExtensionName::U) && effective_ldst_mode() == PrivilegeMode::U) {
|
|
972
|
+
if (CSR[mstatus].UBE == 1'b1) {
|
|
973
|
+
return Endian::Big;
|
|
974
|
+
} else {
|
|
975
|
+
return Endian::Little;
|
|
976
|
+
}
|
|
977
|
+
} else if (implemented?(ExtensionName::H)) {
|
|
978
|
+
if (effective_ldst_mode() == PrivilegeMode::VS) {
|
|
979
|
+
if(CSR[hstatus].VSBE == 1'b1) {
|
|
980
|
+
return Endian::Big;
|
|
981
|
+
} else {
|
|
982
|
+
return Endian::Little;
|
|
983
|
+
}
|
|
984
|
+
} else if (effective_ldst_mode() == PrivilegeMode::VU) {
|
|
985
|
+
if(CSR[vsstatus].UBE == 1'b1) {
|
|
986
|
+
return Endian::Big;
|
|
987
|
+
} else {
|
|
988
|
+
return Endian::Little;
|
|
989
|
+
}
|
|
990
|
+
} else {
|
|
991
|
+
unreachable();
|
|
992
|
+
}
|
|
993
|
+
} else {
|
|
994
|
+
unreachable();
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
function byte_swap {
|
|
1000
|
+
returns XReg
|
|
1001
|
+
arguments
|
|
1002
|
+
U32 LEN,
|
|
1003
|
+
XReg value
|
|
1004
|
+
description {
|
|
1005
|
+
Swaps bytes in register based on LEN.
|
|
1006
|
+
}
|
|
1007
|
+
body {
|
|
1008
|
+
XReg result;
|
|
1009
|
+
|
|
1010
|
+
result = 0;
|
|
1011
|
+
for (U32 i=0; i < LEN; i = i+8) {
|
|
1012
|
+
result[(i+7):i] = value[(LEN-1-i):(LEN-8-i)];
|
|
1013
|
+
}
|
|
1014
|
+
return result;
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
|
|
948
1018
|
function virtual_mode? {
|
|
949
1019
|
returns Boolean
|
|
950
1020
|
description {
|
|
@@ -2627,9 +2697,19 @@ function read_memory {
|
|
|
2627
2697
|
body {
|
|
2628
2698
|
Boolean aligned = is_naturally_aligned(LEN, virtual_address);
|
|
2629
2699
|
XReg physical_address;
|
|
2700
|
+
XReg result;
|
|
2630
2701
|
|
|
2631
2702
|
if (aligned) {
|
|
2632
|
-
|
|
2703
|
+
result = read_memory_aligned(LEN, virtual_address, encoding, 1'b0, 1'b0);
|
|
2704
|
+
if (LEN > 8 && endianness() == Endian::Big ) {
|
|
2705
|
+
U32 tmp;
|
|
2706
|
+
for (U32 i=0; i < LEN/2; i = i+8) {
|
|
2707
|
+
tmp = result[(i+7):i];
|
|
2708
|
+
result[(i+7):i] = result[(LEN-1-i):(LEN-8-i)];
|
|
2709
|
+
result[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
|
|
2710
|
+
}
|
|
2711
|
+
}
|
|
2712
|
+
return result;
|
|
2633
2713
|
}
|
|
2634
2714
|
|
|
2635
2715
|
# access isn't naturally aligned, but it still might be atomic if this hart supports
|
|
@@ -2646,7 +2726,16 @@ function read_memory {
|
|
|
2646
2726
|
|
|
2647
2727
|
if (misaligned_is_atomic?(LEN, physical_address)) {
|
|
2648
2728
|
access_check(physical_address, LEN, virtual_address, MemoryOperation::Read, ExceptionCode::LoadAccessFault, effective_ldst_mode());
|
|
2649
|
-
|
|
2729
|
+
result = read_physical_memory(LEN, physical_address);
|
|
2730
|
+
if (LEN > 8 && endianness() == Endian::Big) {
|
|
2731
|
+
U32 tmp;
|
|
2732
|
+
for (U32 i=0; i < LEN/2; i = i+8) {
|
|
2733
|
+
tmp = result[(i+7):i];
|
|
2734
|
+
result[(i+7):i] = result[(LEN-1-i):(LEN-8-i)];
|
|
2735
|
+
result[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
|
|
2736
|
+
}
|
|
2737
|
+
}
|
|
2738
|
+
return result;
|
|
2650
2739
|
}
|
|
2651
2740
|
}
|
|
2652
2741
|
|
|
@@ -2666,10 +2755,18 @@ function read_memory {
|
|
|
2666
2755
|
|
|
2667
2756
|
# misaligned, must break into multiple reads
|
|
2668
2757
|
if (MISALIGNED_SPLIT_STRATEGY == "sequential_bytes") {
|
|
2669
|
-
|
|
2758
|
+
result = 0;
|
|
2670
2759
|
for (U32 I = 0; I < (LEN/8); I++) {
|
|
2671
2760
|
result = result | (read_memory_aligned(8, virtual_address + I, encoding, 1'b0, 1'b0) `<< (8*I));
|
|
2672
2761
|
}
|
|
2762
|
+
if(LEN > 8 && endianness() == Endian::Big) {
|
|
2763
|
+
U32 tmp;
|
|
2764
|
+
for (U32 i=0; i < LEN/2; i = i+8) {
|
|
2765
|
+
tmp = result[(i+7):i];
|
|
2766
|
+
result[(i+7):i] = result[(LEN-1-i):(LEN-8-i)];
|
|
2767
|
+
result[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2673
2770
|
return result;
|
|
2674
2771
|
} else if (MISALIGNED_SPLIT_STRATEGY == "custom") {
|
|
2675
2772
|
unpredictable("An implementation is free to break a misaligned access any way, leading to unpredictable behavior when any part of the misaligned access causes an exception");
|
|
@@ -2972,10 +3069,16 @@ function amo {
|
|
|
2972
3069
|
raise (ExceptionCode::StoreAmoAddressMisaligned, mode(), virtual_address);
|
|
2973
3070
|
}
|
|
2974
3071
|
|
|
2975
|
-
if (N ==
|
|
3072
|
+
if (N == 8) {
|
|
3073
|
+
return atomic_read_modify_write_8(physical_address, value, op);
|
|
3074
|
+
} else if (N == 16) {
|
|
3075
|
+
return atomic_read_modify_write_16(physical_address, value, op);
|
|
3076
|
+
} else if (N == 32) {
|
|
2976
3077
|
return atomic_read_modify_write_32(physical_address, value, op);
|
|
2977
|
-
} else {
|
|
3078
|
+
} else if (N == 64) {
|
|
2978
3079
|
return atomic_read_modify_write_64(physical_address, value, op);
|
|
3080
|
+
} else {
|
|
3081
|
+
unreachable();
|
|
2979
3082
|
}
|
|
2980
3083
|
|
|
2981
3084
|
}
|
|
@@ -3033,6 +3136,15 @@ function write_memory {
|
|
|
3033
3136
|
Boolean aligned = is_naturally_aligned(LEN, virtual_address);
|
|
3034
3137
|
XReg physical_address;
|
|
3035
3138
|
|
|
3139
|
+
if(LEN > 8 && endianness() == Endian::Big) {
|
|
3140
|
+
U32 tmp;
|
|
3141
|
+
for (U32 i=0; i < LEN/2; i = i+8) {
|
|
3142
|
+
tmp = value[(i+7):i];
|
|
3143
|
+
value[(i+7):i] = value[(LEN-1-i):(LEN-8-i)];
|
|
3144
|
+
value[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
|
|
3145
|
+
}
|
|
3146
|
+
}
|
|
3147
|
+
|
|
3036
3148
|
if (aligned) {
|
|
3037
3149
|
write_memory_aligned(LEN, virtual_address, value, encoding, 1'b0, 1'b0);
|
|
3038
3150
|
return;
|
|
@@ -9,8 +9,8 @@ name: COUNTINHIBIT_EN
|
|
|
9
9
|
description: |
|
|
10
10
|
Indicates which hardware performance monitor counters can be disabled from `mcountinhibit`.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
`COUNTINHIBIT_EN[n]` controls whether `mcountinhibit.HPM<n>` is writable. It does
|
|
13
|
+
not depend on whether `hpmcounter<n>`/`mhpmcounter<n>` is read-only zero.
|
|
14
14
|
|
|
15
15
|
COUNTINHIBIT_EN[1] can never be true, since it corresponds to `mcountinhibit.TM`,
|
|
16
16
|
which is always read-only-0.
|
|
@@ -26,14 +26,6 @@ schema:
|
|
|
26
26
|
maxItems: 32
|
|
27
27
|
minItems: 32
|
|
28
28
|
|
|
29
|
-
requirements:
|
|
30
|
-
idl(): |
|
|
31
|
-
for (U32 i = 3; i < 32; i++) {
|
|
32
|
-
(!HPM_COUNTER_EN[i]) -> !COUNTINHIBIT_EN[i];
|
|
33
|
-
}
|
|
34
|
-
reason: |
|
|
35
|
-
When mhpmcounter[i] is not implemented, it cannot be inhibited.
|
|
36
|
-
|
|
37
29
|
definedBy:
|
|
38
30
|
allOf:
|
|
39
31
|
- extension:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../schemas/param_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: param_schema.json#
|
|
7
|
+
kind: parameter
|
|
8
|
+
name: HCONTEXT_IMPLEMENTED
|
|
9
|
+
description: |
|
|
10
|
+
Specifies if the hcontext CSR is implemented
|
|
11
|
+
long_name: hcontext CSR is implemented
|
|
12
|
+
schema:
|
|
13
|
+
type: boolean
|
|
14
|
+
definedBy:
|
|
15
|
+
allOf:
|
|
16
|
+
- extension:
|
|
17
|
+
name: Sdtrig
|
|
18
|
+
- extension:
|
|
19
|
+
name: H
|
|
20
|
+
requirements:
|
|
21
|
+
if:
|
|
22
|
+
param:
|
|
23
|
+
name: HCONTEXT_IMPLEMENTED
|
|
24
|
+
equal: true
|
|
25
|
+
then:
|
|
26
|
+
param:
|
|
27
|
+
name: MCONTEXT_IMPLEMENTED
|
|
28
|
+
equal: true
|
|
29
|
+
reason: HCONTEXT cannot exist without MCONTEXT
|
|
@@ -9,9 +9,8 @@ name: HCOUNTENABLE_EN
|
|
|
9
9
|
description: |
|
|
10
10
|
Indicates which counters can delegated via `hcounteren`
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
HCOUNTENABLE_EN[3] to true.
|
|
12
|
+
`HCOUNTENABLE_EN[n]` controls whether `hcounteren.HPM<n>` is writable. It does not
|
|
13
|
+
depend on whether `hpmcounter<n>`/`mhpmcounter<n>` is read-only zero.
|
|
15
14
|
|
|
16
15
|
HCOUNTENABLE_EN[0:2] must all be false if `Zicntr` is not implemented.
|
|
17
16
|
HCOUNTENABLE_EN[3:31] must all be false if `Zihpm` is not implemented.
|
|
@@ -32,9 +31,7 @@ requirements:
|
|
|
32
31
|
}
|
|
33
32
|
for (U32 i = 3; i < 32; i++) {
|
|
34
33
|
!implemented?(ExtensionName::Zihpm) -> !HCOUNTENABLE_EN[i];
|
|
35
|
-
(!HPM_COUNTER_EN[i]) -> !HCOUNTENABLE_EN[i];
|
|
36
34
|
}
|
|
37
35
|
reason: |
|
|
38
36
|
Counters 0-2 are defined by Zicntr
|
|
39
37
|
Counters 3..31 are defined by Zihpm
|
|
40
|
-
When mhpmcounter[i] is not implemented, it cannot be enabled.
|