aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--riscv/decode.h17
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; \
} \
} \