udb 0.1.15 → 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 +21 -0
- data/.data/cfgs/mc100-32-full-example.yaml +7 -0
- data/.data/cfgs/profile/RVA20S64.yaml +2 -0
- data/.data/cfgs/profile/RVA20U64.yaml +2 -0
- data/.data/cfgs/profile/RVA22S64.yaml +2 -0
- data/.data/cfgs/profile/RVA22U64.yaml +2 -0
- data/.data/cfgs/profile/RVA23S64.yaml +2 -0
- data/.data/cfgs/profile/RVA23U64.yaml +2 -0
- data/.data/cfgs/profile/RVB23S64.yaml +2 -0
- data/.data/cfgs/profile/RVB23U64.yaml +2 -0
- data/.data/cfgs/qc_iu.yaml +15 -0
- data/.data/cfgs/rv32-riscv-tests.yaml +10 -0
- data/.data/cfgs/rv32-vector.yaml +11 -1
- data/.data/cfgs/rv64-riscv-tests.yaml +10 -0
- data/.data/cfgs/rv64-vector.yaml +12 -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/henvcfg.yaml +1 -1
- data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
- data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
- data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
- data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
- data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
- data/.data/spec/std/isa/csr/H/htimedeltah.yaml +1 -1
- 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 +4 -2
- 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/hstateen0h.yaml +1 -1
- data/.data/spec/std/isa/csr/hstateen1h.yaml +1 -1
- data/.data/spec/std/isa/csr/hstateen2h.yaml +1 -1
- data/.data/spec/std/isa/csr/hstateen3h.yaml +1 -1
- data/.data/spec/std/isa/csr/instreth.yaml +1 -3
- 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/minstreth.yaml +1 -1
- 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 +3 -3
- data/.data/spec/std/isa/csr/mstatush.yaml +1 -1
- data/.data/spec/std/isa/csr/schema.adoc +10 -4
- data/.data/spec/std/isa/csr/senvcfg.yaml +7 -13
- data/.data/spec/std/isa/csr/sepc.yaml +4 -3
- data/.data/spec/std/isa/csr/sip.yaml +1 -1
- data/.data/spec/std/isa/csr/sscratch.yaml +3 -2
- 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/stval.yaml +3 -2
- data/.data/spec/std/isa/csr/stvec.yaml +5 -4
- data/.data/spec/std/isa/csr/tcontrol.yaml +37 -0
- data/.data/spec/std/isa/csr/time.yaml +1 -1
- data/.data/spec/std/isa/csr/timeh.yaml +1 -1
- data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
- data/.data/spec/std/isa/csr/vsepc.yaml +6 -5
- data/.data/spec/std/isa/csr/vstvec.yaml +5 -4
- data/.data/spec/std/isa/ext/M.yaml +4 -0
- data/.data/spec/std/isa/ext/Shgatpa.yaml +1 -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/Zibi.yaml +29 -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 +1 -5
- data/.data/spec/std/isa/inst/B/rorw.yaml +1 -5
- 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/F/fmv.w.x.yaml +3 -0
- data/.data/spec/std/isa/inst/F/fmv.x.w.yaml +3 -0
- 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 +1 -7
- data/.data/spec/std/isa/inst/M/mulh.yaml +1 -7
- data/.data/spec/std/isa/inst/M/mulhsu.yaml +1 -7
- data/.data/spec/std/isa/inst/M/mulhu.yaml +1 -7
- data/.data/spec/std/isa/inst/M/mulw.yaml +1 -7
- 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 +5 -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/{Q → Zfa}/fltq.q.yaml +2 -2
- data/.data/spec/std/isa/inst/Zibi/beqi.yaml +45 -0
- data/.data/spec/std/isa/inst/Zibi/bnei.yaml +45 -0
- 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 +3 -3
- data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicfiss/ssamoswap.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicfiss/ssamoswap.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicfiss/sspopchk.yaml +63 -0
- data/.data/spec/std/isa/inst/Zicfiss/sspush.yaml +63 -0
- data/.data/spec/std/isa/inst/Zimop/mop.r.28.yaml +1 -2
- data/.data/spec/std/isa/inst/Zimop/mop.r.N.layout +1 -2
- data/.data/spec/std/isa/inst/Zimop/mop.rr.7.yaml +1 -2
- data/.data/spec/std/isa/inst/Zimop/mop.rr.N.layout +1 -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/inst/{Zvbb → Zvkb}/vandn.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vandn.vx.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vbrev8.v.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrev8.v.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrol.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrol.vx.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vi.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vx.yaml +1 -1
- data/.data/spec/std/isa/isa/builtin_functions.idl +3 -1
- data/.data/spec/std/isa/isa/globals.isa +1 -1
- data/.data/spec/std/isa/isa/util.idl +4 -3
- data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +3 -2
- data/.data/spec/std/isa/param/HCONTEXT_AVAILABLE.yaml +1 -1
- 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_H.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_S.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/config.rb +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 +122 -52
- data/.data/spec/std/isa/inst/Zicfiss/sspopchk.x1.yaml +0 -25
- data/.data/spec/std/isa/inst/Zicfiss/sspopchk.x5.yaml +0 -25
- data/.data/spec/std/isa/inst/Zicfiss/sspush.x1.yaml +0 -25
- data/.data/spec/std/isa/inst/Zicfiss/sspush.x5.yaml +0 -25
- /data/.data/spec/std/isa/inst/{Smdbltrp → Smctr}/sctrclr.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fcvtmod.w.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fleq.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fleq.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fleq.q.yaml +0 -0
- /data/.data/spec/std/isa/inst/{F → Zfa}/fleq.s.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fli.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fli.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fli.q.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fltq.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fltq.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{F → Zfa}/fltq.s.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fmaxm.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fmaxm.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fmaxm.q.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fminm.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fminm.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fminm.q.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fmvh.x.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fmvh.x.q.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fmvp.d.x.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fmvp.q.x.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/fround.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fround.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/fround.q.yaml +0 -0
- /data/.data/spec/std/isa/inst/{D → Zfa}/froundnx.d.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Zfh → Zfa}/froundnx.h.yaml +0 -0
- /data/.data/spec/std/isa/inst/{Q → Zfa}/froundnx.q.yaml +0 -0
|
@@ -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;
|
|
@@ -71,7 +71,7 @@ fields:
|
|
|
71
71
|
- extension:
|
|
72
72
|
name: Smdbltrp
|
|
73
73
|
type: RW-H
|
|
74
|
-
reset_value:
|
|
74
|
+
reset_value: 1
|
|
75
75
|
MPELP:
|
|
76
76
|
location: 41
|
|
77
77
|
long_name: M-mode Previous Expected Landing Pad state
|
|
@@ -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::
|
|
@@ -12,7 +12,7 @@ long_name: Supervisor Environment Configuration
|
|
|
12
12
|
description: |
|
|
13
13
|
Contains fields that control certain characteristics of the U-mode execution environment.
|
|
14
14
|
priv_mode: S
|
|
15
|
-
length:
|
|
15
|
+
length: SXLEN
|
|
16
16
|
definedBy:
|
|
17
17
|
extension:
|
|
18
18
|
allOf:
|
|
@@ -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
|
|
@@ -10,7 +10,7 @@ long_name: Supervisor Exception Program Counter
|
|
|
10
10
|
address: 0x141
|
|
11
11
|
writable: true
|
|
12
12
|
priv_mode: S
|
|
13
|
-
length:
|
|
13
|
+
length: SXLEN
|
|
14
14
|
description: |
|
|
15
15
|
Written with the PC of an instruction on an exception or interrupt taken in (H)S-mode.
|
|
16
16
|
|
|
@@ -20,7 +20,8 @@ definedBy:
|
|
|
20
20
|
name: S
|
|
21
21
|
fields:
|
|
22
22
|
PC:
|
|
23
|
-
|
|
23
|
+
location_rv32: 31-0
|
|
24
|
+
location_rv64: 63-0
|
|
24
25
|
description: |
|
|
25
26
|
When a trap is taken into S-mode, `sepc.PC` is written with the virtual address of the
|
|
26
27
|
instruction that was interrupted or that encountered the exception.
|
|
@@ -38,7 +39,7 @@ fields:
|
|
|
38
39
|
When `misa.C` is clear, bit 1 is masked to zero. Writes to bit 1 are still captured, and
|
|
39
40
|
may be visible on the next read with `misa.C` is set.
|
|
40
41
|
|
|
41
|
-
Holds bits
|
|
42
|
+
Holds bits [SXLEN-1:<%= ext?(:C) ? 2 : 1 %>] of the virtual address associated with an exception.
|
|
42
43
|
type: RW-RH
|
|
43
44
|
sw_write(csr_value): |
|
|
44
45
|
return csr_value.PC & ~64'b1;
|
|
@@ -15,7 +15,7 @@ description: |
|
|
|
15
15
|
|
|
16
16
|
Hypervisor-related interrupts (VS-mode interrupts and Supervisor Guest interrupts) are not reflected
|
|
17
17
|
in `sip` even though those interrupts can be taken in HS-mode. Instead, they are reported through `hip`.
|
|
18
|
-
length:
|
|
18
|
+
length: SXLEN
|
|
19
19
|
definedBy:
|
|
20
20
|
extension:
|
|
21
21
|
name: S
|
|
@@ -10,14 +10,15 @@ long_name: Supervisor Scratch Register
|
|
|
10
10
|
address: 0x140
|
|
11
11
|
writable: true
|
|
12
12
|
priv_mode: S
|
|
13
|
-
length:
|
|
13
|
+
length: SXLEN
|
|
14
14
|
description: Scratch register for software use. Bits are not interpreted by hardware.
|
|
15
15
|
definedBy: # actually, defined by RV64, but must implement U-mode for this CSR to exist
|
|
16
16
|
extension:
|
|
17
17
|
name: S
|
|
18
18
|
fields:
|
|
19
19
|
SCRATCH:
|
|
20
|
-
|
|
20
|
+
location_rv32: 31-0
|
|
21
|
+
location_rv64: 63-0
|
|
21
22
|
description: Scratch value
|
|
22
23
|
type: RW
|
|
23
24
|
reset_value: UNDEFINED_LEGAL
|
|
@@ -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): |
|
|
@@ -11,13 +11,14 @@ address: 0x143
|
|
|
11
11
|
writable: true
|
|
12
12
|
description: Holds trap-specific information
|
|
13
13
|
priv_mode: S
|
|
14
|
-
length:
|
|
14
|
+
length: SXLEN
|
|
15
15
|
definedBy:
|
|
16
16
|
extension:
|
|
17
17
|
name: S
|
|
18
18
|
fields:
|
|
19
19
|
VALUE:
|
|
20
|
-
|
|
20
|
+
location_rv32: 31-0
|
|
21
|
+
location_rv64: 63-0
|
|
21
22
|
description: |
|
|
22
23
|
Written with trap-specific information when a trap is taken into S-mode.
|
|
23
24
|
|
|
@@ -10,19 +10,20 @@ long_name: Supervisor Trap Vector
|
|
|
10
10
|
address: 0x105
|
|
11
11
|
writable: true
|
|
12
12
|
priv_mode: S
|
|
13
|
-
length:
|
|
13
|
+
length: SXLEN
|
|
14
14
|
description: Controls where traps jump.
|
|
15
15
|
definedBy:
|
|
16
16
|
extension:
|
|
17
17
|
name: S
|
|
18
18
|
fields:
|
|
19
19
|
BASE:
|
|
20
|
-
|
|
20
|
+
location_rv32: 31-2
|
|
21
|
+
location_rv64: 63-2
|
|
21
22
|
description: |
|
|
22
23
|
<%- va_size = ext?(:Sv57) ? 57 : (ext?(:Sv48) ? 48 : 39) -%>
|
|
23
|
-
Bits
|
|
24
|
+
Bits [SXLEN-1:2] of the virtual address of the exception vector for any trap taken into S-mode.
|
|
24
25
|
|
|
25
|
-
If the base address is written with a non-canonical address (_i.e._, bits
|
|
26
|
+
If the base address is written with a non-canonical address (_i.e._, bits [SXLEN-1:<%= va_size %>] do not match bit <%= va_size-1 %>),
|
|
26
27
|
the write should be ignored.
|
|
27
28
|
|
|
28
29
|
type: RW-R
|