diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-06-21 18:26:15 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-06-21 18:26:15 +0000 |
commit | ee6c0b51e97c8bcad32181f42e63765b18c30354 (patch) | |
tree | a855a03cf50295c478b60fa842f6a1124dd680e7 /target-sparc | |
parent | 48dc41eb8bdccef274172ba8148c324d1ae9782b (diff) | |
download | hqemu-ee6c0b51e97c8bcad32181f42e63765b18c30354.zip hqemu-ee6c0b51e97c8bcad32181f42e63765b18c30354.tar.gz |
sparc branch fix (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1999 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r-- | target-sparc/translate.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/target-sparc/translate.c b/target-sparc/translate.c index 22d3ebc..c19797e 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -956,8 +956,8 @@ static void disas_sparc_insn(DisasContext * dc) int cc; target = GET_FIELD_SP(insn, 0, 18); - target <<= 2; target = sign_extend(target, 18); + target <<= 2; cc = GET_FIELD_SP(insn, 20, 21); if (cc == 0) do_branch(dc, target, insn, 0); @@ -971,8 +971,8 @@ static void disas_sparc_insn(DisasContext * dc) { target = GET_FIELD_SP(insn, 0, 13) | (GET_FIELD_SP(insn, 20, 21) >> 7); - target <<= 2; target = sign_extend(target, 16); + target <<= 2; rs1 = GET_FIELD(insn, 13, 17); gen_movl_reg_T0(rs1); do_branch_reg(dc, target, insn); @@ -986,8 +986,8 @@ static void disas_sparc_insn(DisasContext * dc) gen_op_trap_ifnofpu(); #endif target = GET_FIELD_SP(insn, 0, 18); - target <<= 2; target = sign_extend(target, 19); + target <<= 2; do_fbranch(dc, target, insn, cc); goto jmp_insn; } @@ -995,8 +995,8 @@ static void disas_sparc_insn(DisasContext * dc) case 0x2: /* BN+x */ { target = GET_FIELD(insn, 10, 31); - target <<= 2; target = sign_extend(target, 22); + target <<= 2; do_branch(dc, target, insn, 0); goto jmp_insn; } @@ -1007,8 +1007,8 @@ static void disas_sparc_insn(DisasContext * dc) gen_op_trap_ifnofpu(); #endif target = GET_FIELD(insn, 10, 31); - target <<= 2; target = sign_extend(target, 22); + target <<= 2; do_fbranch(dc, target, insn, 0); goto jmp_insn; } |