diff options
-rw-r--r-- | riscv/decode.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/riscv/decode.h b/riscv/decode.h index a571efd..8999d93 100644 --- a/riscv/decode.h +++ b/riscv/decode.h @@ -1519,16 +1519,17 @@ for (reg_t i = 0; i < vlmax; ++i) { \ ld_width##_t val = MMU.load_##ld_width(baseAddr + (stride) + (offset) * elt_byte); \ switch(P.VU.vsew){ \ case e8: \ - P.VU.elt<uint8_t>(vd + fn * vlmul, vreg_inx) = val; \ + P.VU.elt<uint8_t>(vd + fn * vlmul, vreg_inx, true) = val; \ break; \ case e16: \ - P.VU.elt<uint16_t>(vd + fn * vlmul, vreg_inx) = val; \ + P.VU.elt<uint16_t>(vd + fn * vlmul, vreg_inx, true) = val; \ break; \ case e32: \ - P.VU.elt<uint32_t>(vd + fn * vlmul, vreg_inx) = val; \ + P.VU.elt<uint32_t>(vd + fn * vlmul, vreg_inx, true) = val; \ break; \ default: \ - P.VU.elt<uint64_t>(vd + fn * vlmul, vreg_inx) = val; \ + P.VU.elt<uint64_t>(vd + fn * vlmul, vreg_inx, true) = val; \ + break; \ } \ } \ } \ @@ -1582,16 +1583,16 @@ for (reg_t i = 0; i < vlmax; ++i) { \ \ switch (sew) { \ case e8: \ - p->VU.elt<uint8_t>(rd_num + fn * vlmul, vreg_inx) = val; \ + p->VU.elt<uint8_t>(rd_num + fn * vlmul, vreg_inx, true) = val; \ break; \ case e16: \ - p->VU.elt<uint16_t>(rd_num + fn * vlmul, vreg_inx) = val; \ + p->VU.elt<uint16_t>(rd_num + fn * vlmul, vreg_inx, true) = val; \ break; \ case e32: \ - p->VU.elt<uint32_t>(rd_num + fn * vlmul, vreg_inx) = val; \ + p->VU.elt<uint32_t>(rd_num + fn * vlmul, vreg_inx, true) = val; \ break; \ case e64: \ - p->VU.elt<uint64_t>(rd_num + fn * vlmul, vreg_inx) = val; \ + p->VU.elt<uint64_t>(rd_num + fn * vlmul, vreg_inx, true) = val; \ break; \ } \ } \ |