summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-04-26 01:05:40 -0700
committerMichael Pavone <pavone@retrodev.com>2017-04-26 01:05:40 -0700
commit4aa194450243ebe3135ffd88b53b76146236a949 (patch)
tree8e4b5ca0b705acdcb848b240e28e5c0faf1d225e
parent3f8fd3720d38bded32fdf88ed3824f9c8745a4a7 (diff)
Handle address register displacement when calculating branch targets in debugger
-rw-r--r--68kinst.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/68kinst.c b/68kinst.c
index 810e8ad..e650c88 100644
--- a/68kinst.c
+++ b/68kinst.c
@@ -1574,6 +1574,9 @@ uint32_t m68k_branch_target(m68kinst * inst, uint32_t *dregs, uint32_t *aregs)
case MODE_AREG_INDIRECT:
ret = aregs[inst->src.params.regs.pri];
break;
+ case MODE_AREG_DISPLACE:
+ ret = aregs[inst->src.params.regs.pri] + inst->src.params.regs.displacement;
+ break;
case MODE_AREG_INDEX_DISP8: {
uint8_t sec_reg = inst->src.params.regs.sec >> 1 & 0x7;
ret = aregs[inst->src.params.regs.pri];