162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Copyright 2016 the V8 project authors. All rights reserved. 262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// found in the LICENSE file. 462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#ifndef V8_WASM_S_EXPR_H_ 662ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#define V8_WASM_S_EXPR_H_ 762ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 862ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#include <cstdint> 962ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#include <ostream> 1062ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#include <tuple> 1162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#include <vector> 1262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 1362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochnamespace v8 { 1462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 1562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochnamespace debug { 1662ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochstruct WasmDisassemblyOffsetTableEntry; 1762ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch} // namespace debug 1862ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 1962ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochnamespace internal { 2062ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochnamespace wasm { 2162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 2262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Forward declaration. 2362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochstruct WasmModule; 2462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochstruct ModuleWireBytes; 2562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 2662ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Generate disassembly according to official text format. 2762ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Output disassembly to the given output stream, and optionally return an 2862ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// offset table of <byte offset, line, column> via the given pointer. 2962ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochvoid PrintWasmText( 3062ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch const WasmModule *module, const ModuleWireBytes &wire_bytes, 3162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch uint32_t func_index, std::ostream &os, 3262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch std::vector<debug::WasmDisassemblyOffsetTableEntry> *offset_table); 3362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 3462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch} // namespace wasm 3562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch} // namespace internal 3662ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch} // namespace v8 3762ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch 3862ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#endif // V8_WASM_S_EXPR_H_ 39