diff options
Diffstat (limited to 'target-m68k')
-rw-r--r-- | target-m68k/op.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/target-m68k/op.c b/target-m68k/op.c index ad6f403f5c..6134bb018e 100644 --- a/target-m68k/op.c +++ b/target-m68k/op.c @@ -48,23 +48,23 @@ static long qreg_offsets[] = { uint32_t get_op(int qreg) { - if (qreg == QREG_T0) { + if (qreg >= TARGET_NUM_QREGS) { + return env->qregs[qreg - TARGET_NUM_QREGS]; + } else if (qreg == QREG_T0) { return T0; - } else if (qreg < TARGET_NUM_QREGS) { - return *(uint32_t *)(((long)env) + qreg_offsets[qreg]); } else { - return env->qregs[qreg - TARGET_NUM_QREGS]; + return *(uint32_t *)(((long)env) + qreg_offsets[qreg]); } } void set_op(int qreg, uint32_t val) { - if (qreg == QREG_T0) { + if (qreg >= TARGET_NUM_QREGS) { + env->qregs[qreg - TARGET_NUM_QREGS] = val; + } else if (qreg == QREG_T0) { T0 = val; - } else if (qreg < TARGET_NUM_QREGS) { - *(uint32_t *)(((long)env) + qreg_offsets[qreg]) = val; } else { - env->qregs[qreg - TARGET_NUM_QREGS] = val; + *(uint32_t *)(((long)env) + qreg_offsets[qreg]) = val; } } |