blob: ccd6addd82bea01f10b33f5ecd4e6544fb1e245e [file] [log] [blame]
Shih-wei Liaoe264f622010-02-10 11:10:31 -08001//===-- ARMMCAsmInfo.cpp - ARM 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 ARMMCAsmInfo properties.
11//
12//===----------------------------------------------------------------------===//
13
14#include "ARMMCAsmInfo.h"
15using namespace llvm;
16
17static const char *const arm_asm_table[] = {
18 "{r0}", "r0",
19 "{r1}", "r1",
20 "{r2}", "r2",
21 "{r3}", "r3",
22 "{r4}", "r4",
23 "{r5}", "r5",
24 "{r6}", "r6",
25 "{r7}", "r7",
26 "{r8}", "r8",
27 "{r9}", "r9",
28 "{r10}", "r10",
29 "{r11}", "r11",
30 "{r12}", "r12",
31 "{r13}", "r13",
32 "{r14}", "r14",
33 "{lr}", "lr",
34 "{sp}", "sp",
35 "{ip}", "ip",
36 "{fp}", "fp",
37 "{sl}", "sl",
38 "{memory}", "memory",
39 "{cc}", "cc",
40 0,0
41};
42
43ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() {
44 AsmTransCBE = arm_asm_table;
45 Data64bitsDirective = 0;
46 CommentString = "@";
47 SupportsDebugInformation = true;
48
49 // Exceptions handling
50 ExceptionsType = ExceptionHandling::SjLj;
51 AbsoluteEHSectionOffsets = false;
52}
53
54ARMELFMCAsmInfo::ARMELFMCAsmInfo() {
55 // ".comm align is in bytes but .align is pow-2."
56 AlignmentIsInBytes = false;
57
58 Data64bitsDirective = 0;
59 CommentString = "@";
60
61 HasLEB128 = true;
62 AbsoluteDebugSectionOffsets = true;
63 PrivateGlobalPrefix = ".L";
64 WeakRefDirective = "\t.weak\t";
65 HasLCOMMDirective = true;
66
67 DwarfRequiresFrameSection = false;
68
69 SupportsDebugInformation = true;
70}