From bc86f0d5dd552aac65a8e7cb0d0ef0e596dd7060 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Hentschel?= Date: Sat, 7 Jul 2012 15:10:06 +0200 Subject: [PATCH] winedbg: Add branch and exchange operator to ARM disassembler. --- programs/winedbg/be_arm.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/programs/winedbg/be_arm.c b/programs/winedbg/be_arm.c index 866ab61295f..bc19c984b5d 100644 --- a/programs/winedbg/be_arm.c +++ b/programs/winedbg/be_arm.c @@ -133,6 +133,12 @@ static UINT arm_disasm_branchreg(UINT inst, ADDRESS64 *addr) return 0; } +static UINT arm_disasm_branchxchg(UINT inst, ADDRESS64 *addr) +{ + dbg_printf("\n\tbx%s\t%s", get_cond(inst), tbl_regs[get_nibble(inst, 0)]); + return 0; +} + static UINT arm_disasm_dataprocessing(UINT inst, ADDRESS64 *addr) { short condcodes = (inst >> 20) & 0x01; @@ -691,7 +697,8 @@ struct inst_arm static const struct inst_arm tbl_arm[] = { { 0x0e000000, 0x0a000000, arm_disasm_branch }, { 0x0e000090, 0x00000090, arm_disasm_halfwordtrans }, - { 0x0fffff00, 0x012fff00, arm_disasm_branchreg }, + { 0x0ffffff0, 0x012fff00, arm_disasm_branchreg }, + { 0x0ffffff0, 0x012fff10, arm_disasm_branchxchg }, { 0x0c000000, 0x00000000, arm_disasm_dataprocessing }, { 0x0c000000, 0x04000000, arm_disasm_singletrans }, { 0x0e000000, 0x08000000, arm_disasm_blocktrans }, -- 2.11.4.GIT