From f02232aaa38100b38435f4bdbc9e0b22c868734c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 19 Aug 2003 13:05:42 +0000 Subject: Add support for unindexed form of Addressing Mode 5 --- opcodes/ChangeLog | 5 +++++ opcodes/arm-dis.c | 20 ++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'opcodes') diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 02a6d17..077c4ed 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2003-08-19 Nick Clifton + + * arm-dis.c (print_insn_arm: case 'A'): Add code to + disassemble unindexed form of Addressing Mode 5. + 2003-08-19 Alan Modra * ppc-opc.c (PPC440): Define. diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 97ec842..ac36e88 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -445,9 +445,11 @@ print_insn_arm (pc, info, given) case 'A': func (stream, "[%s", arm_regnames [(given >> 16) & 0xf]); - if ((given & 0x01000000) != 0) + + if ((given & (1 << 24)) != 0) { int offset = given & 0xff; + if (offset) func (stream, ", %s#%d]%s", ((given & 0x00800000) == 0 ? "-" : ""), @@ -459,12 +461,18 @@ print_insn_arm (pc, info, given) else { int offset = given & 0xff; - if (offset) - func (stream, "], %s#%d", - ((given & 0x00800000) == 0 ? "-" : ""), - offset * 4); + + func (stream, "]"); + + if (given & (1 << 21)) + { + if (offset) + func (stream, ", %s#%d", + ((given & 0x00800000) == 0 ? "-" : ""), + offset * 4); + } else - func (stream, "]"); + func (stream, ", {%d}", offset); } break; -- cgit v1.1