diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2018-06-28 17:56:43 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2018-06-28 17:56:43 +0000 |
commit | b757fc3878d90976cd7ca92291aa8b626d5dff6b (patch) | |
tree | 0d644687f6f68a1cb965cf7fe28aa43696381bd6 /llvm/lib/Target/X86/X86MCInstLower.cpp | |
parent | 54a4724467f32b1099ee0fce2dab1b223edf81c7 (diff) | |
download | bcm5719-llvm-b757fc3878d90976cd7ca92291aa8b626d5dff6b.tar.gz bcm5719-llvm-b757fc3878d90976cd7ca92291aa8b626d5dff6b.zip |
Revert "Re-land r335297 "[X86] Implement more of x86-64 large and medium PIC code models""
Reverting because this is causing failures in the LLDB test suite on
GreenDragon.
LLVM ERROR: unsupported relocation with subtraction expression, symbol
'__GLOBAL_OFFSET_TABLE_' can not be undefined in a subtraction
expression
llvm-svn: 335894
Diffstat (limited to 'llvm/lib/Target/X86/X86MCInstLower.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index ee6161ad0a2..ae4b1e79c54 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -1982,41 +1982,6 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) { return; } - case X86::MOVGOT64r: { - // Materializes the GOT for the 64-bit large code model. - MCSymbol *DotSym = OutContext.createTempSymbol(); - OutStreamer->EmitLabel(DotSym); - - unsigned DstReg = MI->getOperand(0).getReg(); - unsigned ScratchReg = MI->getOperand(1).getReg(); - MCSymbol *GOTSym = MCInstLowering.GetSymbolFromOperand(MI->getOperand(2)); - - // .LtmpN: leaq .LtmpN(%rip), %dst - const MCExpr *DotExpr = MCSymbolRefExpr::create(DotSym, OutContext); - EmitAndCountInstruction(MCInstBuilder(X86::LEA64r) - .addReg(DstReg) // dest - .addReg(X86::RIP) // base - .addImm(1) // scale - .addReg(0) // index - .addExpr(DotExpr) // disp - .addReg(0)); // seg - - // movq $_GLOBAL_OFFSET_TABLE_ - .LtmpN, %scratch - const MCExpr *GOTSymExpr = MCSymbolRefExpr::create(GOTSym, OutContext); - const MCExpr *GOTDiffExpr = - MCBinaryExpr::createSub(GOTSymExpr, DotExpr, OutContext); - EmitAndCountInstruction(MCInstBuilder(X86::MOV64ri) - .addReg(ScratchReg) // dest - .addExpr(GOTDiffExpr)); // disp - - // addq %scratch, %dst - EmitAndCountInstruction(MCInstBuilder(X86::ADD64rr) - .addReg(DstReg) // dest - .addReg(DstReg) // dest - .addReg(ScratchReg)); // src - return; - } - case X86::ADD32ri: { // Lower the MO_GOT_ABSOLUTE_ADDRESS form of ADD32ri. if (MI->getOperand(2).getTargetFlags() != X86II::MO_GOT_ABSOLUTE_ADDRESS) |