From b4e87f2c1eee99dee805e3828514f8afa162f9ba Mon Sep 17 00:00:00 2001
From: Tamar Christina <tamar.christina@arm.com>
Date: Tue, 20 Aug 2019 16:34:26 +0100
Subject: Arm: Fix performance issue with thumb-2 tailcalls

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.

bfd/ChangeLog:

	* 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:

	* 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.
---
 ld/ChangeLog                                       | 26 ++++++++++++++++++
 ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d          |  2 +-
 ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d      |  2 +-
 ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d        |  2 +-
 ld/testsuite/ld-arm/farcall-cond-thumb-arm.d       |  2 +-
 ld/testsuite/ld-arm/farcall-mixed-app.d            |  4 +--
 ld/testsuite/ld-arm/farcall-mixed-app2.d           |  4 +--
 ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d        | 20 +++++++-------
 ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d |  2 +-
 ld/testsuite/ld-arm/farcall-thumb-arm-short.d      |  2 +-
 ld/testsuite/ld-arm/farcall-thumb-arm.d            |  4 +--
 .../ld-arm/farcall-thumb-thumb-pic-veneer.d        |  2 +-
 ld/testsuite/ld-arm/farcall-thumb-thumb.d          |  2 +-
 ld/testsuite/ld-arm/fix-arm1176-on.d               |  2 +-
 ld/testsuite/ld-arm/ifunc-10.dd                    | 32 +++++++++++-----------
 ld/testsuite/ld-arm/ifunc-2.dd                     |  8 +++---
 ld/testsuite/ld-arm/ifunc-4.dd                     | 32 +++++++++++-----------
 ld/testsuite/ld-arm/ifunc-6.dd                     |  4 +--
 ld/testsuite/ld-arm/ifunc-8.dd                     | 16 +++++------
 ld/testsuite/ld-arm/jump-reloc-veneers-long.d      |  2 +-
 ld/testsuite/ld-arm/mixed-app.d                    |  2 +-
 ld/testsuite/ld-arm/thumb2-b-interwork.d           |  2 +-
 ld/testsuite/ld-arm/tls-longplt.d                  |  2 +-
 ld/testsuite/ld-arm/tls-thumb1.d                   |  4 +--
 24 files changed, 103 insertions(+), 77 deletions(-)

(limited to 'ld')

diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4837aac2203..4f71ce81bd3 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,29 @@
+2019-08-20  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.
+
 2019-08-16  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/24905
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 bbf68398d6c..54f56e4ccbc 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 3e52a495563..afa1e4897a3 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 079c928ea04..425c10207f6 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 0b0172b75ef..c0d96523f45 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 f3be54f1342..0160f46d3a4 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 535710d0bdd..0c701485152 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 3d12e0ae644..1b15879b253 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 aff4df79bc4..f96d467cea2 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 4e190394336..b74f385c968 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 5dc377a0b06..d62649d838a 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 8b14599a530..0b7184bba2c 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 4f4c2c9bd6f..0d9a898eff4 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 834618e89c9..46510dc73d0 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 05e4be5b59b..6b9771f6c06 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 91eab540d29..a60ef2b0277 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 647a340855d..89fc34b85df 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 3c9cbd5351d..c060cb20516 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 50a91770926..8216eb148de 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 ae176bed8ac..1edb1b37729 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 4bcbdad8ded..99c6e5dcf63 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 67cb8638ec3..e01ef505412 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 066467228b7..c7fad340257 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 3b39f656042..41d5f8c1b88 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
-- 
cgit v1.2.1