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