Mercurial > repos > blastem
comparison 68kinst.c @ 1330:af26a1ce92f7
Handle address register displacement when calculating branch targets in debugger
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 26 Apr 2017 01:05:40 -0700 |
parents | 78416556ae02 |
children | 696a029d09e9 |
comparison
equal
deleted
inserted
replaced
1329:85a90964b557 | 1330:af26a1ce92f7 |
---|---|
1571 uint32_t ret = 0; | 1571 uint32_t ret = 0; |
1572 switch(inst->src.addr_mode) | 1572 switch(inst->src.addr_mode) |
1573 { | 1573 { |
1574 case MODE_AREG_INDIRECT: | 1574 case MODE_AREG_INDIRECT: |
1575 ret = aregs[inst->src.params.regs.pri]; | 1575 ret = aregs[inst->src.params.regs.pri]; |
1576 break; | |
1577 case MODE_AREG_DISPLACE: | |
1578 ret = aregs[inst->src.params.regs.pri] + inst->src.params.regs.displacement; | |
1576 break; | 1579 break; |
1577 case MODE_AREG_INDEX_DISP8: { | 1580 case MODE_AREG_INDEX_DISP8: { |
1578 uint8_t sec_reg = inst->src.params.regs.sec >> 1 & 0x7; | 1581 uint8_t sec_reg = inst->src.params.regs.sec >> 1 & 0x7; |
1579 ret = aregs[inst->src.params.regs.pri]; | 1582 ret = aregs[inst->src.params.regs.pri]; |
1580 uint32_t * regfile = inst->src.params.regs.sec & 0x10 ? aregs : dregs; | 1583 uint32_t * regfile = inst->src.params.regs.sec & 0x10 ? aregs : dregs; |