1 //===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file contains the declaration of the X86MCAsmInfo class. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H 14 #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H 15 16 #include "llvm/MC/MCAsmInfoCOFF.h" 17 #include "llvm/MC/MCAsmInfoDarwin.h" 18 #include "llvm/MC/MCAsmInfoELF.h" 19 20 namespace llvm { 21 class Triple; 22 23 class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 24 virtual void anchor(); 25 26 public: 27 explicit X86MCAsmInfoDarwin(const Triple &Triple); 28 }; 29 30 struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin { 31 explicit X86_64MCAsmInfoDarwin(const Triple &Triple); 32 const MCExpr * 33 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, 34 MCStreamer &Streamer) const override; 35 }; 36 37 class X86ELFMCAsmInfo : public MCAsmInfoELF { 38 void anchor() override; 39 40 public: 41 explicit X86ELFMCAsmInfo(const Triple &Triple); 42 }; 43 44 class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 45 void anchor() override; 46 47 public: 48 explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 49 }; 50 51 class X86MCAsmInfoMicrosoftMASM : public X86MCAsmInfoMicrosoft { 52 void anchor() override; 53 54 public: 55 explicit X86MCAsmInfoMicrosoftMASM(const Triple &Triple); 56 }; 57 58 class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 59 void anchor() override; 60 61 public: 62 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 63 }; 64 } // namespace llvm 65 66 #endif 67