Commit 46d38ba89d37561a6fbf58a7ff567d0931b7c602
1 parent
fda77c2d
Fix Sparc64 movr
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3045 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
2 additions
and
2 deletions
target-sparc/translate.c
@@ -84,7 +84,7 @@ enum { | @@ -84,7 +84,7 @@ enum { | ||
84 | GET_FIELD(X, 31 - (TO), 31 - (FROM)) | 84 | GET_FIELD(X, 31 - (TO), 31 - (FROM)) |
85 | 85 | ||
86 | #define GET_FIELDs(x,a,b) sign_extend (GET_FIELD(x,a,b), (b) - (a) + 1) | 86 | #define GET_FIELDs(x,a,b) sign_extend (GET_FIELD(x,a,b), (b) - (a) + 1) |
87 | -#define GET_FIELD_SPs(x,a,b) sign_extend (GET_FIELD_SP(x,a,b), 32 - ((b) - (a) + 1)) | 87 | +#define GET_FIELD_SPs(x,a,b) sign_extend (GET_FIELD_SP(x,a,b), ((b) - (a) + 1)) |
88 | 88 | ||
89 | #ifdef TARGET_SPARC64 | 89 | #ifdef TARGET_SPARC64 |
90 | #define DFPREG(r) (((r & 1) << 6) | (r & 0x1e)) | 90 | #define DFPREG(r) (((r & 1) << 6) | (r & 0x1e)) |
@@ -2226,7 +2226,7 @@ static void disas_sparc_insn(DisasContext * dc) | @@ -2226,7 +2226,7 @@ static void disas_sparc_insn(DisasContext * dc) | ||
2226 | gen_movl_reg_T0(rs1); | 2226 | gen_movl_reg_T0(rs1); |
2227 | gen_cond_reg(cond); | 2227 | gen_cond_reg(cond); |
2228 | if (IS_IMM) { /* immediate */ | 2228 | if (IS_IMM) { /* immediate */ |
2229 | - rs2 = GET_FIELD_SPs(insn, 0, 10); | 2229 | + rs2 = GET_FIELD_SPs(insn, 0, 9); |
2230 | gen_movl_simm_T1(rs2); | 2230 | gen_movl_simm_T1(rs2); |
2231 | } | 2231 | } |
2232 | else { | 2232 | else { |