]> git.proxmox.com Git - mirror_qemu.git/commitdiff
sparc64: fix incorrect BPcc target sign extension
authorBlue Swirl <blauwirbel@gmail.com>
Sat, 14 May 2011 07:14:57 +0000 (07:14 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 14 May 2011 07:30:31 +0000 (07:30 +0000)
Fix wrong number of bits used when sign extending the branch offset of BPcc
instructions.

Reported-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
target-sparc/translate.c

index 9222cde160aea81e715d21b2581da6829818a9f4..fe99f0bfeac6e2a1886443ba420fa226ea6af471 100644 (file)
@@ -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)