| Index: src/IceTargetLoweringX8632.cpp
|
| diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
|
| index ebf55f56d52d048eeadbae339ace4bea09dd6ff3..072116881f178b0de6951bf825028aa020c000fb 100644
|
| --- a/src/IceTargetLoweringX8632.cpp
|
| +++ b/src/IceTargetLoweringX8632.cpp
|
| @@ -41,9 +41,13 @@ void staticInit(::Ice::GlobalContext *Ctx) {
|
| // pexe) so we need to register it as such so that ELF emission won't barf
|
| // on an "unknown" symbol. The GOT is added to the External symbols list
|
| // here because staticInit() is invoked in a single-thread context.
|
| - Ctx->getConstantExternSym(::Ice::GlobalOffsetTable);
|
| + Ctx->getConstantExternSym(Ctx->getGlobalString(::Ice::GlobalOffsetTable));
|
| }
|
| }
|
| +
|
| +bool shouldBePooled(const class ::Ice::Constant *C) {
|
| + return ::Ice::X8632::TargetX8632::shouldBePooled(C);
|
| +}
|
| } // end of namespace X8632
|
|
|
| namespace Ice {
|
| @@ -252,9 +256,10 @@ void TargetX8632::emitGetIP(CfgNode *Node) {
|
|
|
| const RelocOffsetT ImmSize = -typeWidthInBytes(IceType_i32);
|
|
|
| - auto *GotFromPc = llvm::cast<ConstantRelocatable>(
|
| - Ctx->getConstantSym(ImmSize, {AfterAddReloc, BeforeAddReloc},
|
| - GlobalOffsetTable, GlobalOffsetTable));
|
| + auto *GotFromPc =
|
| + llvm::cast<ConstantRelocatable>(Ctx->getConstantSymWithEmitString(
|
| + ImmSize, {AfterAddReloc, BeforeAddReloc},
|
| + Ctx->getGlobalString(GlobalOffsetTable), GlobalOffsetTable));
|
|
|
| // Insert a new version of InstX86GetIP.
|
| Context.insert<Traits::Insts::GetIP>(CallDest);
|
|
|