diff options
Diffstat (limited to 'ld/testsuite')
26 files changed, 277 insertions, 254 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 775166c..cdbc267 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,22 @@ +2009-02-24 Daniel Jacobowitz <dan@codesourcery.com> + + * ld-arm/arm-elf.exp (armeabitests): Update duplicate test names. + Use normal output files for big-endian. + * ld-arm/farcall-arm-arm-be.d, ld-arm/farcall-thumb-arm-be.d: Delete. + * ld-arm/farcall-arm-arm-be8.d, ld-arm/farcall-arm-arm-pic-veneer.d, + ld-arm/farcall-arm-arm.d, ld-arm/farcall-arm-thumb-blx-pic-veneer.d, + ld-arm/farcall-arm-thumb-blx.d, ld-arm/farcall-arm-thumb-pic-veneer.d, + ld-arm/farcall-arm-thumb.d, ld-arm/farcall-group-size2.d, + ld-arm/farcall-group.d, ld-arm/farcall-mix.d, ld-arm/farcall-mix2.d, + ld-arm/farcall-thumb-arm-be8.d, + ld-arm/farcall-thumb-arm-blx-pic-veneer.d, + ld-arm/farcall-thumb-arm-blx.d, ld-arm/farcall-thumb-arm-short.d, + ld-arm/farcall-thumb-arm.d, + ld-arm/farcall-thumb-thumb-blx-pic-veneer.d, + ld-arm/farcall-thumb-thumb-blx.d, ld-arm/farcall-thumb-thumb-m.d, + ld-arm/farcall-thumb-thumb.d, ld-arm/thumb2-bl-as-thumb1-bad.d, + ld-arm/thumb2-bl-bad.d: Update for moved stubs. + 2009-02-23 Daniel Jacobowitz <dan@codesourcery.com> * ld-arm/arm-elf.exp (armeabitests): Run new tests. Correct BE8 output diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 2e32aea..da63b40 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -198,7 +198,7 @@ if { ![istarget "arm*-*-*eabi"] } { {"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s} {{objdump -d thumb2-bl-as-thumb1-bad-noeabi.d}} "thumb2-bl-as-thumb1-bad"} - {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s} + {"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s} {{objdump -d thumb2-bl-bad-noeabi.d}} "thumb2-bl-bad"} } @@ -268,7 +268,7 @@ set armeabitests { {{objdump -d farcall-arm-arm-be8.d}} "farcall-arm-arm-be8"} {"ARM-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB" "-EB" {farcall-arm-arm.s} - {{objdump -d farcall-arm-arm-be.d}} + {{objdump -d farcall-arm-arm.d}} "farcall-arm-arm-be"} {"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" {farcall-arm-thumb.s} @@ -304,7 +304,7 @@ set armeabitests { {{objdump -d farcall-thumb-arm-be8.d}} "farcall-thumb-arm-be8"} {"Thumb-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001014 -EB" "-W -EB" {farcall-thumb-arm.s} - {{objdump -d farcall-thumb-arm-be.d}} + {{objdump -d farcall-thumb-arm.d}} "farcall-thumb-arm-be"} {"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "-W" {farcall-thumb-arm-short.s} {{objdump -d farcall-thumb-arm-short.d}} diff --git a/ld/testsuite/ld-arm/farcall-arm-arm-be.d b/ld/testsuite/ld-arm/farcall-arm-arm-be.d deleted file mode 100644 index e4c8ca3..0000000 --- a/ld/testsuite/ld-arm/farcall-arm-arm-be.d +++ /dev/null @@ -1,14 +0,0 @@ -.*: file format .* - -Disassembly of section .text: - -00001000 <__bar_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> - 1004: 02001020 .word 0x02001020 - -00001008 <_start>: - 1008: ebfffffc bl 1000 <__bar_veneer> -Disassembly of section .foo: - -02001020 <bar>: - 2001020: e12fff1e bx lr diff --git a/ld/testsuite/ld-arm/farcall-arm-arm-be8.d b/ld/testsuite/ld-arm/farcall-arm-arm-be8.d index 72bbff8..cf3aa07 100644 --- a/ld/testsuite/ld-arm/farcall-arm-arm-be8.d +++ b/ld/testsuite/ld-arm/farcall-arm-arm-be8.d @@ -2,12 +2,13 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: 04f01fe5 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> - 1004: 02001020 .word 0x02001020 +00001000 <_start>: + 1000: 000000eb bl 1008 <__bar_veneer> + 1004: 00000000 andeq r0, r0, r0 -00001008 <_start>: - 1008: fcffffeb bl 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: 04f01fe5 ldr pc, \[pc, #-4\] ; 100c <__bar_veneer\+0x4> + 100c: 02001020 .word 0x02001020 Disassembly of section .foo: 02001020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d b/ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d index 39fb5c8..f5ff227 100644 --- a/ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d @@ -2,14 +2,15 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: e59fc000 ldr ip, \[pc, #0\] ; 1008 <__bar_veneer\+0x8> - 1004: e08ff00c add pc, pc, ip - 1008: 02000014 .word 0x02000014 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_veneer> + 1004: 00000000 andeq r0, r0, r0 -00001010 <_start>: - 1010: ebfffffa bl 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_veneer\+0x8> + 100c: e08ff00c add pc, pc, ip + 1010: 0200000c .word 0x0200000c + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-arm-arm.d b/ld/testsuite/ld-arm/farcall-arm-arm.d index e4c8ca3..7ee6d66 100644 --- a/ld/testsuite/ld-arm/farcall-arm-arm.d +++ b/ld/testsuite/ld-arm/farcall-arm-arm.d @@ -2,12 +2,13 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> - 1004: 02001020 .word 0x02001020 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_veneer> + 1004: 00000000 andeq r0, r0, r0 -00001008 <_start>: - 1008: ebfffffc bl 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar_veneer\+0x4> + 100c: 02001020 .word 0x02001020 Disassembly of section .foo: 02001020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d b/ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d index ede0c84..15c2274 100644 --- a/ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d @@ -2,14 +2,15 @@ Disassembly of section .text: -00001000 <__bar_from_arm>: - 1000: e59fc000 ldr ip, \[pc, #0\] ; 1008 <__bar_from_arm\+0x8> - 1004: e08ff00c add pc, pc, ip - 1008: 02000009 .word 0x02000009 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_from_arm> + 1004: 00000000 andeq r0, r0, r0 -00001010 <_start>: - 1010: ebfffffa bl 1000 <__bar_from_arm> +00001008 <__bar_from_arm>: + 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> + 100c: e08ff00c add pc, pc, ip + 1010: 02000001 .word 0x02000001 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-arm-thumb-blx.d b/ld/testsuite/ld-arm/farcall-arm-thumb-blx.d index d67387c..993a028 100644 --- a/ld/testsuite/ld-arm/farcall-arm-thumb-blx.d +++ b/ld/testsuite/ld-arm/farcall-arm-thumb-blx.d @@ -2,12 +2,13 @@ Disassembly of section .text: -00001000 <__bar_from_arm>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_from_arm\+0x4> - 1004: 02001015 .word 0x02001015 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_from_arm> + 1004: 00000000 andeq r0, r0, r0 -00001008 <_start>: - 1008: ebfffffc bl 1000 <__bar_from_arm> +00001008 <__bar_from_arm>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar_from_arm\+0x4> + 100c: 02001015 .word 0x02001015 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d b/ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d index ede0c84..15c2274 100644 --- a/ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d @@ -2,14 +2,15 @@ Disassembly of section .text: -00001000 <__bar_from_arm>: - 1000: e59fc000 ldr ip, \[pc, #0\] ; 1008 <__bar_from_arm\+0x8> - 1004: e08ff00c add pc, pc, ip - 1008: 02000009 .word 0x02000009 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_from_arm> + 1004: 00000000 andeq r0, r0, r0 -00001010 <_start>: - 1010: ebfffffa bl 1000 <__bar_from_arm> +00001008 <__bar_from_arm>: + 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> + 100c: e08ff00c add pc, pc, ip + 1010: 02000001 .word 0x02000001 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-arm-thumb.d b/ld/testsuite/ld-arm/farcall-arm-thumb.d index d7519a0..8291be3 100644 --- a/ld/testsuite/ld-arm/farcall-arm-thumb.d +++ b/ld/testsuite/ld-arm/farcall-arm-thumb.d @@ -2,14 +2,15 @@ Disassembly of section .text: -00001000 <__bar_from_arm>: - 1000: e59fc000 ldr ip, \[pc, #0\] ; 1008 <__bar_from_arm\+0x8> - 1004: e12fff1c bx ip - 1008: 02001015 .word 0x02001015 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_from_arm> + 1004: 00000000 andeq r0, r0, r0 -00001010 <_start>: - 1010: ebfffffa bl 1000 <__bar_from_arm> +00001008 <__bar_from_arm>: + 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> + 100c: e12fff1c bx ip + 1010: 02001015 .word 0x02001015 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-group-size2.d b/ld/testsuite/ld-arm/farcall-group-size2.d index bab6c68..d49887f 100644 --- a/ld/testsuite/ld-arm/farcall-group-size2.d +++ b/ld/testsuite/ld-arm/farcall-group-size2.d @@ -3,35 +3,35 @@ Disassembly of section .text: -00001000 <__bar2_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar2_veneer\+0x4> - 1004: 02003024 .word 0x02003024 -00001008 <__bar_from_arm>: - 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> - 100c: e12fff1c bx ip - 1010: 02003021 .word 0x02003021 - 1014: 00000000 .word 0x00000000 - -00001018 <_start>: - 1018: ebfffffa bl 1008 <__bar_from_arm> - 101c: ebfffff7 bl 1000 <__bar2_veneer> -00001020 <__bar3_veneer>: - 1020: e51ff004 ldr pc, \[pc, #-4\] ; 1024 <__bar3_veneer\+0x4> - 1024: 02003028 .word 0x02003028 -00001028 <__bar5_from_arm>: - 1028: e59fc000 ldr ip, \[pc, #0\] ; 1030 <__bar5_from_arm\+0x8> - 102c: e12fff1c bx ip - 1030: 0200302f .word 0x0200302f -00001034 <__bar4_from_arm>: - 1034: e59fc000 ldr ip, \[pc, #0\] ; 103c <__bar4_from_arm\+0x8> - 1038: e12fff1c bx ip - 103c: 0200302d .word 0x0200302d +00001000 <_start>: + 1000: eb000002 bl 1010 <__bar_from_arm> + 1004: ebffffff bl 1008 <__bar2_veneer> +00001008 <__bar2_veneer>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar2_veneer\+0x4> + 100c: 02003024 .word 0x02003024 +00001010 <__bar_from_arm>: + 1010: e59fc000 ldr ip, \[pc, #0\] ; 1018 <__bar_from_arm\+0x8> + 1014: e12fff1c bx ip + 1018: 02003021 .word 0x02003021 + 101c: 00000000 .word 0x00000000 +00001020 <myfunc>: + 1020: eb000002 bl 1030 <__bar3_veneer> + 1024: eb000006 bl 1044 <__bar4_from_arm> + 1028: eb000002 bl 1038 <__bar5_from_arm> + 102c: 00000000 andeq r0, r0, r0 +00001030 <__bar3_veneer>: + 1030: e51ff004 ldr pc, \[pc, #-4\] ; 1034 <__bar3_veneer\+0x4> + 1034: 02003028 .word 0x02003028 +00001038 <__bar5_from_arm>: + 1038: e59fc000 ldr ip, \[pc, #0\] ; 1040 <__bar5_from_arm\+0x8> + 103c: e12fff1c bx ip + 1040: 0200302f .word 0x0200302f +00001044 <__bar4_from_arm>: + 1044: e59fc000 ldr ip, \[pc, #0\] ; 104c <__bar4_from_arm\+0x8> + 1048: e12fff1c bx ip + 104c: 0200302d .word 0x0200302d ... -00001048 <myfunc>: - 1048: ebfffff4 bl 1020 <__bar3_veneer> - 104c: ebfffff8 bl 1034 <__bar4_from_arm> - 1050: ebfffff4 bl 1028 <__bar5_from_arm> Disassembly of section .foo: 02003020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-group.d b/ld/testsuite/ld-arm/farcall-group.d index 95ebfb3..f7ff972 100644 --- a/ld/testsuite/ld-arm/farcall-group.d +++ b/ld/testsuite/ld-arm/farcall-group.d @@ -3,34 +3,35 @@ Disassembly of section .text: -00001000 <__bar2_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar2_veneer\+0x4> - 1004: 02003024 .word 0x02003024 -00001008 <__bar_from_arm>: - 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> - 100c: e12fff1c bx ip - 1010: 02003021 .word 0x02003021 -00001014 <__bar3_veneer>: - 1014: e51ff004 ldr pc, \[pc, #-4\] ; 1018 <__bar3_veneer\+0x4> - 1018: 02003028 .word 0x02003028 -0000101c <__bar4_from_arm>: - 101c: e59fc000 ldr ip, \[pc, #0\] ; 1024 <__bar4_from_arm\+0x8> - 1020: e12fff1c bx ip - 1024: 0200302d .word 0x0200302d -00001028 <__bar5_from_arm>: - 1028: e59fc000 ldr ip, \[pc, #0\] ; 1030 <__bar5_from_arm\+0x8> - 102c: e12fff1c bx ip - 1030: 0200302f .word 0x0200302f +00001000 <_start>: + 1000: eb000007 bl 1024 <__bar_from_arm> + 1004: eb00000c bl 103c <__bar2_veneer> + +00001008 <myfunc>: + 1008: eb00000d bl 1044 <__bar3_veneer> + 100c: eb000007 bl 1030 <__bar4_from_arm> + 1010: eb000000 bl 1018 <__bar5_from_arm> + 1014: 00000000 andeq r0, r0, r0 + +00001018 <__bar5_from_arm>: + 1018: e59fc000 ldr ip, \[pc, #0\] ; 1020 <__bar5_from_arm\+0x8> + 101c: e12fff1c bx ip + 1020: 0200302f .word 0x0200302f +00001024 <__bar_from_arm>: + 1024: e59fc000 ldr ip, \[pc, #0\] ; 102c <__bar_from_arm\+0x8> + 1028: e12fff1c bx ip + 102c: 02003021 .word 0x02003021 +00001030 <__bar4_from_arm>: + 1030: e59fc000 ldr ip, \[pc, #0\] ; 1038 <__bar4_from_arm\+0x8> + 1034: e12fff1c bx ip + 1038: 0200302d .word 0x0200302d +0000103c <__bar2_veneer>: + 103c: e51ff004 ldr pc, \[pc, #-4\] ; 1040 <__bar2_veneer\+0x4> + 1040: 02003024 .word 0x02003024 +00001044 <__bar3_veneer>: + 1044: e51ff004 ldr pc, \[pc, #-4\] ; 1048 <__bar3_veneer\+0x4> + 1048: 02003028 .word 0x02003028 ... - -00001040 <_start>: - 1040: ebfffff0 bl 1008 <__bar_from_arm> - 1044: ebffffed bl 1000 <__bar2_veneer> - -00001048 <myfunc>: - 1048: ebfffff1 bl 1014 <__bar3_veneer> - 104c: ebfffff2 bl 101c <__bar4_from_arm> - 1050: ebfffff4 bl 1028 <__bar5_from_arm> Disassembly of section .foo: 02003020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-mix.d b/ld/testsuite/ld-arm/farcall-mix.d index 1880ae8..7b1a6c6 100644 --- a/ld/testsuite/ld-arm/farcall-mix.d +++ b/ld/testsuite/ld-arm/farcall-mix.d @@ -3,32 +3,33 @@ Disassembly of section .text: -00001000 <__bar2_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar2_veneer\+0x4> - 1004: 02002024 .word 0x02002024 -00001008 <__bar_from_arm>: - 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> - 100c: e12fff1c bx ip - 1010: 02002021 .word 0x02002021 -00001014 <__bar3_veneer>: - 1014: e51ff004 ldr pc, \[pc, #-4\] ; 1018 <__bar3_veneer\+0x4> - 1018: 02002028 .word 0x02002028 -0000101c <__bar4_from_arm>: - 101c: e59fc000 ldr ip, \[pc, #0\] ; 1024 <__bar4_from_arm\+0x8> - 1020: e12fff1c bx ip - 1024: 0200202d .word 0x0200202d -00001028 <__bar5_from_arm>: - 1028: e59fc000 ldr ip, \[pc, #0\] ; 1030 <__bar5_from_arm\+0x8> - 102c: e12fff1c bx ip - 1030: 0200202f .word 0x0200202f +00001000 <_start>: + 1000: eb000004 bl 1018 <__bar_from_arm> + 1004: eb000006 bl 1024 <__bar2_veneer> + 1008: eb00000a bl 1038 <__bar3_veneer> + 100c: eb00000b bl 1040 <__bar4_from_arm> + 1010: eb000005 bl 102c <__bar5_from_arm> + 1014: 00000000 andeq r0, r0, r0 + +00001018 <__bar_from_arm>: + 1018: e59fc000 ldr ip, \[pc, #0\] ; 1020 <__bar_from_arm\+0x8> + 101c: e12fff1c bx ip + 1020: 02002021 .word 0x02002021 +00001024 <__bar2_veneer>: + 1024: e51ff004 ldr pc, \[pc, #-4\] ; 1028 <__bar2_veneer\+0x4> + 1028: 02002024 .word 0x02002024 +0000102c <__bar5_from_arm>: + 102c: e59fc000 ldr ip, \[pc, #0\] ; 1034 <__bar5_from_arm\+0x8> + 1030: e12fff1c bx ip + 1034: 0200202f .word 0x0200202f +00001038 <__bar3_veneer>: + 1038: e51ff004 ldr pc, \[pc, #-4\] ; 103c <__bar3_veneer\+0x4> + 103c: 02002028 .word 0x02002028 +00001040 <__bar4_from_arm>: + 1040: e59fc000 ldr ip, \[pc, #0\] ; 1048 <__bar4_from_arm\+0x8> + 1044: e12fff1c bx ip + 1048: 0200202d .word 0x0200202d ... - -00001040 <_start>: - 1040: ebfffff0 bl 1008 <__bar_from_arm> - 1044: ebffffed bl 1000 <__bar2_veneer> - 1048: ebfffff1 bl 1014 <__bar3_veneer> - 104c: ebfffff2 bl 101c <__bar4_from_arm> - 1050: ebfffff4 bl 1028 <__bar5_from_arm> Disassembly of section .foo: 02002020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-mix2.d b/ld/testsuite/ld-arm/farcall-mix2.d index 0af3027..c3e775b 100644 --- a/ld/testsuite/ld-arm/farcall-mix2.d +++ b/ld/testsuite/ld-arm/farcall-mix2.d @@ -3,35 +3,37 @@ Disassembly of section .text: -00001000 <__bar2_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar2_veneer\+0x4> - 1004: 02003024 .word 0x02003024 +00001000 <_start>: + 1000: eb000000 bl 1008 <__bar_from_arm> + 1004: eb000002 bl 1014 <__bar2_veneer> + 00001008 <__bar_from_arm>: 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_arm\+0x8> 100c: e12fff1c bx ip 1010: 02003021 .word 0x02003021 - 1014: 00000000 .word 0x00000000 - -00001018 <_start>: - 1018: ebfffffa bl 1008 <__bar_from_arm> - 101c: ebfffff7 bl 1000 <__bar2_veneer> +00001014 <__bar2_veneer>: + 1014: e51ff004 ldr pc, \[pc, #-4\] ; 1018 <__bar2_veneer\+0x4> + 1018: 02003024 .word 0x02003024 + 101c: 00000000 .word 0x00000000 Disassembly of section .mytext: -00002000 <__bar5_from_arm>: - 2000: e59fc000 ldr ip, \[pc, #0\] ; 2008 <__bar5_from_arm\+0x8> - 2004: e12fff1c bx ip - 2008: 0200302f .word 0x0200302f -0000200c <__bar3_veneer>: - 200c: e51ff004 ldr pc, \[pc, #-4\] ; 2010 <__bar3_veneer\+0x4> - 2010: 02003028 .word 0x02003028 -00002014 <__bar4_from_arm>: - 2014: e59fc000 ldr ip, \[pc, #0\] ; 201c <__bar4_from_arm\+0x8> - 2018: e12fff1c bx ip - 201c: 0200302d .word 0x0200302d +00002000 <__bar5_from_arm-0x10>: + 2000: eb000005 bl 201c <__bar3_veneer> + 2004: eb000006 bl 2024 <__bar4_from_arm> + 2008: eb000000 bl 2010 <__bar5_from_arm> + 200c: 00000000 andeq r0, r0, r0 +00002010 <__bar5_from_arm>: + 2010: e59fc000 ldr ip, \[pc, #0\] ; 2018 <__bar5_from_arm\+0x8> + 2014: e12fff1c bx ip + 2018: 0200302f .word 0x0200302f +0000201c <__bar3_veneer>: + 201c: e51ff004 ldr pc, \[pc, #-4\] ; 2020 <__bar3_veneer\+0x4> + 2020: 02003028 .word 0x02003028 +00002024 <__bar4_from_arm>: + 2024: e59fc000 ldr ip, \[pc, #0\] ; 202c <__bar4_from_arm\+0x8> + 2028: e12fff1c bx ip + 202c: 0200302d .word 0x0200302d ... - 2028: ebfffff7 bl 200c <__bar3_veneer> - 202c: ebfffff8 bl 2014 <__bar4_from_arm> - 2030: ebfffff2 bl 2000 <__bar5_from_arm> Disassembly of section .foo: 02003020 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-be.d b/ld/testsuite/ld-arm/farcall-thumb-arm-be.d deleted file mode 100644 index d7d2b04..0000000 --- a/ld/testsuite/ld-arm/farcall-thumb-arm-be.d +++ /dev/null @@ -1,17 +0,0 @@ -.*: file format .* - -Disassembly of section .text: - -00001000 <__bar_from_thumb>: - 1000: 4778 bx pc - 1002: 46c0 nop.* - 1004: e51ff004 ldr pc, \[pc, #-4\] ; 1008 <__bar_from_thumb\+0x8> - 1008: 02001014 .word 0x02001014 - 100c: 00000000 .word 0x00000000 - -00001010 <_start>: - 1010: f7ff fff6 bl 1000 <__bar_from_thumb> -Disassembly of section .foo: - -02001014 <bar>: - 2001014: e12fff1e bx lr diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d b/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d index 8aeb805..c7d68e0 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d +++ b/ld/testsuite/ld-arm/farcall-thumb-arm-be8.d @@ -2,15 +2,17 @@ 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 +00001000 <_start>: + 1000: 00f0 02f8 bl 1008 <__bar_from_thumb> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001010 <_start>: - 1010: fff7 f6ff bl 1000 <__bar_from_thumb> +00001008 <__bar_from_thumb>: + 1008: 7847 bx pc + 100a: c046 nop.* + 100c: 04f01fe5 ldr pc, \[pc, #-4\] ; 1010 <__bar_from_thumb\+0x8> + 1010: 02001014 .word 0x02001014 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d index c824c5f..b2ec457 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d @@ -2,14 +2,16 @@ Disassembly of section .text: -00001000 <__bar_from_thumb>: - 1000: e59fc000 ldr ip, \[pc, #0\] ; 1008 <__bar_from_thumb\+0x8> - 1004: e08ff00c add pc, pc, ip - 1008: 02000008 .word 0x02000008 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: f000 e802 blx 1008 <__bar_from_thumb> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001010 <_start>: - 1010: f7ff eff6 blx 1000 <__bar_from_thumb> +00001008 <__bar_from_thumb>: + 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_from_thumb\+0x8> + 100c: e08ff00c add pc, pc, ip + 1010: 02000000 .word 0x02000000 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-blx.d b/ld/testsuite/ld-arm/farcall-thumb-arm-blx.d index 21cf736..9f70091 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-arm-blx.d +++ b/ld/testsuite/ld-arm/farcall-thumb-arm-blx.d @@ -2,12 +2,14 @@ Disassembly of section .text: -00001000 <__bar_from_thumb>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_from_thumb\+0x4> - 1004: 02001014 .word 0x02001014 +00001000 <_start>: + 1000: f000 e802 blx 1008 <__bar_from_thumb> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001008 <_start>: - 1008: f7ff effa blx 1000 <__bar_from_thumb> +00001008 <__bar_from_thumb>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar_from_thumb\+0x4> + 100c: 02001014 .word 0x02001014 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-short.d b/ld/testsuite/ld-arm/farcall-thumb-arm-short.d index 2e7a17a..ed235d3 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-arm-short.d +++ b/ld/testsuite/ld-arm/farcall-thumb-arm-short.d @@ -2,12 +2,15 @@ Disassembly of section .text: -00001000 <__bar_from_thumb>: - 1000: 4778 bx pc - 1002: 46c0 nop \(mov r8, r8\) - 1004: ea000402 b 2014 <bar> -00001008 <_start>: - 1008: f7ff fffa bl 1000 <__bar_from_thumb> +00001000 <_start>: + 1000: f000 f802 bl 1008 <__bar_from_thumb> + 1004: 0000 lsls r0, r0, #0 + \.\.\. + +00001008 <__bar_from_thumb>: + 1008: 4778 bx pc + 100a: 46c0 nop \(mov r8, r8\) + 100c: ea000400 b 2014 <bar> Disassembly of section .foo: 00002014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm.d b/ld/testsuite/ld-arm/farcall-thumb-arm.d index dc02e25..25ee1f4 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-arm.d +++ b/ld/testsuite/ld-arm/farcall-thumb-arm.d @@ -2,15 +2,17 @@ Disassembly of section .text: -00001000 <__bar_from_thumb>: - 1000: 4778 bx pc - 1002: 46c0 nop \(mov r8, r8\) - 1004: e51ff004 ldr pc, \[pc, #-4\] ; 1008 <__bar_from_thumb\+0x8> - 1008: 02001014 .word 0x02001014 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: f000 f802 bl 1008 <__bar_from_thumb> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001010 <_start>: - 1010: f7ff fff6 bl 1000 <__bar_from_thumb> +00001008 <__bar_from_thumb>: + 1008: 4778 bx pc + 100a: 46c0 nop \(mov r8, r8\) + 100c: e51ff004 ldr pc, \[pc, #-4\] ; 1010 <__bar_from_thumb\+0x8> + 1010: 02001014 .word 0x02001014 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d index b6e3371..d5bc3b1 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d @@ -2,14 +2,16 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: e59fc000 ldr ip, \[pc, #0\] ; 1008 <__bar_veneer\+0x8> - 1004: e08ff00c add pc, pc, ip - 1008: 02000009 .word 0x02000009 - 100c: 00000000 .word 0x00000000 +00001000 <_start>: + 1000: f000 e802 blx 1008 <__bar_veneer> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001010 <_start>: - 1010: f7ff eff6 blx 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: e59fc000 ldr ip, \[pc, #0\] ; 1010 <__bar_veneer\+0x8> + 100c: e08ff00c add pc, pc, ip + 1010: 02000001 .word 0x02000001 + 1014: 00000000 .word 0x00000000 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d index f8e9836..5e9ac5a 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d @@ -2,12 +2,14 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> - 1004: 02001015 .word 0x02001015 +00001000 <_start>: + 1000: f000 e802 blx 1008 <__bar_veneer> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001008 <_start>: - 1008: f7ff effa blx 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar_veneer\+0x4> + 100c: 02001015 .word 0x02001015 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d index c7a0db7..c98f00a 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d @@ -2,17 +2,19 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: b401 push {r0} - 1002: 4802 ldr r0, \[pc, #8\] \(100c <__bar_veneer\+0xc>\) - 1004: 4684 mov ip, r0 - 1006: bc01 pop {r0} - 1008: 4760 bx ip - 100a: bf00 nop - 100c: 02001015 .word 0x02001015 +00001000 <_start>: + 1000: f000 f802 bl 1008 <__bar_veneer> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001010 <_start>: - 1010: f7ff fff6 bl 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: b401 push {r0} + 100a: 4802 ldr r0, \[pc, #8\] \(1014 <__bar_veneer\+0xc>\) + 100c: 4684 mov ip, r0 + 100e: bc01 pop {r0} + 1010: 4760 bx ip + 1012: bf00 nop + 1014: 02001015 .word 0x02001015 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb.d b/ld/testsuite/ld-arm/farcall-thumb-thumb.d index c7a0db7..c98f00a 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb.d @@ -2,17 +2,19 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: b401 push {r0} - 1002: 4802 ldr r0, \[pc, #8\] \(100c <__bar_veneer\+0xc>\) - 1004: 4684 mov ip, r0 - 1006: bc01 pop {r0} - 1008: 4760 bx ip - 100a: bf00 nop - 100c: 02001015 .word 0x02001015 +00001000 <_start>: + 1000: f000 f802 bl 1008 <__bar_veneer> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001010 <_start>: - 1010: f7ff fff6 bl 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: b401 push {r0} + 100a: 4802 ldr r0, \[pc, #8\] \(1014 <__bar_veneer\+0xc>\) + 100c: 4684 mov ip, r0 + 100e: bc01 pop {r0} + 1010: 4760 bx ip + 1012: bf00 nop + 1014: 02001015 .word 0x02001015 Disassembly of section .foo: 02001014 <bar>: diff --git a/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d b/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d index 12674f9..04eb991 100644 --- a/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d +++ b/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d @@ -2,12 +2,15 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> - 1004: 0100100d .word 0x0100100d +00001000 <_start>: + 1000: f000 e802 blx 1008 <__bar_veneer> + 1004: 0000 lsls r0, r0, #0 + \.\.\. + +00001008 <__bar_veneer>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar_veneer\+0x4> + 100c: 0100100d .word 0x0100100d -00001008 <_start>: - 1008: f7ff effa blx 1000 <__bar_veneer> Disassembly of section .foo: 0100100c <bar>: diff --git a/ld/testsuite/ld-arm/thumb2-bl-bad.d b/ld/testsuite/ld-arm/thumb2-bl-bad.d index 12674f9..89c7a55 100644 --- a/ld/testsuite/ld-arm/thumb2-bl-bad.d +++ b/ld/testsuite/ld-arm/thumb2-bl-bad.d @@ -2,12 +2,14 @@ Disassembly of section .text: -00001000 <__bar_veneer>: - 1000: e51ff004 ldr pc, \[pc, #-4\] ; 1004 <__bar_veneer\+0x4> - 1004: 0100100d .word 0x0100100d +00001000 <_start>: + 1000: f000 e802 blx 1008 <__bar_veneer> + 1004: 0000 lsls r0, r0, #0 + \.\.\. -00001008 <_start>: - 1008: f7ff effa blx 1000 <__bar_veneer> +00001008 <__bar_veneer>: + 1008: e51ff004 ldr pc, \[pc, #-4\] ; 100c <__bar_veneer\+0x4> + 100c: 0100100d .word 0x0100100d Disassembly of section .foo: 0100100c <bar>: |