2006-09-07 22:05:02 +00:00
|
|
|
//===-- ARMTargetAsmInfo.cpp - ARM asm properties ---------------*- C++ -*-===//
|
|
|
|
//
|
|
|
|
// The LLVM Compiler Infrastructure
|
|
|
|
//
|
2007-12-29 20:36:04 +00:00
|
|
|
// This file is distributed under the University of Illinois Open Source
|
|
|
|
// License. See LICENSE.TXT for details.
|
2006-09-07 22:05:02 +00:00
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// This file contains the declarations of the ARMTargetAsmInfo properties.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
#include "ARMTargetAsmInfo.h"
|
2007-01-19 07:51:42 +00:00
|
|
|
#include "ARMTargetMachine.h"
|
2007-04-23 20:04:35 +00:00
|
|
|
#include <cstring>
|
|
|
|
#include <cctype>
|
2006-09-07 22:05:02 +00:00
|
|
|
using namespace llvm;
|
|
|
|
|
2008-09-25 21:00:33 +00:00
|
|
|
const char *const llvm::arm_asm_table[] = {
|
2009-06-18 23:41:35 +00:00
|
|
|
"{r0}", "r0",
|
|
|
|
"{r1}", "r1",
|
|
|
|
"{r2}", "r2",
|
|
|
|
"{r3}", "r3",
|
|
|
|
"{r4}", "r4",
|
|
|
|
"{r5}", "r5",
|
|
|
|
"{r6}", "r6",
|
|
|
|
"{r7}", "r7",
|
|
|
|
"{r8}", "r8",
|
|
|
|
"{r9}", "r9",
|
|
|
|
"{r10}", "r10",
|
|
|
|
"{r11}", "r11",
|
|
|
|
"{r12}", "r12",
|
|
|
|
"{r13}", "r13",
|
|
|
|
"{r14}", "r14",
|
|
|
|
"{lr}", "lr",
|
|
|
|
"{sp}", "sp",
|
|
|
|
"{ip}", "ip",
|
|
|
|
"{fp}", "fp",
|
|
|
|
"{sl}", "sl",
|
|
|
|
"{memory}", "memory",
|
|
|
|
"{cc}", "cc",
|
|
|
|
0,0
|
|
|
|
};
|
2007-06-08 21:06:23 +00:00
|
|
|
|
2009-06-26 21:28:53 +00:00
|
|
|
ARMDarwinTargetAsmInfo::ARMDarwinTargetAsmInfo(const ARMBaseTargetMachine &TM):
|
2008-09-25 21:00:33 +00:00
|
|
|
ARMTargetAsmInfo<DarwinTargetAsmInfo>(TM) {
|
2008-11-03 18:22:42 +00:00
|
|
|
Subtarget = &TM.getSubtarget<ARMSubtarget>();
|
2008-08-07 09:54:23 +00:00
|
|
|
|
|
|
|
ZeroDirective = "\t.space\t";
|
|
|
|
ZeroFillDirective = "\t.zerofill\t"; // Uses .zerofill
|
|
|
|
SetDirective = "\t.set\t";
|
|
|
|
ProtectedDirective = NULL;
|
|
|
|
HasDotTypeDotSizeDirective = false;
|
2009-06-19 21:54:26 +00:00
|
|
|
SupportsDebugInformation = true;
|
2008-08-07 09:54:23 +00:00
|
|
|
}
|
|
|
|
|
2009-06-26 21:28:53 +00:00
|
|
|
ARMELFTargetAsmInfo::ARMELFTargetAsmInfo(const ARMBaseTargetMachine &TM):
|
2009-08-02 04:27:24 +00:00
|
|
|
ARMTargetAsmInfo<TargetAsmInfo>(TM) {
|
2008-11-03 18:22:42 +00:00
|
|
|
Subtarget = &TM.getSubtarget<ARMSubtarget>();
|
2008-08-07 09:54:23 +00:00
|
|
|
|
|
|
|
NeedsSet = false;
|
|
|
|
HasLEB128 = true;
|
|
|
|
AbsoluteDebugSectionOffsets = true;
|
|
|
|
PrivateGlobalPrefix = ".L";
|
|
|
|
WeakRefDirective = "\t.weak\t";
|
|
|
|
SetDirective = "\t.set\t";
|
|
|
|
DwarfRequiresFrameSection = false;
|
|
|
|
DwarfAbbrevSection = "\t.section\t.debug_abbrev,\"\",%progbits";
|
|
|
|
DwarfInfoSection = "\t.section\t.debug_info,\"\",%progbits";
|
|
|
|
DwarfLineSection = "\t.section\t.debug_line,\"\",%progbits";
|
|
|
|
DwarfFrameSection = "\t.section\t.debug_frame,\"\",%progbits";
|
|
|
|
DwarfPubNamesSection ="\t.section\t.debug_pubnames,\"\",%progbits";
|
|
|
|
DwarfPubTypesSection ="\t.section\t.debug_pubtypes,\"\",%progbits";
|
|
|
|
DwarfStrSection = "\t.section\t.debug_str,\"\",%progbits";
|
|
|
|
DwarfLocSection = "\t.section\t.debug_loc,\"\",%progbits";
|
|
|
|
DwarfARangesSection = "\t.section\t.debug_aranges,\"\",%progbits";
|
|
|
|
DwarfRangesSection = "\t.section\t.debug_ranges,\"\",%progbits";
|
2009-06-18 23:31:37 +00:00
|
|
|
DwarfMacroInfoSection = "\t.section\t.debug_macinfo,\"\",%progbits";
|
2008-08-07 09:54:23 +00:00
|
|
|
|
2009-06-19 21:54:26 +00:00
|
|
|
SupportsDebugInformation = true;
|
2008-08-07 09:54:23 +00:00
|
|
|
}
|
|
|
|
|
2008-10-05 08:53:29 +00:00
|
|
|
// Instantiate default implementation.
|
|
|
|
TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<TargetAsmInfo>);
|