X86MCAsmInfo.h revision 263508
1//===-- X86MCAsmInfo.h - X86 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 X86MCAsmInfo class.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef X86TARGETASMINFO_H
15#define X86TARGETASMINFO_H
16
17#include "llvm/MC/MCAsmInfo.h"
18#include "llvm/MC/MCAsmInfoCOFF.h"
19#include "llvm/MC/MCAsmInfoDarwin.h"
20#include "llvm/MC/MCAsmInfoELF.h"
21
22namespace llvm {
23  class Triple;
24
25  class X86MCAsmInfoDarwin : public MCAsmInfoDarwin {
26    virtual void anchor();
27  public:
28    explicit X86MCAsmInfoDarwin(const Triple &Triple);
29  };
30
31  struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin {
32    explicit X86_64MCAsmInfoDarwin(const Triple &Triple);
33    virtual const MCExpr *
34    getExprForPersonalitySymbol(const MCSymbol *Sym,
35                                unsigned Encoding,
36                                MCStreamer &Streamer) const;
37  };
38
39  class X86ELFMCAsmInfo : public MCAsmInfoELF {
40    virtual void anchor();
41  public:
42    explicit X86ELFMCAsmInfo(const Triple &Triple);
43    virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const;
44  };
45
46  class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft {
47    virtual void anchor();
48  public:
49    explicit X86MCAsmInfoMicrosoft(const Triple &Triple);
50  };
51
52  class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF {
53    virtual void anchor();
54  public:
55    explicit X86MCAsmInfoGNUCOFF(const Triple &Triple);
56  };
57} // namespace llvm
58
59#endif
60