summaryrefslogtreecommitdiff
path: root/tcg
diff options
context:
space:
mode:
authorHuw Davies <huw@codeweavers.com>2014-02-13 10:26:46 +0000
committerMichael Roth <mdroth@linux.vnet.ibm.com>2014-02-21 00:40:04 -0600
commit2cd72adb1c0ec75164f8fa296ace3221f03c3ab8 (patch)
tree74441c1c1bc4c4193ae94eefd31ed857b4fc0fd1 /tcg
parent819ddf7d1fbcb74ecab885dc35fea741c6316b17 (diff)
downloadqemu-2cd72adb1c0ec75164f8fa296ace3221f03c3ab8.tar.gz
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: Huw Davies <huw@codeweavers.com> Signed-off-by: Richard Henderson <rth@twiddle.net> (cherry picked from commit 7a3a00979d9dfe2aaa66ce5fc68cd161b4f900ba) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'tcg')
-rw-r--r--tcg/arm/tcg-target.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c
index e93a4a237b..5d4bbe7fb0 100644
--- a/tcg/arm/tcg-target.c
+++ b/tcg/arm/tcg-target.c
@@ -1868,7 +1868,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));
}