LLVM 19.0.0git
Namespaces | Macros | Enumerations | Functions | Variables
WebAssemblyMCTargetDesc.h File Reference

This file provides WebAssembly-specific target descriptions. More...

#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>
#include "WebAssemblyGenRegisterInfo.inc"
#include "WebAssemblyGenInstrInfo.inc"
#include "WebAssemblyGenSubtargetInfo.inc"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::WebAssembly
 
namespace  llvm::WebAssemblyII
 

Macros

#define GET_REGINFO_ENUM
 
#define GET_INSTRINFO_ENUM
 
#define GET_INSTRINFO_MC_HELPER_DECLS
 
#define WASM_LOAD_STORE(NAME)
 
#define GET_SUBTARGETINFO_ENUM
 

Enumerations

enum  llvm::WebAssembly::OperandType {
  llvm::WebAssembly::OPERAND_BASIC_BLOCK = MCOI::OPERAND_FIRST_TARGET , llvm::WebAssembly::OPERAND_LOCAL , llvm::WebAssembly::OPERAND_GLOBAL , llvm::WebAssembly::OPERAND_I32IMM ,
  llvm::WebAssembly::OPERAND_I64IMM , llvm::WebAssembly::OPERAND_F32IMM , llvm::WebAssembly::OPERAND_F64IMM , llvm::WebAssembly::OPERAND_VEC_I8IMM ,
  llvm::WebAssembly::OPERAND_VEC_I16IMM , llvm::WebAssembly::OPERAND_VEC_I32IMM , llvm::WebAssembly::OPERAND_VEC_I64IMM , llvm::WebAssembly::OPERAND_FUNCTION32 ,
  llvm::WebAssembly::OPERAND_OFFSET32 , llvm::WebAssembly::OPERAND_OFFSET64 , llvm::WebAssembly::OPERAND_P2ALIGN , llvm::WebAssembly::OPERAND_SIGNATURE ,
  llvm::WebAssembly::OPERAND_TYPEINDEX , llvm::WebAssembly::OPERAND_TAG , llvm::WebAssembly::OPERAND_BRLIST , llvm::WebAssembly::OPERAND_TABLE
}
 
enum  llvm::WebAssemblyII::TOF {
  llvm::WebAssemblyII::MO_NO_FLAG = 0 , llvm::WebAssemblyII::MO_GOT , llvm::WebAssemblyII::MO_GOT_TLS , llvm::WebAssemblyII::MO_MEMORY_BASE_REL ,
  llvm::WebAssemblyII::MO_TLS_BASE_REL , llvm::WebAssemblyII::MO_TABLE_BASE_REL
}
 Target Operand Flag enum. More...
 

Functions

MCCodeEmitterllvm::createWebAssemblyMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
 
MCAsmBackendllvm::createWebAssemblyAsmBackend (const Triple &TT)
 
std::unique_ptr< MCObjectTargetWriterllvm::createWebAssemblyWasmObjectWriter (bool Is64Bit, bool IsEmscripten)
 
unsigned llvm::WebAssembly::GetDefaultP2AlignAny (unsigned Opc)
 Return the default p2align value for a load or store with the given opcode.
 
unsigned llvm::WebAssembly::GetDefaultP2Align (unsigned Opc)
 
bool llvm::WebAssembly::isConst (unsigned Opc)
 
bool llvm::WebAssembly::isScalarConst (unsigned Opc)
 
bool llvm::WebAssembly::isArgument (unsigned Opc)
 
bool llvm::WebAssembly::isCopy (unsigned Opc)
 
bool llvm::WebAssembly::isTee (unsigned Opc)
 
bool llvm::WebAssembly::isCallDirect (unsigned Opc)
 
bool llvm::WebAssembly::isCallIndirect (unsigned Opc)
 
bool llvm::WebAssembly::isBrTable (unsigned Opc)
 
bool llvm::WebAssembly::isMarker (unsigned Opc)
 
bool llvm::WebAssembly::isCatch (unsigned Opc)
 
bool llvm::WebAssembly::isLocalGet (unsigned Opc)
 
bool llvm::WebAssembly::isLocalSet (unsigned Opc)
 
bool llvm::WebAssembly::isLocalTee (unsigned Opc)
 
unsigned llvm::WebAssembly::getWARegStackId (unsigned Reg)
 

Variables

cl::opt< boolllvm::WebAssembly::WasmEnableEmEH
 
cl::opt< boolllvm::WebAssembly::WasmEnableEmSjLj
 
cl::opt< boolllvm::WebAssembly::WasmEnableEH
 
cl::opt< boolllvm::WebAssembly::WasmEnableSjLj
 
static const unsigned llvm::WebAssembly::Nop = 0x01
 Instruction opcodes emitted via means other than CodeGen.
 
static const unsigned llvm::WebAssembly::End = 0x0b
 
static const unsigned llvm::WebAssembly::UnusedReg = -1u
 

Detailed Description

This file provides WebAssembly-specific target descriptions.

Definition in file WebAssemblyMCTargetDesc.h.

Macro Definition Documentation

◆ GET_INSTRINFO_ENUM

#define GET_INSTRINFO_ENUM

Definition at line 135 of file WebAssemblyMCTargetDesc.h.

◆ GET_INSTRINFO_MC_HELPER_DECLS

#define GET_INSTRINFO_MC_HELPER_DECLS

Definition at line 136 of file WebAssemblyMCTargetDesc.h.

◆ GET_REGINFO_ENUM

#define GET_REGINFO_ENUM

Definition at line 130 of file WebAssemblyMCTargetDesc.h.

◆ GET_SUBTARGETINFO_ENUM

#define GET_SUBTARGETINFO_ENUM

Definition at line 549 of file WebAssemblyMCTargetDesc.h.

◆ WASM_LOAD_STORE

#define WASM_LOAD_STORE (   NAME)
Value:
case WebAssembly::NAME##_A32: \
case WebAssembly::NAME##_A64: \
case WebAssembly::NAME##_A32_S: \
case WebAssembly::NAME##_A64_S: