aboutsummaryrefslogtreecommitdiff
path: root/tcg/ppc
diff options
context:
space:
mode:
authormalc <av1474@comtv.ru>2010-04-17 07:58:08 +0400
committermalc <av1474@comtv.ru>2010-04-17 08:00:32 +0400
commitefe72c8de7b5f07bf8348d51ed4bb4f004e50748 (patch)
tree187ad4a096e68967ba187ac0ad4bd8472cc9719f /tcg/ppc
parenta491cf58dbe320511b1d3d053870baba2c7f0384 (diff)
downloadqemu-efe72c8de7b5f07bf8348d51ed4bb4f004e50748.zip
qemu-efe72c8de7b5f07bf8348d51ed4bb4f004e50748.tar.gz
qemu-efe72c8de7b5f07bf8348d51ed4bb4f004e50748.tar.bz2
tcg/ppc: Fix signed versions of brcond2
Thanks to: Alexander Graff, Thomas Gleixner and Andreas Faerber. Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'tcg/ppc')
-rw-r--r--tcg/ppc/tcg-target.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c
index 6f044d6..d559214 100644
--- a/tcg/ppc/tcg-target.c
+++ b/tcg/ppc/tcg-target.c
@@ -1107,7 +1107,8 @@ static void tcg_out_cr7eq_from_cond (TCGContext *s, const TCGArg *args,
op = (b->bit1 != b->bit2) ? CRANDC : CRAND;
tcg_out_cmp (s, b->cond2, args[1], args[3], const_args[3], 5);
tcg_out_cmp (s, TCG_COND_EQ, args[1], args[3], const_args[3], 6);
- tcg_out_cmp (s, cond, args[0], args[2], const_args[2], 7);
+ tcg_out_cmp (s, tcg_unsigned_cond (cond), args[0], args[2],
+ const_args[2], 7);
tcg_out32 (s, op | BT (7, CR_EQ) | BA (6, CR_EQ) | BB (7, b->bit2));
tcg_out32 (s, CROR | BT (7, CR_EQ) | BA (5, b->bit1) | BB (7, CR_EQ));
break;