aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-arm
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2009-02-23 21:48:53 +0000
committerDaniel Jacobowitz <drow@false.org>2009-02-23 21:48:53 +0000
commit461a49cacae7574c0f380957f125e96401f170e8 (patch)
tree30087e9013b7845f505ca64ce4f3429c94479370 /ld/testsuite/ld-arm
parent4c664d7bf7005e368a8ee5183ee018924acf0f9b (diff)
downloadgdb-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.exp3
-rw-r--r--ld/testsuite/ld-arm/farcall-arm-arm-be8.d6
-rw-r--r--ld/testsuite/ld-arm/farcall-thumb-arm-be8.d17
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