blob: 6c7f752cfd28ddd58f9bf12fc1b7b183368c65cc [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 Data64bitsDirective = 0;
57 CommentString = "@";
Rafael Espindolaf166ed72010-01-25 02:27:39 +000058
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000059 NeedsSet = false;
60 HasLEB128 = true;
61 AbsoluteDebugSectionOffsets = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000062 PrivateGlobalPrefix = ".L";
63 WeakRefDirective = "\t.weak\t";
64 SetDirective = "\t.set\t";
Chris Lattner9eb158d2010-01-23 07:47:02 +000065 HasLCOMMDirective = true;
Chris Lattnerc89ecc52009-08-11 22:06:07 +000066
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000067 DwarfRequiresFrameSection = false;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000068
Devang Patel14a55d92009-06-19 21:54:26 +000069 SupportsDebugInformation = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000070}