diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-11 07:38:05 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-11 07:38:05 +0000 |
commit | 04a3686acaa3ae6a6042beaa41745c4f6a77e276 (patch) | |
tree | 1df435310690642f8fd4628d6d16462d05ffc797 /src/wasm/wasm-module-builder.h | |
parent | 4928608426ecd40caa100225c58f94f7a0c17ed6 (diff) | |
parent | a938e3cdb29f70199b4dbf3a5438979f57eda327 (diff) | |
download | v8-oreo-mr1-cuttlefish-testing.tar.gz |
release-request-46bf7ca6-57e7-44b8-8edc-ea8830c1cb3b-for-git_oc-mr1-release-4090244 snap-temp-L07700000073092334android-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r9android-8.1.0_r8android-8.1.0_r7android-8.1.0_r6android-8.1.0_r5android-8.1.0_r46android-8.1.0_r45android-8.1.0_r43android-8.1.0_r42android-8.1.0_r41android-8.1.0_r40android-8.1.0_r4android-8.1.0_r39android-8.1.0_r38android-8.1.0_r37android-8.1.0_r36android-8.1.0_r35android-8.1.0_r33android-8.1.0_r32android-8.1.0_r31android-8.1.0_r30android-8.1.0_r3android-8.1.0_r29android-8.1.0_r28android-8.1.0_r27android-8.1.0_r26android-8.1.0_r25android-8.1.0_r23android-8.1.0_r22android-8.1.0_r21android-8.1.0_r20android-8.1.0_r2android-8.1.0_r19android-8.1.0_r18android-8.1.0_r17android-8.1.0_r16android-8.1.0_r15android-8.1.0_r14android-8.1.0_r13android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1oreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m6-s4-releaseoreo-m6-s3-releaseoreo-m6-s2-releaseoreo-m5-releaseoreo-m4-s9-releaseoreo-m4-s8-releaseoreo-m4-s7-releaseoreo-m4-s6-releaseoreo-m4-s5-releaseoreo-m4-s4-releaseoreo-m4-s3-releaseoreo-m4-s2-releaseoreo-m4-s12-releaseoreo-m4-s11-releaseoreo-m4-s10-releaseoreo-m4-s1-releaseoreo-m3-releaseoreo-m2-s5-releaseoreo-m2-s4-releaseoreo-m2-s3-releaseoreo-m2-s2-releaseoreo-m2-s1-releaseoreo-m2-release
Change-Id: I584166e536b063d6b3f05eea3157dd0cc656bf51
Diffstat (limited to 'src/wasm/wasm-module-builder.h')
-rw-r--r-- | src/wasm/wasm-module-builder.h | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/wasm/wasm-module-builder.h b/src/wasm/wasm-module-builder.h index d35313ef..c6903cd9 100644 --- a/src/wasm/wasm-module-builder.h +++ b/src/wasm/wasm-module-builder.h @@ -120,8 +120,9 @@ class V8_EXPORT_PRIVATE WasmFunctionBuilder : public ZoneObject { public: // Building methods. void SetSignature(FunctionSig* sig); - uint32_t AddLocal(LocalType type); - void EmitVarInt(uint32_t val); + uint32_t AddLocal(ValueType type); + void EmitVarInt(int32_t val); + void EmitVarUint(uint32_t val); void EmitCode(const byte* code, uint32_t code_size); void Emit(WasmOpcode opcode); void EmitGetLocal(uint32_t index); @@ -130,19 +131,19 @@ class V8_EXPORT_PRIVATE WasmFunctionBuilder : public ZoneObject { void EmitI32Const(int32_t val); void EmitWithU8(WasmOpcode opcode, const byte immediate); void EmitWithU8U8(WasmOpcode opcode, const byte imm1, const byte imm2); - void EmitWithVarInt(WasmOpcode opcode, uint32_t immediate); + void EmitWithVarInt(WasmOpcode opcode, int32_t immediate); + void EmitWithVarUint(WasmOpcode opcode, uint32_t immediate); void EmitDirectCallIndex(uint32_t index); - void Export(); void ExportAs(Vector<const char> name); void SetName(Vector<const char> name); - void AddAsmWasmOffset(int asm_position); + void AddAsmWasmOffset(int call_position, int to_number_position); + void SetAsmFunctionStartPosition(int position); void WriteSignature(ZoneBuffer& buffer) const; - void WriteExport(ZoneBuffer& buffer) const; + void WriteExports(ZoneBuffer& buffer) const; void WriteBody(ZoneBuffer& buffer) const; void WriteAsmWasmOffsetTable(ZoneBuffer& buffer) const; - bool exported() { return exported_; } uint32_t func_index() { return func_index_; } FunctionSig* signature(); @@ -159,11 +160,10 @@ class V8_EXPORT_PRIVATE WasmFunctionBuilder : public ZoneObject { WasmModuleBuilder* builder_; LocalDeclEncoder locals_; uint32_t signature_index_; - bool exported_; uint32_t func_index_; ZoneVector<uint8_t> body_; ZoneVector<char> name_; - ZoneVector<char> exported_name_; + ZoneVector<ZoneVector<char>> exported_names_; ZoneVector<uint32_t> i32_temps_; ZoneVector<uint32_t> i64_temps_; ZoneVector<uint32_t> f32_temps_; @@ -174,22 +174,23 @@ class V8_EXPORT_PRIVATE WasmFunctionBuilder : public ZoneObject { ZoneBuffer asm_offsets_; uint32_t last_asm_byte_offset_ = 0; uint32_t last_asm_source_position_ = 0; + uint32_t asm_func_start_source_position_ = 0; }; class WasmTemporary { public: - WasmTemporary(WasmFunctionBuilder* builder, LocalType type) { + WasmTemporary(WasmFunctionBuilder* builder, ValueType type) { switch (type) { - case kAstI32: + case kWasmI32: temporary_ = &builder->i32_temps_; break; - case kAstI64: + case kWasmI64: temporary_ = &builder->i64_temps_; break; - case kAstF32: + case kWasmF32: temporary_ = &builder->f32_temps_; break; - case kAstF64: + case kWasmF64: temporary_ = &builder->f64_temps_; break; default: @@ -226,11 +227,12 @@ class V8_EXPORT_PRIVATE WasmModuleBuilder : public ZoneObject { imports_[index].name_length = name_length; } WasmFunctionBuilder* AddFunction(FunctionSig* sig = nullptr); - uint32_t AddGlobal(LocalType type, bool exported, bool mutability = true, + uint32_t AddGlobal(ValueType type, bool exported, bool mutability = true, const WasmInitExpr& init = WasmInitExpr()); void AddDataSegment(const byte* data, uint32_t size, uint32_t dest); uint32_t AddSignature(FunctionSig* sig); - void AddIndirectFunction(uint32_t index); + uint32_t AllocateIndirectFunctions(uint32_t count); + void SetIndirectFunction(uint32_t indirect, uint32_t direct); void MarkStartFunction(WasmFunctionBuilder* builder); // Writing methods. @@ -256,7 +258,7 @@ class V8_EXPORT_PRIVATE WasmModuleBuilder : public ZoneObject { }; struct WasmGlobal { - LocalType type; + ValueType type; bool exported; bool mutability; WasmInitExpr init; |