summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-06-26 21:20:29 +0000
committerChris Lattner <sabre@nondot.org>2009-06-26 21:20:29 +0000
commit49ed726e46afb45e7ca60693668406d3e5e27331 (patch)
treebdd70b8003c418b50bf047bbbcfa6d03869c2da6 /llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
parent899abc46551f669d72ef7a40a1c33bd73f55c6d8 (diff)
downloadbcm5719-llvm-49ed726e46afb45e7ca60693668406d3e5e27331.tar.gz
bcm5719-llvm-49ed726e46afb45e7ca60693668406d3e5e27331.zip
Move all the TLS processing logic into isel, don't do it in asmprinter at all.
llvm-svn: 74327
Diffstat (limited to 'llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp')
-rw-r--r--llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp52
1 files changed, 23 insertions, 29 deletions
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
index beac1bdd917..b180beb9d69 100644
--- a/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
@@ -580,43 +580,37 @@ void X86ATTAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
if (needCloseParen)
O << ')';
+ bool isRIPRelative = false;
+
switch (MO.getTargetFlags()) {
default:
assert(0 && "Unknown target flag on GV operand");
case X86II::MO_NO_FLAG:
+ // FIXME: RIP THIS CHECKING CODE OUT EVENTUALLY.
+ if (isThreadLocal)
+ assert(0 && "Not lowered right");
+ break;
+ case X86II::MO_TLSGD:
+ O << "@TLSGD";
+ break;
+ case X86II::MO_GOTTPOFF:
+ O << "@GOTTPOFF";
+ assert(!NotRIPRel);
+ isRIPRelative = true;
+ break;
+ case X86II::MO_INDNTPOFF:
+ O << "@INDNTPOFF";
+ break;
+ case X86II::MO_TPOFF:
+ O << "@TPOFF";
+ break;
+ case X86II::MO_NTPOFF:
+ O << "@NTPOFF";
break;
}
-
- bool isRIPRelative = false;
if (isThreadLocal) {
- TLSModel::Model model = getTLSModel(GVar, TM.getRelocationModel());
- switch (model) {
- case TLSModel::GeneralDynamic:
- O << "@TLSGD";
- break;
- case TLSModel::LocalDynamic:
- // O << "@TLSLD"; // local dynamic not implemented
- O << "@TLSGD";
- break;
- case TLSModel::InitialExec:
- if (Subtarget->is64Bit()) {
- assert (!NotRIPRel);
- O << "@GOTTPOFF";
- isRIPRelative = true;
- } else {
- O << "@INDNTPOFF";
- }
- break;
- case TLSModel::LocalExec:
- if (Subtarget->is64Bit())
- O << "@TPOFF";
- else
- O << "@NTPOFF";
- break;
- default:
- assert (0 && "Unknown TLS model");
- }
+ // DEAD
} else if (isMemOp) {
if (shouldPrintGOT(TM, Subtarget)) {
if (Subtarget->GVRequiresExtraLoad(GV, TM, false))
OpenPOWER on IntegriCloud