aboutsummaryrefslogtreecommitdiff
path: root/target-m68k/translate.c
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2009-02-23 14:17:33 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2009-02-23 14:17:33 +0000
commitc59b97aad76ccb9a33c747cae308cc73db7792d8 (patch)
tree601c98150183a4ad7baec13ca71bd4c19a074b6a /target-m68k/translate.c
parentaab8588a5da73490b8383d0b7fa74d1fdc47a58e (diff)
Fix ColdFire fdmoved address decoding.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6641 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-m68k/translate.c')
-rw-r--r--target-m68k/translate.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index ef976cf563..44214a0435 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -2141,7 +2141,7 @@ DISAS_INSN(fpu)
break;
case 5: /* OS_DOUBLE */
tcg_gen_mov_i32(tmp32, AREG(insn, 0));
- switch (insn >> 3) {
+ switch ((insn >> 3) & 7) {
case 2:
case 3:
case 4:
@@ -2156,7 +2156,7 @@ DISAS_INSN(fpu)
goto undef;
}
gen_store64(s, tmp32, src);
- switch (insn >> 3) {
+ switch ((insn >> 3) & 7) {
case 3:
tcg_gen_addi_i32(tmp32, tmp32, 8);
tcg_gen_mov_i32(AREG(insn, 0), tmp32);
@@ -2254,7 +2254,7 @@ DISAS_INSN(fpu)
if (opsize == OS_DOUBLE) {
tmp32 = tcg_temp_new_i32();
tcg_gen_mov_i32(tmp32, AREG(insn, 0));
- switch (insn >> 3) {
+ switch ((insn >> 3) & 7) {
case 2:
case 3:
case 4:
@@ -2275,7 +2275,7 @@ DISAS_INSN(fpu)
goto undef;
}
src = gen_load64(s, tmp32);
- switch (insn >> 3) {
+ switch ((insn >> 3) & 7) {
case 3:
tcg_gen_addi_i32(tmp32, tmp32, 8);
tcg_gen_mov_i32(AREG(insn, 0), tmp32);