diff options
author | Paul Brook <paul@codesourcery.com> | 2005-07-29 17:28:33 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2005-07-29 17:28:33 +0000 |
commit | 92e90b6eb3b2c77ecc6b93fe96f0896b24039ec2 (patch) | |
tree | c9de5afa742e0bd95d6056789c136d85e1a6d16c /opcodes/arm-dis.c | |
parent | 0facbdf5c2ef772b4c43b7041b72e32c8210eab9 (diff) | |
download | gdb-92e90b6eb3b2c77ecc6b93fe96f0896b24039ec2.zip gdb-92e90b6eb3b2c77ecc6b93fe96f0896b24039ec2.tar.gz gdb-92e90b6eb3b2c77ecc6b93fe96f0896b24039ec2.tar.bz2 |
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/arm-dis.c')
-rw-r--r-- | opcodes/arm-dis.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 0f3b65e..14b9901 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; |