diff options
author | Yaron Keren <yaron.keren@gmail.com> | 2014-04-02 04:27:51 +0000 |
---|---|---|
committer | Yaron Keren <yaron.keren@gmail.com> | 2014-04-02 04:27:51 +0000 |
commit | 2895496852ea2adf9be8418aad101eee2b063f7f (patch) | |
tree | f4a2a2fafcf256540196c62b0c6f728e259667ae /llvm/lib/Target | |
parent | 086f8a6ef5459ea30a688e82ca471d9a863ae898 (diff) | |
download | bcm5719-llvm-2895496852ea2adf9be8418aad101eee2b063f7f.tar.gz bcm5719-llvm-2895496852ea2adf9be8418aad101eee2b063f7f.zip |
Added isTargetWindowsMSVC(), renamed isTargetMingw() to isTargetWindowsGNU()
and isTargetCygwin() to isTargetWindowsCygwin() to be consistent with the
four Windows environments in Triple.h.
Suggestion by Saleem Abdulrasool!
llvm-svn: 205393
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 20 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.h | 14 |
2 files changed, 24 insertions, 10 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 49391be70fd..2a35061ce77 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -275,7 +275,7 @@ void X86TargetLowering::resetOperationActions() { // Darwin should use _setjmp/_longjmp instead of setjmp/longjmp. setUseUnderscoreSetJmp(false); setUseUnderscoreLongJmp(false); - } else if (Subtarget->isTargetMingw()) { + } else if (Subtarget->isTargetWindowsGNU()) { // MS runtime is weird: it exports _setjmp, but longjmp! setUseUnderscoreSetJmp(true); setUseUnderscoreLongJmp(false); @@ -8494,7 +8494,8 @@ X86TargetLowering::LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const { Chain.getValue(1)); } - if (Subtarget->isTargetKnownWindowsMSVC() || Subtarget->isTargetMingw()) { + if (Subtarget->isTargetKnownWindowsMSVC() || + Subtarget->isTargetWindowsGNU()) { // Just use the implicit TLS architecture // Need to generate someting similar to: // mov rdx, qword [gs:abs 58H]; Load pointer to ThreadLocalStorage @@ -8522,13 +8523,16 @@ X86TargetLowering::LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const { : Type::getInt32PtrTy(*DAG.getContext(), 257)); - SDValue TlsArray = Subtarget->is64Bit() ? DAG.getIntPtrConstant(0x58) : - (Subtarget->isTargetMingw() ? DAG.getIntPtrConstant(0x2C) : - DAG.getExternalSymbol("_tls_array", getPointerTy())); + SDValue TlsArray = + Subtarget->is64Bit() + ? DAG.getIntPtrConstant(0x58) + : (Subtarget->isTargetWindowsGNU() + ? DAG.getIntPtrConstant(0x2C) + : DAG.getExternalSymbol("_tls_array", getPointerTy())); - SDValue ThreadPointer = DAG.getLoad(getPointerTy(), dl, Chain, TlsArray, - MachinePointerInfo(Ptr), - false, false, false, 0); + SDValue ThreadPointer = + DAG.getLoad(getPointerTy(), dl, Chain, TlsArray, + MachinePointerInfo(Ptr), false, false, false, 0); // Load the _tls_index variable SDValue IDX = DAG.getExternalSymbol("_tls_index", getPointerTy()); diff --git a/llvm/lib/Target/X86/X86Subtarget.h b/llvm/lib/Target/X86/X86Subtarget.h index f7b7c1f4d40..52986b9a895 100644 --- a/llvm/lib/Target/X86/X86Subtarget.h +++ b/llvm/lib/Target/X86/X86Subtarget.h @@ -343,13 +343,23 @@ public: bool isTargetNaCl() const { return TargetTriple.isOSNaCl(); } bool isTargetNaCl32() const { return isTargetNaCl() && !is64Bit(); } bool isTargetNaCl64() const { return isTargetNaCl() && is64Bit(); } + + bool isTargetWindowsMSVC() const { + return TargetTriple.isWindowsMSVCEnvironment(); + } + bool isTargetKnownWindowsMSVC() const { return TargetTriple.isKnownWindowsMSVCEnvironment(); } - bool isTargetMingw() const { return TargetTriple.isWindowsGNUEnvironment(); } - bool isTargetCygwin() const { + + bool isTargetWindowsCygwin() const { return TargetTriple.isWindowsCygwinEnvironment(); } + + bool isTargetWindowsGNU() const { + return TargetTriple.isWindowsGNUEnvironment(); + } + bool isTargetCygMing() const { return TargetTriple.isOSCygMing(); } bool isOSWindows() const { return TargetTriple.isOSWindows(); } |