This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][Binutils][Arm] Fix performance issue with thumb-2 tailcalls


Hi All,

We currently use a padding NOP after a Thumb to Arm interworking veneer (BX pc).
The NOP is never executed but may result in a performance penalty on some cores.

For this reason this patch changes the NOPs after Thumb to Arm veneers into B .-2
and adds a note to this in the source code for future reference.

build on native hardware and regtested on
  arm-none-elf, arm-none-elf (32 bit host),
  arm-none-linux-gnueabihf, arm-none-linux-gnueabihf (32 bit host)

Cross-compiled and regtested on
  arm-none-linux-gnueabihf, armeb-none-elf, arm-wince-pe

and no issues.

Ok for master? and for backport to binutils-2.32?

Thanks,
Tamar

bfd/ChangeLog:

2019-08-19  Tamar Christina  <tamar.christina@arm.com>

	* elf32-arm.c (elf32_thumb2_plt_entry, elf32_arm_plt_thumb_stub,
	elf32_arm_stub_long_branch_v4t_thumb_thumb,
	elf32_arm_stub_long_branch_v4t_thumb_arm,
	elf32_arm_stub_short_branch_v4t_thumb_arm,
	elf32_arm_stub_long_branch_v4t_thumb_arm_pic,
	elf32_arm_stub_long_branch_v4t_thumb_thumb_pic,
	elf32_arm_stub_long_branch_v4t_thumb_tls_pic): Change nop to branch to
	previous instruction.

ld/ChangeLog:

2019-08-19  Tamar Christina  <tamar.christina@arm.com>

	* testsuite/ld-arm/cortex-a8-fix-b-plt.d: Update Testcase.
	* testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d: Likewise.
	* testsuite/ld-arm/cortex-a8-fix-bcc-plt.d: Likewise.
	* testsuite/ld-arm/farcall-cond-thumb-arm.d: Likewise.
	* testsuite/ld-arm/farcall-mixed-app.d: Likewise.
	* testsuite/ld-arm/farcall-mixed-app2.d: Likewise.
	* testsuite/ld-arm/farcall-mixed-lib-v4t.d: Likewise.
	* testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d: Likewise.
	* testsuite/ld-arm/farcall-thumb-arm-short.d: Likewise.
	* testsuite/ld-arm/farcall-thumb-arm.d: Likewise.
	* testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d: Likewise.
	* testsuite/ld-arm/farcall-thumb-thumb.d: Likewise.
	* testsuite/ld-arm/fix-arm1176-on.d: Likewise.
	* testsuite/ld-arm/ifunc-10.dd: Likewise.
	* testsuite/ld-arm/ifunc-2.dd: Likewise.
	* testsuite/ld-arm/ifunc-4.dd: Likewise.
	* testsuite/ld-arm/ifunc-6.dd: Likewise.
	* testsuite/ld-arm/ifunc-8.dd: Likewise.
	* testsuite/ld-arm/jump-reloc-veneers-long.d: Likewise.
	* testsuite/ld-arm/mixed-app.d: Likewise.
	* testsuite/ld-arm/thumb2-b-interwork.d: Likewise.
	* testsuite/ld-arm/tls-longplt.d: Likewise.
	* testsuite/ld-arm/tls-thumb1.d: Likewise.

-- 
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 15591bee8ad9b47e73ab71abb8ec84e0303c16bf..ae749f7ae7a0ce0fe6e3f9337ec93648bb5c8fa2 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -2329,6 +2329,11 @@ static const unsigned long dl_tlsdesc_lazy_trampoline [] =
   0x00000018, /* 4:   .word  _GLOBAL_OFFSET_TABLE_ - 2b - 8 */
 };
 
+/* NOTE: [Thumb nop sequence]
+   When adding code that transitions from Thumb to Arm the instruction that
+   should be used for the alignment padding should be 0xe7fd (b .-2) instead of
+   a nop for performance reasons.  */
+
 /* ARM FDPIC PLT entry.  */
 /* The last 5 words contain PLT lazy fragment code and data.  */
 static const bfd_vma elf32_arm_fdpic_plt_entry [] =
@@ -2446,8 +2451,8 @@ static const bfd_vma elf32_thumb2_plt_entry [] =
   0x0c00f240,		/* movw	   ip, #0xNNNN	  */
   0x0c00f2c0,		/* movt	   ip, #0xNNNN	  */
   0xf8dc44fc,		/* add	   ip, pc	  */
-  0xbf00f000		/* ldr.w   pc, [ip]	  */
-			/* nop			  */
+  0xe7fdf000		/* ldr.w   pc, [ip]	  */
+			/* b      .-2		  */
 };
 
 /* The format of the first entry in the procedure linkage table
@@ -2487,7 +2492,7 @@ static const bfd_vma elf32_arm_vxworks_shared_plt_entry[] =
 static const bfd_vma elf32_arm_plt_thumb_stub [] =
 {
   0x4778,		/* bx pc */
