udb 0.1.0 → 0.1.1
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/spec/custom/isa/qc_iu/inst/Xqci/qc.c.mienter.nest.yaml +21 -21
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.c.mienter.yaml +21 -21
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.c.mileaveret.yaml +19 -19
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.lb.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.lbu.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.lh.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.lhu.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.lw.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.sb.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.sh.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.e.sw.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lrb.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lrbu.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lrh.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lrhu.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lrw.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lwm.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.lwmi.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.setwm.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.setwmi.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.srb.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.srh.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.srw.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.swm.yaml +1 -1
- data/.data/spec/custom/isa/qc_iu/inst/Xqci/qc.swmi.yaml +1 -1
- data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.ldsp.yaml +1 -1
- data/.data/spec/std/isa/inst/C/c.lw.yaml +1 -1
- data/.data/spec/std/isa/inst/C/c.lwsp.yaml +1 -1
- data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.sdsp.yaml +2 -2
- data/.data/spec/std/isa/inst/C/c.sw.yaml +1 -1
- data/.data/spec/std/isa/inst/C/c.swsp.yaml +1 -1
- data/.data/spec/std/isa/inst/F/flw.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fmv.w.x.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsgnj.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsgnjn.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsgnjx.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsw.yaml +1 -1
- data/.data/spec/std/isa/inst/I/lb.yaml +1 -1
- data/.data/spec/std/isa/inst/I/lbu.yaml +1 -1
- data/.data/spec/std/isa/inst/I/ld.yaml +2 -2
- data/.data/spec/std/isa/inst/I/lh.yaml +1 -1
- data/.data/spec/std/isa/inst/I/lhu.yaml +1 -1
- data/.data/spec/std/isa/inst/I/lw.yaml +1 -1
- data/.data/spec/std/isa/inst/I/lwu.yaml +1 -1
- data/.data/spec/std/isa/inst/I/sb.yaml +1 -1
- data/.data/spec/std/isa/inst/I/sd.yaml +1 -1
- data/.data/spec/std/isa/inst/I/sh.yaml +1 -1
- data/.data/spec/std/isa/inst/I/sw.yaml +1 -1
- data/.data/spec/std/isa/inst/V/vle8.v.yaml +1 -1
- data/.data/spec/std/isa/inst/V/vse8.v.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -1
- data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +2 -2
- data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcmt/cm.jalt.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcmt/cm.jt.yaml +2 -2
- data/.data/spec/std/isa/inst/Zfh/fcvt.s.h.yaml +3 -3
- data/.data/spec/std/isa/inst/Zfh/flh.yaml +2 -2
- data/.data/spec/std/isa/inst/Zfh/fmv.h.x.yaml +1 -1
- data/.data/spec/std/isa/inst/Zfh/fsh.yaml +1 -1
- data/.data/spec/std/isa/isa/builtin_functions.idl +3 -5
- data/.data/spec/std/isa/isa/fetch.idl +2 -2
- data/.data/spec/std/isa/isa/fp.idl +7 -8
- data/.data/spec/std/isa/isa/globals.isa +123 -118
- data/.data/spec/std/isa/isa/util.idl +6 -8
- data/lib/udb/cfg_arch.rb +36 -7
- data/lib/udb/idl/condition_to_udb.rb +7 -7
- data/lib/udb/obj/extension.rb +106 -67
- data/lib/udb/version.rb +1 -1
- data/lib/udb/yaml/yaml_resolver.rb +1 -1
- metadata +2 -2
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Min, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Min, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Min, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Minu, 1'b1, 1'b0, $encoding);
|
|
48
48
|
|
|
49
49
|
# SPDX-SnippetBegin
|
|
50
50
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Minu, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Minu, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Minu, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Minu, 1'b1, 1'b0, $encoding);
|
|
48
48
|
|
|
49
49
|
# SPDX-SnippetBegin
|
|
50
50
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Minu, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Minu, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Minu, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Or, 1'b1, 1'b0, $encoding);
|
|
48
48
|
|
|
49
49
|
# SPDX-SnippetBegin
|
|
50
50
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Or, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Or, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Or, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b1, 1'b0, $encoding);
|
|
48
48
|
|
|
49
49
|
# SPDX-SnippetBegin
|
|
50
50
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -43,7 +43,7 @@ operation(): |
|
|
|
43
43
|
memory_model_acquire();
|
|
44
44
|
|
|
45
45
|
XReg virtual_address = X[xs1];
|
|
46
|
-
X[xd] = amo
|
|
46
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b1, 1'b0, $encoding);
|
|
47
47
|
|
|
48
48
|
# SPDX-SnippetBegin
|
|
49
49
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -43,7 +43,7 @@ operation(): |
|
|
|
43
43
|
memory_model_acquire();
|
|
44
44
|
|
|
45
45
|
XReg virtual_address = X[xs1];
|
|
46
|
-
X[xd] = amo
|
|
46
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b1, 1'b1, $encoding);
|
|
47
47
|
|
|
48
48
|
memory_model_release();
|
|
49
49
|
|
|
@@ -41,7 +41,7 @@ operation(): |
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address = X[xs1];
|
|
44
|
-
X[xd] = amo
|
|
44
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b0, 1'b1, $encoding);
|
|
45
45
|
|
|
46
46
|
memory_model_release();
|
|
47
47
|
|
|
@@ -41,7 +41,7 @@ operation(): |
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address = X[xs1];
|
|
44
|
-
X[xd] = amo
|
|
44
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b0, 1'b0, $encoding);
|
|
45
45
|
|
|
46
46
|
# SPDX-SnippetBegin
|
|
47
47
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -43,7 +43,7 @@ operation(): |
|
|
|
43
43
|
memory_model_acquire();
|
|
44
44
|
|
|
45
45
|
XReg virtual_address = X[xs1];
|
|
46
|
-
X[xd] = amo
|
|
46
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b1, 1'b0, $encoding);
|
|
47
47
|
|
|
48
48
|
# SPDX-SnippetBegin
|
|
49
49
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -43,7 +43,7 @@ operation(): |
|
|
|
43
43
|
memory_model_acquire();
|
|
44
44
|
|
|
45
45
|
XReg virtual_address = X[xs1];
|
|
46
|
-
X[xd] = amo
|
|
46
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b1, 1'b1, $encoding);
|
|
47
47
|
|
|
48
48
|
memory_model_release();
|
|
49
49
|
|
|
@@ -41,7 +41,7 @@ operation(): |
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address = X[xs1];
|
|
44
|
-
X[xd] = amo
|
|
44
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b0, 1'b1, $encoding);
|
|
45
45
|
|
|
46
46
|
memory_model_release();
|
|
47
47
|
|
|
@@ -41,7 +41,7 @@ operation(): |
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
XReg virtual_address = X[xs1];
|
|
44
|
-
X[xd] = amo
|
|
44
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b0, 1'b0, $encoding);
|
|
45
45
|
|
|
46
46
|
# SPDX-SnippetBegin
|
|
47
47
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b1, 1'b0, $encoding);
|
|
48
48
|
|
|
49
49
|
# SPDX-SnippetBegin
|
|
50
50
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b1, 1'b0, $encoding);
|
|
48
48
|
|
|
49
49
|
# SPDX-SnippetBegin
|
|
50
50
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -44,7 +44,7 @@ operation(): |
|
|
|
44
44
|
memory_model_acquire();
|
|
45
45
|
|
|
46
46
|
XReg virtual_address = X[xs1];
|
|
47
|
-
X[xd] = amo
|
|
47
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b1, 1'b1, $encoding);
|
|
48
48
|
|
|
49
49
|
memory_model_release();
|
|
50
50
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b0, 1'b1, $encoding);
|
|
46
46
|
|
|
47
47
|
memory_model_release();
|
|
48
48
|
|
|
@@ -42,7 +42,7 @@ operation(): |
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
XReg virtual_address = X[xs1];
|
|
45
|
-
X[xd] = amo
|
|
45
|
+
X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b0, 1'b0, $encoding);
|
|
46
46
|
|
|
47
47
|
# SPDX-SnippetBegin
|
|
48
48
|
# SPDX-FileCopyrightText: 2017-2025 Contributors to the RISCV Sail Model <https://github.com/riscv/sail-riscv/blob/master/LICENCE>
|
|
@@ -127,7 +127,7 @@ operation(): |
|
|
|
127
127
|
|
|
128
128
|
XReg virtual_address = X[xs1];
|
|
129
129
|
|
|
130
|
-
if (!is_naturally_aligned
|
|
130
|
+
if (!is_naturally_aligned(<%= current_size[:align_bits] %>, virtual_address)) {
|
|
131
131
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
132
132
|
#
|
|
133
133
|
# from the spec:
|
|
@@ -145,7 +145,7 @@ operation(): |
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
XReg load_value = load_reserved
|
|
148
|
+
XReg load_value = load_reserved(<%= current_size[:load_reserved_bits] %>, virtual_address, aq, rl, $encoding);
|
|
149
149
|
<%- if size == "w" -%>
|
|
150
150
|
if (xlen() == 64) {
|
|
151
151
|
X[xd] = load_value;
|
|
@@ -81,7 +81,7 @@ operation(): |
|
|
|
81
81
|
|
|
82
82
|
XReg virtual_address = X[xs1];
|
|
83
83
|
|
|
84
|
-
if (!is_naturally_aligned
|
|
84
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
85
85
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
86
86
|
#
|
|
87
87
|
# from the spec:
|
|
@@ -99,7 +99,7 @@ operation(): |
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
XReg load_value = load_reserved
|
|
102
|
+
XReg load_value = load_reserved(64, virtual_address, aq, rl, $encoding);
|
|
103
103
|
X[xd] = load_value;
|
|
104
104
|
|
|
105
105
|
# SPDX-SnippetBegin
|
|
@@ -81,7 +81,7 @@ operation(): |
|
|
|
81
81
|
|
|
82
82
|
XReg virtual_address = X[xs1];
|
|
83
83
|
|
|
84
|
-
if (!is_naturally_aligned
|
|
84
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
85
85
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
86
86
|
#
|
|
87
87
|
# from the spec:
|
|
@@ -99,7 +99,7 @@ operation(): |
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
XReg load_value = load_reserved
|
|
102
|
+
XReg load_value = load_reserved(64, virtual_address, aq, rl, $encoding);
|
|
103
103
|
X[xd] = load_value;
|
|
104
104
|
|
|
105
105
|
# SPDX-SnippetBegin
|
|
@@ -81,7 +81,7 @@ operation(): |
|
|
|
81
81
|
|
|
82
82
|
XReg virtual_address = X[xs1];
|
|
83
83
|
|
|
84
|
-
if (!is_naturally_aligned
|
|
84
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
85
85
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
86
86
|
#
|
|
87
87
|
# from the spec:
|
|
@@ -99,7 +99,7 @@ operation(): |
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
XReg load_value = load_reserved
|
|
102
|
+
XReg load_value = load_reserved(64, virtual_address, aq, rl, $encoding);
|
|
103
103
|
X[xd] = load_value;
|
|
104
104
|
|
|
105
105
|
# SPDX-SnippetBegin
|
|
@@ -81,7 +81,7 @@ operation(): |
|
|
|
81
81
|
|
|
82
82
|
XReg virtual_address = X[xs1];
|
|
83
83
|
|
|
84
|
-
if (!is_naturally_aligned
|
|
84
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
85
85
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
86
86
|
#
|
|
87
87
|
# from the spec:
|
|
@@ -99,7 +99,7 @@ operation(): |
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
XReg load_value = load_reserved
|
|
102
|
+
XReg load_value = load_reserved(64, virtual_address, aq, rl, $encoding);
|
|
103
103
|
X[xd] = load_value;
|
|
104
104
|
|
|
105
105
|
# SPDX-SnippetBegin
|
|
@@ -84,7 +84,7 @@ operation(): |
|
|
|
84
84
|
|
|
85
85
|
XReg virtual_address = X[xs1];
|
|
86
86
|
|
|
87
|
-
if (!is_naturally_aligned
|
|
87
|
+
if (!is_naturally_aligned(32, virtual_address)) {
|
|
88
88
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
89
89
|
#
|
|
90
90
|
# from the spec:
|
|
@@ -102,7 +102,7 @@ operation(): |
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
XReg load_value = load_reserved
|
|
105
|
+
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
106
|
if (xlen() == 64) {
|
|
107
107
|
X[xd] = load_value;
|
|
108
108
|
} else {
|
|
@@ -84,7 +84,7 @@ operation(): |
|
|
|
84
84
|
|
|
85
85
|
XReg virtual_address = X[xs1];
|
|
86
86
|
|
|
87
|
-
if (!is_naturally_aligned
|
|
87
|
+
if (!is_naturally_aligned(32, virtual_address)) {
|
|
88
88
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
89
89
|
#
|
|
90
90
|
# from the spec:
|
|
@@ -102,7 +102,7 @@ operation(): |
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
XReg load_value = load_reserved
|
|
105
|
+
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
106
|
if (xlen() == 64) {
|
|
107
107
|
X[xd] = load_value;
|
|
108
108
|
} else {
|
|
@@ -84,7 +84,7 @@ operation(): |
|
|
|
84
84
|
|
|
85
85
|
XReg virtual_address = X[xs1];
|
|
86
86
|
|
|
87
|
-
if (!is_naturally_aligned
|
|
87
|
+
if (!is_naturally_aligned(32, virtual_address)) {
|
|
88
88
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
89
89
|
#
|
|
90
90
|
# from the spec:
|
|
@@ -102,7 +102,7 @@ operation(): |
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
XReg load_value = load_reserved
|
|
105
|
+
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
106
|
if (xlen() == 64) {
|
|
107
107
|
X[xd] = load_value;
|
|
108
108
|
} else {
|
|
@@ -84,7 +84,7 @@ operation(): |
|
|
|
84
84
|
|
|
85
85
|
XReg virtual_address = X[xs1];
|
|
86
86
|
|
|
87
|
-
if (!is_naturally_aligned
|
|
87
|
+
if (!is_naturally_aligned(32, virtual_address)) {
|
|
88
88
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
89
89
|
#
|
|
90
90
|
# from the spec:
|
|
@@ -102,7 +102,7 @@ operation(): |
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
XReg load_value = load_reserved
|
|
105
|
+
XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
|
|
106
106
|
if (xlen() == 64) {
|
|
107
107
|
X[xd] = load_value;
|
|
108
108
|
} else {
|
|
@@ -184,7 +184,7 @@ operation(): |
|
|
|
184
184
|
XReg virtual_address = X[xs1];
|
|
185
185
|
XReg value = X[xs2];
|
|
186
186
|
|
|
187
|
-
if (!is_naturally_aligned
|
|
187
|
+
if (!is_naturally_aligned(<%= current_size[:align_bits] %>, virtual_address)) {
|
|
188
188
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
189
189
|
#
|
|
190
190
|
# from the spec:
|
|
@@ -202,7 +202,7 @@ operation(): |
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
Boolean success = store_conditional
|
|
205
|
+
Boolean success = store_conditional(<%= current_size[:operation_bits] %>, virtual_address, value, aq, rl, $encoding);
|
|
206
206
|
X[xd] = success ? 0 : 1;
|
|
207
207
|
|
|
208
208
|
# SPDX-SnippetBegin
|
|
@@ -141,7 +141,7 @@ operation(): |
|
|
|
141
141
|
XReg virtual_address = X[xs1];
|
|
142
142
|
XReg value = X[xs2];
|
|
143
143
|
|
|
144
|
-
if (!is_naturally_aligned
|
|
144
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
145
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
146
146
|
#
|
|
147
147
|
# from the spec:
|
|
@@ -159,7 +159,7 @@ operation(): |
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
Boolean success = store_conditional
|
|
162
|
+
Boolean success = store_conditional(64, virtual_address, value, aq, rl, $encoding);
|
|
163
163
|
X[xd] = success ? 0 : 1;
|
|
164
164
|
|
|
165
165
|
# SPDX-SnippetBegin
|
|
@@ -141,7 +141,7 @@ operation(): |
|
|
|
141
141
|
XReg virtual_address = X[xs1];
|
|
142
142
|
XReg value = X[xs2];
|
|
143
143
|
|
|
144
|
-
if (!is_naturally_aligned
|
|
144
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
145
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
146
146
|
#
|
|
147
147
|
# from the spec:
|
|
@@ -159,7 +159,7 @@ operation(): |
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
Boolean success = store_conditional
|
|
162
|
+
Boolean success = store_conditional(64, virtual_address, value, aq, rl, $encoding);
|
|
163
163
|
X[xd] = success ? 0 : 1;
|
|
164
164
|
|
|
165
165
|
# SPDX-SnippetBegin
|
|
@@ -141,7 +141,7 @@ operation(): |
|
|
|
141
141
|
XReg virtual_address = X[xs1];
|
|
142
142
|
XReg value = X[xs2];
|
|
143
143
|
|
|
144
|
-
if (!is_naturally_aligned
|
|
144
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
145
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
146
146
|
#
|
|
147
147
|
# from the spec:
|
|
@@ -159,7 +159,7 @@ operation(): |
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
Boolean success = store_conditional
|
|
162
|
+
Boolean success = store_conditional(64, virtual_address, value, aq, rl, $encoding);
|
|
163
163
|
X[xd] = success ? 0 : 1;
|
|
164
164
|
|
|
165
165
|
# SPDX-SnippetBegin
|
|
@@ -141,7 +141,7 @@ operation(): |
|
|
|
141
141
|
XReg virtual_address = X[xs1];
|
|
142
142
|
XReg value = X[xs2];
|
|
143
143
|
|
|
144
|
-
if (!is_naturally_aligned
|
|
144
|
+
if (!is_naturally_aligned(64, virtual_address)) {
|
|
145
145
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
146
146
|
#
|
|
147
147
|
# from the spec:
|
|
@@ -159,7 +159,7 @@ operation(): |
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
Boolean success = store_conditional
|
|
162
|
+
Boolean success = store_conditional(64, virtual_address, value, aq, rl, $encoding);
|
|
163
163
|
X[xd] = success ? 0 : 1;
|
|
164
164
|
|
|
165
165
|
# SPDX-SnippetBegin
|
|
@@ -143,7 +143,7 @@ operation(): |
|
|
|
143
143
|
XReg virtual_address = X[xs1];
|
|
144
144
|
XReg value = X[xs2];
|
|
145
145
|
|
|
146
|
-
if (!is_naturally_aligned
|
|
146
|
+
if (!is_naturally_aligned(32, virtual_address)) {
|
|
147
147
|
# can raise either LoadAddressMisaligned *or* LoadAccessFault
|
|
148
148
|
#
|
|
149
149
|
# from the spec:
|
|
@@ -161,7 +161,7 @@ operation(): |
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
Boolean success = store_conditional
|
|
164
|
+
Boolean success = store_conditional(32, virtual_address, value, aq, rl, $encoding);
|
|
165
165
|
X[xd] = success ? 0 : 1;
|
|
166
166
|
|
|
167
167
|
# SPDX-SnippetBegin
|