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
|
@@ -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
|
|
@@ -0,0 +1,86 @@
|
|
|
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: vsie
|
|
9
|
+
long_name: Virtual Supervisor Interrupt Enable
|
|
10
|
+
description: |
|
|
11
|
+
The vsie register is a VSXLEN-bit read/write register that is VS-mode’s version of
|
|
12
|
+
supervisor CSR sie. When V=1, vsie substitutes for the usual sie, so instructions that
|
|
13
|
+
normally read or modify sie actually access vsie instead. However, interrupts directed to
|
|
14
|
+
HS-level continue to be indicated in the HS-level sip register, not in vsip, when V=1.
|
|
15
|
+
|
|
16
|
+
When bit 13 of hideleg is zero, vsie.LCOFIE is read-only zero. Else, vsie.LCOFIE is an alias of sie.LCOFIE.
|
|
17
|
+
When bit 10 of hideleg is zero, vsie.SEIE is read-only zero. Else, vsie.SEIE is an alias of hie.VSEIE.
|
|
18
|
+
When bit 6 of hideleg is zero, vsie.STIE is read-only zero. Else, vsie.STIE is an alias of hie.VSTIE.
|
|
19
|
+
When bit 2 of hideleg is zero, vsie.SSIE is read-only zero. Else, vsie.SSIE is an alias of hie.VSSIE.
|
|
20
|
+
address: 0x204
|
|
21
|
+
virtual_address: 0x104
|
|
22
|
+
writable: true
|
|
23
|
+
priv_mode: VS
|
|
24
|
+
definedBy:
|
|
25
|
+
extension:
|
|
26
|
+
name: H
|
|
27
|
+
sw_read(): |
|
|
28
|
+
XReg result = 0;
|
|
29
|
+
if (CSR[hideleg].VSSI == 1) {
|
|
30
|
+
result[1] = CSR[hie].VSSIE;
|
|
31
|
+
}
|
|
32
|
+
if (CSR[hideleg].VSTI == 1) {
|
|
33
|
+
result[5] = CSR[hie].VSTIE;
|
|
34
|
+
}
|
|
35
|
+
if (CSR[hideleg].VSEI == 1) {
|
|
36
|
+
result[9] = CSR[hie].VSEIE;
|
|
37
|
+
}
|
|
38
|
+
if (CSR[hideleg].LCOFI == 1) {
|
|
39
|
+
result[13] = CSR[sie].LCOFIE;
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
length: VSXLEN
|
|
43
|
+
fields:
|
|
44
|
+
SSIE:
|
|
45
|
+
location: 1
|
|
46
|
+
type: RW-H
|
|
47
|
+
reset_value: UNDEFINED_LEGAL
|
|
48
|
+
sw_write(csr_value): |
|
|
49
|
+
if (CSR[hideleg].VSSI == 1) {
|
|
50
|
+
CSR[hie].VSSIE = csr_value.SSIE;
|
|
51
|
+
}
|
|
52
|
+
description: |
|
|
53
|
+
SSIE. Read-only zero when hideleg.VSSI is 0. Else, alias of hie.VSSIE.
|
|
54
|
+
|
|
55
|
+
STIE:
|
|
56
|
+
location: 5
|
|
57
|
+
type: RW-H
|
|
58
|
+
reset_value: UNDEFINED_LEGAL
|
|
59
|
+
sw_write(csr_value): |
|
|
60
|
+
if (CSR[hideleg].VSTI == 1) {
|
|
61
|
+
CSR[hie].VSTIE = csr_value.STIE;
|
|
62
|
+
}
|
|
63
|
+
description: |
|
|
64
|
+
STIE. Read-only zero when hideleg.VSTI is 0. Else, alias of hie.VSTIE.
|
|
65
|
+
|
|
66
|
+
SEIE:
|
|
67
|
+
location: 9
|
|
68
|
+
type: RW-H
|
|
69
|
+
reset_value: UNDEFINED_LEGAL
|
|
70
|
+
sw_write(csr_value): |
|
|
71
|
+
if (CSR[hideleg].VSEI == 1) {
|
|
72
|
+
CSR[hie].VSEIE = csr_value.SEIE;
|
|
73
|
+
}
|
|
74
|
+
description: |
|
|
75
|
+
SEIE. Read-only zero when hideleg.VSEI is 0. Else, alias of hie.VSEIE.
|
|
76
|
+
|
|
77
|
+
LCOFIE:
|
|
78
|
+
location: 13
|
|
79
|
+
type: RW-H
|
|
80
|
+
reset_value: UNDEFINED_LEGAL
|
|
81
|
+
sw_write(csr_value): |
|
|
82
|
+
if (CSR[hideleg].LCOFI == 1) {
|
|
83
|
+
CSR[sie].LCOFIE = csr_value.LCOFIE;
|
|
84
|
+
}
|
|
85
|
+
description: |
|
|
86
|
+
LCOFIE. Read-only zero when hideleg.LCOFI is 0. Else, alias of sie.LCOFIE.
|
|
@@ -0,0 +1,98 @@
|
|
|
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: vsip
|
|
9
|
+
long_name: Virtual Supervisor Interrupt Pending
|
|
10
|
+
description: |
|
|
11
|
+
The `vsip` register is a VSXLEN-bit read/write register that is VS-mode’s version of the `sip` CSR.
|
|
12
|
+
When V=1, instructions that normally access `sip` instead access `vsip`. It holds the pending
|
|
13
|
+
interrupt status for supervisor-level traps in a virtualized environment.
|
|
14
|
+
|
|
15
|
+
However, interrupts directed to HS-level continue to be indicated in the HS-level `sip` register,
|
|
16
|
+
not in `vsip`, when V=1.
|
|
17
|
+
|
|
18
|
+
The standard portion (bits 15:0) includes individual interrupt-pending bits.
|
|
19
|
+
address: 0x244
|
|
20
|
+
virtual_address: 0x144
|
|
21
|
+
writable: true
|
|
22
|
+
priv_mode: VS
|
|
23
|
+
definedBy:
|
|
24
|
+
extension:
|
|
25
|
+
name: H
|
|
26
|
+
sw_read(): |
|
|
27
|
+
XReg result = 0;
|
|
28
|
+
if (CSR[hideleg].VSSI == 1) {
|
|
29
|
+
result[1] = CSR[hip].VSSIP;
|
|
30
|
+
}
|
|
31
|
+
if (CSR[hideleg].VSTI == 1) {
|
|
32
|
+
result[5] = CSR[hip].VSTIP;
|
|
33
|
+
}
|
|
34
|
+
if (CSR[hideleg].VSEI == 1) {
|
|
35
|
+
result[9] = CSR[hip].VSEIP;
|
|
36
|
+
}
|
|
37
|
+
if (implemented?(ExtensionName::Sscofpmf)) {
|
|
38
|
+
if (CSR[hideleg].LCOFI == 1) {
|
|
39
|
+
result[13] = CSR[sip].LCOFIP;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
length: VSXLEN
|
|
44
|
+
fields:
|
|
45
|
+
SSIP:
|
|
46
|
+
location: 1
|
|
47
|
+
type: RW-H
|
|
48
|
+
reset_value: UNDEFINED_LEGAL
|
|
49
|
+
sw_write(csr_value): |
|
|
50
|
+
if (CSR[hideleg].VSSI == 1) {
|
|
51
|
+
CSR[hip].VSSIP = csr_value.SSIP;
|
|
52
|
+
}
|
|
53
|
+
description: |
|
|
54
|
+
*Supervisor Software Interrupt Pending*
|
|
55
|
+
Indicates a pending software interrupt at the supervisor level.
|
|
56
|
+
Read-only zero when `hideleg.VSSI == 0`, else aliased to `hip.VSSIP`.
|
|
57
|
+
|
|
58
|
+
STIP:
|
|
59
|
+
location: 5
|
|
60
|
+
type: RW-H
|
|
61
|
+
reset_value: UNDEFINED_LEGAL
|
|
62
|
+
sw_write(csr_value): |
|
|
63
|
+
if (CSR[hideleg].VSTI == 1) {
|
|
64
|
+
CSR[hip].VSTIP = csr_value.STIP;
|
|
65
|
+
}
|
|
66
|
+
description: |
|
|
67
|
+
*Supervisor Timer Interrupt Pending*
|
|
68
|
+
Indicates a pending timer interrupt at the supervisor level.
|
|
69
|
+
Read-only zero when `hideleg.VSTI == 0`, else aliased to `hip.VSTIP`.
|
|
70
|
+
|
|
71
|
+
SEIP:
|
|
72
|
+
location: 9
|
|
73
|
+
type: RW-H
|
|
74
|
+
reset_value: UNDEFINED_LEGAL
|
|
75
|
+
sw_write(csr_value): |
|
|
76
|
+
if (CSR[hideleg].VSEI == 1) {
|
|
77
|
+
CSR[hip].VSEIP = csr_value.SEIP;
|
|
78
|
+
}
|
|
79
|
+
description: |
|
|
80
|
+
*Supervisor External Interrupt Pending*
|
|
81
|
+
Indicates a pending external interrupt at the supervisor level.
|
|
82
|
+
Read-only zero when `hideleg.VSEI == 0`, else aliased to `hip.VSEIP`.
|
|
83
|
+
|
|
84
|
+
LCOFIP:
|
|
85
|
+
definedBy:
|
|
86
|
+
extension:
|
|
87
|
+
name: Sscofpmf
|
|
88
|
+
location: 13
|
|
89
|
+
type: RW-H
|
|
90
|
+
reset_value: UNDEFINED_LEGAL
|
|
91
|
+
sw_write(csr_value): |
|
|
92
|
+
if (CSR[hideleg].LCOFI == 1) {
|
|
93
|
+
CSR[sip].LCOFIP = csr_value.LCOFIP;
|
|
94
|
+
}
|
|
95
|
+
description: |
|
|
96
|
+
*Local Counter Overflow Interrupt Pending*
|
|
97
|
+
Indicates an overflow of a local counter.
|
|
98
|
+
Read-only zero when `hideleg.LCOFI == 0`, else aliased to `sip.LCOFIP`.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../../schemas/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "csr_schema.json#"
|
|
7
|
+
kind: csr
|
|
8
|
+
name: vsscratch
|
|
9
|
+
address: 0x240
|
|
10
|
+
virtual_address: 0x140
|
|
11
|
+
long_name: Virtual Supervisor Scratch Register
|
|
12
|
+
writable: true
|
|
13
|
+
description: |
|
|
14
|
+
The vsscratch register is a VSXLEN-bit read/write register that is VS-mode’s version of supervisor register sscratch.
|
|
15
|
+
When V=1, vsscratch substitutes for the usual sscratch, so instructions that normally read or modify sscratch actually access vsscratch instead.
|
|
16
|
+
The contents of vsscratch never directly affect the behavior of the machine.
|
|
17
|
+
priv_mode: VS
|
|
18
|
+
length: VSXLEN
|
|
19
|
+
definedBy:
|
|
20
|
+
extension:
|
|
21
|
+
name: H
|
|
22
|
+
fields:
|
|
23
|
+
SCRATCH:
|
|
24
|
+
type: RW
|
|
25
|
+
reset_value: UNDEFINED_LEGAL
|
|
26
|
+
location_rv32: 31-0
|
|
27
|
+
location_rv64: 63-0
|
|
28
|
+
description: |
|
|
29
|
+
Virtual supervisor scratch register.
|
|
@@ -48,16 +48,16 @@ fields:
|
|
|
48
48
|
return csr_value.ADDR;
|
|
49
49
|
}
|
|
50
50
|
sw_read(): |
|
|
51
|
-
# when the mode is NAPOT and PMP_GRANULARITY >=
|
|
51
|
+
# when the mode is NAPOT and PMP_GRANULARITY >= 4,
|
|
52
52
|
# bits (PMP_GRANULARITY-4):0 must read as ones
|
|
53
53
|
if (MXLEN == 32) {
|
|
54
|
-
if ((PMP_GRANULARITY >=
|
|
54
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
55
55
|
(CSR[pmpcfg0].pmp0cfg[4] == 1)) {
|
|
56
56
|
return CSR[pmpaddr0].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
57
57
|
|
|
58
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
58
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
59
59
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
60
|
-
} else if ((PMP_GRANULARITY >=
|
|
60
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
61
61
|
(CSR[pmpcfg0].pmp0cfg[4] == 0)) {
|
|
62
62
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
63
63
|
return CSR[pmpaddr0].ADDR & ~mask;
|
|
@@ -67,13 +67,13 @@ sw_read(): |
|
|
|
67
67
|
return CSR[pmpaddr0].ADDR;
|
|
68
68
|
}
|
|
69
69
|
} else {
|
|
70
|
-
if ((PMP_GRANULARITY >=
|
|
70
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
71
71
|
(CSR[pmpcfg0].pmp0cfg[4] == 1)) {
|
|
72
72
|
return CSR[pmpaddr0].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
73
73
|
|
|
74
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
74
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
75
75
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
76
|
-
} else if ((PMP_GRANULARITY >=
|
|
76
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
77
77
|
(CSR[pmpcfg0].pmp0cfg[4] == 0)) {
|
|
78
78
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
79
79
|
return CSR[pmpaddr0].ADDR & ~mask;
|
|
@@ -48,16 +48,16 @@ fields:
|
|
|
48
48
|
return csr_value.ADDR;
|
|
49
49
|
}
|
|
50
50
|
sw_read(): |
|
|
51
|
-
# when the mode is NAPOT and PMP_GRANULARITY >=
|
|
51
|
+
# when the mode is NAPOT and PMP_GRANULARITY >= 4,
|
|
52
52
|
# bits (PMP_GRANULARITY-4):0 must read as ones
|
|
53
53
|
if (MXLEN == 32) {
|
|
54
|
-
if ((PMP_GRANULARITY >=
|
|
54
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
55
55
|
(CSR[pmpcfg0].pmp1cfg[4] == 1)) {
|
|
56
56
|
return CSR[pmpaddr1].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
57
57
|
|
|
58
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
58
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
59
59
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
60
|
-
} else if ((PMP_GRANULARITY >=
|
|
60
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
61
61
|
(CSR[pmpcfg0].pmp1cfg[4] == 0)) {
|
|
62
62
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
63
63
|
return CSR[pmpaddr1].ADDR & ~mask;
|
|
@@ -67,13 +67,13 @@ sw_read(): |
|
|
|
67
67
|
return CSR[pmpaddr1].ADDR;
|
|
68
68
|
}
|
|
69
69
|
} else {
|
|
70
|
-
if ((PMP_GRANULARITY >=
|
|
70
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
71
71
|
(CSR[pmpcfg0].pmp1cfg[4] == 1)) {
|
|
72
72
|
return CSR[pmpaddr1].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
73
73
|
|
|
74
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
74
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
75
75
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
76
|
-
} else if ((PMP_GRANULARITY >=
|
|
76
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
77
77
|
(CSR[pmpcfg0].pmp1cfg[4] == 0)) {
|
|
78
78
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
79
79
|
return CSR[pmpaddr1].ADDR & ~mask;
|
|
@@ -48,16 +48,16 @@ fields:
|
|
|
48
48
|
return csr_value.ADDR;
|
|
49
49
|
}
|
|
50
50
|
sw_read(): |
|
|
51
|
-
# when the mode is NAPOT and PMP_GRANULARITY >=
|
|
51
|
+
# when the mode is NAPOT and PMP_GRANULARITY >= 4,
|
|
52
52
|
# bits (PMP_GRANULARITY-4):0 must read as ones
|
|
53
53
|
if (MXLEN == 32) {
|
|
54
|
-
if ((PMP_GRANULARITY >=
|
|
54
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
55
55
|
(CSR[pmpcfg2].pmp10cfg[4] == 1)) {
|
|
56
56
|
return CSR[pmpaddr10].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
57
57
|
|
|
58
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
58
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
59
59
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
60
|
-
} else if ((PMP_GRANULARITY >=
|
|
60
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
61
61
|
(CSR[pmpcfg2].pmp10cfg[4] == 0)) {
|
|
62
62
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
63
63
|
return CSR[pmpaddr10].ADDR & ~mask;
|
|
@@ -67,13 +67,13 @@ sw_read(): |
|
|
|
67
67
|
return CSR[pmpaddr10].ADDR;
|
|
68
68
|
}
|
|
69
69
|
} else {
|
|
70
|
-
if ((PMP_GRANULARITY >=
|
|
70
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
71
71
|
(CSR[pmpcfg2].pmp10cfg[4] == 1)) {
|
|
72
72
|
return CSR[pmpaddr10].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
73
73
|
|
|
74
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
74
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
75
75
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
76
|
-
} else if ((PMP_GRANULARITY >=
|
|
76
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
77
77
|
(CSR[pmpcfg2].pmp10cfg[4] == 0)) {
|
|
78
78
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
79
79
|
return CSR[pmpaddr10].ADDR & ~mask;
|
|
@@ -48,16 +48,16 @@ fields:
|
|
|
48
48
|
return csr_value.ADDR;
|
|
49
49
|
}
|
|
50
50
|
sw_read(): |
|
|
51
|
-
# when the mode is NAPOT and PMP_GRANULARITY >=
|
|
51
|
+
# when the mode is NAPOT and PMP_GRANULARITY >= 4,
|
|
52
52
|
# bits (PMP_GRANULARITY-4):0 must read as ones
|
|
53
53
|
if (MXLEN == 32) {
|
|
54
|
-
if ((PMP_GRANULARITY >=
|
|
54
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
55
55
|
(CSR[pmpcfg2].pmp11cfg[4] == 1)) {
|
|
56
56
|
return CSR[pmpaddr11].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
57
57
|
|
|
58
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
58
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
59
59
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
60
|
-
} else if ((PMP_GRANULARITY >=
|
|
60
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
61
61
|
(CSR[pmpcfg2].pmp11cfg[4] == 0)) {
|
|
62
62
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
63
63
|
return CSR[pmpaddr11].ADDR & ~mask;
|
|
@@ -67,13 +67,13 @@ sw_read(): |
|
|
|
67
67
|
return CSR[pmpaddr11].ADDR;
|
|
68
68
|
}
|
|
69
69
|
} else {
|
|
70
|
-
if ((PMP_GRANULARITY >=
|
|
70
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
71
71
|
(CSR[pmpcfg2].pmp11cfg[4] == 1)) {
|
|
72
72
|
return CSR[pmpaddr11].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
73
73
|
|
|
74
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
74
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
75
75
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
76
|
-
} else if ((PMP_GRANULARITY >=
|
|
76
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
77
77
|
(CSR[pmpcfg2].pmp11cfg[4] == 0)) {
|
|
78
78
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
79
79
|
return CSR[pmpaddr11].ADDR & ~mask;
|
|
@@ -48,16 +48,16 @@ fields:
|
|
|
48
48
|
return csr_value.ADDR;
|
|
49
49
|
}
|
|
50
50
|
sw_read(): |
|
|
51
|
-
# when the mode is NAPOT and PMP_GRANULARITY >=
|
|
51
|
+
# when the mode is NAPOT and PMP_GRANULARITY >= 4,
|
|
52
52
|
# bits (PMP_GRANULARITY-4):0 must read as ones
|
|
53
53
|
if (MXLEN == 32) {
|
|
54
|
-
if ((PMP_GRANULARITY >=
|
|
54
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
55
55
|
(CSR[pmpcfg3].pmp12cfg[4] == 1)) {
|
|
56
56
|
return CSR[pmpaddr12].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
57
57
|
|
|
58
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
58
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
59
59
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
60
|
-
} else if ((PMP_GRANULARITY >=
|
|
60
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
61
61
|
(CSR[pmpcfg3].pmp12cfg[4] == 0)) {
|
|
62
62
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
63
63
|
return CSR[pmpaddr12].ADDR & ~mask;
|
|
@@ -67,13 +67,13 @@ sw_read(): |
|
|
|
67
67
|
return CSR[pmpaddr12].ADDR;
|
|
68
68
|
}
|
|
69
69
|
} else {
|
|
70
|
-
if ((PMP_GRANULARITY >=
|
|
70
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
71
71
|
(CSR[pmpcfg2].pmp12cfg[4] == 1)) {
|
|
72
72
|
return CSR[pmpaddr12].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
73
73
|
|
|
74
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
74
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
75
75
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
76
|
-
} else if ((PMP_GRANULARITY >=
|
|
76
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
77
77
|
(CSR[pmpcfg2].pmp12cfg[4] == 0)) {
|
|
78
78
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
79
79
|
return CSR[pmpaddr12].ADDR & ~mask;
|
|
@@ -48,16 +48,16 @@ fields:
|
|
|
48
48
|
return csr_value.ADDR;
|
|
49
49
|
}
|
|
50
50
|
sw_read(): |
|
|
51
|
-
# when the mode is NAPOT and PMP_GRANULARITY >=
|
|
51
|
+
# when the mode is NAPOT and PMP_GRANULARITY >= 4,
|
|
52
52
|
# bits (PMP_GRANULARITY-4):0 must read as ones
|
|
53
53
|
if (MXLEN == 32) {
|
|
54
|
-
if ((PMP_GRANULARITY >=
|
|
54
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
55
55
|
(CSR[pmpcfg3].pmp13cfg[4] == 1)) {
|
|
56
56
|
return CSR[pmpaddr13].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
57
57
|
|
|
58
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
58
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
59
59
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
60
|
-
} else if ((PMP_GRANULARITY >=
|
|
60
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
61
61
|
(CSR[pmpcfg3].pmp13cfg[4] == 0)) {
|
|
62
62
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
63
63
|
return CSR[pmpaddr13].ADDR & ~mask;
|
|
@@ -67,13 +67,13 @@ sw_read(): |
|
|
|
67
67
|
return CSR[pmpaddr13].ADDR;
|
|
68
68
|
}
|
|
69
69
|
} else {
|
|
70
|
-
if ((PMP_GRANULARITY >=
|
|
70
|
+
if ((PMP_GRANULARITY >= 4) &&
|
|
71
71
|
(CSR[pmpcfg2].pmp13cfg[4] == 1)) {
|
|
72
72
|
return CSR[pmpaddr13].ADDR | {PMP_GRANULARITY-3{1'b1}};
|
|
73
73
|
|
|
74
|
-
# when the mode is OFF or TOR and PMP_GRANULARITY >=
|
|
74
|
+
# when the mode is OFF or TOR and PMP_GRANULARITY >= 3,
|
|
75
75
|
# bits (PMP_GRANULARITY-3):0 must read as zeros
|
|
76
|
-
} else if ((PMP_GRANULARITY >=
|
|
76
|
+
} else if ((PMP_GRANULARITY >= 3) &&
|
|
77
77
|
(CSR[pmpcfg2].pmp13cfg[4] == 0)) {
|
|
78
78
|
Bits<PHYS_ADDR_WIDTH-2> mask = {PMP_GRANULARITY-2{1'b1}};
|
|
79
79
|
return CSR[pmpaddr13].ADDR & ~mask;
|