Sparc64 BPr branch target fix (Blue Swirl)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 23 Jun 2006 21:01:56 +0000 (21:01 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 23 Jun 2006 21:01:56 +0000 (21:01 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2003 c046a42c-6fe2-441c-8c8c-71466251a162

target-sparc/translate.c

index c19797e..bbd072c 100644 (file)
@@ -970,7 +970,7 @@ static void disas_sparc_insn(DisasContext * dc)
            case 0x3:           /* V9 BPr */
                {
                    target = GET_FIELD_SP(insn, 0, 13) | 
-                       (GET_FIELD_SP(insn, 20, 21) >> 7);
+                        (GET_FIELD_SP(insn, 20, 21) << 14);
                    target = sign_extend(target, 16);
                    target <<= 2;
                    rs1 = GET_FIELD(insn, 13, 17);