| OLD | NEW | 
|---|
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef V8_WASM_WASM_MODULE_BUILDER_H_ | 5 #ifndef V8_WASM_WASM_MODULE_BUILDER_H_ | 
| 6 #define V8_WASM_WASM_MODULE_BUILDER_H_ | 6 #define V8_WASM_WASM_MODULE_BUILDER_H_ | 
| 7 | 7 | 
| 8 #include "src/signature.h" | 8 #include "src/signature.h" | 
| 9 #include "src/zone/zone-containers.h" | 9 #include "src/zone/zone-containers.h" | 
| 10 | 10 | 
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 128   void EmitSetLocal(uint32_t index); | 128   void EmitSetLocal(uint32_t index); | 
| 129   void EmitTeeLocal(uint32_t index); | 129   void EmitTeeLocal(uint32_t index); | 
| 130   void EmitI32Const(int32_t val); | 130   void EmitI32Const(int32_t val); | 
| 131   void EmitWithU8(WasmOpcode opcode, const byte immediate); | 131   void EmitWithU8(WasmOpcode opcode, const byte immediate); | 
| 132   void EmitWithU8U8(WasmOpcode opcode, const byte imm1, const byte imm2); | 132   void EmitWithU8U8(WasmOpcode opcode, const byte imm1, const byte imm2); | 
| 133   void EmitWithVarInt(WasmOpcode opcode, uint32_t immediate); | 133   void EmitWithVarInt(WasmOpcode opcode, uint32_t immediate); | 
| 134   void EmitDirectCallIndex(uint32_t index); | 134   void EmitDirectCallIndex(uint32_t index); | 
| 135   void ExportAs(Vector<const char> name); | 135   void ExportAs(Vector<const char> name); | 
| 136   void SetName(Vector<const char> name); | 136   void SetName(Vector<const char> name); | 
| 137   void AddAsmWasmOffset(int call_position, int to_number_position); | 137   void AddAsmWasmOffset(int call_position, int to_number_position); | 
|  | 138   void SetAsmFunctionStartPosition(int position); | 
| 138 | 139 | 
| 139   void WriteSignature(ZoneBuffer& buffer) const; | 140   void WriteSignature(ZoneBuffer& buffer) const; | 
| 140   void WriteExports(ZoneBuffer& buffer) const; | 141   void WriteExports(ZoneBuffer& buffer) const; | 
| 141   void WriteBody(ZoneBuffer& buffer) const; | 142   void WriteBody(ZoneBuffer& buffer) const; | 
| 142   void WriteAsmWasmOffsetTable(ZoneBuffer& buffer) const; | 143   void WriteAsmWasmOffsetTable(ZoneBuffer& buffer) const; | 
| 143 | 144 | 
| 144   uint32_t func_index() { return func_index_; } | 145   uint32_t func_index() { return func_index_; } | 
| 145   FunctionSig* signature(); | 146   FunctionSig* signature(); | 
| 146 | 147 | 
| 147  private: | 148  private: | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 164   ZoneVector<uint32_t> i32_temps_; | 165   ZoneVector<uint32_t> i32_temps_; | 
| 165   ZoneVector<uint32_t> i64_temps_; | 166   ZoneVector<uint32_t> i64_temps_; | 
| 166   ZoneVector<uint32_t> f32_temps_; | 167   ZoneVector<uint32_t> f32_temps_; | 
| 167   ZoneVector<uint32_t> f64_temps_; | 168   ZoneVector<uint32_t> f64_temps_; | 
| 168   ZoneVector<DirectCallIndex> direct_calls_; | 169   ZoneVector<DirectCallIndex> direct_calls_; | 
| 169 | 170 | 
| 170   // Delta-encoded mapping from wasm bytes to asm.js source positions. | 171   // Delta-encoded mapping from wasm bytes to asm.js source positions. | 
| 171   ZoneBuffer asm_offsets_; | 172   ZoneBuffer asm_offsets_; | 
| 172   uint32_t last_asm_byte_offset_ = 0; | 173   uint32_t last_asm_byte_offset_ = 0; | 
| 173   uint32_t last_asm_source_position_ = 0; | 174   uint32_t last_asm_source_position_ = 0; | 
|  | 175   uint32_t asm_func_start_source_position_ = 0; | 
| 174 }; | 176 }; | 
| 175 | 177 | 
| 176 class WasmTemporary { | 178 class WasmTemporary { | 
| 177  public: | 179  public: | 
| 178   WasmTemporary(WasmFunctionBuilder* builder, ValueType type) { | 180   WasmTemporary(WasmFunctionBuilder* builder, ValueType type) { | 
| 179     switch (type) { | 181     switch (type) { | 
| 180       case kWasmI32: | 182       case kWasmI32: | 
| 181         temporary_ = &builder->i32_temps_; | 183         temporary_ = &builder->i32_temps_; | 
| 182         break; | 184         break; | 
| 183       case kWasmI64: | 185       case kWasmI64: | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 279 | 281 | 
| 280 inline FunctionSig* WasmFunctionBuilder::signature() { | 282 inline FunctionSig* WasmFunctionBuilder::signature() { | 
| 281   return builder_->signatures_[signature_index_]; | 283   return builder_->signatures_[signature_index_]; | 
| 282 } | 284 } | 
| 283 | 285 | 
| 284 }  // namespace wasm | 286 }  // namespace wasm | 
| 285 }  // namespace internal | 287 }  // namespace internal | 
| 286 }  // namespace v8 | 288 }  // namespace v8 | 
| 287 | 289 | 
| 288 #endif  // V8_WASM_WASM_MODULE_BUILDER_H_ | 290 #endif  // V8_WASM_WASM_MODULE_BUILDER_H_ | 
| OLD | NEW | 
|---|