#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "MCTargetDesc/WebAssemblyInstPrinter.h"
#include "MCTargetDesc/WebAssemblyMCAsmInfo.h"
#include "MCTargetDesc/WebAssemblyTargetStreamer.h"
#include "TargetInfo/WebAssemblyTargetInfo.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/ErrorHandling.h"
usingnamespacellvm;
#define DEBUG_TYPE …
#define GET_INSTRINFO_MC_DESC
#define ENABLE_INSTR_PREDICATE_VERIFIER
#include "WebAssemblyGenInstrInfo.inc"
#define GET_SUBTARGETINFO_MC_DESC
#include "WebAssemblyGenSubtargetInfo.inc"
#define GET_REGINFO_MC_DESC
#include "WebAssemblyGenRegisterInfo.inc"
cl::opt<bool> WebAssembly::WasmEnableEmEH(
"enable-emscripten-cxx-exceptions",
cl::desc("WebAssembly Emscripten-style exception handling"),
cl::init(false));
cl::opt<bool> WebAssembly::WasmEnableEmSjLj(
"enable-emscripten-sjlj",
cl::desc("WebAssembly Emscripten-style setjmp/longjmp handling"),
cl::init(false));
cl::opt<bool>
WebAssembly::WasmEnableEH("wasm-enable-eh",
cl::desc("WebAssembly exception handling"));
cl::opt<bool> WebAssembly::WasmEnableSjLj(
"wasm-enable-sjlj", cl::desc("WebAssembly setjmp/longjmp handling"));
cl::opt<bool> WebAssembly::WasmEnableExnref(
"wasm-enable-exnref", cl::desc("WebAssembly exception handling (exnref)"),
cl::init(false));
static MCAsmInfo *createMCAsmInfo(const MCRegisterInfo & ,
const Triple &TT,
const MCTargetOptions &Options) { … }
static MCInstrInfo *createMCInstrInfo() { … }
static MCRegisterInfo *createMCRegisterInfo(const Triple & ) { … }
static MCInstPrinter *createMCInstPrinter(const Triple & ,
unsigned SyntaxVariant,
const MCAsmInfo &MAI,
const MCInstrInfo &MII,
const MCRegisterInfo &MRI) { … }
static MCCodeEmitter *createCodeEmitter(const MCInstrInfo &MCII,
MCContext &Ctx) { … }
static MCAsmBackend *createAsmBackend(const Target & ,
const MCSubtargetInfo &STI,
const MCRegisterInfo & ,
const MCTargetOptions & ) { … }
static MCSubtargetInfo *createMCSubtargetInfo(const Triple &TT, StringRef CPU,
StringRef FS) { … }
static MCTargetStreamer *
createObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI) { … }
static MCTargetStreamer *
createAsmTargetStreamer(MCStreamer &S, formatted_raw_ostream &OS,
MCInstPrinter * ) { … }
static MCTargetStreamer *createNullTargetStreamer(MCStreamer &S) { … }
extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeWebAssemblyTargetMC() { … }