1 //===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file contains the declaration of the X86MCAsmInfo class. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H 15 #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H 16 17 #include "llvm/MC/MCAsmInfo.h" 18 #include "llvm/MC/MCAsmInfoCOFF.h" 19 #include "llvm/MC/MCAsmInfoDarwin.h" 20 #include "llvm/MC/MCAsmInfoELF.h" 21 22 namespace llvm { 23 class Triple; 24 25 class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 26 virtual void anchor(); 27 28 public: 29 explicit X86MCAsmInfoDarwin(const Triple &Triple); 30 }; 31 32 struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin { 33 explicit X86_64MCAsmInfoDarwin(const Triple &Triple); 34 const MCExpr * 35 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, 36 MCStreamer &Streamer) const override; 37 }; 38 39 class X86ELFMCAsmInfo : public MCAsmInfoELF { 40 void anchor() override; 41 42 public: 43 explicit X86ELFMCAsmInfo(const Triple &Triple); 44 }; 45 46 class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 47 void anchor() override; 48 49 public: 50 explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 51 }; 52 53 class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 54 void anchor() override; 55 56 public: 57 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 58 }; 59 } // namespace llvm 60 61 #endif 62