From: Blue Swirl Date: Sat, 14 May 2011 07:14:57 +0000 (+0000) Subject: sparc64: fix incorrect BPcc target sign extension X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=86f1f2aee8fa8dd6f25ead09433fa0c888db6d37;p=qemu.git 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 --- 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)