[llvm-commits] CVS: llvm/lib/Target/X86/X86TargetAsmInfo.cpp X86TargetAsmInfo.h

Jim Laskey jlaskey at apple.com
Thu Sep 7 15:05:20 PDT 2006



Changes in directory llvm/lib/Target/X86:

X86TargetAsmInfo.cpp added (r1.1)
X86TargetAsmInfo.h added (r1.1)
---
Log message:

Break out target asm info into separate files.


---
Diffs of the changes:  (+126 -0)

 X86TargetAsmInfo.cpp |   95 +++++++++++++++++++++++++++++++++++++++++++++++++++
 X86TargetAsmInfo.h   |   31 ++++++++++++++++
 2 files changed, 126 insertions(+)


Index: llvm/lib/Target/X86/X86TargetAsmInfo.cpp
diff -c /dev/null llvm/lib/Target/X86/X86TargetAsmInfo.cpp:1.1
*** /dev/null	Thu Sep  7 17:05:12 2006
--- llvm/lib/Target/X86/X86TargetAsmInfo.cpp	Thu Sep  7 17:05:02 2006
***************
*** 0 ****
--- 1,95 ----
+ //===-- X86TargetAsmInfo.cpp - X86 asm properties ---------------*- C++ -*-===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by James M. Laskey and is distributed under the
+ // University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file contains the declarations of the X86TargetAsmInfo properties.
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #include "X86TargetAsmInfo.h"
+ #include "X86TargetMachine.h"
+ #include "X86Subtarget.h"
+ 
+ using namespace llvm;
+ 
+ X86TargetAsmInfo::X86TargetAsmInfo(const X86TargetMachine &TM) {
+   const X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>();
+   
+   //FIXME - Should to be simplified.
+    
+   switch (Subtarget->TargetType) {
+   case X86Subtarget::isDarwin:
+     AlignmentIsInBytes = false;
+     GlobalPrefix = "_";
+     Data64bitsDirective = 0;       // we can't emit a 64-bit unit
+     ZeroDirective = "\t.space\t";  // ".space N" emits N zeros.
+     PrivateGlobalPrefix = "L";     // Marker for constant pool idxs
+     ConstantPoolSection = "\t.const\n";
+     JumpTableDataSection = "\t.const\n"; // FIXME: depends on PIC mode
+     FourByteConstantSection = "\t.literal4\n";
+     EightByteConstantSection = "\t.literal8\n";
+     LCOMMDirective = "\t.lcomm\t";
+     COMMDirectiveTakesAlignment = false;
+     HasDotTypeDotSizeDirective = false;
+     StaticCtorsSection = ".mod_init_func";
+     StaticDtorsSection = ".mod_term_func";
+     InlineAsmStart = "# InlineAsm Start";
+     InlineAsmEnd = "# InlineAsm End";
+     SetDirective = "\t.set";
+     
+     NeedsSet = true;
+     DwarfAbbrevSection = ".section __DWARF,__debug_abbrev,regular,debug";
+     DwarfInfoSection = ".section __DWARF,__debug_info,regular,debug";
+     DwarfLineSection = ".section __DWARF,__debug_line,regular,debug";
+     DwarfFrameSection = ".section __DWARF,__debug_frame,regular,debug";
+     DwarfPubNamesSection = ".section __DWARF,__debug_pubnames,regular,debug";
+     DwarfPubTypesSection = ".section __DWARF,__debug_pubtypes,regular,debug";
+     DwarfStrSection = ".section __DWARF,__debug_str,regular,debug";
+     DwarfLocSection = ".section __DWARF,__debug_loc,regular,debug";
+     DwarfARangesSection = ".section __DWARF,__debug_aranges,regular,debug";
+     DwarfRangesSection = ".section __DWARF,__debug_ranges,regular,debug";
+     DwarfMacInfoSection = ".section __DWARF,__debug_macinfo,regular,debug";
+     break;
+   case X86Subtarget::isCygwin:
+     GlobalPrefix = "_";
+     COMMDirectiveTakesAlignment = false;
+     HasDotTypeDotSizeDirective = false;
+     StaticCtorsSection = "\t.section .ctors,\"aw\"";
+     StaticDtorsSection = "\t.section .dtors,\"aw\"";
+     break;
+   case X86Subtarget::isWindows:
+     GlobalPrefix = "_";
+     HasDotTypeDotSizeDirective = false;
+     break;
+   default: break;
+   }
+   
+   if (Subtarget->isFlavorIntel()) {
+     GlobalPrefix = "_";
+     CommentString = ";";
+   
+     PrivateGlobalPrefix = "$";
+     AlignDirective = "\talign\t";
+     ZeroDirective = "\tdb\t";
+     ZeroDirectiveSuffix = " dup(0)";
+     AsciiDirective = "\tdb\t";
+     AscizDirective = 0;
+     Data8bitsDirective = "\tdb\t";
+     Data16bitsDirective = "\tdw\t";
+     Data32bitsDirective = "\tdd\t";
+     Data64bitsDirective = "\tdq\t";
+     HasDotTypeDotSizeDirective = false;
+     
+     TextSection = "_text";
+     DataSection = "_data";
+     SwitchToSectionDirective = "";
+     TextSectionStartSuffix = "\tsegment 'CODE'";
+     DataSectionStartSuffix = "\tsegment 'DATA'";
+     SectionEndDirectiveSuffix = "\tends\n";
+   }
+ }


Index: llvm/lib/Target/X86/X86TargetAsmInfo.h
diff -c /dev/null llvm/lib/Target/X86/X86TargetAsmInfo.h:1.1
*** /dev/null	Thu Sep  7 17:05:20 2006
--- llvm/lib/Target/X86/X86TargetAsmInfo.h	Thu Sep  7 17:05:02 2006
***************
*** 0 ****
--- 1,31 ----
+ //=====-- X86TargetAsmInfo.h - X86 asm properties -------------*- C++ -*--====//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by James M. Laskey and is distributed under the
+ // University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file contains the declaration of the X86TargetAsmInfo class.
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #ifndef X86TARGETASMINFO_H
+ #define X86TARGETASMINFO_H
+ 
+ #include "llvm/Target/TargetAsmInfo.h"
+ 
+ namespace llvm {
+   
+   // Forward declaration.
+   class X86TargetMachine;
+ 
+   struct X86TargetAsmInfo : public TargetAsmInfo {
+     X86TargetAsmInfo(const X86TargetMachine &TM);
+   };
+ 
+ 
+ } // namespace llvm
+ 
+ #endif






More information about the llvm-commits mailing list