diff options
author | Christophe Lyon <christophe.lyon@st.com> | 2010-03-02 08:19:54 +0000 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@st.com> | 2010-03-02 08:19:54 +0000 |
commit | fe33d2fa468504c7c7790f1247e280aae9cd930d (patch) | |
tree | d68f2713713e4ba6d5d8b111bfa0b8fe3660a893 /ld/testsuite/ld-arm/farcall-mix.d | |
parent | 679b7c76e55b841830aee0642a343f14ebf0827e (diff) | |
download | gdb-fe33d2fa468504c7c7790f1247e280aae9cd930d.zip gdb-fe33d2fa468504c7c7790f1247e280aae9cd930d.tar.gz gdb-fe33d2fa468504c7c7790f1247e280aae9cd930d.tar.bz2 |
2010-03-02 Christophe Lyon <christophe.lyon@st.com>
Alan Modra <amodra@gmail.com>
bfd/
* elf32-arm.c (a8_erratum_fix): Add st_type field to record the
destination mode of the a8 stub.
(elf32_arm_link_hash_table): Add top_id field.
(elf32_arm_link_hash_table_create): Initialize top_id.
(arm_type_of_stub): Update prototype, st_type can now be updated
by this function. Actual destination address in case of PLT is
computed here, to help factorizing code.
(elf32_arm_stub_name): Update prototype, use stub_type additional
parameter to build stub name.
(elf32_arm_get_stub_entry): Update prototype, use stub_type
additional parameter to build stub entry.
(arm_build_one_stub): Use bfd_put_16/bfd_put_32 instead of
put_thumb_insn/put_arm_insn as BE8 encoding is now handled later.
Call elf32_arm_final_link_relocate to process all in-stub
relocations.
(elf32_arm_setup_section_lists): Update top_id.
(cortex_a8_erratum_scan): Record stub destination mode.
(elf32_arm_size_stubs): Update call to arm_type_of_stub according
to new prototype.
(elf32_arm_final_link_relocate): Enable processing of in-stub
REL32 relocations. Rely on arm_type_of_stub to detect if a stub is
needed, enabling code factorization.
(elf32_arm_final_link): Process stub sections.
(elf32_arm_output_map_sym): Add entry to code/data map.
ld/testsuite/
* ld-arm/arm-elf.exp: Change .text start address for
farcall-thumb-arm tests. Add v4t variant for farcall-mixed-lib
test.
* ld-arm/farcall-mixed-lib-v4t.d: New test.
* ld-arm/farcall-mixed-lib1.s: Don't force armv5t.
* ld-arm/farcall-mixed-lib2.s: Likewise.
* ld-arm/arm-call.d: Update expected results.
* ld-arm/cortex-a8-far.d: Likewise.
* ld-arm/farcall-group-size2.d: Likewise.
* ld-arm/farcall-group.d: Likewise.
* ld-arm/farcall-mix.d: Likewise.
* ld-arm/farcall-mix2.d: Likewise.
* ld-arm/farcall-mixed-app-v5.d: Likewise.
* ld-arm/farcall-mixed-app.d: Likewise.
* ld-arm/farcall-mixed-lib.d: Likewise.
* ld-arm/farcall-thumb-arm.d: Likewise.
* ld-arm/farcall-thumb-arm-blx.d: Likewise.
* ld-arm/farcall-thumb-arm-pic-veneer.d: Likewise.
* ld-arm/farcall-thumb-arm-blx-pic-veneer.d: Likewise.
* ld-arm/farcall-thumb-arm.s: Update test. Add a new call to
potentially generate different types of stubs.
Diffstat (limited to 'ld/testsuite/ld-arm/farcall-mix.d')
-rw-r--r-- | ld/testsuite/ld-arm/farcall-mix.d | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/ld/testsuite/ld-arm/farcall-mix.d b/ld/testsuite/ld-arm/farcall-mix.d index 669a79b..97e062c 100644 --- a/ld/testsuite/ld-arm/farcall-mix.d +++ b/ld/testsuite/ld-arm/farcall-mix.d @@ -4,32 +4,34 @@ Disassembly of section .text: 00001000 <_start>: - 1000: eb000009 bl 102c <__bar_from_arm> - 1004: eb00000b bl 1038 <__bar2_veneer> + 1000: eb000004 bl 1018 <__bar_from_arm> + 1004: eb00000e bl 1044 <__bar2_veneer> 1008: eb000005 bl 1024 <__bar3_veneer> - 100c: eb00000b bl 1040 <__bar4_from_arm> - 1010: eb000000 bl 1018 <__bar5_from_arm> + 100c: eb000009 bl 1038 <__bar4_from_arm> + 1010: eb000005 bl 102c <__bar5_from_arm> 1014: 00000000 andeq r0, r0, r0 -00001018 <__bar5_from_arm>: - 1018: e59fc000 ldr ip, \[pc, #0\] ; 1020 <__bar5_from_arm\+0x8> +00001018 <__bar_from_arm>: + 1018: e59fc000 ldr ip, \[pc, #0\] ; 1020 <__bar_from_arm\+0x8> 101c: e12fff1c bx ip - 1020: 0200202f .word 0x0200202f + 1020: 02002021 .word 0x02002021 00001024 <__bar3_veneer>: 1024: e51ff004 ldr pc, \[pc, #-4\] ; 1028 <__bar3_veneer\+0x4> 1028: 02002028 .word 0x02002028 -0000102c <__bar_from_arm>: - 102c: e59fc000 ldr ip, \[pc, #0\] ; 1034 <__bar_from_arm\+0x8> +0000102c <__bar5_from_arm>: + 102c: e59fc000 ldr ip, \[pc, #0\] ; 1034 <__bar5_from_arm\+0x8> 1030: e12fff1c bx ip - 1034: 02002021 .word 0x02002021 -00001038 <__bar2_veneer>: - 1038: e51ff004 ldr pc, \[pc, #-4\] ; 103c <__bar2_veneer\+0x4> - 103c: 02002024 .word 0x02002024 -00001040 <__bar4_from_arm>: - 1040: e59fc000 ldr ip, \[pc, #0\] ; 1048 <__bar4_from_arm\+0x8> - 1044: e12fff1c bx ip - 1048: 0200202d .word 0x0200202d + 1034: 0200202f .word 0x0200202f +00001038 <__bar4_from_arm>: + 1038: e59fc000 ldr ip, \[pc, #0\] ; 1040 <__bar4_from_arm\+0x8> + 103c: e12fff1c bx ip + 1040: 0200202d .word 0x0200202d + +00001044 <__bar2_veneer>: + 1044: e51ff004 ldr pc, \[pc, #-4\] ; 1048 <__bar2_veneer\+0x4> + 1048: 02002024 .word 0x02002024 ... + Disassembly of section .foo: 02002020 <bar>: |