X86MCAsmInfo.h revision 263508
1272343Sngie//===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===//
2272343Sngie//
3272343Sngie//                     The LLVM Compiler Infrastructure
4272343Sngie//
5272343Sngie// This file is distributed under the University of Illinois Open Source
6272343Sngie// License. See LICENSE.TXT for details.
7272343Sngie//
8272343Sngie//===----------------------------------------------------------------------===//
9272343Sngie//
10272343Sngie// This file contains the declaration of the X86MCAsmInfo class.
11272343Sngie//
12272343Sngie//===----------------------------------------------------------------------===//
13272343Sngie
14272343Sngie#ifndef X86TARGETASMINFO_H
15272343Sngie#define X86TARGETASMINFO_H
16272343Sngie
17272343Sngie#include "llvm/MC/MCAsmInfo.h"
18272343Sngie#include "llvm/MC/MCAsmInfoCOFF.h"
19272343Sngie#include "llvm/MC/MCAsmInfoDarwin.h"
20272343Sngie#include "llvm/MC/MCAsmInfoELF.h"
21272343Sngie
22272343Sngienamespace llvm {
23272343Sngie  class Triple;
24272343Sngie
25272343Sngie  class X86MCAsmInfoDarwin : public MCAsmInfoDarwin {
26272343Sngie    virtual void anchor();
27272343Sngie  public:
28272343Sngie    explicit X86MCAsmInfoDarwin(const Triple &Triple);
29272343Sngie  };
30272343Sngie
31272343Sngie  struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin {
32272343Sngie    explicit X86_64MCAsmInfoDarwin(const Triple &Triple);
33272343Sngie    virtual const MCExpr *
34272343Sngie    getExprForPersonalitySymbol(const MCSymbol *Sym,
35272343Sngie                                unsigned Encoding,
36272343Sngie                                MCStreamer &Streamer) const;
37272343Sngie  };
38272343Sngie
39272343Sngie  class X86ELFMCAsmInfo : public MCAsmInfoELF {
40272343Sngie    virtual void anchor();
41272343Sngie  public:
42272343Sngie    explicit X86ELFMCAsmInfo(const Triple &Triple);
43272343Sngie    virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const;
44272343Sngie  };
45272343Sngie
46272343Sngie  class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft {
47272343Sngie    virtual void anchor();
48272343Sngie  public:
49272343Sngie    explicit X86MCAsmInfoMicrosoft(const Triple &Triple);
50272343Sngie  };
51272343Sngie
52272343Sngie  class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF {
53272343Sngie    virtual void anchor();
54272343Sngie  public:
55272343Sngie    explicit X86MCAsmInfoGNUCOFF(const Triple &Triple);
56272343Sngie  };
57272343Sngie} // namespace llvm
58272343Sngie
59272343Sngie#endif
60272343Sngie