//===-- PPCTargetAsmInfo.cpp - PPC asm properties ---------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file contains the declarations of the DarwinTargetAsmInfo properties. // //===----------------------------------------------------------------------===// #include "PPCTargetAsmInfo.h" #include "PPCTargetMachine.h" #include "llvm/Function.h" #include "llvm/Support/Dwarf.h" using namespace llvm; using namespace llvm::dwarf; PPCDarwinTargetAsmInfo::PPCDarwinTargetAsmInfo(const PPCTargetMachine &TM) : PPCTargetAsmInfo(TM) { PCSymbol = "."; CommentString = ";"; UsedDirective = "\t.no_dead_strip\t"; SupportsExceptionHandling = true; GlobalEHDirective = "\t.globl\t"; SupportsWeakOmittedEHFrame = false; } PPCLinuxTargetAsmInfo::PPCLinuxTargetAsmInfo(const PPCTargetMachine &TM) : PPCTargetAsmInfo(TM) { CommentString = "#"; GlobalPrefix = ""; PrivateGlobalPrefix = ".L"; UsedDirective = "\t# .no_dead_strip\t"; WeakRefDirective = "\t.weak\t"; // Debug Information AbsoluteDebugSectionOffsets = true; SupportsDebugInformation = true; PCSymbol = "."; // Set up DWARF directives HasLEB128 = true; // Target asm supports leb128 directives (little-endian) // Exceptions handling if (!TM.getSubtargetImpl()->isPPC64()) SupportsExceptionHandling = true; AbsoluteEHSectionOffsets = false; } // Instantiate default implementation. TEMPLATE_INSTANTIATION(class PPCTargetAsmInfo);