LLVM 22.0.0git
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 ,
  llvm::WebAssembly::OPERAND_CATCH_LIST
}
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 , llvm::WebAssemblyII::MO_CATCH_BLOCK_SIG
}
 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::isEndMarker (unsigned Opc)
bool llvm::WebAssembly::isTry (unsigned Opc)
bool llvm::WebAssembly::isCatch (unsigned Opc)
bool llvm::WebAssembly::isCatchAll (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

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 619 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:

Referenced by llvm::WebAssembly::GetDefaultP2AlignAny().