udb 0.1.16 → 0.1.17
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 +20 -0
- data/.data/cfgs/mc100-32-full-example.yaml +6 -0
- data/.data/cfgs/qc_iu.yaml +14 -0
- data/.data/cfgs/rv32-riscv-tests.yaml +9 -0
- data/.data/cfgs/rv32-vector.yaml +10 -1
- data/.data/cfgs/rv64-riscv-tests.yaml +9 -0
- data/.data/cfgs/rv64-vector.yaml +11 -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/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/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/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/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/mideleg.yaml +57 -9
- data/.data/spec/std/isa/csr/mie.yaml +18 -9
- data/.data/spec/std/isa/csr/mip.yaml +21 -10
- data/.data/spec/std/isa/csr/misa.yaml +11 -7
- data/.data/spec/std/isa/csr/mstatus.yaml +2 -2
- data/.data/spec/std/isa/csr/schema.adoc +10 -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 +37 -0
- data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
- data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
- data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
- 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/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/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 +2 -2
- 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/I/ld.yaml +9 -4
- data/.data/spec/std/isa/inst/I/sd.yaml +9 -4
- 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/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 +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +3 -1
- 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/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/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/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/isa/builtin_functions.idl +3 -1
- 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/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/MCOUNTENABLE_EN.yaml +2 -5
- data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -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/{PMLEN.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +6 -9
- 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/SCOUNTENABLE_EN.yaml +2 -6
- data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
- data/.data/spec/std/isa/param/SEI_INTR_IMPL.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/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/VSEI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/VSSI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/VSTI_INTR_IMPL.yaml +33 -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/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 +79 -10
|
@@ -101,8 +101,16 @@ fields:
|
|
|
101
101
|
*Supervisor Software Interrupt delegation*
|
|
102
102
|
|
|
103
103
|
When 1, Supervisor Software interrupts are delegated to HS/S-mode.
|
|
104
|
-
type:
|
|
104
|
+
type(): |
|
|
105
|
+
return SSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
105
106
|
reset_value: 0
|
|
107
|
+
sw_write(csr_value): |
|
|
108
|
+
if (csr_value.SSI == 0) {
|
|
109
|
+
if (implemented?(ExtensionName::H)) {
|
|
110
|
+
CSR[hideleg].SSI = 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return csr_value.SSI;
|
|
106
114
|
VSSI:
|
|
107
115
|
location: 2
|
|
108
116
|
description: |
|
|
@@ -116,13 +124,22 @@ fields:
|
|
|
116
124
|
definedBy:
|
|
117
125
|
extension:
|
|
118
126
|
name: H
|
|
127
|
+
sw_write(csr_value): |
|
|
128
|
+
if (csr_value.VSSI == 0) {
|
|
129
|
+
CSR[hie].VSSIE = 0;
|
|
130
|
+
CSR[hip].VSSIP = 0;
|
|
131
|
+
CSR[hideleg].VSSI = 0;
|
|
132
|
+
}
|
|
133
|
+
return csr_value.VSSI;
|
|
119
134
|
MSI:
|
|
120
135
|
location: 3
|
|
121
136
|
description: |
|
|
122
137
|
*Machine Software interrupt delegation*
|
|
123
138
|
|
|
124
|
-
|
|
125
|
-
|
|
139
|
+
When 1, Machine Software interrupts are delegated to HS/S-mode.
|
|
140
|
+
This is unusual but permitted. See https://github.com/riscv/riscv-isa-manual/issues/3162.
|
|
141
|
+
type(): |
|
|
142
|
+
return MSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
126
143
|
reset_value: 0
|
|
127
144
|
STI:
|
|
128
145
|
location: 5
|
|
@@ -130,7 +147,8 @@ fields:
|
|
|
130
147
|
*Supervisor Timer interrupt delegation*
|
|
131
148
|
|
|
132
149
|
When 1, Supervisor Timer interrupts are delegated to HS/S-mode.
|
|
133
|
-
type:
|
|
150
|
+
type(): |
|
|
151
|
+
return STI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
134
152
|
reset_value: 0
|
|
135
153
|
VSTI:
|
|
136
154
|
location: 6
|
|
@@ -145,13 +163,22 @@ fields:
|
|
|
145
163
|
definedBy:
|
|
146
164
|
extension:
|
|
147
165
|
name: H
|
|
166
|
+
sw_write(csr_value): |
|
|
167
|
+
if (csr_value.VSTI == 0) {
|
|
168
|
+
CSR[hie].VSTIE = 0;
|
|
169
|
+
CSR[hip].VSTIP = 0;
|
|
170
|
+
CSR[hideleg].VSTI = 0;
|
|
171
|
+
}
|
|
172
|
+
return csr_value.VSTI;
|
|
148
173
|
MTI:
|
|
149
174
|
location: 7
|
|
150
175
|
description: |
|
|
151
176
|
*Machine Timer interrupt delegation*
|
|
152
177
|
|
|
153
|
-
|
|
154
|
-
|
|
178
|
+
When 1, Machine Timer interrupts are delegated to HS/S-mode.
|
|
179
|
+
This is unusual but permitted. See https://github.com/riscv/riscv-isa-manual/issues/3162.
|
|
180
|
+
type(): |
|
|
181
|
+
return MTI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
155
182
|
reset_value: 0
|
|
156
183
|
SEI:
|
|
157
184
|
location: 9
|
|
@@ -159,7 +186,8 @@ fields:
|
|
|
159
186
|
*Supervisor External interrupt delegation*
|
|
160
187
|
|
|
161
188
|
When 1, Supervisor External interrupts are delegated to HS/S-mode.
|
|
162
|
-
type:
|
|
189
|
+
type(): |
|
|
190
|
+
return SEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
163
191
|
reset_value: 0
|
|
164
192
|
VSEI:
|
|
165
193
|
location: 10
|
|
@@ -172,13 +200,22 @@ fields:
|
|
|
172
200
|
definedBy:
|
|
173
201
|
extension:
|
|
174
202
|
name: H
|
|
203
|
+
sw_write(csr_value): |
|
|
204
|
+
if (csr_value.VSEI == 0) {
|
|
205
|
+
CSR[hie].VSEIE = 0;
|
|
206
|
+
CSR[hip].VSEIP = 0;
|
|
207
|
+
CSR[hideleg].VSEI = 0;
|
|
208
|
+
}
|
|
209
|
+
return csr_value.VSEI;
|
|
175
210
|
MEI:
|
|
176
211
|
location: 11
|
|
177
212
|
description: |
|
|
178
213
|
*Machine External interrupt delegation*
|
|
179
214
|
|
|
180
|
-
|
|
181
|
-
|
|
215
|
+
When 1, Machine External interrupts are delegated to HS/S-mode.
|
|
216
|
+
This is unusual but permitted. See https://github.com/riscv/riscv-isa-manual/issues/3162.
|
|
217
|
+
type(): |
|
|
218
|
+
return MEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
182
219
|
reset_value: 0
|
|
183
220
|
SGEI:
|
|
184
221
|
location: 12
|
|
@@ -191,6 +228,12 @@ fields:
|
|
|
191
228
|
definedBy:
|
|
192
229
|
extension:
|
|
193
230
|
name: H
|
|
231
|
+
sw_write(csr_value): |
|
|
232
|
+
if (csr_value.SGEI == 0) {
|
|
233
|
+
CSR[hie].SGEIE = 0;
|
|
234
|
+
CSR[hip].SGEIP = 0;
|
|
235
|
+
}
|
|
236
|
+
return csr_value.SGEI;
|
|
194
237
|
LCOFI:
|
|
195
238
|
location: 13
|
|
196
239
|
description: |
|
|
@@ -202,3 +245,8 @@ fields:
|
|
|
202
245
|
definedBy:
|
|
203
246
|
extension:
|
|
204
247
|
name: Sscofpmf
|
|
248
|
+
sw_write(csr_value): |
|
|
249
|
+
if (csr_value.LCOFI == 0) {
|
|
250
|
+
CSR[hideleg].LCOFI = 0;
|
|
251
|
+
}
|
|
252
|
+
return csr_value.LCOFI;
|
|
@@ -20,7 +20,8 @@ fields:
|
|
|
20
20
|
location: 1
|
|
21
21
|
description: |
|
|
22
22
|
Enables Supervisor Software Interrupts.
|
|
23
|
-
type:
|
|
23
|
+
type(): |
|
|
24
|
+
return SSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
24
25
|
definedBy:
|
|
25
26
|
extension:
|
|
26
27
|
name: S
|
|
@@ -29,7 +30,8 @@ fields:
|
|
|
29
30
|
location: 2
|
|
30
31
|
description: |
|
|
31
32
|
Enables Virtual Supervisor Software Interrupts.
|
|
32
|
-
type:
|
|
33
|
+
type(): |
|
|
34
|
+
return VSSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
33
35
|
definedBy:
|
|
34
36
|
extension:
|
|
35
37
|
name: H
|
|
@@ -37,13 +39,15 @@ fields:
|
|
|
37
39
|
MSIE:
|
|
38
40
|
location: 3
|
|
39
41
|
description: Enables Machine Software Interrupts.
|
|
40
|
-
type:
|
|
42
|
+
type(): |
|
|
43
|
+
return MSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
41
44
|
reset_value: 0
|
|
42
45
|
STIE:
|
|
43
46
|
location: 5
|
|
44
47
|
description: |
|
|
45
48
|
Enables Supervisor Timer Interrupts.
|
|
46
|
-
type:
|
|
49
|
+
type(): |
|
|
50
|
+
return STI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
47
51
|
definedBy:
|
|
48
52
|
extension:
|
|
49
53
|
name: S
|
|
@@ -52,7 +56,8 @@ fields:
|
|
|
52
56
|
location: 6
|
|
53
57
|
description: |
|
|
54
58
|
Enables Virtual Supervisor Timer Interrupts.
|
|
55
|
-
type:
|
|
59
|
+
type(): |
|
|
60
|
+
return VSTI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
56
61
|
definedBy:
|
|
57
62
|
extension:
|
|
58
63
|
name: H
|
|
@@ -60,13 +65,15 @@ fields:
|
|
|
60
65
|
MTIE:
|
|
61
66
|
location: 7
|
|
62
67
|
description: Enables Machine Timer Interrupts.
|
|
63
|
-
type:
|
|
68
|
+
type(): |
|
|
69
|
+
return MTI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
64
70
|
reset_value: 0
|
|
65
71
|
SEIE:
|
|
66
72
|
location: 9
|
|
67
73
|
description: |
|
|
68
74
|
Enables Supervisor External Interrupts.
|
|
69
|
-
type:
|
|
75
|
+
type(): |
|
|
76
|
+
return SEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
70
77
|
definedBy:
|
|
71
78
|
extension:
|
|
72
79
|
name: S
|
|
@@ -75,7 +82,8 @@ fields:
|
|
|
75
82
|
location: 10
|
|
76
83
|
description: |
|
|
77
84
|
Enables Virtual Supervisor External Interrupts.
|
|
78
|
-
type:
|
|
85
|
+
type(): |
|
|
86
|
+
return VSEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
79
87
|
definedBy:
|
|
80
88
|
extension:
|
|
81
89
|
name: H
|
|
@@ -83,7 +91,8 @@ fields:
|
|
|
83
91
|
MEIE:
|
|
84
92
|
location: 11
|
|
85
93
|
description: Enables Machine External Interrupts.
|
|
86
|
-
type:
|
|
94
|
+
type(): |
|
|
95
|
+
return MEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
87
96
|
reset_value: 0
|
|
88
97
|
SGEIE:
|
|
89
98
|
location: 12
|
|
@@ -185,7 +185,8 @@ fields:
|
|
|
185
185
|
<%- if ext?(:Smaia) -%>
|
|
186
186
|
* `mvip.SSIP`
|
|
187
187
|
<%- end -%>
|
|
188
|
-
type:
|
|
188
|
+
type(): |
|
|
189
|
+
return SSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
189
190
|
reset_value: 0
|
|
190
191
|
definedBy:
|
|
191
192
|
extension:
|
|
@@ -214,7 +215,8 @@ fields:
|
|
|
214
215
|
* `hip.VSSIP`
|
|
215
216
|
* `hvip.VSSIP`
|
|
216
217
|
* `vsip.SSIP` when `hideleg.VSSI` is set
|
|
217
|
-
type:
|
|
218
|
+
type(): |
|
|
219
|
+
return VSSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
218
220
|
reset_value: 0
|
|
219
221
|
definedBy:
|
|
220
222
|
extension:
|
|
@@ -225,13 +227,16 @@ fields:
|
|
|
225
227
|
description: |
|
|
226
228
|
*Machine Software Interrupt Pending*
|
|
227
229
|
|
|
228
|
-
|
|
230
|
+
Interrupt-pending bit for machine-level software interrupts.
|
|
231
|
+
MSIP is read-only in mip, and is written by accesses to memory-mapped control registers,
|
|
232
|
+
which are used to provide machine-level interprocessor interrupts.
|
|
229
233
|
|
|
230
234
|
<%- if ext?(:Smaia) -%>
|
|
231
235
|
With AIA/IMSIC, IPIs are delivered as external interrupts. As a result, this bit is
|
|
232
236
|
unused and hardwired to 0.
|
|
233
237
|
<%- end -%>
|
|
234
|
-
type:
|
|
238
|
+
type(): |
|
|
239
|
+
return MSI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
235
240
|
reset_value: 0
|
|
236
241
|
STIP:
|
|
237
242
|
location: 5
|
|
@@ -261,7 +266,8 @@ fields:
|
|
|
261
266
|
* `mvip.STIP` when when `menvcfg.STCE` is clear
|
|
262
267
|
<%- end -%>
|
|
263
268
|
|
|
264
|
-
type:
|
|
269
|
+
type(): |
|
|
270
|
+
return STI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
265
271
|
reset_value: 0
|
|
266
272
|
definedBy:
|
|
267
273
|
extension:
|
|
@@ -298,7 +304,8 @@ fields:
|
|
|
298
304
|
* `hip.VSTIP`
|
|
299
305
|
* `vsip.STIP` when `hideleg.VSTI` is set
|
|
300
306
|
* `hvip.VSTIP` <% if ext?(:Sstc) %>when `menvcfg.STCE` is clear<% end %> (though `hvip.VSTIP` is writable)
|
|
301
|
-
type:
|
|
307
|
+
type(): |
|
|
308
|
+
return VSTI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
302
309
|
reset_value: 0
|
|
303
310
|
definedBy:
|
|
304
311
|
extension:
|
|
@@ -312,7 +319,8 @@ fields:
|
|
|
312
319
|
Reports the current pending state of an M-mode timer interrupt.
|
|
313
320
|
|
|
314
321
|
Bit is controlled by the timer device (using `mtimecmp`), and is not writable.
|
|
315
|
-
type:
|
|
322
|
+
type(): |
|
|
323
|
+
return MTI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
316
324
|
reset_value: 0
|
|
317
325
|
SEIP:
|
|
318
326
|
location: 9
|
|
@@ -334,7 +342,8 @@ fields:
|
|
|
334
342
|
_Alias_:
|
|
335
343
|
|
|
336
344
|
* `sip.SEIP` when `mideleg.SEI` is set (though `sip.SEIP` is read-only)
|
|
337
|
-
type:
|
|
345
|
+
type(): |
|
|
346
|
+
return SEI_INTR_IMPL ? CsrFieldType::RWH : CsrFieldType::RO;
|
|
338
347
|
definedBy:
|
|
339
348
|
extension:
|
|
340
349
|
name: S
|
|
@@ -363,7 +372,8 @@ fields:
|
|
|
363
372
|
|
|
364
373
|
* `hip.VSEIP`
|
|
365
374
|
* `vsip.SEIP` when `hideleg.VSEI` is set
|
|
366
|
-
type:
|
|
375
|
+
type(): |
|
|
376
|
+
return VSEI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
367
377
|
reset_value: 0
|
|
368
378
|
definedBy:
|
|
369
379
|
extension:
|
|
@@ -378,7 +388,8 @@ fields:
|
|
|
378
388
|
|
|
379
389
|
MEIP is controlled by the external interrupt controller <% if ext?(:Smaia) %>(AIA) <% end %>.
|
|
380
390
|
It is not writable by software.
|
|
381
|
-
type:
|
|
391
|
+
type(): |
|
|
392
|
+
return MEI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
382
393
|
reset_value: 0
|
|
383
394
|
SGEIP:
|
|
384
395
|
location: 12
|
|
@@ -27,9 +27,6 @@ fields:
|
|
|
27
27
|
location: 0
|
|
28
28
|
description: |
|
|
29
29
|
Indicates support for the `A` (atomic) extension.
|
|
30
|
-
|
|
31
|
-
[when,"MUTABLE_MISA_A == true"]
|
|
32
|
-
Writing 0 to this field will cause all atomic instructions to raise an `IllegalInstruction` exception.
|
|
33
30
|
type(): |
|
|
34
31
|
return (implemented?(ExtensionName::A) && MUTABLE_MISA_A) ? CsrFieldType::RW : CsrFieldType::RO;
|
|
35
32
|
reset_value(): |
|
|
@@ -41,9 +38,6 @@ fields:
|
|
|
41
38
|
location: 1
|
|
42
39
|
description: |
|
|
43
40
|
Indicates support for the `B` (bitmanip) extension.
|
|
44
|
-
|
|
45
|
-
[when,"MUTABLE_MISA_B == true"]
|
|
46
|
-
Writing 0 to this field will cause all bitmanip instructions to raise an `IllegalInstruction` exception.
|
|
47
41
|
type(): |
|
|
48
42
|
return (implemented?(ExtensionName::B) && MUTABLE_MISA_B) ? CsrFieldType::RW : CsrFieldType::RO;
|
|
49
43
|
reset_value(): |
|
|
@@ -157,7 +151,9 @@ fields:
|
|
|
157
151
|
Indicates support for the `M` (integer multiply/divide) extension.
|
|
158
152
|
|
|
159
153
|
[when,"MUTABLE_MISA_M == true"]
|
|
160
|
-
Writing 0 to this field will cause all attempts to execute an integer
|
|
154
|
+
Writing 0 to this field will cause all attempts to execute an integer divide or
|
|
155
|
+
remainder instruction to raise an `IllegalInstruction` exception. The multiply
|
|
156
|
+
instructions are provided by `Zmmul` and are unaffected.
|
|
161
157
|
type(): |
|
|
162
158
|
return (implemented?(ExtensionName::M) && MUTABLE_MISA_M) ? CsrFieldType::RW : CsrFieldType::RO;
|
|
163
159
|
reset_value(): |
|
|
@@ -229,9 +225,17 @@ fields:
|
|
|
229
225
|
definedBy:
|
|
230
226
|
extension:
|
|
231
227
|
name: Zvl32b
|
|
228
|
+
X:
|
|
229
|
+
location: 23
|
|
230
|
+
description: |
|
|
231
|
+
The `X` bit will be set if there are any non-standard extensions.
|
|
232
|
+
type: RO
|
|
233
|
+
reset_value(): |
|
|
234
|
+
return NON_STANDARD_EXTENSION_IMPLEMENTED ? 1 : 0;
|
|
232
235
|
sw_read(): |
|
|
233
236
|
return (
|
|
234
237
|
(CSR[misa].MXL `<< (xlen() - 2)) |
|
|
238
|
+
(CSR[misa].X `<< 23) |
|
|
235
239
|
(CSR[misa].V `<< 21) |
|
|
236
240
|
(CSR[misa].U `<< 20) |
|
|
237
241
|
(CSR[misa].S `<< 18) |
|
|
@@ -40,9 +40,9 @@ fields:
|
|
|
40
40
|
# this is read-only if FS and VS are both read-only
|
|
41
41
|
# otherwise, it is read-only with hardware update
|
|
42
42
|
|
|
43
|
-
if (implemented?(ExtensionName::F)
|
|
43
|
+
if (implemented?(ExtensionName::F)) {
|
|
44
44
|
return CsrFieldType::ROH;
|
|
45
|
-
} else if (implemented?(ExtensionName::V)
|
|
45
|
+
} else if (implemented?(ExtensionName::V)) {
|
|
46
46
|
return CsrFieldType::ROH;
|
|
47
47
|
} else {
|
|
48
48
|
return CsrFieldType::RO;
|
|
@@ -53,7 +53,7 @@ Privilege Mode::
|
|
|
53
53
|
|===
|
|
54
54
|
| *key* | priv_mode
|
|
55
55
|
| *value type* | one of ["M", "S", "U", or "VS"]
|
|
56
|
-
| *description* | The least-privilege mode that can access this CSR
|
|
56
|
+
| *description* | The least-privilege mode that can access this CSR. For an indirect CSR, this also identifies the target indirect CSR address space.
|
|
57
57
|
|===
|
|
58
58
|
|
|
59
59
|
Length::
|
|
@@ -72,12 +72,12 @@ Indirect::
|
|
|
72
72
|
| *key* | indirect
|
|
73
73
|
| *value type* | Boolean
|
|
74
74
|
| *default* | false
|
|
75
|
-
| *description* | Whether or not the CSR is accessible through the indirect CSRs of the `
|
|
75
|
+
| *description* | Whether or not the CSR is accessible through the indirect CSRs of the `Smcsrind`/`Sscsrind` extensions.
|
|
76
76
|
|===
|
|
77
77
|
|
|
78
78
|
Address::
|
|
79
79
|
|
|
80
|
-
[IMPORTANT] `address` is a required key *unless* the CSR is only accessible through the indirect registers of the `Smcsrind`/`
|
|
80
|
+
[IMPORTANT] `address` is a required key *unless* the CSR is only accessible through the indirect registers of the `Smcsrind`/`Sscsrind` extensions, in which case `indirect_address` is required. Both `address` and `indirect_address` may be specified when a CSR is accessible directly and indirectly.
|
|
81
81
|
|
|
82
82
|
|===
|
|
83
83
|
| *key* | address
|
|
@@ -88,7 +88,13 @@ Address::
|
|
|
88
88
|
|===
|
|
89
89
|
| *key* | indirect_address
|
|
90
90
|
| *value type* | Integer
|
|
91
|
-
| *description* | Indirect
|
|
91
|
+
| *description* | Indirect address of the CSR, as given to the indirect CSRs of the `Smcsrind`/`Sscsrind` extensions
|
|
92
|
+
|===
|
|
93
|
+
|
|
94
|
+
|===
|
|
95
|
+
| *key* | indirect_slot
|
|
96
|
+
| *value type* | Integer between 1-6
|
|
97
|
+
| *description* | Indirect window slot of the CSR, corresponding to its appearance in *ireg<slot>
|
|
92
98
|
|===
|
|
93
99
|
|
|
94
100
|
Virtual Address::
|
|
@@ -88,17 +88,12 @@ fields:
|
|
|
88
88
|
description: |
|
|
89
89
|
*Cache Block Invalidate instruction Enable*
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
When
|
|
91
|
+
The legal values of this field do not depend on `menvcfg.CBIE`.
|
|
92
|
+
When the reserved value `10` is written, it is ignored and the field remains unchanged.
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
! 00 ! 00
|
|
99
|
-
! 01 ! 00, 01
|
|
100
|
-
! 11 ! 00, 01, 11
|
|
101
|
-
!===
|
|
94
|
+
Execution of `cbo.inval` in U-mode is enabled only if it is also enabled in S-mode
|
|
95
|
+
by `menvcfg.CBIE`. If `menvcfg.CBIE` is `01`, an enabled `cbo.inval` performs a
|
|
96
|
+
flush operation in U-mode even if `senvcfg.CBIE` is `11`.
|
|
102
97
|
|
|
103
98
|
Controls execution of the cache block invalidate instruction, `cbo.inval`,
|
|
104
99
|
in U-mode
|
|
@@ -120,9 +115,8 @@ fields:
|
|
|
120
115
|
sw_write(csr_value): |
|
|
121
116
|
if (csr_value.CBIE == 0 || csr_value.CBIE == 1 || csr_value.CBIE == 3) {
|
|
122
117
|
return csr_value.CBIE;
|
|
123
|
-
} else {
|
|
124
|
-
return UNDEFINED_LEGAL_DETERMINISTIC;
|
|
125
118
|
}
|
|
119
|
+
return CSR[senvcfg].CBIE;
|
|
126
120
|
reset_value: UNDEFINED_LEGAL
|
|
127
121
|
UKTE:
|
|
128
122
|
location: 8
|
|
@@ -9,7 +9,7 @@ name: sstateen1
|
|
|
9
9
|
long_name: Supervisor State Enable 1 Register
|
|
10
10
|
address: 0x10D
|
|
11
11
|
priv_mode: S
|
|
12
|
-
length:
|
|
12
|
+
length: 64
|
|
13
13
|
writable: true
|
|
14
14
|
description: |
|
|
15
15
|
Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
|
|
@@ -61,8 +61,7 @@ definedBy:
|
|
|
61
61
|
|
|
62
62
|
fields:
|
|
63
63
|
DATA:
|
|
64
|
-
|
|
65
|
-
location_rv32: 31-0
|
|
64
|
+
location: 31-0
|
|
66
65
|
description: Data value
|
|
67
66
|
type: RW
|
|
68
67
|
sw_write(csr_value): |
|
|
@@ -9,7 +9,7 @@ name: sstateen2
|
|
|
9
9
|
long_name: Supervisor State Enable 2 Register
|
|
10
10
|
address: 0x10E
|
|
11
11
|
priv_mode: S
|
|
12
|
-
length:
|
|
12
|
+
length: 64
|
|
13
13
|
writable: true
|
|
14
14
|
description: |
|
|
15
15
|
Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
|
|
@@ -61,8 +61,7 @@ definedBy:
|
|
|
61
61
|
|
|
62
62
|
fields:
|
|
63
63
|
DATA:
|
|
64
|
-
|
|
65
|
-
location_rv32: 31-0
|
|
64
|
+
location: 31-0
|
|
66
65
|
description: Data value
|
|
67
66
|
type: RW
|
|
68
67
|
sw_write(csr_value): |
|
|
@@ -9,7 +9,7 @@ name: sstateen3
|
|
|
9
9
|
long_name: Supervisor State Enable 3 Register
|
|
10
10
|
address: 0x10F
|
|
11
11
|
priv_mode: S
|
|
12
|
-
length:
|
|
12
|
+
length: 64
|
|
13
13
|
writable: true
|
|
14
14
|
description: |
|
|
15
15
|
Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
|
|
@@ -61,8 +61,7 @@ definedBy:
|
|
|
61
61
|
|
|
62
62
|
fields:
|
|
63
63
|
DATA:
|
|
64
|
-
|
|
65
|
-
location_rv32: 31-0
|
|
64
|
+
location: 31-0
|
|
66
65
|
description: Data value
|
|
67
66
|
type: RW
|
|
68
67
|
sw_write(csr_value): |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../schemas/csr_schema.json
|
|
4
|
+
$schema: "csr_schema.json#"
|
|
5
|
+
kind: csr
|
|
6
|
+
name: tcontrol
|
|
7
|
+
long_name: Trigger Control
|
|
8
|
+
address: 0x7A5
|
|
9
|
+
priv_mode: M
|
|
10
|
+
length: XLEN
|
|
11
|
+
writable: true
|
|
12
|
+
description: |
|
|
13
|
+
This optional register is only accessible in M-mode and Debug Mode and provides
|
|
14
|
+
various control bits related to triggers.
|
|
15
|
+
definedBy:
|
|
16
|
+
extension:
|
|
17
|
+
name: Sdtrig
|
|
18
|
+
fields:
|
|
19
|
+
MPTE:
|
|
20
|
+
location: 7
|
|
21
|
+
description: |
|
|
22
|
+
M-mode previous trigger enable field.
|
|
23
|
+
MPTE and MTE provide one solution to a problem regarding triggers with action=0
|
|
24
|
+
firing in M-mode trap handlers.
|
|
25
|
+
When any trap into M-mode is taken, MPTE is set to the value of MTE.
|
|
26
|
+
type: RW-H
|
|
27
|
+
reset_value: 0
|
|
28
|
+
MTE:
|
|
29
|
+
location: 3
|
|
30
|
+
description: |
|
|
31
|
+
M-mode trigger enable field.
|
|
32
|
+
0 (disabled):: Triggers with action=0 do not match/fire while the hart is in M-mode.
|
|
33
|
+
1 (enabled):: Triggers do match/fire while the hart is in M-mode.
|
|
34
|
+
When any trap into M-mode is taken, MTE is set to 0. When `mret` is executed, MTE is
|
|
35
|
+
set to the value of MPTE.
|
|
36
|
+
type: RW-H
|
|
37
|
+
reset_value: 0
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../schemas/csr_schema.json
|
|
4
|
+
$schema: "csr_schema.json#"
|
|
5
|
+
kind: csr
|
|
6
|
+
name: tinfo
|
|
7
|
+
long_name: Trigger Info
|
|
8
|
+
address: 0x7A4
|
|
9
|
+
priv_mode: M
|
|
10
|
+
length: XLEN
|
|
11
|
+
writable: true
|
|
12
|
+
description: |
|
|
13
|
+
This register provides access to the trigger selected by `tselect`.
|
|
14
|
+
The reset values listed here apply to every underlying trigger.
|
|
15
|
+
|
|
16
|
+
This register is optional if no triggers are implemented, or if `type` is not writable
|
|
17
|
+
and `version` would be 0. In this case the debugger can read the only supported type
|
|
18
|
+
from `tdata1`.
|
|
19
|
+
|
|
20
|
+
Writing this read/write CSR has no effect.
|
|
21
|
+
definedBy:
|
|
22
|
+
extension:
|
|
23
|
+
name: Sdtrig
|
|
24
|
+
fields:
|
|
25
|
+
VERSION:
|
|
26
|
+
location: 31-24
|
|
27
|
+
description: |
|
|
28
|
+
Contains the version of the Sdtrig extension implemented.
|
|
29
|
+
|
|
30
|
+
0 (0):: Supports triggers as described in this spec at commit 5a5c078, made on
|
|
31
|
+
February 2, 2023.
|
|
32
|
+
|
|
33
|
+
1 (1):: Supports triggers as described in the ratified version 1.0 of this document.
|
|
34
|
+
type: RO
|
|
35
|
+
reset_value: UNDEFINED_LEGAL
|
|
36
|
+
TYPES:
|
|
37
|
+
location: 15-0
|
|
38
|
+
description: |
|
|
39
|
+
One bit for each possible `type` enumerated in `tdata1`. Bit N corresponds to type N.
|
|
40
|
+
If the bit is set, then that type is supported by the currently selected trigger.
|
|
41
|
+
|
|
42
|
+
If the currently selected trigger doesn't exist, this field contains 1.
|
|
43
|
+
type: RO
|
|
44
|
+
reset_value: UNDEFINED_LEGAL
|
|
@@ -51,7 +51,7 @@ requirements:
|
|
|
51
51
|
extension:
|
|
52
52
|
allOf:
|
|
53
53
|
- name: S
|
|
54
|
-
version: ~> 1.13 # The latest ratified version of S when
|
|
54
|
+
version: ~> 1.13 # The latest ratified version of S when Ssctr was ratified
|
|
55
55
|
- name: Smcsrind
|
|
56
56
|
version: ~> 1.0
|
|
57
57
|
- name: Ssctr
|
|
@@ -43,9 +43,9 @@ versions:
|
|
|
43
43
|
requirements:
|
|
44
44
|
allOf:
|
|
45
45
|
- param:
|
|
46
|
-
name:
|
|
46
|
+
name: TRAP_ON_RESERVED_INSTRUCTION
|
|
47
47
|
equal: true
|
|
48
|
-
reason: Ssstrict requires unimplemented opcodes to trap
|
|
48
|
+
reason: Ssstrict requires unimplemented opcodes in the standard or reserved encoding spaces to trap
|
|
49
49
|
- param:
|
|
50
50
|
name: TRAP_ON_UNIMPLEMENTED_CSR
|
|
51
51
|
equal: true
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
$schema: "ext_schema.json#"
|
|
7
7
|
kind: extension
|
|
8
8
|
name: Sv32
|
|
9
|
-
long_name: 32-bit virtual address translation (
|
|
10
|
-
description: 32-bit virtual address translation (
|
|
9
|
+
long_name: 32-bit virtual address translation (2 level)
|
|
10
|
+
description: 32-bit virtual address translation (2 level)
|
|
11
11
|
type: privileged
|
|
12
12
|
versions:
|
|
13
13
|
- version: "1.0"
|
|
@@ -8,8 +8,8 @@ kind: extension
|
|
|
8
8
|
name: Svpbmt
|
|
9
9
|
long_name: Page-based memory types
|
|
10
10
|
description: |
|
|
11
|
-
This extension
|
|
12
|
-
|
|
11
|
+
This extension specifies page-based memory types, adding the PBMT field
|
|
12
|
+
to page-table entries to control memory type, cacheability, and ordering attributes.
|
|
13
13
|
type: privileged
|
|
14
14
|
versions:
|
|
15
15
|
- version: "1.0.0"
|