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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 23af2b77d0e140a2ed6d495199ca74bef1fea8e60c393d279d6d65d55102fb9d
|
|
4
|
+
data.tar.gz: 62fd794ee5ee064ce12267c1a40f20f734fac00d48dea014c48050fe19e7e485
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 33a3cf04e12eac216db0553ac5e93eff7ea39578f787171a1edce00bdb40e55a15845a5744cecbb319f671169928faefb8b91f497506b685dfcacfb11918e0ec
|
|
7
|
+
data.tar.gz: 8deb16c837b1b07cf74bba2d97da79c553aaeb22c56044b47ce0aa969555dc0cecf681dc69eacde15007a6b63ab0aa3cccca303cd2660be36c03fdcef663bc62
|
|
@@ -613,3 +613,23 @@ params:
|
|
|
613
613
|
MSTATEEN_IMSIC_TYPE: rw
|
|
614
614
|
HSTATEEN_AIA_TYPE: rw
|
|
615
615
|
HSTATEEN_IMSIC_TYPE: rw
|
|
616
|
+
MEI_INTR_IMPL: false
|
|
617
|
+
MSI_INTR_IMPL: false
|
|
618
|
+
MTI_INTR_IMPL: false
|
|
619
|
+
SEI_INTR_IMPL: false
|
|
620
|
+
SSI_INTR_IMPL: false
|
|
621
|
+
STI_INTR_IMPL: true
|
|
622
|
+
VSEI_INTR_IMPL: false
|
|
623
|
+
VSSI_INTR_IMPL: false
|
|
624
|
+
VSTI_INTR_IMPL: true
|
|
625
|
+
WFI_U_MODE: false
|
|
626
|
+
WFI_FINITE: true
|
|
627
|
+
NON_STANDARD_EXTENSION_IMPLEMENTED: false
|
|
628
|
+
HPM_COUNTER3_WIDTH: 64
|
|
629
|
+
HPM_COUNTER4_WIDTH: 64
|
|
630
|
+
HPM_COUNTER5_WIDTH: 64
|
|
631
|
+
HPM_COUNTER6_WIDTH: 64
|
|
632
|
+
HPM_COUNTER7_WIDTH: 64
|
|
633
|
+
HPM_COUNTER8_WIDTH: 64
|
|
634
|
+
HPM_COUNTER9_WIDTH: 64
|
|
635
|
+
HPM_COUNTER10_WIDTH: 64
|
data/.data/cfgs/qc_iu.yaml
CHANGED
|
@@ -190,3 +190,17 @@ params:
|
|
|
190
190
|
MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
|
|
191
191
|
MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
|
|
192
192
|
TIME_CSR_IMPLEMENTED: true
|
|
193
|
+
MEI_INTR_IMPL: false
|
|
194
|
+
MSI_INTR_IMPL: false
|
|
195
|
+
MTI_INTR_IMPL: false
|
|
196
|
+
WFI_U_MODE: false
|
|
197
|
+
WFI_FINITE: true
|
|
198
|
+
NON_STANDARD_EXTENSION_IMPLEMENTED: true
|
|
199
|
+
HPM_COUNTER3_WIDTH: 64
|
|
200
|
+
HPM_COUNTER4_WIDTH: 64
|
|
201
|
+
HPM_COUNTER5_WIDTH: 64
|
|
202
|
+
HPM_COUNTER6_WIDTH: 64
|
|
203
|
+
HPM_COUNTER7_WIDTH: 64
|
|
204
|
+
HPM_COUNTER8_WIDTH: 64
|
|
205
|
+
HPM_COUNTER9_WIDTH: 64
|
|
206
|
+
HPM_COUNTER10_WIDTH: 64
|
|
@@ -248,3 +248,12 @@ params:
|
|
|
248
248
|
# MSTATEEN_JVT_TYPE: rw
|
|
249
249
|
HW_MSTATUS_FS_DIRTY_UPDATE: precise
|
|
250
250
|
MUTABLE_MISA_F: false
|
|
251
|
+
MEI_INTR_IMPL: false
|
|
252
|
+
MSI_INTR_IMPL: false
|
|
253
|
+
MTI_INTR_IMPL: false
|
|
254
|
+
SEI_INTR_IMPL: false
|
|
255
|
+
SSI_INTR_IMPL: false
|
|
256
|
+
STI_INTR_IMPL: false
|
|
257
|
+
WFI_U_MODE: false
|
|
258
|
+
WFI_FINITE: true
|
|
259
|
+
NON_STANDARD_EXTENSION_IMPLEMENTED: false
|
data/.data/cfgs/rv32-vector.yaml
CHANGED
|
@@ -221,7 +221,7 @@ params:
|
|
|
221
221
|
MSTATEEN_ENVCFG_TYPE: rw
|
|
222
222
|
# Zvl32b parameters
|
|
223
223
|
MUTABLE_MISA_V: false
|
|
224
|
-
HW_MSTATUS_VS_DIRTY_UPDATE:
|
|
224
|
+
HW_MSTATUS_VS_DIRTY_UPDATE: imprecise
|
|
225
225
|
RVV_VL_WHEN_AVL_LT_DOUBLE_VLMAX: "VLMAX"
|
|
226
226
|
FOLLOW_VTYPE_RESET_RECOMMENDATION: true
|
|
227
227
|
VLEN: 128
|
|
@@ -282,3 +282,12 @@ params:
|
|
|
282
282
|
false,
|
|
283
283
|
false,
|
|
284
284
|
]
|
|
285
|
+
MEI_INTR_IMPL: false
|
|
286
|
+
MSI_INTR_IMPL: false
|
|
287
|
+
MTI_INTR_IMPL: false
|
|
288
|
+
SEI_INTR_IMPL: false
|
|
289
|
+
SSI_INTR_IMPL: false
|
|
290
|
+
STI_INTR_IMPL: false
|
|
291
|
+
WFI_U_MODE: false
|
|
292
|
+
WFI_FINITE: true
|
|
293
|
+
NON_STANDARD_EXTENSION_IMPLEMENTED: false
|
|
@@ -241,3 +241,12 @@ params:
|
|
|
241
241
|
false,
|
|
242
242
|
false,
|
|
243
243
|
]
|
|
244
|
+
MEI_INTR_IMPL: false
|
|
245
|
+
MSI_INTR_IMPL: false
|
|
246
|
+
MTI_INTR_IMPL: false
|
|
247
|
+
SEI_INTR_IMPL: false
|
|
248
|
+
SSI_INTR_IMPL: false
|
|
249
|
+
STI_INTR_IMPL: false
|
|
250
|
+
WFI_U_MODE: false
|
|
251
|
+
WFI_FINITE: true
|
|
252
|
+
NON_STANDARD_EXTENSION_IMPLEMENTED: false
|
data/.data/cfgs/rv64-vector.yaml
CHANGED
|
@@ -218,7 +218,7 @@ params:
|
|
|
218
218
|
MSTATEEN_ENVCFG_TYPE: rw
|
|
219
219
|
# Zvl32b parameters
|
|
220
220
|
MUTABLE_MISA_V: false
|
|
221
|
-
HW_MSTATUS_VS_DIRTY_UPDATE:
|
|
221
|
+
HW_MSTATUS_VS_DIRTY_UPDATE: imprecise
|
|
222
222
|
RVV_VL_WHEN_AVL_LT_DOUBLE_VLMAX: "VLMAX"
|
|
223
223
|
FOLLOW_VTYPE_RESET_RECOMMENDATION: true
|
|
224
224
|
VLEN: 128
|
|
@@ -244,7 +244,7 @@ params:
|
|
|
244
244
|
VFREDUSUM_INACTIVE_NODE_ELEMENT_BEHAVIOR: "additive_identity"
|
|
245
245
|
VFREDUSUM_FINAL_NODE_ELEMENT_BEHAVIOR: "additive_identity"
|
|
246
246
|
IMPRECISE_VECTOR_TRAP_SETTABLE: false
|
|
247
|
-
HW_MSTATUS_FS_DIRTY_UPDATE:
|
|
247
|
+
HW_MSTATUS_FS_DIRTY_UPDATE: imprecise
|
|
248
248
|
MUTABLE_MISA_F: false
|
|
249
249
|
HPM_COUNTER_EN:
|
|
250
250
|
[
|
|
@@ -281,3 +281,12 @@ params:
|
|
|
281
281
|
false,
|
|
282
282
|
false,
|
|
283
283
|
]
|
|
284
|
+
MEI_INTR_IMPL: false
|
|
285
|
+
MSI_INTR_IMPL: false
|
|
286
|
+
MTI_INTR_IMPL: false
|
|
287
|
+
SEI_INTR_IMPL: false
|
|
288
|
+
SSI_INTR_IMPL: false
|
|
289
|
+
STI_INTR_IMPL: false
|
|
290
|
+
WFI_U_MODE: false
|
|
291
|
+
WFI_FINITE: true
|
|
292
|
+
NON_STANDARD_EXTENSION_IMPLEMENTED: false
|
|
@@ -27,8 +27,8 @@ access:
|
|
|
27
27
|
vs: always
|
|
28
28
|
vu: always
|
|
29
29
|
operation(): |
|
|
30
|
-
if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
|
|
31
|
-
|
|
30
|
+
if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
31
|
+
reserved_instruction($encoding);
|
|
32
32
|
}
|
|
33
33
|
XReg xreg1 = (r1s[2:1]>0) ? {1,0,r1s[2:0]} : {0,1,r1s[2:0]};
|
|
34
34
|
XReg xreg2 = (r2s[2:1]>0) ? {1,0,r2s[2:0]} : {0,1,r2s[2:0]};
|
|
@@ -29,8 +29,8 @@ access:
|
|
|
29
29
|
vs: always
|
|
30
30
|
vu: always
|
|
31
31
|
operation(): |
|
|
32
|
-
if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
|
|
33
|
-
|
|
32
|
+
if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
33
|
+
reserved_instruction($encoding);
|
|
34
34
|
}
|
|
35
35
|
XReg xreg1 = (r1s[2:1]>0) ? {1,0,r1s[2:0]} : {0,1,r1s[2:0]};
|
|
36
36
|
XReg xreg2 = (r2s[2:1]>0) ? {1,0,r2s[2:0]} : {0,1,r2s[2:0]};
|
|
@@ -36,8 +36,8 @@ access:
|
|
|
36
36
|
vs: always
|
|
37
37
|
vu: always
|
|
38
38
|
operation(): |
|
|
39
|
-
if (implemented?(ExtensionName::Xqccmp) && (CSR[misa].C == 1'b0)) {
|
|
40
|
-
|
|
39
|
+
if (implemented?(ExtensionName::Xqccmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
40
|
+
reserved_instruction($encoding);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address_sp = get_and_validate_stack_pointer(X[2], $encoding);
|
|
@@ -36,8 +36,8 @@ access:
|
|
|
36
36
|
vs: always
|
|
37
37
|
vu: always
|
|
38
38
|
operation(): |
|
|
39
|
-
if (implemented?(ExtensionName::Xqccmp) && (CSR[misa].C == 1'b0)) {
|
|
40
|
-
|
|
39
|
+
if (implemented?(ExtensionName::Xqccmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
40
|
+
reserved_instruction($encoding);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address_sp = get_and_validate_stack_pointer(X[2], $encoding);
|
|
@@ -36,8 +36,8 @@ access:
|
|
|
36
36
|
vs: always
|
|
37
37
|
vu: always
|
|
38
38
|
operation(): |
|
|
39
|
-
if (implemented?(ExtensionName::Xqccmp) && (CSR[misa].C == 1'b0)) {
|
|
40
|
-
|
|
39
|
+
if (implemented?(ExtensionName::Xqccmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
40
|
+
reserved_instruction($encoding);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address_sp = get_and_validate_stack_pointer(X[2], $encoding);
|
|
@@ -37,8 +37,8 @@ access:
|
|
|
37
37
|
vs: always
|
|
38
38
|
vu: always
|
|
39
39
|
operation(): |
|
|
40
|
-
if (implemented?(ExtensionName::Xqccmp) && (CSR[misa].C == 1'b0)) {
|
|
41
|
-
|
|
40
|
+
if (implemented?(ExtensionName::Xqccmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
41
|
+
reserved_instruction($encoding);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address_sp = get_and_validate_stack_pointer(X[2], $encoding);
|
|
@@ -38,8 +38,8 @@ access:
|
|
|
38
38
|
vs: always
|
|
39
39
|
vu: always
|
|
40
40
|
operation(): |
|
|
41
|
-
if (implemented?(ExtensionName::Xqccmp) && (CSR[misa].C == 1'b0)) {
|
|
42
|
-
|
|
41
|
+
if (implemented?(ExtensionName::Xqccmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
|
|
42
|
+
reserved_instruction($encoding);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
XReg virtual_address_sp = get_and_validate_stack_pointer(X[2], $encoding);
|
|
@@ -36,8 +36,11 @@ published as GitHub releases under the tag `schemas/<schema_name>/<version>`.
|
|
|
36
36
|
| 0.1 (current for all schemas except csr_schema.json)
|
|
37
37
|
| https://riscv.github.io/riscv-unified-db/schemas/ext_schema.json/v0.1/ext_schema.json (example)
|
|
38
38
|
|
|
39
|
-
| 0.2 (current for csr_schema.json)
|
|
39
|
+
| 0.2 (current for csr_schema.json except indirect_address description fix)
|
|
40
40
|
| https://riscv.github.io/riscv-unified-db/schemas/csr_schema.json/v0.2/csr_schema.json
|
|
41
|
+
|
|
42
|
+
| 0.3 (current for csr_schema.json)
|
|
43
|
+
| https://riscv.github.io/riscv-unified-db/schemas/csr_schema.json/v0.3/csr_schema.json
|
|
41
44
|
|===
|
|
42
45
|
|
|
43
46
|
== Schema Identification (`$id`)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "v0.
|
|
3
|
+
"$id": "v0.3",
|
|
4
4
|
"title": "CSR description",
|
|
5
5
|
"description": "A CSR register specification",
|
|
6
6
|
"$defs": {
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
"indirect_address": {
|
|
227
227
|
"type": "integer",
|
|
228
|
-
"description": "Indirect address of the CSR, as given to the indirect CSRs of the `Smcsrind`/`
|
|
228
|
+
"description": "Indirect address of the CSR, as given to the indirect CSRs of the `Smcsrind`/`Sscsrind` extensions"
|
|
229
229
|
},
|
|
230
230
|
"indirect_slot": {
|
|
231
231
|
"type": "integer",
|
|
@@ -0,0 +1,38 @@
|
|
|
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/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: hgeie
|
|
9
|
+
long_name: Hypervisor Guest External Interrupt Enable Register
|
|
10
|
+
writable: true
|
|
11
|
+
description: |
|
|
12
|
+
The hgeie register is an HSXLEN-bit read/write register that contains enable bits for the guest external interrupts at this hart. Guest external interrupt number i corresponds with bit i in hgeie.
|
|
13
|
+
|
|
14
|
+
Guest external interrupts represent interrupts directed to individual virtual machines at VS-level. If a RISC-V platform supports placing a physical device under the direct control of a guest OS with minimal hypervisor intervention (known as pass-through or direct assignment between a virtual machine and the physical device), then, in such circumstance, interrupts from the device are intended for a specific virtual machine.
|
|
15
|
+
|
|
16
|
+
[Note]
|
|
17
|
+
Support for guest external interrupts requires an interrupt controller that can collect virtual-machine-directed interrupts separately from other interrupts.
|
|
18
|
+
|
|
19
|
+
The number of bits implemented in hgeie for guest external interrupts is UNSPECIFIED and may be zero. This number is known as GEILEN. The least-significant bits are implemented first, apart from bit 0. Hence, if GEILEN is nonzero, bits GEILEN:1 shall be writable in hgeie, and all other bit positions shall be read-only zeros.
|
|
20
|
+
|
|
21
|
+
Register hgeie selects the subset of guest external interrupts that cause a supervisor-level (HS-level) guest external interrupt. The enable bits in hgeie do not affect the VS-level external interrupt signal selected from hgeip by hstatus.VGEIN.
|
|
22
|
+
address: 0x607
|
|
23
|
+
priv_mode: S
|
|
24
|
+
definedBy:
|
|
25
|
+
extension:
|
|
26
|
+
name: H
|
|
27
|
+
length: SXLEN
|
|
28
|
+
fields:
|
|
29
|
+
GEI_ENABLE:
|
|
30
|
+
long_name: Guest external interrupt enable bits
|
|
31
|
+
location_rv32: 31-1
|
|
32
|
+
location_rv64: 63-1
|
|
33
|
+
type(): |
|
|
34
|
+
return NUM_EXTERNAL_GUEST_INTERRUPTS > 0 ? CsrFieldType::RW : CsrFieldType::RO;
|
|
35
|
+
reset_value: UNDEFINED_LEGAL
|
|
36
|
+
description: Enable bits; see description of hgeie
|
|
37
|
+
sw_write(csr_value): |
|
|
38
|
+
return ((MXLEN'1 << NUM_EXTERNAL_GUEST_INTERRUPTS) - 1) & csr_value.GEI_ENABLE;
|
|
@@ -0,0 +1,33 @@
|
|
|
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/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: hgeip
|
|
9
|
+
long_name: Hypervisor Guest External Interrupt Pending Register
|
|
10
|
+
writable: false
|
|
11
|
+
description: |
|
|
12
|
+
The hgeip register is an HSXLEN-bit read-only register, formatted as that indicates pending guest external interrupts for this hart.
|
|
13
|
+
|
|
14
|
+
Guest external interrupts represent interrupts directed to individual virtual machines at VS-level.
|
|
15
|
+
If a RISC-V platform supports placing a physical device under the direct control of a guest OS with minimal hypervisor intervention (known as pass-through or direct assignment between a virtual machine and the physical device), then, in such circumstance, interrupts from the device are intended for a specific virtual machine.
|
|
16
|
+
Each bit of hgeip summarizes all pending interrupts directed to one virtual hart, as collected and reported by an interrupt controller. To distinguish specific pending interrupts from multiple devices, software must query the interrupt controller.
|
|
17
|
+
|
|
18
|
+
The number of bits implemented in hgeip and hgeie for guest external interrupts is UNSPECIFIED and may be zero.
|
|
19
|
+
This number is known as GEILEN. The least-significant bits are implemented first, apart from bit 0. Hence, if GEILEN is nonzero, bits GEILEN:1 shall be writable in hgeie, and all other bit positions shall be read-only zeros in both hgeip and hgeie
|
|
20
|
+
address: 0xE12
|
|
21
|
+
priv_mode: S
|
|
22
|
+
definedBy:
|
|
23
|
+
extension:
|
|
24
|
+
name: H
|
|
25
|
+
length: SXLEN
|
|
26
|
+
fields:
|
|
27
|
+
GEI_PENDING:
|
|
28
|
+
long_name: Guest external interrupt pending bits
|
|
29
|
+
location_rv32: 31-1
|
|
30
|
+
location_rv64: 63-1
|
|
31
|
+
type: RO-H
|
|
32
|
+
reset_value: 0
|
|
33
|
+
description: Pending bits; see description of hgeip
|
|
@@ -0,0 +1,120 @@
|
|
|
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/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: hideleg
|
|
9
|
+
long_name: Hypervisor Interrupt Delegation Register
|
|
10
|
+
description: |
|
|
11
|
+
Register hideleg is an HSXLEN-bit read/write register. By default, all traps at any privilege level are handled in M-mode, though M-mode usually uses the medeleg and mideleg CSRs to delegate some traps to HS-mode.
|
|
12
|
+
The hedeleg and hideleg CSRs allow these traps to be further delegated to a VS-mode guest; their layout is the same as medeleg and mideleg.
|
|
13
|
+
An interrupt that has been delegated to HS-mode (using mideleg) is further delegated to VS-mode if the corresponding hideleg bit is set.
|
|
14
|
+
Among bits 15:0 of hideleg, bits 10, 6, and 2 (corresponding to the standard VS-level interrupts) are writable, and bits 12, 9, 5, and 1 (corresponding to the standard S-level interrupts) are read-only zeros.
|
|
15
|
+
address: 0x603
|
|
16
|
+
writable: true
|
|
17
|
+
priv_mode: S
|
|
18
|
+
definedBy:
|
|
19
|
+
extension:
|
|
20
|
+
name: H
|
|
21
|
+
length: SXLEN
|
|
22
|
+
fields:
|
|
23
|
+
SSI:
|
|
24
|
+
location: 1
|
|
25
|
+
type: RO
|
|
26
|
+
reset_value: 0
|
|
27
|
+
long_name: Supervisor Software Interrupt
|
|
28
|
+
description: Supervisor Software Interrupt
|
|
29
|
+
|
|
30
|
+
VSSI:
|
|
31
|
+
location: 2
|
|
32
|
+
type: RW
|
|
33
|
+
reset_value: UNDEFINED_LEGAL
|
|
34
|
+
long_name: Virtual Supervisor Software Interrupt
|
|
35
|
+
description: Virtual Supervisor Software Interrupt
|
|
36
|
+
sw_write(csr_value): |
|
|
37
|
+
if (CSR[mideleg].VSSI == 0) {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
if (csr_value.VSSI == 0) {
|
|
41
|
+
CSR[vsip].SSIP = 0;
|
|
42
|
+
CSR[vsie].SSIE = 0;
|
|
43
|
+
}
|
|
44
|
+
return csr_value.VSSI;
|
|
45
|
+
|
|
46
|
+
STI:
|
|
47
|
+
location: 5
|
|
48
|
+
type: RO
|
|
49
|
+
reset_value: 0
|
|
50
|
+
long_name: Supervisor Timer Interrupt
|
|
51
|
+
description: Supervisor Timer Interrupt
|
|
52
|
+
|
|
53
|
+
VSTI:
|
|
54
|
+
location: 6
|
|
55
|
+
type: RW
|
|
56
|
+
reset_value: UNDEFINED_LEGAL
|
|
57
|
+
long_name: Virtual Supervisor Timer Interrupt
|
|
58
|
+
description: Virtual Supervisor Timer Interrupt
|
|
59
|
+
sw_write(csr_value): |
|
|
60
|
+
if (CSR[mideleg].VSTI == 0) {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
if (csr_value.VSTI == 0) {
|
|
64
|
+
CSR[vsip].STIP = 0;
|
|
65
|
+
CSR[vsie].STIE = 0;
|
|
66
|
+
}
|
|
67
|
+
return csr_value.VSTI;
|
|
68
|
+
|
|
69
|
+
SEI:
|
|
70
|
+
location: 9
|
|
71
|
+
type: RO
|
|
72
|
+
reset_value: 0
|
|
73
|
+
long_name: Supervisor External Interrupt
|
|
74
|
+
description: Supervisor External Interrupt
|
|
75
|
+
|
|
76
|
+
VSEI:
|
|
77
|
+
location: 10
|
|
78
|
+
type: RW
|
|
79
|
+
reset_value: UNDEFINED_LEGAL
|
|
80
|
+
long_name: Virtual Supervisor External Interrupt
|
|
81
|
+
description: Virtual Supervisor External Interrupt
|
|
82
|
+
sw_write(csr_value): |
|
|
83
|
+
if (CSR[mideleg].VSEI == 0) {
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
if (csr_value.VSEI == 0) {
|
|
87
|
+
CSR[vsip].SEIP = 0;
|
|
88
|
+
CSR[vsie].SEIE = 0;
|
|
89
|
+
}
|
|
90
|
+
return csr_value.VSEI;
|
|
91
|
+
|
|
92
|
+
SGEI:
|
|
93
|
+
location: 12
|
|
94
|
+
type: RO
|
|
95
|
+
reset_value: 0
|
|
96
|
+
long_name: Supervisor Guest External Interrupt
|
|
97
|
+
description: Supervisor Guest External Interrupt
|
|
98
|
+
|
|
99
|
+
LCOFI:
|
|
100
|
+
location: 13
|
|
101
|
+
definedBy:
|
|
102
|
+
extension:
|
|
103
|
+
name: Sscofpmf
|
|
104
|
+
type: RW
|
|
105
|
+
reset_value: UNDEFINED_LEGAL
|
|
106
|
+
long_name: Local-Counter-Overfloat Interrupt
|
|
107
|
+
description: Local-Counter-Overfloat Interrupt
|
|
108
|
+
sw_write(csr_value): |
|
|
109
|
+
if (CSR[mideleg].LCOFI == 0) {
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
if (csr_value.LCOFI == 0) {
|
|
113
|
+
CSR[vsip].LCOFIP = 0;
|
|
114
|
+
CSR[vsie].LCOFIE = 0;
|
|
115
|
+
}
|
|
116
|
+
return csr_value.LCOFI;
|
|
117
|
+
|
|
118
|
+
sw_read(): |
|
|
119
|
+
XReg mask = CSR[mideleg].VSSI | CSR[mideleg].VSTI | CSR[mideleg].VSEI | CSR[mideleg].LCOFI;
|
|
120
|
+
return $bits(CSR[hideleg]) & mask;
|
|
@@ -0,0 +1,74 @@
|
|
|
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/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: hie
|
|
9
|
+
long_name: Hypervisor Interrupt Enable Register
|
|
10
|
+
description: |
|
|
11
|
+
The `hie` register is a read/write register in HS-mode that enables interrupts.
|
|
12
|
+
It corresponds to the enable bits for VS-level and hypervisor-specific interrupts, and supplements
|
|
13
|
+
the HS-level `sie` register.
|
|
14
|
+
address: 0x604
|
|
15
|
+
writable: true
|
|
16
|
+
priv_mode: S
|
|
17
|
+
definedBy:
|
|
18
|
+
extension:
|
|
19
|
+
name: H
|
|
20
|
+
length: SXLEN
|
|
21
|
+
fields:
|
|
22
|
+
# TODO: For each writable bit in sie, the corresponding bit shall be read-only zero in both hip and hie.
|
|
23
|
+
|
|
24
|
+
SGEIE:
|
|
25
|
+
location: 12
|
|
26
|
+
type: RW
|
|
27
|
+
reset_value: UNDEFINED_LEGAL
|
|
28
|
+
description: |
|
|
29
|
+
Hypervisor guest external interrupt enable bit. When set, allows external interrupts to be delivered
|
|
30
|
+
to VS-mode based on the `hgeie` setting.
|
|
31
|
+
sw_write(csr_value): |
|
|
32
|
+
if (CSR[mideleg].SGEI == 0) {
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
return csr_value.SGEIE;
|
|
36
|
+
|
|
37
|
+
VSEIE:
|
|
38
|
+
location: 10
|
|
39
|
+
type: RW
|
|
40
|
+
reset_value: UNDEFINED_LEGAL
|
|
41
|
+
description: |
|
|
42
|
+
VS-level external interrupt enable bit. When set, allows external interrupts directed to VS-level
|
|
43
|
+
to be processed based on the configuration in `hvip` and other platform-specific sources.
|
|
44
|
+
sw_write(csr_value): |
|
|
45
|
+
if (CSR[mideleg].VSEI == 0) {
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
return csr_value.VSEIE;
|
|
49
|
+
|
|
50
|
+
VSTIE:
|
|
51
|
+
location: 6
|
|
52
|
+
type: RW
|
|
53
|
+
reset_value: UNDEFINED_LEGAL
|
|
54
|
+
description: |
|
|
55
|
+
VS-level timer interrupt enable bit. When set, allows VS-level timer interrupts to be processed
|
|
56
|
+
based on the `hvip` configuration and any platform-specific timer interrupts.
|
|
57
|
+
sw_write(csr_value): |
|
|
58
|
+
if (CSR[mideleg].VSTI == 0) {
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
return csr_value.VSTIE;
|
|
62
|
+
|
|
63
|
+
VSSIE:
|
|
64
|
+
location: 2
|
|
65
|
+
type: RW
|
|
66
|
+
reset_value: UNDEFINED_LEGAL
|
|
67
|
+
description: |
|
|
68
|
+
VS-level software interrupt enable bit. When set, allows software interrupts directed to VS-level
|
|
69
|
+
to be processed, based on the configuration in `hvip`.
|
|
70
|
+
sw_write(csr_value): |
|
|
71
|
+
if (CSR[mideleg].VSSI == 0) {
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
return csr_value.VSSIE;
|
|
@@ -0,0 +1,88 @@
|
|
|
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/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: hip
|
|
9
|
+
long_name: Hypervisor Interrupt Pending Register
|
|
10
|
+
writable: true
|
|
11
|
+
description: |
|
|
12
|
+
The `hip` register is an HSXLEN-bit read/write register that indicates pending interrupts at the hypervisor level.
|
|
13
|
+
It contains interrupt-pending bits for both VS-level and hypervisor-specific interrupts.
|
|
14
|
+
address: 0x608
|
|
15
|
+
priv_mode: S
|
|
16
|
+
definedBy:
|
|
17
|
+
extension:
|
|
18
|
+
name: H
|
|
19
|
+
sw_read(): |
|
|
20
|
+
XReg res = 0;
|
|
21
|
+
|
|
22
|
+
# SGEIP: 1 iff bitwise AND of hgeip and hgeie is nonzero
|
|
23
|
+
if (($bits(CSR[hgeie]) & $bits(CSR[hgeip])) != 0) {
|
|
24
|
+
res[12] = 1'b1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# VSEIP: logical OR of hvip.VSEIP and platform-specific sources
|
|
28
|
+
if (CSR[hvip].VSEIP == 1'b1) {
|
|
29
|
+
res[10] = 1'b1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# VSTIP: logical OR of hvip.VSTIP and vstimecmp comparison (if Sstc)
|
|
33
|
+
if (implemented?(ExtensionName::Sstc)) {
|
|
34
|
+
if ((CSR[hvip].VSTIP == 1'b1) || ((read_mtime() + CSR[htimedelta].DELTA) >= CSR[vstimecmp].TIME)) {
|
|
35
|
+
res[6] = 1'b1;
|
|
36
|
+
}
|
|
37
|
+
} else {
|
|
38
|
+
if (CSR[hvip].VSTIP == 1'b1) {
|
|
39
|
+
res[6] = 1'b1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
# VSSIP: alias of hvip.VSSIP
|
|
44
|
+
if (CSR[hvip].VSSIP == 1'b1) {
|
|
45
|
+
res[2] = 1'b1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return res;
|
|
49
|
+
length: SXLEN
|
|
50
|
+
fields:
|
|
51
|
+
# TODO: For each writable bit in sie, the corresponding bit shall be read-only zero in both hip and hie.
|
|
52
|
+
|
|
53
|
+
SGEIP:
|
|
54
|
+
location: 12
|
|
55
|
+
type: RO-H
|
|
56
|
+
reset_value: 0
|
|
57
|
+
description: |
|
|
58
|
+
Pending interrupt bit for supervisor guest external interrupts (SGEI).
|
|
59
|
+
This bit is 1 if and only if the logical AND of `hgeip` and `hgeie` is nonzero.
|
|
60
|
+
|
|
61
|
+
VSEIP:
|
|
62
|
+
location: 10
|
|
63
|
+
type: RO-H
|
|
64
|
+
reset_value: 0
|
|
65
|
+
description: |
|
|
66
|
+
Pending interrupt bit for VS-level external interrupts (VSEI).
|
|
67
|
+
This bit is the logical OR of `vseip` from `hvip`, the interrupt from `hgeip` selected by `hstatus.VGEIN`,
|
|
68
|
+
and any other external interrupt signal directed to VS-level.
|
|
69
|
+
|
|
70
|
+
VSTIP:
|
|
71
|
+
location: 6
|
|
72
|
+
type: RO-H
|
|
73
|
+
reset_value: 0
|
|
74
|
+
description: |
|
|
75
|
+
Pending interrupt bit for VS-level timer interrupts (VSTI).
|
|
76
|
+
This bit is the logical OR of `vstip` from `hvip` and any other timer interrupt directed to VS-level.
|
|
77
|
+
|
|
78
|
+
VSSIP:
|
|
79
|
+
location: 2
|
|
80
|
+
type: RO-H
|
|
81
|
+
reset_value: 0
|
|
82
|
+
sw_write(csr_value): |
|
|
83
|
+
# VSSIP in hip is an alias of VSSIP in hvip
|
|
84
|
+
CSR[hvip].VSSIP = csr_value.VSSIP;
|
|
85
|
+
return csr_value.VSSIP;
|
|
86
|
+
description: |
|
|
87
|
+
Pending interrupt bit for VS-level software interrupts (VSSI).
|
|
88
|
+
This bit is an alias of the `vssip` bit in `hvip`.
|
|
@@ -0,0 +1,46 @@
|
|
|
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/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: hvip
|
|
9
|
+
long_name: Hypervisor Virtual Interrupt Pending Register
|
|
10
|
+
description: |
|
|
11
|
+
The `hvip` register is an HSXLEN-bit read/write register that a hypervisor can write to indicate virtual interrupts intended for VS-mode.
|
|
12
|
+
It contains interrupt-pending bits for virtual interrupts such as VS-level external interrupts, timer interrupts, and software interrupts.
|
|
13
|
+
address: 0x645
|
|
14
|
+
writable: true
|
|
15
|
+
priv_mode: S
|
|
16
|
+
definedBy:
|
|
17
|
+
extension:
|
|
18
|
+
name: H
|
|
19
|
+
length: SXLEN
|
|
20
|
+
fields:
|
|
21
|
+
VSEIP:
|
|
22
|
+
location: 10
|
|
23
|
+
type: RW
|
|
24
|
+
reset_value: UNDEFINED_LEGAL
|
|
25
|
+
description: |
|
|
26
|
+
Pending interrupt bit for VS-level external interrupts. This bit is writable and
|
|
27
|
+
is set to 1 to assert a VS-level external interrupt.
|
|
28
|
+
TODO: assert the interrupt
|
|
29
|
+
|
|
30
|
+
VSTIP:
|
|
31
|
+
location: 6
|
|
32
|
+
type: RW
|
|
33
|
+
reset_value: UNDEFINED_LEGAL
|
|
34
|
+
description: |
|
|
35
|
+
Pending interrupt bit for VS-level timer interrupts. This bit is writable and
|
|
36
|
+
is set to 1 to assert a VS-level timer interrupt.
|
|
37
|
+
TODO: assert the interrupt
|
|
38
|
+
|
|
39
|
+
VSSIP:
|
|
40
|
+
location: 2
|
|
41
|
+
type: RW
|
|
42
|
+
reset_value: UNDEFINED_LEGAL
|
|
43
|
+
description: |
|
|
44
|
+
Pending interrupt bit for VS-level software interrupts. This bit is writable and
|
|
45
|
+
is set to 1 to assert a VS-level software interrupt.
|
|
46
|
+
TODO: assert the interrupt
|