diff --git a/target/ppc/mem_helper.c b/target/ppc/mem_helper.c index e6383c6bfa..a34e604db3 100644 --- a/target/ppc/mem_helper.c +++ b/target/ppc/mem_helper.c @@ -111,7 +111,7 @@ void helper_lswx(CPUPPCState *env, target_ulong addr, uint32_t reg, uint32_t ra, uint32_t rb) { if (likely(xer_bc != 0)) { - int num_used_regs = (xer_bc + 3) / 4; + int num_used_regs = DIV_ROUND_UP(xer_bc, 4); if (unlikely((ra != 0 && lsw_reg_in_range(reg, num_used_regs, ra)) || lsw_reg_in_range(reg, num_used_regs, rb))) { raise_exception_err_ra(env, POWERPC_EXCP_PROGRAM, diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 01233e8b6d..606b605ba0 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2880,7 +2880,7 @@ static void gen_lswi(DisasContext *ctx) } if (nb == 0) nb = 32; - nr = (nb + 3) / 4; + nr = DIV_ROUND_UP(nb, 4); if (unlikely(lsw_reg_in_range(start, nr, ra))) { gen_inval_exception(ctx, POWERPC_EXCP_INVAL_LSWX); return;