=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: winedbg: Add swap operator to ARM disassembler.

Alexandre Julliard julliard at winehq.org
Mon Jul 9 14:56:37 CDT 2012


Module: wine
Branch: master
Commit: b96d613337537477b1571c88170011a1db8d5c56
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b96d613337537477b1571c88170011a1db8d5c56

Author: André Hentschel <nerv at dawncrow.de>
Date:   Sat Jul  7 15:12:20 2012 +0200

winedbg: Add swap operator to ARM disassembler.

---

 programs/winedbg/be_arm.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/programs/winedbg/be_arm.c b/programs/winedbg/be_arm.c
index 3beb60a..7095208 100644
--- a/programs/winedbg/be_arm.c
+++ b/programs/winedbg/be_arm.c
@@ -156,6 +156,16 @@ static UINT arm_disasm_longmul(UINT inst, ADDRESS64 *addr)
     return 0;
 }
 
+static UINT arm_disasm_swp(UINT inst, ADDRESS64 *addr)
+{
+    short byte = (inst >> 22) & 0x01;
+
+    dbg_printf("\n\tswp%s%s\t%s, %s, [%s]", get_cond(inst), byte ? "b" : "",
+               tbl_regs[get_nibble(inst, 3)], tbl_regs[get_nibble(inst, 0)],
+               tbl_regs[get_nibble(inst, 4)]);
+    return 0;
+}
+
 static UINT arm_disasm_branchreg(UINT inst, ADDRESS64 *addr)
 {
     dbg_printf("\n\tb%s\t%s", get_cond(inst), tbl_regs[get_nibble(inst, 0)]);
@@ -727,6 +737,7 @@ static const struct inst_arm tbl_arm[] = {
     { 0x0e000000, 0x0a000000, arm_disasm_branch },
     { 0x0fc000f0, 0x00000090, arm_disasm_mul },
     { 0x0f8000f0, 0x00800090, arm_disasm_longmul },
+    { 0x0fb00ff0, 0x01000090, arm_disasm_swp },
     { 0x0e000090, 0x00000090, arm_disasm_halfwordtrans },
     { 0x0ffffff0, 0x012fff00, arm_disasm_branchreg },
     { 0x0ffffff0, 0x012fff10, arm_disasm_branchxchg },




More information about the wine-cvs mailing list