aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-08-19 13:05:42 +0000
committerNick Clifton <nickc@redhat.com>2003-08-19 13:05:42 +0000
commitf02232aaa38100b38435f4bdbc9e0b22c868734c (patch)
tree4660af88b4d96211511f4b0d3c184a664d0c6bc8 /opcodes
parent062103babe9da9c15d6286c933ff14c179ac65ea (diff)
downloadgdb-f02232aaa38100b38435f4bdbc9e0b22c868734c.zip
gdb-f02232aaa38100b38435f4bdbc9e0b22c868734c.tar.gz
gdb-f02232aaa38100b38435f4bdbc9e0b22c868734c.tar.bz2
Add support for unindexed form of Addressing Mode 5
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/arm-dis.c20
2 files changed, 19 insertions, 6 deletions
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 <nickc@redhat.com>
+
+ * arm-dis.c (print_insn_arm: case 'A'): Add code to
+ disassemble unindexed form of Addressing Mode 5.
+
2003-08-19 Alan Modra <amodra@bigpond.net.au>
* 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;