From 05bde58b5eff54b2f79580bcec418e4f4fb1fd7b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 11 Aug 2009 21:57:08 +0000 Subject: [PATCH] eliminate the X86TargetAsmInfo template. llvm-svn: 78724 --- lib/Target/X86/X86TargetAsmInfo.cpp | 28 ++++++++++++++++++---------- lib/Target/X86/X86TargetAsmInfo.h | 22 ++++++---------------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp index b702cbfc44b..7712b022501 100644 --- a/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/lib/Target/X86/X86TargetAsmInfo.cpp @@ -26,7 +26,7 @@ using namespace llvm; using namespace llvm::dwarf; -const char *const llvm::x86_asm_table[] = { +static const char *const x86_asm_table[] = { "{si}", "S", "{di}", "D", "{ax}", "a", @@ -38,8 +38,10 @@ const char *const llvm::x86_asm_table[] = { "{cc}", "cc", 0,0}; -X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM): - X86TargetAsmInfo(TM) { +X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM) { + AsmTransCBE = x86_asm_table; + AssemblerDialect = TM.getSubtarget().getAsmFlavor(); + const X86Subtarget *Subtarget = &TM.getSubtarget(); bool is64Bit = Subtarget->is64Bit(); @@ -83,8 +85,9 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM): AbsoluteEHSectionOffsets = false; } -X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) : - X86TargetAsmInfo(TM) { +X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) { + AsmTransCBE = x86_asm_table; + AssemblerDialect = TM.getSubtarget().getAsmFlavor(); PrivateGlobalPrefix = ".L"; WeakRefDirective = "\t.weak\t"; @@ -107,9 +110,17 @@ X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) : NonexecutableStackDirective = "\t.section\t.note.GNU-stack,\"\",@progbits"; } +X86COFFTargetAsmInfo::X86COFFTargetAsmInfo(const X86TargetMachine &TM) { + AsmTransCBE = x86_asm_table; + AssemblerDialect = TM.getSubtarget().getAsmFlavor(); + +} + + +X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM) { + AsmTransCBE = x86_asm_table; + AssemblerDialect = TM.getSubtarget().getAsmFlavor(); -X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM): - X86TargetAsmInfo(TM) { GlobalPrefix = "_"; CommentString = ";"; @@ -131,6 +142,3 @@ X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM): AlignmentIsInBytes = true; } - -// Instantiate default implementation. -TEMPLATE_INSTANTIATION(class X86TargetAsmInfo); diff --git a/lib/Target/X86/X86TargetAsmInfo.h b/lib/Target/X86/X86TargetAsmInfo.h index 34599e5a92d..9ce34f278fd 100644 --- a/lib/Target/X86/X86TargetAsmInfo.h +++ b/lib/Target/X86/X86TargetAsmInfo.h @@ -22,29 +22,19 @@ namespace llvm { - extern const char *const x86_asm_table[]; - - template - struct X86TargetAsmInfo : public BaseTAI { - explicit X86TargetAsmInfo(const TargetMachine &TM) { - BaseTAI::AsmTransCBE = x86_asm_table; - BaseTAI::AssemblerDialect =TM.getSubtarget().getAsmFlavor(); - } - }; - - EXTERN_TEMPLATE_INSTANTIATION(class X86TargetAsmInfo); - - struct X86DarwinTargetAsmInfo : public X86TargetAsmInfo { + struct X86DarwinTargetAsmInfo : public DarwinTargetAsmInfo { explicit X86DarwinTargetAsmInfo(const X86TargetMachine &TM); }; - struct X86ELFTargetAsmInfo : public X86TargetAsmInfo { + struct X86ELFTargetAsmInfo : public TargetAsmInfo { explicit X86ELFTargetAsmInfo(const X86TargetMachine &TM); }; - typedef X86TargetAsmInfo X86COFFTargetAsmInfo; + struct X86COFFTargetAsmInfo : public TargetAsmInfo { + explicit X86COFFTargetAsmInfo(const X86TargetMachine &TM); + }; - struct X86WinTargetAsmInfo : public X86TargetAsmInfo { + struct X86WinTargetAsmInfo : public TargetAsmInfo { explicit X86WinTargetAsmInfo(const X86TargetMachine &TM); };