summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86TargetObjectFile.h
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-01-15 09:16:42 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-01-15 09:16:42 +0000
commitdee105772c5b5662e1a046b1c102467c84a09d26 (patch)
treec1395726ad714912c52e1f8edbabaed8c863ac88 /llvm/lib/Target/X86/X86TargetObjectFile.h
parent888d52a6556eec27341ba635a64315dd08c269aa (diff)
downloadbcm5719-llvm-dee105772c5b5662e1a046b1c102467c84a09d26.tar.gz
bcm5719-llvm-dee105772c5b5662e1a046b1c102467c84a09d26.zip
WinCOFF: Transform IR expressions featuring __ImageBase into image relative relocations
MSVC on x64 requires that we create image relative symbol references to refer to RTTI data. Seeing as how there is no way to explicitly make reference to a given relocation type in LLVM IR, pattern match expressions of the form &foo - &__ImageBase. Differential Revision: http://llvm-reviews.chandlerc.com/D2523 llvm-svn: 199312
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetObjectFile.h')
-rw-r--r--llvm/lib/Target/X86/X86TargetObjectFile.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86TargetObjectFile.h b/llvm/lib/Target/X86/X86TargetObjectFile.h
index 79c861d2e12..5fcd0dfba67 100644
--- a/llvm/lib/Target/X86/X86TargetObjectFile.h
+++ b/llvm/lib/Target/X86/X86TargetObjectFile.h
@@ -41,6 +41,12 @@ namespace llvm {
virtual const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const;
};
+ /// \brief This implementation is used for Windows targets on x86 and x86-64.
+ class X86WindowsTargetObjectFile : public TargetLoweringObjectFileCOFF {
+ virtual const MCExpr *getExecutableRelativeSymbol(const ConstantExpr *CE,
+ Mangler *Mang) const;
+ };
+
} // end namespace llvm
#endif
OpenPOWER on IntegriCloud