[lld] [test] Migrate Arm thunk tests to the default thunk order (PR #212694)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 28 23:53:48 PDT 2026
https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/212694
Drop -z nosort-thunks (added by #211721 to keep creation order) and
update expectations to the default order: forward thunks sorted by
descending destination. Backward-only thunk sections keep creation
order and are unchanged.
In arm-thunk-re-add.s, retarget beq.w to imported2: sorting places
imported's pool thunk just within conditional-branch range, so
beq.w imported would reuse it instead of re-adding a thunk.
>From d7a7fdfe9d03e942b650c0fed6501825d5bdb43e Mon Sep 17 00:00:00 2001
From: Fangrui Song <i at maskray.me>
Date: Tue, 28 Jul 2026 23:15:23 -0700
Subject: [PATCH] [test] Migrate Arm thunk tests to the default thunk order
Drop -z nosort-thunks (added by #211721 to keep creation order) and
update expectations to the default order: forward thunks sorted by
descending destination. Backward-only thunk sections keep creation
order and are unchanged.
In arm-thunk-re-add.s, retarget beq.w to imported2: sorting places
imported's pool thunk just within conditional-branch range, so
beq.w imported would reuse it instead of re-adding a thunk.
---
lld/test/ELF/arm-bl-v4t.s | 100 +++++++++---------
lld/test/ELF/arm-branch-rangethunk.s | 34 +++---
lld/test/ELF/arm-force-pi-thunk.s | 18 ++--
lld/test/ELF/arm-thumb-condbranch-thunk.s | 26 ++---
lld/test/ELF/arm-thumb-interwork-shared.s | 14 +--
lld/test/ELF/arm-thumb-interwork-thunk.s | 74 ++++++-------
lld/test/ELF/arm-thumb-mix-range-thunk-os.s | 24 ++---
lld/test/ELF/arm-thumb-plt-range-thunk-os.s | 16 +--
.../ELF/arm-thumb-range-thunk-os-no-ext.s | 22 ++--
lld/test/ELF/arm-thumb-range-thunk-os.s | 38 +++----
lld/test/ELF/arm-thunk-arm-thumb-reuse.s | 22 ++--
lld/test/ELF/arm-thunk-linkerscript-dotexpr.s | 22 ++--
lld/test/ELF/arm-thunk-linkerscript-orphan.s | 14 +--
lld/test/ELF/arm-thunk-linkerscript.s | 22 ++--
lld/test/ELF/arm-thunk-re-add.s | 26 ++---
15 files changed, 235 insertions(+), 237 deletions(-)
diff --git a/lld/test/ELF/arm-bl-v4t.s b/lld/test/ELF/arm-bl-v4t.s
index 31bfe010108b2..4e9d273e77570 100644
--- a/lld/test/ELF/arm-bl-v4t.s
+++ b/lld/test/ELF/arm-bl-v4t.s
@@ -1,23 +1,23 @@
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv4t-none-linux-gnueabi %t/a.s -o %t/a.o
-// RUN: ld.lld -z nosort-thunks %t/a.o --script %t/far.lds -o %t/a-far
+// RUN: ld.lld %t/a.o --script %t/far.lds -o %t/a-far
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4t-none-linux-gnueabi %t/a-far | FileCheck %s --check-prefixes=FAR
-// RUN: ld.lld -z nosort-thunks %t/a.o --script %t/near.lds -o %t/a-near
+// RUN: ld.lld %t/a.o --script %t/near.lds -o %t/a-near
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4t-none-linux-gnueabi %t/a-near | FileCheck %s --check-prefixes=NEAR
-// RUN: ld.lld -z nosort-thunks %t/a.o -pie --script %t/far.lds -o %t/a-far-pie
+// RUN: ld.lld %t/a.o -pie --script %t/far.lds -o %t/a-far-pie
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4t-none-linux-gnueabi %t/a-far-pie | FileCheck %s --check-prefixes=FAR-PIE
-// RUN: ld.lld -z nosort-thunks %t/a.o -pie --script %t/near.lds -o %t/a-near-pie
+// RUN: ld.lld %t/a.o -pie --script %t/near.lds -o %t/a-near-pie
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4t-none-linux-gnueabi %t/a-near-pie | FileCheck %s --check-prefixes=NEAR
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv4teb-none-linux-gnueabi %t/a.s -o %t/a.o
-// RUN: ld.lld -z nosort-thunks %t/a.o --script %t/far.lds -o %t/a-far
+// RUN: ld.lld %t/a.o --script %t/far.lds -o %t/a-far
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4teb-none-linux-gnueabi %t/a-far | FileCheck %s --check-prefixes=FAR-EB
-// RUN: ld.lld -z nosort-thunks %t/a.o --script %t/near.lds -o %t/a-near
+// RUN: ld.lld %t/a.o --script %t/near.lds -o %t/a-near
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4teb-none-linux-gnueabi %t/a-near | FileCheck %s --check-prefixes=NEAR
-// RUN: ld.lld -z nosort-thunks %t/a.o -pie --script %t/far.lds -o %t/a-far-pie
+// RUN: ld.lld %t/a.o -pie --script %t/far.lds -o %t/a-far-pie
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4teb-none-linux-gnueabi %t/a-far-pie | FileCheck %s --check-prefixes=FAR-EB-PIE
-// RUN: ld.lld -z nosort-thunks %t/a.o -pie --script %t/near.lds -o %t/a-near-pie
+// RUN: ld.lld %t/a.o -pie --script %t/near.lds -o %t/a-near-pie
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv4teb-none-linux-gnueabi %t/a-near-pie | FileCheck %s --check-prefixes=NEAR
/// On Armv4T there is no blx instruction so long branch/exchange looks slightly
@@ -46,88 +46,88 @@ thumb_start:
bx lr
// FAR-LABEL: <_start>:
-// FAR-NEXT: 1000000: bl 0x1000010 <__ARMv5LongLdrPcThunk_target> @ imm = #8
+// FAR-NEXT: 1000000: bl 0x1000020 <__ARMv5LongLdrPcThunk_target> @ imm = #24
// FAR-NEXT: bx lr
// FAR-EMPTY:
// FAR-LABEL: <thumb_start>:
-// FAR-NEXT: 1000008: bl 0x1000018 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #12
+// FAR-NEXT: 1000008: bl 0x1000010 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #4
// FAR-NEXT: bx lr
// FAR-NEXT: bmi 0xffffba @ imm = #-88
// FAR-EMPTY:
-// FAR-NEXT: <__ARMv5LongLdrPcThunk_target>:
-// FAR-NEXT: 1000010: ldr pc, [pc, #-4] @ 0x1000014 <__ARMv5LongLdrPcThunk_target+0x4>
-// FAR-NEXT: 1000014: 00 00 00 06 .word 0x06000000
-// FAR-EMPTY:
// FAR-NEXT: <__Thumbv4ABSLongThunk_thumb_target>:
-// FAR-NEXT: 1000018: bx pc
-// FAR-NEXT: b 0x1000018 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #-6
-// FAR-NEXT: 100001c: ldr r12, [pc] @ 0x1000024 <__Thumbv4ABSLongThunk_thumb_target+0xc>
+// FAR-NEXT: 1000010: bx pc
+// FAR-NEXT: b 0x1000010 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #-6
+// FAR-NEXT: 1000014: ldr r12, [pc] @ 0x100001c <__Thumbv4ABSLongThunk_thumb_target+0xc>
// FAR-NEXT: bx r12
-// FAR-NEXT: 1000024: 05 00 00 06 .word 0x06000005
+// FAR-NEXT: 100001c: 05 00 00 06 .word 0x06000005
+// FAR-EMPTY:
+// FAR-NEXT: <__ARMv5LongLdrPcThunk_target>:
+// FAR-NEXT: 1000020: ldr pc, [pc, #-4] @ 0x1000024 <__ARMv5LongLdrPcThunk_target+0x4>
+// FAR-NEXT: 1000024: 00 00 00 06 .word 0x06000000
// FAR-EB-LABEL: <_start>:
-// FAR-EB-NEXT: 1000000: bl 0x1000010 <__ARMv5LongLdrPcThunk_target> @ imm = #8
+// FAR-EB-NEXT: 1000000: bl 0x1000020 <__ARMv5LongLdrPcThunk_target> @ imm = #24
// FAR-EB-NEXT: bx lr
// FAR-EB-EMPTY:
// FAR-EB-LABEL: <thumb_start>:
-// FAR-EB-NEXT: 1000008: bl 0x1000018 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #12
+// FAR-EB-NEXT: 1000008: bl 0x1000010 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #4
// FAR-EB-NEXT: bx lr
// FAR-EB-NEXT: bmi 0xffffba @ imm = #-88
// FAR-EB-EMPTY:
-// FAR-EB-NEXT: <__ARMv5LongLdrPcThunk_target>:
-// FAR-EB-NEXT: 1000010: ldr pc, [pc, #-4] @ 0x1000014 <__ARMv5LongLdrPcThunk_target+0x4>
-// FAR-EB-NEXT: 1000014: 06 00 00 00 .word 0x06000000
-// FAR-EB-EMPTY:
// FAR-EB-NEXT: <__Thumbv4ABSLongThunk_thumb_target>:
-// FAR-EB-NEXT: 1000018: bx pc
-// FAR-EB-NEXT: b 0x1000018 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #-6
-// FAR-EB-NEXT: 100001c: ldr r12, [pc] @ 0x1000024 <__Thumbv4ABSLongThunk_thumb_target+0xc>
+// FAR-EB-NEXT: 1000010: bx pc
+// FAR-EB-NEXT: b 0x1000010 <__Thumbv4ABSLongThunk_thumb_target> @ imm = #-6
+// FAR-EB-NEXT: 1000014: ldr r12, [pc] @ 0x100001c <__Thumbv4ABSLongThunk_thumb_target+0xc>
// FAR-EB-NEXT: bx r12
-// FAR-EB-NEXT: 1000024: 06 00 00 05 .word 0x06000005
+// FAR-EB-NEXT: 100001c: 06 00 00 05 .word 0x06000005
+// FAR-EB-EMPTY:
+// FAR-EB-NEXT: <__ARMv5LongLdrPcThunk_target>:
+// FAR-EB-NEXT: 1000020: ldr pc, [pc, #-4] @ 0x1000024 <__ARMv5LongLdrPcThunk_target+0x4>
+// FAR-EB-NEXT: 1000024: 06 00 00 00 .word 0x06000000
// FAR-PIE-LABEL: <_start>:
-// FAR-PIE-NEXT: 1000000: bl 0x1000010 <__ARMv4PILongThunk_target> @ imm = #8
+// FAR-PIE-NEXT: 1000000: bl 0x1000024 <__ARMv4PILongThunk_target> @ imm = #28
// FAR-PIE-NEXT: bx lr
// FAR-PIE-EMPTY:
// FAR-PIE-NEXT: <thumb_start>:
-// FAR-PIE-NEXT: 1000008: bl 0x100001c <__Thumbv4PILongThunk_thumb_target> @ imm = #16
+// FAR-PIE-NEXT: 1000008: bl 0x1000010 <__Thumbv4PILongThunk_thumb_target> @ imm = #4
// FAR-PIE-NEXT: bx lr
// FAR-PIE-NEXT: bmi 0xffffba @ imm = #-88
// FAR-PIE-EMPTY:
-// FAR-PIE-NEXT: <__ARMv4PILongThunk_target>:
-// FAR-PIE-NEXT: 1000010: ldr r12, [pc] @ 0x1000018 <__ARMv4PILongThunk_target+0x8>
-// FAR-PIE-NEXT: add pc, pc, r12
-// FAR-PIE-NEXT: 1000018: e4 ff ff 04 .word 0x04ffffe4
-// FAR-PIE-EMPTY:
// FAR-PIE-NEXT: <__Thumbv4PILongThunk_thumb_target>:
-// FAR-PIE-NEXT: 100001c: bx pc
-// FAR-PIE-NEXT: b 0x100001c <__Thumbv4PILongThunk_thumb_target> @ imm = #-6
-// FAR-PIE-NEXT: 1000020: ldr r12, [pc, #4] @ 0x100002c <__Thumbv4PILongThunk_thumb_target+0x10>
+// FAR-PIE-NEXT: 1000010: bx pc
+// FAR-PIE-NEXT: b 0x1000010 <__Thumbv4PILongThunk_thumb_target> @ imm = #-6
+// FAR-PIE-NEXT: 1000014: ldr r12, [pc, #4] @ 0x1000020 <__Thumbv4PILongThunk_thumb_target+0x10>
// FAR-PIE-NEXT: add r12, pc, r12
// FAR-PIE-NEXT: bx r12
-// FAR-PIE-NEXT: 100002c: d9 ff ff 04 .word 0x04ffffd9
+// FAR-PIE-NEXT: 1000020: e5 ff ff 04 .word 0x04ffffe5
+// FAR-PIE-EMPTY:
+// FAR-PIE-NEXT: <__ARMv4PILongThunk_target>:
+// FAR-PIE-NEXT: 1000024: ldr r12, [pc] @ 0x100002c <__ARMv4PILongThunk_target+0x8>
+// FAR-PIE-NEXT: add pc, pc, r12
+// FAR-PIE-NEXT: 100002c: d0 ff ff 04 .word 0x04ffffd0
// FAR-EB-PIE-LABEL: <_start>:
-// FAR-EB-PIE-NEXT: 1000000: bl 0x1000010 <__ARMv4PILongThunk_target> @ imm = #8
+// FAR-EB-PIE-NEXT: 1000000: bl 0x1000024 <__ARMv4PILongThunk_target> @ imm = #28
// FAR-EB-PIE-NEXT: bx lr
// FAR-EB-PIE-EMPTY:
// FAR-EB-PIE-NEXT: <thumb_start>:
-// FAR-EB-PIE-NEXT: 1000008: bl 0x100001c <__Thumbv4PILongThunk_thumb_target> @ imm = #16
+// FAR-EB-PIE-NEXT: 1000008: bl 0x1000010 <__Thumbv4PILongThunk_thumb_target> @ imm = #4
// FAR-EB-PIE-NEXT: bx lr
// FAR-EB-PIE-NEXT: bmi 0xffffba @ imm = #-88
// FAR-EB-PIE-EMPTY:
-// FAR-EB-PIE-NEXT: <__ARMv4PILongThunk_target>:
-// FAR-EB-PIE-NEXT: 1000010: ldr r12, [pc] @ 0x1000018 <__ARMv4PILongThunk_target+0x8>
-// FAR-EB-PIE-NEXT: add pc, pc, r12
-// FAR-EB-PIE-NEXT: 1000018: 04 ff ff e4 .word 0x04ffffe4
-// FAR-EB-PIE-EMPTY:
// FAR-EB-PIE-NEXT: <__Thumbv4PILongThunk_thumb_target>:
-// FAR-EB-PIE-NEXT: 100001c: bx pc
-// FAR-EB-PIE-NEXT: b 0x100001c <__Thumbv4PILongThunk_thumb_target> @ imm = #-6
-// FAR-EB-PIE-NEXT: 1000020: ldr r12, [pc, #4] @ 0x100002c <__Thumbv4PILongThunk_thumb_target+0x10>
+// FAR-EB-PIE-NEXT: 1000010: bx pc
+// FAR-EB-PIE-NEXT: b 0x1000010 <__Thumbv4PILongThunk_thumb_target> @ imm = #-6
+// FAR-EB-PIE-NEXT: 1000014: ldr r12, [pc, #4] @ 0x1000020 <__Thumbv4PILongThunk_thumb_target+0x10>
// FAR-EB-PIE-NEXT: add r12, pc, r12
// FAR-EB-PIE-NEXT: bx r12
-// FAR-EB-PIE-NEXT: 100002c: 04 ff ff d9 .word 0x04ffffd9
+// FAR-EB-PIE-NEXT: 1000020: 04 ff ff e5 .word 0x04ffffe5
+// FAR-EB-PIE-EMPTY:
+// FAR-EB-PIE-NEXT: <__ARMv4PILongThunk_target>:
+// FAR-EB-PIE-NEXT: 1000024: ldr r12, [pc] @ 0x100002c <__ARMv4PILongThunk_target+0x8>
+// FAR-EB-PIE-NEXT: add pc, pc, r12
+// FAR-EB-PIE-NEXT: 100002c: 04 ff ff d0 .word 0x04ffffd0
// NEAR-LABEL: <_start>:
// NEAR-NEXT: 1000000: bl 0x1000010 <target> @ imm = #8
diff --git a/lld/test/ELF/arm-branch-rangethunk.s b/lld/test/ELF/arm-branch-rangethunk.s
index 8b51caa3fdc23..b630d55ffb923 100644
--- a/lld/test/ELF/arm-branch-rangethunk.s
+++ b/lld/test/ELF/arm-branch-rangethunk.s
@@ -1,10 +1,10 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/far-arm-abs.s -o %tfar
-// RUN: ld.lld -z nosort-thunks %t %tfar -o %t2
+// RUN: ld.lld %t %tfar -o %t2
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv7a-none-linux-gnueabi %t2 | FileCheck --check-prefix=SHORT %s
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/far-long-arm-abs.s -o %tfarlong
-// RUN: ld.lld -z nosort-thunks %t %tfarlong -o %t3
+// RUN: ld.lld %t %tfarlong -o %t3
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv7a-none-linux-gnueabi %t3 | FileCheck --check-prefix=LONG %s
.syntax unified
.section .text, "ax",%progbits
@@ -19,32 +19,30 @@ _start:
beq too_far3
// SHORT: 00030000 <_start>:
-// SHORT-NEXT: 30000: bl 0x3000c <__ARMv7ABSLongThunk_too_far1>
+// SHORT-NEXT: 30000: bl 0x30014 <__ARMv7ABSLongThunk_too_far1>
// SHORT-NEXT: 30004: b 0x30010 <__ARMv7ABSLongThunk_too_far2>
-// SHORT-NEXT: 30008: beq 0x30014 <__ARMv7ABSLongThunk_too_far3>
-// SHORT: 0003000c <__ARMv7ABSLongThunk_too_far1>:
-/// 0x2030008 = too_far1
-// SHORT-NEXT: 3000c: b 0x2030008
+// SHORT-NEXT: 30008: beq 0x3000c <__ARMv7ABSLongThunk_too_far3>
+// SHORT: 0003000c <__ARMv7ABSLongThunk_too_far3>:
+/// 0x2030010 = too_far3
+// SHORT-NEXT: 3000c: b 0x2030010
// SHORT: 00030010 <__ARMv7ABSLongThunk_too_far2>:
/// 0x203000c = too_far2
// SHORT-NEXT: 30010: b 0x203000c
-// SHORT: 00030014 <__ARMv7ABSLongThunk_too_far3>:
-/// 0x2030010 = too_far3
-// SHORT-NEXT: 30014: b 0x2030010
+// SHORT: 00030014 <__ARMv7ABSLongThunk_too_far1>:
+/// 0x2030008 = too_far1
+// SHORT-NEXT: 30014: b 0x2030008
// LONG: 00030000 <_start>:
-// LONG-NEXT: 30000: bl 0x3000c <__ARMv7ABSLongThunk_too_far1>
+// LONG-NEXT: 30000: bl 0x30024 <__ARMv7ABSLongThunk_too_far1>
// LONG-NEXT: 30004: b 0x30018 <__ARMv7ABSLongThunk_too_far2>
-// LONG-NEXT: 30008: beq 0x30024 <__ARMv7ABSLongThunk_too_far3>
-// LONG: 0003000c <__ARMv7ABSLongThunk_too_far1>:
-// LONG-NEXT: 3000c: movw r12, #20
+// LONG-NEXT: 30008: beq 0x3000c <__ARMv7ABSLongThunk_too_far3>
+// LONG: 0003000c <__ARMv7ABSLongThunk_too_far3>:
+// LONG-NEXT: 3000c: movw r12, #44
// LONG-NEXT: 30010: movt r12, #515
// LONG-NEXT: 30014: bx r12
// LONG: 00030018 <__ARMv7ABSLongThunk_too_far2>:
// LONG-NEXT: 30018: movw r12, #32
// LONG-NEXT: 3001c: movt r12, #515
// LONG-NEXT: 30020: bx r12
-// LONG: 00030024 <__ARMv7ABSLongThunk_too_far3>:
-// LONG-NEXT: 30024: movw r12, #44
-// LONG-NEXT: 30028: movt r12, #515
-// LONG-NEXT: 3002c: bx r12
+// LONG: 00030024 <__ARMv7ABSLongThunk_too_far1>:
+// LONG-NEXT: 30024: b 0x2030014
diff --git a/lld/test/ELF/arm-force-pi-thunk.s b/lld/test/ELF/arm-force-pi-thunk.s
index 251209fbb08e1..db0f14b764dbd 100644
--- a/lld/test/ELF/arm-force-pi-thunk.s
+++ b/lld/test/ELF/arm-force-pi-thunk.s
@@ -1,7 +1,7 @@
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t && cd %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi a.s -o a.o
-// RUN: ld.lld -z nosort-thunks --pic-veneer --no-rosegment --script a.lds a.o -o exe
+// RUN: ld.lld --pic-veneer --no-rosegment --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe | FileCheck %s
// Test that we can force generation of position independent thunks even when
@@ -40,22 +40,22 @@ low_target2:
// CHECK-NEXT: <_start>:
// CHECK-NEXT: 94: 4770 bx lr
// CHECK: <low_target>:
-// CHECK-NEXT: 96: f000 f803 bl 0xa0 <__ThumbV7PILongThunk_high_target>
-// CHECK-NEXT: 9a: f000 f807 bl 0xac <__ThumbV7PILongThunk_high_target2>
+// CHECK-NEXT: 96: f000 f809 bl 0xac <__ThumbV7PILongThunk_high_target>
+// CHECK-NEXT: 9a: f000 f801 bl 0xa0 <__ThumbV7PILongThunk_high_target2>
// CHECK-NEXT: 9e: d4d4
-// CHECK: <__ThumbV7PILongThunk_high_target>:
-// CHECK-NEXT: a0: f64f 7c55 movw r12, #65365
+// CHECK: <__ThumbV7PILongThunk_high_target2>:
+// CHECK-NEXT: a0: f64f 7c75 movw r12, #65397
// CHECK-NEXT: a4: f2c0 1cff movt r12, #511
// CHECK-NEXT: a8: 44fc add r12, pc
// CHECK-NEXT: aa: 4760 bx r12
-// CHECK: <__ThumbV7PILongThunk_high_target2>:
-// CHECK-NEXT: ac: f64f 7c69 movw r12, #65385
+// CHECK: <__ThumbV7PILongThunk_high_target>:
+// CHECK-NEXT: ac: f64f 7c49 movw r12, #65353
// CHECK-NEXT: b0: f2c0 1cff movt r12, #511
// CHECK-NEXT: b4: 44fc add r12, pc
// CHECK-NEXT: b6: 4760 bx r12
// CHECK: <low_target2>:
-// CHECK-NEXT: b8: f7ff fff2 bl 0xa0 <__ThumbV7PILongThunk_high_target>
-// CHECK-NEXT: bc: f7ff fff6 bl 0xac <__ThumbV7PILongThunk_high_target2>
+// CHECK-NEXT: b8: f7ff fff8 bl 0xac <__ThumbV7PILongThunk_high_target>
+// CHECK-NEXT: bc: f7ff fff0 bl 0xa0 <__ThumbV7PILongThunk_high_target2>
.section .text_high, "ax", %progbits
diff --git a/lld/test/ELF/arm-thumb-condbranch-thunk.s b/lld/test/ELF/arm-thumb-condbranch-thunk.s
index 73daa139066d1..ef156a2852101 100644
--- a/lld/test/ELF/arm-thumb-condbranch-thunk.s
+++ b/lld/test/ELF/arm-thumb-condbranch-thunk.s
@@ -1,6 +1,6 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t.o
-// RUN: ld.lld -z nosort-thunks %t.o -o %t
+// RUN: ld.lld %t.o -o %t
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump -d %t --print-imm-hex --start-address=0x80000 --stop-address=0x80010 | FileCheck --check-prefix=CHECK1 %s
@@ -38,11 +38,11 @@ _start:
// CHECK1-EMPTY:
// CHECK1-NEXT: <tfunc00>:
// CHECK1-NEXT: 80000: 4770 bx lr
-// CHECK1-NEXT: 80002: f37f d7ff bl 0x1000004 <__Thumbv7ABSLongThunk_tfunc33>
-// CHECK1: <__Thumbv7ABSLongThunk_tfunc05>:
-// CHECK1-NEXT: 80008: f27f bffa b.w 0x300000 <tfunc05>
+// CHECK1-NEXT: 80002: f380 d001 bl 0x1000008 <__Thumbv7ABSLongThunk_tfunc33>
// CHECK1: <__Thumbv7ABSLongThunk_tfunc00>:
-// CHECK1-NEXT: 8000c: f7ff bff8 b.w 0x80000 <tfunc00>
+// CHECK1-NEXT: 80008: f7ff bffa b.w 0x80000 <tfunc00>
+// CHECK1: <__Thumbv7ABSLongThunk_tfunc05>:
+// CHECK1-NEXT: 8000c: f27f bff8 b.w 0x300000 <tfunc05>
FUNCTION 01
// tfunc02 is within range of tfunc02
beq.w tfunc02
@@ -52,14 +52,14 @@ _start:
// CHECK2: <tfunc01>:
// CHECK2-NEXT: 100000: 4770 bx lr
// CHECK2-NEXT: 100002: f03f a7fd beq.w 0x180000 <tfunc02>
-// CHECK2-NEXT: 100006: f47f a7ff bne.w 0x80008 <__Thumbv7ABSLongThunk_tfunc05>
+// CHECK2-NEXT: 100006: f440 8801 bne.w 0x8000c <__Thumbv7ABSLongThunk_tfunc05>
FUNCTION 02
// We can reach the Thunk Section created for bne.w tfunc05
bne.w tfunc05
beq.w tfunc00
// CHECK3: 180000: 4770 bx lr
-// CHECK3-NEXT: 180002: f440 8001 bne.w 0x80008 <__Thumbv7ABSLongThunk_tfunc05>
-// CHECK3-NEXT: 180006: f400 8001 beq.w 0x8000c <__Thumbv7ABSLongThunk_tfunc00>
+// CHECK3-NEXT: 180002: f440 8003 bne.w 0x8000c <__Thumbv7ABSLongThunk_tfunc05>
+// CHECK3-NEXT: 180006: f400 8003 beq.w 0x80010 <__Thumbv7ABSLongThunk_tfunc00>
FUNCTION 03
FUNCTION 04
FUNCTION 05
@@ -96,14 +96,14 @@ _start:
FUNCTION 29
FUNCTION 30
FUNCTION 31
-// CHECK6: <__Thumbv7ABSLongThunk_tfunc33>:
-// CHECK6-NEXT: 1000004: f0ff bffc b.w 0x1100000 <tfunc33>
-// CHECK6: <__Thumbv7ABSLongThunk_tfunc00>:
-// CHECK6-NEXT: 1000008: f47f 97fa b.w 0x80000 <tfunc00>
+// CHECK6: <__Thumbv7ABSLongThunk_tfunc00>:
+// CHECK6-NEXT: 1000004: f47f 97fc b.w 0x80000 <tfunc00>
+// CHECK6: <__Thumbv7ABSLongThunk_tfunc33>:
+// CHECK6-NEXT: 1000008: f0ff bffa b.w 0x1100000 <tfunc33>
FUNCTION 32
FUNCTION 33
// We should be able to reach an existing ThunkSection.
b.w tfunc00
// CHECK7: <tfunc33>:
// CHECK7-NEXT: 1100000: 4770 bx lr
-// CHECK7-NEXT: 1100002: f700 b801 b.w 0x1000008 <__Thumbv7ABSLongThunk_tfunc00>
+// CHECK7-NEXT: 1100002: f6ff bfff b.w 0x1000004 <__Thumbv7ABSLongThunk_tfunc00>
diff --git a/lld/test/ELF/arm-thumb-interwork-shared.s b/lld/test/ELF/arm-thumb-interwork-shared.s
index cef749df198f5..ca3ca22be0024 100644
--- a/lld/test/ELF/arm-thumb-interwork-shared.s
+++ b/lld/test/ELF/arm-thumb-interwork-shared.s
@@ -1,6 +1,6 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t
-// RUN: ld.lld -z nosort-thunks %t --shared -o %t.so
+// RUN: ld.lld %t --shared -o %t.so
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t.so | FileCheck %s
.syntax unified
.global sym1
@@ -19,17 +19,17 @@ sym1:
// CHECK: Disassembly of section .text:
// CHECK-EMPTY:
// CHECK-NEXT: <sym1>:
-// CHECK-NEXT: 101e0: b.w 0x101f0 <__ThumbV7PILongThunk_elsewhere>
-// CHECK-NEXT: b.w 0x101fc <__ThumbV7PILongThunk_weakref>
+// CHECK-NEXT: 101e0: b.w 0x101fc <__ThumbV7PILongThunk_elsewhere>
+// CHECK-NEXT: b.w 0x101f0 <__ThumbV7PILongThunk_weakref>
// CHECK-NEXT: blx 0x10230
// CHECK-NEXT: blx 0x10240
-// CHECK: <__ThumbV7PILongThunk_elsewhere>:
-// CHECK-NEXT: 101f0: movw r12, #52
+// CHECK: <__ThumbV7PILongThunk_weakref>:
+// CHECK-NEXT: 101f0: movw r12, #68
// CHECK-NEXT: movt r12, #0
// CHECK-NEXT: add r12, pc
// CHECK-NEXT: bx r12
-// CHECK: <__ThumbV7PILongThunk_weakref>:
-// CHECK-NEXT: 101fc: movw r12, #56
+// CHECK: <__ThumbV7PILongThunk_elsewhere>:
+// CHECK-NEXT: 101fc: movw r12, #40
// CHECK-NEXT: movt r12, #0
// CHECK-NEXT: add r12, pc
// CHECK-NEXT: bx r12
diff --git a/lld/test/ELF/arm-thumb-interwork-thunk.s b/lld/test/ELF/arm-thumb-interwork-thunk.s
index 5feb47cd4c79d..5b0edd2929f6d 100644
--- a/lld/test/ELF/arm-thumb-interwork-thunk.s
+++ b/lld/test/ELF/arm-thumb-interwork-thunk.s
@@ -10,13 +10,13 @@
// RUN: .R_ARM_JUMP24_callee_2 : { *(.R_ARM_JUMP24_callee_high) } \
// RUN: .R_ARM_THM_JUMP_callee_2 : { *(.R_ARM_THM_JUMP_callee_high) } \
// RUN: .got.plt 0x18b4 : { } } " > %t.script
-// RUN: ld.lld -z nosort-thunks --script %t.script %t -o %t2
+// RUN: ld.lld --script %t.script %t -o %t2
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t2 | FileCheck --check-prefix=CHECK-THUMB --check-prefix=CHECK-ABS-THUMB %s
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv7a-none-linux-gnueabi %t2 | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK-ARM-ABS-ARM %s
-// RUN: ld.lld -z nosort-thunks --script %t.script %t -pie -o %t3
+// RUN: ld.lld --script %t.script %t -pie -o %t3
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t3 | FileCheck --check-prefix=CHECK-THUMB --check-prefix=CHECK-PI-THUMB %s
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv7a-none-linux-gnueabi %t3 | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK-PI-ARM %s
-// RUN: ld.lld -z nosort-thunks --script %t.script %t --shared -o %t4
+// RUN: ld.lld --script %t.script %t --shared -o %t4
// RUN: llvm-readobj -S -r %t4 | FileCheck -check-prefix=CHECK-DSO-REL %s
// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn --triple=armv7a-none-linux-gnueabi %t4 | FileCheck -check-prefix=CHECK-ARM-PLT %s
/// Test ARM Thumb Interworking
@@ -84,8 +84,8 @@ arm_caller:
// CHECK-ARM-ABS-ARM-NEXT: 1304: blx 0x1000 <thumb_callee1>
// CHECK-ARM-ABS-ARM-NEXT: 1308: b 0x1328 <__ARMv7ABSLongThunk_thumb_callee1>
// CHECK-ARM-ABS-ARM-NEXT: 130c: b 0x1328 <__ARMv7ABSLongThunk_thumb_callee1>
-// CHECK-ARM-ABS-ARM-NEXT: 1310: b 0x1334 <__ARMv7ABSLongThunk_thumb_callee2>
-// CHECK-ARM-ABS-ARM-NEXT: 1314: b 0x1340 <__ARMv7ABSLongThunk_thumb_callee3>
+// CHECK-ARM-ABS-ARM-NEXT: 1310: b 0x1340 <__ARMv7ABSLongThunk_thumb_callee2>
+// CHECK-ARM-ABS-ARM-NEXT: 1314: b 0x1334 <__ARMv7ABSLongThunk_thumb_callee3>
// CHECK-ARM-ABS-ARM-NEXT: 1318: b 0x1100 <arm_callee1>
// CHECK-ARM-ABS-ARM-NEXT: 131c: beq 0x1600 <arm_callee2>
// CHECK-ARM-ABS-ARM-NEXT: 1320: bne 0x1604 <arm_callee3>
@@ -95,14 +95,14 @@ arm_caller:
// CHECK-ARM-ABS-ARM-NEXT: 1328: movw r12, #4097
// CHECK-ARM-ABS-ARM-NEXT: 132c: movt r12, #0
// CHECK-ARM-ABS-ARM-NEXT: 1330: bx r12
-// 0x1501 = thumb_callee2
-// CHECK-ARM-ABS-ARM: <__ARMv7ABSLongThunk_thumb_callee2>:
-// CHECK-ARM-ABS-ARM-NEXT: 1334: movw r12, #5377
-// CHECK-ARM-ABS-ARM-NEXT: 1338: movt r12, #0
-// CHECK-ARM-ABS-ARM-NEXT: 133c: bx r12
// 0x1503 = thumb_callee3
// CHECK-ARM-ABS-ARM: <__ARMv7ABSLongThunk_thumb_callee3>:
-// CHECK-ARM-ABS-ARM-NEXT: 1340: movw r12, #5379
+// CHECK-ARM-ABS-ARM-NEXT: 1334: movw r12, #5379
+// CHECK-ARM-ABS-ARM-NEXT: 1338: movt r12, #0
+// CHECK-ARM-ABS-ARM-NEXT: 133c: bx r12
+// 0x1501 = thumb_callee2
+// CHECK-ARM-ABS-ARM: <__ARMv7ABSLongThunk_thumb_callee2>:
+// CHECK-ARM-ABS-ARM-NEXT: 1340: movw r12, #5377
// CHECK-ARM-ABS-ARM-NEXT: 1344: movt r12, #0
// CHECK-ARM-ABS-ARM-NEXT: 1348: bx r12
@@ -113,8 +113,8 @@ arm_caller:
// CHECK-PI-ARM-NEXT: 1304: blx 0x1000 <thumb_callee1>
// CHECK-PI-ARM-NEXT: 1308: b 0x1328 <__ARMV7PILongThunk_thumb_callee1>
// CHECK-PI-ARM-NEXT: 130c: b 0x1328 <__ARMV7PILongThunk_thumb_callee1>
-// CHECK-PI-ARM-NEXT: 1310: b 0x1338 <__ARMV7PILongThunk_thumb_callee2>
-// CHECK-PI-ARM-NEXT: 1314: b 0x1348 <__ARMV7PILongThunk_thumb_callee3>
+// CHECK-PI-ARM-NEXT: 1310: b 0x1348 <__ARMV7PILongThunk_thumb_callee2>
+// CHECK-PI-ARM-NEXT: 1314: b 0x1338 <__ARMV7PILongThunk_thumb_callee3>
// CHECK-PI-ARM-NEXT: 1318: b 0x1100 <arm_callee1>
// CHECK-PI-ARM-NEXT: 131c: beq 0x1600 <arm_callee2>
// CHECK-PI-ARM-NEXT: 1320: bne 0x1604 <arm_callee3>
@@ -124,13 +124,13 @@ arm_caller:
// CHECK-PI-ARM-NEXT: 132c: movt r12, #65535
// CHECK-PI-ARM-NEXT: 1330: add r12, r12, pc
// CHECK-PI-ARM-NEXT: 1334: bx r12
-// CHECK-PI-ARM: <__ARMV7PILongThunk_thumb_callee2>:
-// CHECK-PI-ARM-NEXT: 1338: movw r12, #441
+// CHECK-PI-ARM: <__ARMV7PILongThunk_thumb_callee3>:
+// CHECK-PI-ARM-NEXT: 1338: movw r12, #443
// CHECK-PI-ARM-NEXT: 133c: movt r12, #0
// CHECK-PI-ARM-NEXT: 1340: add r12, r12, pc
// CHECK-PI-ARM-NEXT: 1344: bx r12
-// CHECK-PI-ARM: <__ARMV7PILongThunk_thumb_callee3>:
-// CHECK-PI-ARM-NEXT: 1348: movw r12, #427
+// CHECK-PI-ARM: <__ARMV7PILongThunk_thumb_callee2>:
+// CHECK-PI-ARM-NEXT: 1348: movw r12, #425
// CHECK-PI-ARM-NEXT: 134c: movt r12, #0
// CHECK-PI-ARM-NEXT: 1350: add r12, r12, pc
// CHECK-PI-ARM-NEXT: 1354: bx r12
@@ -178,21 +178,21 @@ thumb_caller:
// CHECK-ABS-THUMB-NEXT: 1400: blx 0x1100 <arm_callee1>
// CHECK-ABS-THUMB-NEXT: 1404: blx 0x1100 <arm_callee1>
// CHECK-ABS-THUMB-NEXT: 1408: b.w 0x1420 <__Thumbv7ABSLongThunk_arm_callee1>
-// CHECK-ABS-THUMB-NEXT: 140c: b.w 0x142a <__Thumbv7ABSLongThunk_arm_callee2>
-// CHECK-ABS-THUMB-NEXT: 1410: b.w 0x1434 <__Thumbv7ABSLongThunk_arm_callee3>
+// CHECK-ABS-THUMB-NEXT: 140c: b.w 0x1434 <__Thumbv7ABSLongThunk_arm_callee2>
+// CHECK-ABS-THUMB-NEXT: 1410: b.w 0x142a <__Thumbv7ABSLongThunk_arm_callee3>
// CHECK-ABS-THUMB-NEXT: 1414: beq.w 0x1420 <__Thumbv7ABSLongThunk_arm_callee1>
-// CHECK-ABS-THUMB-NEXT: 1418: beq.w 0x142a <__Thumbv7ABSLongThunk_arm_callee2>
-// CHECK-ABS-THUMB-NEXT: 141c: bne.w 0x1434 <__Thumbv7ABSLongThunk_arm_callee3>
+// CHECK-ABS-THUMB-NEXT: 1418: beq.w 0x1434 <__Thumbv7ABSLongThunk_arm_callee2>
+// CHECK-ABS-THUMB-NEXT: 141c: bne.w 0x142a <__Thumbv7ABSLongThunk_arm_callee3>
// CHECK-ABS-THUMB: <__Thumbv7ABSLongThunk_arm_callee1>:
// CHECK-ABS-THUMB-NEXT: 1420: movw r12, #4352
// CHECK-ABS-THUMB-NEXT: 1424: movt r12, #0
// CHECK-ABS-THUMB-NEXT: 1428: bx r12
-// CHECK-ABS-THUMB: <__Thumbv7ABSLongThunk_arm_callee2>:
-// CHECK-ABS-THUMB-NEXT: 142a: movw r12, #5632
+// CHECK-ABS-THUMB: <__Thumbv7ABSLongThunk_arm_callee3>:
+// CHECK-ABS-THUMB-NEXT: 142a: movw r12, #5636
// CHECK-ABS-THUMB-NEXT: 142e: movt r12, #0
// CHECK-ABS-THUMB-NEXT: 1432: bx r12
-// CHECK-ABS-THUMB: <__Thumbv7ABSLongThunk_arm_callee3>:
-// CHECK-ABS-THUMB-NEXT: 1434: movw r12, #5636
+// CHECK-ABS-THUMB: <__Thumbv7ABSLongThunk_arm_callee2>:
+// CHECK-ABS-THUMB-NEXT: 1434: movw r12, #5632
// CHECK-ABS-THUMB-NEXT: 1438: movt r12, #0
// CHECK-ABS-THUMB-NEXT: 143c: bx r12
@@ -202,23 +202,23 @@ thumb_caller:
// CHECK-PI-THUMB-NEXT: 1400: blx 0x1100 <arm_callee1>
// CHECK-PI-THUMB-NEXT: 1404: blx 0x1100 <arm_callee1>
// CHECK-PI-THUMB-NEXT: 1408: b.w 0x1420 <__ThumbV7PILongThunk_arm_callee1>
-// CHECK-PI-THUMB-NEXT: 140c: b.w 0x142c <__ThumbV7PILongThunk_arm_callee2>
-// CHECK-PI-THUMB-NEXT: 1410: b.w 0x1438 <__ThumbV7PILongThunk_arm_callee3>
+// CHECK-PI-THUMB-NEXT: 140c: b.w 0x1438 <__ThumbV7PILongThunk_arm_callee2>
+// CHECK-PI-THUMB-NEXT: 1410: b.w 0x142c <__ThumbV7PILongThunk_arm_callee3>
// CHECK-PI-THUMB-NEXT: 1414: beq.w 0x1420 <__ThumbV7PILongThunk_arm_callee1>
-// CHECK-PI-THUMB-NEXT: 1418: beq.w 0x142c <__ThumbV7PILongThunk_arm_callee2>
-// CHECK-PI-THUMB-NEXT: 141c: bne.w 0x1438 <__ThumbV7PILongThunk_arm_callee3>
+// CHECK-PI-THUMB-NEXT: 1418: beq.w 0x1438 <__ThumbV7PILongThunk_arm_callee2>
+// CHECK-PI-THUMB-NEXT: 141c: bne.w 0x142c <__ThumbV7PILongThunk_arm_callee3>
// CHECK-PI-THUMB: <__ThumbV7PILongThunk_arm_callee1>:
// CHECK-PI-THUMB-NEXT: 1420: movw r12, #64724
// CHECK-PI-THUMB-NEXT: 1424: movt r12, #65535
// CHECK-PI-THUMB-NEXT: 1428: add r12, pc
// CHECK-PI-THUMB-NEXT: 142a: bx r12
-// CHECK-PI-THUMB: <__ThumbV7PILongThunk_arm_callee2>:
-// CHECK-PI-THUMB-NEXT: 142c: movw r12, #456
+// CHECK-PI-THUMB: <__ThumbV7PILongThunk_arm_callee3>:
+// CHECK-PI-THUMB-NEXT: 142c: movw r12, #460
// CHECK-PI-THUMB-NEXT: 1430: movt r12, #0
// CHECK-PI-THUMB-NEXT: 1434: add r12, pc
// CHECK-PI-THUMB-NEXT: 1436: bx r12
-// CHECK-PI-THUMB: <__ThumbV7PILongThunk_arm_callee3>:
-// CHECK-PI-THUMB-NEXT: 1438: movw r12, #448
+// CHECK-PI-THUMB: <__ThumbV7PILongThunk_arm_callee2>:
+// CHECK-PI-THUMB-NEXT: 1438: movw r12, #444
// CHECK-PI-THUMB-NEXT: 143c: movt r12, #0
// CHECK-PI-THUMB-NEXT: 1440: add r12, pc
// CHECK-PI-THUMB-NEXT: 1442: bx r12
@@ -231,12 +231,12 @@ thumb_caller:
// CHECK-ARM-PLT-NEXT: <thumb_caller>:
// CHECK-ARM-PLT-NEXT: 1400: blx 0x1640
// CHECK-ARM-PLT-NEXT: 1404: blx 0x1640
-// CHECK-ARM-PLT-NEXT: 1408: b.w 0x1420 <__ThumbV7PILongThunk_arm_callee1>
+// CHECK-ARM-PLT-NEXT: 1408: b.w 0x1438 <__ThumbV7PILongThunk_arm_callee1>
// CHECK-ARM-PLT-NEXT: 140c: b.w 0x142c <__ThumbV7PILongThunk_arm_callee2>
-// CHECK-ARM-PLT-NEXT: 1410: b.w 0x1438 <__ThumbV7PILongThunk_arm_callee3>
-// CHECK-ARM-PLT-NEXT: 1414: beq.w 0x1420 <__ThumbV7PILongThunk_arm_callee1>
+// CHECK-ARM-PLT-NEXT: 1410: b.w 0x1420 <__ThumbV7PILongThunk_arm_callee3>
+// CHECK-ARM-PLT-NEXT: 1414: beq.w 0x1438 <__ThumbV7PILongThunk_arm_callee1>
// CHECK-ARM-PLT-NEXT: 1418: beq.w 0x142c <__ThumbV7PILongThunk_arm_callee2>
-// CHECK-ARM-PLT-NEXT: 141c: bne.w 0x1438 <__ThumbV7PILongThunk_arm_callee3>
+// CHECK-ARM-PLT-NEXT: 141c: bne.w 0x1420 <__ThumbV7PILongThunk_arm_callee3>
/// Target Sections for thunks at a higher address than the callers.
.section .R_ARM_JUMP24_callee_high, "ax", %progbits
diff --git a/lld/test/ELF/arm-thumb-mix-range-thunk-os.s b/lld/test/ELF/arm-thumb-mix-range-thunk-os.s
index 1d898b672ae42..bc21c3095227e 100644
--- a/lld/test/ELF/arm-thumb-mix-range-thunk-os.s
+++ b/lld/test/ELF/arm-thumb-mix-range-thunk-os.s
@@ -1,6 +1,6 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t
-// RUN: ld.lld -z nosort-thunks %t -o %t2
+// RUN: ld.lld %t -o %t2
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump --no-print-imm-hex -d %t2 --start-address=0x100000 --stop-address=0x10001c --triple=armv7a-linux-gnueabihf | FileCheck --check-prefix=CHECK1 %s
@@ -64,8 +64,8 @@ _start:
// CHECK1: <afunc00>:
// CHECK1-NEXT: 100000: e12fff1e bx lr
// CHECK1-NEXT: 100004: fa7bfffd blx 0x2000000 <tfunc31>
-// CHECK1-NEXT: 100008: ea3bfffd b 0x1000004 <__ARMv7ABSLongThunk_tfunc31>
-// CHECK1-NEXT: 10000c: 0a3bfffc beq 0x1000004 <__ARMv7ABSLongThunk_tfunc31>
+// CHECK1-NEXT: 100008: ea3c0000 b 0x1000010 <__ARMv7ABSLongThunk_tfunc31>
+// CHECK1-NEXT: 10000c: 0a3bffff beq 0x1000010 <__ARMv7ABSLongThunk_tfunc31>
// CHECK1-NEXT: 100010: eb7ffffa bl 0x2100000 <afunc32>
// CHECK1-NEXT: 100014: ea7ffff9 b 0x2100000 <afunc32>
// CHECK1-NEXT: 100018: 1a7ffff8 bne 0x2100000 <afunc32>
@@ -77,7 +77,7 @@ _start:
// CHECK2: <tfunc01>:
// CHECK2-NEXT: 200000: 4770 bx lr
// CHECK2-NEXT: 200002: f0ff c7fe blx 0xf00000 <afunc14>
-// CHECK2-NEXT: 200006: f200 9003 b.w 0x1000010 <__Thumbv7ABSLongThunk_afunc14>
+// CHECK2-NEXT: 200006: f1ff 97fd b.w 0x1000004 <__Thumbv7ABSLongThunk_afunc14>
ARMFUNCTION 02
THUMBFUNCTION 03
@@ -92,14 +92,14 @@ _start:
ARMFUNCTION 12
THUMBFUNCTION 13
ARMFUNCTION 14
-// CHECK3: <__ARMv7ABSLongThunk_tfunc31>:
-// CHECK3-NEXT: 1000004: e300c001 movw r12, #1
-// CHECK3-NEXT: 1000008: e340c200 movt r12, #512
-// CHECK3-NEXT: 100000c: e12fff1c bx r12
-// CHECK4: <__Thumbv7ABSLongThunk_afunc14>:
-// CHECK4-NEXT: 1000010: f240 0c00 movw r12, #0
-// CHECK4-NEXT: 1000014: f2c0 0cf0 movt r12, #240
-// CHECK4-NEXT: 1000018: 4760 bx r12
+// CHECK3: <__Thumbv7ABSLongThunk_afunc14>:
+// CHECK3-NEXT: 1000004: f240 0c00 movw r12, #0
+// CHECK3-NEXT: 1000008: f2c0 0cf0 movt r12, #240
+// CHECK3-NEXT: 100000c: 4760 bx r12
+// CHECK4: <__ARMv7ABSLongThunk_tfunc31>:
+// CHECK4-NEXT: 1000010: e300c001 movw r12, #1
+// CHECK4-NEXT: 1000014: e340c200 movt r12, #512
+// CHECK4-NEXT: 1000018: e12fff1c bx r12
THUMBFUNCTION 15
ARMFUNCTION 16
THUMBFUNCTION 17
diff --git a/lld/test/ELF/arm-thumb-plt-range-thunk-os.s b/lld/test/ELF/arm-thumb-plt-range-thunk-os.s
index 272e6213f2943..51d9a1067f28b 100644
--- a/lld/test/ELF/arm-thumb-plt-range-thunk-os.s
+++ b/lld/test/ELF/arm-thumb-plt-range-thunk-os.s
@@ -1,7 +1,7 @@
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t && cd %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi a.s -o a.o
-// RUN: ld.lld -z nosort-thunks a.o --shared --icf=all -o a.so --script=a.lds --print-map --print-icf-sections
+// RUN: ld.lld a.o --shared --icf=all -o a.so --script=a.lds --print-map --print-icf-sections
// RUN: llvm-objdump --no-show-raw-insn --no-print-imm-hex -d a.so | FileCheck %s
// RUN: rm a.so
@@ -44,18 +44,18 @@ preemptible:
bx lr
// CHECK-LABEL: <sym1>:
-// CHECK-NEXT: 2000000: bl 0x2000018 <__ThumbV7PILongThunk_elsewhere>
+// CHECK-NEXT: 2000000: bl 0x2000030 <__ThumbV7PILongThunk_elsewhere>
// CHECK-NEXT: bl 0x2000024 <__ThumbV7PILongThunk_preemptible>
// CHECK-NEXT: bx lr
// CHECK-LABEL: <preemptible>:
-// CHECK-NEXT: 200000a: bl 0x2000030 <__ThumbV7PILongThunk_far_preemptible>
+// CHECK-NEXT: 200000a: bl 0x2000018 <__ThumbV7PILongThunk_far_preemptible>
// CHECK-NEXT: bl 0x200003c <__ThumbV7PILongThunk_far_nonpreemptible>
// CHECK-NEXT: bl 0x200003c <__ThumbV7PILongThunk_far_nonpreemptible>
// CHECK-NEXT: bx lr
-// CHECK-LABEL: <__ThumbV7PILongThunk_elsewhere>:
-// CHECK-NEXT: 2000018: movw r12, #12
+// CHECK-LABEL: <__ThumbV7PILongThunk_far_preemptible>:
+// CHECK-NEXT: 2000018: movw r12, #44
// CHECK-NEXT: movt r12, #512
// CHECK-NEXT: add r12, pc
// CHECK-NEXT: bx r12
@@ -66,9 +66,9 @@ bx lr
// CHECK-NEXT: add r12, pc
// CHECK-NEXT: bx r12
-// CHECK-LABEL: <__ThumbV7PILongThunk_far_preemptible>:
-// CHECK-NEXT: 2000030: movw r12, #20
-// CHECK-NEXT: movt r12, #512
+// CHECK-LABEL: <__ThumbV7PILongThunk_elsewhere>:
+// CHECK-NEXT: 2000030: movw r12, #65524
+// CHECK-NEXT: movt r12, #511
// CHECK-NEXT: add r12, pc
// CHECK-NEXT: bx r12
diff --git a/lld/test/ELF/arm-thumb-range-thunk-os-no-ext.s b/lld/test/ELF/arm-thumb-range-thunk-os-no-ext.s
index ceef304380ebb..cc1b5cf118a96 100644
--- a/lld/test/ELF/arm-thumb-range-thunk-os-no-ext.s
+++ b/lld/test/ELF/arm-thumb-range-thunk-os-no-ext.s
@@ -1,6 +1,6 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv4t-none-linux-gnueabi %s -o %t.o
-// RUN: ld.lld -z nosort-thunks %t.o -o %t2
+// RUN: ld.lld %t.o -o %t2
/// The output file is large, most of it zeroes. We dissassemble only the
/// parts we need to speed up the test and avoid a large output file.
// RUN: llvm-objdump --no-show-raw-insn -d %t2 --start-address=0x100000 --stop-address=0x10000c | FileCheck --check-prefix=CHECK1 %s
@@ -46,7 +46,7 @@ _start:
// CHECK1-LABEL: <_start>:
// CHECK1-NEXT: 100000: bl 0x200000 <tfunc00> @ imm = #0xffffc
// CHECK1-NEXT: bl 0x500000 <tfunc03> @ imm = #0x3ffff8
-// CHECK1-NEXT: bl 0x400008 <__Thumbv4ABSLongThunk_tfunc04> @ imm = #0x2ffffc
+// CHECK1-NEXT: bl 0x400018 <__Thumbv4ABSLongThunk_tfunc04> @ imm = #0x30000c
FUNCTION 00
// CHECK2-LABEL: <tfunc00>:
@@ -61,22 +61,22 @@ FUNCTION 02
/// The thunks should not generate a v7-style short thunk.
// CHECK4-LABEL: <tfunc02>:
// CHECK4-NEXT: 400000: bx lr
-// CHECK4-NEXT: bl 0x400018 <__Thumbv4ABSLongThunk_tfunc07> @ imm = #0x12
+// CHECK4-NEXT: bl 0x400008 <__Thumbv4ABSLongThunk_tfunc07> @ imm = #0x2
// CHECK4-NEXT: bmi 0x3fffb2 <tfunc01+0xfffb2> @ imm = #-0x58
// CHECK4-EMPTY:
-// CHECK4-NEXT: <__Thumbv4ABSLongThunk_tfunc04>:
+// CHECK4-NEXT: <__Thumbv4ABSLongThunk_tfunc07>:
// CHECK4-NEXT: 400008: bx pc
-// CHECK4-NEXT: b 0x400008 <__Thumbv4ABSLongThunk_tfunc04> @ imm = #-0x6
-// CHECK4-NEXT: 40000c: ldr r12, [pc] @ 0x400014 <__Thumbv4ABSLongThunk_tfunc04+0xc>
+// CHECK4-NEXT: b 0x400008 <__Thumbv4ABSLongThunk_tfunc07> @ imm = #-0x6
+// CHECK4-NEXT: 40000c: ldr r12, [pc] @ 0x400014 <__Thumbv4ABSLongThunk_tfunc07+0xc>
// CHECK4-NEXT: bx r12
-// CHECK4-NEXT: 400014: 01 00 60 00 .word 0x00600001
+// CHECK4-NEXT: 400014: 01 00 90 00 .word 0x00900001
// CHECK4-EMPTY:
-// CHECK4-NEXT: <__Thumbv4ABSLongThunk_tfunc07>:
+// CHECK4-NEXT: <__Thumbv4ABSLongThunk_tfunc04>:
// CHECK4-NEXT: 400018: bx pc
-// CHECK4-NEXT: b 0x400018 <__Thumbv4ABSLongThunk_tfunc07> @ imm = #-0x6
-// CHECK4-NEXT: 40001c: ldr r12, [pc] @ 0x400024 <__Thumbv4ABSLongThunk_tfunc07+0xc>
+// CHECK4-NEXT: b 0x400018 <__Thumbv4ABSLongThunk_tfunc04> @ imm = #-0x6
+// CHECK4-NEXT: 40001c: ldr r12, [pc] @ 0x400024 <__Thumbv4ABSLongThunk_tfunc04+0xc>
// CHECK4-NEXT: bx r12
-// CHECK4-NEXT: 400024: 01 00 90 00 .word 0x00900001
+// CHECK4-NEXT: 400024: 01 00 60 00 .word 0x00600001
FUNCTION 03
FUNCTION 04
diff --git a/lld/test/ELF/arm-thumb-range-thunk-os.s b/lld/test/ELF/arm-thumb-range-thunk-os.s
index fcc495df0bd2a..ec9d63bf2e7c9 100644
--- a/lld/test/ELF/arm-thumb-range-thunk-os.s
+++ b/lld/test/ELF/arm-thumb-range-thunk-os.s
@@ -1,6 +1,6 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t
-// RUN: ld.lld -z nosort-thunks %t -o %t2
+// RUN: ld.lld %t -o %t2
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump --no-print-imm-hex -d %t2 --start-address=0x100000 --stop-address=0x10000c | FileCheck --check-prefix=CHECK1 %s
@@ -48,7 +48,7 @@ _start:
// CHECK1-NEXT: <_start>:
// CHECK1-NEXT: 100000: f0ff fffe bl 0x200000 <tfunc00>
// CHECK1-NEXT: 100004: f3ff d7fc bl 0x1100000 <tfunc15>
-// CHECK1-NEXT: 100008: f2ff d7fc bl 0x1000004 <__Thumbv7ABSLongThunk_tfunc16>
+// CHECK1-NEXT: 100008: f300 d00a bl 0x1000020 <__Thumbv7ABSLongThunk_tfunc16>
FUNCTION 00
// CHECK2: <tfunc00>:
@@ -62,7 +62,7 @@ _start:
b.w tfunc28
// CHECK4: <tfunc02>:
// CHECK4-NEXT: 400000: 4770 bx lr
-// CHECK4-NEXT: 400002: f000 9001 b.w 0x1000008 <__Thumbv7ABSLongThunk_tfunc28>
+// CHECK4-NEXT: 400002: f000 900b b.w 0x100001c <__Thumbv7ABSLongThunk_tfunc28>
FUNCTION 03
FUNCTION 04
FUNCTION 05
@@ -76,20 +76,20 @@ _start:
FUNCTION 13
FUNCTION 14
// Expect precreated ThunkSection here
-// CHECK5: <__Thumbv7ABSLongThunk_tfunc16>:
-// CHECK5-NEXT: 1000004: f1ff bffc b.w 0x1200000 <tfunc16>
-// CHECK5: <__Thumbv7ABSLongThunk_tfunc28>:
-// CHECK5-NEXT: 1000008: f1ff 97fa b.w 0x1e00000 <tfunc28>
-// CHECK5: <__Thumbv7ABSLongThunk_tfunc32>:
-// CHECK5-NEXT: 100000c: f240 0c01 movw r12, #1
-// CHECK5-NEXT: 1000010: f2c0 2c20 movt r12, #544
-// CHECK5-NEXT: 1000014: 4760 bx r12
-// CHECK5: <__Thumbv7ABSLongThunk_tfunc33>:
-// CHECK5-NEXT: 1000016: f240 0c01 movw r12, #1
-// CHECK5-NEXT: 100001a: f2c0 2c30 movt r12, #560
-// CHECK5-NEXT: 100001e: 4760 bx r12
// CHECK5: <__Thumbv7ABSLongThunk_tfunc02>:
-// CHECK5-NEXT: 1000020: f7ff 97ee b.w 0x400000 <tfunc02>
+// CHECK5-NEXT: 1000004: f7ff 97fc b.w 0x400000 <tfunc02>
+// CHECK5: <__Thumbv7ABSLongThunk_tfunc33>:
+// CHECK5-NEXT: 1000008: f240 0c01 movw r12, #1
+// CHECK5-NEXT: 100000c: f2c0 2c30 movt r12, #560
+// CHECK5-NEXT: 1000010: 4760 bx r12
+// CHECK5: <__Thumbv7ABSLongThunk_tfunc32>:
+// CHECK5-NEXT: 1000012: f240 0c01 movw r12, #1
+// CHECK5-NEXT: 1000016: f2c0 2c20 movt r12, #544
+// CHECK5-NEXT: 100001a: 4760 bx r12
+// CHECK5: <__Thumbv7ABSLongThunk_tfunc28>:
+// CHECK5-NEXT: 100001c: f1ff 97f0 b.w 0x1e00000 <tfunc28>
+// CHECK5: <__Thumbv7ABSLongThunk_tfunc16>:
+// CHECK5-NEXT: 1000020: f1ff bfee b.w 0x1200000 <tfunc16>
FUNCTION 15
// tfunc00 and tfunc01 are < 16Mb away, expect no range extension thunks
bl tfunc00
@@ -102,8 +102,8 @@ _start:
// CHECK6-NEXT: 1100000: 4770 bx lr
// CHECK6-NEXT: 1100002: f4ff d7fd bl 0x200000 <tfunc00>
// CHECK6-NEXT: 1100006: f5ff d7fb bl 0x300000 <tfunc01>
-// CHECK6-NEXT: 110000a: f6ff ffff bl 0x100000c <__Thumbv7ABSLongThunk_tfunc32>
-// CHECK6-NEXT: 110000e: f700 f802 bl 0x1000016 <__Thumbv7ABSLongThunk_tfunc33>
+// CHECK6-NEXT: 110000a: f700 f802 bl 0x1000012 <__Thumbv7ABSLongThunk_tfunc32>
+// CHECK6-NEXT: 110000e: f6ff fffb bl 0x1000008 <__Thumbv7ABSLongThunk_tfunc33>
FUNCTION 16
FUNCTION 17
FUNCTION 18
@@ -126,7 +126,7 @@ _start:
// section
// CHECK8: <tfunc28>:
// CHECK8-NEXT: 1e00000: 4770 bx lr
-// CHECK8-NEXT: 1e00002: f600 900d b.w 0x1000020 <__Thumbv7ABSLongThunk_tfunc02>
+// CHECK8-NEXT: 1e00002: f5ff 97ff b.w 0x1000004 <__Thumbv7ABSLongThunk_tfunc02>
b.w tfunc02
FUNCTION 29
diff --git a/lld/test/ELF/arm-thunk-arm-thumb-reuse.s b/lld/test/ELF/arm-thunk-arm-thumb-reuse.s
index edeb0df4a5dcc..fbd93c8ffe5b1 100644
--- a/lld/test/ELF/arm-thunk-arm-thumb-reuse.s
+++ b/lld/test/ELF/arm-thunk-arm-thumb-reuse.s
@@ -1,13 +1,13 @@
// REQUIRES: arm
// RUN: split-file %s %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %t/test.s -o %t.o
-// RUN: ld.lld -z nosort-thunks --script %t/script %t.o -o %t2
+// RUN: ld.lld --script %t/script %t.o -o %t2
// RUN: llvm-objdump --no-print-imm-hex --no-show-raw-insn -d %t2 | FileCheck %s
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7aeb-none-linux-gnueabi -mcpu=cortex-a8 %t/test.s -o %t.o
-// RUN: ld.lld -z nosort-thunks --script %t/script %t.o -o %t2
+// RUN: ld.lld --script %t/script %t.o -o %t2
// RUN: llvm-objdump --no-print-imm-hex --no-show-raw-insn -d %t2 | FileCheck %s
-// RUN: ld.lld -z nosort-thunks --be8 --script %t/script %t.o -o %t2
+// RUN: ld.lld --be8 --script %t/script %t.o -o %t2
// RUN: llvm-objdump --no-print-imm-hex --no-show-raw-insn -d %t2 | FileCheck %s
/// Test that we can reuse thunks between Arm and Thumb callers
@@ -35,16 +35,16 @@ _start:
bl far2
// CHECK: 00010000 <_start>:
-// CHECK-NEXT: 10000: bl 0x10010 <__ARMv7ABSLongThunk_far>
-// CHECK-NEXT: 10004: blx 0x10010 <__ARMv7ABSLongThunk_far>
-// CHECK-NEXT: 10008: bl 0x1001c <__Thumbv7ABSLongThunk_far2>
-// CHECK-NEXT: 1000c: blx 0x1001c <__Thumbv7ABSLongThunk_far2>
-// CHECK: 00010010 <__ARMv7ABSLongThunk_far>:
-// CHECK-NEXT: 10010: movw r12, #0
+// CHECK-NEXT: 10000: bl 0x1001c <__ARMv7ABSLongThunk_far>
+// CHECK-NEXT: 10004: blx 0x1001c <__ARMv7ABSLongThunk_far>
+// CHECK-NEXT: 10008: bl 0x10010 <__Thumbv7ABSLongThunk_far2>
+// CHECK-NEXT: 1000c: blx 0x10010 <__Thumbv7ABSLongThunk_far2>
+// CHECK: 00010010 <__Thumbv7ABSLongThunk_far2>:
+// CHECK-NEXT: 10010: movw r12, #4
// CHECK-NEXT: 10014: movt r12, #4096
// CHECK-NEXT: 10018: bx r12
-// CHECK: 0001001c <__Thumbv7ABSLongThunk_far2>:
-// CHECK-NEXT: 1001c: movw r12, #4
+// CHECK: 0001001c <__ARMv7ABSLongThunk_far>:
+// CHECK-NEXT: 1001c: movw r12, #0
// CHECK-NEXT: 10020: movt r12, #4096
// CHECK-NEXT: 10024: bx r12
diff --git a/lld/test/ELF/arm-thunk-linkerscript-dotexpr.s b/lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
index fa2d979dc88ca..e718537db5a8a 100644
--- a/lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
+++ b/lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
@@ -1,15 +1,15 @@
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t && cd %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi a.s -o a.o
-// RUN: ld.lld -z nosort-thunks --no-rosegment --script a.lds a.o -o exe
+// RUN: ld.lld --no-rosegment --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe --start-address=0x94 --stop-address=0xbc | FileCheck --check-prefix=CHECK1 %s
// RUN: llvm-objdump --no-print-imm-hex -d exe --start-address=0x20000bc --stop-address=0x20000de | FileCheck --check-prefix=CHECK2 %s
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7aeb-none-linux-gnueabi -mcpu=cortex-a8 a.s -o a.o
-// RUN: ld.lld -z nosort-thunks --no-rosegment --script a.lds a.o -o exe
+// RUN: ld.lld --no-rosegment --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe --start-address=0x94 --stop-address=0xbc | FileCheck --check-prefix=CHECK1 %s
// RUN: llvm-objdump --no-print-imm-hex -d exe --start-address=0x20000bc --stop-address=0x20000de | FileCheck --check-prefix=CHECK2 %s
-// RUN: ld.lld -z nosort-thunks --be8 --no-rosegment --script a.lds a.o -o exe
+// RUN: ld.lld --be8 --no-rosegment --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe --start-address=0x94 --stop-address=0xbc | FileCheck --check-prefix=CHECK1 %s
// RUN: llvm-objdump --no-print-imm-hex -d exe --start-address=0x20000bc --stop-address=0x20000de | FileCheck --check-prefix=CHECK2 %s
// RUN: rm a.o exe
@@ -53,19 +53,19 @@ low_target2:
// CHECK1-NEXT: <_start>:
// CHECK1-NEXT: 94: 4770 bx lr
// CHECK1: <low_target>:
-// CHECK1-NEXT: 96: f000 f803 bl 0xa0 <__Thumbv7ABSLongThunk_high_target>
-// CHECK1-NEXT: 9a: f000 f806 bl 0xaa <__Thumbv7ABSLongThunk_high_target2>
-// CHECK1: <__Thumbv7ABSLongThunk_high_target>:
-// CHECK1-NEXT: a0: f240 0cbd movw r12, #189
+// CHECK1-NEXT: 96: f000 f808 bl 0xaa <__Thumbv7ABSLongThunk_high_target>
+// CHECK1-NEXT: 9a: f000 f801 bl 0xa0 <__Thumbv7ABSLongThunk_high_target2>
+// CHECK1: <__Thumbv7ABSLongThunk_high_target2>:
+// CHECK1-NEXT: a0: f240 0cd9 movw r12, #217
// CHECK1-NEXT: a4: f2c0 2c00 movt r12, #512
// CHECK1-NEXT: a8: 4760 bx r12
-// CHECK1: <__Thumbv7ABSLongThunk_high_target2>:
-// CHECK1-NEXT: aa: f240 0cd9 movw r12, #217
+// CHECK1: <__Thumbv7ABSLongThunk_high_target>:
+// CHECK1-NEXT: aa: f240 0cbd movw r12, #189
// CHECK1-NEXT: ae: f2c0 2c00 movt r12, #512
// CHECK1-NEXT: b2: 4760 bx r12
// CHECK1: <low_target2>:
-// CHECK1-NEXT: b4: f7ff fff4 bl 0xa0 <__Thumbv7ABSLongThunk_high_target>
-// CHECK1-NEXT: b8: f7ff fff7 bl 0xaa <__Thumbv7ABSLongThunk_high_target2>
+// CHECK1-NEXT: b4: f7ff fff9 bl 0xaa <__Thumbv7ABSLongThunk_high_target>
+// CHECK1-NEXT: b8: f7ff fff2 bl 0xa0 <__Thumbv7ABSLongThunk_high_target2>
.section .text_high, "ax", %progbits
.thumb
diff --git a/lld/test/ELF/arm-thunk-linkerscript-orphan.s b/lld/test/ELF/arm-thunk-linkerscript-orphan.s
index 0adf4a0f749af..d5dd25695d3ab 100644
--- a/lld/test/ELF/arm-thunk-linkerscript-orphan.s
+++ b/lld/test/ELF/arm-thunk-linkerscript-orphan.s
@@ -1,7 +1,7 @@
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t && cd %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi a.s -o a.o
-// RUN: ld.lld -z nosort-thunks --script a.lds a.o -o exe
+// RUN: ld.lld --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe | FileCheck %s
//--- a.lds
@@ -29,14 +29,14 @@ low_target:
// CHECK-NEXT: <_start>:
// CHECK-NEXT: 100000: 4770 bx lr
// CHECK: <low_target>:
-// CHECK-NEXT: 100002: f000 f803 bl 0x10000c <__Thumbv7ABSLongThunk_high_target>
-// CHECK-NEXT: 100006: f000 f806 bl 0x100016 <__Thumbv7ABSLongThunk_orphan_target>
-// CHECK: <__Thumbv7ABSLongThunk_high_target>:
-// CHECK-NEXT: 10000c: f240 0c01 movw r12, #1
+// CHECK-NEXT: 100002: f000 f808 bl 0x100016 <__Thumbv7ABSLongThunk_high_target>
+// CHECK-NEXT: 100006: f000 f801 bl 0x10000c <__Thumbv7ABSLongThunk_orphan_target>
+// CHECK: <__Thumbv7ABSLongThunk_orphan_target>:
+// CHECK-NEXT: 10000c: f240 0c15 movw r12, #21
// CHECK-NEXT: 100010: f2c0 2c00 movt r12, #512
// CHECK-NEXT: 100014: 4760 bx r12
-// CHECK: <__Thumbv7ABSLongThunk_orphan_target>:
-// CHECK-NEXT: 100016: f240 0c15 movw r12, #21
+// CHECK: <__Thumbv7ABSLongThunk_high_target>:
+// CHECK-NEXT: 100016: f240 0c01 movw r12, #1
// CHECK-NEXT: 10001a: f2c0 2c00 movt r12, #512
// CHECK-NEXT: 10001e: 4760 bx r12
.section .text_high, "ax", %progbits
diff --git a/lld/test/ELF/arm-thunk-linkerscript.s b/lld/test/ELF/arm-thunk-linkerscript.s
index e0869295e0b1a..e977bc3b982aa 100644
--- a/lld/test/ELF/arm-thunk-linkerscript.s
+++ b/lld/test/ELF/arm-thunk-linkerscript.s
@@ -1,12 +1,12 @@
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t && cd %t
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi a.s -o a.o
-// RUN: ld.lld -z nosort-thunks --no-rosegment --script a.lds a.o -o exe
+// RUN: ld.lld --no-rosegment --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe | FileCheck %s
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7aeb-none-linux-gnueabi -mcpu=cortex-a8 a.s -o a.o
-// RUN: ld.lld -z nosort-thunks --no-rosegment --script a.lds a.o -o exe
+// RUN: ld.lld --no-rosegment --script a.lds a.o -o exe
// RUN: llvm-objdump --no-print-imm-hex -d exe | FileCheck %s
-// RUN: ld.lld -z nosort-thunks --be8 --no-rosegment --script a.lds a.o -o %t2
+// RUN: ld.lld --be8 --no-rosegment --script a.lds a.o -o %t2
// RUN: llvm-objdump --no-print-imm-hex -d exe | FileCheck %s
//--- a.lds
@@ -43,19 +43,19 @@ low_target2:
// CHECK-NEXT: <_start>:
// CHECK-NEXT: 94: 4770 bx lr
// CHECK: <low_target>:
-// CHECK-NEXT: 96: f000 f803 bl 0xa0 <__Thumbv7ABSLongThunk_high_target>
-// CHECK-NEXT: 9a: f000 f806 bl 0xaa <__Thumbv7ABSLongThunk_high_target2>
-// CHECK: <__Thumbv7ABSLongThunk_high_target>:
-// CHECK-NEXT: a0: f240 0c01 movw r12, #1
+// CHECK-NEXT: 96: f000 f808 bl 0xaa <__Thumbv7ABSLongThunk_high_target>
+// CHECK-NEXT: 9a: f000 f801 bl 0xa0 <__Thumbv7ABSLongThunk_high_target2>
+// CHECK: <__Thumbv7ABSLongThunk_high_target2>:
+// CHECK-NEXT: a0: f240 0c1d movw r12, #29
// CHECK-NEXT: a4: f2c0 2c00 movt r12, #512
// CHECK-NEXT: a8: 4760 bx r12
-// CHECK: <__Thumbv7ABSLongThunk_high_target2>:
-// CHECK-NEXT: aa: f240 0c1d movw r12, #29
+// CHECK: <__Thumbv7ABSLongThunk_high_target>:
+// CHECK-NEXT: aa: f240 0c01 movw r12, #1
// CHECK-NEXT: ae: f2c0 2c00 movt r12, #512
// CHECK-NEXT: b2: 4760 bx r12
// CHECK: <low_target2>:
-// CHECK-NEXT: b4: f7ff fff4 bl 0xa0 <__Thumbv7ABSLongThunk_high_target>
-// CHECK-NEXT: b8: f7ff fff7 bl 0xaa <__Thumbv7ABSLongThunk_high_target2>
+// CHECK-NEXT: b4: f7ff fff9 bl 0xaa <__Thumbv7ABSLongThunk_high_target>
+// CHECK-NEXT: b8: f7ff fff2 bl 0xa0 <__Thumbv7ABSLongThunk_high_target2>
.section .text_high, "ax", %progbits
.thumb
diff --git a/lld/test/ELF/arm-thunk-re-add.s b/lld/test/ELF/arm-thunk-re-add.s
index 34aa273e34927..81fb80d457a07 100644
--- a/lld/test/ELF/arm-thunk-re-add.s
+++ b/lld/test/ELF/arm-thunk-re-add.s
@@ -1,6 +1,6 @@
// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t
-// RUN: ld.lld -z nosort-thunks %t --shared -o %t.so
+// RUN: ld.lld %t --shared -o %t.so
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump --no-print-imm-hex -d %t.so --start-address=0x1000004 --stop-address=0x100001c | FileCheck --check-prefix=CHECK1 %s
@@ -65,13 +65,13 @@ tfunc\suff\():
FUNCTION 30
FUNCTION 31
/// Precreated Thunk Pool goes here
-// CHECK1: <__ThumbV7PILongThunk_imported>:
-// CHECK1-NEXT: 1000004: f240 0c30 movw r12, #48
+// CHECK1: <__ThumbV7PILongThunk_imported2>:
+// CHECK1-NEXT: 1000004: f240 0c40 movw r12, #64
// CHECK1-NEXT: 1000008: f2c0 0c10 movt r12, #16
// CHECK1-NEXT: 100000c: 44fc add r12, pc
// CHECK1-NEXT: 100000e: 4760 bx r12
-// CHECK1: <__ThumbV7PILongThunk_imported2>:
-// CHECK1-NEXT: 1000010: f240 0c34 movw r12, #52
+// CHECK1: <__ThumbV7PILongThunk_imported>:
+// CHECK1-NEXT: 1000010: f240 0c24 movw r12, #36
// CHECK1-NEXT: 1000014: f2c0 0c10 movt r12, #16
// CHECK1-NEXT: 1000018: 44fc add r12, pc
// CHECK1-NEXT: 100001a: 4760 bx r12
@@ -86,17 +86,17 @@ tfunc\suff\():
.type callers, %function
callers:
b.w imported
- beq.w imported
+ beq.w imported2
b.w imported2
-// CHECK2: <__ThumbV7PILongThunk_imported>:
-// CHECK2-NEXT: 1100008: f240 0c2c movw r12, #44
+// CHECK2: <__ThumbV7PILongThunk_imported2>:
+// CHECK2-NEXT: 1100008: f240 0c3c movw r12, #60
// CHECK2-NEXT: 110000c: f2c0 0c00 movt r12, #0
// CHECK2-NEXT: 1100010: 44fc add r12, pc
// CHECK2-NEXT: 1100012: 4760 bx r12
// CHECK2: <callers>:
-// CHECK2-NEXT: 1100014: f6ff bff6 b.w 0x1000004 <__ThumbV7PILongThunk_imported>
-// CHECK2-NEXT: 1100018: f43f aff6 beq.w 0x1100008 <__ThumbV7PILongThunk_imported>
-// CHECK2-NEXT: 110001c: f6ff bff8 b.w 0x1000010 <__ThumbV7PILongThunk_imported2>
+// CHECK2-NEXT: 1100014: f6ff bffc b.w 0x1000010 <__ThumbV7PILongThunk_imported>
+// CHECK2-NEXT: 1100018: f43f aff6 beq.w 0x1100008 <__ThumbV7PILongThunk_imported2>
+// CHECK2-NEXT: 110001c: f6ff bff2 b.w 0x1000004 <__ThumbV7PILongThunk_imported2>
// CHECK3: Disassembly of section .plt:
// CHECK3-EMPTY:
@@ -123,14 +123,14 @@ callers:
// CHECK3-NEXT: 110005c: d4 d4 d4 d4 .word 0xd4d4d4d4
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7aeb-none-linux-gnueabi -mcpu=cortex-a8 %s -o %t
-// RUN: ld.lld -z nosort-thunks %t --shared -o %t.so
+// RUN: ld.lld %t --shared -o %t.so
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump --no-print-imm-hex -d %t.so --start-address=0x1000004 --stop-address=0x100001c | FileCheck --check-prefix=CHECK1 %s
// RUN: llvm-objdump --no-print-imm-hex -d %t.so --start-address=0x1100008 --stop-address=0x1100022 | FileCheck --check-prefix=CHECK2 %s
// RUN: llvm-objdump --no-print-imm-hex -d %t.so --start-address=0x1100020 --stop-address=0x1100064 --triple=armv7aeb-linux-gnueabihf | FileCheck --check-prefix=CHECK3 %s
-// RUN: ld.lld -z nosort-thunks --be8 %t --shared -o %t.so
+// RUN: ld.lld --be8 %t --shared -o %t.so
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump --no-print-imm-hex -d %t.so --start-address=0x1000004 --stop-address=0x100001c | FileCheck --check-prefix=CHECK1 %s
More information about the llvm-commits
mailing list