aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorLauro Ramos Venancio <lauro.venancio@gmail.com>2007-04-20 21:38:10 +0000
committerLauro Ramos Venancio <lauro.venancio@gmail.com>2007-04-20 21:38:10 +0000
commitb3a0417cad8b625acc3033bd5e24afb9ffd0b084 (patch)
treec691c028e9aa107d0cd0b091af7858a7f040b445 /utils
parente3e31c22bf7ebed9e8e00ede4f4aa87ce2225528 (diff)
downloadexternal_llvm-b3a0417cad8b625acc3033bd5e24afb9ffd0b084.zip
external_llvm-b3a0417cad8b625acc3033bd5e24afb9ffd0b084.tar.gz
external_llvm-b3a0417cad8b625acc3033bd5e24afb9ffd0b084.tar.bz2
Implement "general dynamic", "initial exec" and "local exec" TLS models for
X86 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36283 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index 6ad7999..11f7f77 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -2654,10 +2654,12 @@ public:
} else {
NodeOps.push_back(Val);
}
- } else if (!N->isLeaf() && N->getOperator()->getName() == "tglobaladdr") {
+ } else if (!N->isLeaf() && (N->getOperator()->getName() == "tglobaladdr"
+ || N->getOperator()->getName() == "tglobaltlsaddr")) {
Record *Op = OperatorMap[N->getName()];
// Transform GlobalAddress to TargetGlobalAddress
- if (Op && Op->getName() == "globaladdr") {
+ if (Op && (Op->getName() == "globaladdr" ||
+ Op->getName() == "globaltlsaddr")) {
emitCode("SDOperand Tmp" + utostr(ResNo) + " = CurDAG->getTarget"
"GlobalAddress(cast<GlobalAddressSDNode>(" + Val +
")->getGlobal(), " + getEnumName(N->getTypeNum(0)) +
@@ -3716,6 +3718,7 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
<< " case ISD::TargetConstantPool:\n"
<< " case ISD::TargetFrameIndex:\n"
<< " case ISD::TargetJumpTable:\n"
+ << " case ISD::TargetGlobalTLSAddress:\n"
<< " case ISD::TargetGlobalAddress: {\n"
<< " return NULL;\n"
<< " }\n"