ARMMCAsmInfo.cpp revision 224133
174462Salfred//===-- ARMMCAsmInfo.cpp - ARM asm properties -------------------*- C++ -*-===// 274462Salfred// 3261046Smav// The LLVM Compiler Infrastructure 4261046Smav// 5261046Smav// This file is distributed under the University of Illinois Open Source 6261046Smav// License. See LICENSE.TXT for details. 7261046Smav// 8261046Smav//===----------------------------------------------------------------------===// 9261046Smav// 10261046Smav// This file contains the declarations of the ARMMCAsmInfo properties. 11261046Smav// 12261046Smav//===----------------------------------------------------------------------===// 13261046Smav 14261046Smav#include "ARMMCAsmInfo.h" 15261046Smav#include "llvm/Support/CommandLine.h" 16261046Smav 1774462Salfredusing namespace llvm; 18261046Smav 19261046Smavcl::opt<bool> 20261046SmavEnableARMEHABI("arm-enable-ehabi", cl::Hidden, 21261046Smav cl::desc("Generate ARM EHABI tables"), 22261046Smav cl::init(false)); 23261046Smav 24261046Smav 25261046Smavstatic const char *const arm_asm_table[] = { 26261046Smav "{r0}", "r0", 27261046Smav "{r1}", "r1", 28261046Smav "{r2}", "r2", 2974462Salfred "{r3}", "r3", 3074462Salfred "{r4}", "r4", 3174462Salfred "{r5}", "r5", 32136581Sobrien "{r6}", "r6", 3374462Salfred "{r7}", "r7", 34136581Sobrien "{r8}", "r8", 3574462Salfred "{r9}", "r9", 3692990Sobrien "{r10}", "r10", 3792990Sobrien "{r11}", "r11", 3874462Salfred "{r12}", "r12", 3974462Salfred "{r13}", "r13", 4074462Salfred "{r14}", "r14", 4174462Salfred "{lr}", "lr", 4274462Salfred "{sp}", "sp", 4374462Salfred "{ip}", "ip", 4474462Salfred "{fp}", "fp", 4574462Salfred "{sl}", "sl", 4674462Salfred "{memory}", "memory", 4774462Salfred "{cc}", "cc", 4874462Salfred 0,0 4974462Salfred}; 5074462Salfred 5174462SalfredARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() { 5274462Salfred AsmTransCBE = arm_asm_table; 5374462Salfred Data64bitsDirective = 0; 5474462Salfred CommentString = "@"; 5574462Salfred SupportsDebugInformation = true; 5674462Salfred 5774462Salfred // Exceptions handling 5875094Siedowse ExceptionsType = ExceptionHandling::SjLj; 5974462Salfred} 6074462Salfred 6174462SalfredARMELFMCAsmInfo::ARMELFMCAsmInfo() { 6274462Salfred // ".comm align is in bytes but .align is pow-2." 6374462Salfred AlignmentIsInBytes = false; 6474462Salfred 6574462Salfred Data64bitsDirective = 0; 6674462Salfred CommentString = "@"; 6790868Smike 6874462Salfred HasLEB128 = true; 6974462Salfred PrivateGlobalPrefix = ".L"; 7074462Salfred WeakRefDirective = "\t.weak\t"; 7174462Salfred HasLCOMMDirective = true; 7274462Salfred 7374462Salfred SupportsDebugInformation = true; 7474462Salfred 7574462Salfred // Exceptions handling 7674462Salfred if (EnableARMEHABI) 7774462Salfred ExceptionsType = ExceptionHandling::ARM; 7874462Salfred} 79181344Sdfr