udb 0.1.17 → 0.1.18
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 +140 -5
- data/.data/cfgs/profile/RVA23S64.yaml +1 -1
- data/.data/cfgs/profile/RVA23p1S64.yaml +217 -0
- data/.data/cfgs/profile/RVB23S64.yaml +1 -1
- data/.data/cfgs/profile/RVB23p1S64.yaml +179 -0
- data/.data/cfgs/rv32-riscv-tests.yaml +134 -0
- data/.data/cfgs/rv32-vector.yaml +134 -0
- data/.data/cfgs/rv64-riscv-tests.yaml +134 -0
- data/.data/cfgs/rv64-vector.yaml +134 -0
- data/.data/spec/schemas/schema_defs.json +4 -1
- data/.data/spec/std/isa/csr/I/mcounteren.layout +7 -0
- data/.data/spec/std/isa/csr/I/mcounteren.yaml +7 -0
- data/.data/spec/std/isa/csr/Smcdeleg/scountinhibit.layout +111 -0
- data/.data/spec/std/isa/csr/Smcdeleg/scountinhibit.yaml +840 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfg.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfgh.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfg.yaml +2 -0
- data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfgh.yaml +2 -0
- data/.data/spec/std/isa/csr/Sscofpmf/scountovf.layout +7 -0
- data/.data/spec/std/isa/csr/Sscofpmf/scountovf.yaml +7 -0
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9h.yaml +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounterN.layout +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmcounterNh.layout +2 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent10.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent10h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent11.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent11h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent12.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent12h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent13.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent13h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent14.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent14h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent15.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent15h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent16.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent16h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent17.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent17h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent18.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent18h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent19.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent19h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent20.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent20h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent21.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent21h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent22.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent22h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent23.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent23h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent24.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent24h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent25.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent25h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent26.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent26h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent27.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent27h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent28.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent28h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent29.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent29h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent3.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent30.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent30h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent31.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent31h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent3h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent4.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent4h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent5.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent5h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent6.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent6h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent7.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent7h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent8.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent8h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent9.yaml +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmevent9h.yaml +4 -4
- data/.data/spec/std/isa/csr/Zihpm/mhpmeventN.layout +4 -7
- data/.data/spec/std/isa/csr/Zihpm/mhpmeventNh.layout +4 -4
- data/.data/spec/std/isa/csr/Zkr/seed.yaml +75 -0
- data/.data/spec/std/isa/csr/hcontext.yaml +4 -4
- data/.data/spec/std/isa/csr/mcontext.yaml +4 -4
- data/.data/spec/std/isa/csr/mcycle.yaml +2 -0
- data/.data/spec/std/isa/csr/mcycleh.yaml +2 -0
- data/.data/spec/std/isa/csr/medeleg.yaml +72 -36
- data/.data/spec/std/isa/csr/menvcfg.yaml +12 -1
- data/.data/spec/std/isa/csr/menvcfgh.yaml +12 -0
- data/.data/spec/std/isa/csr/mideleg.yaml +13 -36
- data/.data/spec/std/isa/csr/mie.yaml +3 -6
- data/.data/spec/std/isa/csr/minstret.yaml +2 -0
- data/.data/spec/std/isa/csr/minstreth.yaml +2 -0
- data/.data/spec/std/isa/csr/mip.yaml +3 -6
- data/.data/spec/std/isa/csr/misa.yaml +3 -23
- data/.data/spec/std/isa/csr/mseccfg.yaml +27 -1
- data/.data/spec/std/isa/csr/mstatus.yaml +8 -2
- data/.data/spec/std/isa/csr/scontext.yaml +8 -4
- data/.data/spec/std/isa/csr/tcontrol.yaml +6 -2
- data/.data/spec/std/isa/csr/tdata2.yaml +6 -2
- data/.data/spec/std/isa/csr/tdata3.yaml +6 -2
- data/.data/spec/std/isa/ext/Sdext.yaml +58 -2
- data/.data/spec/std/isa/ext/Sm.yaml +2 -2
- data/.data/spec/std/isa/ext/Smcdeleg.yaml +7 -0
- data/.data/spec/std/isa/ext/Smmpm.yaml +8 -0
- data/.data/spec/std/isa/ext/Smnpm.yaml +19 -0
- data/.data/spec/std/isa/ext/Smpmpdeleg.yaml +33 -0
- data/.data/spec/std/isa/ext/Ssccfg.yaml +7 -0
- data/.data/spec/std/isa/ext/Ssnpm.yaml +8 -0
- data/.data/spec/std/isa/ext/Sspmp.yaml +44 -0
- data/.data/spec/std/isa/ext/Sspmpen.yaml +30 -0
- data/.data/spec/std/isa/ext/Zvabd.yaml +5 -1
- data/.data/spec/std/isa/ext/Zvfbdota32f.yaml +23 -0
- data/.data/spec/std/isa/ext/Zvzip.yaml +24 -0
- data/.data/spec/std/isa/inst/C/c.bnez.yaml +2 -2
- data/.data/spec/std/isa/inst/H/hlv.b.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.bu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.d.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.h.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.hu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.w.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlv.wu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlvx.hu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hlvx.wu.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.b.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.d.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.h.yaml +1 -1
- data/.data/spec/std/isa/inst/H/hsv.w.yaml +1 -1
- data/.data/spec/std/isa/inst/I/ld.yaml +9 -8
- data/.data/spec/std/isa/inst/I/sd.yaml +9 -8
- data/.data/spec/std/isa/inst/Q/fcvt.q.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Q/flq.yaml +1 -1
- data/.data/spec/std/isa/inst/Sdext/dret.yaml +72 -6
- data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.f.x.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.f.xu.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclip.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclip.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclip.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclipu.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclipu.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnclipu.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsra.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsra.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsra.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsrl.wi.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsrl.wv.yaml +2 -2
- data/.data/spec/std/isa/inst/V/vnsrl.wx.yaml +2 -2
- data/.data/spec/std/isa/inst/Zfh/fcvt.h.s.yaml +28 -20
- data/.data/spec/std/isa/inst/Zfh/fcvt.s.h.yaml +35 -20
- data/.data/spec/std/isa/inst/Zvabd/vabd.vv.yaml +3 -3
- data/.data/spec/std/isa/inst/Zvabd/vabd.vx.yaml +69 -0
- data/.data/spec/std/isa/inst/Zvabd/vabdu.vv.yaml +3 -3
- data/.data/spec/std/isa/inst/Zvabd/{vabs.v.yaml → vabdu.vx.yaml} +17 -11
- data/.data/spec/std/isa/inst/Zvabd/vwabda.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/Zvabd/vwabda.vx.yaml +73 -0
- data/.data/spec/std/isa/inst/Zvabd/vwabdau.vv.yaml +1 -1
- data/.data/spec/std/isa/inst/Zvabd/vwabdau.vx.yaml +74 -0
- data/.data/spec/std/isa/inst/Zvfbdota32f/vfbdota.vv.yaml +68 -0
- data/.data/spec/std/isa/inst/Zvzip/vpaire.vv.yaml +36 -0
- data/.data/spec/std/isa/inst/Zvzip/vpairo.vv.yaml +37 -0
- data/.data/spec/std/isa/inst/Zvzip/vunzipe.v.yaml +33 -0
- data/.data/spec/std/isa/inst/Zvzip/vunzipo.v.yaml +33 -0
- data/.data/spec/std/isa/inst/Zvzip/vzip.vv.yaml +37 -0
- data/.data/spec/std/isa/isa/builtin_functions.idl +51 -0
- data/.data/spec/std/isa/isa/globals.isa +117 -5
- data/.data/spec/std/isa/param/HCONTEXT_IMPLEMENTED.yaml +29 -0
- data/.data/spec/std/isa/param/{MCONTEXT_AVAILABLE.yaml → MCONTEXT_IMPLEMENTED.yaml} +3 -3
- data/.data/spec/std/isa/param/MEDELEG_DELEGATABLE.yaml +121 -0
- data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +1 -1
- data/.data/spec/std/isa/param/MIDELEG_DELEGATABLE.yaml +177 -0
- data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +1 -1
- data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +1 -1
- data/.data/spec/std/isa/param/SCONTEXT_IMPLEMENTED.yaml +18 -0
- data/.data/spec/std/isa/param/SDTRIG_BREAKPOINT_REENTRANCY.yaml +45 -0
- data/.data/spec/std/isa/param/SDTRIG_ETRIGGER_SUPPORTED_EXCEPTIONS.yaml +37 -0
- data/.data/spec/std/isa/param/SDTRIG_ETRIGGER_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_ICOUNT_COUNT_HARDWIRED_1.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_ICOUNT_SELF_WRITE_SETS_PENDING.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_ICOUNT_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_ITRIGGER_SUPPORTED_INTERRUPTS.yaml +37 -0
- data/.data/spec/std/isa/param/SDTRIG_ITRIGGER_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_MAX_CHAIN_LENGTH.yaml +33 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_EXECUTE_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_LOAD_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_MASKMAX6.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_MATCH_LEGAL_VALUES.yaml +41 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SELECT_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SIZE_LEGAL_VALUES.yaml +38 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_STORE_WRITABLE.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SUPPORTED_TRIGGERS.yaml +25 -0
- data/.data/spec/std/isa/param/SDTRIG_M_WRITABLE.yaml +17 -0
- data/.data/spec/std/isa/param/SDTRIG_NUM_TRIGGERS.yaml +22 -0
- data/.data/spec/std/isa/param/SDTRIG_S_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHSELECT_MCONTEXT_MATCH.yaml +24 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHSELECT_VMID_MATCH.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHVALUE_LEN.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SSELECT_ASID_MATCH.yaml +23 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SSELECT_SCONTEXT_MATCH.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SVALUE_LEN.yaml +26 -0
- data/.data/spec/std/isa/param/SDTRIG_U_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SDTRIG_VS_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SDTRIG_VU_WRITABLE.yaml +19 -0
- data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +1 -1
- data/.data/spec/std/isa/param/SSEED_READ_ONLY_ZERO.yaml +28 -0
- data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +1 -1
- data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +1 -1
- data/.data/spec/std/isa/param/TCONTROL_IMPLEMENTED.yaml +16 -0
- data/.data/spec/std/isa/param/TDATA2_IMPLEMENTED.yaml +26 -0
- data/.data/spec/std/isa/param/TDATA3_IMPLEMENTED.yaml +29 -0
- data/.data/spec/std/isa/param/USEED_READ_ONLY_ZERO.yaml +28 -0
- data/.data/spec/std/isa/profile/RVA23p1S64.yaml +37 -0
- data/.data/spec/std/isa/profile/RVB23p1S64.yaml +39 -0
- data/.data/spec/std/isa/profile_family/RVA.yaml +3 -1
- data/.data/spec/std/isa/profile_family/RVB.yaml +3 -1
- data/.data/spec/std/isa/profile_release/RVA23p1.yaml +30 -0
- data/.data/spec/std/isa/profile_release/RVB23p1.yaml +30 -0
- data/lib/udb/version.rb +1 -1
- metadata +65 -8
- data/.data/spec/std/isa/param/HCONTEXT_AVAILABLE.yaml +0 -19
- data/.data/spec/std/isa/param/VSEI_INTR_IMPL.yaml +0 -28
- data/.data/spec/std/isa/param/VSSI_INTR_IMPL.yaml +0 -28
- data/.data/spec/std/isa/param/VSTI_INTR_IMPL.yaml +0 -33
|
@@ -215,8 +215,7 @@ fields:
|
|
|
215
215
|
* `hip.VSSIP`
|
|
216
216
|
* `hvip.VSSIP`
|
|
217
217
|
* `vsip.SSIP` when `hideleg.VSSI` is set
|
|
218
|
-
type
|
|
219
|
-
return VSSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
|
|
218
|
+
type: RW
|
|
220
219
|
reset_value: 0
|
|
221
220
|
definedBy:
|
|
222
221
|
extension:
|
|
@@ -304,8 +303,7 @@ fields:
|
|
|
304
303
|
* `hip.VSTIP`
|
|
305
304
|
* `vsip.STIP` when `hideleg.VSTI` is set
|
|
306
305
|
* `hvip.VSTIP` <% if ext?(:Sstc) %>when `menvcfg.STCE` is clear<% end %> (though `hvip.VSTIP` is writable)
|
|
307
|
-
type
|
|
308
|
-
return VSTI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
306
|
+
type: RO-H
|
|
309
307
|
reset_value: 0
|
|
310
308
|
definedBy:
|
|
311
309
|
extension:
|
|
@@ -372,8 +370,7 @@ fields:
|
|
|
372
370
|
|
|
373
371
|
* `hip.VSEIP`
|
|
374
372
|
* `vsip.SEIP` when `hideleg.VSEI` is set
|
|
375
|
-
type
|
|
376
|
-
return VSEI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
|
|
373
|
+
type: RO-H
|
|
377
374
|
reset_value: 0
|
|
378
375
|
definedBy:
|
|
379
376
|
extension:
|
|
@@ -103,25 +103,6 @@ fields:
|
|
|
103
103
|
|
|
104
104
|
# fall-through; write the intended value
|
|
105
105
|
return csr_value.F;
|
|
106
|
-
G:
|
|
107
|
-
location: 6
|
|
108
|
-
description: |
|
|
109
|
-
Indicates support for all of the following extensions: `I`, `A`, `M`, `F`, `D`.
|
|
110
|
-
type(): |
|
|
111
|
-
if ((implemented?(ExtensionName::A) && MUTABLE_MISA_A) ||
|
|
112
|
-
(implemented?(ExtensionName::M) && MUTABLE_MISA_M) ||
|
|
113
|
-
(implemented?(ExtensionName::F) && MUTABLE_MISA_F) ||
|
|
114
|
-
(implemented?(ExtensionName::D) && MUTABLE_MISA_D)) {
|
|
115
|
-
return CsrFieldType::ROH;
|
|
116
|
-
} else {
|
|
117
|
-
return CsrFieldType::RO;
|
|
118
|
-
}
|
|
119
|
-
reset_value(): |
|
|
120
|
-
return (
|
|
121
|
-
implemented?(ExtensionName::A) &&
|
|
122
|
-
implemented?(ExtensionName::M) &&
|
|
123
|
-
implemented?(ExtensionName::F) &&
|
|
124
|
-
implemented?(ExtensionName::D)) ? 1 : 0;
|
|
125
106
|
H:
|
|
126
107
|
location: 7
|
|
127
108
|
description: |
|
|
@@ -241,10 +222,9 @@ sw_read(): |
|
|
|
241
222
|
(CSR[misa].S `<< 18) |
|
|
242
223
|
(CSR[misa].Q `<< 16) |
|
|
243
224
|
(CSR[misa].M `<< 12) |
|
|
244
|
-
(CSR[misa].I `<<
|
|
245
|
-
(CSR[misa].H `<<
|
|
246
|
-
(
|
|
247
|
-
(CSR[misa].F `<< 4) |
|
|
225
|
+
(CSR[misa].I `<< 8) |
|
|
226
|
+
(CSR[misa].H `<< 7) |
|
|
227
|
+
(CSR[misa].F `<< 5) |
|
|
248
228
|
(CSR[misa].D `<< 3) |
|
|
249
229
|
(CSR[misa].C `<< 2) |
|
|
250
230
|
(CSR[misa].B `<< 1) |
|
|
@@ -22,4 +22,30 @@ definedBy:
|
|
|
22
22
|
- name: Smmpm
|
|
23
23
|
- name: Zicfilp
|
|
24
24
|
- name: Smepmp
|
|
25
|
-
fields:
|
|
25
|
+
fields:
|
|
26
|
+
USEED:
|
|
27
|
+
location: 8
|
|
28
|
+
description: |
|
|
29
|
+
Controls access to the `seed` CSR from U-mode.
|
|
30
|
+
definedBy:
|
|
31
|
+
extension:
|
|
32
|
+
allOf:
|
|
33
|
+
- name: Zkr
|
|
34
|
+
- name: U
|
|
35
|
+
type(): |
|
|
36
|
+
return USEED_READ_ONLY_ZERO ? CsrFieldType::RO : CsrFieldType::RW;
|
|
37
|
+
reset_value(): |
|
|
38
|
+
return USEED_READ_ONLY_ZERO ? 0 : UNDEFINED_LEGAL;
|
|
39
|
+
SSEED:
|
|
40
|
+
location: 9
|
|
41
|
+
description: |
|
|
42
|
+
Controls access to the `seed` CSR from S-mode and VS-mode.
|
|
43
|
+
definedBy:
|
|
44
|
+
extension:
|
|
45
|
+
allOf:
|
|
46
|
+
- name: Zkr
|
|
47
|
+
- name: S
|
|
48
|
+
type(): |
|
|
49
|
+
return SSEED_READ_ONLY_ZERO ? CsrFieldType::RO : CsrFieldType::RW;
|
|
50
|
+
reset_value(): |
|
|
51
|
+
return SSEED_READ_ONLY_ZERO ? 0 : UNDEFINED_LEGAL;
|
|
@@ -607,7 +607,10 @@ fields:
|
|
|
607
607
|
extension:
|
|
608
608
|
name: S
|
|
609
609
|
reset_value(): |
|
|
610
|
-
|
|
610
|
+
if (CSR[misa].S == 1'b1) {
|
|
611
|
+
return UNDEFINED_LEGAL;
|
|
612
|
+
}
|
|
613
|
+
return 0;
|
|
611
614
|
MIE:
|
|
612
615
|
location: 3
|
|
613
616
|
long_name: M-mode Interrupt Enable
|
|
@@ -644,4 +647,7 @@ fields:
|
|
|
644
647
|
extension:
|
|
645
648
|
name: S
|
|
646
649
|
reset_value(): |
|
|
647
|
-
|
|
650
|
+
if (CSR[misa].S == 1'b1) {
|
|
651
|
+
return UNDEFINED_LEGAL;
|
|
652
|
+
}
|
|
653
|
+
return 0;
|
|
@@ -18,10 +18,14 @@ description: |
|
|
|
18
18
|
with a hypervisor that does not swap `scontext`.
|
|
19
19
|
|
|
20
20
|
definedBy:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
allOf:
|
|
22
|
+
- extension:
|
|
23
|
+
name: Sdtrig
|
|
24
|
+
- extension:
|
|
25
|
+
name: S
|
|
26
|
+
- param:
|
|
27
|
+
name: SCONTEXT_IMPLEMENTED
|
|
28
|
+
equal: true
|
|
25
29
|
fields:
|
|
26
30
|
DATA:
|
|
27
31
|
location: 31-0
|
|
@@ -13,8 +13,12 @@ description: |
|
|
|
13
13
|
This optional register is only accessible in M-mode and Debug Mode and provides
|
|
14
14
|
various control bits related to triggers.
|
|
15
15
|
definedBy:
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
allOf:
|
|
17
|
+
- extension:
|
|
18
|
+
name: Sdtrig
|
|
19
|
+
- param:
|
|
20
|
+
name: TCONTROL_IMPLEMENTED
|
|
21
|
+
equal: true
|
|
18
22
|
fields:
|
|
19
23
|
MPTE:
|
|
20
24
|
location: 7
|
|
@@ -21,8 +21,12 @@ description: |
|
|
|
21
21
|
If XLEN is less than DXLEN, writes to this register are sign-extended.
|
|
22
22
|
|
|
23
23
|
definedBy:
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
allOf:
|
|
25
|
+
- extension:
|
|
26
|
+
name: Sdtrig
|
|
27
|
+
- param:
|
|
28
|
+
name: TDATA2_IMPLEMENTED
|
|
29
|
+
equal: true
|
|
26
30
|
fields:
|
|
27
31
|
DATA:
|
|
28
32
|
location_rv32: 31-0
|
|
@@ -21,8 +21,12 @@ description: |
|
|
|
21
21
|
If XLEN is less than DXLEN, writes to this register are sign-extended.
|
|
22
22
|
|
|
23
23
|
definedBy:
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
allOf:
|
|
25
|
+
- extension:
|
|
26
|
+
name: Sdtrig
|
|
27
|
+
- param:
|
|
28
|
+
name: TDATA3_IMPLEMENTED
|
|
29
|
+
equal: true
|
|
26
30
|
fields:
|
|
27
31
|
DATA:
|
|
28
32
|
location_rv32: 31-0
|
|
@@ -6,9 +6,65 @@
|
|
|
6
6
|
$schema: "ext_schema.json#"
|
|
7
7
|
kind: extension
|
|
8
8
|
name: Sdext
|
|
9
|
-
long_name:
|
|
9
|
+
long_name: External debug support
|
|
10
10
|
description: |
|
|
11
|
-
|
|
11
|
+
Sdext is the hart-visible portion of the RISC-V Debug Specification. It
|
|
12
|
+
defines Debug Mode, the `dret` instruction, and the `dcsr`, `dpc`,
|
|
13
|
+
`dscratch0`, and `dscratch1` CSRs that allow an external debugger (via the
|
|
14
|
+
Debug Module) to halt, inspect, and resume a hart.
|
|
15
|
+
|
|
16
|
+
*Debug Mode*
|
|
17
|
+
|
|
18
|
+
Debug Mode is a special processor mode used only when a hart is halted for
|
|
19
|
+
external debugging. While in Debug Mode:
|
|
20
|
+
|
|
21
|
+
* All operations are executed with machine-mode privilege, except that
|
|
22
|
+
`mstatus.MPRV` is ignored unless `dcsr.MPRVEN` is set.
|
|
23
|
+
* Interrupts (including NMI) are not taken.
|
|
24
|
+
* Exceptions do not update any registers (including `mcause`, `mepc`, and
|
|
25
|
+
`mtval`); the hart instead returns to the Debug Module's park loop.
|
|
26
|
+
* Triggers do not fire.
|
|
27
|
+
* Counters and `time` may be stopped, as controlled by `dcsr.STOPCOUNT` and
|
|
28
|
+
`dcsr.STOPTIME`.
|
|
29
|
+
* The debug CSRs (`dcsr`, `dpc`, `dscratch0`, `dscratch1`) are accessible.
|
|
30
|
+
Accessing them outside of Debug Mode raises an Illegal Instruction
|
|
31
|
+
exception.
|
|
32
|
+
|
|
33
|
+
*Halting*
|
|
34
|
+
|
|
35
|
+
A hart enters Debug Mode (halts) in response to a halt request from the
|
|
36
|
+
debugger, a halt-on-reset request, an `ebreak` executed in a mode whose
|
|
37
|
+
`dcsr.EBREAK*` bit is set, a trigger with `action`=1, completion of a
|
|
38
|
+
single step, membership in a halt group, or (with Smdbltrp and
|
|
39
|
+
`dcsr.CETRIG`=1) a critical error. On entry:
|
|
40
|
+
|
|
41
|
+
. `dcsr.CAUSE` (and, where applicable, `dcsr.EXTCAUSE`) records why Debug
|
|
42
|
+
Mode was entered.
|
|
43
|
+
. `dcsr.PRV` and `dcsr.V` record the privilege and virtualization mode the
|
|
44
|
+
hart was in.
|
|
45
|
+
. `dpc` records the virtual address of the next instruction that would have
|
|
46
|
+
executed.
|
|
47
|
+
. If Zicfilp is implemented, `dcsr.PELP` records the current `ELP` state and
|
|
48
|
+
`ELP` is set to `NO_LP_EXPECTED`.
|
|
49
|
+
|
|
50
|
+
*Resuming*
|
|
51
|
+
|
|
52
|
+
The debugger resumes the hart by having it execute `dret` from Debug Mode.
|
|
53
|
+
On resume, the PC is set to `dpc`, the privilege and virtualization mode
|
|
54
|
+
are restored from `dcsr.PRV` and `dcsr.V`, `mstatus.MPRV` (and, with
|
|
55
|
+
Smdbltrp/Ssdbltrp, the double-trap bits) are cleared when returning to a
|
|
56
|
+
less-privileged mode, `ELP` is restored from `dcsr.PELP` when Zicfilp is
|
|
57
|
+
implemented, and the hart leaves Debug Mode. A debugger may write `dcsr`
|
|
58
|
+
and `dpc` before resuming to change where and in what mode execution
|
|
59
|
+
continues.
|
|
60
|
+
|
|
61
|
+
*Single step*
|
|
62
|
+
|
|
63
|
+
When `dcsr.STEP` is set and the hart resumes, it executes exactly one
|
|
64
|
+
instruction and then re-enters Debug Mode with `dcsr.CAUSE` = 4 (step). If
|
|
65
|
+
that instruction takes an exception, the hart enters Debug Mode
|
|
66
|
+
immediately after the PC is updated to the trap handler. `dcsr.STEPIE`
|
|
67
|
+
controls whether interrupts may be taken while single stepping.
|
|
12
68
|
type: privileged
|
|
13
69
|
versions:
|
|
14
70
|
- version: "1.0.0"
|
|
@@ -62,8 +62,8 @@ versions:
|
|
|
62
62
|
`pc` to `__x__tval`.
|
|
63
63
|
- Specified relaxed constraints for implicit reads of non-idempotent regions.
|
|
64
64
|
- version: "1.13.0"
|
|
65
|
-
state:
|
|
66
|
-
ratification_date:
|
|
65
|
+
state: ratified
|
|
66
|
+
ratification_date: 2024-10
|
|
67
67
|
changes:
|
|
68
68
|
- Redefined `misa`.MXL to be read-only, making MXLEN a constant.
|
|
69
69
|
- Defined the `misa`.B field to reflect that the B extension has been
|
|
@@ -15,3 +15,22 @@ versions:
|
|
|
15
15
|
- version: "1.0.0"
|
|
16
16
|
state: ratified
|
|
17
17
|
ratification_date: 2024-10
|
|
18
|
+
requirements:
|
|
19
|
+
allOf:
|
|
20
|
+
- extension:
|
|
21
|
+
name: U
|
|
22
|
+
- if:
|
|
23
|
+
extension:
|
|
24
|
+
name: S
|
|
25
|
+
then:
|
|
26
|
+
param:
|
|
27
|
+
name: SXLEN
|
|
28
|
+
includes: 64
|
|
29
|
+
- if:
|
|
30
|
+
not:
|
|
31
|
+
extension:
|
|
32
|
+
name: S
|
|
33
|
+
then:
|
|
34
|
+
param:
|
|
35
|
+
name: UXLEN
|
|
36
|
+
includes: 64
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Copyright (c) Shanghai Jiao Tong University
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../schemas/ext_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "ext_schema.json#"
|
|
7
|
+
kind: extension
|
|
8
|
+
name: Smpmpdeleg
|
|
9
|
+
type: privileged
|
|
10
|
+
long_name: Machine PMP Delegation to SPMP
|
|
11
|
+
description: |
|
|
12
|
+
The Smpmpdeleg extension provides the mpmpdeleg CSR, which controls how many
|
|
13
|
+
PMP entries are delegated to SPMP.
|
|
14
|
+
|
|
15
|
+
The mpmpdeleg CSR contains a pmpnum field in bits [6:0]. Let max_pmp be the
|
|
16
|
+
implementation's total number of PMP entries. Entries 0 through pmpnum-1
|
|
17
|
+
remain as PMP entries, while entries pmpnum through max_pmp-1 are delegated
|
|
18
|
+
to SPMP.
|
|
19
|
+
|
|
20
|
+
When pmpnum = 0, all entries are delegated to SPMP.
|
|
21
|
+
When pmpnum = max_pmp, no entries are delegated to SPMP.
|
|
22
|
+
|
|
23
|
+
Writes to SPMP CSRs are ignored when no entries are delegated to SPMP.
|
|
24
|
+
versions:
|
|
25
|
+
- version: "1.0.0"
|
|
26
|
+
state: ratified
|
|
27
|
+
ratification_date: 2026-08
|
|
28
|
+
url: "https://github.com/riscv/riscv-spmp/tree/v1.0"
|
|
29
|
+
requirements:
|
|
30
|
+
extension:
|
|
31
|
+
allOf:
|
|
32
|
+
- name: S
|
|
33
|
+
- name: Smcsrind
|
|
@@ -14,3 +14,10 @@ versions:
|
|
|
14
14
|
state: ratified
|
|
15
15
|
ratification_date: 2024-03
|
|
16
16
|
url: https://docs.google.com/document/d/1s-GeH5XpHBLzbQZucA8DPA7vvF7Xvf_nrPbrU2YLBcE/edit#heading=h.yyrgtolcaczx
|
|
17
|
+
requirements:
|
|
18
|
+
extension:
|
|
19
|
+
allOf:
|
|
20
|
+
- name: Smcdeleg
|
|
21
|
+
version: ~> 1.0
|
|
22
|
+
- name: Sscsrind
|
|
23
|
+
version: ~> 1.0
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Copyright (c) Shanghai Jiao Tong University
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../schemas/ext_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "ext_schema.json#"
|
|
7
|
+
kind: extension
|
|
8
|
+
name: Sspmp
|
|
9
|
+
type: privileged
|
|
10
|
+
long_name: Supervisor Physical Memory Protection
|
|
11
|
+
description: |
|
|
12
|
+
The Sspmp extension defines a Supervisor-level Physical Memory Protection (SPMP)
|
|
13
|
+
mechanism that allows S-mode software to configure memory protection regions.
|
|
14
|
+
|
|
15
|
+
SPMP entries are accessed indirectly via the Sscsrind/Smcsrind extension.
|
|
16
|
+
The siselect CSR selects the SPMP entry (0x100-0x13F), and sireg/sireg2 access
|
|
17
|
+
the corresponding spmpaddr/spmpcfg values.
|
|
18
|
+
|
|
19
|
+
SPMP provides memory protection for S-mode and U-mode accesses when satp.MODE
|
|
20
|
+
is Bare. It does not apply when virtual memory translation is active.
|
|
21
|
+
|
|
22
|
+
Key behaviors:
|
|
23
|
+
|
|
24
|
+
* SPMP entries are delegated from PMP entries via the mpmpdeleg CSR.
|
|
25
|
+
* Each SPMP entry has address (spmpaddr) and configuration (spmpcfg) registers
|
|
26
|
+
* spmpcfg includes R, W, X permissions, address matching mode (A), lock bit (L),
|
|
27
|
+
U-mode bit (U), and SHARED bit
|
|
28
|
+
* Out-of-bounds siselect values read as 0 and writes are ignored
|
|
29
|
+
versions:
|
|
30
|
+
- version: "1.0.0"
|
|
31
|
+
state: ratified
|
|
32
|
+
ratification_date: 2026-08
|
|
33
|
+
url: "https://github.com/riscv/riscv-spmp/tree/v1.0"
|
|
34
|
+
requirements:
|
|
35
|
+
allOf:
|
|
36
|
+
- extension:
|
|
37
|
+
name: Sscsrind
|
|
38
|
+
- anyOf:
|
|
39
|
+
- not:
|
|
40
|
+
extension:
|
|
41
|
+
name: Sm
|
|
42
|
+
version: "~> 1.13"
|
|
43
|
+
- extension:
|
|
44
|
+
name: Smpmpdeleg
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Copyright (c) Shanghai Jiao Tong University
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../schemas/ext_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: "ext_schema.json#"
|
|
7
|
+
kind: extension
|
|
8
|
+
name: Sspmpen
|
|
9
|
+
type: privileged
|
|
10
|
+
long_name: SPMP Enable Register
|
|
11
|
+
description: |
|
|
12
|
+
The Sspmpen extension adds the spmpen CSR, which provides per-entry enable bits
|
|
13
|
+
for SPMP regions.
|
|
14
|
+
|
|
15
|
+
Each bit spmpen[i] controls whether SPMP entry i is active. An entry is active
|
|
16
|
+
only when both spmpen[i] is set and spmpcfg[i].A != 0 (address matching mode
|
|
17
|
+
is not OFF).
|
|
18
|
+
|
|
19
|
+
When spmpcfg[i].L (lock bit) is set, spmpen[i] becomes read-only.
|
|
20
|
+
|
|
21
|
+
The spmpen CSR is a WARL register. Bits beyond the number of implemented SPMP
|
|
22
|
+
entries are read-only zero.
|
|
23
|
+
versions:
|
|
24
|
+
- version: "1.0.0"
|
|
25
|
+
state: ratified
|
|
26
|
+
ratification_date: 2026-08
|
|
27
|
+
url: "https://github.com/riscv/riscv-spmp/tree/v1.0"
|
|
28
|
+
requirements:
|
|
29
|
+
extension:
|
|
30
|
+
name: Sspmp
|
|
@@ -12,9 +12,13 @@ description: |
|
|
|
12
12
|
vectors of integers, including widening absolute-difference-and-accumulate
|
|
13
13
|
variants. These operations are widely used in image registration, object
|
|
14
14
|
recognition, motion estimation, and loop filters for video workloads.
|
|
15
|
+
|
|
16
|
+
The single-width instructions support SEW = 8, 16, and 32, and also support
|
|
17
|
+
SEW = 64 when Zve64x is implemented. The widening accumulate instructions
|
|
18
|
+
support SEW = 8 and 16.
|
|
15
19
|
type: unprivileged
|
|
16
20
|
versions:
|
|
17
|
-
- version: "0.
|
|
21
|
+
- version: "0.9.0"
|
|
18
22
|
state: frozen
|
|
19
23
|
requirements:
|
|
20
24
|
extension:
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
$schema: "ext_schema.json#"
|
|
5
|
+
kind: extension
|
|
6
|
+
name: Zvfbdota32f
|
|
7
|
+
long_name: FP32 batched dot-product extension
|
|
8
|
+
type: unprivileged
|
|
9
|
+
rvi_jira_issue: https://riscv.atlassian.net/browse/RVS-3925
|
|
10
|
+
requirements:
|
|
11
|
+
extension:
|
|
12
|
+
name: Zve32f
|
|
13
|
+
version: "= 1.0.0"
|
|
14
|
+
versions:
|
|
15
|
+
- version: "0.7.0"
|
|
16
|
+
state: development
|
|
17
|
+
repositories:
|
|
18
|
+
- url: https://github.com/riscv/riscv-isa-manual.git
|
|
19
|
+
branch: zvbdot
|
|
20
|
+
description: |
|
|
21
|
+
`Zvfbdota32f` is a member of the `Zvbdota` family of batched
|
|
22
|
+
dot-product extensions. It provides FP32 batched dot-product capability for
|
|
23
|
+
vector floating-point computation.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
# yaml-language-server: $schema=../../../schemas/ext_schema.json
|
|
4
|
+
|
|
5
|
+
$schema: "ext_schema.json#"
|
|
6
|
+
kind: extension
|
|
7
|
+
name: Zvzip
|
|
8
|
+
long_name: Vector Extension for Reordering Structured Data
|
|
9
|
+
type: unprivileged
|
|
10
|
+
versions:
|
|
11
|
+
- version: "0.3.0"
|
|
12
|
+
state: development
|
|
13
|
+
repositories:
|
|
14
|
+
- url: https://github.com/ptomsich/riscv-isa-manual.git
|
|
15
|
+
branch: zvzip
|
|
16
|
+
requirements:
|
|
17
|
+
extension:
|
|
18
|
+
name: Zve32x
|
|
19
|
+
description: |
|
|
20
|
+
The `Zvzip` extension provides vector instructions for reordering structured
|
|
21
|
+
data in vector registers: interleaving and deinterleaving element sequences,
|
|
22
|
+
and pairwise transposition of elements from two vector register groups.
|
|
23
|
+
These operations support packing and unpacking structured data and
|
|
24
|
+
transposing small matrices.
|
|
@@ -8,8 +8,8 @@ kind: instruction
|
|
|
8
8
|
name: c.bnez
|
|
9
9
|
long_name: Branch if NOT Equal Zero
|
|
10
10
|
description: |
|
|
11
|
-
C.
|
|
12
|
-
It expands to `
|
|
11
|
+
C.BNEZ performs conditional control transfers. The offset is sign-extended and added to the pc to form the branch target address. It can therefore target a ±256 B range. C.BNEZ takes the branch if the value in register xs1' is NOT zero.
|
|
12
|
+
It expands to `bne` `xs1, x0, offset`.
|
|
13
13
|
definedBy:
|
|
14
14
|
extension:
|
|
15
15
|
name: Zca
|