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 20namespace llvm { 21class Triple; 22 23class X86MCAsmInfoDarwin : public MCAsmInfoDarwin { 24 virtual void anchor(); 25 26public: 27 explicit X86MCAsmInfoDarwin(const Triple &Triple); 28}; 29 30struct 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 37class X86ELFMCAsmInfo : public MCAsmInfoELF { 38 void anchor() override; 39 40public: 41 explicit X86ELFMCAsmInfo(const Triple &Triple); 42}; 43 44class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft { 45 void anchor() override; 46 47public: 48 explicit X86MCAsmInfoMicrosoft(const Triple &Triple); 49}; 50 51class X86MCAsmInfoMicrosoftMASM : public X86MCAsmInfoMicrosoft { 52 void anchor() override; 53 54public: 55 explicit X86MCAsmInfoMicrosoftMASM(const Triple &Triple); 56}; 57 58class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 59 void anchor() override; 60 61public: 62 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple); 63}; 64} // namespace llvm 65 66#endif 67