|
| FunctionBodyDisassembler (Zone *zone, const WasmModule *module, uint32_t func_index, bool shared, WasmDetectedFeatures *detected, const FunctionSig *sig, const uint8_t *start, const uint8_t *end, uint32_t offset, const ModuleWireBytes wire_bytes, NamesProvider *names) |
|
void | DecodeAsWat (MultiLineStringBuilder &out, Indentation indentation, FunctionHeader include_header=kPrintHeader, uint32_t *first_instruction_offset=nullptr) |
|
void | DecodeGlobalInitializer (StringBuilder &out) |
|
std::set< uint32_t > & | used_types () |
|
| WasmDecoder (Zone *zone, const WasmModule *module, WasmEnabledFeatures enabled, WasmDetectedFeatures *detected, const FunctionSig *sig, bool is_shared, const uint8_t *start, const uint8_t *end, uint32_t buffer_offset=0) |
|
Zone * | zone () const |
|
uint32_t | num_locals () const |
|
base::Vector< ValueType > | local_types () const |
|
ValueType | local_type (uint32_t index) const |
|
uint32_t | DecodeLocals (const uint8_t *pc) |
|
V8_INLINE void | DecodeError (Args... args) |
|
bool | Validate (const uint8_t *pc, TagIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, GlobalIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, SigIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, StructIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, FieldImmediate &imm) |
|
bool | Validate (const uint8_t *pc, ArrayIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, CallFunctionImmediate &imm) |
|
bool | Validate (const uint8_t *pc, CallIndirectImmediate &imm) |
|
bool | Validate (const uint8_t *pc, BranchDepthImmediate &imm, size_t control_depth) |
|
bool | Validate (const uint8_t *pc, BranchTableImmediate &imm) |
|
bool | Validate (const uint8_t *pc, WasmOpcode opcode, SimdLaneImmediate &imm) |
|
bool | Validate (const uint8_t *pc, Simd128Immediate &imm) |
|
bool | Validate (const uint8_t *pc, BlockTypeImmediate &imm) |
|
bool | Validate (const uint8_t *pc, MemoryIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, MemoryAccessImmediate &imm) |
|
bool | Validate (const uint8_t *pc, MemoryInitImmediate &imm) |
|
bool | Validate (const uint8_t *pc, MemoryCopyImmediate &imm) |
|
bool | Validate (const uint8_t *pc, TableInitImmediate &imm) |
|
bool | Validate (const uint8_t *pc, TableCopyImmediate &imm) |
|
bool | Validate (const uint8_t *pc, StringConstImmediate &imm) |
|
bool | Validate (const uint8_t *pc, TableIndexImmediate &imm) |
|
bool | Validate (const uint8_t *pc, SelectTypeImmediate &imm) |
|
bool | Validate (const uint8_t *pc, HeapTypeImmediate &imm) |
|
bool | CanReturnCall (const FunctionSig *target_sig) |
|
bool | ValidateElementSegment (const uint8_t *pc, IndexImmediate &imm) |
|
bool | ValidateLocal (const uint8_t *pc, IndexImmediate &imm) |
|
bool | ValidateFunction (const uint8_t *pc, IndexImmediate &imm) |
|
bool | ValidateCont (const uint8_t *pc, ContIndexImmediate &imm) |
|
bool | ValidateDataSegment (const uint8_t *pc, IndexImmediate &imm) |
|
bool | ValidateValueType (const uint8_t *pc, ValueType type) |
|
bool | ValidateHeapType (const uint8_t *pc, HeapType type) |
|
| Decoder (const uint8_t *start, const uint8_t *end, uint32_t buffer_offset=0) |
|
| Decoder (const base::Vector< const uint8_t > bytes, uint32_t buffer_offset=0) |
|
| Decoder (const uint8_t *start, const uint8_t *pc, const uint8_t *end, uint32_t buffer_offset=0) |
|
virtual | ~Decoder ()=default |
|
template<typename ValidationTag > |
uint8_t | read_u8 (const uint8_t *pc, Name< ValidationTag > msg="expected 1 byte") |
|
template<typename ValidationTag > |
uint16_t | read_u16 (const uint8_t *pc, Name< ValidationTag > msg="expected 2 bytes") |
|
template<typename ValidationTag > |
uint32_t | read_u32 (const uint8_t *pc, Name< ValidationTag > msg="expected 4 bytes") |
|
template<typename ValidationTag > |
uint64_t | read_u64 (const uint8_t *pc, Name< ValidationTag > msg="expected 8 bytes") |
|
template<typename ValidationTag > |
std::pair< uint32_t, uint32_t > | read_u32v (const uint8_t *pc, Name< ValidationTag > name="LEB32") |
|
template<typename ValidationTag > |
std::pair< int32_t, uint32_t > | read_i32v (const uint8_t *pc, Name< ValidationTag > name="signed LEB32") |
|
template<typename ValidationTag > |
std::pair< uint64_t, uint32_t > | read_u64v (const uint8_t *pc, Name< ValidationTag > name="LEB64") |
|
template<typename ValidationTag > |
std::pair< int64_t, uint32_t > | read_i64v (const uint8_t *pc, Name< ValidationTag > name="signed LEB64") |
|
template<typename ValidationTag > |
std::pair< int64_t, uint32_t > | read_i33v (const uint8_t *pc, Name< ValidationTag > name="signed LEB33") |
|
template<typename ValidationTag > |
std::pair< WasmOpcode, uint32_t > | read_prefixed_opcode (const uint8_t *pc, Name< ValidationTag > name="prefixed opcode") |
|
uint8_t | consume_u8 (const char *name="uint8_t") |
|
uint8_t | consume_u8 (const char *name, ITracer *tracer) |
|
uint16_t | consume_u16 (const char *name="uint16_t") |
|
uint32_t | consume_u32 (const char *name, ITracer *tracer) |
|
uint32_t | consume_u32v (const char *name="var_uint32") |
|
uint32_t | consume_u32v (const char *name, ITracer *tracer) |
|
int32_t | consume_i32v (const char *name="var_int32") |
|
uint64_t | consume_u64v (const char *name, ITracer *tracer) |
|
int64_t | consume_i64v (const char *name="var_int64") |
|
void | consume_bytes (uint32_t size, const char *name="skip") |
|
void | consume_bytes (uint32_t size, const char *name, ITracer *tracer) |
|
uint32_t | available_bytes () const |
|
bool | checkAvailable (uint32_t size) |
|
void V8_NOINLINE V8_PRESERVE_MOST | error (const char *msg) |
|
void V8_NOINLINE V8_PRESERVE_MOST | error (const uint8_t *pc, const char *msg) |
|
void V8_NOINLINE V8_PRESERVE_MOST | error (uint32_t offset, const char *msg) |
|
template<typename... Args> |
void V8_NOINLINE V8_PRESERVE_MOST | errorf (const char *format, Args... args) |
|
template<typename... Args> |
void V8_NOINLINE V8_PRESERVE_MOST | errorf (const uint8_t *pc, const char *format, Args... args) |
|
template<typename... Args> |
void V8_NOINLINE V8_PRESERVE_MOST | errorf (uint32_t offset, const char *format, Args... args) |
|
virtual void | onFirstError () |
|
void | traceByteRange (const uint8_t *start, const uint8_t *end) |
|
void | traceOffEnd () |
|
template<typename T , typename R = std::decay_t<T>> |
Result< R > | toResult (T &&val) |
|
void | Reset (const uint8_t *start, const uint8_t *end, uint32_t buffer_offset=0) |
|
void | Reset (base::Vector< const uint8_t > bytes, uint32_t buffer_offset=0) |
|
bool | ok () const |
|
bool | failed () const |
|
bool | more () const |
|
const WasmError & | error () const |
|
const uint8_t * | start () const |
|
const uint8_t * | pc () const |
|
uint32_t V8_INLINE | position () const |
|
uint32_t V8_INLINE | pc_offset (const uint8_t *pc) const |
|
uint32_t | pc_offset () const |
|
uint32_t | buffer_offset () const |
|
uint32_t | GetBufferRelativeOffset (uint32_t offset) const |
|
const uint8_t * | end () const |
|
void | set_end (const uint8_t *end) |
|
bool | lookahead (int offset, uint8_t expected) |
|