aboutsummaryrefslogtreecommitdiff
path: root/src/wasm/wasm-module-builder.h
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-06-11 07:38:05 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-06-11 07:38:05 +0000
commit04a3686acaa3ae6a6042beaa41745c4f6a77e276 (patch)
tree1df435310690642f8fd4628d6d16462d05ffc797 /src/wasm/wasm-module-builder.h
parent4928608426ecd40caa100225c58f94f7a0c17ed6 (diff)
parenta938e3cdb29f70199b4dbf3a5438979f57eda327 (diff)
downloadv8-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.h36
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;