mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-22 23:17:28 +08:00
33d7dc7954
* 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.
232 lines
8.9 KiB
XML
232 lines
8.9 KiB
XML
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.
|