blob: edb2dbd1cfc3a9a99987cfaee02172f31abc0a44 [file] [log] [blame]
Dan Gohman10e730a2015-06-29 23:51:55 +00001//==- WebAssemblyMCTargetDesc.h - WebAssembly Target Descriptions -*- C++ -*-=//
2//
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/// \file
11/// \brief This file provides WebAssembly-specific target descriptions.
12///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_MCTARGETDESC_WEBASSEMBLYMCTARGETDESC_H
16#define LLVM_LIB_TARGET_WEBASSEMBLY_MCTARGETDESC_WEBASSEMBLYMCTARGETDESC_H
17
18#include "llvm/Support/DataTypes.h"
Dan Gohman10e730a2015-06-29 23:51:55 +000019
20namespace llvm {
21
22class formatted_raw_ostream;
23class MCAsmBackend;
24class MCCodeEmitter;
25class MCContext;
26class MCInstrInfo;
27class MCRegisterInfo;
28class MCObjectWriter;
29class MCStreamer;
30class MCSubtargetInfo;
31class MCTargetStreamer;
32class StringRef;
33class Target;
34class Triple;
35class raw_ostream;
Dan Gohman53828fd2015-11-23 16:50:18 +000036class raw_pwrite_stream;
Dan Gohman10e730a2015-06-29 23:51:55 +000037
Dan Gohmand82494b2015-07-01 21:42:34 +000038extern Target TheWebAssemblyTarget32;
39extern Target TheWebAssemblyTarget64;
Dan Gohman10e730a2015-06-29 23:51:55 +000040
Dan Gohman53828fd2015-11-23 16:50:18 +000041MCCodeEmitter *createWebAssemblyMCCodeEmitter(const MCInstrInfo &MCII,
Dan Gohman53828fd2015-11-23 16:50:18 +000042 MCContext &Ctx);
43
Dan Gohmancceedf72016-01-08 00:43:54 +000044MCAsmBackend *createWebAssemblyAsmBackend(const Triple &TT);
Dan Gohman10e730a2015-06-29 23:51:55 +000045
Dan Gohman05ac43f2015-12-17 01:39:00 +000046MCObjectWriter *createWebAssemblyELFObjectWriter(raw_pwrite_stream &OS,
47 bool Is64Bit, uint8_t OSABI);
48
Dan Gohman10e730a2015-06-29 23:51:55 +000049} // end namespace llvm
50
51// Defines symbolic names for WebAssembly registers. This defines a mapping from
52// register name to register number.
53//
JF Bastien5ca0bac2015-07-10 18:23:10 +000054#define GET_REGINFO_ENUM
55#include "WebAssemblyGenRegisterInfo.inc"
56
JF Bastienb9073fb2015-07-22 21:28:15 +000057// Defines symbolic names for the WebAssembly instructions.
58//
59#define GET_INSTRINFO_ENUM
60#include "WebAssemblyGenInstrInfo.inc"
61
Dan Gohman10e730a2015-06-29 23:51:55 +000062#define GET_SUBTARGETINFO_ENUM
63#include "WebAssemblyGenSubtargetInfo.inc"
64
65#endif