blob: f2f06c358bf7704792f5297b523a07d49fe6a738 [file] [log] [blame]
Jia Liub22310f2012-02-18 12:03:15 +00001//===-- X86MCAsmInfo.h - X86 asm properties --------------------*- C++ -*--===//
Chris Lattner7b26fce2009-08-22 20:48:53 +00002//
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
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000014#ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H
15#define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCASMINFO_H
Chris Lattner7b26fce2009-08-22 20:48:53 +000016
17#include "llvm/MC/MCAsmInfo.h"
18#include "llvm/MC/MCAsmInfoCOFF.h"
19#include "llvm/MC/MCAsmInfoDarwin.h"
Rafael Espindola43c4e242013-10-16 01:34:32 +000020#include "llvm/MC/MCAsmInfoELF.h"
Chris Lattner7b26fce2009-08-22 20:48:53 +000021
22namespace llvm {
23 class Triple;
24
David Blaikiea379b1812011-12-20 02:50:00 +000025 class X86MCAsmInfoDarwin : public MCAsmInfoDarwin {
Craig Topper39012cc2014-03-09 18:03:14 +000026 void anchor() override;
David Blaikiea379b1812011-12-20 02:50:00 +000027 public:
Chris Lattner05457462009-08-22 21:03:30 +000028 explicit X86MCAsmInfoDarwin(const Triple &Triple);
Chris Lattner7b26fce2009-08-22 20:48:53 +000029 };
30
Rafael Espindolac5dac4d2011-04-28 16:09:09 +000031 struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin {
32 explicit X86_64MCAsmInfoDarwin(const Triple &Triple);
Craig Topper39012cc2014-03-09 18:03:14 +000033 const MCExpr *
34 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding,
35 MCStreamer &Streamer) const override;
Rafael Espindolac5dac4d2011-04-28 16:09:09 +000036 };
37
Rafael Espindola43c4e242013-10-16 01:34:32 +000038 class X86ELFMCAsmInfo : public MCAsmInfoELF {
Craig Topper39012cc2014-03-09 18:03:14 +000039 void anchor() override;
David Blaikiea379b1812011-12-20 02:50:00 +000040 public:
Chris Lattner7b26fce2009-08-22 20:48:53 +000041 explicit X86ELFMCAsmInfo(const Triple &Triple);
42 };
43
David Blaikiea379b1812011-12-20 02:50:00 +000044 class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft {
Craig Topper39012cc2014-03-09 18:03:14 +000045 void anchor() override;
David Blaikiea379b1812011-12-20 02:50:00 +000046 public:
Michael J. Spencerde3a2112011-11-29 18:00:06 +000047 explicit X86MCAsmInfoMicrosoft(const Triple &Triple);
48 };
49
David Blaikiea379b1812011-12-20 02:50:00 +000050 class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF {
Craig Topper39012cc2014-03-09 18:03:14 +000051 void anchor() override;
David Blaikiea379b1812011-12-20 02:50:00 +000052 public:
Michael J. Spencerde3a2112011-11-29 18:00:06 +000053 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple);
Chris Lattner7b26fce2009-08-22 20:48:53 +000054 };
Chris Lattner7b26fce2009-08-22 20:48:53 +000055} // namespace llvm
56
57#endif