diff options
author | Daniel Jacobowitz <drow@false.org> | 2009-02-23 21:48:53 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2009-02-23 21:48:53 +0000 |
commit | 461a49cacae7574c0f380957f125e96401f170e8 (patch) | |
tree | 30087e9013b7845f505ca64ce4f3429c94479370 /ld/testsuite/ld-arm | |
parent | 4c664d7bf7005e368a8ee5183ee018924acf0f9b (diff) | |
download | gdb-461a49cacae7574c0f380957f125e96401f170e8.zip gdb-461a49cacae7574c0f380957f125e96401f170e8.tar.gz gdb-461a49cacae7574c0f380957f125e96401f170e8.tar.bz2 |
2009-02-23 Christophe Lyon <christophe.lyon@st.com>
bfd/
* elf32-arm.c (stub_insn_type): New type.
(stub_reloc_type): Likewise.
(insn_sequence): Likewise.
(elf32_arm_stub_long_branch_any_any): Encode using insn_sequence.
(elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise.
(elf32_arm_stub_long_branch_thumb_only): Likewise.
(elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
(elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise.
(elf32_arm_stub_long_branch_any_any_pic): Likewise.
(elf32_arm_stub_hash_entry): Add new helper fields.
(stub_hash_newfunc): Initialize these new fields.
(arm_build_one_stub): Encode Arm and Thumb instructions separately
to take endianness into account.
(arm_size_one_stub): Compute size of stubs using insn_sequence.
(arm_map_one_stub): Code is now more generic, thanks to
insn_sequence.
ld/testsuite/
* ld-arm/arm-elf.exp: Add new farcall-thumb-arm-be8 test.
* ld-arm/farcall-thumb-arm-be8.d: New expected result.
* ld-arm/farcall-arm-arm-be8.d: Replace wildcards by instructions.
Diffstat (limited to 'ld/testsuite/ld-arm')
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/farcall-arm-arm-be8.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/farcall-thumb-arm-be8.d | 17 |
3 files changed, 23 insertions, 3 deletions
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index f850f74..43b6f80 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -297,6 +297,9 @@ set armeabitests { {"Thumb-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-W" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm.d}} "farcall-thumb-arm"} + {"Thumb-ARM farcall (BE8)" "-Ttext 0x1000 --section-start .foo=0x2001014 -EB --be8" "-W -EB" {farcall-thumb-arm.s} + {{objdump -d farcall-thumb-arm-be8.d}} + "farcall-thumb-arm"} {"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "-W" {farcall-thumb-arm-short.s} {{objdump -d farcall-thumb-arm-short.d}} "farcall-thumb-arm-short"} diff --git a/ld/testsuite/ld-arm/farcall-arm-arm-be8.d b/ld/testsuite/ld-arm/farcall-arm-arm-be8.d index 524ce6a..72bbff8 100644 --- a/ld/testsuite/ld-arm/farcall-arm-arm-be8.d +++ b/ld/testsuite/ld-arm/farcall-arm-arm-be8.d @@ -3,12 +3,12 @@ Disassembly of section .text: 00001000 <__bar_veneer>: - 1000: 04f01fe5 .* + 1000: 04f01fe5 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> 1004: 02001020 .word 0x02001020 00001008 <_start>: - 1008: fcffffeb .* + 1008: fcffffeb bl 1000 <__bar_veneer> Disassembly of section .foo: 02001020 <bar>: - 2001020: 1eff2fe1 .* + 2001020: 1eff2fe1 bx lr diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d b/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d new file mode 100644 index 0000000..8aeb805 --- /dev/null +++ b/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d @@ -0,0 +1,17 @@ +.*: file format .* + +Disassembly of section .text: + +00001000 <__bar_from_thumb>: + 1000: 7847 bx pc + 1002: c046 nop.* + 1004: 04f01fe5 ldr pc, \[pc, #-4\] ; 1008 <__bar_from_thumb\+0x8> + 1008: 02001014 .word 0x02001014 + 100c: 00000000 .word 0x00000000 + +00001010 <_start>: + 1010: fff7 f6ff bl 1000 <__bar_from_thumb> +Disassembly of section .foo: + +02001014 <bar>: + 2001014: 1eff2fe1 bx lr |