blob: 0ff65d2af88b86002430662ca01aa2ec5717348a [file] [log] [blame]
Chris Lattneraf76e592009-08-22 20:48:53 +00001//===-- ARMMCAsmInfo.cpp - ARM asm properties -------------------*- C++ -*-===//
Jim Laskey8e8de8f2006-09-07 22:05:02 +00002//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner4ee451d2007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Jim Laskey8e8de8f2006-09-07 22:05:02 +00007//
8//===----------------------------------------------------------------------===//
9//
Chris Lattneraf76e592009-08-22 20:48:53 +000010// This file contains the declarations of the ARMMCAsmInfo properties.
Jim Laskey8e8de8f2006-09-07 22:05:02 +000011//
12//===----------------------------------------------------------------------===//
13
Chris Lattneraf76e592009-08-22 20:48:53 +000014#include "ARMMCAsmInfo.h"
Jim Laskey8e8de8f2006-09-07 22:05:02 +000015using namespace llvm;
16
Chris Lattner5f28ffe2009-08-11 22:14:59 +000017static const char *const arm_asm_table[] = {
Chris Lattnera93ca922009-06-18 23:41:35 +000018 "{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};
Lauro Ramos Venancio61718a62007-06-08 21:06:23 +000042
Chris Lattner8eeba352010-01-20 06:34:14 +000043ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() {
Chris Lattner5f28ffe2009-08-11 22:14:59 +000044 AsmTransCBE = arm_asm_table;
Chris Lattner5f28ffe2009-08-11 22:14:59 +000045 Data64bitsDirective = 0;
46 CommentString = "@";
47 COMMDirectiveTakesAlignment = false;
Devang Patel14a55d92009-06-19 21:54:26 +000048 SupportsDebugInformation = true;
Jim Grosbach1b747ad2009-08-11 00:09:57 +000049
50 // Exceptions handling
51 ExceptionsType = ExceptionHandling::SjLj;
Jim Grosbach1b747ad2009-08-11 00:09:57 +000052 AbsoluteEHSectionOffsets = false;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000053}
54
Chris Lattner8eeba352010-01-20 06:34:14 +000055ARMELFMCAsmInfo::ARMELFMCAsmInfo() {
Chris Lattner5f28ffe2009-08-11 22:14:59 +000056 AlignmentIsInBytes = false;
57 Data64bitsDirective = 0;
58 CommentString = "@";
59 COMMDirectiveTakesAlignment = false;
Chris Lattner5f28ffe2009-08-11 22:14:59 +000060
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000061 NeedsSet = false;
62 HasLEB128 = true;
63 AbsoluteDebugSectionOffsets = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000064 PrivateGlobalPrefix = ".L";
65 WeakRefDirective = "\t.weak\t";
66 SetDirective = "\t.set\t";
Chris Lattnerc89ecc52009-08-11 22:06:07 +000067 LCOMMDirective = "\t.lcomm\t";
68
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000069 DwarfRequiresFrameSection = false;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000070
Devang Patel14a55d92009-06-19 21:54:26 +000071 SupportsDebugInformation = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000072}