Commit c59b97aad76ccb9a33c747cae308cc73db7792d8
1 parent
aab8588a
Fix ColdFire fdmoved address decoding.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6641 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
4 additions
and
4 deletions
target-m68k/translate.c
... | ... | @@ -2141,7 +2141,7 @@ DISAS_INSN(fpu) |
2141 | 2141 | break; |
2142 | 2142 | case 5: /* OS_DOUBLE */ |
2143 | 2143 | tcg_gen_mov_i32(tmp32, AREG(insn, 0)); |
2144 | - switch (insn >> 3) { | |
2144 | + switch ((insn >> 3) & 7) { | |
2145 | 2145 | case 2: |
2146 | 2146 | case 3: |
2147 | 2147 | case 4: |
... | ... | @@ -2156,7 +2156,7 @@ DISAS_INSN(fpu) |
2156 | 2156 | goto undef; |
2157 | 2157 | } |
2158 | 2158 | gen_store64(s, tmp32, src); |
2159 | - switch (insn >> 3) { | |
2159 | + switch ((insn >> 3) & 7) { | |
2160 | 2160 | case 3: |
2161 | 2161 | tcg_gen_addi_i32(tmp32, tmp32, 8); |
2162 | 2162 | tcg_gen_mov_i32(AREG(insn, 0), tmp32); |
... | ... | @@ -2254,7 +2254,7 @@ DISAS_INSN(fpu) |
2254 | 2254 | if (opsize == OS_DOUBLE) { |
2255 | 2255 | tmp32 = tcg_temp_new_i32(); |
2256 | 2256 | tcg_gen_mov_i32(tmp32, AREG(insn, 0)); |
2257 | - switch (insn >> 3) { | |
2257 | + switch ((insn >> 3) & 7) { | |
2258 | 2258 | case 2: |
2259 | 2259 | case 3: |
2260 | 2260 | case 4: |
... | ... | @@ -2275,7 +2275,7 @@ DISAS_INSN(fpu) |
2275 | 2275 | goto undef; |
2276 | 2276 | } |
2277 | 2277 | src = gen_load64(s, tmp32); |
2278 | - switch (insn >> 3) { | |
2278 | + switch ((insn >> 3) & 7) { | |
2279 | 2279 | case 3: |
2280 | 2280 | tcg_gen_addi_i32(tmp32, tmp32, 8); |
2281 | 2281 | tcg_gen_mov_i32(AREG(insn, 0), tmp32); | ... | ... |