blob: 30d5c802d1ed521b768c3f3c466f17a853477673 [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 {
Daniel Sanders50f17232015-09-15 16:17:27 +000023class Triple;
Chris Lattner7b26fce2009-08-22 20:48:53 +000024
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000025class X86MCAsmInfoDarwin : public MCAsmInfoDarwin {
26 virtual void anchor();
Lang Hames1e923ec2015-01-09 18:55:42 +000027
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000028public:
Daniel Sanders50f17232015-09-15 16:17:27 +000029 explicit X86MCAsmInfoDarwin(const Triple &Triple);
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000030};
Chris Lattner7b26fce2009-08-22 20:48:53 +000031
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000032struct X86_64MCAsmInfoDarwin : public X86MCAsmInfoDarwin {
Daniel Sanders50f17232015-09-15 16:17:27 +000033 explicit X86_64MCAsmInfoDarwin(const Triple &Triple);
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000034 const MCExpr *
35 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding,
36 MCStreamer &Streamer) const override;
37};
Rafael Espindolac5dac4d2011-04-28 16:09:09 +000038
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000039class X86ELFMCAsmInfo : public MCAsmInfoELF {
40 void anchor() override;
Chris Lattner7b26fce2009-08-22 20:48:53 +000041
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000042public:
Daniel Sanders50f17232015-09-15 16:17:27 +000043 explicit X86ELFMCAsmInfo(const Triple &Triple);
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000044};
Michael J. Spencerde3a2112011-11-29 18:00:06 +000045
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000046class X86MCAsmInfoMicrosoft : public MCAsmInfoMicrosoft {
47 void anchor() override;
48
49public:
Daniel Sanders50f17232015-09-15 16:17:27 +000050 explicit X86MCAsmInfoMicrosoft(const Triple &Triple);
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000051};
52
53class X86MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF {
54 void anchor() override;
55
56public:
Daniel Sanders50f17232015-09-15 16:17:27 +000057 explicit X86MCAsmInfoGNUCOFF(const Triple &Triple);
Daniel Sandersc8cd6e92015-09-15 12:27:06 +000058};
Chris Lattner7b26fce2009-08-22 20:48:53 +000059} // namespace llvm
60
61#endif