blob: 9030d065bd60fae39ef6d8e7f030c11575a57e0a [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001//=====-- ARMTargetAsmInfo.h - ARM asm properties -------------*- C++ -*--====//
2//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner081ce942007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the declaration of the ARMTargetAsmInfo class.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef ARMTARGETASMINFO_H
15#define ARMTARGETASMINFO_H
16
17#include "llvm/Target/TargetAsmInfo.h"
Anton Korobeynikov3cc6efa2008-08-07 09:54:23 +000018#include "llvm/Target/ELFTargetAsmInfo.h"
19#include "llvm/Target/DarwinTargetAsmInfo.h"
Evan Chenge0f20832008-09-25 07:38:08 +000020
21#include "ARMSubtarget.h"
Dan Gohmanf17a25c2007-07-18 16:29:46 +000022
23namespace llvm {
24
Evan Chenge0f20832008-09-25 07:38:08 +000025 // Forward declaration.
26 class ARMTargetMachine;
Dan Gohmanf17a25c2007-07-18 16:29:46 +000027
Evan Chenge0f20832008-09-25 07:38:08 +000028 struct ARMTargetAsmInfo : public virtual TargetAsmInfo {
29 explicit ARMTargetAsmInfo(const ARMTargetMachine &TM);
Dan Gohmanf17a25c2007-07-18 16:29:46 +000030
31 const ARMSubtarget *Subtarget;
32
33 virtual unsigned getInlineAsmLength(const char *Str) const;
34 unsigned countArguments(const char *p) const;
35 unsigned countString(const char *p) const;
36 };
37
Evan Chenge0f20832008-09-25 07:38:08 +000038 struct ARMDarwinTargetAsmInfo : public virtual ARMTargetAsmInfo,
39 public virtual DarwinTargetAsmInfo {
Anton Korobeynikov3cc6efa2008-08-07 09:54:23 +000040 explicit ARMDarwinTargetAsmInfo(const ARMTargetMachine &TM);
41 };
42
Evan Chenge0f20832008-09-25 07:38:08 +000043 struct ARMELFTargetAsmInfo : public virtual ARMTargetAsmInfo,
44 public virtual ELFTargetAsmInfo {
Anton Korobeynikov3cc6efa2008-08-07 09:54:23 +000045 explicit ARMELFTargetAsmInfo(const ARMTargetMachine &TM);
46 };
Dan Gohmanf17a25c2007-07-18 16:29:46 +000047
48} // namespace llvm
49
50#endif