aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86TargetAsmInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/X86/X86TargetAsmInfo.h')
-rw-r--r--lib/Target/X86/X86TargetAsmInfo.h29
1 files changed, 9 insertions, 20 deletions
diff --git a/lib/Target/X86/X86TargetAsmInfo.h b/lib/Target/X86/X86TargetAsmInfo.h
index 2fc2d65..948a931 100644
--- a/lib/Target/X86/X86TargetAsmInfo.h
+++ b/lib/Target/X86/X86TargetAsmInfo.h
@@ -15,6 +15,8 @@
#define X86TARGETASMINFO_H
#include "llvm/Target/TargetAsmInfo.h"
+#include "llvm/Target/ELFTargetAsmInfo.h"
+#include "llvm/Target/DarwinTargetAsmInfo.h"
namespace llvm {
@@ -22,42 +24,27 @@ namespace llvm {
class X86TargetMachine;
class GlobalVariable;
- struct X86TargetAsmInfo : public TargetAsmInfo {
+ struct X86TargetAsmInfo : public virtual TargetAsmInfo {
explicit X86TargetAsmInfo(const X86TargetMachine &TM);
virtual bool ExpandInlineAsm(CallInst *CI) const;
private:
bool LowerToBSwap(CallInst *CI) const;
- protected:
- const X86TargetMachine* X86TM;
};
- struct X86DarwinTargetAsmInfo : public X86TargetAsmInfo {
- const Section* TextCoalSection;
- const Section* ConstDataCoalSection;
- const Section* ConstDataSection;
- const Section* DataCoalSection;
-
+ struct X86DarwinTargetAsmInfo : public X86TargetAsmInfo,
+ public DarwinTargetAsmInfo {
explicit X86DarwinTargetAsmInfo(const X86TargetMachine &TM);
virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
bool Global) const;
- virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
- virtual std::string UniqueSectionForGlobal(const GlobalValue* GV,
- SectionKind::Kind kind) const;
- const Section* MergeableConstSection(const GlobalVariable *GV) const;
- const Section* MergeableStringSection(const GlobalVariable *GV) const;
};
- struct X86ELFTargetAsmInfo : public X86TargetAsmInfo {
+ struct X86ELFTargetAsmInfo : public X86TargetAsmInfo,
+ public ELFTargetAsmInfo {
explicit X86ELFTargetAsmInfo(const X86TargetMachine &TM);
virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
bool Global) const;
-
- virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
- virtual std::string PrintSectionFlags(unsigned flags) const;
- const Section* MergeableConstSection(const GlobalVariable *GV) const;
- const Section* MergeableStringSection(const GlobalVariable *GV) const ;
};
struct X86COFFTargetAsmInfo : public X86TargetAsmInfo {
@@ -67,6 +54,8 @@ namespace llvm {
virtual std::string UniqueSectionForGlobal(const GlobalValue* GV,
SectionKind::Kind kind) const;
virtual std::string PrintSectionFlags(unsigned flags) const;
+ protected:
+ const X86TargetMachine *X86TM;
};
struct X86WinTargetAsmInfo : public X86TargetAsmInfo {