26#define DEBUG_TYPE "wasm-mc-target-desc"
28#define GET_INSTRINFO_MC_DESC
29#define ENABLE_INSTR_PREDICATE_VERIFIER
30#include "WebAssemblyGenInstrInfo.inc"
32#define GET_SUBTARGETINFO_MC_DESC
33#include "WebAssemblyGenSubtargetInfo.inc"
35#define GET_REGINFO_MC_DESC
36#include "WebAssemblyGenRegisterInfo.inc"
42 "enable-emscripten-cxx-exceptions",
43 cl::desc(
"WebAssembly Emscripten-style exception handling"),
47 "enable-emscripten-sjlj",
48 cl::desc(
"WebAssembly Emscripten-style setjmp/longjmp handling"),
53 cl::desc(
"WebAssembly exception handling"));
56 "wasm-enable-sjlj",
cl::desc(
"WebAssembly setjmp/longjmp handling"));
62 "wasm-enable-exnref",
cl::desc(
"WebAssembly exception handling (exnref)"),
73 InitWebAssemblyMCInstrInfo(
X);
79 InitWebAssemblyMCRegisterInfo(
X, 0);
84 unsigned SyntaxVariant,
88 assert(SyntaxVariant == 0 &&
"WebAssembly only has one syntax variant");
106 return createWebAssemblyMCSubtargetInfoImpl(TT, CPU, CPU, FS);
unsigned const MachineRegisterInfo * MRI
#define LLVM_EXTERNAL_VISIBILITY
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This class prints an WebAssembly MCInst to wasm file syntax.
This file contains the declaration of the WebAssemblyMCAsmInfo class.
static MCAsmInfo * createMCAsmInfo(const MCRegisterInfo &, const Triple &TT, const MCTargetOptions &Options)
static MCRegisterInfo * createMCRegisterInfo(const Triple &)
static MCInstPrinter * createMCInstPrinter(const Triple &, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeWebAssemblyTargetMC()
static MCInstrInfo * createMCInstrInfo()
static MCTargetStreamer * createNullTargetStreamer(MCStreamer &S)
static MCAsmBackend * createAsmBackend(const Target &, const MCSubtargetInfo &STI, const MCRegisterInfo &, const MCTargetOptions &)
static MCTargetStreamer * createObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI)
static MCTargetStreamer * createAsmTargetStreamer(MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *)
static MCCodeEmitter * createCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
static MCSubtargetInfo * createMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
This file provides WebAssembly-specific target descriptions.
This file registers the WebAssembly target.
This file declares WebAssembly-specific target streamer classes.
Generic interface to target specific assembler backends.
This class is intended to be used as a base class for asm properties and features specific to the tar...
MCCodeEmitter - Generic instruction encoding interface.
Context object for machine code objects.
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
Interface to description of machine instruction set.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Streaming machine code generation interface.
Generic base class for all target subtargets.
const Triple & getTargetTriple() const
Target specific streamer interface.
StringRef - Represent a constant reference to a string, i.e.
Target - Wrapper for Target specific information.
Triple - Helper class for working with autoconf configuration names.
This part is for ascii assembly output.
This part is for null output.
This part is for Wasm object output.
cl::opt< bool > WasmEnableEH
cl::opt< bool > WasmEnableSjLj
cl::opt< bool > WasmEnableExnref
cl::opt< bool > WasmEnableEmEH
cl::opt< bool > WasmEnableEmSjLj
initializer< Ty > init(const Ty &Val)
This is an optimization pass for GlobalISel generic memory operations.
MCCodeEmitter * createWebAssemblyMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackend * createWebAssemblyAsmBackend(const Triple &TT)
Target & getTheWebAssemblyTarget32()
Target & getTheWebAssemblyTarget64()
RegisterMCAsmInfoFn - Helper template for registering a target assembly info implementation.
static void RegisterMCRegInfo(Target &T, Target::MCRegInfoCtorFnTy Fn)
RegisterMCRegInfo - Register a MCRegisterInfo implementation for the given target.
static void RegisterMCAsmBackend(Target &T, Target::MCAsmBackendCtorTy Fn)
RegisterMCAsmBackend - Register a MCAsmBackend implementation for the given target.
static void RegisterMCCodeEmitter(Target &T, Target::MCCodeEmitterCtorTy Fn)
RegisterMCCodeEmitter - Register a MCCodeEmitter implementation for the given target.
static void RegisterMCSubtargetInfo(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
RegisterMCSubtargetInfo - Register a MCSubtargetInfo implementation for the given target.
static void RegisterObjectTargetStreamer(Target &T, Target::ObjectTargetStreamerCtorTy Fn)
static void RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn)
static void RegisterMCInstPrinter(Target &T, Target::MCInstPrinterCtorTy Fn)
RegisterMCInstPrinter - Register a MCInstPrinter implementation for the given target.
static void RegisterMCInstrInfo(Target &T, Target::MCInstrInfoCtorFnTy Fn)
RegisterMCInstrInfo - Register a MCInstrInfo implementation for the given target.
static void RegisterAsmTargetStreamer(Target &T, Target::AsmTargetStreamerCtorTy Fn)