1234353Sdim//===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===// 2224133Sdim// 3224133Sdim// The LLVM Compiler Infrastructure 4224133Sdim// 5224133Sdim// This file is distributed under the University of Illinois Open Source 6224133Sdim// License. See LICENSE.TXT for details. 7224133Sdim// 8224133Sdim//===----------------------------------------------------------------------===// 9224133Sdim// 10224133Sdim// This file contains the declaration of the X86MCAsmInfo class. 11224133Sdim// 12224133Sdim//===----------------------------------------------------------------------===// 13224133Sdim 14224133Sdim#ifndef X86TARGETASMINFO_H 15224133Sdim#define X86TARGETASMINFO_H 16224133Sdim 17224133Sdim#include "llvm/MC/MCAsmInfo.h" 18224133Sdim#include "llvm/MC/MCAsmInfoCOFF.h" 19224133Sdim#include "llvm/MC/MCAsmInfoDarwin.h" 20263508Sdim#include "llvm/MC/MCAsmInfoELF.h" 21224133Sdim 22224133Sdimnamespace llvm { 23224133Sdim class Triple; 24224133Sdim 25234353Sdim class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 26234353Sdim virtual void anchor(); 27234353Sdim public: 28224133Sdim explicit X86MCAsmInfoDarwin(const Triple &Triple); 29224133Sdim }; 30224133Sdim 31224133Sdim struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin { 32224133Sdim explicit X86_64MCAsmInfoDarwin(const Triple &Triple); 33224133Sdim virtual const MCExpr * 34224133Sdim getExprForPersonalitySymbol(const MCSymbol *Sym, 35224133Sdim unsigned Encoding, 36224133Sdim MCStreamer &Streamer) const; 37224133Sdim }; 38224133Sdim 39263508Sdim class X86ELFMCAsmInfo : public MCAsmInfoELF { 40234353Sdim virtual void anchor(); 41234353Sdim public: 42224133Sdim explicit X86ELFMCAsmInfo(const Triple &Triple); 43224133Sdim virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const; 44224133Sdim }; 45224133Sdim 46234353Sdim class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 47234353Sdim virtual void anchor(); 48234353Sdim public: 49234353Sdim explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 50224133Sdim }; 51234353Sdim 52234353Sdim class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 53234353Sdim virtual void anchor(); 54234353Sdim public: 55234353Sdim explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 56234353Sdim }; 57224133Sdim} // namespace llvm 58224133Sdim 59224133Sdim#endif 60