[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