Index: src/IceTargetLoweringX86BaseImpl.h |
diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h |
index a344d57c960b294731cd27b7395562c1c0bc4447..afc8dcfc5463d59b66992a7a2cfb99256a5d0aa1 100644 |
--- a/src/IceTargetLoweringX86BaseImpl.h |
+++ b/src/IceTargetLoweringX86BaseImpl.h |
@@ -5881,10 +5881,8 @@ void TargetX86Base<TraitsType>::lowerCaseCluster(const CaseCluster &Case, |
} |
constexpr RelocOffsetT RelocOffset = 0; |
- GlobalString FunctionName = Func->getFunctionName(); |
constexpr Variable *NoBase = nullptr; |
- auto JTName = GlobalString::createWithString( |
- Ctx, InstJumpTable::makeName(FunctionName, JumpTable->getId())); |
+ auto JTName = GlobalString::createWithString(Ctx, JumpTable->getName()); |
Constant *Offset = Ctx->getConstantSym(RelocOffset, JTName); |
uint16_t Shift = typeWidthInBytesLog2(PointerType); |
constexpr auto Segment = X86OperandMem::SegmentRegisters::DefaultSegment; |
@@ -7277,17 +7275,16 @@ TargetX86Base<TraitsType>::randomizeOrPoolImmediate(X86OperandMem *MemOperand, |
template <typename TraitsType> |
void TargetX86Base<TraitsType>::emitJumpTable( |
- const Cfg *Func, const InstJumpTable *JumpTable) const { |
+ const Cfg *, const InstJumpTable *JumpTable) const { |
if (!BuildDefs::dump()) |
return; |
Ostream &Str = Ctx->getStrEmit(); |
- const bool UseNonsfi = getFlags().getUseNonsfi(); |
- GlobalString FunctionName = Func->getFunctionName(); |
+ const bool UseNonsfi = Ctx->getFlags().getUseNonsfi(); |
const char *Prefix = UseNonsfi ? ".data.rel.ro." : ".rodata."; |
- Str << "\t.section\t" << Prefix << FunctionName |
- << "$jumptable,\"a\",@progbits\n"; |
- Str << "\t.align\t" << typeWidthInBytes(getPointerType()) << "\n"; |
- Str << InstJumpTable::makeName(FunctionName, JumpTable->getId()) << ":"; |
+ Str << "\t.section\t" << Prefix << JumpTable->getSectionName() |
+ << ",\"a\",@progbits\n" |
+ "\t.align\t" << typeWidthInBytes(getPointerType()) << "\n" |
+ << JumpTable->getName() << ":"; |
// On X86 ILP32 pointers are 32-bit hence the use of .long |
for (SizeT I = 0; I < JumpTable->getNumTargets(); ++I) |
@@ -7389,10 +7386,10 @@ void TargetDataX86<TraitsType>::lowerJumpTables() { |
Ostream &Str = Ctx->getStrEmit(); |
const char *Prefix = IsPIC ? ".data.rel.ro." : ".rodata."; |
for (const JumpTableData &JT : Ctx->getJumpTables()) { |
- Str << "\t.section\t" << Prefix << JT.getFunctionName() |
- << "$jumptable,\"a\",@progbits\n"; |
- Str << "\t.align\t" << typeWidthInBytes(getPointerType()) << "\n"; |
- Str << InstJumpTable::makeName(JT.getFunctionName(), JT.getId()) << ":"; |
+ Str << "\t.section\t" << Prefix << JT.getSectionName() |
+ << ",\"a\",@progbits\n" |
+ "\t.align\t" << typeWidthInBytes(getPointerType()) << "\n" |
+ << JT.getName().toString() << ":"; |
// On X8664 ILP32 pointers are 32-bit hence the use of .long |
for (intptr_t TargetOffset : JT.getTargetOffsets()) |