@samitouri / QOSamiQemu / commits / 7ff17f127b

target/riscv: Support raising misaligned exceptions for scalar loads/stores

When the Zicclsm extension is not enabled, raise misaligned load/store exceptions for misaligned accesses from scalar load/store instructions. Signed-off-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Max Chou <max.chou@sifive.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260810055618.1175500-4-frank.chang@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Frank Chang committed Aug 10, 2026 at 13:56 UTC 7ff17f127bbf08bb17d2754d43028bab79a1c709
1 file changed +6
target/riscv/tcg/insn_trans/trans_rvi.c.inc
+6
@@ -413,6 +413,9 @@ static bool gen_load(DisasContext *ctx, arg_lb *a, MemOp memop)
413 if (ctx->cfg_ptr->ext_zama16b) {
414 memop |= MO_ATOM_WITHIN16;
415 }
416 + if (!ctx->cfg_ptr->ext_zicclsm) {
417 + memop |= MO_ALIGN;
418 + }
419 decode_save_opc(ctx, 0);
420 if (get_xl(ctx) == MXL_RV128) {
421 out = gen_load_i128(ctx, a, memop);
@@ -524,6 +527,9 @@ static bool gen_store(DisasContext *ctx, arg_sb *a, MemOp memop)
527 if (ctx->cfg_ptr->ext_zama16b) {
528 memop |= MO_ATOM_WITHIN16;
529 }
530 + if (!ctx->cfg_ptr->ext_zicclsm) {
531 + memop |= MO_ALIGN;
532 + }
533 decode_save_opc(ctx, 0);
534 if (get_xl(ctx) == MXL_RV128) {
535 return gen_store_i128(ctx, a, memop);