-  0x46c0		/* nop   */
+  0xe7fd		/* b .-2 */
 };
 
 /* The entries in a PLT when using a DLL-based target with multiple
@@ -2574,6 +2579,8 @@ typedef struct
   int		       reloc_addend;
 }  insn_sequence;
 
+/* See note [Thumb nop sequence] when adding a veneer.  */
+
 /* Arm/Thumb -> Arm/Thumb long branch stub. On V5T and above, use blx
    to reach the stub if necessary.  */
 static const insn_sequence elf32_arm_stub_long_branch_any_any[] =
@@ -2624,7 +2631,7 @@ static const insn_sequence elf32_arm_stub_long_branch_thumb2_only_pure[] =
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_thumb[] =
 {
   THUMB16_INSN (0x4778),	     /* bx   pc */
-  THUMB16_INSN (0x46c0),	     /* nop */
+  THUMB16_INSN (0xe7fd),	     /* b   .-2 */
   ARM_INSN (0xe59fc000),	     /* ldr  ip, [pc, #0] */
   ARM_INSN (0xe12fff1c),	     /* bx   ip */
   DATA_WORD (0, R_ARM_ABS32, 0),     /* dcd  R_ARM_ABS32(X) */
@@ -2635,7 +2642,7 @@ static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_thumb[] =
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm[] =
 {
   THUMB16_INSN (0x4778),	     /* bx   pc */
-  THUMB16_INSN (0x46c0),	     /* nop   */
+  THUMB16_INSN (0xe7fd),	     /* b   .-2 */
   ARM_INSN (0xe51ff004),	     /* ldr   pc, [pc, #-4] */
   DATA_WORD (0, R_ARM_ABS32, 0),     /* dcd   R_ARM_ABS32(X) */
 };
@@ -2645,7 +2652,7 @@ static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm[] =
 static const insn_sequence elf32_arm_stub_short_branch_v4t_thumb_arm[] =
 {
   THUMB16_INSN (0x4778),	     /* bx   pc */
-  THUMB16_INSN (0x46c0),	     /* nop   */
+  THUMB16_INSN (0xe7fd),	     /* b   .-2 */
   ARM_REL_INSN (0xea000000, -8),     /* b    (X-8) */
 };
 
@@ -2683,7 +2690,7 @@ static const insn_sequence elf32_arm_stub_long_branch_v4t_arm_thumb_pic[] =
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm_pic[] =
 {
   THUMB16_INSN (0x4778),	     /* bx   pc */
-  THUMB16_INSN (0x46c0),	     /* nop  */
+  THUMB16_INSN (0xe7fd),	     /* b   .-2 */
   ARM_INSN (0xe59fc000),	     /* ldr  ip, [pc, #0] */
   ARM_INSN (0xe08cf00f),	     /* add  pc, ip, pc */
   DATA_WORD (0, R_ARM_REL32, -4),     /* dcd  R_ARM_REL32(X) */
@@ -2707,7 +2714,7 @@ static const insn_sequence elf32_arm_stub_long_branch_thumb_only_pic[] =
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_thumb_pic[] =
 {
   THUMB16_INSN (0x4778),	     /* bx   pc */
-  THUMB16_INSN (0x46c0),	     /* nop */
+  THUMB16_INSN (0xe7fd),	     /* b   .-2 */
   ARM_INSN (0xe59fc004),	     /* ldr  ip, [pc, #4] */
   ARM_INSN (0xe08fc00c),	     /* add   ip, pc, ip */
   ARM_INSN (0xe12fff1c),	     /* bx   ip */
@@ -2728,7 +2735,7 @@ static const insn_sequence elf32_arm_stub_long_branch_any_tls_pic[] =
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_tls_pic[] =
 {
   THUMB16_INSN (0x4778),	     /* bx   pc */
-  THUMB16_INSN (0x46c0),	     /* nop */
+  THUMB16_INSN (0xe7fd),	     /* b   .-2 */
   ARM_INSN (0xe59f1000),	     /* ldr  r1, [pc, #0] */
   ARM_INSN (0xe081f00f),	     /* add  pc, r1, pc */
   DATA_WORD (0, R_ARM_REL32, -4),    /* dcd  R_ARM_REL32(X) */
diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d
index bbf68398d6cf5131590bd1e0278059ed4732b62e..54f56e4ccbcf9089497fb2c3a04ba84c8da48796 100644
--- a/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d
+++ b/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
     8010:	00000ffc 	\.word	0x00000ffc
 00008014 <bar@plt>:
     8014:	4778      	bx	pc
-    8016:	46c0      	nop			; \(mov r8, r8\)
+    8016:	e7fd      	b.n	.+ <.+>
     8018:	e28fc600 	add	ip, pc, #0, 12
     801c:	e28cca00 	add	ip, ip, #0, 20
     8020:	e5bcfff8 	ldr	pc, \[ip, #4088\]!	; 0xff8
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 3e52a495563337c84a938aebc0bbf146f5b35bb2..afa1e4897a30a7e890c8e6630286b163a14e2dc6 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
@@ -79,5 +79,5 @@ Disassembly of section \.text:
 
 00009010 <__targetfn_from_thumb>:
     9010:	4778      	bx	pc
-    9012:	46c0      	nop			; \(mov r8, r8\)
+    9012:	e7fd      	b.n	.+ <.+>
     9014:	eaffffb9 	b	8f00 <targetfn>
diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d
index 079c928ea0479442712d4d0438ed734708f5ac4c..425c10207f635cef85f06c791c5e232b2fd1e442 100644
--- a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d
+++ b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
     8010:	00001004 	\.word	0x00001004
 00008014 <bar@plt>:
     8014:	4778      	bx	pc
-    8016:	46c0      	nop			; \(mov r8, r8\)
+    8016:	e7fd      	b.n	.+ <.+>
     8018:	e28fc600 	add	ip, pc, #0, 12
     801c:	e28cca01 	add	ip, ip, #4096	; 0x1000
     8020:	e5bcf000 	ldr	pc, \[ip, #0\]!
diff --git a/ld/testsuite/ld-arm/farcall-cond-thumb-arm.d b/ld/testsuite/ld-arm/farcall-cond-thumb-arm.d
index 0b0172b75ef02ad05d0ba50e7a96e8d242d60e06..c0d96523f452782f191db01802eb615d8c9e5453 100644
--- a/ld/testsuite/ld-arm/farcall-cond-thumb-arm.d
+++ b/ld/testsuite/ld-arm/farcall-cond-thumb-arm.d
@@ -9,7 +9,7 @@ Disassembly of section .text:
 
 00058008 <__bar_from_thumb>:
    58008:	4778      	bx	pc
-   5800a:	46c0      	nop			; \(mov r8, r8\)
+   5800a:	e7fd      	b.n	.+ <.+>
    5800c:	ea02fffb 	b	118000 <bar>
 
 Disassembly of section .foo:
diff --git a/ld/testsuite/ld-arm/farcall-mixed-app.d b/ld/testsuite/ld-arm/farcall-mixed-app.d
index f3be54f13427c033033d550f6502991d09c39fd8..0160f46d3a4858cb7d43a0fb98beed0458d97eaf 100644
--- a/ld/testsuite/ld-arm/farcall-mixed-app.d
+++ b/ld/testsuite/ld-arm/farcall-mixed-app.d
@@ -14,7 +14,7 @@ Disassembly of section .plt:
  .*:	.*
 .* <lib_func2@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!.*
@@ -82,7 +82,7 @@ Disassembly of section .far_thumb:
 
 .* <__lib_func2_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 2200018 <__lib_func2_from_thumb\+0x8>
  .*:	000081e0 	.word	0x000081e0
  .*:	00000000 	.word	0x00000000
diff --git a/ld/testsuite/ld-arm/farcall-mixed-app2.d b/ld/testsuite/ld-arm/farcall-mixed-app2.d
index 535710d0bdd3542fd4b19ef7afb0374d9575fcae..0c701485152a8f9b19155b54384a90f13c0e5c80 100644
--- a/ld/testsuite/ld-arm/farcall-mixed-app2.d
+++ b/ld/testsuite/ld-arm/farcall-mixed-app2.d
@@ -14,7 +14,7 @@ Disassembly of section .plt:
  .*:	.*
 .* <lib_func2@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!.*
@@ -56,7 +56,7 @@ Disassembly of section .mid_thumb:
 
 .* <__lib_func2_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 10081e8 <__lib_func2_from_thumb\+0x8>
  .*:	000081e0 	.word	0x000081e0
  .*:	00000000 	.word	0x00000000
diff --git a/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d b/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d
index 3d12e0ae644f5910811ccbedc64b0be9ee91634e..1b15879b253ded7351277387024886dd38c62eef 100644
--- a/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d
+++ b/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d
@@ -13,25 +13,25 @@ Disassembly of section .plt:
  .*:	.* 	.word	.*
 .* <app_func@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!	; .*
 .* <app_func_weak@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!	; 0x.*
 .* <lib_func3@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!	; 0x.*
 .* <lib_func4@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!	; 0x.*
@@ -59,28 +59,28 @@ Disassembly of section .text:
 
 .* <__app_func_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e59fc000 	ldr	ip, \[pc\]	; .* <__app_func_from_thumb\+0xc>
  .*:	e08cf00f 	add	pc, ip, pc
  .*:	feffff.. 	.word	0xfeffff..
 
 .* <__lib_func4_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e59fc000 	ldr	ip, \[pc\]	; .* <__lib_func4_from_thumb\+0xc>
  .*:	e08cf00f 	add	pc, ip, pc
  .*:	feffff.. 	.word	0xfeffff..
 
 .* <__app_func_weak_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e59fc000 	ldr	ip, \[pc\]	; .* <__app_func_weak_from_thumb\+0xc>
  .*:	e08cf00f 	add	pc, ip, pc
  .*:	feffff.. 	.word	0xfeffff..
 
 .* <__lib_func3_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e59fc000 	ldr	ip, \[pc\]	; .* <__lib_func3_from_thumb\+0xc>
  .*:	e08cf00f 	add	pc, ip, pc
  .*:	feffff.. 	.word	0xfeffff..
@@ -94,14 +94,14 @@ Disassembly of section .text:
 
 .* <__app_func_weak_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e59fc000 	ldr	ip, \[pc\]	; .* <__app_func_weak_from_thumb\+0xc>
  .*:	e08cf00f 	add	pc, ip, pc
  .*:	fdffff34 	.word	0xfdffff34
 
 .* <__app_func_from_thumb>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e59fc000 	ldr	ip, \[pc\]	; .* <__app_func_from_thumb\+0xc>
  .*:	e08cf00f 	add	pc, ip, pc
  .*:	fdffff14 	.word	0xfdffff14
diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d
index aff4df79bc484a685ea946037fe612ce7158a1ab..f96d467cea2693fcd503154492a3d97ac4d265e8 100644
--- a/ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d
+++ b/ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d
@@ -9,7 +9,7 @@ Disassembly of section .text:
 
 01f01018 <__bar_from_thumb>:
  1f01018:	4778      	bx	pc
- 1f0101a:	46c0      	nop			; \(mov r8, r8\)
+ 1f0101a:	e7fd      	b.n	.+ <.+>
  1f0101c:	e59fc000 	ldr	ip, \[pc\]	; 1f01024 <__bar_from_thumb\+0xc>
  1f01020:	e08cf00f 	add	pc, ip, pc
  1f01024:	000fffec 	.word	0x000fffec
diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-short.d b/ld/testsuite/ld-arm/farcall-thumb-arm-short.d
index 4e190394336892f7c7e46a9bd6ac0a2f9eb14b14..b74f385c968e6b3bf7c020df84da032e619d8118 100644
--- a/ld/testsuite/ld-arm/farcall-thumb-arm-short.d
+++ b/ld/testsuite/ld-arm/farcall-thumb-arm-short.d
@@ -9,7 +9,7 @@ Disassembly of section .text:
 
 00001008 <__bar_from_thumb>:
     1008:	4778      	bx	pc
-    100a:	46c0      	nop			; \(mov r8, r8\)
+    100a:	e7fd      	b.n	.+ <.+>
     100c:	ea000400 	b	2014 <bar>
 Disassembly of section .foo:
 
diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm.d b/ld/testsuite/ld-arm/farcall-thumb-arm.d
index 5dc377a0b0654632ec067effa698e00c370679a0..d62649d838a26dbb4c5cf81fab5dc502d35dfd92 100644
--- a/ld/testsuite/ld-arm/farcall-thumb-arm.d
+++ b/ld/testsuite/ld-arm/farcall-thumb-arm.d
@@ -9,13 +9,13 @@ Disassembly of section .text:
 
 01f01018 <__bar_from_thumb>:
  1f01018:	4778      	bx	pc
- 1f0101a:	46c0      	nop			; \(mov r8, r8\)
+ 1f0101a:	e7fd      	b.n	.+ <.+>
  1f0101c:	e51ff004 	ldr	pc, \[pc, #-4\]	; 1f01020 <__bar_from_thumb\+0x8>
  1f01020:	02001014 	.word	0x02001014
 
 01f01024 <__bar_from_thumb>:
  1f01024:	4778      	bx	pc
- 1f01026:	46c0      	nop			; \(mov r8, r8\)
+ 1f01026:	e7fd      	b.n	.+ <.+>
  1f01028:	ea03fff9 	b	2001014 <bar>
  1f0102c:	00000000 	andeq	r0, r0, r0
 
diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d
index 8b14599a53014c5785b84d2836dcd5542f63bc50..0b7184bba2c63f2688745f748de5049e04d818da 100644
--- a/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d
+++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d
@@ -9,7 +9,7 @@ Disassembly of section .text:
 
 00001008 <__bar_veneer>:
     1008:	4778      	bx	pc
-    100a:	46c0      	nop			; \(mov r8, r8\)
+    100a:	e7fd      	b.n	.+ <.+>
     100c:	e59fc004 	ldr	ip, \[pc, #4\]	; 1018 <__bar_veneer\+0x10>
     1010:	e08fc00c 	add	ip, pc, ip
     1014:	e12fff1c 	bx	ip
diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb.d b/ld/testsuite/ld-arm/farcall-thumb-thumb.d
index 4f4c2c9bd6f8c1835e8c82d4749d59d79cf86972..0d9a898eff46077d7583a14a60d732bbe90c29e3 100644
--- a/ld/testsuite/ld-arm/farcall-thumb-thumb.d
+++ b/ld/testsuite/ld-arm/farcall-thumb-thumb.d
@@ -9,7 +9,7 @@ Disassembly of section .text:
 
 00001008 <__bar_veneer>:
     1008:	4778      	bx	pc
-    100a:	46c0      	nop			; \(mov r8, r8\)
+    100a:	e7fd      	b.n	.+ <.+>
     100c:	e59fc000 	ldr	ip, \[pc\]	; 1014 <__bar_veneer\+0xc>
     1010:	e12fff1c 	bx	ip
     1014:	02001015 	.word	0x02001015
diff --git a/ld/testsuite/ld-arm/fix-arm1176-on.d b/ld/testsuite/ld-arm/fix-arm1176-on.d
index 834618e89c99dfdffc82cd20de4fc1e56fb681d6..46510dc73d010eafaa73ca8bc25b53d9667ef805 100644
--- a/ld/testsuite/ld-arm/fix-arm1176-on.d
+++ b/ld/testsuite/ld-arm/fix-arm1176-on.d
@@ -9,7 +9,7 @@ Disassembly of section .foo:
 
 [0-9a-f]+ <__func_to_branch_to_veneer>:
  +[0-9a-f]+:	4778      	bx	pc
- +[0-9a-f]+:	46c0      	nop			; \(mov r8, r8\)
+ +[0-9a-f]+:	e7fd      	b.n	.+ <.+>
  +[0-9a-f]+:	e51ff004 	ldr	pc, \[pc, #-4\]	; 2001020 <__func_to_branch_to_veneer\+0x8>
  +[0-9a-f]+:	........ 	.word	0x........
  +[0-9a-f]+:	00000000 	.word	0x00000000
diff --git a/ld/testsuite/ld-arm/ifunc-10.dd b/ld/testsuite/ld-arm/ifunc-10.dd
index 05e4be5b59b6d58f299ca0650c89c24a5f1c8807..6b9771f6c06a17c1d8d96865973292125982917e 100644
--- a/ld/testsuite/ld-arm/ifunc-10.dd
+++ b/ld/testsuite/ld-arm/ifunc-10.dd
@@ -18,7 +18,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009014 <atf2@plt>:
     9014:	4778      	bx	pc
-    9016:	46c0      	nop			; \(mov r8, r8\)
+    9016:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf2's .plt entry
 #------------------------------------------------------------------------------
@@ -37,7 +37,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009030 <ttf2@plt>:
     9030:	4778      	bx	pc
-    9032:	46c0      	nop			; \(mov r8, r8\)
+    9032:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf2's .plt entry
 #------------------------------------------------------------------------------
@@ -49,7 +49,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009040 <tbf2@plt>:
     9040:	4778      	bx	pc
-    9042:	46c0      	nop			; \(mov r8, r8\)
+    9042:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf2's .plt entry
 #------------------------------------------------------------------------------
@@ -75,7 +75,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009068 <abf4@plt>:
     9068:	4778      	bx	pc
-    906a:	46c0      	nop			; \(mov r8, r8\)
+    906a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf4's .plt entry
 #------------------------------------------------------------------------------
@@ -87,7 +87,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009078 <tbf4@plt>:
     9078:	4778      	bx	pc
-    907a:	46c0      	nop			; \(mov r8, r8\)
+    907a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf4's .plt entry
 #------------------------------------------------------------------------------
@@ -99,7 +99,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009088 <ttf4@plt>:
     9088:	4778      	bx	pc
-    908a:	46c0      	nop			; \(mov r8, r8\)
+    908a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf4's .plt entry
 #------------------------------------------------------------------------------
@@ -111,7 +111,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009098 <atf4@plt>:
     9098:	4778      	bx	pc
-    909a:	46c0      	nop			; \(mov r8, r8\)
+    909a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf4's .plt entry
 #------------------------------------------------------------------------------
@@ -130,7 +130,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 000090b4 <abf2@plt>:
     90b4:	4778      	bx	pc
-    90b6:	46c0      	nop			; \(mov r8, r8\)
+    90b6:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf2's .plt entry
 #------------------------------------------------------------------------------
@@ -151,7 +151,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf1's .iplt entry
 #------------------------------------------------------------------------------
     90d0:	4778      	bx	pc
-    90d2:	46c0      	nop			; \(mov r8, r8\)
+    90d2:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -162,7 +162,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf1's .iplt entry
 #------------------------------------------------------------------------------
     90e0:	4778      	bx	pc
-    90e2:	46c0      	nop			; \(mov r8, r8\)
+    90e2:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -179,7 +179,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf1's .iplt entry
 #------------------------------------------------------------------------------
     90fc:	4778      	bx	pc
-    90fe:	46c0      	nop			; \(mov r8, r8\)
+    90fe:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -190,7 +190,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf1's .iplt entry
 #------------------------------------------------------------------------------
     910c:	4778      	bx	pc
-    910e:	46c0      	nop			; \(mov r8, r8\)
+    910e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -201,7 +201,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf3
 #------------------------------------------------------------------------------
     911c:	4778      	bx	pc
-    911e:	46c0      	nop			; \(mov r8, r8\)
+    911e:	e7fd      	b.n	.+ <.+>
 
 00009120 <atf3>:
     9120:	e28fc600 	add	ip, pc, #0, 12
@@ -211,7 +211,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf3
 #------------------------------------------------------------------------------
     912c:	4778      	bx	pc
-    912e:	46c0      	nop			; \(mov r8, r8\)
+    912e:	e7fd      	b.n	.+ <.+>
 
 00009130 <abf3>:
     9130:	e28fc600 	add	ip, pc, #0, 12
@@ -221,7 +221,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf3
 #------------------------------------------------------------------------------
     913c:	4778      	bx	pc
-    913e:	46c0      	nop			; \(mov r8, r8\)
+    913e:	e7fd      	b.n	.+ <.+>
 
 00009140 <ttf3>:
     9140:	e28fc600 	add	ip, pc, #0, 12
@@ -231,7 +231,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf3
 #------------------------------------------------------------------------------
     914c:	4778      	bx	pc
-    914e:	46c0      	nop			; \(mov r8, r8\)
+    914e:	e7fd      	b.n	.+ <.+>
 
 00009150 <tbf3>:
     9150:	e28fc600 	add	ip, pc, #0, 12
diff --git a/ld/testsuite/ld-arm/ifunc-2.dd b/ld/testsuite/ld-arm/ifunc-2.dd
index 91eab540d2968b29b56c03ccd2e6be85e18ffe10..a60ef2b02776dfe103a5db80d97c1d67e621caec 100644
--- a/ld/testsuite/ld-arm/ifunc-2.dd
+++ b/ld/testsuite/ld-arm/ifunc-2.dd
@@ -21,7 +21,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to f3's .iplt entry
 #------------------------------------------------------------------------------
     9018:	4778      	bx	pc
-    901a:	46c0      	nop			; \(mov r8, r8\)
+    901a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ f3's .iplt entry
 #------------------------------------------------------------------------------
@@ -32,7 +32,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to f4's .iplt entry
 #------------------------------------------------------------------------------
     9028:	4778      	bx	pc
-    902a:	46c0      	nop			; \(mov r8, r8\)
+    902a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ f4's .iplt entry
 #------------------------------------------------------------------------------
@@ -43,7 +43,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to f7
 #------------------------------------------------------------------------------
     9038:	4778      	bx	pc
-    903a:	46c0      	nop			; \(mov r8, r8\)
+    903a:	e7fd      	b.n	.+ <.+>
 
 0000903c <f7>:
     903c:	e28fc600 	add	ip, pc, #0, 12
@@ -58,7 +58,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to f8
 #------------------------------------------------------------------------------
     9054:	4778      	bx	pc
-    9056:	46c0      	nop			; \(mov r8, r8\)
+    9056:	e7fd      	b.n	.+ <.+>
 
 00009058 <f8>:
     9058:	e28fc600 	add	ip, pc, #0, 12
diff --git a/ld/testsuite/ld-arm/ifunc-4.dd b/ld/testsuite/ld-arm/ifunc-4.dd
index 647a340855d5b67876dc00125aacb8bba0c025cd..89fc34b85df7ca7b4bbd42709b5c2d2a6ec3c323 100644
--- a/ld/testsuite/ld-arm/ifunc-4.dd
+++ b/ld/testsuite/ld-arm/ifunc-4.dd
@@ -18,7 +18,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009014 <atf2@plt>:
     9014:	4778      	bx	pc
-    9016:	46c0      	nop			; \(mov r8, r8\)
+    9016:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf2's .plt entry
 #------------------------------------------------------------------------------
@@ -30,7 +30,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009024 <ttf2@plt>:
     9024:	4778      	bx	pc
-    9026:	46c0      	nop			; \(mov r8, r8\)
+    9026:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf2's .plt entry
 #------------------------------------------------------------------------------
@@ -42,7 +42,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 00009034 <tbf2@plt>:
     9034:	4778      	bx	pc
-    9036:	46c0      	nop			; \(mov r8, r8\)
+    9036:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf2's .plt entry
 #------------------------------------------------------------------------------
@@ -68,7 +68,7 @@ Disassembly of section \.plt:
 #------------------------------------------------------------------------------
 0000905c <abf2@plt>:
     905c:	4778      	bx	pc
-    905e:	46c0      	nop			; \(mov r8, r8\)
+    905e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf2's .plt entry
 #------------------------------------------------------------------------------
@@ -89,7 +89,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf1's .iplt entry
 #------------------------------------------------------------------------------
     9078:	4778      	bx	pc
-    907a:	46c0      	nop			; \(mov r8, r8\)
+    907a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -100,7 +100,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf1's .iplt entry
 #------------------------------------------------------------------------------
     9088:	4778      	bx	pc
-    908a:	46c0      	nop			; \(mov r8, r8\)
+    908a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -117,7 +117,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf1's .iplt entry
 #------------------------------------------------------------------------------
     90a4:	4778      	bx	pc
-    90a6:	46c0      	nop			; \(mov r8, r8\)
+    90a6:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -128,7 +128,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf1's .iplt entry
 #------------------------------------------------------------------------------
     90b4:	4778      	bx	pc
-    90b6:	46c0      	nop			; \(mov r8, r8\)
+    90b6:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -145,7 +145,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf3's .iplt entry
 #------------------------------------------------------------------------------
     90d0:	4778      	bx	pc
-    90d2:	46c0      	nop			; \(mov r8, r8\)
+    90d2:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -156,7 +156,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf3's .iplt entry
 #------------------------------------------------------------------------------
     90e0:	4778      	bx	pc
-    90e2:	46c0      	nop			; \(mov r8, r8\)
+    90e2:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -167,7 +167,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf3's .iplt entry
 #------------------------------------------------------------------------------
     90f0:	4778      	bx	pc
-    90f2:	46c0      	nop			; \(mov r8, r8\)
+    90f2:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -178,7 +178,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf3's .iplt entry
 #------------------------------------------------------------------------------
     9100:	4778      	bx	pc
-    9102:	46c0      	nop			; \(mov r8, r8\)
+    9102:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -195,7 +195,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf4's .iplt entry
 #------------------------------------------------------------------------------
     911c:	4778      	bx	pc
-    911e:	46c0      	nop			; \(mov r8, r8\)
+    911e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf4's .iplt entry
 #------------------------------------------------------------------------------
@@ -206,7 +206,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf4's .iplt entry
 #------------------------------------------------------------------------------
     912c:	4778      	bx	pc
-    912e:	46c0      	nop			; \(mov r8, r8\)
+    912e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf4's .iplt entry
 #------------------------------------------------------------------------------
@@ -217,7 +217,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf4's .iplt entry
 #------------------------------------------------------------------------------
     913c:	4778      	bx	pc
-    913e:	46c0      	nop			; \(mov r8, r8\)
+    913e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf4's .iplt entry
 #------------------------------------------------------------------------------
@@ -234,7 +234,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf4's .iplt entry
 #------------------------------------------------------------------------------
     9158:	4778      	bx	pc
-    915a:	46c0      	nop			; \(mov r8, r8\)
+    915a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf4's .iplt entry
 #------------------------------------------------------------------------------
diff --git a/ld/testsuite/ld-arm/ifunc-6.dd b/ld/testsuite/ld-arm/ifunc-6.dd
index 3c9cbd5351d162bd19765531d9c1477ea23405b2..c060cb205161c5c5e14447fc5196df7851140249 100644
--- a/ld/testsuite/ld-arm/ifunc-6.dd
+++ b/ld/testsuite/ld-arm/ifunc-6.dd
@@ -9,7 +9,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to f3's .iplt entry
 #------------------------------------------------------------------------------
     9000:	4778      	bx	pc
-    9002:	46c0      	nop			; \(mov r8, r8\)
+    9002:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ f3's .iplt entry
 #------------------------------------------------------------------------------
@@ -26,7 +26,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to f4's .iplt entry
 #------------------------------------------------------------------------------
     901c:	4778      	bx	pc
-    901e:	46c0      	nop			; \(mov r8, r8\)
+    901e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ f4's .iplt entry
 #------------------------------------------------------------------------------
diff --git a/ld/testsuite/ld-arm/ifunc-8.dd b/ld/testsuite/ld-arm/ifunc-8.dd
index 50a91770926cb02bcf6fd206c2bc1cf3a9c5d603..8216eb148de464935b92d5469a64f5e2205cedb7 100644
--- a/ld/testsuite/ld-arm/ifunc-8.dd
+++ b/ld/testsuite/ld-arm/ifunc-8.dd
@@ -15,7 +15,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf1's .iplt entry
 #------------------------------------------------------------------------------
     900c:	4778      	bx	pc
-    900e:	46c0      	nop			; \(mov r8, r8\)
+    900e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -26,7 +26,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf1's .iplt entry
 #------------------------------------------------------------------------------
     901c:	4778      	bx	pc
-    901e:	46c0      	nop			; \(mov r8, r8\)
+    901e:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -43,7 +43,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf1's .iplt entry
 #------------------------------------------------------------------------------
     9038:	4778      	bx	pc
-    903a:	46c0      	nop			; \(mov r8, r8\)
+    903a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -54,7 +54,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf1's .iplt entry
 #------------------------------------------------------------------------------
     9048:	4778      	bx	pc
-    904a:	46c0      	nop			; \(mov r8, r8\)
+    904a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf1's .iplt entry
 #------------------------------------------------------------------------------
@@ -65,7 +65,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to atf3's .iplt entry
 #------------------------------------------------------------------------------
     9058:	4778      	bx	pc
-    905a:	46c0      	nop			; \(mov r8, r8\)
+    905a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ atf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -76,7 +76,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to abf3's .iplt entry
 #------------------------------------------------------------------------------
     9068:	4778      	bx	pc
-    906a:	46c0      	nop			; \(mov r8, r8\)
+    906a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ abf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -87,7 +87,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to ttf3's .iplt entry
 #------------------------------------------------------------------------------
     9078:	4778      	bx	pc
-    907a:	46c0      	nop			; \(mov r8, r8\)
+    907a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ ttf3's .iplt entry
 #------------------------------------------------------------------------------
@@ -98,7 +98,7 @@ Disassembly of section \.iplt:
 #------ thumb entry to tbf3's .iplt entry
 #------------------------------------------------------------------------------
     9088:	4778      	bx	pc
-    908a:	46c0      	nop			; \(mov r8, r8\)
+    908a:	e7fd      	b.n	.+ <.+>
 #------------------------------------------------------------------------------
 #------ tbf3's .iplt entry
 #------------------------------------------------------------------------------
diff --git a/ld/testsuite/ld-arm/jump-reloc-veneers-long.d b/ld/testsuite/ld-arm/jump-reloc-veneers-long.d
index ae176bed8ac92aa097b587224b40290af0b0ff45..1edb1b37729e7428f3d72be19e877aab4e040468 100644
--- a/ld/testsuite/ld-arm/jump-reloc-veneers-long.d
+++ b/ld/testsuite/ld-arm/jump-reloc-veneers-long.d
@@ -16,7 +16,7 @@ Disassembly of section .text:
 
 000080.. <[^>]*>:
     80..:	4778      	bx	pc
-    80..:	46c0      	nop			; \(mov r8, r8\)
+    80..:	e7fd      	b.n	.+ <.+>
     80..:	e59fc000 	ldr	ip, \[pc\]	; 80.. <__dest_veneer\+0xc>
     80..:	e12fff1c 	bx	ip
     80..:	09000001 	.word	0x09000001
diff --git a/ld/testsuite/ld-arm/mixed-app.d b/ld/testsuite/ld-arm/mixed-app.d
index 4bcbdad8ded83dc8bef47475400457e4f2f0e96d..99c6e5dcf63574a7e7c5585fec5bfcea0b4a8762 100644
--- a/ld/testsuite/ld-arm/mixed-app.d
+++ b/ld/testsuite/ld-arm/mixed-app.d
@@ -14,7 +14,7 @@ Disassembly of section .plt:
  .*:	.*
 .* <lib_func2@plt>:
  .*:	4778      	bx	pc
- .*:	46c0      	nop			; \(mov r8, r8\)
+ .*:	e7fd      	b.n	.+ <.+>
  .*:	e28fc6.* 	add	ip, pc, #.*
  .*:	e28cca.* 	add	ip, ip, #.*	; 0x.*
  .*:	e5bcf.* 	ldr	pc, \[ip, #.*\]!.*
diff --git a/ld/testsuite/ld-arm/thumb2-b-interwork.d b/ld/testsuite/ld-arm/thumb2-b-interwork.d
index 67cb8638ec32ff13daee4c31bcc9c77586e7c64c..e01ef5054127f7b7195eba08cb6a9e69e154b8a4 100644
--- a/ld/testsuite/ld-arm/thumb2-b-interwork.d
+++ b/ld/testsuite/ld-arm/thumb2-b-interwork.d
@@ -11,6 +11,6 @@ Disassembly of section .text:
 
 [0-9a-f]+ <__bar_from_thumb>:
  +[0-9a-f]+:	4778      	bx	pc
- +[0-9a-f]+:	46c0      	nop			; \(mov r8, r8\)
+ +[0-9a-f]+:	e7fd      	b.n	.+ <.+>
  +[0-9a-f]+:	eafffffc 	b	[0-9a-f]+ <bar>
 
diff --git a/ld/testsuite/ld-arm/tls-longplt.d b/ld/testsuite/ld-arm/tls-longplt.d
index 066467228b79c9cb548d48b00f81b6ec5cdf9d4c..c7fad340257819bae3c7803683e8bd54f282c1c9 100644
--- a/ld/testsuite/ld-arm/tls-longplt.d
+++ b/ld/testsuite/ld-arm/tls-longplt.d
@@ -58,7 +58,7 @@ Disassembly of section .foo:
 
 04001038 <__unnamed_veneer>:
  4001038:	4778      	bx	pc
- 400103a:	46c0      	nop			; .*
+ 400103a:	e7fd      	b.n	.+ <.+>
  400103c:	e51ff004 	ldr	pc, \[pc, #-4\]	; .*
  4001040:	000081b0 	.word	0x000081b0
  4001044:	00000000 	.word	0x00000000
diff --git a/ld/testsuite/ld-arm/tls-thumb1.d b/ld/testsuite/ld-arm/tls-thumb1.d
index 3b39f6560422bd8305cf10c3228095defeeb7b28..41d5f8c1b882d854ad73bf546b40b4e0321dc347 100644
--- a/ld/testsuite/ld-arm/tls-thumb1.d
+++ b/ld/testsuite/ld-arm/tls-thumb1.d
@@ -38,7 +38,7 @@ Disassembly of section .text:
 
 000081a0 <__unnamed_veneer>:
 .*:	4778      	bx	pc
-.*:	46c0      	nop			; .*
+.*:	e7fd      	b.n	.+ <.+>
 .*:	e59f1000 	ldr	r1, \[pc\]	; .*
 .*:	e081f00f 	add	pc, r1, pc
 .*:	ffffffa0 	.word	0xffffffa0
@@ -67,7 +67,7 @@ Disassembly of section .foo:
 
 0400103c <__unnamed_veneer>:
 .*:	4778      	bx	pc
-.*:	46c0      	nop			; .*
+.*:	e7fd      	b.n	.+ <.+>
 .*:	e59f1000 	ldr	r1, \[pc\]	; .*
 .*:	e081f00f 	add	pc, r1, pc
 .*:	fc007104 	.word	0xfc007104


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]