diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2001-10-08 18:50:37 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2001-10-08 18:50:37 +0000 |
commit | b1ee46c5af3c2f31fd19d3643eb0c0783d4929e6 (patch) | |
tree | ff2c6a371c4b3a50055290e64688ebad34419690 /opcodes/arm-dis.c | |
parent | 8642cce86a850b9aa0c2fed31f29c9ca2cabd1c4 (diff) | |
download | gdb-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.c | 19 |
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) |