blob: 3ff777c73d34b0e941b2901d570a3cfdcf668ba7 [file] [log] [blame]
Jim Laskey8e8de8f2006-09-07 22:05:02 +00001//===-- ARMTargetAsmInfo.cpp - ARM asm properties ---------------*- C++ -*-===//
2//
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//
10// This file contains the declarations of the ARMTargetAsmInfo properties.
11//
12//===----------------------------------------------------------------------===//
13
14#include "ARMTargetAsmInfo.h"
Jim Laskey8e8de8f2006-09-07 22:05:02 +000015using namespace llvm;
16
Anton Korobeynikov32b952a2008-09-25 21:00:33 +000017const char *const llvm::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 Lattner24def372009-08-02 05:23:52 +000043ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo() {
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000044 ZeroDirective = "\t.space\t";
45 ZeroFillDirective = "\t.zerofill\t"; // Uses .zerofill
46 SetDirective = "\t.set\t";
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000047 ProtectedDirective = NULL;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000048 HasDotTypeDotSizeDirective = false;
Devang Patel14a55d92009-06-19 21:54:26 +000049 SupportsDebugInformation = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000050}
51
Chris Lattner24def372009-08-02 05:23:52 +000052ARMELFTargetAsmInfo::ARMELFTargetAsmInfo() {
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000053 NeedsSet = false;
54 HasLEB128 = true;
55 AbsoluteDebugSectionOffsets = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000056 PrivateGlobalPrefix = ".L";
57 WeakRefDirective = "\t.weak\t";
58 SetDirective = "\t.set\t";
59 DwarfRequiresFrameSection = false;
60 DwarfAbbrevSection = "\t.section\t.debug_abbrev,\"\",%progbits";
61 DwarfInfoSection = "\t.section\t.debug_info,\"\",%progbits";
62 DwarfLineSection = "\t.section\t.debug_line,\"\",%progbits";
63 DwarfFrameSection = "\t.section\t.debug_frame,\"\",%progbits";
64 DwarfPubNamesSection ="\t.section\t.debug_pubnames,\"\",%progbits";
65 DwarfPubTypesSection ="\t.section\t.debug_pubtypes,\"\",%progbits";
66 DwarfStrSection = "\t.section\t.debug_str,\"\",%progbits";
67 DwarfLocSection = "\t.section\t.debug_loc,\"\",%progbits";
68 DwarfARangesSection = "\t.section\t.debug_aranges,\"\",%progbits";
69 DwarfRangesSection = "\t.section\t.debug_ranges,\"\",%progbits";
Chris Lattnerb839c3f2009-06-18 23:31:37 +000070 DwarfMacroInfoSection = "\t.section\t.debug_macinfo,\"\",%progbits";
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000071
Devang Patel14a55d92009-06-19 21:54:26 +000072 SupportsDebugInformation = true;
Anton Korobeynikov0f3cc652008-08-07 09:54:23 +000073}
74
Anton Korobeynikov6381a132008-10-05 08:53:29 +000075// Instantiate default implementation.
Chris Lattner24def372009-08-02 05:23:52 +000076TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<DarwinTargetAsmInfo>);
Anton Korobeynikov6381a132008-10-05 08:53:29 +000077TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<TargetAsmInfo>);