diff options
author | Richard Earnshaw <Richard.Earnshaw@arm.com> | 2015-04-24 15:51:49 +0100 |
---|---|---|
committer | Richard Earnshaw <Richard.Earnshaw@arm.com> | 2015-04-24 15:54:39 +0100 |
commit | 7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db (patch) | |
tree | 0b5f30e87f378b8034f88bb95e2f23cb9f9b989e | |
parent | de7669bfa507d78f7abfe3d219b5aee9f346235e (diff) | |
download | gdb-7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db.zip gdb-7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db.tar.gz gdb-7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db.tar.bz2 |
[ARM]: Don't tail-pad over-aligned functions to the alignment boundary.
2015-04/24 Richard Earnshaw <rearnsha@arm.com>
gas/
* config/tc-arm.h (arm_min): New function.
(SUB_SEGMENT_ALIGN): Define.
gas/testsuite/
* gas/arm/align64.d: Delete trailing padding NOPs.
ld/testsuite/
* ld-arm/armthumb-lib.d: Regenerate expected output.
* ld-arm/armthumb-lib.d: Likewise.
* ld-arm/armthumb-lib.sym: Likewise.
* ld-arm/cortex-a8-fix-b-rel-arm.d: Likewise.
* ld-arm/cortex-a8-fix-b-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-b.d: Likewise.
* ld-arm/cortex-a8-fix-bcc-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-bcc.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-arm.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-plt.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-bl.d: Likewise.
* ld-arm/cortex-a8-fix-blx-bcond.d: Likewise.
* ld-arm/cortex-a8-fix-blx-rel-arm.d: Likewise.
* ld-arm/cortex-a8-fix-blx-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-blx.d: Likewise.
* ld-arm/cortex-a8-fix-hdr.d: Likewise.
* ld-arm/farcall-mixed-app-v5.d: Likewise.
* ld-arm/farcall-mixed-app.d: Likewise.
* ld-arm/farcall-mixed-lib-v4t.d: Likewise.
* ld-arm/farcall-mixed-lib.d: Likewise.
* ld-arm/mixed-app-v5.d: Likewise.
* ld-arm/mixed-app.d: Likewise.
* ld-arm/mixed-lib.d: Likewise.
28 files changed, 116 insertions, 129 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4bdbe5d..7ea12d9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-04/24 Richard Earnshaw <rearnsha@arm.com> + + * config/tc-arm.h (arm_min): New function. + (SUB_SEGMENT_ALIGN): Define. + 2015-04-23 Matthew Fortune <matthew.fortune@imgtec.com> * config/tc-mips.c (macro): State the recommended way of creating diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index b604f04..2216267 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -236,10 +236,19 @@ struct arm_frag_type #endif }; +static inline int +arm_min (int am_p1, int am_p2) +{ + return am_p1 < am_p2 ? am_p1 : am_p2; +} + #define TC_FRAG_TYPE struct arm_frag_type /* NOTE: max_chars is a local variable from frag_var / frag_variant. */ #define TC_FRAG_INIT(fragp) arm_init_frag (fragp, max_chars) #define HANDLE_ALIGN(fragp) arm_handle_align (fragp) +#define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) \ + ((!(FRCHAIN)->frch_next && subseg_text_p (SEG)) \ + ? arm_min (2, get_recorded_alignment (SEG)) : 0) #define md_do_align(N, FILL, LEN, MAX, LABEL) \ if (FILL == NULL && (N) != 0 && ! need_pass_2 && subseg_text_p (now_seg)) \ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index c28a6a2..8a62d53 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-04-24 Richard Earnshaw <rearnsha@arm.com> + + * gas/arm/align64.d: Delete trailing padding NOPs. + 2015-04-23 Matthew Fortune <matthew.fortune@imgtec.com> * gas/mips/dla-warn.l: New file. diff --git a/gas/testsuite/gas/arm/align64.d b/gas/testsuite/gas/arm/align64.d index cee7442..ee67c82 100644 --- a/gas/testsuite/gas/arm/align64.d +++ b/gas/testsuite/gas/arm/align64.d @@ -52,18 +52,3 @@ Disassembly of section .text: 00000078 <foo2\+0x34> e1a00000.*nop.* 0000007c <foo2\+0x38> e1a00000.*nop.* 00000080 <foo2\+0x3c> e3a00004.*mov.*r0, #4 -00000084 <foo2\+0x40> e1a00000.*nop.* -00000088 <foo2\+0x44> e1a00000.*nop.* -0000008c <foo2\+0x48> e1a00000.*nop.* -00000090 <foo2\+0x4c> e1a00000.*nop.* -00000094 <foo2\+0x50> e1a00000.*nop.* -00000098 <foo2\+0x54> e1a00000.*nop.* -0000009c <foo2\+0x58> e1a00000.*nop.* -000000a0 <foo2\+0x5c> e1a00000.*nop.* -000000a4 <foo2\+0x60> e1a00000.*nop.* -000000a8 <foo2\+0x64> e1a00000.*nop.* -000000ac <foo2\+0x68> e1a00000.*nop.* -000000b0 <foo2\+0x6c> e1a00000.*nop.* -000000b4 <foo2\+0x70> e1a00000.*nop.* -000000b8 <foo2\+0x74> e1a00000.*nop.* -000000bc <foo2\+0x78> e1a00000.*nop.* diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index eaa4edb..18516a2 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,30 @@ +2015-04-24 Richard Earnshaw <rearnsha@arm.com> + + * ld-arm/armthumb-lib.d: Regenerate expected output. + * ld-arm/armthumb-lib.d: Likewise. + * ld-arm/armthumb-lib.sym: Likewise. + * ld-arm/cortex-a8-fix-b-rel-arm.d: Likewise. + * ld-arm/cortex-a8-fix-b-rel-thumb.d: Likewise. + * ld-arm/cortex-a8-fix-b.d: Likewise. + * ld-arm/cortex-a8-fix-bcc-rel-thumb.d: Likewise. + * ld-arm/cortex-a8-fix-bcc.d: Likewise. + * ld-arm/cortex-a8-fix-bl-rel-arm.d: Likewise. + * ld-arm/cortex-a8-fix-bl-rel-plt.d: Likewise. + * ld-arm/cortex-a8-fix-bl-rel-thumb.d: Likewise. + * ld-arm/cortex-a8-fix-bl.d: Likewise. + * ld-arm/cortex-a8-fix-blx-bcond.d: Likewise. + * ld-arm/cortex-a8-fix-blx-rel-arm.d: Likewise. + * ld-arm/cortex-a8-fix-blx-rel-thumb.d: Likewise. + * ld-arm/cortex-a8-fix-blx.d: Likewise. + * ld-arm/cortex-a8-fix-hdr.d: Likewise. + * ld-arm/farcall-mixed-app-v5.d: Likewise. + * ld-arm/farcall-mixed-app.d: Likewise. + * ld-arm/farcall-mixed-lib-v4t.d: Likewise. + * ld-arm/farcall-mixed-lib.d: Likewise. + * ld-arm/mixed-app-v5.d: Likewise. + * ld-arm/mixed-app.d: Likewise. + * ld-arm/mixed-lib.d: Likewise. + 2015-04-24 Nick Clifton <nickc@redhat.com> * ld-elf/compressed1d.d: Add notarget for ELF based targets that diff --git a/ld/testsuite/ld-arm/armthumb-lib.d b/ld/testsuite/ld-arm/armthumb-lib.d index f87829c..9a5dea8 100644 --- a/ld/testsuite/ld-arm/armthumb-lib.d +++ b/ld/testsuite/ld-arm/armthumb-lib.d @@ -31,15 +31,9 @@ Disassembly of section .text: .* <__real_lib_func2>: .*: 4770 bx lr .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) .* <lib_func2>: .*: e59fc004 ldr ip, \[pc, #4\] ; .* <lib_func2\+0xc> .*: e08cc00f add ip, ip, pc .*: e12fff1c bx ip - .*: ffffffe5 .* + .*: fffffff1 .* diff --git a/ld/testsuite/ld-arm/armthumb-lib.sym b/ld/testsuite/ld-arm/armthumb-lib.sym index f1358e2..3714e80 100644 --- a/ld/testsuite/ld-arm/armthumb-lib.sym +++ b/ld/testsuite/ld-arm/armthumb-lib.sym @@ -11,5 +11,5 @@ Symbol table for image: +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +9 __end__ +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +9 __bss_start +.. +..: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND app_func2 - +.. +..: .......0 +2 +FUNC +GLOBAL +DEFAULT +6 lib_func2 + +.. +..: .......[048c] +2 +FUNC +GLOBAL +DEFAULT +6 lib_func2 +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +9 _bss_end__ diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d b/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d index 195a51b..3e52a49 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d @@ -6,7 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: e12fff1e bx lr - 8f04: e320f000 nop \{0\} +#... 00008f08 <_start>: 8f08: bf00 nop @@ -75,7 +75,7 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f000 b803 b\.w 9010 <__targetfn_from_thumb> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 00009010 <__targetfn_from_thumb>: 9010: 4778 bx pc diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-thumb.d b/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-thumb.d index 60a254b..6660c75 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-thumb.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-b-rel-thumb.d @@ -6,8 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: 4770 bx lr - 8f02: bf00 nop - 8f04: f3af 8000 nop\.w +#... 00008f08 <_start>: 8f08: bf00 nop @@ -76,5 +75,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff bf7b b\.w 8f00 <targetfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: f7ff bf76 b\.w 8f00 <targetfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-b.d b/ld/testsuite/ld-arm/cortex-a8-fix-b.d index b2d4481..580e696 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-b.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-b.d @@ -71,5 +71,5 @@ Disassembly of section \.text: 8ffa: eb01 0002 add\.w r0, r1, r2 8ffe: f000 b803 b\.w 9008 <_start\+0x108> 9002: 4770 bx lr - 9004: f3af 8000 nop\.w +#... 9008: f7ff bfeb b\.w 8fe2 <_start\+0xe2> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel-thumb.d b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel-thumb.d index 27a7fd4..ee8b99f 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel-thumb.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel-thumb.d @@ -6,8 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: 4770 bx lr - 8f02: bf00 nop - 8f04: f3af 8000 nop\.w +#... 00008f08 <_start>: 8f08: bf00 nop @@ -76,7 +75,7 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f53f af7b bmi\.w 8f00 <targetfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: d401 bmi\.n 9016 <_start\+0x10e> 9012: f7ff bff6 b\.w 9002 <_start\+0xfa> 9016: f7ff bf73 b\.w 8f00 <targetfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bcc.d b/ld/testsuite/ld-arm/cortex-a8-fix-bcc.d index 44b8110..a8b8e10 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bcc.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bcc.d @@ -71,7 +71,7 @@ Disassembly of section \.text: 8ffa: eb01 0002 add\.w r0, r1, r2 8ffe: f000 b803 b\.w 9008 <_start\+0x108> 9002: 4770 bx lr - 9004: f3af 8000 nop\.w +#... 9008: d301 bcc\.n 900e <_start\+0x10e> 900a: f7ff bffa b\.w 9002 <_start\+0x102> 900e: f7ff bfe8 b\.w 8fe2 <_start\+0xe2> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-arm.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-arm.d index fcb3bab..9385990 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-arm.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-arm.d @@ -6,7 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: e12fff1e bx lr - 8f04: e320f000 nop \{0\} +#... 00008f08 <_start>: 8f08: bf00 nop @@ -75,5 +75,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff ef7c blx 8f00 <targetfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: eaffffba b 8f00 <targetfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d index ba1f537..c504f79 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d @@ -20,7 +20,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: 4770 bx lr 8f02: bf00 nop - 8f04: f3af 8000 nop\.w +#... 00008f08 <_start>: 8f08: bf00 nop @@ -89,5 +89,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff ef06 blx 8e14 <targetfn@plt> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: eaffff7f b 8e14 <targetfn@plt> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-thumb.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-thumb.d index 8cbd3e0..6c97df9 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-thumb.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-thumb.d @@ -6,8 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: 4770 bx lr - 8f02: bf00 nop - 8f04: f3af 8000 nop\.w +#... 00008f08 <_start>: 8f08: bf00 nop @@ -76,5 +75,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff ff7b bl 8f00 <targetfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: f7ff bf76 b\.w 8f00 <targetfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl.d index 50dcd4f..528a8d3 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bl.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl.d @@ -71,5 +71,5 @@ Disassembly of section \.text: 8ffa: eb01 0002 add\.w r0, r1, r2 8ffe: f000 f803 bl 9008 <_start\+0x108> 9002: 4770 bx lr - 9004: f3af 8000 nop\.w +#... 9008: f7ff bfeb b\.w 8fe2 <_start\+0xe2> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d index 692a606..9157b83 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d @@ -1100,7 +1100,7 @@ Disassembly of section \.text: 9ffa: eb01 0002 add\.w r0, r1, r2 9ffe: f000 e804 blx a008 <bl_insns\+0x108> a002: 4770 bx lr - a004: f3af 8000 nop\.w +#... a008: eaffffba b 9ef8 <arm_target> a00c: d101 bne\.n a012 <bl_insns\+0x112> a00e: f7fe bff8 b\.w 9002 <_start\+0x102> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-arm.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-arm.d index fcb3bab..9385990 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-arm.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-arm.d @@ -6,7 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: e12fff1e bx lr - 8f04: e320f000 nop \{0\} +#... 00008f08 <_start>: 8f08: bf00 nop @@ -75,5 +75,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff ef7c blx 8f00 <targetfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: eaffffba b 8f00 <targetfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-thumb.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-thumb.d index 8cbd3e0..6c97df9 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-thumb.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-thumb.d @@ -6,8 +6,7 @@ Disassembly of section \.text: 00008f00 <targetfn>: 8f00: 4770 bx lr - 8f02: bf00 nop - 8f04: f3af 8000 nop\.w +#... 00008f08 <_start>: 8f08: bf00 nop @@ -76,5 +75,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff ff7b bl 8f00 <targetfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: f7ff bf76 b\.w 8f00 <targetfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx.d index 4805256..788e0a3 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-blx.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-blx.d @@ -75,5 +75,5 @@ Disassembly of section \.text: 9002: eb01 0002 add\.w r0, r1, r2 9006: f7ff ef7c blx 8f00 <armfn> 900a: 4770 bx lr - 900c: f3af 8000 nop\.w +#... 9010: eaffffba b 8f00 <armfn> diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-hdr.d b/ld/testsuite/ld-arm/cortex-a8-fix-hdr.d index 027d2a1..9d4c3de 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-hdr.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-hdr.d @@ -19,6 +19,6 @@ Disassembly of section \.text: ff6: bf00 nop ff8: bf00 nop ffa: ea81 0002 eor.w r0, r1, r2 - ffe: f000 b80f b.w 1020 <_start\+0x40> + ffe: f000 b803 b.w 1008 <_start\+0x28> #... - 1020: f7ff bfde b.w fe0 <_start> + 1008: f7ff bf.. b.w fe0 <_start> diff --git a/ld/testsuite/ld-arm/farcall-mixed-app-v5.d b/ld/testsuite/ld-arm/farcall-mixed-app-v5.d index 7466883..ea0e823 100644 --- a/ld/testsuite/ld-arm/farcall-mixed-app-v5.d +++ b/ld/testsuite/ld-arm/farcall-mixed-app-v5.d @@ -39,8 +39,7 @@ Disassembly of section .text: .*: bd00 pop {pc} .*: 4770 bx lr .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__app_func_veneer>: .*: e51ff004 ldr pc, \[pc, #-4\] ; .* <__app_func_veneer\+0x4> @@ -51,8 +50,8 @@ Disassembly of section .far_arm: .* <app_func>: .*: e1a0c00d mov ip, sp .*: e92dd800 push {fp, ip, lr, pc} - .*: eb000008 bl .* <__lib_func1_veneer> - .*: eb000009 bl .* <__lib_func2_veneer> + .*: eb0000.. bl .* <__lib_func1_veneer> + .*: eb0000.. bl .* <__lib_func2_veneer> .*: e89d6800 ldm sp, {fp, sp, lr} .*: e12fff1e bx lr .*: e1a00000 nop ; \(mov r0, r0\) @@ -60,15 +59,13 @@ Disassembly of section .far_arm: .* <app_func2>: .*: e12fff1e bx lr - .*: e1a00000 nop ; \(mov r0, r0\) - .*: e1a00000 nop ; \(mov r0, r0\) - .*: e1a00000 nop ; \(mov r0, r0\) +#... .* <__lib_func1_veneer>: - .*: e51ff004 ldr pc, \[pc, #-4\] ; 2100034 <__lib_func1_veneer\+0x4> + .*: e51ff004 ldr pc, \[pc, #-4\] ; .* <__lib_func1_veneer\+0x4> .*: 000081e8 .word 0x000081e8 .* <__lib_func2_veneer>: - .*: e51ff004 ldr pc, \[pc, #-4\] ; 210003c <__lib_func2_veneer\+0x4> + .*: e51ff004 ldr pc, \[pc, #-4\] ; .* <__lib_func2_veneer\+0x4> .*: 000081dc .word 0x000081dc Disassembly of section .far_thumb: @@ -79,8 +76,7 @@ Disassembly of section .far_thumb: .*: bd00 pop {pc} .*: 4770 bx lr .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__lib_func2_from_thumb>: .*: e51ff004 ldr pc, \[pc, #-4\] ; 2200014 <__lib_func2_from_thumb\+0x4> diff --git a/ld/testsuite/ld-arm/farcall-mixed-app.d b/ld/testsuite/ld-arm/farcall-mixed-app.d index 6fa799d..86127ef 100644 --- a/ld/testsuite/ld-arm/farcall-mixed-app.d +++ b/ld/testsuite/ld-arm/farcall-mixed-app.d @@ -41,8 +41,7 @@ Disassembly of section .text: .*: bd00 pop {pc} .*: 4770 bx lr .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__app_func_veneer>: .*: e51ff004 ldr pc, \[pc, #-4\] ; 8234 <__app_func_veneer\+0x4> @@ -53,8 +52,8 @@ Disassembly of section .far_arm: .* <app_func>: .*: e1a0c00d mov ip, sp .*: e92dd800 push {fp, ip, lr, pc} - .*: eb000008 bl .* <__lib_func1_veneer> - .*: eb000009 bl .* <__lib_func2_veneer> + .*: eb000006 bl .* <__lib_func1_veneer> + .*: eb000007 bl .* <__lib_func2_veneer> .*: e89d6800 ldm sp, {fp, sp, lr} .*: e12fff1e bx lr .*: e1a00000 nop ; \(mov r0, r0\) @@ -62,15 +61,13 @@ Disassembly of section .far_arm: .* <app_func2>: .*: e12fff1e bx lr - .*: e1a00000 nop ; \(mov r0, r0\) - .*: e1a00000 nop ; \(mov r0, r0\) - .*: e1a00000 nop ; \(mov r0, r0\) +#... .* <__lib_func1_veneer>: - .*: e51ff004 ldr pc, \[pc, #-4\] ; 2100034 <__lib_func1_veneer\+0x4> + .*: e51ff004 ldr pc, \[pc, #-4\] ; .* <__lib_func1_veneer\+0x4> .*: 000081ec .word 0x000081ec .* <__lib_func2_veneer>: - .*: e51ff004 ldr pc, \[pc, #-4\] ; 210003c <__lib_func2_veneer\+0x4> + .*: e51ff004 ldr pc, \[pc, #-4\] ; .* <__lib_func2_veneer\+0x4> .*: 000081e0 .word 0x000081e0 Disassembly of section .far_thumb: @@ -81,8 +78,7 @@ Disassembly of section .far_thumb: .*: bd00 pop {pc} .*: 4770 bx lr .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__lib_func2_from_thumb>: .*: 4778 bx pc diff --git a/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d b/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d index 54f4fab..e2dbc1b 100644 --- a/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d +++ b/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d @@ -50,55 +50,47 @@ Disassembly of section .text: ... .* <__real_lib_func2>: - .*: f000 f80e bl 1000330 <__app_func_from_thumb> - .*: f000 f81c bl 1000350 <__app_func_weak_from_thumb> - .*: f000 f822 bl 1000360 <__lib_func3_from_thumb> - .*: f000 f810 bl 1000340 <__lib_func4_from_thumb> + .*: f000 f8.. bl .* <__app_func_from_thumb> + .*: f000 f8.. bl .* <__app_func_weak_from_thumb> + .*: f000 f8.. bl .* <__lib_func3_from_thumb> + .*: f000 f8.. bl .* <__lib_func4_from_thumb> .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__app_func_from_thumb>: .*: 4778 bx pc .*: 46c0 nop ; \(mov r8, r8\) - .*: e59fc000 ldr ip, \[pc\] ; 100033c <__app_func_from_thumb\+0xc> + .*: e59fc000 ldr ip, \[pc\] ; .* <__app_func_from_thumb\+0xc> .*: e08cf00f add pc, ip, pc - .*: feffff68 .word 0xfeffff68 + .*: feffff.. .word 0xfeffff.. .* <__lib_func4_from_thumb>: .*: 4778 bx pc .*: 46c0 nop ; \(mov r8, r8\) - .*: e59fc000 ldr ip, \[pc\] ; 100034c <__lib_func4_from_thumb\+0xc> + .*: e59fc000 ldr ip, \[pc\] ; .* <__lib_func4_from_thumb\+0xc> .*: e08cf00f add pc, ip, pc - .*: feffff88 .word 0xfeffff88 + .*: feffff.. .word 0xfeffff.. .* <__app_func_weak_from_thumb>: .*: 4778 bx pc .*: 46c0 nop ; \(mov r8, r8\) - .*: e59fc000 ldr ip, \[pc\] ; 100035c <__app_func_weak_from_thumb\+0xc> + .*: e59fc000 ldr ip, \[pc\] ; .* <__app_func_weak_from_thumb\+0xc> .*: e08cf00f add pc, ip, pc - .*: feffff58 .word 0xfeffff58 + .*: feffff.. .word 0xfeffff.. .* <__lib_func3_from_thumb>: .*: 4778 bx pc .*: 46c0 nop ; \(mov r8, r8\) - .*: e59fc000 ldr ip, \[pc\] ; 100036c <__lib_func3_from_thumb\+0xc> + .*: e59fc000 ldr ip, \[pc\] ; .* <__lib_func3_from_thumb\+0xc> .*: e08cf00f add pc, ip, pc - .*: feffff58 .word 0xfeffff58 + .*: feffff.. .word 0xfeffff.. ... .* <__real_lib_func3>: .*: f000 f80e bl 2000390 <__app_func_from_thumb> .*: f000 f804 bl 2000380 <__app_func_weak_from_thumb> .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__app_func_weak_from_thumb>: .*: 4778 bx pc diff --git a/ld/testsuite/ld-arm/farcall-mixed-lib.d b/ld/testsuite/ld-arm/farcall-mixed-lib.d index 8524e90..b736983 100644 --- a/ld/testsuite/ld-arm/farcall-mixed-lib.d +++ b/ld/testsuite/ld-arm/farcall-mixed-lib.d @@ -42,47 +42,40 @@ Disassembly of section .text: ... .* <lib_func2>: - .*: f000 e820 blx 1000344 <__app_func_from_thumb> - .*: f000 e812 blx 100032c <__app_func_weak_from_thumb> - .*: f000 e80a blx 1000320 <__lib_func3_from_thumb> - .*: f000 e814 blx 1000338 <__lib_func4_from_thumb> + .*: f000 e8.. blx .* <__app_func_from_thumb> + .*: f000 e8.. blx .* <__app_func_weak_from_thumb> + .*: f000 e8.. blx .* <__lib_func3_from_thumb> + .*: f000 e8.. blx .* <__lib_func4_from_thumb> .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) + .*: 46c0 nop.* +#... .* <__lib_func3_from_thumb>: - .*: e59fc000 ldr ip, \[pc\] ; 1000328 <__lib_func3_from_thumb\+0x8> + .*: e59fc000 ldr ip, \[pc\] ; .* <__lib_func3_from_thumb\+0x8> .*: e08ff00c add pc, pc, ip - .*: feffff90 .word 0xfeffff90 + .*: feffff.. .word 0xfeffff.. .* <__app_func_weak_from_thumb>: - .*: e59fc000 ldr ip, \[pc\] ; 1000334 <__app_func_weak_from_thumb\+0x8> + .*: e59fc000 ldr ip, \[pc\] ; .* <__app_func_weak_from_thumb\+0x8> .*: e08ff00c add pc, pc, ip - .*: feffff78 .word 0xfeffff78 + .*: feffff.. .word 0xfeffff.. .* <__lib_func4_from_thumb>: - .*: e59fc000 ldr ip, \[pc\] ; 1000340 <__lib_func4_from_thumb\+0x8> + .*: e59fc000 ldr ip, \[pc\] ; .* <__lib_func4_from_thumb\+0x8> .*: e08ff00c add pc, pc, ip - .*: feffff84 .word 0xfeffff84 + .*: feffff.. .word 0xfeffff.. .* <__app_func_from_thumb>: - .*: e59fc000 ldr ip, \[pc\] ; 100034c <__app_func_from_thumb\+0x8> + .*: e59fc000 ldr ip, \[pc\] ; .* <__app_func_from_thumb\+0x8> .*: e08ff00c add pc, pc, ip - .*: feffff54 .word 0xfeffff54 + .*: feffff.. .word 0xfeffff.. ... .* <lib_func3>: .*: f000 e80c blx 200037c <__app_func_from_thumb> .*: f000 e804 blx 2000370 <__app_func_weak_from_thumb> .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... .* <__app_func_weak_from_thumb>: .*: e59fc000 ldr ip, \[pc\] ; 2000378 <__app_func_weak_from_thumb\+0x8> diff --git a/ld/testsuite/ld-arm/mixed-app-v5.d b/ld/testsuite/ld-arm/mixed-app-v5.d index 1091a80..0ad39e6 100644 --- a/ld/testsuite/ld-arm/mixed-app-v5.d +++ b/ld/testsuite/ld-arm/mixed-app-v5.d @@ -53,6 +53,4 @@ Disassembly of section .text: .*: f7ff efc. blx .* <lib_func2@plt> .*: bd00 pop {pc} .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... diff --git a/ld/testsuite/ld-arm/mixed-app.d b/ld/testsuite/ld-arm/mixed-app.d index 5fdd9f4..6083161 100644 --- a/ld/testsuite/ld-arm/mixed-app.d +++ b/ld/testsuite/ld-arm/mixed-app.d @@ -55,6 +55,4 @@ Disassembly of section .text: .*: f7ff ffc. bl .* <lib_func2@plt> .*: bd00 pop {pc} .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... diff --git a/ld/testsuite/ld-arm/mixed-lib.d b/ld/testsuite/ld-arm/mixed-lib.d index 29d29e9..271692c 100644 --- a/ld/testsuite/ld-arm/mixed-lib.d +++ b/ld/testsuite/ld-arm/mixed-lib.d @@ -30,10 +30,4 @@ Disassembly of section .text: .* <lib_func2>: .*: 4770 bx lr - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) - .*: 46c0 nop ; \(mov r8, r8\) +#... |