summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Thunks.cpp57
-rw-r--r--lld/test/ELF/arm-thumb-interwork-shared.s8
-rw-r--r--lld/test/ELF/arm-thumb-interwork-thunk.s64
3 files changed, 62 insertions, 67 deletions
diff --git a/lld/ELF/Thunks.cpp b/lld/ELF/Thunks.cpp
index f03cadf31c6..307ca5df228 100644
--- a/lld/ELF/Thunks.cpp
+++ b/lld/ELF/Thunks.cpp
@@ -50,27 +50,27 @@ namespace {
// Specific ARM Thunk implementations. The naming convention is:
// Source State, TargetState, Target Requirement, ABS or PI, Range
-template <class ELFT> class ARMToThumbV7ABSLongThunk final : public Thunk {
+template <class ELFT> class ARMV7ABSLongThunk final : public Thunk {
public:
- ARMToThumbV7ABSLongThunk(const SymbolBody &Dest) : Thunk(Dest) {}
+ ARMV7ABSLongThunk(const SymbolBody &Dest) : Thunk(Dest) {}
uint32_t size() const override { return 12; }
void writeTo(uint8_t *Buf, ThunkSection &IS) const override;
void addSymbols(ThunkSection &IS) override;
};
-template <class ELFT> class ARMToThumbV7PILongThunk final : public Thunk {
+template <class ELFT> class ARMV7PILongThunk final : public Thunk {
public:
- ARMToThumbV7PILongThunk(const SymbolBody &Dest) : Thunk(Dest) {}
+ ARMV7PILongThunk(const SymbolBody &Dest) : Thunk(Dest) {}
uint32_t size() const override { return 16; }
void writeTo(uint8_t *Buf, ThunkSection &IS) const override;
void addSymbols(ThunkSection &IS) override;
};
-template <class ELFT> class ThumbToARMV7ABSLongThunk final : public Thunk {
+template <class ELFT> class ThumbV7ABSLongThunk final : public Thunk {
public:
- ThumbToARMV7ABSLongThunk(const SymbolBody &Dest) : Thunk(Dest) {
+ ThumbV7ABSLongThunk(const SymbolBody &Dest) : Thunk(Dest) {
this->alignment = 2;
}
@@ -79,9 +79,9 @@ public:
void addSymbols(ThunkSection &IS) override;
};
-template <class ELFT> class ThumbToARMV7PILongThunk final : public Thunk {
+template <class ELFT> class ThumbV7PILongThunk final : public Thunk {
public:
- ThumbToARMV7PILongThunk(const SymbolBody &Dest) : Thunk(Dest) {
+ ThumbV7PILongThunk(const SymbolBody &Dest) : Thunk(Dest) {
this->alignment = 2;
}
@@ -110,8 +110,7 @@ static uint64_t getARMThunkDestVA(const SymbolBody &S) {
}
template <class ELFT>
-void ARMToThumbV7ABSLongThunk<ELFT>::writeTo(uint8_t *Buf,
- ThunkSection &IS) const {
+void ARMV7ABSLongThunk<ELFT>::writeTo(uint8_t *Buf, ThunkSection &IS) const {
const uint8_t Data[] = {
0x00, 0xc0, 0x00, 0xe3, // movw ip,:lower16:S
0x00, 0xc0, 0x40, 0xe3, // movt ip,:upper16:S
@@ -124,16 +123,15 @@ void ARMToThumbV7ABSLongThunk<ELFT>::writeTo(uint8_t *Buf,
}
template <class ELFT>
-void ARMToThumbV7ABSLongThunk<ELFT>::addSymbols(ThunkSection &IS) {
+void ARMV7ABSLongThunk<ELFT>::addSymbols(ThunkSection &IS) {
this->ThunkSym = addSyntheticLocal<ELFT>(
- Saver.save("__ARMToThumbv7ABSLongThunk_" + this->Destination.getName()),
+ Saver.save("__ARMv7ABSLongThunk_" + this->Destination.getName()),
STT_FUNC, this->Offset, size(), &IS);
addSyntheticLocal<ELFT>("$a", STT_NOTYPE, this->Offset, 0, &IS);
}
template <class ELFT>
-void ThumbToARMV7ABSLongThunk<ELFT>::writeTo(uint8_t *Buf,
- ThunkSection &IS) const {
+void ThumbV7ABSLongThunk<ELFT>::writeTo(uint8_t *Buf, ThunkSection &IS) const {
const uint8_t Data[] = {
0x40, 0xf2, 0x00, 0x0c, // movw ip, :lower16:S
0xc0, 0xf2, 0x00, 0x0c, // movt ip, :upper16:S
@@ -146,16 +144,15 @@ void ThumbToARMV7ABSLongThunk<ELFT>::writeTo(uint8_t *Buf,
}
template <class ELFT>
-void ThumbToARMV7ABSLongThunk<ELFT>::addSymbols(ThunkSection &IS) {
+void ThumbV7ABSLongThunk<ELFT>::addSymbols(ThunkSection &IS) {
this->ThunkSym = addSyntheticLocal<ELFT>(
- Saver.save("__ThumbToARMv7ABSLongThunk_" + this->Destination.getName()),
+ Saver.save("__Thumbv7ABSLongThunk_" + this->Destination.getName()),
STT_FUNC, this->Offset, size(), &IS);
addSyntheticLocal<ELFT>("$t", STT_NOTYPE, this->Offset, 0, &IS);
}
template <class ELFT>
-void ARMToThumbV7PILongThunk<ELFT>::writeTo(uint8_t *Buf,
- ThunkSection &IS) const {
+void ARMV7PILongThunk<ELFT>::writeTo(uint8_t *Buf, ThunkSection &IS) const {
const uint8_t Data[] = {
0xf0, 0xcf, 0x0f, 0xe3, // P: movw ip,:lower16:S - (P + (L1-P) +8)
0x00, 0xc0, 0x40, 0xe3, // movt ip,:upper16:S - (P + (L1-P+4) +8)
@@ -170,16 +167,15 @@ void ARMToThumbV7PILongThunk<ELFT>::writeTo(uint8_t *Buf,
}
template <class ELFT>
-void ARMToThumbV7PILongThunk<ELFT>::addSymbols(ThunkSection &IS) {
+void ARMV7PILongThunk<ELFT>::addSymbols(ThunkSection &IS) {
this->ThunkSym = addSyntheticLocal<ELFT>(
- Saver.save("__ARMToThumbV7PILongThunk_" + this->Destination.getName()),
- STT_FUNC, this->Offset, size(), &IS);
+ Saver.save("__ARMV7PILongThunk_" + this->Destination.getName()), STT_FUNC,
+ this->Offset, size(), &IS);
addSyntheticLocal<ELFT>("$a", STT_NOTYPE, this->Offset, 0, &IS);
}
template <class ELFT>
-void ThumbToARMV7PILongThunk<ELFT>::writeTo(uint8_t *Buf,
- ThunkSection &IS) const {
+void ThumbV7PILongThunk<ELFT>::writeTo(uint8_t *Buf, ThunkSection &IS) const {
const uint8_t Data[] = {
0x4f, 0xf6, 0xf4, 0x7c, // P: movw ip,:lower16:S - (P + (L1-P) + 4)
0xc0, 0xf2, 0x00, 0x0c, // movt ip,:upper16:S - (P + (L1-P+4) + 4)
@@ -194,9 +190,9 @@ void ThumbToARMV7PILongThunk<ELFT>::writeTo(uint8_t *Buf,
}
template <class ELFT>
-void ThumbToARMV7PILongThunk<ELFT>::addSymbols(ThunkSection &IS) {
+void ThumbV7PILongThunk<ELFT>::addSymbols(ThunkSection &IS) {
this->ThunkSym = addSyntheticLocal<ELFT>(
- Saver.save("__ThumbToARMV7PILongThunk_" + this->Destination.getName()),
+ Saver.save("__ThumbV7PILongThunk_" + this->Destination.getName()),
STT_FUNC, this->Offset, size(), &IS);
addSyntheticLocal<ELFT>("$t", STT_NOTYPE, this->Offset, 0, &IS);
}
@@ -232,8 +228,7 @@ Thunk::Thunk(const SymbolBody &D) : Destination(D), Offset(0) {}
Thunk::~Thunk() = default;
// Creates a thunk for Thumb-ARM interworking.
-template <class ELFT>
-static Thunk *addThunkArm(uint32_t Reloc, SymbolBody &S) {
+template <class ELFT> static Thunk *addThunkArm(uint32_t Reloc, SymbolBody &S) {
// ARM relocations need ARM to Thumb interworking Thunks.
// Thumb relocations need Thumb to ARM relocations.
// Use position independent Thunks if we require position independent code.
@@ -242,13 +237,13 @@ static Thunk *addThunkArm(uint32_t Reloc, SymbolBody &S) {
case R_ARM_PLT32:
case R_ARM_JUMP24:
if (Config->Pic)
- return make<ARMToThumbV7PILongThunk<ELFT>>(S);
- return make<ARMToThumbV7ABSLongThunk<ELFT>>(S);
+ return make<ARMV7PILongThunk<ELFT>>(S);
+ return make<ARMV7ABSLongThunk<ELFT>>(S);
case R_ARM_THM_JUMP19:
case R_ARM_THM_JUMP24:
if (Config->Pic)
- return make<ThumbToARMV7PILongThunk<ELFT>>(S);
- return make<ThumbToARMV7ABSLongThunk<ELFT>>(S);
+ return make<ThumbV7PILongThunk<ELFT>>(S);
+ return make<ThumbV7ABSLongThunk<ELFT>>(S);
}
fatal("unrecognized relocation type");
}
diff --git a/lld/test/ELF/arm-thumb-interwork-shared.s b/lld/test/ELF/arm-thumb-interwork-shared.s
index 987cb4c6576..8362ae26aed 100644
--- a/lld/test/ELF/arm-thumb-interwork-shared.s
+++ b/lld/test/ELF/arm-thumb-interwork-shared.s
@@ -16,15 +16,15 @@ sym1:
// CHECK: Disassembly of section .text:
// CHECK-NEXT: sym1:
-// CHECK-NEXT: 1000: 00 f0 02 b8 b.w #4 <__ThumbToARMV7PILongThunk_elsewhere>
-// CHECK-NEXT: 1004: 00 f0 06 b8 b.w #12 <__ThumbToARMV7PILongThunk_weakref>
-// CHECK: __ThumbToARMV7PILongThunk_elsewhere:
+// CHECK-NEXT: 1000: 00 f0 02 b8 b.w #4 <__ThumbV7PILongThunk_elsewhere>
+// CHECK-NEXT: 1004: 00 f0 06 b8 b.w #12 <__ThumbV7PILongThunk_weakref>
+// CHECK: __ThumbV7PILongThunk_elsewhere:
// CHECK-NEXT: 1008: 40 f2 20 0c movw r12, #32
// CHECK-NEXT: 100c: c0 f2 00 0c movt r12, #0
// CHECK-NEXT: 1010: fc 44 add r12, pc
// CHECK-NEXT: 1012: 60 47 bx r12
-// CHECK: __ThumbToARMV7PILongThunk_weakref:
+// CHECK: __ThumbV7PILongThunk_weakref:
// CHECK-NEXT: 1014: 40 f2 24 0c movw r12, #36
// CHECK-NEXT: 1018: c0 f2 00 0c movt r12, #0
// CHECK-NEXT: 101c: fc 44 add r12, pc
diff --git a/lld/test/ELF/arm-thumb-interwork-thunk.s b/lld/test/ELF/arm-thumb-interwork-thunk.s
index 5f86aca1485..04755c4603c 100644
--- a/lld/test/ELF/arm-thumb-interwork-thunk.s
+++ b/lld/test/ELF/arm-thumb-interwork-thunk.s
@@ -82,26 +82,26 @@ arm_caller:
// CHECK-ARM-ABS-ARM-NEXT: arm_caller:
// CHECK-ARM-ABS-ARM-NEXT: 1300: 3e ff ff fa blx #-776 <thumb_callee1>
// CHECK-ARM-ABS-ARM-NEXT: 1304: 3d ff ff fa blx #-780 <thumb_callee1>
-// CHECK-ARM-ABS-ARM-NEXT: 1308: 06 00 00 ea b #24 <__ARMToThumbv7ABSLongThunk_thumb_callee1>
-// CHECK-ARM-ABS-ARM-NEXT: 130c: 05 00 00 ea b #20 <__ARMToThumbv7ABSLongThunk_thumb_callee1>
-// CHECK-ARM-ABS-ARM-NEXT: 1310: 07 00 00 ea b #28 <__ARMToThumbv7ABSLongThunk_thumb_callee2>
-// CHECK-ARM-ABS-ARM-NEXT: 1314: 09 00 00 ea b #36 <__ARMToThumbv7ABSLongThunk_thumb_callee3>
+// CHECK-ARM-ABS-ARM-NEXT: 1308: 06 00 00 ea b #24 <__ARMv7ABSLongThunk_thumb_callee1>
+// CHECK-ARM-ABS-ARM-NEXT: 130c: 05 00 00 ea b #20 <__ARMv7ABSLongThunk_thumb_callee1>
+// CHECK-ARM-ABS-ARM-NEXT: 1310: 07 00 00 ea b #28 <__ARMv7ABSLongThunk_thumb_callee2>
+// CHECK-ARM-ABS-ARM-NEXT: 1314: 09 00 00 ea b #36 <__ARMv7ABSLongThunk_thumb_callee3>
// CHECK-ARM-ABS-ARM-NEXT: 1318: 78 ff ff ea b #-544 <arm_callee1>
// CHECK-ARM-ABS-ARM-NEXT: 131c: b7 00 00 0a beq #732 <arm_callee2>
// CHECK-ARM-ABS-ARM-NEXT: 1320: b7 00 00 1a bne #732 <arm_callee3>
// CHECK-ARM-ABS-ARM-NEXT: 1324: 1e ff 2f e1 bx lr
-// CHECK-ARM-ABS-ARM: __ARMToThumbv7ABSLongThunk_thumb_callee1:
+// CHECK-ARM-ABS-ARM: __ARMv7ABSLongThunk_thumb_callee1:
// 0x1001 = thumb_callee1
// CHECK-ARM-ABS-ARM-NEXT: 1328: 01 c0 01 e3 movw r12, #4097
// CHECK-ARM-ABS-ARM-NEXT: 132c: 00 c0 40 e3 movt r12, #0
// CHECK-ARM-ABS-ARM-NEXT: 1330: 1c ff 2f e1 bx r12
// 0x1501 = thumb_callee2
-// CHECK-ARM-ABS-ARM: __ARMToThumbv7ABSLongThunk_thumb_callee2:
+// CHECK-ARM-ABS-ARM: __ARMv7ABSLongThunk_thumb_callee2:
// CHECK-ARM-ABS-ARM-NEXT: 1334: 01 c5 01 e3 movw r12, #5377
// CHECK-ARM-ABS-ARM-NEXT: 1338: 00 c0 40 e3 movt r12, #0
// CHECK-ARM-ABS-ARM-NEXT: 133c: 1c ff 2f e1 bx r12
// 0x1503 = thumb_callee3
-// CHECK-ARM-ABS-ARM: __ARMToThumbv7ABSLongThunk_thumb_callee3:
+// CHECK-ARM-ABS-ARM: __ARMv7ABSLongThunk_thumb_callee3:
// CHECK-ARM-ABS-ARM-NEXT: 1340: 03 c5 01 e3 movw r12, #5379
// CHECK-ARM-ABS-ARM-NEXT: 1344: 00 c0 40 e3 movt r12, #0
// CHECK-ARM-ABS-ARM-NEXT: 1348: 1c ff 2f e1 bx r12
@@ -110,27 +110,27 @@ arm_caller:
// CHECK-PI-ARM-NEXT: arm_caller:
// CHECK-PI-ARM-NEXT: 1300: 3e ff ff fa blx #-776 <thumb_callee1>
// CHECK-PI-ARM-NEXT: 1304: 3d ff ff fa blx #-780 <thumb_callee1>
-// CHECK-PI-ARM-NEXT: 1308: 06 00 00 ea b #24 <__ARMToThumbV7PILongThunk_thumb_callee1>
-// CHECK-PI-ARM-NEXT: 130c: 05 00 00 ea b #20 <__ARMToThumbV7PILongThunk_thumb_callee1>
-// CHECK-PI-ARM-NEXT: 1310: 08 00 00 ea b #32 <__ARMToThumbV7PILongThunk_thumb_callee2>
-// CHECK-PI-ARM-NEXT: 1314: 0b 00 00 ea b #44 <__ARMToThumbV7PILongThunk_thumb_callee3>
+// CHECK-PI-ARM-NEXT: 1308: 06 00 00 ea b #24 <__ARMV7PILongThunk_thumb_callee1>
+// CHECK-PI-ARM-NEXT: 130c: 05 00 00 ea b #20 <__ARMV7PILongThunk_thumb_callee1>
+// CHECK-PI-ARM-NEXT: 1310: 08 00 00 ea b #32 <__ARMV7PILongThunk_thumb_callee2>
+// CHECK-PI-ARM-NEXT: 1314: 0b 00 00 ea b #44 <__ARMV7PILongThunk_thumb_callee3>
// CHECK-PI-ARM-NEXT: 1318: 78 ff ff ea b #-544 <arm_callee1>
// CHECK-PI-ARM-NEXT: 131c: b7 00 00 0a beq #732 <arm_callee2>
// CHECK-PI-ARM-NEXT: 1320: b7 00 00 1a bne #732 <arm_callee3>
// CHECK-PI-ARM-NEXT: 1324: 1e ff 2f e1 bx lr
-// CHECK-PI-ARM: __ARMToThumbV7PILongThunk_thumb_callee1:
+// CHECK-PI-ARM: __ARMV7PILongThunk_thumb_callee1:
// 0x1330 + 8 - 0x337 = 0x1001 = thumb_callee1
// CHECK-PI-ARM-NEXT: 1328: c9 cc 0f e3 movw r12, #64713
// CHECK-PI-ARM-NEXT: 132c: ff cf 4f e3 movt r12, #65535
// CHECK-PI-ARM-NEXT: 1330: 0f c0 8c e0 add r12, r12, pc
// CHECK-PI-ARM-NEXT: 1334: 1c ff 2f e1 bx r12
-// CHECK-PI-ARM: __ARMToThumbV7PILongThunk_thumb_callee2:
+// CHECK-PI-ARM: __ARMV7PILongThunk_thumb_callee2:
// CHECK-PI-ARM-NEXT: 1338: b9 c1 00 e3 movw r12, #441
// CHECK-PI-ARM-NEXT: 133c: 00 c0 40 e3 movt r12, #0
// CHECK-PI-ARM-NEXT: 1340: 0f c0 8c e0 add r12, r12, pc
// CHECK-PI-ARM-NEXT: 1344: 1c ff 2f e1 bx r12
-// CHECK-PI-ARM: __ARMToThumbV7PILongThunk_thumb_callee3:
+// CHECK-PI-ARM: __ARMV7PILongThunk_thumb_callee3:
// 0x1340 + 8 + 0x1b9 = 0x1501
// CHECK-PI-ARM-NEXT: 1348: ab c1 00 e3 movw r12, #427
// CHECK-PI-ARM-NEXT: 134c: 00 c0 40 e3 movt r12, #0
@@ -187,24 +187,24 @@ thumb_caller:
// CHECK-ABS-THUMB-NEXT: thumb_caller:
// CHECK-ABS-THUMB-NEXT: 1400: ff f7 7e ee blx #-772
// CHECK-ABS-THUMB-NEXT: 1404: ff f7 7c ee blx #-776
-// CHECK-ABS-THUMB-NEXT: 1408: 00 f0 0a b8 b.w #20 <__ThumbToARMv7ABSLongThunk_arm_callee1>
-// CHECK-ABS-THUMB-NEXT: 140c: 00 f0 0d b8 b.w #26 <__ThumbToARMv7ABSLongThunk_arm_callee2>
-// CHECK-ABS-THUMB-NEXT: 1410: 00 f0 10 b8 b.w #32 <__ThumbToARMv7ABSLongThunk_arm_callee3>
-// CHECK-ABS-THUMB-NEXT: 1414: 00 f0 04 80 beq.w #8 <__ThumbToARMv7ABSLongThunk_arm_callee1>
-// CHECK-ABS-THUMB-NEXT: 1418: 00 f0 07 80 beq.w #14 <__ThumbToARMv7ABSLongThunk_arm_callee2>
-// CHECK-ABS-THUMB-NEXT: 141c: 40 f0 0a 80 bne.w #20 <__ThumbToARMv7ABSLongThunk_arm_callee3>
-// CHECK-ABS-THUMB: __ThumbToARMv7ABSLongThunk_arm_callee1:
+// CHECK-ABS-THUMB-NEXT: 1408: 00 f0 0a b8 b.w #20 <__Thumbv7ABSLongThunk_arm_callee1>
+// CHECK-ABS-THUMB-NEXT: 140c: 00 f0 0d b8 b.w #26 <__Thumbv7ABSLongThunk_arm_callee2>
+// CHECK-ABS-THUMB-NEXT: 1410: 00 f0 10 b8 b.w #32 <__Thumbv7ABSLongThunk_arm_callee3>
+// CHECK-ABS-THUMB-NEXT: 1414: 00 f0 04 80 beq.w #8 <__Thumbv7ABSLongThunk_arm_callee1>
+// CHECK-ABS-THUMB-NEXT: 1418: 00 f0 07 80 beq.w #14 <__Thumbv7ABSLongThunk_arm_callee2>
+// CHECK-ABS-THUMB-NEXT: 141c: 40 f0 0a 80 bne.w #20 <__Thumbv7ABSLongThunk_arm_callee3>
+// CHECK-ABS-THUMB: __Thumbv7ABSLongThunk_arm_callee1:
// 0x1100 = arm_callee1
// CHECK-ABS-THUMB-NEXT: 1420: 41 f2 00 1c movw r12, #4352
// CHECK-ABS-THUMB-NEXT: 1424: c0 f2 00 0c movt r12, #0
// CHECK-ABS-THUMB-NEXT: 1428: 60 47 bx r12
-// CHECK-ABS-THUMB: __ThumbToARMv7ABSLongThunk_arm_callee2:
+// CHECK-ABS-THUMB: __Thumbv7ABSLongThunk_arm_callee2:
// 0x1600 = arm_callee2
// CHECK-ABS-THUMB-NEXT: 142a: 41 f2 00 6c movw r12, #5632
// CHECK-ABS-THUMB-NEXT: 142e: c0 f2 00 0c movt r12, #0
// CHECK-ABS-THUMB-NEXT: 1432: 60 47 bx r12
// 0x1604 = arm_callee3
-// CHECK-ABS-THUMB: __ThumbToARMv7ABSLongThunk_arm_callee3:
+// CHECK-ABS-THUMB: __Thumbv7ABSLongThunk_arm_callee3:
// CHECK-ABS-THUMB-NEXT: 1434: 41 f2 04 6c movw r12, #5636
// CHECK-ABS-THUMB-NEXT: 1438: c0 f2 00 0c movt r12, #0
// CHECK-ABS-THUMB-NEXT: 143c: 60 47 bx r12
@@ -213,25 +213,25 @@ thumb_caller:
// CHECK-PI-THUMB-NEXT: thumb_caller:
// CHECK-PI-THUMB-NEXT: 1400: ff f7 7e ee blx #-772
// CHECK-PI-THUMB-NEXT: 1404: ff f7 7c ee blx #-776
-// CHECK-PI-THUMB-NEXT: 1408: 00 f0 0a b8 b.w #20 <__ThumbToARMV7PILongThunk_arm_callee1>
-// CHECK-PI-THUMB-NEXT: 140c: 00 f0 0e b8 b.w #28 <__ThumbToARMV7PILongThunk_arm_callee2>
-// CHECK-PI-THUMB-NEXT: 1410: 00 f0 12 b8 b.w #36 <__ThumbToARMV7PILongThunk_arm_callee3>
-// CHECK-PI-THUMB-NEXT: 1414: 00 f0 04 80 beq.w #8 <__ThumbToARMV7PILongThunk_arm_callee1>
-// CHECK-PI-THUMB-NEXT: 1418: 00 f0 08 80 beq.w #16 <__ThumbToARMV7PILongThunk_arm_callee2>
-// CHECK-PI-THUMB-NEXT: 141c: 40 f0 0c 80 bne.w #24 <__ThumbToARMV7PILongThunk_arm_callee3>
-// CHECK-PI-THUMB: __ThumbToARMV7PILongThunk_arm_callee1:
+// CHECK-PI-THUMB-NEXT: 1408: 00 f0 0a b8 b.w #20 <__ThumbV7PILongThunk_arm_callee1>
+// CHECK-PI-THUMB-NEXT: 140c: 00 f0 0e b8 b.w #28 <__ThumbV7PILongThunk_arm_callee2>
+// CHECK-PI-THUMB-NEXT: 1410: 00 f0 12 b8 b.w #36 <__ThumbV7PILongThunk_arm_callee3>
+// CHECK-PI-THUMB-NEXT: 1414: 00 f0 04 80 beq.w #8 <__ThumbV7PILongThunk_arm_callee1>
+// CHECK-PI-THUMB-NEXT: 1418: 00 f0 08 80 beq.w #16 <__ThumbV7PILongThunk_arm_callee2>
+// CHECK-PI-THUMB-NEXT: 141c: 40 f0 0c 80 bne.w #24 <__ThumbV7PILongThunk_arm_callee3>
+// CHECK-PI-THUMB: __ThumbV7PILongThunk_arm_callee1:
// 0x1428 + 4 - 0x32c = 0x1100 = arm_callee1
// CHECK-PI-THUMB-NEXT: 1420: 4f f6 d4 4c movw r12, #64724
// CHECK-PI-THUMB-NEXT: 1424: cf f6 ff 7c movt r12, #65535
// CHECK-PI-THUMB-NEXT: 1428: fc 44 add r12, pc
// CHECK-PI-THUMB-NEXT: 142a: 60 47 bx r12
-// CHECK-PI-THUMB: __ThumbToARMV7PILongThunk_arm_callee2:
+// CHECK-PI-THUMB: __ThumbV7PILongThunk_arm_callee2:
// 0x1434 + 4 + 0x1c8 = 0x1600 = arm_callee2
// CHECK-PI-THUMB-NEXT: 142c: 40 f2 c8 1c movw r12, #456
// CHECK-PI-THUMB-NEXT: 1430: c0 f2 00 0c movt r12, #0
// CHECK-PI-THUMB-NEXT: 1434: fc 44 add r12, pc
// CHECK-PI-THUMB-NEXT: 1436: 60 47 bx r12
-// CHECK-PI-THUMB: __ThumbToARMV7PILongThunk_arm_callee3:
+// CHECK-PI-THUMB: __ThumbV7PILongThunk_arm_callee3:
// 0x1440 + 4 + 0x1c0 = 0x1604 = arm_callee3
// CHECK-PI-THUMB-NEXT: 1438: 40 f2 c0 1c movw r12, #448
// CHECK-PI-THUMB-NEXT: 143c: c0 f2 00 0c movt r12, #0
OpenPOWER on IntegriCloud