mirror of
https://github.com/LIV2/WinUAE.git
synced 2025-12-06 00:12:52 +00:00
DISASM_FLAG_VAL_FORCE disassembler parameter: always show EA, even if it is simple (An)
This commit is contained in:
parent
a253ff3c4a
commit
16db420ce3
23
disasm.cpp
23
disasm.cpp
@ -212,7 +212,7 @@ static void showea_val(TCHAR *buffer, uae_u16 opcode, uaecptr addr, int size)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (!(disasm_flags & DISASM_FLAG_VAL)) {
|
||||
if (!(disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL))) {
|
||||
goto skip;
|
||||
}
|
||||
|
||||
@ -449,7 +449,7 @@ uaecptr ShowEA_disp(uaecptr *pcp, uaecptr base, TCHAR *buffer, const TCHAR *name
|
||||
addr = base + outer;
|
||||
|
||||
if (buffer) {
|
||||
if (disasm_flags & DISASM_FLAG_VAL) {
|
||||
if (disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL)) {
|
||||
_stprintf(p, disasm_lc_hex(_T(" == $%08X")), addr);
|
||||
p += _tcslen(p);
|
||||
}
|
||||
@ -472,13 +472,13 @@ uaecptr ShowEA_disp(uaecptr *pcp, uaecptr base, TCHAR *buffer, const TCHAR *name
|
||||
addr = base + (uae_s32)((uae_s8)disp8) + dispreg;
|
||||
if (buffer) {
|
||||
if (pcrel) {
|
||||
if (disasm_flags & DISASM_FLAG_VAL) {
|
||||
if (disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL)) {
|
||||
_stprintf(buffer, _T("(%s%s%s,$%02x=$%08x) == $%08x"), name, regstr, mult, (uae_u8)disp8, (*pcp) += disp8, addr);
|
||||
} else {
|
||||
_stprintf(buffer, _T("(%s%s%s,$%02x=$%08x)"), name, regstr, mult, (uae_u8)disp8, (*pcp) += disp8);
|
||||
}
|
||||
} else {
|
||||
if (disasm_flags & DISASM_FLAG_VAL) {
|
||||
if (disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL)) {
|
||||
_stprintf(buffer, _T("(%s%s%s,$%02x) == $%08x"), name, regstr, mult, (uae_u8)disp8, addr);
|
||||
} else {
|
||||
_stprintf(buffer, _T("(%s%s%s,$%02x)"), name, regstr, mult, (uae_u8)disp8);
|
||||
@ -523,16 +523,25 @@ uaecptr ShowEA(void *f, uaecptr pc, uae_u16 opcode, int reg, amodes mode, wordsi
|
||||
case Aind:
|
||||
_stprintf(buffer, _T("(%c%d)"), disasm_areg, reg);
|
||||
addr = regs.regs[reg + 8];
|
||||
if (disasm_flags & DISASM_FLAG_VAL_FORCE) {
|
||||
_stprintf(buffer + _tcslen(buffer), disasm_lc_hex(_T(" == $%08X")), addr);
|
||||
}
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case Aipi:
|
||||
_stprintf(buffer, _T("(%c%d)+"), disasm_areg, reg);
|
||||
addr = regs.regs[reg + 8];
|
||||
if (disasm_flags & DISASM_FLAG_VAL_FORCE) {
|
||||
_stprintf(buffer + _tcslen(buffer), disasm_lc_hex(_T(" == $%08X")), addr);
|
||||
}
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case Apdi:
|
||||
_stprintf(buffer, _T("-(%c%d)"), disasm_areg, reg);
|
||||
addr = regs.regs[reg + 8] - datasizes[size];
|
||||
if (disasm_flags & DISASM_FLAG_VAL_FORCE) {
|
||||
_stprintf(buffer + _tcslen(buffer), disasm_lc_hex(_T(" == $%08X")), addr);
|
||||
}
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case Ad16:
|
||||
@ -545,7 +554,7 @@ uaecptr ShowEA(void *f, uaecptr pc, uae_u16 opcode, int reg, amodes mode, wordsi
|
||||
_stprintf (offtxt, disasm_lc_hex(_T("$%04X")), disp16);
|
||||
addr = m68k_areg (regs, reg) + disp16;
|
||||
_stprintf(buffer, _T("(%c%d,%s)"), disasm_areg, reg, offtxt);
|
||||
if (disasm_flags & DISASM_FLAG_VAL) {
|
||||
if (disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL)) {
|
||||
_stprintf(buffer + _tcslen(buffer), disasm_lc_hex(_T(" == $%08X")), addr);
|
||||
}
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
@ -564,7 +573,7 @@ uaecptr ShowEA(void *f, uaecptr pc, uae_u16 opcode, int reg, amodes mode, wordsi
|
||||
addr += (uae_s16)disp16;
|
||||
_stprintf(buffer, _T("(%s"), disasm_pcreg);
|
||||
_stprintf(buffer + _tcslen(buffer), disasm_lc_hex(_T(",$%04X)")), disp16 & 0xffff);
|
||||
if (disasm_flags & DISASM_FLAG_VAL) {
|
||||
if (disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL)) {
|
||||
_stprintf(buffer + _tcslen(buffer), disasm_lc_hex(_T(" == $%08X")), addr);
|
||||
}
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
@ -1692,7 +1701,7 @@ static void resolve_if_jmp(TCHAR *s, uae_u32 addr)
|
||||
if (opcode == 0x4ef9) { // JMP x.l
|
||||
TCHAR *p = s + _tcslen(s);
|
||||
uae_u32 addr2 = get_long_debug(addr + 2);
|
||||
if (disasm_flags & DISASM_FLAG_VAL) {
|
||||
if (disasm_flags & (DISASM_FLAG_VAL_FORCE | DISASM_FLAG_VAL)) {
|
||||
_stprintf(p, disasm_lc_hex(_T(" == $%08X ")), addr2);
|
||||
|
||||
}
|
||||
|
||||
@ -25,3 +25,4 @@ extern TCHAR disasm_hexprefix[3];
|
||||
#define DISASM_FLAG_VAL 128
|
||||
#define DISASM_FLAG_WORDS 256
|
||||
#define DISASM_FLAG_ABSSHORTLONG 512
|
||||
#define DISASM_FLAG_VAL_FORCE 1024
|
||||
|
||||
@ -5791,7 +5791,8 @@ static void target_load_debugger_config(void)
|
||||
{
|
||||
int size;
|
||||
|
||||
disasm_flags = DISASM_FLAG_LC_MNEMO | DISASM_FLAG_LC_REG | DISASM_FLAG_LC_SIZE | DISASM_FLAG_LC_HEX | DISASM_FLAG_CC | DISASM_FLAG_EA | DISASM_FLAG_VAL | DISASM_FLAG_WORDS;
|
||||
disasm_flags = DISASM_FLAG_LC_MNEMO | DISASM_FLAG_LC_REG | DISASM_FLAG_LC_SIZE | DISASM_FLAG_LC_HEX |
|
||||
DISASM_FLAG_CC | DISASM_FLAG_EA | DISASM_FLAG_VAL | DISASM_FLAG_WORDS;
|
||||
disasm_min_words = 5;
|
||||
disasm_max_words = 16;
|
||||
disasm_hexprefix[0] = '$';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user