#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_MCTARGETDESC_WEBASSEMBLYMCTARGETDESC_H
#define LLVM_LIB_TARGET_WEBASSEMBLY_MCTARGETDESC_WEBASSEMBLYMCTARGETDESC_H
#include "llvm/BinaryFormat/Wasm.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/DataTypes.h"
#include <memory>
namespace llvm {
class MCAsmBackend;
class MCCodeEmitter;
class MCInstrInfo;
class MCObjectTargetWriter;
class Triple;
MCCodeEmitter *createWebAssemblyMCCodeEmitter(const MCInstrInfo &MCII,
MCContext &Ctx);
MCAsmBackend *createWebAssemblyAsmBackend(const Triple &TT);
std::unique_ptr<MCObjectTargetWriter>
createWebAssemblyWasmObjectWriter(bool Is64Bit, bool IsEmscripten);
namespace WebAssembly {
extern cl::opt<bool> WasmEnableEmEH;
extern cl::opt<bool> WasmEnableEmSjLj;
extern cl::opt<bool> WasmEnableEH;
extern cl::opt<bool> WasmEnableSjLj;
extern cl::opt<bool> WasmEnableExnref;
enum OperandType { … };
}
namespace WebAssemblyII {
enum TOF { … };
}
}
#define GET_REGINFO_ENUM
#include "WebAssemblyGenRegisterInfo.inc"
#define GET_INSTRINFO_ENUM
#define GET_INSTRINFO_MC_HELPER_DECLS
#include "WebAssemblyGenInstrInfo.inc"
namespace llvm {
namespace WebAssembly {
static const unsigned Nop = …;
static const unsigned End = …;
inline unsigned GetDefaultP2AlignAny(unsigned Opc) { … }
inline unsigned GetDefaultP2Align(unsigned Opc) { … }
inline bool isConst(unsigned Opc) { … }
inline bool isScalarConst(unsigned Opc) { … }
inline bool isArgument(unsigned Opc) { … }
inline bool isCopy(unsigned Opc) { … }
inline bool isTee(unsigned Opc) { … }
inline bool isCallDirect(unsigned Opc) { … }
inline bool isCallIndirect(unsigned Opc) { … }
inline bool isBrTable(unsigned Opc) { … }
inline bool isMarker(unsigned Opc) { … }
inline bool isTry(unsigned Opc) { … }
inline bool isCatch(unsigned Opc) { … }
inline bool isLocalGet(unsigned Opc) { … }
inline bool isLocalSet(unsigned Opc) { … }
inline bool isLocalTee(unsigned Opc) { … }
static const unsigned UnusedReg = …;
unsigned inline getWARegStackId(unsigned Reg) { … }
}
}
#define GET_SUBTARGETINFO_ENUM
#include "WebAssemblyGenSubtargetInfo.inc"
#endif