]> git.proxmox.com Git - qemu.git/commitdiff
Mask LL portion of B to 24 bits in tcg_out_b (Thanks to Thiemo Seufer)
authormalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 3 Jul 2008 18:51:23 +0000 (18:51 +0000)
committermalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 3 Jul 2008 18:51:23 +0000 (18:51 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4841 c046a42c-6fe2-441c-8c8c-71466251a162

tcg/ppc/tcg-target.c

index 39319903cd1beb16180a77ed30424d4001b7cce6..c69a39eb9eb9b6bfa4330056c27bee62c2ecd1ef 100644 (file)
@@ -415,7 +415,7 @@ static void tcg_out_b (TCGContext *s, int mask, tcg_target_long target)
 
     disp = target - (tcg_target_long) s->code_ptr;
     if ((disp << 6) >> 6 == disp)
-        tcg_out32 (s, B | disp | mask);
+        tcg_out32 (s, B | (disp & 0x3fffffc) | mask);
     else {
         tcg_out_movi (s, TCG_TYPE_I32, 0, (tcg_target_long) target);
         tcg_out32 (s, MTSPR | RS (0) | CTR);