aboutsummaryrefslogtreecommitdiff
path: root/opcodes/arm-dis.c
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2001-10-08 18:50:37 +0000
committerAldy Hernandez <aldyh@redhat.com>2001-10-08 18:50:37 +0000
commitb1ee46c5af3c2f31fd19d3643eb0c0783d4929e6 (patch)
treeff2c6a371c4b3a50055290e64688ebad34419690 /opcodes/arm-dis.c
parent8642cce86a850b9aa0c2fed31f29c9ca2cabd1c4 (diff)
downloadgdb-b1ee46c5af3c2f31fd19d3643eb0c0783d4929e6.zip
gdb-b1ee46c5af3c2f31fd19d3643eb0c0783d4929e6.tar.gz
gdb-b1ee46c5af3c2f31fd19d3643eb0c0783d4929e6.tar.bz2
* opcodess/arm-opc.h (arm_opcodes): Add cirrus insns.
* opcodes/arm-dis.c (print_insn_arm): Add 'I' case.
Diffstat (limited to 'opcodes/arm-dis.c')
-rw-r--r--opcodes/arm-dis.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 61038ae..104b933 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -445,6 +445,25 @@ print_insn_arm (pc, info, given)
}
break;
+ case 'I':
+ /* Print a Cirrus/DSP shift immediate. */
+ /* Immediates are 7bit signed ints with bits 0..3 in
+ bits 0..3 of opcode and bits 4..6 in bits 5..7
+ of opcode. */
+ {
+ int imm;
+
+ imm = (given & 0xf) | ((given & 0xe0) >> 1);
+
+ /* Is ``imm'' a negative number? */
+ if (imm & 0x40)
+ imm |= (-1 << 7);
+
+ func (stream, "%d", imm);
+ }
+
+ break;
+
case 'C':
func (stream, "_");
if (given & 0x80000)