1 //=====-- ARMTargetAsmInfo.h - ARM asm properties -------------*- C++ -*--====//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the declaration of the ARMTargetAsmInfo class.
12 //===----------------------------------------------------------------------===//
14 #ifndef ARMTARGETASMINFO_H
15 #define ARMTARGETASMINFO_H
17 #include "llvm/Target/TargetAsmInfo.h"
18 #include "llvm/Target/ELFTargetAsmInfo.h"
19 #include "llvm/Target/DarwinTargetAsmInfo.h"
21 #include "ARMSubtarget.h"
25 // Forward declaration.
26 class ARMTargetMachine;
28 struct ARMTargetAsmInfo : public virtual TargetAsmInfo {
29 explicit ARMTargetAsmInfo(const ARMTargetMachine &TM);
31 const ARMSubtarget *Subtarget;
33 virtual unsigned getInlineAsmLength(const char *Str) const;
34 unsigned countArguments(const char *p) const;
35 unsigned countString(const char *p) const;
38 struct ARMDarwinTargetAsmInfo : public virtual ARMTargetAsmInfo,
39 public virtual DarwinTargetAsmInfo {
40 explicit ARMDarwinTargetAsmInfo(const ARMTargetMachine &TM);
43 struct ARMELFTargetAsmInfo : public virtual ARMTargetAsmInfo,
44 public virtual ELFTargetAsmInfo {
45 explicit ARMELFTargetAsmInfo(const ARMTargetMachine &TM);