X86MCAsmInfo.h revision 261991
190075Sobrien//===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===// 290075Sobrien// 390075Sobrien// The LLVM Compiler Infrastructure 490075Sobrien// 590075Sobrien// This file is distributed under the University of Illinois Open Source 690075Sobrien// License. See LICENSE.TXT for details. 790075Sobrien// 890075Sobrien//===----------------------------------------------------------------------===// 990075Sobrien// 1090075Sobrien// This file contains the declaration of the X86MCAsmInfo class. 1190075Sobrien// 1290075Sobrien//===----------------------------------------------------------------------===// 1390075Sobrien 1490075Sobrien#ifndef X86TARGETASMINFO_H 1590075Sobrien#define X86TARGETASMINFO_H 1690075Sobrien 1790075Sobrien#include "llvm/MC/MCAsmInfo.h" 1890075Sobrien#include "llvm/MC/MCAsmInfoCOFF.h" 1990075Sobrien#include "llvm/MC/MCAsmInfoDarwin.h" 2090075Sobrien#include "llvm/MC/MCAsmInfoELF.h" 2190075Sobrien 2290075Sobriennamespace llvm { 2390075Sobrien class Triple; 2490075Sobrien 2590075Sobrien class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 2690075Sobrien virtual void anchor(); 2790075Sobrien public: 2890075Sobrien explicit X86MCAsmInfoDarwin(const Triple &Triple); 2990075Sobrien }; 3090075Sobrien 3190075Sobrien struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin { 3290075Sobrien explicit X86_64MCAsmInfoDarwin(const Triple &Triple); 3390075Sobrien virtual const MCExpr * 3490075Sobrien getExprForPersonalitySymbol(const MCSymbol *Sym, 3590075Sobrien unsigned Encoding, 3690075Sobrien MCStreamer &Streamer) const; 3790075Sobrien }; 3890075Sobrien 3990075Sobrien class X86ELFMCAsmInfo : public MCAsmInfoELF { 4090075Sobrien virtual void anchor(); 4190075Sobrien public: 4290075Sobrien explicit X86ELFMCAsmInfo(const Triple &Triple); 4390075Sobrien virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const; 4490075Sobrien }; 4590075Sobrien 4690075Sobrien class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 4790075Sobrien virtual void anchor(); 4890075Sobrien public: 4990075Sobrien explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 5090075Sobrien }; 5190075Sobrien 5290075Sobrien class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 5390075Sobrien virtual void anchor(); 5490075Sobrien public: 5590075Sobrien explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 5690075Sobrien }; 5790075Sobrien} // namespace llvm 5890075Sobrien 5990075Sobrien#endif 6090075Sobrien