From 86f1f2aee8fa8dd6f25ead09433fa0c888db6d37 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sat, 14 May 2011 07:14:57 +0000 Subject: [PATCH] sparc64: fix incorrect BPcc target sign extension Fix wrong number of bits used when sign extending the branch offset of BPcc instructions. Reported-by: Artyom Tarasenko Signed-off-by: Blue Swirl --- target-sparc/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-sparc/translate.c b/target-sparc/translate.c index 9222cde160..fe99f0bfea 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -1893,7 +1893,7 @@ static void disas_sparc_insn(DisasContext * dc) int cc; target = GET_FIELD_SP(insn, 0, 18); - target = sign_extend(target, 18); + target = sign_extend(target, 19); target <<= 2; cc = GET_FIELD_SP(insn, 20, 21); if (cc == 0)