// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_WASM_MEMORY_TRACING_H_ #define V8_WASM_MEMORY_TRACING_H_ #include #include "src/codegen/machine-type.h" #include "src/wasm/wasm-tier.h" namespace v8 { namespace internal { namespace wasm { // This struct is create in generated code, hence use low-level types. struct MemoryTracingInfo { uint32_t address; uint8_t is_store; // 0 or 1 uint8_t mem_rep; static_assert( std::is_same::type>::value, "MachineRepresentation uses uint8_t"); MemoryTracingInfo(uint32_t addr, bool is_store, MachineRepresentation rep) : address(addr), is_store(is_store), mem_rep(static_cast(rep)) {} }; // Callback for tracing a memory operation for debugging. // Triggered by --wasm-trace-memory. void TraceMemoryOperation(ExecutionTier, const MemoryTracingInfo* info, int func_index, int position, uint8_t* mem_start); } // namespace wasm } // namespace internal } // namespace v8 #endif // V8_WASM_MEMORY_TRACING_H_