aboutsummaryrefslogtreecommitdiff
path: root/target-sparc
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-06-23 21:01:56 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-06-23 21:01:56 +0000
commit13846e700f7415b388f06ef912c772907a95e62e (patch)
treefb2a3a5b82cdc0470127a7e7dd90a5800cb0e4df /target-sparc
parent3cb0853ad7105efdcc15df5ef9bee48d102ca922 (diff)
Sparc64 BPr branch target fix (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2003 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r--target-sparc/translate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index c19797e3bd..bbd072c37a 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -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);