| Index: src/wasm/wasm-module-builder.h
|
| diff --git a/src/wasm/wasm-module-builder.h b/src/wasm/wasm-module-builder.h
|
| index 4f463b01df7c55d8ec8be840af2d72931bb320b8..d35313ef47edb364ef0676d6a0bc4a9097f0398d 100644
|
| --- a/src/wasm/wasm-module-builder.h
|
| +++ b/src/wasm/wasm-module-builder.h
|
| @@ -88,10 +88,10 @@ class ZoneBuffer : public ZoneObject {
|
| }
|
| }
|
|
|
| - size_t offset() { return static_cast<size_t>(pos_ - buffer_); }
|
| - size_t size() { return static_cast<size_t>(pos_ - buffer_); }
|
| - const byte* begin() { return buffer_; }
|
| - const byte* end() { return pos_; }
|
| + size_t offset() const { return static_cast<size_t>(pos_ - buffer_); }
|
| + size_t size() const { return static_cast<size_t>(pos_ - buffer_); }
|
| + const byte* begin() const { return buffer_; }
|
| + const byte* end() const { return pos_; }
|
|
|
| void EnsureSpace(size_t size) {
|
| if ((pos_ + size) > end_) {
|
| @@ -135,10 +135,12 @@ class V8_EXPORT_PRIVATE WasmFunctionBuilder : public ZoneObject {
|
| void Export();
|
| void ExportAs(Vector<const char> name);
|
| void SetName(Vector<const char> name);
|
| + void AddAsmWasmOffset(int asm_position);
|
|
|
| void WriteSignature(ZoneBuffer& buffer) const;
|
| void WriteExport(ZoneBuffer& buffer) const;
|
| void WriteBody(ZoneBuffer& buffer) const;
|
| + void WriteAsmWasmOffsetTable(ZoneBuffer& buffer) const;
|
|
|
| bool exported() { return exported_; }
|
| uint32_t func_index() { return func_index_; }
|
| @@ -167,6 +169,11 @@ class V8_EXPORT_PRIVATE WasmFunctionBuilder : public ZoneObject {
|
| ZoneVector<uint32_t> f32_temps_;
|
| ZoneVector<uint32_t> f64_temps_;
|
| ZoneVector<DirectCallIndex> direct_calls_;
|
| +
|
| + // Delta-encoded mapping from wasm bytes to asm.js source positions.
|
| + ZoneBuffer asm_offsets_;
|
| + uint32_t last_asm_byte_offset_ = 0;
|
| + uint32_t last_asm_source_position_ = 0;
|
| };
|
|
|
| class WasmTemporary {
|
| @@ -228,6 +235,7 @@ class V8_EXPORT_PRIVATE WasmModuleBuilder : public ZoneObject {
|
|
|
| // Writing methods.
|
| void WriteTo(ZoneBuffer& buffer) const;
|
| + void WriteAsmJsOffsetTable(ZoneBuffer& buffer) const;
|
|
|
| // TODO(titzer): use SignatureMap from signature-map.h here.
|
| // This signature map is zone-allocated, but the other is heap allocated.
|
|
|