udb 0.1.16 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.data/cfgs/example_rv64_with_overlay.yaml +20 -0
- data/.data/cfgs/mc100-32-full-example.yaml +6 -0
- data/.data/cfgs/qc_iu.yaml +14 -0
- data/.data/cfgs/rv32-riscv-tests.yaml +9 -0
- data/.data/cfgs/rv32-vector.yaml +10 -1
- data/.data/cfgs/rv64-riscv-tests.yaml +9 -0
- data/.data/cfgs/rv64-vector.yaml +11 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mva01s.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mvsa01.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pop.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popret.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popretz.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.push.yaml +2 -2
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pushfp.yaml +2 -2
- data/.data/spec/schemas/README.adoc +4 -1
- data/.data/spec/schemas/csr_schema.json +2 -2
- data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
- data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
- data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
- data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
- data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
- data/.data/spec/std/isa/csr/H/hvip.yaml +46 -0
- data/.data/spec/std/isa/csr/H/vsie.yaml +86 -0
- data/.data/spec/std/isa/csr/H/vsip.yaml +98 -0
- data/.data/spec/std/isa/csr/H/vsscratch.yaml +29 -0
- data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +7 -7
- data/.data/spec/std/isa/csr/I/pmpaddrN.layout +7 -7
- data/.data/spec/std/isa/csr/Smcsrind/mireg.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg2.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg3.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg4.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg5.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/mireg6.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg2.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg3.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg4.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg5.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/sireg6.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg2.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg3.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg4.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg5.yaml +2 -2
- data/.data/spec/std/isa/csr/Smcsrind/vsireg6.yaml +2 -2
- data/.data/spec/std/isa/csr/Smctr/sctrctl.yaml +1 -1
- data/.data/spec/std/isa/csr/Smctr/sctrdepth.yaml +43 -0
- data/.data/spec/std/isa/csr/Smctr/sctrstatus.yaml +37 -0
- data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +3 -1
- data/.data/spec/std/isa/csr/Sstc/stimecmp.yaml +42 -0
- data/.data/spec/std/isa/csr/Sstc/stimecmph.yaml +43 -0
- data/.data/spec/std/isa/csr/Sstc/vstimecmp.yaml +45 -0
- data/.data/spec/std/isa/csr/Sstc/vstimecmph.yaml +46 -0
- data/.data/spec/std/isa/csr/V/vcsr.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vl.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vlenb.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vstart.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vtype.yaml +20 -1
- data/.data/spec/std/isa/csr/V/vxrm.yaml +1 -1
- data/.data/spec/std/isa/csr/V/vxsat.yaml +1 -1
- data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +1 -15
- data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +29 -267
- data/.data/spec/std/isa/csr/mideleg.yaml +57 -9
- data/.data/spec/std/isa/csr/mie.yaml +18 -9
- data/.data/spec/std/isa/csr/mip.yaml +21 -10
- data/.data/spec/std/isa/csr/misa.yaml +11 -7
- data/.data/spec/std/isa/csr/mstatus.yaml +2 -2
- data/.data/spec/std/isa/csr/schema.adoc +10 -4
- data/.data/spec/std/isa/csr/senvcfg.yaml +6 -12
- data/.data/spec/std/isa/csr/sstateen0.yaml +1 -1
- data/.data/spec/std/isa/csr/sstateen1.yaml +2 -3
- data/.data/spec/std/isa/csr/sstateen2.yaml +2 -3
- data/.data/spec/std/isa/csr/sstateen3.yaml +2 -3
- data/.data/spec/std/isa/csr/tcontrol.yaml +37 -0
- data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
- data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
- data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
- data/.data/spec/std/isa/ext/Ssstrict.yaml +2 -2
- data/.data/spec/std/isa/ext/Sv32.yaml +2 -2
- data/.data/spec/std/isa/ext/Svpbmt.yaml +2 -2
- data/.data/spec/std/isa/ext/Zaamo.yaml +1 -1
- data/.data/spec/std/isa/ext/Zbc.yaml +4 -0
- data/.data/spec/std/isa/ext/Zvfbfa.yaml +24 -0
- data/.data/spec/std/isa/ext/Zvfofp4min.yaml +21 -0
- data/.data/spec/std/isa/ext/Zvfofp8min.yaml +20 -0
- data/.data/spec/std/isa/inst/B/andn.yaml +0 -4
- data/.data/spec/std/isa/inst/B/orn.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rev8.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rol.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rolw.yaml +0 -4
- data/.data/spec/std/isa/inst/B/ror.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rori.yaml +0 -4
- data/.data/spec/std/isa/inst/B/roriw.yaml +0 -4
- data/.data/spec/std/isa/inst/B/rorw.yaml +0 -4
- data/.data/spec/std/isa/inst/B/xnor.yaml +0 -4
- data/.data/spec/std/isa/inst/C/c.addi.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.addi4spn.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.addiw.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.beqz.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.bnez.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.ebreak.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.j.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.jal.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.jalr.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.jr.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.ldsp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.li.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.lui.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.lw.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.lwsp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.mv.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.nop.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.sdsp.yaml +5 -5
- data/.data/spec/std/isa/inst/C/c.sw.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.swsp.yaml +2 -2
- data/.data/spec/std/isa/inst/I/ld.yaml +9 -4
- data/.data/spec/std/isa/inst/I/sd.yaml +9 -4
- data/.data/spec/std/isa/inst/I/wfi.yaml +1 -1
- data/.data/spec/std/isa/inst/M/div.yaml +2 -2
- data/.data/spec/std/isa/inst/M/divu.yaml +2 -2
- data/.data/spec/std/isa/inst/M/divuw.yaml +2 -2
- data/.data/spec/std/isa/inst/M/divw.yaml +2 -2
- data/.data/spec/std/isa/inst/M/mul.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulh.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulhsu.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulhu.yaml +0 -4
- data/.data/spec/std/isa/inst/M/mulw.yaml +0 -4
- data/.data/spec/std/isa/inst/M/rem.yaml +2 -2
- data/.data/spec/std/isa/inst/M/remu.yaml +2 -2
- data/.data/spec/std/isa/inst/M/remuw.yaml +2 -2
- data/.data/spec/std/isa/inst/M/remw.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfclass.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmax.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmax.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmerge.vfm.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmin.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmin.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmul.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmul.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmv.f.s.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmv.s.f.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfmv.v.f.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfnmsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfrec7.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfrsqrt7.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfrsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnj.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnj.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjn.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjx.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfslide1down.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfslide1up.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.wf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwadd.wv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwcvt.f.f.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwcvt.f.x.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwcvt.f.xu.v.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmul.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwmul.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmacc.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmacc.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmsac.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwnmsac.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.wf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vfwsub.wv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfeq.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfeq.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfge.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfgt.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfle.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmflt.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfne.vf.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vmfne.vv.yaml +3 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +0 -4
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -5
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -5
- data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +0 -6
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +1 -11
- data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +4 -10
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +4 -10
- data/.data/spec/std/isa/inst/Zba/add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh1add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh1add.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh2add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh2add.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh3add.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/sh3add.yaml +0 -4
- data/.data/spec/std/isa/inst/Zba/slli.uw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/clz.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/clzw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/cpop.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/cpopw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/ctz.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/max.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/maxu.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/min.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/minu.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/sext.b.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/sext.h.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbb/zext.h.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbc/clmulr.yaml +0 -4
- data/.data/spec/std/isa/inst/{B → Zbkc}/clmul.yaml +1 -7
- data/.data/spec/std/isa/inst/{B → Zbkc}/clmulh.yaml +1 -7
- data/.data/spec/std/isa/inst/Zbs/bclr.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bclri.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bext.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bexti.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/binv.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/binvi.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bset.yaml +0 -4
- data/.data/spec/std/isa/inst/Zbs/bseti.yaml +0 -4
- data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.not.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.sext.b.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.sext.h.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.zext.h.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +2 -6
- data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +3 -3
- data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +4 -4
- data/.data/spec/std/isa/inst/Zcmp/cm.mva01s.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.mvsa01.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicbom/cbo.clean.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicbom/cbo.flush.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
- data/.data/spec/std/isa/inst/Zvfbfmin/vfncvtbf16.f.f.w.yaml +3 -1
- data/.data/spec/std/isa/inst/Zvfbfmin/vfwcvtbf16.f.f.v.yaml +3 -1
- data/.data/spec/std/isa/inst/Zvfofp4min/vfext.vf2.yaml +35 -0
- data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.f.f.q.yaml +31 -0
- data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.sat.f.f.q.yaml +32 -0
- data/.data/spec/std/isa/inst/Zvfofp8min/vfncvtbf16.sat.f.f.w.yaml +32 -0
- data/.data/spec/std/isa/isa/builtin_functions.idl +3 -1
- data/.data/spec/std/isa/isa/util.idl +1 -0
- data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +2 -10
- data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +2 -5
- data/.data/spec/std/isa/param/HPM_COUNTER10_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER11_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER12_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER13_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER14_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER15_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER16_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER17_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER18_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER19_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER20_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER21_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER22_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER23_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER24_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER25_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER26_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER27_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER28_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER29_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER30_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER31_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER3_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER4_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER5_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER6_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER7_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER8_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTER9_WIDTH.yaml +29 -0
- data/.data/spec/std/isa/param/HPM_COUNTERN_WIDTH.layout +27 -0
- data/.data/spec/std/isa/param/HW_MSTATUS_FS_DIRTY_UPDATE.yaml +2 -4
- data/.data/spec/std/isa/param/HW_MSTATUS_VS_DIRTY_UPDATE.yaml +2 -4
- data/.data/spec/std/isa/param/LRSC_FAIL_ON_NON_EXACT_LRSC.yaml +1 -1
- data/.data/spec/std/isa/param/LRSC_FAIL_ON_VA_SYNONYM.yaml +1 -1
- data/.data/spec/std/isa/param/LRSC_MISALIGNED_BEHAVIOR.yaml +4 -4
- data/.data/spec/std/isa/param/LRSC_RESERVATION_STRATEGY.yaml +1 -1
- data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +2 -5
- data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/MSTATUS_FS_LEGAL_VALUES.yaml +8 -15
- data/.data/spec/std/isa/param/MSTATUS_VS_LEGAL_VALUES.yaml +7 -15
- data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/MTVAL_WIDTH.yaml +17 -5
- data/.data/spec/std/isa/param/MUTABLE_MISA_A.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_B.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_C.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_D.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_F.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_M.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_Q.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_U.yaml +1 -1
- data/.data/spec/std/isa/param/MUTABLE_MISA_V.yaml +1 -1
- data/.data/spec/std/isa/param/{PMLEN.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +6 -9
- data/.data/spec/std/isa/param/NUM_EXTERNAL_GUEST_INTERRUPTS.yaml +1 -1
- data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +1 -1
- data/.data/spec/std/isa/param/REPORT_CAUSE_IN_MTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
- data/.data/spec/std/isa/param/REPORT_CAUSE_IN_STVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
- data/.data/spec/std/isa/param/REPORT_CAUSE_IN_VSTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
- data/.data/spec/std/isa/param/SCOUNTENABLE_EN.yaml +2 -6
- data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
- data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +33 -0
- data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +81 -0
- data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMMPM.yaml +40 -0
- data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMNPM.yaml +42 -0
- data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SSNPM.yaml +42 -0
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_S.yaml +1 -1
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_U.yaml +1 -1
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_VS.yaml +1 -1
- data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -1
- data/.data/spec/std/isa/param/VSEI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/VSSI_INTR_IMPL.yaml +28 -0
- data/.data/spec/std/isa/param/VSTI_INTR_IMPL.yaml +33 -0
- data/.data/spec/std/isa/param/WFI_FINITE.yaml +20 -0
- data/.data/spec/std/isa/param/WFI_U_MODE.yaml +20 -0
- data/lib/udb/Z3_VERSION +1 -1
- data/lib/udb/log.rb +16 -0
- data/lib/udb/obj/csr.rb +38 -45
- data/lib/udb/obj/database_obj.rb +1 -1
- data/lib/udb/obj/exception_code.rb +3 -3
- data/lib/udb/version.rb +1 -1
- metadata +79 -10
|
@@ -76,12 +76,6 @@ access:
|
|
|
76
76
|
vs: always
|
|
77
77
|
vu: always
|
|
78
78
|
operation(): |
|
|
79
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
80
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
81
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
82
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
79
|
XReg virtual_address = X[xs1];
|
|
86
80
|
|
|
87
81
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
@@ -103,8 +97,4 @@ operation(): |
|
|
|
103
97
|
}
|
|
104
98
|
|
|
105
99
|
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
|
-
|
|
107
|
-
X[xd] = load_value;
|
|
108
|
-
} else {
|
|
109
|
-
X[xd] = sext(load_value[31:0], 32);
|
|
110
|
-
}
|
|
100
|
+
X[xd] = sext(load_value[31:0], 32);
|
|
@@ -76,12 +76,6 @@ access:
|
|
|
76
76
|
vs: always
|
|
77
77
|
vu: always
|
|
78
78
|
operation(): |
|
|
79
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
80
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
81
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
82
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
79
|
XReg virtual_address = X[xs1];
|
|
86
80
|
|
|
87
81
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
@@ -103,8 +97,4 @@ operation(): |
|
|
|
103
97
|
}
|
|
104
98
|
|
|
105
99
|
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
|
-
|
|
107
|
-
X[xd] = load_value;
|
|
108
|
-
} else {
|
|
109
|
-
X[xd] = sext(load_value[31:0], 32);
|
|
110
|
-
}
|
|
100
|
+
X[xd] = sext(load_value[31:0], 32);
|
|
@@ -76,12 +76,6 @@ access:
|
|
|
76
76
|
vs: always
|
|
77
77
|
vu: always
|
|
78
78
|
operation(): |
|
|
79
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
80
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
81
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
82
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
79
|
XReg virtual_address = X[xs1];
|
|
86
80
|
|
|
87
81
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
@@ -103,8 +97,4 @@ operation(): |
|
|
|
103
97
|
}
|
|
104
98
|
|
|
105
99
|
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
|
-
|
|
107
|
-
X[xd] = load_value;
|
|
108
|
-
} else {
|
|
109
|
-
X[xd] = sext(load_value[31:0], 32);
|
|
110
|
-
}
|
|
100
|
+
X[xd] = sext(load_value[31:0], 32);
|
|
@@ -76,12 +76,6 @@ access:
|
|
|
76
76
|
vs: always
|
|
77
77
|
vu: always
|
|
78
78
|
operation(): |
|
|
79
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
80
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
81
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
82
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
79
|
XReg virtual_address = X[xs1];
|
|
86
80
|
|
|
87
81
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
@@ -103,8 +97,4 @@ operation(): |
|
|
|
103
97
|
}
|
|
104
98
|
|
|
105
99
|
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
|
-
|
|
107
|
-
X[xd] = load_value;
|
|
108
|
-
} else {
|
|
109
|
-
X[xd] = sext(load_value[31:0], 32);
|
|
110
|
-
}
|
|
100
|
+
X[xd] = sext(load_value[31:0], 32);
|
|
@@ -175,17 +175,11 @@ access:
|
|
|
175
175
|
vs: always
|
|
176
176
|
vu: always
|
|
177
177
|
operation(): |
|
|
178
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
179
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
180
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
181
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
178
|
XReg virtual_address = X[xs1];
|
|
185
179
|
XReg value = X[xs2];
|
|
186
180
|
|
|
187
181
|
if (!is_naturally_aligned(<%= current_size[:align_bits] %>, virtual_address)) {
|
|
188
|
-
# can raise either
|
|
182
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
189
183
|
#
|
|
190
184
|
# from the spec:
|
|
191
185
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -194,11 +188,11 @@ operation(): |
|
|
|
194
188
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
195
189
|
|
|
196
190
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
197
|
-
raise(ExceptionCode::
|
|
191
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
198
192
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
199
|
-
raise(ExceptionCode::
|
|
193
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
200
194
|
} else {
|
|
201
|
-
unpredictable("Implementations may raise either a
|
|
195
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
202
196
|
}
|
|
203
197
|
}
|
|
204
198
|
|
|
@@ -132,17 +132,11 @@ access:
|
|
|
132
132
|
vs: always
|
|
133
133
|
vu: always
|
|
134
134
|
operation(): |
|
|
135
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
136
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
137
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
138
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
135
|
XReg virtual_address = X[xs1];
|
|
142
136
|
XReg value = X[xs2];
|
|
143
137
|
|
|
144
138
|
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
|
-
# can raise either
|
|
139
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
146
140
|
#
|
|
147
141
|
# from the spec:
|
|
148
142
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -151,11 +145,11 @@ operation(): |
|
|
|
151
145
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
152
146
|
|
|
153
147
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
154
|
-
raise(ExceptionCode::
|
|
148
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
155
149
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else {
|
|
158
|
-
unpredictable("Implementations may raise either a
|
|
152
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
159
153
|
}
|
|
160
154
|
}
|
|
161
155
|
|
|
@@ -132,17 +132,11 @@ access:
|
|
|
132
132
|
vs: always
|
|
133
133
|
vu: always
|
|
134
134
|
operation(): |
|
|
135
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
136
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
137
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
138
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
135
|
XReg virtual_address = X[xs1];
|
|
142
136
|
XReg value = X[xs2];
|
|
143
137
|
|
|
144
138
|
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
|
-
# can raise either
|
|
139
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
146
140
|
#
|
|
147
141
|
# from the spec:
|
|
148
142
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -151,11 +145,11 @@ operation(): |
|
|
|
151
145
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
152
146
|
|
|
153
147
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
154
|
-
raise(ExceptionCode::
|
|
148
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
155
149
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else {
|
|
158
|
-
unpredictable("Implementations may raise either a
|
|
152
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
159
153
|
}
|
|
160
154
|
}
|
|
161
155
|
|
|
@@ -132,17 +132,11 @@ access:
|
|
|
132
132
|
vs: always
|
|
133
133
|
vu: always
|
|
134
134
|
operation(): |
|
|
135
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
136
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
137
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
138
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
135
|
XReg virtual_address = X[xs1];
|
|
142
136
|
XReg value = X[xs2];
|
|
143
137
|
|
|
144
138
|
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
|
-
# can raise either
|
|
139
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
146
140
|
#
|
|
147
141
|
# from the spec:
|
|
148
142
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -151,11 +145,11 @@ operation(): |
|
|
|
151
145
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
152
146
|
|
|
153
147
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
154
|
-
raise(ExceptionCode::
|
|
148
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
155
149
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else {
|
|
158
|
-
unpredictable("Implementations may raise either a
|
|
152
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
159
153
|
}
|
|
160
154
|
}
|
|
161
155
|
|
|
@@ -132,17 +132,11 @@ access:
|
|
|
132
132
|
vs: always
|
|
133
133
|
vu: always
|
|
134
134
|
operation(): |
|
|
135
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
136
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
137
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
138
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
135
|
XReg virtual_address = X[xs1];
|
|
142
136
|
XReg value = X[xs2];
|
|
143
137
|
|
|
144
138
|
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
|
-
# can raise either
|
|
139
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
146
140
|
#
|
|
147
141
|
# from the spec:
|
|
148
142
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -151,11 +145,11 @@ operation(): |
|
|
|
151
145
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
152
146
|
|
|
153
147
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
154
|
-
raise(ExceptionCode::
|
|
148
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
155
149
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else {
|
|
158
|
-
unpredictable("Implementations may raise either a
|
|
152
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
159
153
|
}
|
|
160
154
|
}
|
|
161
155
|
|
|
@@ -134,17 +134,11 @@ access:
|
|
|
134
134
|
vs: always
|
|
135
135
|
vu: always
|
|
136
136
|
operation(): |
|
|
137
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
138
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
139
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
140
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
137
|
XReg virtual_address = X[xs1];
|
|
144
138
|
XReg value = X[xs2];
|
|
145
139
|
|
|
146
140
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
147
|
-
# can raise either
|
|
141
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
148
142
|
#
|
|
149
143
|
# from the spec:
|
|
150
144
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -153,11 +147,11 @@ operation(): |
|
|
|
153
147
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
154
148
|
|
|
155
149
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
158
|
-
raise(ExceptionCode::
|
|
152
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
159
153
|
} else {
|
|
160
|
-
unpredictable("Implementations may raise either a
|
|
154
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
161
155
|
}
|
|
162
156
|
}
|
|
163
157
|
|
|
@@ -134,17 +134,11 @@ access:
|
|
|
134
134
|
vs: always
|
|
135
135
|
vu: always
|
|
136
136
|
operation(): |
|
|
137
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
138
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
139
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
140
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
137
|
XReg virtual_address = X[xs1];
|
|
144
138
|
XReg value = X[xs2];
|
|
145
139
|
|
|
146
140
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
147
|
-
# can raise either
|
|
141
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
148
142
|
#
|
|
149
143
|
# from the spec:
|
|
150
144
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -153,11 +147,11 @@ operation(): |
|
|
|
153
147
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
154
148
|
|
|
155
149
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
158
|
-
raise(ExceptionCode::
|
|
152
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
159
153
|
} else {
|
|
160
|
-
unpredictable("Implementations may raise either a
|
|
154
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
161
155
|
}
|
|
162
156
|
}
|
|
163
157
|
|
|
@@ -134,17 +134,11 @@ access:
|
|
|
134
134
|
vs: always
|
|
135
135
|
vu: always
|
|
136
136
|
operation(): |
|
|
137
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
138
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
139
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
140
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
137
|
XReg virtual_address = X[xs1];
|
|
144
138
|
XReg value = X[xs2];
|
|
145
139
|
|
|
146
140
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
147
|
-
# can raise either
|
|
141
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
148
142
|
#
|
|
149
143
|
# from the spec:
|
|
150
144
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -153,11 +147,11 @@ operation(): |
|
|
|
153
147
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
154
148
|
|
|
155
149
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
158
|
-
raise(ExceptionCode::
|
|
152
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
159
153
|
} else {
|
|
160
|
-
unpredictable("Implementations may raise either a
|
|
154
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
161
155
|
}
|
|
162
156
|
}
|
|
163
157
|
|
|
@@ -134,17 +134,11 @@ access:
|
|
|
134
134
|
vs: always
|
|
135
135
|
vu: always
|
|
136
136
|
operation(): |
|
|
137
|
-
if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
|
|
138
|
-
# even though this is a memory operation, the exception occurs before that would be known,
|
|
139
|
-
# so mode() is the correct reporting mode rathat than effective_ldst_mode()
|
|
140
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
137
|
XReg virtual_address = X[xs1];
|
|
144
138
|
XReg value = X[xs2];
|
|
145
139
|
|
|
146
140
|
if (!is_naturally_aligned(32, virtual_address)) {
|
|
147
|
-
# can raise either
|
|
141
|
+
# can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
|
|
148
142
|
#
|
|
149
143
|
# from the spec:
|
|
150
144
|
# If the address is not naturally aligned, an address-misaligned exception or
|
|
@@ -153,11 +147,11 @@ operation(): |
|
|
|
153
147
|
# for the misalignment, if the misaligned access should not be emulated.
|
|
154
148
|
|
|
155
149
|
if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
|
|
156
|
-
raise(ExceptionCode::
|
|
150
|
+
raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
|
|
157
151
|
} else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
|
|
158
|
-
raise(ExceptionCode::
|
|
152
|
+
raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
|
|
159
153
|
} else {
|
|
160
|
-
unpredictable("Implementations may raise either a
|
|
154
|
+
unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
|
|
161
155
|
}
|
|
162
156
|
}
|
|
163
157
|
|
|
@@ -30,10 +30,6 @@ access:
|
|
|
30
30
|
vs: always
|
|
31
31
|
vu: always
|
|
32
32
|
operation(): |
|
|
33
|
-
if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
|
|
34
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
33
|
if (xlen() == 32) {
|
|
38
34
|
X[xd] = lowest_set_bit(X[xs1][31:0]);
|
|
39
35
|
} else {
|
|
@@ -32,10 +32,6 @@ access:
|
|
|
32
32
|
vs: always
|
|
33
33
|
vu: always
|
|
34
34
|
operation(): |
|
|
35
|
-
if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
|
|
36
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
35
|
# lowest_set_bit() reports xlen() (64 here) for a zero input, but ctzw must report 32
|
|
40
36
|
if (X[xs1][31:0] == 0) {
|
|
41
37
|
X[xd] = 32;
|
|
@@ -27,10 +27,6 @@ access:
|
|
|
27
27
|
vs: always
|
|
28
28
|
vu: always
|
|
29
29
|
operation(): |
|
|
30
|
-
if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
|
|
31
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
30
|
if (xlen() == 32) {
|
|
35
31
|
X[xd] = {{24{X[xs1][7]}}, X[xs1][7:0]};
|
|
36
32
|
} else if (xlen() == 64) {
|
|
@@ -27,10 +27,6 @@ access:
|
|
|
27
27
|
vs: always
|
|
28
28
|
vu: always
|
|
29
29
|
operation(): |
|
|
30
|
-
if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
|
|
31
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
30
|
if (xlen() == 32) {
|
|
35
31
|
X[xd] = {{16{X[xs1][15]}}, X[xs1][15:0]};
|
|
36
32
|
} else if (xlen() == 64) {
|
|
@@ -28,10 +28,6 @@ encoding:
|
|
|
28
28
|
- name: xd
|
|
29
29
|
location: 11-7
|
|
30
30
|
operation(): |
|
|
31
|
-
if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
|
|
32
|
-
raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
31
|
XReg xs1_val = X[xs1];
|
|
36
32
|
XReg xs2_val = X[xs2];
|
|
37
33
|
XReg output = 0;
|