summaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2005-07-29 17:28:33 +0000
committerPaul Brook <paul@codesourcery.com>2005-07-29 17:28:33 +0000
commit92ec1fa49258d0155bb2ee39d1dd47a0a72c0d63 (patch)
tree1451326d048518801f3f81243358b6c32d22880f /opcodes
parentfcb91b69a9afeba834dfe6ce58e38058ad479c4d (diff)
downloadgdb-92ec1fa49258d0155bb2ee39d1dd47a0a72c0d63.tar.gz
2005-07-29 Paul Brook <paul@codesourcery.com>
bfd/ * reloc.c (BFD_RELOC_ARM_T32_IMM12): Add. * bfd-in2.h: Regeenrate. * libbfd.h: Regenerate. gas/ * config/tc-arm.c (parse_tb): New function. (enum operand_parse_code): Add OP_TB. (parse_operands): Handle OP_TB. (do_t_add_sub_w, do_t_tb): New functions. (insns): Add entries for addw, subw, tbb and tbh. (md_apply_fix): Handle BFD_RELOC_ARM_T32_IMM12. gas/testsuite/ * gas/arm/thumb32.s: Add tests for addw, subw, tbb and tbh. * gas/arm/thumb32.d: Ditto. opcodes/ * arm-dis.c (thumb32_opc): Fix addressing mode for tbh. (print_insn_thumb32): Fix decoding of thumb2 'I' operands.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/arm-dis.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index f764d0eb83a..539252e50fa 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-29 Paul Brook <paul@codesourcery.com>
+
+ * arm-dis.c (thumb32_opc): Fix addressing mode for tbh.
+ (print_insn_thumb32): Fix decoding of thumb2 'I' operands.
+
2005-07-25 DJ Delorie <dj@redhat.com>
* m32c-asm.c Regenerate.
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 0f3b65e13b4..14b9901ea06 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -839,7 +839,7 @@ static const struct opcode32 thumb32_opcodes[] =
{ARM_EXT_V6T2, 0xf3ef8000, 0xffeff0ff, "mrs\t%8-11r, %20?CSPSR"},
{ARM_EXT_V6T2, 0xf3af8100, 0xffffffe0, "cps\t#%0-4d"},
{ARM_EXT_V6T2, 0xe8d0f000, 0xfff0fff0, "tbb\t[%16-19r, %0-3r]"},
- {ARM_EXT_V6T2, 0xe8d0f010, 0xfff0fff0, "tbh\t[%16-19r, %0-3r]"},
+ {ARM_EXT_V6T2, 0xe8d0f010, 0xfff0fff0, "tbh\t[%16-19r, %0-3r, lsl #1]"},
{ARM_EXT_V6T2, 0xf3af8500, 0xffffff00, "cpsie\t%7'a%6'i%5'f, #%0-4d"},
{ARM_EXT_V6T2, 0xf3af8700, 0xffffff00, "cpsid\t%7'a%6'i%5'f, #%0-4d"},
{ARM_EXT_V6T2, 0xf3de8f00, 0xffffff00, "subs\tpc, lr, #%0-7d"},
@@ -2132,7 +2132,7 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
unsigned int imm12 = 0;
imm12 |= (given & 0x000000ffu);
imm12 |= (given & 0x00007000u) >> 4;
- imm12 |= (given & 0x04000000u) >> 12;
+ imm12 |= (given & 0x04000000u) >> 15;
func (stream, "#%u\t; 0x%x", imm12, imm12);
}
break;