blob: 873367d7c1f51cbcad1a82583b4174c748c44c39 [file] [log] [blame]
2006-01-16 Joseph Myers <joseph@codesourcery.com>
Backport:
2005-08-02 Khem Raj <kraj@mvista.com>
* config/tc-arm.c (do_iwmmxt_wldstd): Correct the offset range for
WLDRD/WSTRD instruction.
2005-08-03 Nick Clifton <nickc@redhat.com>
* gas/arm/iwmmxt-bad2.s: New file: Check for error messages about
erroneous offsets in iwmmxt instructions. Cannot be part of
iwmmxt-bad.s because the errors there stop the assembler before it
gets to check the offsets in instructions.
* gas/arm/iwmmxt-bad2.d: New file.
* gas/arm/iwmmxt-bad2.l: New file: Expected error messages.
2005-08-02 Khem Raj <kraj@mvista.com>
* gas/arm/iwmmxt.s: Change the offset values of the WLDRD, WSTRD
and WSTRW instructions to be larger than +/-255.
* gas/arm/iwmmxt.d: Fix the expected results for these
instructions.
2005-04-13 Mark Mitchell <mark@codesourcery.com>
* doc/binutils.info: Remove.
2005-05-01 Paul Brook <paul@codesourcery.com>
* bfd/elflink.c (_bfd_elf_merge_symbol): Skip weak definitions if a
strong definition has already been seen.
2005-05-01 Paul Brook <paul@codesourcery.com>
* bfd/elf32-arm.c (bfd_elf32_arm_process_before_allocation): Treat
R_ARM_PLT32 the same as R_ARM_PC24.
(arm_add_to_rel): Ditto.
2005-05-01 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (thumb32_mode): Rename unified_syntax.
All uses changed to match.
(COND_ALWAYS): Don't offset.
(COND_MASK): Delete.
(struct arm_it): Add cond field.
(struct asm_opcode): Add tag field. Change some fields to
unsigned int and/or to bitfields.
(my_get_expression): If unified_syntax, always treat the
prefix as optional.
(s_thumb32, s_thumb32_func): Delete.
(opcode_select, s_force_thumb): Don't set thumb32_mode.
(s_syntax): New function.
(md_pseudo_table): Update to match.
(do_blx, do_iwmmxt_wldstw): Look at inst.cond, not
inst.instruction, for the condition.
(do_it): New function.
(do_t_branch): Get the condition from inst.cond and patch it
into the appropriate place.
(output_inst): If inst.size == 0, output nothing, but do issue
a diagnostic if any.
(enum opcode_tag): New set of constants.
(opcode_lookup): New function.
(md_assemble): Use opcode_lookup. Restructure a little.
(conds, OPS0): Adjust comment.
(TxCE, TxCM, TUE, TUF): Rewrite.
(TCC): Delete.
(TxC3, TC3, tC3, TxCM_, C3, C3E): New notational macros.
(insns): Use TC3, tC3, or C3, as appropriate, for all
instructions where the conditional infix appears after the
third letter of the mnemonic. Use TCE for 'b'. Use C3E for
'cmfe' and 'cnfe'. Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
Use TUE, with a dummy ARM opcode, for all variants of 'it'.
* opcodes/arm-dis.c: Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
* gas/testsuite/gas/arm/thumb.d: bal.n is no longer
distinguishable from b.n.
* gas/testsuite/gas/arm/thumb32.d: Likewise. Change 'czbne'
to 'cbnz', 'czbeq' to 'cbz'.
* gas/testsuite/gas/arm/thumb32.s: Use .syntax unified.
Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
2005-05-01 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (encode_thumb32_addr_mode): Set inst.reloc.pc_rel
if is_pc.
(T16_32_TAB): Delete unused entry for BLX.
(do_t_ldst): Don't offset inst.reloc.exp.X_add_number for PC-relative
addressing.
(md_pcrel_from): Report the adjusted PC for
BFD_RELOC_ARM_THUMB_OFFSET and BFD_RELOC_ARM_T32_OFFSET_IMM.
(md_apply_fix3): Correct bitmasks for BFD_RELOC_ARM_T32_OFFSET_IMM.
Do not round up value for PC-relative BFD_RELOC_ARM_THUMB_OFFSET.
* gas/testsuite/gas/arm/thumb.s: Test PC-relative ldr more thoroughly.
* gas/testsuite/gas/arm/thumb.d: Update to match.
* gas/testsuite/gas/arm/thumb32.s: Properly align labels that
will be targeted by blx instructions.
* gas/testsuite/gas/arm/thumb32.d: Update to match. Correct
expected dissassembly of PC-relative ldr.
* gas/testsuite/gas/arm/macro1.s: Add leading label and
trailing padding for a.out compatibility.
* gas/testsuite/gas/arm/macro1.d: Update to match.
* gas/testsuite/gas/arm/tcompat2.s: Add trailing padding for a.out
compatibility.
* gas/testsuite/gas/arm/tcompat2.d: Update to match.
* opcodes/arm-dis.c (print_insn_thumb32): Reorganize %a and %A
handling. Call info->print_address_func when %a/%A are applied
to a PC-relative instruction.
2005-04-29 Zack Weinberg <zack@codesourcery.com>
* gas/sb.c: Include as.h.
(sb_to_scrub, scrub_position, scrub_from_sb): New statics.
(sb_scrub_and_add_sb): New interface.
* gas/sb.h: Declare sb_scrub_and_add_sb.
* gas/input-scrub.c (input_scrub_include_sb): Use it.
* gas/config/tc-arm.c (do_t_arit3c): Correct typo in expression.
(do_t_mul): Allow dest to equal either source1 or source2 in
16-bit form; do not complain about dest == source1 in any
case.
* gas/testsuite/gas/arm/tcompat2.s: Test both dest==source1 and
dest==source2 for commutative arithmetic instructions.
* gas/testsuite/gas/arm/tcompat2.d: Update to match.
* gas/testsuite/gas/arm/t16-bad.l: Adjust expected diagnostic.
* gas/testsuite/gas/arm/macro1.s, gas/arm/macro1.d: New test pair.
* gas/testsuite/gas/arm/arm.exp: Run it.
2005-04-25 Zack Weinberg <zack@codesourcery.com>
Thumb32 assembler.
* include/elf/arm.h: Import full set of relocation names from
latest AAELF. Make the primary name of all relocations be the one
AAELF specifies. Provide aliases under the traditional names.
Kill FIRST_INVALID_RELOC_* and LAST_INVALID_RELOC_*.
* bfd/reloc.c: Reorganize ARM relocations. Remove ARM relocations
that are never generated. Document more of the relocations. Add
relocations for Thumb32.
* bfd/libbfd.h, bfd/bfd-in2.h: Regenerate.
* bfd/elf32-arm.c: Reorganize howto tables. Implement Thumb32
relocations.
* ld/testsuite/ld-arm/mixed-app.d: Adjust expectations for
renamed relocations.
* gas/hash.c (hash_find_n): New interface.
* gas/hash.h: Prototype it.
* gas/config/tc-arm.c: Rewrite and reorganize. Implement 32-bit
Thumb instructions.
* gas/testsuite/gas/arm: Convert all "gas_test" style tests to
"run_dump_test" style tests, for more thorough testing. Make
adjustments to expectations where necessary.
* gas/testsuite/gas/arm/t16-bad.s, gas/testsuite/gas/arm/tcompat.s
* gas/testsuite/gas/arm/tcompat2.s, gas/testsuite/gas/arm/thumb32.s:
New test cases.
* opcodes/arm-dis.c: Add support for Thumb32 instructions and
16-bit V6T2 instructions.
2005-04-13 Paul Brook <paul@codesourcery.com>
Backport from mainline.
2005-04-11 Alan Modra <amodra@bigpond.net.au>
* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
as_needed libs that were not needed.
(gld${EMULATION_NAME}_check_needed): Likewise.
2005-04-08 Mark Mitchell <mark@codesourcery.com>
* ld/configure.tgt (arm-wrs-linux-gnueabi*): Support both big- and
little-endian.
2005-04-08 Paul Brook <paul@codesourcery.com>
* elf32-arm.c (ARM2THUMB_GLUE_SIZE): Rename...
(ARM2THUMB_STATIC_GLUE_SIZE): ... to this.
(ARM2THUMB_PIC_GLUE_SIZE): Define.
(a2t1p_ldr_insn, a2t2p_add_pc_insn, a2t3p_bx_r12_insn): Add.
(elf32_arm_to_thumb_stub): Create PIC stubs.
(record_arm_to_thumb_glue): Use different stub size for relocatable
images.
2005-03-29 Julian Brown <julian@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Use blx to get to
symbian plt entries from thumb mode.
2005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
Phil Blundell <philb@gnu.org>
* bfd/bfd-in2.h, libbfd.h: Regenerated.
* bfd/reloc.c: Add ARM TLS relocations.
* bfd/elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
relocations.
(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
(elf32_arm_tls_ie32_howto): New.
(elf32_arm_howto_from_type): Support TLS relocations.
(elf32_arm_reloc_map): Likewise.
(elf32_arm_reloc_type_lookup): Likewise.
(TCB_SIZE): Define.
(struct elf32_arm_obj_tdata): New.
(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
(elf32_arm_mkobject): New function.
(struct elf32_arm_relocs_copied): Add pc_count.
(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
(GOT_TLS_IE): Define.
(struct elf32_arm_link_hash_table): Add tls_ldm_got.
(elf32_arm_link_hash_newfunc): Initialize tls_type.
(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
(dtpoff_base, tpoff): New functions.
(elf32_arm_final_link_relocate): Handle TLS relocations.
(IS_ARM_TLS_RELOC): Define.
(elf32_arm_relocate_section): Warn about TLS mismatches.
(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
(elf32_arm_check_relocs): Detect invalid symbol indexes. Handle
TLS relocations and pc_count.
(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
(allocate_dynrelocs): Handle TLS. Bind REL32 relocs to local
calls.
(elf32_arm_size_dynamic_sections): Handle TLS.
(elf32_arm_finish_dynamic_symbol): Likewise.
(bfd_elf32_mkobject): Define.
* gas/config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
(md_apply_fix3): Mark TLS symbols.
(tc_gen_reloc): Handle TLS relocations.
(arm_fix_adjustable): Ignore TLS relocations.
(s_arm_elf_cons): Support expressions after decorated symbols.
* gas/testsuite/gas/arm/tls.s, gas/testsuite/gas/arm/tls.d: New files.
* gas/testsuite/gas/arm/arm.exp: Run TLS test.
* include/elf/arm.h: Add TLS relocations.
* ld/testsuite/ld-arm/tls-lib.s, ld/testsuite/ld-arm/tls-lib.d,
ld/testsuite/ld-arm/tls-lib.r, ld/testsuite/ld-arm/tls-app.s,
ld/testsuite/ld-arm/tls-app.d, ld/testsuite/ld-arm/tls-app.r: New files.
* ld/testsuite/ld-arm/arm-lib.ld, ld/testsuite/ld-arm/arm-dyn.ld:
Increase data segment alignment.
* ld/testsuite/ld-arm/arm-elf.exp: Run TLS tests.
2005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
* bfd/elf32-arm.c (elf32_arm_check_relocs): Increment count for all
relocation types. Don't count relocations which will use a PLT.
2005-03-23 Jim Blandy <jimb@redhat.com>
* config/tc-arm.c (arm_adjust_symtab): Fetch elf_sym's binding
attributes properly.
2005-03-21 Nick Clifton <nickc@redhat.com>
* gas/testsuite/gas/arm/iwmmxt.s: Update instructions that use the "never" value
in the conditional field to use "le" instead. This is so that the
disassembler will disassemble them.
* gas/testsuite/gas/arm/iwmmxt.d: Update expected disassemblies.
2005-03-18 Julian Brown <julian@codesourcery.com>
* ld/scripttempl/armbpapi.sc (.rel.dyn): Add .rel.init_array,
.rel.fini_array.
(.rela.dyn): Add .rela.init_array, .rela.fini_array.
(SECTIONS): Add .rel.other, .rela.other, .reli.other after PLT relocs.
2005-03-16 Daniel Jacobowitz <dan@codesourcery.com>
* gas/configure.tgt: Set emulation for arm-*-eabi*.
* gas/config/tc-arm.c (meabi_flags): Check EABI_DEFAULT.
* gas/config/te-armeabi.h: New file.
* gas/config/te-armlinuxeabi.h (EABI_DEFAULT): Define.
* gas/config/te-symbian.h: Include "te-armeabi.h".
2005-03-15 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (do_mla): Rename to do_mlas, take second
is_mls parameter; do not diagnose Rm==Rd when is_mls.
(do_mla, do_mls, five_bit_unsigned_immediate, bfci_lsb_and_width)
(do_bfc, do_bfi, do_bfx, do_rbit, do_mov16, do_ldsttv4): New functions.
(insns): Add ARMv6T2 instructions:
bfc bfi mls movw movt rbit sbfx ubfx ldrht ldrsht ldrsbt strht.
(arm_archs): Add V6T2 variants.
2005-03-12 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe,
wfi, yield.
* opcodes/arm-dis.c (thumb_opcodes): Add ARMv6K instructions nop, sev,
wfe, wfi, yield.
* gas/testsuite/gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test.
* gas/testsuite/gas/arm/arm.exp: Run it.
2005-03-12 Zack Weinberg <zack@codesourcery.com>
* opcodes/arm-dis.c (arm_opcodes): Document %E and %V.
Add entries for v6T2 ARM instructions:
bfc bfi mls strht ldrht ldrsht ldrsbt movw movt rbit ubfx sbfx.
(print_insn_arm): Add support for %E and %V.
* include/opcode/arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T.
Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2,
and ARM_ARCH_V6ZKT2.