| Anton Korobeynikov | 745e864 | 2008-07-19 13:14:46 +0000 | [diff] [blame] | 1 | //===-- DarwinTargetAsmInfo.cpp - Darwin asm properties ---------*- C++ -*-===// | 
 | 2 | // | 
 | 3 | //                     The LLVM Compiler Infrastructure | 
 | 4 | // | 
 | 5 | // This file is distributed under the University of Illinois Open Source | 
 | 6 | // License. See LICENSE.TXT for details. | 
 | 7 | // | 
 | 8 | //===----------------------------------------------------------------------===// | 
 | 9 | // | 
 | 10 | // This file defines target asm properties related what form asm statements | 
 | 11 | // should take in general on Darwin-based targets | 
 | 12 | // | 
 | 13 | //===----------------------------------------------------------------------===// | 
 | 14 |  | 
 | 15 | #include "llvm/Constants.h" | 
 | 16 | #include "llvm/DerivedTypes.h" | 
 | 17 | #include "llvm/Function.h" | 
 | 18 | #include "llvm/GlobalVariable.h" | 
 | 19 | #include "llvm/ADT/StringExtras.h" | 
| Torok Edwin | c25e758 | 2009-07-11 20:10:48 +0000 | [diff] [blame] | 20 | #include "llvm/Support/ErrorHandling.h" | 
| Dale Johannesen | d2e51af | 2008-09-09 22:29:13 +0000 | [diff] [blame] | 21 | #include "llvm/Support/Mangler.h" | 
| Anton Korobeynikov | 745e864 | 2008-07-19 13:14:46 +0000 | [diff] [blame] | 22 | #include "llvm/Target/DarwinTargetAsmInfo.h" | 
 | 23 | #include "llvm/Target/TargetMachine.h" | 
 | 24 | #include "llvm/Target/TargetData.h" | 
 | 25 |  | 
 | 26 | using namespace llvm; | 
 | 27 |  | 
| Dan Gohman | 8f09225 | 2008-11-03 18:22:42 +0000 | [diff] [blame] | 28 | DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM)  | 
 | 29 |   : TargetAsmInfo(TM) { | 
| Chris Lattner | f014412 | 2009-07-28 03:13:23 +0000 | [diff] [blame] | 30 |   | 
| Chris Lattner | 4e0f25b | 2009-06-19 00:08:39 +0000 | [diff] [blame] | 31 |   // Common settings for all Darwin targets. | 
 | 32 |   // Syntax: | 
 | 33 |   GlobalPrefix = "_"; | 
 | 34 |   PrivateGlobalPrefix = "L"; | 
| Chris Lattner | 90f8b70 | 2009-07-21 17:30:51 +0000 | [diff] [blame] | 35 |   LinkerPrivateGlobalPrefix = "l";  // Marker for some ObjC metadata | 
| Chris Lattner | 4e0f25b | 2009-06-19 00:08:39 +0000 | [diff] [blame] | 36 |   NeedsSet = true; | 
 | 37 |   NeedsIndirectEncoding = true; | 
 | 38 |   AllowQuotesInName = true; | 
 | 39 |   HasSingleParameterDotFile = false; | 
 | 40 |  | 
 | 41 |   // In non-PIC modes, emit a special label before jump tables so that the | 
 | 42 |   // linker can perform more accurate dead code stripping.  We do not check the | 
 | 43 |   // relocation model here since it can be overridden later. | 
 | 44 |   JumpTableSpecialLabelPrefix = "l"; | 
 | 45 |      | 
 | 46 |   // Directives: | 
 | 47 |   WeakDefDirective = "\t.weak_definition "; | 
 | 48 |   WeakRefDirective = "\t.weak_reference "; | 
 | 49 |   HiddenDirective = "\t.private_extern "; | 
 | 50 |      | 
| Chris Lattner | e2cf37b | 2009-07-17 20:46:40 +0000 | [diff] [blame] | 51 |   // _foo.eh symbols are currently always exported so that the linker knows | 
 | 52 |   // about them.  This may not strictly be necessary on 10.6 and later, but it | 
 | 53 |   // doesn't hurt anything. | 
 | 54 |   Is_EHSymbolPrivate = false; | 
 | 55 |      | 
| Chris Lattner | 4e0f25b | 2009-06-19 00:08:39 +0000 | [diff] [blame] | 56 |   DwarfAbbrevSection = ".section __DWARF,__debug_abbrev,regular,debug"; | 
 | 57 |   DwarfInfoSection = ".section __DWARF,__debug_info,regular,debug"; | 
 | 58 |   DwarfLineSection = ".section __DWARF,__debug_line,regular,debug"; | 
 | 59 |   DwarfFrameSection = ".section __DWARF,__debug_frame,regular,debug"; | 
 | 60 |   DwarfPubNamesSection = ".section __DWARF,__debug_pubnames,regular,debug"; | 
 | 61 |   DwarfPubTypesSection = ".section __DWARF,__debug_pubtypes,regular,debug"; | 
 | 62 |   DwarfStrSection = ".section __DWARF,__debug_str,regular,debug"; | 
 | 63 |   DwarfLocSection = ".section __DWARF,__debug_loc,regular,debug"; | 
 | 64 |   DwarfARangesSection = ".section __DWARF,__debug_aranges,regular,debug"; | 
 | 65 |   DwarfRangesSection = ".section __DWARF,__debug_ranges,regular,debug"; | 
 | 66 |   DwarfMacroInfoSection = ".section __DWARF,__debug_macinfo,regular,debug"; | 
| Anton Korobeynikov | 745e864 | 2008-07-19 13:14:46 +0000 | [diff] [blame] | 67 | } | 
 | 68 |  |