LLVM API Documentation
00001 //===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file contains the declaration of the X86MCAsmInfo class. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef X86TARGETASMINFO_H 00015 #define X86TARGETASMINFO_H 00016 00017 #include "llvm/MC/MCAsmInfo.h" 00018 #include "llvm/MC/MCAsmInfoCOFF.h" 00019 #include "llvm/MC/MCAsmInfoDarwin.h" 00020 00021 namespace llvm { 00022 class Triple; 00023 00024 class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 00025 virtual void anchor(); 00026 public: 00027 explicit X86MCAsmInfoDarwin(const Triple &Triple); 00028 }; 00029 00030 struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin { 00031 explicit X86_64MCAsmInfoDarwin(const Triple &Triple); 00032 virtual const MCExpr * 00033 getExprForPersonalitySymbol(const MCSymbol *Sym, 00034 unsigned Encoding, 00035 MCStreamer &Streamer) const; 00036 }; 00037 00038 class X86ELFMCAsmInfo : public MCAsmInfo { 00039 virtual void anchor(); 00040 public: 00041 explicit X86ELFMCAsmInfo(const Triple &Triple); 00042 virtual const MCSection *getNonexecutableStackSection(MCContext &Ctx) const; 00043 }; 00044 00045 class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 00046 virtual void anchor(); 00047 public: 00048 explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 00049 }; 00050 00051 class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 00052 virtual void anchor(); 00053 public: 00054 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 00055 }; 00056 } // namespace llvm 00057 00058 #endif