enhance codegen to put 16-bit character strings into the
[oota-llvm.git] / lib / Target / ARM / ARMTargetAsmInfo.h
1 //=====-- ARMTargetAsmInfo.h - ARM asm properties -------------*- C++ -*--====//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file contains the declaration of the ARMTargetAsmInfo class.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_ARMTARGETASMINFO_H
15 #define LLVM_ARMTARGETASMINFO_H
16
17 #include "llvm/Target/DarwinTargetAsmInfo.h"
18 #include "llvm/Support/Compiler.h"
19
20 namespace llvm {
21
22   extern const char *const arm_asm_table[];
23
24   template <class BaseTAI>
25   struct ARMTargetAsmInfo : public BaseTAI {
26     explicit ARMTargetAsmInfo() {
27       BaseTAI::AsmTransCBE = arm_asm_table;
28
29       BaseTAI::AlignmentIsInBytes = false;
30       BaseTAI::Data64bitsDirective = 0;
31       BaseTAI::CommentString = "@";
32       BaseTAI::COMMDirectiveTakesAlignment = false;
33       BaseTAI::InlineAsmStart = "@ InlineAsm Start";
34       BaseTAI::InlineAsmEnd = "@ InlineAsm End";
35       BaseTAI::LCOMMDirective = "\t.lcomm\t";
36     }
37   };
38
39   EXTERN_TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<DarwinTargetAsmInfo>);
40   EXTERN_TEMPLATE_INSTANTIATION(class ARMTargetAsmInfo<TargetAsmInfo>);
41
42   struct ARMDarwinTargetAsmInfo : public ARMTargetAsmInfo<DarwinTargetAsmInfo> {
43     explicit ARMDarwinTargetAsmInfo();
44   };
45
46   struct ARMELFTargetAsmInfo : public ARMTargetAsmInfo<TargetAsmInfo> {
47     explicit ARMELFTargetAsmInfo();
48   };
49
50 } // namespace llvm
51
52 #endif