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 LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H 00015 #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H 00016 00017 #include "llvm/MC/MCAsmInfo.h" 00018 #include "llvm/MC/MCAsmInfoCOFF.h" 00019 #include "llvm/MC/MCAsmInfoDarwin.h" 00020 #include "llvm/MC/MCAsmInfoELF.h" 00021 00022 namespace llvm { 00023 class Triple; 00024 00025 class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 00026 void anchor() override; 00027 public: 00028 explicit X86MCAsmInfoDarwin(const Triple &Triple); 00029 }; 00030 00031 struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin { 00032 explicit X86_64MCAsmInfoDarwin(const Triple &Triple); 00033 const MCExpr * 00034 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, 00035 MCStreamer &Streamer) const override; 00036 }; 00037 00038 class X86ELFMCAsmInfo : public MCAsmInfoELF { 00039 void anchor() override; 00040 public: 00041 explicit X86ELFMCAsmInfo(const Triple &Triple); 00042 const MCSection * 00043 getNonexecutableStackSection(MCContext &Ctx) const override; 00044 }; 00045 00046 class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 00047 void anchor() override; 00048 public: 00049 explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 00050 }; 00051 00052 class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 00053 void anchor() override; 00054 public: 00055 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 00056 }; 00057 } // namespace llvm 00058 00059 #endif