Commit 7a3a0097 authored by Huw Davies's avatar Huw Davies Committed by Richard Henderson
Browse files

tcg-arm: The shift count of op_rotl_i32 is in args[2] not args[1].



It's this that should be subtracted from 0x20 when converting to a right rotate.

Cc: qemu-stable@nongnu.org
Signed-off-by: default avatarHuw Davies <huw@codeweavers.com>
Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
parent f6aa2f7d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1866,7 +1866,7 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc,
                            SHIFT_IMM_ROR((0x20 - args[2]) & 0x1f) :
                            SHIFT_IMM_LSL(0));
        } else {
            tcg_out_dat_imm(s, COND_AL, ARITH_RSB, TCG_REG_TMP, args[1], 0x20);
            tcg_out_dat_imm(s, COND_AL, ARITH_RSB, TCG_REG_TMP, args[2], 0x20);
            tcg_out_dat_reg(s, COND_AL, ARITH_MOV, args[0], 0, args[1],
                            SHIFT_REG_ROR(TCG_REG_TMP));
        }