blob: b37aee804ac20a000c5d3803e79b2e9182886f61 [file] [log] [blame]
Shih-wei Liaoe264f622010-02-10 11:10:31 -08001//===-- PPCMCAsmInfo.cpp - PPC 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 contains the declarations of the MCAsmInfoDarwin properties.
11//
12//===----------------------------------------------------------------------===//
13
14#include "PPCMCAsmInfo.h"
15using namespace llvm;
16
17PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit) {
18 PCSymbol = ".";
19 CommentString = ";";
20 ExceptionsType = ExceptionHandling::Dwarf;
21
22 if (!is64Bit)
23 Data64bitsDirective = 0; // We can't emit a 64-bit unit in PPC32 mode.
24 AssemblerDialect = 1; // New-Style mnemonics.
25 SupportsDebugInformation= true; // Debug information.
26}
27
28PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit) {
29 // ".comm align is in bytes but .align is pow-2."
30 AlignmentIsInBytes = false;
31
32 CommentString = "#";
33 GlobalPrefix = "";
34 PrivateGlobalPrefix = ".L";
35 WeakRefDirective = "\t.weak\t";
36
37 // Uses '.section' before '.bss' directive
38 UsesELFSectionDirectiveForBSS = true;
39
40 // Debug Information
41 AbsoluteDebugSectionOffsets = true;
42 SupportsDebugInformation = true;
43
44 PCSymbol = ".";
45
46 // Set up DWARF directives
47 HasLEB128 = true; // Target asm supports leb128 directives (little-endian)
48
49 // Exceptions handling
50 if (!is64Bit)
51 ExceptionsType = ExceptionHandling::Dwarf;
52 AbsoluteEHSectionOffsets = false;
53
54 ZeroDirective = "\t.space\t";
55 Data64bitsDirective = is64Bit ? "\t.quad\t" : 0;
56 HasLCOMMDirective = true;
57 AssemblerDialect = 0; // Old-Style mnemonics.
58}
59