Home | History | Annotate | Download | only in MCTargetDesc
      1 //===-- PPCMCAsmInfo.cpp - PPC asm properties -----------------------------===//
      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 contains the declarations of the MCAsmInfoDarwin properties.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #include "PPCMCAsmInfo.h"
     15 using namespace llvm;
     16 
     17 void PPCMCAsmInfoDarwin::anchor() { }
     18 
     19 PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit) {
     20   if (is64Bit)
     21     PointerSize = 8;
     22   IsLittleEndian = false;
     23 
     24   PCSymbol = ".";
     25   CommentString = ";";
     26   ExceptionsType = ExceptionHandling::DwarfCFI;
     27 
     28   if (!is64Bit)
     29     Data64bitsDirective = 0;      // We can't emit a 64-bit unit in PPC32 mode.
     30 
     31   AssemblerDialect = 1;           // New-Style mnemonics.
     32   SupportsDebugInformation= true; // Debug information.
     33 }
     34 
     35 void PPCLinuxMCAsmInfo::anchor() { }
     36 
     37 PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit) {
     38   if (is64Bit)
     39     PointerSize = 8;
     40   IsLittleEndian = false;
     41 
     42   // ".comm align is in bytes but .align is pow-2."
     43   AlignmentIsInBytes = false;
     44 
     45   CommentString = "#";
     46   GlobalPrefix = "";
     47   PrivateGlobalPrefix = ".L";
     48   WeakRefDirective = "\t.weak\t";
     49 
     50   // Uses '.section' before '.bss' directive
     51   UsesELFSectionDirectiveForBSS = true;
     52 
     53   // Debug Information
     54   SupportsDebugInformation = true;
     55 
     56   PCSymbol = ".";
     57 
     58   // Set up DWARF directives
     59   HasLEB128 = true;  // Target asm supports leb128 directives (little-endian)
     60 
     61   // Exceptions handling
     62   if (!is64Bit)
     63     ExceptionsType = ExceptionHandling::DwarfCFI;
     64 
     65   ZeroDirective = "\t.space\t";
     66   Data64bitsDirective = is64Bit ? "\t.quad\t" : 0;
     67   LCOMMDirectiveType = LCOMM::NoAlignment;
     68   AssemblerDialect = 0;           // Old-Style mnemonics.
     69 }
     70 
     71