v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
value-type.cc File Reference
Include dependency graph for value-type.cc:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::wasm
 
namespace  v8::internal::wasm::value_type_impl
 

Macros

#define CHECK_MASK(kind, ...)
 
#define CHECK_MASK(kind, ...)
 
#define CHECK_EXACT(kind, ...)
 
#define NUMERIC_CASE(kind, ...)
 
#define ABSTRACT_TYPE_CASE(name, code, ...)
 
#define INTERNAL_TYPE_CASE(name, code, ...)
 
#define GENERIC_CASE(kind, code, typekind, name)
 
#define NUMERIC_CASE(kind, log2, code, mtype, shortName, name)
 

Functions

std::optional< wasm::ValueKindv8::internal::wasm::WasmReturnTypeFromSignature (const CanonicalSig *wasm_signature)
 
bool v8::internal::wasm::EquivalentNumericSig (const CanonicalSig *a, const FunctionSig *b)
 
const wasm::FunctionSigv8::internal::wasm::GetI32Sig (Zone *zone, const wasm::FunctionSig *sig)
 

Macro Definition Documentation

◆ ABSTRACT_TYPE_CASE

#define ABSTRACT_TYPE_CASE ( name,
code,
... )
Value:
case GenericKind::k##name: \
return k##code##Code;
const char * name
Definition builtins.cc:39

◆ CHECK_EXACT

#define CHECK_EXACT ( kind,
... )
Value:
static_assert(IndependentHeapType{GenericKind::k##kind}.is_exact());
Builtins::Kind kind
Definition builtins.cc:40

Definition at line 34 of file value-type.cc.

◆ CHECK_MASK [1/2]

#define CHECK_MASK ( kind,
... )
Value:
static_assert( \
static_cast<uint32_t>(GenericKind::k##kind) == \
(static_cast<uint32_t>(GenericKind::k##kind) & kGenericKindMask));

Definition at line 17 of file value-type.cc.

◆ CHECK_MASK [2/2]

#define CHECK_MASK ( kind,
... )
Value:
static_assert( \
static_cast<uint32_t>(NumericKind::k##kind) == \
(static_cast<uint32_t>(NumericKind::k##kind) & kNumericKindMask));

Definition at line 17 of file value-type.cc.

◆ GENERIC_CASE

#define GENERIC_CASE ( kind,
code,
typekind,
name )
Value:
case GenericKind::k##kind: \
buf << name; \
return buf.str();

◆ INTERNAL_TYPE_CASE

#define INTERNAL_TYPE_CASE ( name,
code,
... )
Value:
case GenericKind::k##name: \
if constexpr (GenericKind::k##name == GenericKind::kVoid) { \
return k##code##Code; \
} else { \
UNREACHABLE(); \
}

◆ NUMERIC_CASE [1/2]

#define NUMERIC_CASE ( kind,
log2,
code,
mtype,
shortName,
name )
Value:
case NumericKind::k##kind: \
return name;

◆ NUMERIC_CASE [2/2]

#define NUMERIC_CASE ( kind,
... )
Value:
case NumericKind::k##kind: \
return k##kind##Code;