summaryrefslogtreecommitdiff
path: root/deps/v8/src/wasm/encoder.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/wasm/encoder.cc')
-rw-r--r--deps/v8/src/wasm/encoder.cc82
1 files changed, 38 insertions, 44 deletions
diff --git a/deps/v8/src/wasm/encoder.cc b/deps/v8/src/wasm/encoder.cc
index d8d36338b1..d80a275338 100644
--- a/deps/v8/src/wasm/encoder.cc
+++ b/deps/v8/src/wasm/encoder.cc
@@ -30,13 +30,13 @@ void EmitUint8(byte** b, uint8_t x) {
void EmitUint16(byte** b, uint16_t x) {
- Memory::uint16_at(*b) = x;
+ WriteUnalignedUInt16(*b, x);
*b += 2;
}
void EmitUint32(byte** b, uint32_t x) {
- Memory::uint32_at(*b) = x;
+ WriteUnalignedUInt32(*b, x);
*b += 4;
}
@@ -121,12 +121,6 @@ void WasmFunctionBuilder::EmitWithU8(WasmOpcode opcode, const byte immediate) {
}
-void WasmFunctionBuilder::EmitWithLocal(WasmOpcode opcode) {
- body_.push_back(static_cast<byte>(opcode));
- local_indices_.push_back(static_cast<uint32_t>(body_.size()) - 1);
-}
-
-
uint32_t WasmFunctionBuilder::EmitEditableImmediate(const byte immediate) {
body_.push_back(immediate);
return static_cast<uint32_t>(body_.size()) - 1;
@@ -202,44 +196,44 @@ WasmFunctionEncoder* WasmFunctionBuilder::Build(Zone* zone,
void WasmFunctionBuilder::IndexVars(WasmFunctionEncoder* e,
uint16_t* var_index) const {
uint16_t param = 0;
- uint16_t int32 = 0;
- uint16_t int64 = 0;
- uint16_t float32 = 0;
- uint16_t float64 = 0;
+ uint16_t i32 = 0;
+ uint16_t i64 = 0;
+ uint16_t f32 = 0;
+ uint16_t f64 = 0;
for (size_t i = 0; i < locals_.size(); i++) {
if (locals_.at(i).param_) {
param++;
} else if (locals_.at(i).type_ == kAstI32) {
- int32++;
+ i32++;
} else if (locals_.at(i).type_ == kAstI64) {
- int64++;
+ i64++;
} else if (locals_.at(i).type_ == kAstF32) {
- float32++;
+ f32++;
} else if (locals_.at(i).type_ == kAstF64) {
- float64++;
+ f64++;
}
}
- e->local_int32_count_ = int32;
- e->local_int64_count_ = int64;
- e->local_float32_count_ = float32;
- e->local_float64_count_ = float64;
- float64 = param + int32 + int64 + float32;
- float32 = param + int32 + int64;
- int64 = param + int32;
- int32 = param;
+ e->local_i32_count_ = i32;
+ e->local_i64_count_ = i64;
+ e->local_f32_count_ = f32;
+ e->local_f64_count_ = f64;
+ f64 = param + i32 + i64 + f32;
+ f32 = param + i32 + i64;
+ i64 = param + i32;
+ i32 = param;
param = 0;
for (size_t i = 0; i < locals_.size(); i++) {
if (locals_.at(i).param_) {
e->params_.push_back(locals_.at(i).type_);
var_index[i] = param++;
} else if (locals_.at(i).type_ == kAstI32) {
- var_index[i] = int32++;
+ var_index[i] = i32++;
} else if (locals_.at(i).type_ == kAstI64) {
- var_index[i] = int64++;
+ var_index[i] = i64++;
} else if (locals_.at(i).type_ == kAstF32) {
- var_index[i] = float32++;
+ var_index[i] = f32++;
} else if (locals_.at(i).type_ == kAstF64) {
- var_index[i] = float64++;
+ var_index[i] = f64++;
}
}
}
@@ -269,7 +263,7 @@ uint32_t WasmFunctionEncoder::BodySize(void) const {
uint32_t WasmFunctionEncoder::NameSize() const {
- return exported_ ? static_cast<uint32_t>(name_.size()) : 0;
+ return HasName() ? static_cast<uint32_t>(name_.size()) : 0;
}
@@ -291,10 +285,10 @@ void WasmFunctionEncoder::Serialize(byte* buffer, byte** header,
}
if (HasLocals()) {
- EmitUint16(header, local_int32_count_);
- EmitUint16(header, local_int64_count_);
- EmitUint16(header, local_float32_count_);
- EmitUint16(header, local_float64_count_);
+ EmitUint16(header, local_i32_count_);
+ EmitUint16(header, local_i64_count_);
+ EmitUint16(header, local_f32_count_);
+ EmitUint16(header, local_f64_count_);
}
if (!external_) {
@@ -370,21 +364,21 @@ void WasmModuleBuilder::AddDataSegment(WasmDataSegmentEncoder* data) {
}
-int WasmModuleBuilder::CompareFunctionSigs::operator()(FunctionSig* a,
- FunctionSig* b) const {
- if (a->return_count() < b->return_count()) return -1;
- if (a->return_count() > b->return_count()) return 1;
- if (a->parameter_count() < b->parameter_count()) return -1;
- if (a->parameter_count() > b->parameter_count()) return 1;
+bool WasmModuleBuilder::CompareFunctionSigs::operator()(FunctionSig* a,
+ FunctionSig* b) const {
+ if (a->return_count() < b->return_count()) return true;
+ if (a->return_count() > b->return_count()) return false;
+ if (a->parameter_count() < b->parameter_count()) return true;
+ if (a->parameter_count() > b->parameter_count()) return false;
for (size_t r = 0; r < a->return_count(); r++) {
- if (a->GetReturn(r) < b->GetReturn(r)) return -1;
- if (a->GetReturn(r) > b->GetReturn(r)) return 1;
+ if (a->GetReturn(r) < b->GetReturn(r)) return true;
+ if (a->GetReturn(r) > b->GetReturn(r)) return false;
}
for (size_t p = 0; p < a->parameter_count(); p++) {
- if (a->GetParam(p) < b->GetParam(p)) return -1;
- if (a->GetParam(p) > b->GetParam(p)) return 1;
+ if (a->GetParam(p) < b->GetParam(p)) return true;
+ if (a->GetParam(p) > b->GetParam(p)) return false;
}
- return 0;
+ return false;
}