Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1120)

Unified Diff: src/wasm/function-body-decoder.cc

Issue 2682943007: [wasm] Refactoring: move bytecode operands into wasm-decoder-impl.h (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/wasm/function-body-decoder.cc
diff --git a/src/wasm/function-body-decoder.cc b/src/wasm/function-body-decoder.cc
index 32a211e951669b720791924ac97357d71dddd8a0..4eebbab6326b9011ee83c593e0b21f0f8664fcca 100644
--- a/src/wasm/function-body-decoder.cc
+++ b/src/wasm/function-body-decoder.cc
@@ -10,7 +10,9 @@
#include "src/zone/zone-containers.h"
#include "src/wasm/decoder.h"
+#include "src/wasm/function-body-decoder-impl.h"
#include "src/wasm/function-body-decoder.h"
+#include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-opcodes.h"
@@ -149,28 +151,6 @@ struct Control {
(build() ? CheckForException(builder_->func(__VA_ARGS__)) : nullptr)
#define BUILD0(func) (build() ? CheckForException(builder_->func()) : nullptr)
-// Operand for SIMD lane operations.
-struct SimdLaneOperand {
- uint8_t lane;
- unsigned length;
-
- inline SimdLaneOperand(Decoder* decoder, const byte* pc) {
- lane = decoder->checked_read_u8(pc, 2, "lane");
- length = 1;
- }
-};
-
-// Operand for SIMD shift operations.
-struct SimdShiftOperand {
- uint8_t shift;
- unsigned length;
-
- inline SimdShiftOperand(Decoder* decoder, const byte* pc) {
- shift = decoder->checked_read_u8(pc, 2, "shift");
- length = 1;
- }
-};
-
// Generic Wasm bytecode decoder with utilities for decoding operands,
// lengths, etc.
class WasmDecoder : public Decoder {
@@ -209,7 +189,7 @@ class WasmDecoder : public Decoder {
uint32_t count = decoder->consume_u32v("local count");
if (decoder->failed()) return false;
- if ((count + type_list->size()) > kMaxNumWasmLocals) {
+ if ((count + type_list->size()) > kV8MaxWasmFunctionLocals) {
decoder->error(decoder->pc() - 1, "local count too large");
return false;
}
@@ -722,10 +702,12 @@ class WasmFullDecoder : public WasmDecoder {
while (pc_ < end_) { // decoding loop.
unsigned len = 1;
WasmOpcode opcode = static_cast<WasmOpcode>(*pc_);
- if (!WasmOpcodes::IsPrefixOpcode(opcode)) {
- TRACE(" @%-8d #%02x:%-20s|", startrel(pc_), opcode,
+#if DEBUG
+ if (FLAG_trace_wasm_decoder && !WasmOpcodes::IsPrefixOpcode(opcode)) {
+ TRACE(" @%-8d #%-20s|", startrel(pc_),
WasmOpcodes::OpcodeName(opcode));
}
+#endif
FunctionSig* sig = WasmOpcodes::Signature(opcode);
if (sig) {
@@ -1216,8 +1198,8 @@ class WasmFullDecoder : public WasmDecoder {
len++;
byte simd_index = checked_read_u8(pc_, 1, "simd index");
opcode = static_cast<WasmOpcode>(opcode << 8 | simd_index);
- TRACE(" @%-4d #%02x #%02x:%-20s|", startrel(pc_), kSimdPrefix,
- simd_index, WasmOpcodes::OpcodeName(opcode));
+ TRACE(" @%-4d #%-20s|", startrel(pc_),
+ WasmOpcodes::OpcodeName(opcode));
len += DecodeSimdOpcode(opcode);
break;
}

Powered by Google App Engine
This is Rietveld 408576698