diff options
55 files changed, 5673 insertions, 4646 deletions
diff --git a/src/binary-reader-ir.cc b/src/binary-reader-ir.cc index 1c43c9d2..c89ba38c 100644 --- a/src/binary-reader-ir.cc +++ b/src/binary-reader-ir.cc @@ -161,8 +161,15 @@ class BinaryReaderIR : public BinaryReaderNop { uint32_t alignment_log2, Address offset) override; Result OnLoopExpr(Type sig_type) override; + Result OnMemoryCopyExpr() override; + Result OnMemoryDropExpr(Index segment_index) override; + Result OnMemoryFillExpr() override; Result OnMemoryGrowExpr() override; + Result OnMemoryInitExpr(Index segment_index) override; Result OnMemorySizeExpr() override; + Result OnTableCopyExpr() override; + Result OnTableDropExpr(Index segment_index) override; + Result OnTableInitExpr(Index segment_index) override; Result OnNopExpr() override; Result OnRethrowExpr() override; Result OnReturnExpr() override; @@ -183,14 +190,14 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnSimdShuffleOpExpr(Opcode opcode, v128 value) override; Result OnElemSegmentCount(Index count) override; - Result BeginElemSegment(Index index, Index table_index) override; + Result BeginElemSegment(Index index, Index table_index, bool passive) override; Result BeginElemSegmentInitExpr(Index index) override; Result EndElemSegmentInitExpr(Index index) override; Result OnElemSegmentFunctionIndexCount(Index index, Index count) override; Result OnElemSegmentFunctionIndex(Index index, Index func_index) override; Result OnDataSegmentCount(Index count) override; - Result BeginDataSegment(Index index, Index memory_index) override; + Result BeginDataSegment(Index index, Index memory_index, bool passive) override; Result BeginDataSegmentInitExpr(Index index) override; Result EndDataSegmentInitExpr(Index index) override; Result OnDataSegmentData(Index index, @@ -788,14 +795,42 @@ Result BinaryReaderIR::OnLoopExpr(Type sig_type) { return Result::Ok; } +Result BinaryReaderIR::OnMemoryCopyExpr() { + return AppendExpr(MakeUnique<MemoryCopyExpr>()); +} + +Result BinaryReaderIR::OnMemoryDropExpr(Index segment) { + return AppendExpr(MakeUnique<MemoryDropExpr>(segment)); +} + +Result BinaryReaderIR::OnMemoryFillExpr() { + return AppendExpr(MakeUnique<MemoryFillExpr>()); +} + Result BinaryReaderIR::OnMemoryGrowExpr() { return AppendExpr(MakeUnique<MemoryGrowExpr>()); } +Result BinaryReaderIR::OnMemoryInitExpr(Index segment) { + return AppendExpr(MakeUnique<MemoryInitExpr>(segment)); +} + Result BinaryReaderIR::OnMemorySizeExpr() { return AppendExpr(MakeUnique<MemorySizeExpr>()); } +Result BinaryReaderIR::OnTableCopyExpr() { + return AppendExpr(MakeUnique<TableCopyExpr>()); +} + +Result BinaryReaderIR::OnTableDropExpr(Index segment) { + return AppendExpr(MakeUnique<TableDropExpr>(segment)); +} + +Result BinaryReaderIR::OnTableInitExpr(Index segment) { + return AppendExpr(MakeUnique<TableInitExpr>(segment)); +} + Result BinaryReaderIR::OnNopExpr() { return AppendExpr(MakeUnique<NopExpr>()); } @@ -895,10 +930,11 @@ Result BinaryReaderIR::OnElemSegmentCount(Index count) { return Result::Ok; } -Result BinaryReaderIR::BeginElemSegment(Index index, Index table_index) { +Result BinaryReaderIR::BeginElemSegment(Index index, Index table_index, bool passive) { auto field = MakeUnique<ElemSegmentModuleField>(GetLocation()); ElemSegment& elem_segment = field->elem_segment; elem_segment.table_var = Var(table_index, GetLocation()); + elem_segment.passive = passive; module_->AppendField(std::move(field)); return Result::Ok; } @@ -942,10 +978,11 @@ Result BinaryReaderIR::OnDataSegmentCount(Index count) { return Result::Ok; } -Result BinaryReaderIR::BeginDataSegment(Index index, Index memory_index) { +Result BinaryReaderIR::BeginDataSegment(Index index, Index memory_index, bool passive) { auto field = MakeUnique<DataSegmentModuleField>(GetLocation()); DataSegment& data_segment = field->data_segment; data_segment.memory_var = Var(memory_index, GetLocation()); + data_segment.passive = passive; module_->AppendField(std::move(field)); return Result::Ok; } diff --git a/src/binary-reader-logging.cc b/src/binary-reader-logging.cc index 7edebdd1..7fea7da3 100644 --- a/src/binary-reader-logging.cc +++ b/src/binary-reader-logging.cc @@ -581,6 +581,14 @@ Result BinaryReaderLogging::OnInitFunction(uint32_t priority, return reader_->name(value0, value1); \ } +#define DEFINE_INDEX_INDEX_BOOL(name, desc0, desc1, desc2) \ + Result BinaryReaderLogging::name(Index value0, Index value1, bool value2) { \ + LOGF(#name "(" desc0 ": %" PRIindex ", " desc1 ": %" PRIindex \ + ", " desc2 ": %s)\n", \ + value0, value1, value2 ? "true" : "false"); \ + return reader_->name(value0, value1, value2); \ + } + #define DEFINE_OPCODE(name) \ Result BinaryReaderLogging::name(Opcode opcode) { \ LOGF(#name "(\"%s\" (%u))\n", opcode.GetName(), opcode.GetCode()); \ @@ -665,8 +673,15 @@ DEFINE0(OnEndExpr) DEFINE_INDEX_DESC(OnGetGlobalExpr, "index") DEFINE_INDEX_DESC(OnGetLocalExpr, "index") DEFINE_LOAD_STORE_OPCODE(OnLoadExpr); +DEFINE0(OnMemoryCopyExpr) +DEFINE_INDEX(OnMemoryDropExpr) +DEFINE0(OnMemoryFillExpr) DEFINE0(OnMemoryGrowExpr) +DEFINE_INDEX(OnMemoryInitExpr) DEFINE0(OnMemorySizeExpr) +DEFINE0(OnTableCopyExpr) +DEFINE_INDEX(OnTableDropExpr) +DEFINE_INDEX(OnTableInitExpr) DEFINE0(OnNopExpr) DEFINE0(OnRethrowExpr); DEFINE0(OnReturnExpr) @@ -683,7 +698,7 @@ DEFINE_END(EndCodeSection) DEFINE_BEGIN(BeginElemSection) DEFINE_INDEX(OnElemSegmentCount) -DEFINE_INDEX_INDEX(BeginElemSegment, "index", "table_index") +DEFINE_INDEX_INDEX_BOOL(BeginElemSegment, "index", "table_index", "passive") DEFINE_INDEX(BeginElemSegmentInitExpr) DEFINE_INDEX(EndElemSegmentInitExpr) DEFINE_INDEX_INDEX(OnElemSegmentFunctionIndexCount, "index", "count") @@ -693,7 +708,7 @@ DEFINE_END(EndElemSection) DEFINE_BEGIN(BeginDataSection) DEFINE_INDEX(OnDataSegmentCount) -DEFINE_INDEX_INDEX(BeginDataSegment, "index", "memory_index") +DEFINE_INDEX_INDEX_BOOL(BeginDataSegment, "index", "memory_index", "passive") DEFINE_INDEX(BeginDataSegmentInitExpr) DEFINE_INDEX(EndDataSegmentInitExpr) DEFINE_INDEX(EndDataSegment) diff --git a/src/binary-reader-logging.h b/src/binary-reader-logging.h index 6791c622..f9cb47c9 100644 --- a/src/binary-reader-logging.h +++ b/src/binary-reader-logging.h @@ -175,8 +175,15 @@ class BinaryReaderLogging : public BinaryReaderDelegate { uint32_t alignment_log2, Address offset) override; Result OnLoopExpr(Type sig_type) override; + Result OnMemoryCopyExpr() override; + Result OnMemoryDropExpr(Index segment_index) override; + Result OnMemoryFillExpr() override; Result OnMemoryGrowExpr() override; + Result OnMemoryInitExpr(Index segment_index) override; Result OnMemorySizeExpr() override; + Result OnTableCopyExpr() override; + Result OnTableDropExpr(Index segment_index) override; + Result OnTableInitExpr(Index segment_index) override; Result OnNopExpr() override; Result OnRethrowExpr() override; Result OnReturnExpr() override; @@ -205,7 +212,7 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result BeginElemSection(Offset size) override; Result OnElemSegmentCount(Index count) override; - Result BeginElemSegment(Index index, Index table_index) override; + Result BeginElemSegment(Index index, Index table_index, bool passive) override; Result BeginElemSegmentInitExpr(Index index) override; Result EndElemSegmentInitExpr(Index index) override; Result OnElemSegmentFunctionIndexCount(Index index, Index count) override; @@ -215,7 +222,7 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result BeginDataSection(Offset size) override; Result OnDataSegmentCount(Index count) override; - Result BeginDataSegment(Index index, Index memory_index) override; + Result BeginDataSegment(Index index, Index memory_index, bool passive) override; Result BeginDataSegmentInitExpr(Index index) override; Result EndDataSegmentInitExpr(Index index) override; Result OnDataSegmentData(Index index, diff --git a/src/binary-reader-nop.h b/src/binary-reader-nop.h index f2370a78..42eee390 100644 --- a/src/binary-reader-nop.h +++ b/src/binary-reader-nop.h @@ -235,8 +235,15 @@ class BinaryReaderNop : public BinaryReaderDelegate { return Result::Ok; } Result OnLoopExpr(Type sig_type) override { return Result::Ok; } + Result OnMemoryCopyExpr() override { return Result::Ok; } + Result OnMemoryDropExpr(Index segment_index) override { return Result::Ok; } + Result OnMemoryFillExpr() override { return Result::Ok; } Result OnMemoryGrowExpr() override { return Result::Ok; } + Result OnMemoryInitExpr(Index segment_index) override { return Result::Ok; } Result OnMemorySizeExpr() override { return Result::Ok; } + Result OnTableCopyExpr() override { return Result::Ok; } + Result OnTableDropExpr(Index segment_index) override { return Result::Ok; } + Result OnTableInitExpr(Index segment_index) override { return Result::Ok; } Result OnNopExpr() override { return Result::Ok; } Result OnRethrowExpr() override { return Result::Ok; } Result OnReturnExpr() override { return Result::Ok; } @@ -266,7 +273,7 @@ class BinaryReaderNop : public BinaryReaderDelegate { /* Elem section */ Result BeginElemSection(Offset size) override { return Result::Ok; } Result OnElemSegmentCount(Index count) override { return Result::Ok; } - Result BeginElemSegment(Index index, Index table_index) override { + Result BeginElemSegment(Index index, Index table_index, bool passive) override { return Result::Ok; } Result BeginElemSegmentInitExpr(Index index) override { return Result::Ok; } @@ -283,7 +290,7 @@ class BinaryReaderNop : public BinaryReaderDelegate { /* Data section */ Result BeginDataSection(Offset size) override { return Result::Ok; } Result OnDataSegmentCount(Index count) override { return Result::Ok; } - Result BeginDataSegment(Index index, Index memory_index) override { + Result BeginDataSegment(Index index, Index memory_index, bool passive) override { return Result::Ok; } Result BeginDataSegmentInitExpr(Index index) override { return Result::Ok; } diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index 420940f5..81f2926d 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -704,7 +704,7 @@ class BinaryReaderObjdump : public BinaryReaderObjdumpBase { } Result OnElemSegmentCount(Index count) override; - Result BeginElemSegment(Index index, Index table_index) override; + Result BeginElemSegment(Index index, Index table_index, bool passive) override; Result OnElemSegmentFunctionIndexCount(Index index, Index count) override; Result OnElemSegmentFunctionIndex(Index segment_index, Index func_index) override; @@ -719,7 +719,7 @@ class BinaryReaderObjdump : public BinaryReaderObjdumpBase { } Result OnDataSegmentCount(Index count) override; - Result BeginDataSegment(Index index, Index memory_index) override; + Result BeginDataSegment(Index index, Index memory_index, bool passive) override; Result OnDataSegmentData(Index index, const void* data, Address size) override; @@ -1104,7 +1104,7 @@ Result BinaryReaderObjdump::OnElemSegmentCount(Index count) { return OnCount(count); } -Result BinaryReaderObjdump::BeginElemSegment(Index index, Index table_index) { +Result BinaryReaderObjdump::BeginElemSegment(Index index, Index table_index, bool passive) { table_index_ = table_index; elem_index_ = 0; return Result::Ok; @@ -1273,7 +1273,7 @@ Result BinaryReaderObjdump::OnDataSegmentCount(Index count) { return OnCount(count); } -Result BinaryReaderObjdump::BeginDataSegment(Index index, Index memory_index) { +Result BinaryReaderObjdump::BeginDataSegment(Index index, Index memory_index, bool passive) { // TODO(sbc): Display memory_index once multiple memories become a thing // PrintDetails(" - memory[%" PRIindex "]", memory_index); return Result::Ok; diff --git a/src/binary-reader.cc b/src/binary-reader.cc index 35e079f7..f1cf236a 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -1322,6 +1322,64 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { break; } + case Opcode::TableInit: { + ERROR_UNLESS_OPCODE_ENABLED(opcode); + uint8_t reserved; + CHECK_RESULT(ReadU8(&reserved, "reserved table index")); + ERROR_UNLESS(reserved == 0, "reserved value must be 0"); + Index segment; + CHECK_RESULT(ReadIndex(&segment, "elem segment index")); + CALLBACK(OnTableInitExpr, segment); + break; + } + + case Opcode::MemoryInit: { + ERROR_UNLESS_OPCODE_ENABLED(opcode); + uint8_t reserved; + CHECK_RESULT(ReadU8(&reserved, "reserved memory index")); + ERROR_UNLESS(reserved == 0, "reserved value must be 0"); + Index segment; + CHECK_RESULT(ReadIndex(&segment, "elem segment index")); + CALLBACK(OnMemoryInitExpr, segment); + break; + } + + case Opcode::MemoryDrop: + case Opcode::TableDrop: { + ERROR_UNLESS_OPCODE_ENABLED(opcode); + Index segment; + CHECK_RESULT(ReadIndex(&segment, "segment index")); + if (opcode == Opcode::MemoryDrop) { + CALLBACK(OnMemoryDropExpr, segment); + } else { + CALLBACK(OnTableDropExpr, segment); + } + break; + } + + case Opcode::MemoryCopy: + case Opcode::MemoryFill: { + ERROR_UNLESS_OPCODE_ENABLED(opcode); + uint8_t reserved; + CHECK_RESULT(ReadU8(&reserved, "reserved memory index")); + ERROR_UNLESS(reserved == 0, "reserved value must be 0"); + if (opcode == Opcode::MemoryCopy) { + CALLBACK(OnMemoryCopyExpr); + } else { + CALLBACK(OnMemoryFillExpr); + } + break; + } + + case Opcode::TableCopy: { + ERROR_UNLESS_OPCODE_ENABLED(opcode); + uint8_t reserved; + CHECK_RESULT(ReadU8(&reserved, "reserved table index")); + ERROR_UNLESS(reserved == 0, "reserved value must be 0"); + CALLBACK(OnTableCopyExpr); + break; + } + default: return ReportUnexpectedOpcode(opcode); } @@ -1888,12 +1946,19 @@ Result BinaryReader::ReadElemSection(Offset section_size) { ERROR_UNLESS(num_elem_segments == 0 || NumTotalTables() > 0, "elem section without table section"); for (Index i = 0; i < num_elem_segments; ++i) { - Index table_index; - CHECK_RESULT(ReadIndex(&table_index, "elem segment table index")); - CALLBACK(BeginElemSegment, i, table_index); - CALLBACK(BeginElemSegmentInitExpr, i); - CHECK_RESULT(ReadI32InitExpr(i)); - CALLBACK(EndElemSegmentInitExpr, i); + uint8_t flags_byte; + CHECK_RESULT(ReadU8(&flags_byte, "elem segment flags")); + SegmentFlags flags = static_cast<SegmentFlags>(flags_byte); + Index table_index(0); + if (flags == SegmentFlags::IndexOther) { + CHECK_RESULT(ReadIndex(&table_index, "elem segment table index")); + } + CALLBACK(BeginElemSegment, i, table_index, flags == SegmentFlags::Passive); + if (flags != SegmentFlags::Passive) { + CALLBACK(BeginElemSegmentInitExpr, i); + CHECK_RESULT(ReadI32InitExpr(i)); + CALLBACK(EndElemSegmentInitExpr, i); + } Index num_function_indexes; CHECK_RESULT( @@ -1959,12 +2024,19 @@ Result BinaryReader::ReadDataSection(Offset section_size) { ERROR_UNLESS(num_data_segments == 0 || NumTotalMemories() > 0, "data section without memory section"); for (Index i = 0; i < num_data_segments; ++i) { - Index memory_index; - CHECK_RESULT(ReadIndex(&memory_index, "data segment memory index")); - CALLBACK(BeginDataSegment, i, memory_index); - CALLBACK(BeginDataSegmentInitExpr, i); - CHECK_RESULT(ReadI32InitExpr(i)); - CALLBACK(EndDataSegmentInitExpr, i); + uint8_t flags_byte; + CHECK_RESULT(ReadU8(&flags_byte, "data segment flags")); + SegmentFlags flags = static_cast<SegmentFlags>(flags_byte); + Index memory_index(0); + if (flags == SegmentFlags::IndexOther) { + CHECK_RESULT(ReadIndex(&memory_index, "data segment memory index")); + } + CALLBACK(BeginDataSegment, i, memory_index, flags == SegmentFlags::Passive); + if (flags != SegmentFlags::Passive) { + CALLBACK(BeginDataSegmentInitExpr, i); + CHECK_RESULT(ReadI32InitExpr(i)); + CALLBACK(EndDataSegmentInitExpr, i); + } Address data_size; const void* data; diff --git a/src/binary-reader.h b/src/binary-reader.h index b0e1cb98..a8a1d04f 100644 --- a/src/binary-reader.h +++ b/src/binary-reader.h @@ -231,8 +231,15 @@ class BinaryReaderDelegate { uint32_t alignment_log2, Address offset) = 0; virtual Result OnLoopExpr(Type sig_type) = 0; + virtual Result OnMemoryCopyExpr() = 0; + virtual Result OnMemoryDropExpr(Index segment_index) = 0; + virtual Result OnMemoryFillExpr() = 0; virtual Result OnMemoryGrowExpr() = 0; + virtual Result OnMemoryInitExpr(Index segment_index) = 0; virtual Result OnMemorySizeExpr() = 0; + virtual Result OnTableCopyExpr() = 0; + virtual Result OnTableDropExpr(Index segment_index) = 0; + virtual Result OnTableInitExpr(Index segment_index) = 0; virtual Result OnNopExpr() = 0; virtual Result OnRethrowExpr() = 0; virtual Result OnReturnExpr() = 0; @@ -259,7 +266,7 @@ class BinaryReaderDelegate { /* Elem section */ virtual Result BeginElemSection(Offset size) = 0; virtual Result OnElemSegmentCount(Index count) = 0; - virtual Result BeginElemSegment(Index index, Index table_index) = 0; + virtual Result BeginElemSegment(Index index, Index table_index, bool passive) = 0; virtual Result BeginElemSegmentInitExpr(Index index) = 0; virtual Result EndElemSegmentInitExpr(Index index) = 0; virtual Result OnElemSegmentFunctionIndexCount(Index index, Index count) = 0; @@ -271,7 +278,7 @@ class BinaryReaderDelegate { /* Data section */ virtual Result BeginDataSection(Offset size) = 0; virtual Result OnDataSegmentCount(Index count) = 0; - virtual Result BeginDataSegment(Index index, Index memory_index) = 0; + virtual Result BeginDataSegment(Index index, Index memory_index, bool passive) = 0; virtual Result BeginDataSegmentInitExpr(Index index) = 0; virtual Result EndDataSegmentInitExpr(Index index) = 0; virtual Result OnDataSegmentData(Index index, diff --git a/src/binary-writer.cc b/src/binary-writer.cc index 326bc4b2..9b98985c 100644 --- a/src/binary-writer.cc +++ b/src/binary-writer.cc @@ -537,14 +537,52 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { WriteExprList(func, cast<LoopExpr>(expr)->block.exprs); WriteOpcode(stream_, Opcode::End); break; + case ExprType::MemoryCopy: + WriteOpcode(stream_, Opcode::MemoryCopy); + WriteU32Leb128(stream_, 0, "memory.copy reserved"); + break; + case ExprType::MemoryDrop: { + auto* drop_expr = cast<MemoryDropExpr>(expr); + WriteOpcode(stream_, Opcode::MemoryDrop); + WriteU32Leb128(stream_, drop_expr->segment, "memory.drop segment"); + break; + } + case ExprType::MemoryFill: + WriteOpcode(stream_, Opcode::MemoryFill); + WriteU32Leb128(stream_, 0, "memory.fill reserved"); + break; case ExprType::MemoryGrow: WriteOpcode(stream_, Opcode::MemoryGrow); WriteU32Leb128(stream_, 0, "memory.grow reserved"); break; + case ExprType::MemoryInit: { + auto* init_expr = cast<MemoryInitExpr>(expr); + WriteOpcode(stream_, Opcode::MemoryInit); + WriteU32Leb128(stream_, 0, "memory.init reserved"); + WriteU32Leb128(stream_, init_expr->segment, "memory.init segment"); + break; + } case ExprType::MemorySize: WriteOpcode(stream_, Opcode::MemorySize); WriteU32Leb128(stream_, 0, "memory.size reserved"); break; + case ExprType::TableCopy: + WriteOpcode(stream_, Opcode::TableCopy); + WriteU32Leb128(stream_, 0, "table.copy reserved"); + break; + case ExprType::TableDrop: { + auto* drop_expr = cast<TableDropExpr>(expr); + WriteOpcode(stream_, Opcode::TableDrop); + WriteU32Leb128(stream_, drop_expr->segment, "table.drop segment"); + break; + } + case ExprType::TableInit: { + auto* init_expr = cast<TableInitExpr>(expr); + WriteOpcode(stream_, Opcode::TableInit); + WriteU32Leb128(stream_, 0, "table.init reserved"); + WriteU32Leb128(stream_, init_expr->segment, "table.init segment"); + break; + } case ExprType::Nop: WriteOpcode(stream_, Opcode::Nop); break; @@ -914,10 +952,14 @@ Result BinaryWriter::WriteModule() { WriteU32Leb128(stream_, module_->elem_segments.size(), "num elem segments"); for (size_t i = 0; i < module_->elem_segments.size(); ++i) { ElemSegment* segment = module_->elem_segments[i]; - Index table_index = module_->GetTableIndex(segment->table_var); WriteHeader("elem segment header", i); - WriteU32Leb128(stream_, table_index, "table index"); - WriteInitExpr(segment->offset); + if (segment->passive) { + stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::Passive)); + } else { + assert(module_->GetTableIndex(segment->table_var) == 0); + stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::IndexZero)); + WriteInitExpr(segment->offset); + } WriteU32Leb128(stream_, segment->vars.size(), "num function indices"); for (const Var& var : segment->vars) { Index index = module_->GetFuncIndex(var); @@ -964,9 +1006,13 @@ Result BinaryWriter::WriteModule() { for (size_t i = 0; i < module_->data_segments.size(); ++i) { const DataSegment* segment = module_->data_segments[i]; WriteHeader("data segment header", i); - Index memory_index = module_->GetMemoryIndex(segment->memory_var); - WriteU32Leb128(stream_, memory_index, "memory index"); - WriteInitExpr(segment->offset); + if (segment->passive) { + stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::Passive)); + } else { + assert(module_->GetMemoryIndex(segment->memory_var) == 0); + stream_->WriteU8(static_cast<uint8_t>(SegmentFlags::IndexZero)); + WriteInitExpr(segment->offset); + } WriteU32Leb128(stream_, segment->data.size(), "data segment size"); WriteHeader("data segment data", i); stream_->WriteData(segment->data, "data segment data"); diff --git a/src/binary.h b/src/binary.h index 12e1481a..7f62092e 100644 --- a/src/binary.h +++ b/src/binary.h @@ -64,6 +64,12 @@ enum class NameSectionSubsection { Local = 2, }; +enum class SegmentFlags: uint8_t { + IndexZero = 0, + Passive = 1, + IndexOther = 2, +}; + extern const char* g_section_name[]; static WABT_INLINE const char* GetSectionName(BinarySection sec) { diff --git a/src/c-writer.cc b/src/c-writer.cc index ae6896d6..280ef5f7 100644 --- a/src/c-writer.cc +++ b/src/c-writer.cc @@ -1565,6 +1565,16 @@ void CWriter::Write(const ExprList& exprs) { break; } + case ExprType::MemoryCopy: + case ExprType::MemoryDrop: + case ExprType::MemoryInit: + case ExprType::MemoryFill: + case ExprType::TableCopy: + case ExprType::TableDrop: + case ExprType::TableInit: + UNIMPLEMENTED("..."); + break; + case ExprType::MemoryGrow: { assert(module_->memories.size() == 1); Memory* memory = module_->memories[0]; diff --git a/src/expr-visitor.cc b/src/expr-visitor.cc index ef6fb441..6a96fa8b 100644 --- a/src/expr-visitor.cc +++ b/src/expr-visitor.cc @@ -266,14 +266,42 @@ Result ExprVisitor::HandleDefaultState(Expr* expr) { break; } + case ExprType::MemoryCopy: + CHECK_RESULT(delegate_->OnMemoryCopyExpr(cast<MemoryCopyExpr>(expr))); + break; + + case ExprType::MemoryDrop: + CHECK_RESULT(delegate_->OnMemoryDropExpr(cast<MemoryDropExpr>(expr))); + break; + + case ExprType::MemoryFill: + CHECK_RESULT(delegate_->OnMemoryFillExpr(cast<MemoryFillExpr>(expr))); + break; + case ExprType::MemoryGrow: CHECK_RESULT(delegate_->OnMemoryGrowExpr(cast<MemoryGrowExpr>(expr))); break; + case ExprType::MemoryInit: + CHECK_RESULT(delegate_->OnMemoryInitExpr(cast<MemoryInitExpr>(expr))); + break; + case ExprType::MemorySize: CHECK_RESULT(delegate_->OnMemorySizeExpr(cast<MemorySizeExpr>(expr))); break; + case ExprType::TableCopy: + CHECK_RESULT(delegate_->OnTableCopyExpr(cast<TableCopyExpr>(expr))); + break; + + case ExprType::TableDrop: + CHECK_RESULT(delegate_->OnTableDropExpr(cast<TableDropExpr>(expr))); + break; + + case ExprType::TableInit: + CHECK_RESULT(delegate_->OnTableInitExpr(cast<TableInitExpr>(expr))); + break; + case ExprType::Nop: CHECK_RESULT(delegate_->OnNopExpr(cast<NopExpr>(expr))); break; diff --git a/src/expr-visitor.h b/src/expr-visitor.h index d2b730c5..4b13097e 100644 --- a/src/expr-visitor.h +++ b/src/expr-visitor.h @@ -89,8 +89,15 @@ class ExprVisitor::Delegate { virtual Result OnLoadExpr(LoadExpr*) = 0; virtual Result BeginLoopExpr(LoopExpr*) = 0; virtual Result EndLoopExpr(LoopExpr*) = 0; + virtual Result OnMemoryCopyExpr(MemoryCopyExpr*) = 0; + virtual Result OnMemoryDropExpr(MemoryDropExpr*) = 0; + virtual Result OnMemoryFillExpr(MemoryFillExpr*) = 0; virtual Result OnMemoryGrowExpr(MemoryGrowExpr*) = 0; + virtual Result OnMemoryInitExpr(MemoryInitExpr*) = 0; virtual Result OnMemorySizeExpr(MemorySizeExpr*) = 0; + virtual Result OnTableCopyExpr(TableCopyExpr*) = 0; + virtual Result OnTableDropExpr(TableDropExpr*) = 0; + virtual Result OnTableInitExpr(TableInitExpr*) = 0; virtual Result OnNopExpr(NopExpr*) = 0; virtual Result OnReturnExpr(ReturnExpr*) = 0; virtual Result OnReturnCallExpr(ReturnCallExpr*) = 0; @@ -143,8 +150,15 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { Result OnLoadExpr(LoadExpr*) override { return Result::Ok; } Result BeginLoopExpr(LoopExpr*) override { return Result::Ok; } Result EndLoopExpr(LoopExpr*) override { return Result::Ok; } + Result OnMemoryCopyExpr(MemoryCopyExpr*) override { return Result::Ok; } + Result OnMemoryDropExpr(MemoryDropExpr*) override { return Result::Ok; } + Result OnMemoryFillExpr(MemoryFillExpr*) override { return Result::Ok; } Result OnMemoryGrowExpr(MemoryGrowExpr*) override { return Result::Ok; } + Result OnMemoryInitExpr(MemoryInitExpr*) override { return Result::Ok; } Result OnMemorySizeExpr(MemorySizeExpr*) override { return Result::Ok; } + Result OnTableCopyExpr(TableCopyExpr*) override { return Result::Ok; } + Result OnTableDropExpr(TableDropExpr*) override { return Result::Ok; } + Result OnTableInitExpr(TableInitExpr*) override { return Result::Ok; } Result OnNopExpr(NopExpr*) override { return Result::Ok; } Result OnReturnExpr(ReturnExpr*) override { return Result::Ok; } Result OnReturnCallExpr(ReturnCallExpr*) override { return Result::Ok; } diff --git a/src/feature.def b/src/feature.def index 045fec96..bd510f87 100644 --- a/src/feature.def +++ b/src/feature.def @@ -30,3 +30,4 @@ WABT_FEATURE(simd, "simd", false, "SIMD support WABT_FEATURE(threads, "threads", false, "Threading support") WABT_FEATURE(multi_value, "multi-value", false, "Multi-value") WABT_FEATURE(tail_call, "tail-call", false, "Tail-call support") +WABT_FEATURE(bulk_memory, "bulk-memory", false, "Bulk-memory operations") diff --git a/src/interp/interp-disassemble.cc b/src/interp/interp-disassemble.cc index dfb82c3a..de475a92 100644 --- a/src/interp/interp-disassemble.cc +++ b/src/interp/interp-disassemble.cc @@ -579,6 +579,35 @@ void Environment::Disassemble(Stream* stream, break; } + + case Opcode::MemoryInit: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryDrop: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryCopy: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryFill: + WABT_UNREACHABLE; + break; + + case Opcode::TableInit: + WABT_UNREACHABLE; + break; + + case Opcode::TableDrop: + WABT_UNREACHABLE; + break; + + case Opcode::TableCopy: + WABT_UNREACHABLE; + break; + // The following opcodes are either never generated or should never be // executed. case Opcode::Block: diff --git a/src/interp/interp-trace.cc b/src/interp/interp-trace.cc index 15c3714b..3e473094 100644 --- a/src/interp/interp-trace.cc +++ b/src/interp/interp-trace.cc @@ -690,6 +690,34 @@ void Thread::Trace(Stream* stream) { break; } + case Opcode::MemoryInit: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryDrop: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryCopy: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryFill: + WABT_UNREACHABLE; + break; + + case Opcode::TableInit: + WABT_UNREACHABLE; + break; + + case Opcode::TableDrop: + WABT_UNREACHABLE; + break; + + case Opcode::TableCopy: + WABT_UNREACHABLE; + break; + // The following opcodes are either never generated or should never be // executed. case Opcode::Block: diff --git a/src/interp/interp.cc b/src/interp/interp.cc index b7753b7d..07224d77 100644 --- a/src/interp/interp.cc +++ b/src/interp/interp.cc @@ -3218,6 +3218,35 @@ Result Thread::Run(int num_instructions) { case Opcode::I64X2TruncUF64X2Sat: CHECK_TRAP(SimdUnop<v128, uint64_t>(IntTruncSat<uint64_t, double>)); break; + + case Opcode::MemoryInit: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryDrop: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryCopy: + WABT_UNREACHABLE; + break; + + case Opcode::MemoryFill: + WABT_UNREACHABLE; + break; + + case Opcode::TableInit: + WABT_UNREACHABLE; + break; + + case Opcode::TableDrop: + WABT_UNREACHABLE; + break; + + case Opcode::TableCopy: + WABT_UNREACHABLE; + break; + // The following opcodes are either never generated or should never be // executed. case Opcode::Block: @@ -41,15 +41,19 @@ const char* ExprTypeName[] = { "Compare", "Const", "Convert", - "CurrentMemory", "Drop", "GetGlobal", "GetLocal", - "GrowMemory", "If", "IfExcept", "Load", "Loop", + "MemoryCopy", + "MemoryDrop", + "MemoryFill", + "MemoryGrow", + "MemoryInit", + "MemorySize", "Nop", "Rethrow", "Return", @@ -61,6 +65,9 @@ const char* ExprTypeName[] = { "SimdLaneOp", "SimdShuffleOp", "Store", + "TableInit", + "TableCopy", + "TableDrop", "TeeLocal", "Ternary", "Throw", @@ -179,7 +179,11 @@ enum class ExprType { IfExcept, Load, Loop, + MemoryCopy, + MemoryDrop, + MemoryFill, MemoryGrow, + MemoryInit, MemorySize, Nop, Rethrow, @@ -192,6 +196,9 @@ enum class ExprType { SimdLaneOp, SimdShuffleOp, Store, + TableInit, + TableCopy, + TableDrop, TeeLocal, Ternary, Throw, @@ -250,6 +257,9 @@ class ExprMixin : public Expr { typedef ExprMixin<ExprType::Drop> DropExpr; typedef ExprMixin<ExprType::MemoryGrow> MemoryGrowExpr; typedef ExprMixin<ExprType::MemorySize> MemorySizeExpr; +typedef ExprMixin<ExprType::MemoryCopy> MemoryCopyExpr; +typedef ExprMixin<ExprType::MemoryFill> MemoryFillExpr; +typedef ExprMixin<ExprType::TableCopy> TableCopyExpr; typedef ExprMixin<ExprType::Nop> NopExpr; typedef ExprMixin<ExprType::Rethrow> RethrowExpr; typedef ExprMixin<ExprType::Return> ReturnExpr; @@ -289,6 +299,38 @@ class SimdShuffleOpExpr : public ExprMixin<ExprType::SimdShuffleOp> { v128 val; }; +class MemoryInitExpr : public ExprMixin<ExprType::MemoryInit> { + public: + MemoryInitExpr(Index segment, const Location& loc = Location()) + : ExprMixin<ExprType::MemoryInit>(loc), segment(segment) {} + + Index segment; +}; + +class MemoryDropExpr : public ExprMixin<ExprType::MemoryDrop> { + public: + MemoryDropExpr(Index segment, const Location& loc = Location()) + : ExprMixin<ExprType::MemoryDrop>(loc), segment(segment) {} + + Index segment; +}; + +class TableInitExpr : public ExprMixin<ExprType::TableInit> { + public: + TableInitExpr(Index segment, const Location& loc = Location()) + : ExprMixin<ExprType::TableInit>(loc), segment(segment) {} + + Index segment; +}; + +class TableDropExpr : public ExprMixin<ExprType::TableDrop> { + public: + TableDropExpr(Index segment, const Location& loc = Location()) + : ExprMixin<ExprType::TableDrop>(loc), segment(segment) {} + + Index segment; +}; + template <ExprType TypeEnum> class VarExpr : public ExprMixin<TypeEnum> { public: @@ -513,6 +555,7 @@ struct Table { struct ElemSegment { Var table_var; + bool passive = false; ExprList offset; VarVector vars; }; @@ -526,6 +569,7 @@ struct Memory { struct DataSegment { Var memory_var; + bool passive = false; ExprList offset; std::vector<uint8_t> data; }; diff --git a/src/opcode.cc b/src/opcode.cc index 44dddfde..8c07f70c 100644 --- a/src/opcode.cc +++ b/src/opcode.cc @@ -298,6 +298,15 @@ bool Opcode::IsEnabled(const Features& features) const { case Opcode::I64X2TruncUF64X2Sat: return features.simd_enabled(); + case Opcode::MemoryInit: + case Opcode::MemoryDrop: + case Opcode::MemoryCopy: + case Opcode::MemoryFill: + case Opcode::TableInit: + case Opcode::TableDrop: + case Opcode::TableCopy: + return features.bulk_memory_enabled(); + // Interpreter opcodes are never "enabled". case Opcode::InterpAlloca: case Opcode::InterpBrUnless: diff --git a/src/opcode.def b/src/opcode.def index 87f737d6..d9380732 100644 --- a/src/opcode.def +++ b/src/opcode.def @@ -238,6 +238,15 @@ WABT_OPCODE(I64, F32, ___, ___, 0, 0xfc, 0x05, I64TruncUSatF32, "i64.trunc_ WABT_OPCODE(I64, F64, ___, ___, 0, 0xfc, 0x06, I64TruncSSatF64, "i64.trunc_s:sat/f64") WABT_OPCODE(I64, F64, ___, ___, 0, 0xfc, 0x07, I64TruncUSatF64, "i64.trunc_u:sat/f64") +/* Bulk-memory (--enable-bulk-memory) */ +WABT_OPCODE(___, I32, I32, I32, 0, 0xfc, 0x08, MemoryInit, "memory.init") +WABT_OPCODE(___, ___, ___, ___, 0, 0xfc, 0x09, MemoryDrop, "memory.drop") +WABT_OPCODE(___, I32, I32, I32, 0, 0xfc, 0x0a, MemoryCopy, "memory.copy") +WABT_OPCODE(___, I32, I32, I32, 0, 0xfc, 0x0b, MemoryFill, "memory.fill") +WABT_OPCODE(___, I32, I32, I32, 0, 0xfc, 0x0c, TableInit, "table.init") +WABT_OPCODE(___, ___, ___, ___, 0, 0xfc, 0x0d, TableDrop, "table.drop") +WABT_OPCODE(___, I32, I32, I32, 0, 0xfc, 0x0e, TableCopy, "table.copy") + /* Simd opcodes (--enable-simd) */ WABT_OPCODE(V128, ___, ___, ___, 0, 0xfd, 0x00, V128Const, "v128.const") WABT_OPCODE(V128, I32, ___, ___, 16, 0xfd, 0x01, V128Load, "v128.load") diff --git a/src/prebuilt/wast-lexer-gen.cc b/src/prebuilt/wast-lexer-gen.cc index 6f969a1a..a03b7721 100644 --- a/src/prebuilt/wast-lexer-gen.cc +++ b/src/prebuilt/wast-lexer-gen.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 1.0.3 */ +/* Generated by re2c 1.0.1 on Thu Oct 11 23:03:28 2018 */ #line 1 "src/wast-lexer.cc" /* * Copyright 2016 WebAssembly Community Group participants @@ -358,7 +358,7 @@ YYCOND_i: yy3: ++cursor_; yy4: -#line 714 "src/wast-lexer.cc" +#line 722 "src/wast-lexer.cc" { ERROR("unexpected char"); continue; } #line 364 "src/prebuilt/wast-lexer-gen.cc" yy5: @@ -368,12 +368,12 @@ yy5: if (yybm[0+yych] & 4) { goto yy5; } -#line 712 "src/wast-lexer.cc" +#line 720 "src/wast-lexer.cc" { continue; } #line 374 "src/prebuilt/wast-lexer-gen.cc" yy8: ++cursor_; -#line 711 "src/wast-lexer.cc" +#line 719 "src/wast-lexer.cc" { NEWLINE; continue; } #line 379 "src/prebuilt/wast-lexer-gen.cc" yy10: @@ -385,7 +385,7 @@ yy11: goto yy10; } yy12: -#line 713 "src/wast-lexer.cc" +#line 721 "src/wast-lexer.cc" { RETURN_TEXT(Reserved); } #line 391 "src/prebuilt/wast-lexer-gen.cc" yy13: @@ -637,7 +637,7 @@ yy44: yy45: ++cursor_; yy46: -#line 715 "src/wast-lexer.cc" +#line 723 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } #line 643 "src/prebuilt/wast-lexer-gen.cc" yy47: @@ -806,13 +806,13 @@ yy66: if (yych <= ';') goto yy67; if (yych <= '}') goto yy10; yy67: -#line 696 "src/wast-lexer.cc" +#line 704 "src/wast-lexer.cc" { RETURN_TEXT(Var); } #line 812 "src/prebuilt/wast-lexer-gen.cc" yy68: ++cursor_; BEGIN(YYCOND_BLOCK_COMMENT); -#line 702 "src/wast-lexer.cc" +#line 710 "src/wast-lexer.cc" { COMMENT_NESTING = 1; continue; } #line 818 "src/prebuilt/wast-lexer-gen.cc" yy70: @@ -935,7 +935,7 @@ yy80: yy81: ++cursor_; BEGIN(YYCOND_LINE_COMMENT); -#line 699 "src/wast-lexer.cc" +#line 707 "src/wast-lexer.cc" { continue; } #line 941 "src/prebuilt/wast-lexer-gen.cc" yy83: @@ -1115,67 +1115,69 @@ yy118: goto yy11; yy119: yych = *++cursor_; - if (yych == 'r') goto yy195; + if (yych <= 'q') goto yy11; + if (yych <= 'r') goto yy195; + if (yych <= 's') goto yy196; goto yy11; yy120: yych = *++cursor_; - if (yych == 'o') goto yy196; + if (yych == 'o') goto yy197; goto yy11; yy121: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'g') goto yy197; + if (yych == 'g') goto yy198; goto yy11; } else { - if (yych <= 's') goto yy198; - if (yych <= 't') goto yy199; + if (yych <= 's') goto yy199; + if (yych <= 't') goto yy200; goto yy11; } yy122: yych = *++cursor_; - if (yych == 'l') goto yy200; - if (yych == 't') goto yy201; + if (yych == 'l') goto yy201; + if (yych == 't') goto yy202; goto yy11; yy123: yych = *++cursor_; - if (yych == 'a') goto yy202; + if (yych == 'a') goto yy203; goto yy11; yy124: yych = *++cursor_; - if (yych == 'a') goto yy203; + if (yych == 'a') goto yy204; goto yy11; yy125: yych = *++cursor_; - if (yych == 'b') goto yy204; + if (yych == 'b') goto yy205; goto yy11; yy126: yych = *++cursor_; - if (yych == 'e') goto yy205; + if (yych == 'e') goto yy206; goto yy11; yy127: yych = *++cursor_; - if (yych == 'e') goto yy206; - if (yych == 'r') goto yy207; + if (yych == 'e') goto yy207; + if (yych == 'r') goto yy208; goto yy11; yy128: yych = *++cursor_; - if (yych == 'y') goto yy208; + if (yych == 'y') goto yy209; goto yy11; yy129: yych = *++cursor_; - if (yych == 'p') goto yy210; + if (yych == 'p') goto yy211; goto yy11; yy130: yych = *++cursor_; - if (yych == 'r') goto yy211; + if (yych == 'r') goto yy212; goto yy11; yy131: yych = *++cursor_; - if (yych == '2') goto yy212; + if (yych == '2') goto yy213; goto yy11; yy132: yych = *++cursor_; - if (yych == 'x') goto yy213; + if (yych == 'x') goto yy214; goto yy11; yy133: yych = *++cursor_; @@ -1237,16 +1239,16 @@ yy137: if (yych <= '\'') goto yy10; if (yych <= ')') goto yy12; if (yych <= '/') goto yy10; - goto yy214; + goto yy215; } } else { if (yych <= 'F') { if (yych == ';') goto yy12; if (yych <= '@') goto yy10; - goto yy214; + goto yy215; } else { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy214; + if (yych <= 'f') goto yy215; if (yych <= '~') goto yy10; goto yy12; } @@ -1278,7 +1280,7 @@ yy140: goto yy10; } else { if (yych <= 'd') { - if (yych <= '_') goto yy216; + if (yych <= '_') goto yy217; goto yy10; } else { if (yych <= 'e') goto yy78; @@ -1348,20 +1350,20 @@ yy144: goto yy10; } else { if (yych <= ')') goto yy22; - if (yych == '.') goto yy217; + if (yych == '.') goto yy218; goto yy10; } } else { if (yych <= '^') { if (yych <= ';') goto yy22; - if (yych == 'P') goto yy219; + if (yych == 'P') goto yy220; goto yy10; } else { if (yych <= 'o') { if (yych <= '_') goto yy80; goto yy10; } else { - if (yych <= 'p') goto yy219; + if (yych <= 'p') goto yy220; if (yych <= '~') goto yy10; goto yy22; } @@ -1369,60 +1371,60 @@ yy144: } yy146: yych = *++cursor_; - if (yych == 'g') goto yy220; + if (yych == 'g') goto yy221; goto yy11; yy147: yych = *++cursor_; - if (yych == 'f') goto yy221; + if (yych == 'f') goto yy222; goto yy11; yy148: yych = *++cursor_; - if (yych == 'e') goto yy222; + if (yych == 'e') goto yy223; goto yy11; yy149: yych = *++cursor_; - if (yych == 'm') goto yy223; + if (yych == 'm') goto yy224; goto yy11; yy150: yych = *++cursor_; - if (yych == 'a') goto yy224; + if (yych == 'a') goto yy225; goto yy11; yy151: yych = *++cursor_; - if (yych == 'c') goto yy225; + if (yych == 'c') goto yy226; goto yy11; yy152: yych = *++cursor_; - if (yych == 'i') goto yy226; - if (yych == 't') goto yy227; + if (yych == 'i') goto yy227; + if (yych == 't') goto yy228; goto yy11; yy153: yych = *++cursor_; - if (yych == 'l') goto yy228; + if (yych == 'l') goto yy229; goto yy11; yy154: yych = *++cursor_; - if (yych == 'c') goto yy230; + if (yych == 'c') goto yy231; goto yy11; yy155: yych = *++cursor_; - if (yych == 'r') goto yy231; + if (yych == 'r') goto yy232; goto yy11; yy156: yych = *++cursor_; - if (yych == 'a') goto yy232; + if (yych == 'a') goto yy233; goto yy11; yy157: yych = *++cursor_; - if (yych == 'p') goto yy234; + if (yych == 'p') goto yy235; goto yy11; yy158: yych = *++cursor_; - if (yych == 'm') goto yy236; + if (yych == 'm') goto yy237; goto yy11; yy159: yych = *++cursor_; - if (yych == 'e') goto yy238; + if (yych == 'e') goto yy239; goto yy11; yy160: yych = *++cursor_; @@ -1431,14 +1433,14 @@ yy160: } #line 274 "src/wast-lexer.cc" { RETURN_OPCODE0(End); } -#line 1435 "src/prebuilt/wast-lexer-gen.cc" +#line 1437 "src/prebuilt/wast-lexer-gen.cc" yy162: yych = *++cursor_; - if (yych == 'e') goto yy240; + if (yych == 'e') goto yy241; goto yy11; yy163: yych = *++cursor_; - if (yych == 'o') goto yy241; + if (yych == 'o') goto yy242; goto yy11; yy164: yych = *++cursor_; @@ -1451,16 +1453,16 @@ yy164: } } else { if (yych <= ';') { - if (yych <= '.') goto yy242; + if (yych <= '.') goto yy243; if (yych <= ':') goto yy10; } else { - if (yych == 'x') goto yy243; + if (yych == 'x') goto yy244; if (yych <= '~') goto yy10; } } #line 257 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, F32); } -#line 1464 "src/prebuilt/wast-lexer-gen.cc" +#line 1466 "src/prebuilt/wast-lexer-gen.cc" yy166: yych = *++cursor_; if (yych <= '-') { @@ -1472,19 +1474,19 @@ yy166: } } else { if (yych <= ';') { - if (yych <= '.') goto yy244; + if (yych <= '.') goto yy245; if (yych <= ':') goto yy10; } else { - if (yych == 'x') goto yy245; + if (yych == 'x') goto yy246; if (yych <= '~') goto yy10; } } #line 258 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, F64); } -#line 1485 "src/prebuilt/wast-lexer-gen.cc" +#line 1487 "src/prebuilt/wast-lexer-gen.cc" yy168: yych = *++cursor_; - if (yych == 'c') goto yy246; + if (yych == 'c') goto yy247; goto yy11; yy169: yych = *++cursor_; @@ -1499,25 +1501,25 @@ yy169: if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy248; + if (yych <= '_') goto yy249; if (yych <= '~') goto yy10; } } yy170: -#line 682 "src/wast-lexer.cc" +#line 690 "src/wast-lexer.cc" { RETURN(Get); } -#line 1510 "src/prebuilt/wast-lexer-gen.cc" +#line 1512 "src/prebuilt/wast-lexer-gen.cc" yy171: yych = *++cursor_; - if (yych == 'b') goto yy249; + if (yych == 'b') goto yy250; goto yy11; yy172: yych = *++cursor_; - if (yych == 'w') goto yy250; + if (yych == 'w') goto yy251; goto yy11; yy173: yych = *++cursor_; - if (yych == 'x') goto yy251; + if (yych == 'x') goto yy252; goto yy11; yy174: yych = *++cursor_; @@ -1530,16 +1532,16 @@ yy174: } } else { if (yych <= ';') { - if (yych <= '.') goto yy252; + if (yych <= '.') goto yy253; if (yych <= ':') goto yy10; } else { - if (yych == 'x') goto yy253; + if (yych == 'x') goto yy254; if (yych <= '~') goto yy10; } } #line 255 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, I32); } -#line 1543 "src/prebuilt/wast-lexer-gen.cc" +#line 1545 "src/prebuilt/wast-lexer-gen.cc" yy176: yych = *++cursor_; if (yych <= '-') { @@ -1551,27 +1553,27 @@ yy176: } } else { if (yych <= ';') { - if (yych <= '.') goto yy254; + if (yych <= '.') goto yy255; if (yych <= ':') goto yy10; } else { - if (yych == 'x') goto yy255; + if (yych == 'x') goto yy256; if (yych <= '~') goto yy10; } } #line 256 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, I64); } -#line 1564 "src/prebuilt/wast-lexer-gen.cc" +#line 1566 "src/prebuilt/wast-lexer-gen.cc" yy178: yych = *++cursor_; - if (yych == '1') goto yy256; + if (yych == '1') goto yy257; goto yy11; yy179: yych = *++cursor_; - if (yych == 'e') goto yy257; + if (yych == 'e') goto yy258; goto yy11; yy180: yych = *++cursor_; - if (yych == 'o') goto yy258; + if (yych == 'o') goto yy259; goto yy11; yy181: yych = *++cursor_; @@ -1580,26 +1582,26 @@ yy181: } #line 240 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Infinity); } -#line 1584 "src/prebuilt/wast-lexer-gen.cc" +#line 1586 "src/prebuilt/wast-lexer-gen.cc" yy183: yych = *++cursor_; - if (yych == 'o') goto yy259; + if (yych == 'o') goto yy260; goto yy11; yy184: yych = *++cursor_; - if (yych == 'a') goto yy260; + if (yych == 'a') goto yy261; goto yy11; yy185: yych = *++cursor_; - if (yych == 'p') goto yy261; + if (yych == 'p') goto yy262; goto yy11; yy186: yych = *++cursor_; - if (yych == 'o') goto yy263; + if (yych == 'o') goto yy264; goto yy11; yy187: yych = *++cursor_; - if (yych == 'u') goto yy264; + if (yych == 'u') goto yy265; goto yy11; yy188: yych = *++cursor_; @@ -1608,7 +1610,7 @@ yy188: } #line 261 "src/wast-lexer.cc" { RETURN(Mut); } -#line 1612 "src/prebuilt/wast-lexer-gen.cc" +#line 1614 "src/prebuilt/wast-lexer-gen.cc" yy190: yych = *++cursor_; if (yych <= ')') { @@ -1621,7 +1623,7 @@ yy190: } else { if (yych <= ':') { if (yych <= '9') goto yy10; - goto yy265; + goto yy266; } else { if (yych <= ';') goto yy191; if (yych <= '~') goto yy10; @@ -1630,7 +1632,7 @@ yy190: yy191: #line 241 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Nan); } -#line 1634 "src/prebuilt/wast-lexer-gen.cc" +#line 1636 "src/prebuilt/wast-lexer-gen.cc" yy192: yych = *++cursor_; if (yybm[0+yych] & 8) { @@ -1638,89 +1640,93 @@ yy192: } #line 262 "src/wast-lexer.cc" { RETURN_OPCODE0(Nop); } -#line 1642 "src/prebuilt/wast-lexer-gen.cc" +#line 1644 "src/prebuilt/wast-lexer-gen.cc" yy194: yych = *++cursor_; - if (yych == 's') goto yy266; + if (yych == 's') goto yy267; goto yy11; yy195: yych = *++cursor_; - if (yych == 'a') goto yy267; + if (yych == 'a') goto yy268; goto yy11; yy196: yych = *++cursor_; - if (yych == 't') goto yy268; + if (yych == 's') goto yy269; goto yy11; yy197: yych = *++cursor_; - if (yych == 'i') goto yy269; + if (yych == 't') goto yy270; goto yy11; yy198: yych = *++cursor_; - if (yych == 'u') goto yy270; + if (yych == 'i') goto yy271; goto yy11; yy199: yych = *++cursor_; - if (yych == 'h') goto yy271; if (yych == 'u') goto yy272; goto yy11; yy200: yych = *++cursor_; - if (yych == 'e') goto yy273; + if (yych == 'h') goto yy273; + if (yych == 'u') goto yy274; goto yy11; yy201: yych = *++cursor_; - if (yych == '_') goto yy274; + if (yych == 'e') goto yy275; goto yy11; yy202: yych = *++cursor_; - if (yych == 'r') goto yy275; + if (yych == '_') goto yy276; goto yy11; yy203: yych = *++cursor_; - if (yych == 'r') goto yy276; + if (yych == 'r') goto yy277; goto yy11; yy204: yych = *++cursor_; - if (yych == 'l') goto yy277; + if (yych == 'r') goto yy278; goto yy11; yy205: yych = *++cursor_; - if (yych == '_') goto yy278; + if (yych == 'l') goto yy279; goto yy11; yy206: yych = *++cursor_; - if (yych == 'n') goto yy279; + if (yych == '_') goto yy280; goto yy11; yy207: yych = *++cursor_; - if (yych == 'o') goto yy281; + if (yych == 'n') goto yy281; goto yy11; yy208: yych = *++cursor_; + if (yych == 'o') goto yy283; + goto yy11; +yy209: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 691 "src/wast-lexer.cc" +#line 699 "src/wast-lexer.cc" { RETURN_OPCODE0(Try); } -#line 1707 "src/prebuilt/wast-lexer-gen.cc" -yy210: - yych = *++cursor_; - if (yych == 'e') goto yy282; - goto yy11; +#line 1713 "src/prebuilt/wast-lexer-gen.cc" yy211: yych = *++cursor_; if (yych == 'e') goto yy284; goto yy11; yy212: yych = *++cursor_; - if (yych == '8') goto yy285; + if (yych == 'e') goto yy286; goto yy11; yy213: yych = *++cursor_; - if (yych == '1') goto yy287; + if (yych == '8') goto yy287; goto yy11; yy214: + yych = *++cursor_; + if (yych == '1') goto yy289; + goto yy11; +yy215: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; @@ -1736,10 +1742,10 @@ yy214: } } else { if (yych <= '/') { - if (yych == '.') goto yy217; + if (yych == '.') goto yy218; goto yy10; } else { - if (yych <= '9') goto yy214; + if (yych <= '9') goto yy215; if (yych <= ':') goto yy10; goto yy71; } @@ -1748,26 +1754,26 @@ yy214: if (yych <= '_') { if (yych <= 'O') { if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy214; + if (yych <= 'F') goto yy215; goto yy10; } else { - if (yych <= 'P') goto yy219; + if (yych <= 'P') goto yy220; if (yych <= '^') goto yy10; goto yy137; } } else { if (yych <= 'o') { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy214; + if (yych <= 'f') goto yy215; goto yy10; } else { - if (yych <= 'p') goto yy219; + if (yych <= 'p') goto yy220; if (yych <= '~') goto yy10; goto yy71; } } } -yy216: +yy217: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -1791,325 +1797,321 @@ yy216: goto yy12; } } -yy217: +yy218: yych = *++cursor_; if (yych == '_') goto yy10; - goto yy289; -yy218: + goto yy291; +yy219: #line 239 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Hexfloat); } -#line 1802 "src/prebuilt/wast-lexer-gen.cc" -yy219: +#line 1808 "src/prebuilt/wast-lexer-gen.cc" +yy220: yych = *++cursor_; if (yych <= ',') { - if (yych == '+') goto yy290; + if (yych == '+') goto yy292; goto yy11; } else { - if (yych <= '-') goto yy290; + if (yych <= '-') goto yy292; if (yych <= '/') goto yy11; - if (yych <= '9') goto yy291; + if (yych <= '9') goto yy293; goto yy11; } -yy220: - yych = *++cursor_; - if (yych == 'n') goto yy293; - goto yy11; yy221: yych = *++cursor_; - if (yych == 'u') goto yy294; + if (yych == 'n') goto yy295; goto yy11; yy222: yych = *++cursor_; - if (yych == 'r') goto yy295; + if (yych == 'u') goto yy296; goto yy11; yy223: yych = *++cursor_; - if (yych == 'i') goto yy296; + if (yych == 'r') goto yy297; goto yy11; yy224: yych = *++cursor_; - if (yych == 'r') goto yy297; + if (yych == 'i') goto yy298; goto yy11; yy225: yych = *++cursor_; - if (yych == 'k') goto yy298; + if (yych == 'r') goto yy299; goto yy11; yy226: yych = *++cursor_; - if (yych == 'f') goto yy300; + if (yych == 'k') goto yy300; goto yy11; yy227: yych = *++cursor_; - if (yych == 'a') goto yy302; + if (yych == 'f') goto yy302; goto yy11; yy228: yych = *++cursor_; + if (yych == 'a') goto yy304; + goto yy11; +yy229: + yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy229; + if (yych <= '"') goto yy230; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy303; + if (yych <= '_') goto yy305; if (yych <= '~') goto yy10; } } -yy229: +yy230: #line 271 "src/wast-lexer.cc" { RETURN_OPCODE0(Call); } -#line 1866 "src/prebuilt/wast-lexer-gen.cc" -yy230: - yych = *++cursor_; - if (yych == 'h') goto yy304; - goto yy11; +#line 1872 "src/prebuilt/wast-lexer-gen.cc" yy231: yych = *++cursor_; - if (yych == 'e') goto yy306; + if (yych == 'h') goto yy306; goto yy11; yy232: yych = *++cursor_; + if (yych == 'e') goto yy308; + goto yy11; +yy233: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 675 "src/wast-lexer.cc" +#line 682 "src/wast-lexer.cc" { RETURN(Data); } -#line 1882 "src/prebuilt/wast-lexer-gen.cc" -yy234: +#line 1888 "src/prebuilt/wast-lexer-gen.cc" +yy235: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 273 "src/wast-lexer.cc" { RETURN_OPCODE0(Drop); } -#line 1890 "src/prebuilt/wast-lexer-gen.cc" -yy236: +#line 1896 "src/prebuilt/wast-lexer-gen.cc" +yy237: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 674 "src/wast-lexer.cc" +#line 681 "src/wast-lexer.cc" { RETURN(Elem); } -#line 1898 "src/prebuilt/wast-lexer-gen.cc" -yy238: +#line 1904 "src/prebuilt/wast-lexer-gen.cc" +yy239: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 266 "src/wast-lexer.cc" { RETURN_OPCODE0(Else); } -#line 1906 "src/prebuilt/wast-lexer-gen.cc" -yy240: - yych = *++cursor_; - if (yych == 'p') goto yy307; - goto yy11; +#line 1912 "src/prebuilt/wast-lexer-gen.cc" yy241: yych = *++cursor_; - if (yych == 'r') goto yy308; + if (yych == 'p') goto yy309; goto yy11; yy242: yych = *++cursor_; + if (yych == 'r') goto yy310; + goto yy11; +yy243: + yych = *++cursor_; switch (yych) { - case 'a': goto yy309; - case 'c': goto yy310; - case 'd': goto yy311; - case 'e': goto yy312; - case 'f': goto yy313; - case 'g': goto yy314; - case 'l': goto yy315; - case 'm': goto yy316; - case 'n': goto yy317; - case 'r': goto yy318; - case 's': goto yy319; - case 't': goto yy320; + case 'a': goto yy311; + case 'c': goto yy312; + case 'd': goto yy313; + case 'e': goto yy314; + case 'f': goto yy315; + case 'g': goto yy316; + case 'l': goto yy317; + case 'm': goto yy318; + case 'n': goto yy319; + case 'r': goto yy320; + case 's': goto yy321; + case 't': goto yy322; default: goto yy11; } -yy243: +yy244: yych = *++cursor_; - if (yych == '4') goto yy321; + if (yych == '4') goto yy323; goto yy11; -yy244: +yy245: yych = *++cursor_; switch (yych) { - case 'a': goto yy322; - case 'c': goto yy323; - case 'd': goto yy324; - case 'e': goto yy325; - case 'f': goto yy326; - case 'g': goto yy327; - case 'l': goto yy328; - case 'm': goto yy329; - case 'n': goto yy330; - case 'p': goto yy331; - case 'r': goto yy332; - case 's': goto yy333; - case 't': goto yy334; + case 'a': goto yy324; + case 'c': goto yy325; + case 'd': goto yy326; + case 'e': goto yy327; + case 'f': goto yy328; + case 'g': goto yy329; + case 'l': goto yy330; + case 'm': goto yy331; + case 'n': goto yy332; + case 'p': goto yy333; + case 'r': goto yy334; + case 's': goto yy335; + case 't': goto yy336; default: goto yy11; } -yy245: +yy246: yych = *++cursor_; - if (yych == '2') goto yy335; + if (yych == '2') goto yy337; goto yy11; -yy246: +yy247: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 663 "src/wast-lexer.cc" +#line 670 "src/wast-lexer.cc" { RETURN(Func); } -#line 1965 "src/prebuilt/wast-lexer-gen.cc" -yy248: - yych = *++cursor_; - if (yych == 'g') goto yy336; - if (yych == 'l') goto yy337; - goto yy11; +#line 1971 "src/prebuilt/wast-lexer-gen.cc" yy249: yych = *++cursor_; - if (yych == 'a') goto yy338; + if (yych == 'g') goto yy338; + if (yych == 'l') goto yy339; goto yy11; yy250: yych = *++cursor_; - if (yych == '_') goto yy339; + if (yych == 'a') goto yy340; goto yy11; yy251: yych = *++cursor_; - if (yych == '8') goto yy340; + if (yych == '_') goto yy341; goto yy11; yy252: yych = *++cursor_; + if (yych == '8') goto yy342; + goto yy11; +yy253: + yych = *++cursor_; switch (yych) { - case 'a': goto yy341; - case 'c': goto yy342; - case 'd': goto yy343; - case 'e': goto yy344; - case 'g': goto yy345; - case 'l': goto yy346; - case 'm': goto yy347; - case 'n': goto yy348; - case 'o': goto yy349; - case 'p': goto yy350; - case 'r': goto yy351; - case 's': goto yy352; - case 't': goto yy353; - case 'w': goto yy354; - case 'x': goto yy355; + case 'a': goto yy343; + case 'c': goto yy344; + case 'd': goto yy345; + case 'e': goto yy346; + case 'g': goto yy347; + case 'l': goto yy348; + case 'm': goto yy349; + case 'n': goto yy350; + case 'o': goto yy351; + case 'p': goto yy352; + case 'r': goto yy353; + case 's': goto yy354; + case 't': goto yy355; + case 'w': goto yy356; + case 'x': goto yy357; default: goto yy11; } -yy253: +yy254: yych = *++cursor_; - if (yych == '4') goto yy356; + if (yych == '4') goto yy358; goto yy11; -yy254: +yy255: yych = *++cursor_; switch (yych) { - case 'a': goto yy357; - case 'c': goto yy358; - case 'd': goto yy359; - case 'e': goto yy360; - case 'g': goto yy361; - case 'l': goto yy362; - case 'm': goto yy363; - case 'n': goto yy364; - case 'o': goto yy365; - case 'p': goto yy366; - case 'r': goto yy367; - case 's': goto yy368; - case 't': goto yy369; - case 'x': goto yy370; + case 'a': goto yy359; + case 'c': goto yy360; + case 'd': goto yy361; + case 'e': goto yy362; + case 'g': goto yy363; + case 'l': goto yy364; + case 'm': goto yy365; + case 'n': goto yy366; + case 'o': goto yy367; + case 'p': goto yy368; + case 'r': goto yy369; + case 's': goto yy370; + case 't': goto yy371; + case 'x': goto yy372; default: goto yy11; } -yy255: - yych = *++cursor_; - if (yych == '2') goto yy371; - goto yy11; yy256: yych = *++cursor_; - if (yych == '6') goto yy372; + if (yych == '2') goto yy373; goto yy11; yy257: yych = *++cursor_; - if (yych == 'x') goto yy373; + if (yych == '6') goto yy374; goto yy11; yy258: yych = *++cursor_; - if (yych == 'r') goto yy374; + if (yych == 'x') goto yy375; goto yy11; yy259: yych = *++cursor_; - if (yych == 'k') goto yy375; + if (yych == 'r') goto yy376; goto yy11; yy260: yych = *++cursor_; - if (yych == 'l') goto yy376; + if (yych == 'k') goto yy377; goto yy11; yy261: yych = *++cursor_; + if (yych == 'l') goto yy378; + goto yy11; +yy262: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 267 "src/wast-lexer.cc" { RETURN_OPCODE0(Loop); } -#line 2057 "src/prebuilt/wast-lexer-gen.cc" -yy263: - yych = *++cursor_; - if (yych == 'r') goto yy378; - goto yy11; +#line 2063 "src/prebuilt/wast-lexer-gen.cc" yy264: yych = *++cursor_; - if (yych == 'l') goto yy379; + if (yych == 'r') goto yy380; goto yy11; yy265: yych = *++cursor_; - if (yych == '0') goto yy380; + if (yych == 'l') goto yy381; goto yy11; yy266: yych = *++cursor_; - if (yych == 'e') goto yy381; + if (yych == '0') goto yy382; goto yy11; yy267: yych = *++cursor_; - if (yych == 'm') goto yy382; + if (yych == 'e') goto yy383; goto yy11; yy268: yych = *++cursor_; - if (yych == 'e') goto yy384; + if (yych == 'm') goto yy384; goto yy11; yy269: yych = *++cursor_; - if (yych == 's') goto yy386; + if (yych == 'i') goto yy386; goto yy11; yy270: yych = *++cursor_; - if (yych == 'l') goto yy387; + if (yych == 'e') goto yy387; goto yy11; yy271: yych = *++cursor_; - if (yych == 'r') goto yy388; + if (yych == 's') goto yy389; goto yy11; yy272: yych = *++cursor_; - if (yych == 'r') goto yy389; + if (yych == 'l') goto yy390; goto yy11; yy273: yych = *++cursor_; - if (yych == 'c') goto yy390; + if (yych == 'r') goto yy391; goto yy11; yy274: yych = *++cursor_; - if (yych == 'g') goto yy391; - if (yych == 'l') goto yy392; + if (yych == 'r') goto yy392; goto yy11; yy275: yych = *++cursor_; - if (yych == 'e') goto yy393; + if (yych == 'c') goto yy393; goto yy11; yy276: yych = *++cursor_; - if (yych == 't') goto yy394; + if (yych == 'g') goto yy394; + if (yych == 'l') goto yy395; goto yy11; yy277: yych = *++cursor_; @@ -2117,105 +2119,113 @@ yy277: goto yy11; yy278: yych = *++cursor_; - if (yych == 'l') goto yy398; + if (yych == 't') goto yy397; goto yy11; yy279: yych = *++cursor_; + if (yych == 'e') goto yy399; + goto yy11; +yy280: + yych = *++cursor_; + if (yych == 'l') goto yy401; + goto yy11; +yy281: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 265 "src/wast-lexer.cc" { RETURN(Then); } -#line 2130 "src/prebuilt/wast-lexer-gen.cc" -yy281: +#line 2140 "src/prebuilt/wast-lexer-gen.cc" +yy283: yych = *++cursor_; - if (yych == 'w') goto yy399; + if (yych == 'w') goto yy402; goto yy11; -yy282: +yy284: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 662 "src/wast-lexer.cc" +#line 669 "src/wast-lexer.cc" { RETURN(Type); } -#line 2142 "src/prebuilt/wast-lexer-gen.cc" -yy284: +#line 2152 "src/prebuilt/wast-lexer-gen.cc" +yy286: yych = *++cursor_; - if (yych == 'a') goto yy401; + if (yych == 'a') goto yy404; goto yy11; -yy285: +yy287: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy286; + if (yych <= '"') goto yy288; if (yych <= '\'') goto yy10; } } else { if (yych <= ':') { - if (yych == '.') goto yy402; + if (yych == '.') goto yy405; goto yy10; } else { - if (yych <= ';') goto yy286; + if (yych <= ';') goto yy288; if (yych <= '~') goto yy10; } } -yy286: +yy288: #line 259 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, V128); } -#line 2168 "src/prebuilt/wast-lexer-gen.cc" -yy287: +#line 2178 "src/prebuilt/wast-lexer-gen.cc" +yy289: yych = *++cursor_; - if (yych == '6') goto yy403; + if (yych == '6') goto yy406; goto yy11; -yy288: +yy290: ++cursor_; if ((limit_ - cursor_) < 2) FILL(2); yych = *cursor_; -yy289: +yy291: if (yych <= '@') { if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy218; + if (yych <= ' ') goto yy219; goto yy10; } else { - if (yych <= '"') goto yy218; + if (yych <= '"') goto yy219; if (yych <= '\'') goto yy10; - goto yy218; + goto yy219; } } else { if (yych <= '9') { if (yych <= '/') goto yy10; - goto yy288; + goto yy290; } else { - if (yych == ';') goto yy218; + if (yych == ';') goto yy219; goto yy10; } } } else { if (yych <= '_') { if (yych <= 'O') { - if (yych <= 'F') goto yy288; + if (yych <= 'F') goto yy290; goto yy10; } else { - if (yych <= 'P') goto yy219; + if (yych <= 'P') goto yy220; if (yych <= '^') goto yy10; - goto yy404; + goto yy407; } } else { if (yych <= 'o') { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy288; + if (yych <= 'f') goto yy290; goto yy10; } else { - if (yych <= 'p') goto yy219; + if (yych <= 'p') goto yy220; if (yych <= '~') goto yy10; - goto yy218; + goto yy219; } } } -yy290: +yy292: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -2238,581 +2248,599 @@ yy290: goto yy12; } } -yy291: +yy293: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '/') { if (yych <= '"') { if (yych == '!') goto yy10; - goto yy218; + goto yy219; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy218; + if (yych <= ')') goto yy219; goto yy10; } } else { if (yych <= ';') { - if (yych <= '9') goto yy291; + if (yych <= '9') goto yy293; if (yych <= ':') goto yy10; - goto yy218; + goto yy219; } else { - if (yych == '_') goto yy290; + if (yych == '_') goto yy292; if (yych <= '~') goto yy10; - goto yy218; + goto yy219; } } -yy293: - yych = *++cursor_; - if (yych == '=') goto yy405; - goto yy11; -yy294: - yych = *++cursor_; - if (yych == 'n') goto yy406; - goto yy11; yy295: yych = *++cursor_; - if (yych == 't') goto yy407; + if (yych == '=') goto yy408; goto yy11; yy296: yych = *++cursor_; - if (yych == 'c') goto yy408; + if (yych == 'n') goto yy409; goto yy11; yy297: yych = *++cursor_; - if (yych == 'y') goto yy409; + if (yych == 't') goto yy410; goto yy11; yy298: yych = *++cursor_; + if (yych == 'c') goto yy411; + goto yy11; +yy299: + yych = *++cursor_; + if (yych == 'y') goto yy412; + goto yy11; +yy300: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 263 "src/wast-lexer.cc" { RETURN_OPCODE0(Block); } -#line 2293 "src/prebuilt/wast-lexer-gen.cc" -yy300: +#line 2303 "src/prebuilt/wast-lexer-gen.cc" +yy302: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 269 "src/wast-lexer.cc" { RETURN_OPCODE0(BrIf); } -#line 2301 "src/prebuilt/wast-lexer-gen.cc" -yy302: +#line 2311 "src/prebuilt/wast-lexer-gen.cc" +yy304: yych = *++cursor_; - if (yych == 'b') goto yy411; + if (yych == 'b') goto yy414; goto yy11; -yy303: +yy305: yych = *++cursor_; - if (yych == 'i') goto yy412; + if (yych == 'i') goto yy415; goto yy11; -yy304: +yy306: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 692 "src/wast-lexer.cc" +#line 700 "src/wast-lexer.cc" { RETURN_OPCODE0(Catch); } -#line 2317 "src/prebuilt/wast-lexer-gen.cc" -yy306: - yych = *++cursor_; - if (yych == 'n') goto yy413; - goto yy11; -yy307: - yych = *++cursor_; - if (yych == 't') goto yy414; - goto yy11; +#line 2327 "src/prebuilt/wast-lexer-gen.cc" yy308: yych = *++cursor_; - if (yych == 't') goto yy416; + if (yych == 'n') goto yy416; goto yy11; yy309: yych = *++cursor_; - if (yych == 'b') goto yy418; - if (yych == 'd') goto yy419; + if (yych == 't') goto yy417; goto yy11; yy310: yych = *++cursor_; - if (yych == 'e') goto yy420; - if (yych == 'o') goto yy421; + if (yych == 't') goto yy419; goto yy11; yy311: yych = *++cursor_; - if (yych == 'e') goto yy422; - if (yych == 'i') goto yy423; + if (yych == 'b') goto yy421; + if (yych == 'd') goto yy422; goto yy11; yy312: yych = *++cursor_; - if (yych == 'q') goto yy424; + if (yych == 'e') goto yy423; + if (yych == 'o') goto yy424; goto yy11; yy313: yych = *++cursor_; - if (yych == 'l') goto yy426; + if (yych == 'e') goto yy425; + if (yych == 'i') goto yy426; goto yy11; yy314: yych = *++cursor_; - if (yych == 'e') goto yy427; - if (yych == 't') goto yy429; + if (yych == 'q') goto yy427; goto yy11; yy315: yych = *++cursor_; + if (yych == 'l') goto yy429; + goto yy11; +yy316: + yych = *++cursor_; + if (yych == 'e') goto yy430; + if (yych == 't') goto yy432; + goto yy11; +yy317: + yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy431; + if (yych == 'e') goto yy434; goto yy11; } else { - if (yych <= 'o') goto yy433; - if (yych == 't') goto yy434; + if (yych <= 'o') goto yy436; + if (yych == 't') goto yy437; goto yy11; } -yy316: +yy318: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy436; + if (yych == 'a') goto yy439; goto yy11; } else { - if (yych <= 'i') goto yy437; - if (yych == 'u') goto yy438; + if (yych <= 'i') goto yy440; + if (yych == 'u') goto yy441; goto yy11; } -yy317: +yy319: yych = *++cursor_; - if (yych == 'e') goto yy439; + if (yych == 'e') goto yy442; goto yy11; -yy318: +yy320: yych = *++cursor_; - if (yych == 'e') goto yy441; + if (yych == 'e') goto yy444; goto yy11; -yy319: +yy321: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy442; + if (yych == 'q') goto yy445; goto yy11; } else { - if (yych <= 't') goto yy443; - if (yych <= 'u') goto yy444; + if (yych <= 't') goto yy446; + if (yych <= 'u') goto yy447; goto yy11; } -yy320: - yych = *++cursor_; - if (yych == 'r') goto yy445; - goto yy11; -yy321: - yych = *++cursor_; - if (yych == '.') goto yy446; - goto yy11; yy322: yych = *++cursor_; - if (yych == 'b') goto yy447; - if (yych == 'd') goto yy448; + if (yych == 'r') goto yy448; goto yy11; yy323: yych = *++cursor_; - if (yych == 'e') goto yy449; - if (yych == 'o') goto yy450; + if (yych == '.') goto yy449; goto yy11; yy324: yych = *++cursor_; - if (yych == 'i') goto yy451; + if (yych == 'b') goto yy450; + if (yych == 'd') goto yy451; goto yy11; yy325: yych = *++cursor_; - if (yych == 'q') goto yy452; + if (yych == 'e') goto yy452; + if (yych == 'o') goto yy453; goto yy11; yy326: yych = *++cursor_; - if (yych == 'l') goto yy454; + if (yych == 'i') goto yy454; goto yy11; yy327: yych = *++cursor_; - if (yych == 'e') goto yy455; - if (yych == 't') goto yy457; + if (yych == 'q') goto yy455; goto yy11; yy328: yych = *++cursor_; + if (yych == 'l') goto yy457; + goto yy11; +yy329: + yych = *++cursor_; + if (yych == 'e') goto yy458; + if (yych == 't') goto yy460; + goto yy11; +yy330: + yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy459; + if (yych == 'e') goto yy462; goto yy11; } else { - if (yych <= 'o') goto yy461; - if (yych == 't') goto yy462; + if (yych <= 'o') goto yy464; + if (yych == 't') goto yy465; goto yy11; } -yy329: +yy331: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy464; + if (yych == 'a') goto yy467; goto yy11; } else { - if (yych <= 'i') goto yy465; - if (yych == 'u') goto yy466; + if (yych <= 'i') goto yy468; + if (yych == 'u') goto yy469; goto yy11; } -yy330: +yy332: yych = *++cursor_; - if (yych == 'e') goto yy467; + if (yych == 'e') goto yy470; goto yy11; -yy331: +yy333: yych = *++cursor_; - if (yych == 'r') goto yy469; + if (yych == 'r') goto yy472; goto yy11; -yy332: +yy334: yych = *++cursor_; - if (yych == 'e') goto yy470; + if (yych == 'e') goto yy473; goto yy11; -yy333: +yy335: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy471; + if (yych == 'q') goto yy474; goto yy11; } else { - if (yych <= 't') goto yy472; - if (yych <= 'u') goto yy473; + if (yych <= 't') goto yy475; + if (yych <= 'u') goto yy476; goto yy11; } -yy334: - yych = *++cursor_; - if (yych == 'r') goto yy474; - goto yy11; -yy335: - yych = *++cursor_; - if (yych == '.') goto yy475; - goto yy11; yy336: yych = *++cursor_; - if (yych == 'l') goto yy476; + if (yych == 'r') goto yy477; goto yy11; yy337: yych = *++cursor_; - if (yych == 'o') goto yy477; + if (yych == '.') goto yy478; goto yy11; yy338: yych = *++cursor_; - if (yych == 'l') goto yy478; + if (yych == 'l') goto yy479; goto yy11; yy339: yych = *++cursor_; - if (yych == 'm') goto yy480; + if (yych == 'o') goto yy480; goto yy11; yy340: yych = *++cursor_; - if (yych == '.') goto yy481; + if (yych == 'l') goto yy481; goto yy11; yy341: yych = *++cursor_; + if (yych == 'm') goto yy483; + goto yy11; +yy342: + yych = *++cursor_; + if (yych == '.') goto yy484; + goto yy11; +yy343: + yych = *++cursor_; if (yych <= 'm') { - if (yych == 'd') goto yy482; + if (yych == 'd') goto yy485; goto yy11; } else { - if (yych <= 'n') goto yy483; - if (yych == 't') goto yy484; + if (yych <= 'n') goto yy486; + if (yych == 't') goto yy487; goto yy11; } -yy342: +yy344: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy485; + if (yych == 'l') goto yy488; goto yy11; } else { - if (yych <= 'o') goto yy486; - if (yych == 't') goto yy487; + if (yych <= 'o') goto yy489; + if (yych == 't') goto yy490; goto yy11; } -yy343: +yy345: yych = *++cursor_; - if (yych == 'i') goto yy488; + if (yych == 'i') goto yy491; goto yy11; -yy344: +yy346: yych = *++cursor_; - if (yych == 'q') goto yy489; - if (yych == 'x') goto yy491; + if (yych == 'q') goto yy492; + if (yych == 'x') goto yy494; goto yy11; -yy345: +yy347: yych = *++cursor_; - if (yych == 'e') goto yy492; - if (yych == 't') goto yy493; + if (yych == 'e') goto yy495; + if (yych == 't') goto yy496; goto yy11; -yy346: +yy348: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy494; + if (yych == 'e') goto yy497; goto yy11; } else { - if (yych <= 'o') goto yy495; - if (yych == 't') goto yy496; + if (yych <= 'o') goto yy498; + if (yych == 't') goto yy499; goto yy11; } -yy347: - yych = *++cursor_; - if (yych == 'u') goto yy497; - goto yy11; -yy348: - yych = *++cursor_; - if (yych == 'e') goto yy498; - goto yy11; yy349: yych = *++cursor_; - if (yych == 'r') goto yy500; + if (yych == 'u') goto yy500; goto yy11; yy350: yych = *++cursor_; - if (yych == 'o') goto yy502; + if (yych == 'e') goto yy501; goto yy11; yy351: yych = *++cursor_; - if (yych == 'e') goto yy503; - if (yych == 'o') goto yy504; + if (yych == 'r') goto yy503; goto yy11; yy352: yych = *++cursor_; + if (yych == 'o') goto yy505; + goto yy11; +yy353: + yych = *++cursor_; + if (yych == 'e') goto yy506; + if (yych == 'o') goto yy507; + goto yy11; +yy354: + yych = *++cursor_; if (yych <= 's') { - if (yych == 'h') goto yy505; + if (yych == 'h') goto yy508; goto yy11; } else { - if (yych <= 't') goto yy506; - if (yych <= 'u') goto yy507; + if (yych <= 't') goto yy509; + if (yych <= 'u') goto yy510; goto yy11; } -yy353: +yy355: yych = *++cursor_; - if (yych == 'r') goto yy508; + if (yych == 'r') goto yy511; goto yy11; -yy354: +yy356: yych = *++cursor_; - if (yych == 'r') goto yy509; + if (yych == 'r') goto yy512; goto yy11; -yy355: +yy357: yych = *++cursor_; - if (yych == 'o') goto yy510; + if (yych == 'o') goto yy513; goto yy11; -yy356: +yy358: yych = *++cursor_; - if (yych == '.') goto yy511; + if (yych == '.') goto yy514; goto yy11; -yy357: +yy359: yych = *++cursor_; if (yych <= 'm') { - if (yych == 'd') goto yy512; + if (yych == 'd') goto yy515; goto yy11; } else { - if (yych <= 'n') goto yy513; - if (yych == 't') goto yy514; + if (yych <= 'n') goto yy516; + if (yych == 't') goto yy517; goto yy11; } -yy358: +yy360: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy515; + if (yych == 'l') goto yy518; goto yy11; } else { - if (yych <= 'o') goto yy516; - if (yych == 't') goto yy517; + if (yych <= 'o') goto yy519; + if (yych == 't') goto yy520; goto yy11; } -yy359: +yy361: yych = *++cursor_; - if (yych == 'i') goto yy518; + if (yych == 'i') goto yy521; goto yy11; -yy360: +yy362: yych = *++cursor_; - if (yych == 'q') goto yy519; - if (yych == 'x') goto yy521; + if (yych == 'q') goto yy522; + if (yych == 'x') goto yy524; goto yy11; -yy361: +yy363: yych = *++cursor_; - if (yych == 'e') goto yy522; - if (yych == 't') goto yy523; + if (yych == 'e') goto yy525; + if (yych == 't') goto yy526; goto yy11; -yy362: +yy364: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy524; + if (yych == 'e') goto yy527; goto yy11; } else { - if (yych <= 'o') goto yy525; - if (yych == 't') goto yy526; + if (yych <= 'o') goto yy528; + if (yych == 't') goto yy529; goto yy11; } -yy363: - yych = *++cursor_; - if (yych == 'u') goto yy527; - goto yy11; -yy364: - yych = *++cursor_; - if (yych == 'e') goto yy528; - goto yy11; yy365: yych = *++cursor_; - if (yych == 'r') goto yy530; + if (yych == 'u') goto yy530; goto yy11; yy366: yych = *++cursor_; - if (yych == 'o') goto yy532; + if (yych == 'e') goto yy531; goto yy11; yy367: yych = *++cursor_; - if (yych == 'e') goto yy533; - if (yych == 'o') goto yy534; + if (yych == 'r') goto yy533; goto yy11; yy368: yych = *++cursor_; - if (yych <= 's') { - if (yych == 'h') goto yy535; - goto yy11; - } else { - if (yych <= 't') goto yy536; - if (yych <= 'u') goto yy537; - goto yy11; - } + if (yych == 'o') goto yy535; + goto yy11; yy369: yych = *++cursor_; - if (yych == 'r') goto yy538; + if (yych == 'e') goto yy536; + if (yych == 'o') goto yy537; goto yy11; yy370: yych = *++cursor_; - if (yych == 'o') goto yy539; - goto yy11; + if (yych <= 's') { + if (yych == 'h') goto yy538; + goto yy11; + } else { + if (yych <= 't') goto yy539; + if (yych <= 'u') goto yy540; + goto yy11; + } yy371: yych = *++cursor_; - if (yych == '.') goto yy540; + if (yych == 'r') goto yy541; goto yy11; yy372: yych = *++cursor_; - if (yych == '.') goto yy541; + if (yych == 'o') goto yy542; goto yy11; yy373: yych = *++cursor_; - if (yych == 'c') goto yy542; + if (yych == '.') goto yy543; goto yy11; yy374: yych = *++cursor_; - if (yych == 't') goto yy543; + if (yych == '.') goto yy544; goto yy11; yy375: yych = *++cursor_; - if (yych == 'e') goto yy545; + if (yych == 'c') goto yy545; goto yy11; yy376: yych = *++cursor_; + if (yych == 't') goto yy546; + goto yy11; +yy377: + yych = *++cursor_; + if (yych == 'e') goto yy548; + goto yy11; +yy378: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 666 "src/wast-lexer.cc" +#line 673 "src/wast-lexer.cc" { RETURN(Local); } -#line 2702 "src/prebuilt/wast-lexer-gen.cc" -yy378: - yych = *++cursor_; - if (yych == 'y') goto yy547; - goto yy11; -yy379: - yych = *++cursor_; - if (yych == 'e') goto yy549; - goto yy11; +#line 2712 "src/prebuilt/wast-lexer-gen.cc" yy380: yych = *++cursor_; - if (yych == 'x') goto yy551; + if (yych == 'y') goto yy550; goto yy11; yy381: yych = *++cursor_; - if (yych == 't') goto yy552; + if (yych == 'e') goto yy552; goto yy11; yy382: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 664 "src/wast-lexer.cc" - { RETURN(Param); } -#line 2726 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'x') goto yy554; + goto yy11; +yy383: + yych = *++cursor_; + if (yych == 't') goto yy555; + goto yy11; yy384: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 670 "src/wast-lexer.cc" - { RETURN(Quote); } -#line 2734 "src/prebuilt/wast-lexer-gen.cc" +#line 671 "src/wast-lexer.cc" + { RETURN(Param); } +#line 2736 "src/prebuilt/wast-lexer-gen.cc" yy386: yych = *++cursor_; - if (yych == 't') goto yy554; + if (yych == 'v') goto yy557; goto yy11; yy387: yych = *++cursor_; - if (yych == 't') goto yy555; - goto yy11; -yy388: - yych = *++cursor_; - if (yych == 'o') goto yy557; - goto yy11; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 677 "src/wast-lexer.cc" + { RETURN(Quote); } +#line 2748 "src/prebuilt/wast-lexer-gen.cc" yy389: yych = *++cursor_; - if (yych == 'n') goto yy558; + if (yych == 't') goto yy558; goto yy11; yy390: yych = *++cursor_; - if (yych == 't') goto yy560; + if (yych == 't') goto yy559; goto yy11; yy391: yych = *++cursor_; - if (yych == 'l') goto yy562; + if (yych == 'o') goto yy561; goto yy11; yy392: yych = *++cursor_; - if (yych == 'o') goto yy563; + if (yych == 'n') goto yy562; goto yy11; yy393: yych = *++cursor_; - if (yych == 'd') goto yy564; + if (yych == 't') goto yy564; goto yy11; yy394: yych = *++cursor_; + if (yych == 'l') goto yy566; + goto yy11; +yy395: + yych = *++cursor_; + if (yych == 'o') goto yy567; + goto yy11; +yy396: + yych = *++cursor_; + if (yych == 'd') goto yy568; + goto yy11; +yy397: + yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 673 "src/wast-lexer.cc" +#line 680 "src/wast-lexer.cc" { RETURN(Start); } -#line 2774 "src/prebuilt/wast-lexer-gen.cc" -yy396: +#line 2788 "src/prebuilt/wast-lexer-gen.cc" +yy399: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy10; + } else { + if (yych <= '"') goto yy400; + if (yych <= '\'') goto yy10; + } + } else { + if (yych <= ':') { + if (yych == '.') goto yy570; + goto yy10; + } else { + if (yych <= ';') goto yy400; + if (yych <= '~') goto yy10; + } } -#line 671 "src/wast-lexer.cc" +yy400: +#line 678 "src/wast-lexer.cc" { RETURN(Table); } -#line 2782 "src/prebuilt/wast-lexer-gen.cc" -yy398: +#line 2810 "src/prebuilt/wast-lexer-gen.cc" +yy401: yych = *++cursor_; - if (yych == 'o') goto yy566; + if (yych == 'o') goto yy571; goto yy11; -yy399: +yy402: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 693 "src/wast-lexer.cc" +#line 701 "src/wast-lexer.cc" { RETURN_OPCODE0(Throw); } -#line 2794 "src/prebuilt/wast-lexer-gen.cc" -yy401: +#line 2822 "src/prebuilt/wast-lexer-gen.cc" +yy404: yych = *++cursor_; - if (yych == 'c') goto yy567; + if (yych == 'c') goto yy572; goto yy11; -yy402: +yy405: yych = *++cursor_; switch (yych) { - case 'a': goto yy568; - case 'b': goto yy569; - case 'c': goto yy570; - case 'l': goto yy571; - case 'n': goto yy572; - case 'o': goto yy573; - case 's': goto yy574; - case 'x': goto yy575; + case 'a': goto yy573; + case 'b': goto yy574; + case 'c': goto yy575; + case 'l': goto yy576; + case 'n': goto yy577; + case 'o': goto yy578; + case 's': goto yy579; + case 'x': goto yy580; default: goto yy11; } -yy403: +yy406: yych = *++cursor_; - if (yych == '.') goto yy576; + if (yych == '.') goto yy581; goto yy11; -yy404: +yy407: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -2824,160 +2852,160 @@ yy404: if (yych <= '\'') goto yy10; if (yych <= ')') goto yy12; if (yych <= '/') goto yy10; - goto yy288; + goto yy290; } } else { if (yych <= 'F') { if (yych == ';') goto yy12; if (yych <= '@') goto yy10; - goto yy288; + goto yy290; } else { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy288; + if (yych <= 'f') goto yy290; if (yych <= '~') goto yy10; goto yy12; } } -yy405: +yy408: yych = *++cursor_; if (yych <= '/') goto yy11; - if (yych <= '0') goto yy577; - if (yych <= '9') goto yy579; + if (yych <= '0') goto yy582; + if (yych <= '9') goto yy584; goto yy11; -yy406: +yy409: yych = *++cursor_; - if (yych == 'c') goto yy581; + if (yych == 'c') goto yy586; goto yy11; -yy407: +yy410: yych = *++cursor_; - if (yych == '_') goto yy583; + if (yych == '_') goto yy588; goto yy11; -yy408: +yy411: yych = *++cursor_; - if (yych == '.') goto yy584; + if (yych == '.') goto yy589; goto yy11; -yy409: +yy412: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 669 "src/wast-lexer.cc" +#line 676 "src/wast-lexer.cc" { RETURN(Bin); } -#line 2867 "src/prebuilt/wast-lexer-gen.cc" -yy411: +#line 2895 "src/prebuilt/wast-lexer-gen.cc" +yy414: yych = *++cursor_; - if (yych == 'l') goto yy585; + if (yych == 'l') goto yy590; goto yy11; -yy412: +yy415: yych = *++cursor_; - if (yych == 'n') goto yy586; + if (yych == 'n') goto yy591; goto yy11; -yy413: +yy416: yych = *++cursor_; - if (yych == 't') goto yy587; + if (yych == 't') goto yy592; goto yy11; -yy414: +yy417: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 679 "src/wast-lexer.cc" +#line 686 "src/wast-lexer.cc" { RETURN(Except); } -#line 2887 "src/prebuilt/wast-lexer-gen.cc" -yy416: +#line 2915 "src/prebuilt/wast-lexer-gen.cc" +yy419: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 678 "src/wast-lexer.cc" +#line 685 "src/wast-lexer.cc" { RETURN(Export); } -#line 2895 "src/prebuilt/wast-lexer-gen.cc" -yy418: +#line 2923 "src/prebuilt/wast-lexer-gen.cc" +yy421: yych = *++cursor_; - if (yych == 's') goto yy588; + if (yych == 's') goto yy593; goto yy11; -yy419: +yy422: yych = *++cursor_; - if (yych == 'd') goto yy590; + if (yych == 'd') goto yy595; goto yy11; -yy420: +yy423: yych = *++cursor_; - if (yych == 'i') goto yy592; + if (yych == 'i') goto yy597; goto yy11; -yy421: +yy424: yych = *++cursor_; - if (yych == 'n') goto yy593; - if (yych == 'p') goto yy594; + if (yych == 'n') goto yy598; + if (yych == 'p') goto yy599; goto yy11; -yy422: +yy425: yych = *++cursor_; - if (yych == 'm') goto yy595; + if (yych == 'm') goto yy600; goto yy11; -yy423: +yy426: yych = *++cursor_; - if (yych == 'v') goto yy596; + if (yych == 'v') goto yy601; goto yy11; -yy424: +yy427: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 401 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Eq); } -#line 2928 "src/prebuilt/wast-lexer-gen.cc" -yy426: +#line 2956 "src/prebuilt/wast-lexer-gen.cc" +yy429: yych = *++cursor_; - if (yych == 'o') goto yy598; + if (yych == 'o') goto yy603; goto yy11; -yy427: +yy430: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 411 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Ge); } -#line 2940 "src/prebuilt/wast-lexer-gen.cc" -yy429: +#line 2968 "src/prebuilt/wast-lexer-gen.cc" +yy432: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 409 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Gt); } -#line 2948 "src/prebuilt/wast-lexer-gen.cc" -yy431: +#line 2976 "src/prebuilt/wast-lexer-gen.cc" +yy434: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 407 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Le); } -#line 2956 "src/prebuilt/wast-lexer-gen.cc" -yy433: +#line 2984 "src/prebuilt/wast-lexer-gen.cc" +yy436: yych = *++cursor_; - if (yych == 'a') goto yy599; + if (yych == 'a') goto yy604; goto yy11; -yy434: +yy437: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 405 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Lt); } -#line 2968 "src/prebuilt/wast-lexer-gen.cc" -yy436: +#line 2996 "src/prebuilt/wast-lexer-gen.cc" +yy439: yych = *++cursor_; - if (yych == 'x') goto yy600; + if (yych == 'x') goto yy605; goto yy11; -yy437: +yy440: yych = *++cursor_; - if (yych == 'n') goto yy602; + if (yych == 'n') goto yy607; goto yy11; -yy438: +yy441: yych = *++cursor_; - if (yych == 'l') goto yy604; + if (yych == 'l') goto yy609; goto yy11; -yy439: +yy442: yych = *++cursor_; if (yych <= ':') { if (yych <= '"') { @@ -2988,135 +3016,135 @@ yy439: } } else { if (yych <= 'a') { - if (yych <= ';') goto yy440; + if (yych <= ';') goto yy443; if (yych <= '`') goto yy10; - goto yy606; + goto yy611; } else { - if (yych == 'g') goto yy607; + if (yych == 'g') goto yy612; if (yych <= '~') goto yy10; } } -yy440: +yy443: #line 403 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Ne); } -#line 3003 "src/prebuilt/wast-lexer-gen.cc" -yy441: +#line 3031 "src/prebuilt/wast-lexer-gen.cc" +yy444: yych = *++cursor_; - if (yych == 'i') goto yy609; + if (yych == 'i') goto yy614; goto yy11; -yy442: +yy445: yych = *++cursor_; - if (yych == 'r') goto yy610; + if (yych == 'r') goto yy615; goto yy11; -yy443: +yy446: yych = *++cursor_; - if (yych == 'o') goto yy611; + if (yych == 'o') goto yy616; goto yy11; -yy444: +yy447: yych = *++cursor_; - if (yych == 'b') goto yy612; + if (yych == 'b') goto yy617; goto yy11; -yy445: +yy448: yych = *++cursor_; - if (yych == 'u') goto yy614; + if (yych == 'u') goto yy619; goto yy11; -yy446: +yy449: yych = *++cursor_; switch (yych) { - case 'a': goto yy615; - case 'c': goto yy616; - case 'd': goto yy617; - case 'e': goto yy618; - case 'g': goto yy619; - case 'l': goto yy620; - case 'm': goto yy621; - case 'n': goto yy622; - case 'r': goto yy623; - case 's': goto yy624; + case 'a': goto yy620; + case 'c': goto yy621; + case 'd': goto yy622; + case 'e': goto yy623; + case 'g': goto yy624; + case 'l': goto yy625; + case 'm': goto yy626; + case 'n': goto yy627; + case 'r': goto yy628; + case 's': goto yy629; default: goto yy11; } -yy447: +yy450: yych = *++cursor_; - if (yych == 's') goto yy625; + if (yych == 's') goto yy630; goto yy11; -yy448: +yy451: yych = *++cursor_; - if (yych == 'd') goto yy627; + if (yych == 'd') goto yy632; goto yy11; -yy449: +yy452: yych = *++cursor_; - if (yych == 'i') goto yy629; + if (yych == 'i') goto yy634; goto yy11; -yy450: +yy453: yych = *++cursor_; - if (yych == 'n') goto yy630; - if (yych == 'p') goto yy631; + if (yych == 'n') goto yy635; + if (yych == 'p') goto yy636; goto yy11; -yy451: +yy454: yych = *++cursor_; - if (yych == 'v') goto yy632; + if (yych == 'v') goto yy637; goto yy11; -yy452: +yy455: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 402 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Eq); } -#line 3067 "src/prebuilt/wast-lexer-gen.cc" -yy454: +#line 3095 "src/prebuilt/wast-lexer-gen.cc" +yy457: yych = *++cursor_; - if (yych == 'o') goto yy634; + if (yych == 'o') goto yy639; goto yy11; -yy455: +yy458: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 412 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Ge); } -#line 3079 "src/prebuilt/wast-lexer-gen.cc" -yy457: +#line 3107 "src/prebuilt/wast-lexer-gen.cc" +yy460: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 410 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Gt); } -#line 3087 "src/prebuilt/wast-lexer-gen.cc" -yy459: +#line 3115 "src/prebuilt/wast-lexer-gen.cc" +yy462: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 408 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Le); } -#line 3095 "src/prebuilt/wast-lexer-gen.cc" -yy461: +#line 3123 "src/prebuilt/wast-lexer-gen.cc" +yy464: yych = *++cursor_; - if (yych == 'a') goto yy635; + if (yych == 'a') goto yy640; goto yy11; -yy462: +yy465: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 406 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Lt); } -#line 3107 "src/prebuilt/wast-lexer-gen.cc" -yy464: +#line 3135 "src/prebuilt/wast-lexer-gen.cc" +yy467: yych = *++cursor_; - if (yych == 'x') goto yy636; + if (yych == 'x') goto yy641; goto yy11; -yy465: +yy468: yych = *++cursor_; - if (yych == 'n') goto yy638; + if (yych == 'n') goto yy643; goto yy11; -yy466: +yy469: yych = *++cursor_; - if (yych == 'l') goto yy640; + if (yych == 'l') goto yy645; goto yy11; -yy467: +yy470: yych = *++cursor_; if (yych <= ':') { if (yych <= '"') { @@ -3127,437 +3155,437 @@ yy467: } } else { if (yych <= 'a') { - if (yych <= ';') goto yy468; + if (yych <= ';') goto yy471; if (yych <= '`') goto yy10; - goto yy642; + goto yy647; } else { - if (yych == 'g') goto yy643; + if (yych == 'g') goto yy648; if (yych <= '~') goto yy10; } } -yy468: +yy471: #line 404 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Ne); } -#line 3142 "src/prebuilt/wast-lexer-gen.cc" -yy469: +#line 3170 "src/prebuilt/wast-lexer-gen.cc" +yy472: yych = *++cursor_; - if (yych == 'o') goto yy645; + if (yych == 'o') goto yy650; goto yy11; -yy470: +yy473: yych = *++cursor_; - if (yych == 'i') goto yy646; + if (yych == 'i') goto yy651; goto yy11; -yy471: +yy474: yych = *++cursor_; - if (yych == 'r') goto yy647; + if (yych == 'r') goto yy652; goto yy11; -yy472: +yy475: yych = *++cursor_; - if (yych == 'o') goto yy648; + if (yych == 'o') goto yy653; goto yy11; -yy473: +yy476: yych = *++cursor_; - if (yych == 'b') goto yy649; + if (yych == 'b') goto yy654; goto yy11; -yy474: +yy477: yych = *++cursor_; - if (yych == 'u') goto yy651; + if (yych == 'u') goto yy656; goto yy11; -yy475: +yy478: yych = *++cursor_; switch (yych) { - case 'a': goto yy652; - case 'c': goto yy653; - case 'd': goto yy654; - case 'e': goto yy655; - case 'g': goto yy656; - case 'l': goto yy657; - case 'm': goto yy658; - case 'n': goto yy659; - case 'r': goto yy660; - case 's': goto yy661; + case 'a': goto yy657; + case 'c': goto yy658; + case 'd': goto yy659; + case 'e': goto yy660; + case 'g': goto yy661; + case 'l': goto yy662; + case 'm': goto yy663; + case 'n': goto yy664; + case 'r': goto yy665; + case 's': goto yy666; default: goto yy11; } -yy476: +yy479: yych = *++cursor_; - if (yych == 'o') goto yy662; + if (yych == 'o') goto yy667; goto yy11; -yy477: +yy480: yych = *++cursor_; - if (yych == 'c') goto yy663; + if (yych == 'c') goto yy668; goto yy11; -yy478: +yy481: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 667 "src/wast-lexer.cc" +#line 674 "src/wast-lexer.cc" { RETURN(Global); } -#line 3197 "src/prebuilt/wast-lexer-gen.cc" -yy480: +#line 3225 "src/prebuilt/wast-lexer-gen.cc" +yy483: yych = *++cursor_; - if (yych == 'e') goto yy664; + if (yych == 'e') goto yy669; goto yy11; -yy481: +yy484: yych = *++cursor_; switch (yych) { - case 'a': goto yy665; - case 'e': goto yy666; - case 'g': goto yy667; - case 'l': goto yy668; - case 'm': goto yy669; - case 'n': goto yy670; - case 'r': goto yy671; - case 's': goto yy672; + case 'a': goto yy670; + case 'e': goto yy671; + case 'g': goto yy672; + case 'l': goto yy673; + case 'm': goto yy674; + case 'n': goto yy675; + case 'r': goto yy676; + case 's': goto yy677; default: goto yy11; } -yy482: +yy485: yych = *++cursor_; - if (yych == 'd') goto yy673; + if (yych == 'd') goto yy678; goto yy11; -yy483: +yy486: yych = *++cursor_; - if (yych == 'd') goto yy675; + if (yych == 'd') goto yy680; goto yy11; -yy484: +yy487: yych = *++cursor_; - if (yych == 'o') goto yy677; + if (yych == 'o') goto yy682; goto yy11; -yy485: +yy488: yych = *++cursor_; - if (yych == 'z') goto yy678; + if (yych == 'z') goto yy683; goto yy11; -yy486: +yy489: yych = *++cursor_; - if (yych == 'n') goto yy680; + if (yych == 'n') goto yy685; goto yy11; -yy487: +yy490: yych = *++cursor_; - if (yych == 'z') goto yy681; + if (yych == 'z') goto yy686; goto yy11; -yy488: +yy491: yych = *++cursor_; - if (yych == 'v') goto yy683; + if (yych == 'v') goto yy688; goto yy11; -yy489: +yy492: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy490; + if (yych <= '"') goto yy493; if (yych <= '\'') goto yy10; } } else { if (yych <= 'y') { if (yych != ';') goto yy10; } else { - if (yych <= 'z') goto yy684; + if (yych <= 'z') goto yy689; if (yych <= '~') goto yy10; } } -yy490: +yy493: #line 381 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32Eq); } -#line 3263 "src/prebuilt/wast-lexer-gen.cc" -yy491: +#line 3291 "src/prebuilt/wast-lexer-gen.cc" +yy494: yych = *++cursor_; - if (yych == 't') goto yy686; + if (yych == 't') goto yy691; goto yy11; -yy492: +yy495: yych = *++cursor_; - if (yych == '_') goto yy687; + if (yych == '_') goto yy692; goto yy11; -yy493: +yy496: yych = *++cursor_; - if (yych == '_') goto yy688; + if (yych == '_') goto yy693; goto yy11; -yy494: +yy497: yych = *++cursor_; - if (yych == '_') goto yy689; + if (yych == '_') goto yy694; goto yy11; -yy495: +yy498: yych = *++cursor_; - if (yych == 'a') goto yy690; + if (yych == 'a') goto yy695; goto yy11; -yy496: +yy499: yych = *++cursor_; - if (yych == '_') goto yy691; + if (yych == '_') goto yy696; goto yy11; -yy497: +yy500: yych = *++cursor_; - if (yych == 'l') goto yy692; + if (yych == 'l') goto yy697; goto yy11; -yy498: +yy501: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 383 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32Ne); } -#line 3299 "src/prebuilt/wast-lexer-gen.cc" -yy500: +#line 3327 "src/prebuilt/wast-lexer-gen.cc" +yy503: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 353 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Or); } -#line 3307 "src/prebuilt/wast-lexer-gen.cc" -yy502: - yych = *++cursor_; - if (yych == 'p') goto yy694; - goto yy11; -yy503: - yych = *++cursor_; - if (yych == 'i') goto yy695; - if (yych == 'm') goto yy696; - goto yy11; -yy504: - yych = *++cursor_; - if (yych == 't') goto yy697; - goto yy11; +#line 3335 "src/prebuilt/wast-lexer-gen.cc" yy505: yych = *++cursor_; - if (yych == 'l') goto yy698; - if (yych == 'r') goto yy700; + if (yych == 'p') goto yy699; goto yy11; yy506: yych = *++cursor_; - if (yych == 'o') goto yy701; + if (yych == 'i') goto yy700; + if (yych == 'm') goto yy701; goto yy11; yy507: yych = *++cursor_; - if (yych == 'b') goto yy702; + if (yych == 't') goto yy702; goto yy11; yy508: yych = *++cursor_; - if (yych == 'u') goto yy704; + if (yych == 'l') goto yy703; + if (yych == 'r') goto yy705; goto yy11; yy509: yych = *++cursor_; - if (yych == 'a') goto yy705; + if (yych == 'o') goto yy706; goto yy11; yy510: yych = *++cursor_; - if (yych == 'r') goto yy706; + if (yych == 'b') goto yy707; goto yy11; yy511: yych = *++cursor_; - switch (yych) { - case 'a': goto yy708; - case 'e': goto yy709; - case 'g': goto yy710; - case 'l': goto yy711; - case 'm': goto yy712; - case 'n': goto yy713; - case 'r': goto yy714; - case 's': goto yy715; - case 't': goto yy716; - default: goto yy11; - } + if (yych == 'u') goto yy709; + goto yy11; yy512: yych = *++cursor_; - if (yych == 'd') goto yy717; + if (yych == 'a') goto yy710; goto yy11; yy513: yych = *++cursor_; - if (yych == 'd') goto yy719; + if (yych == 'r') goto yy711; goto yy11; yy514: yych = *++cursor_; - if (yych == 'o') goto yy721; - goto yy11; + switch (yych) { + case 'a': goto yy713; + case 'e': goto yy714; + case 'g': goto yy715; + case 'l': goto yy716; + case 'm': goto yy717; + case 'n': goto yy718; + case 'r': goto yy719; + case 's': goto yy720; + case 't': goto yy721; + default: goto yy11; + } yy515: yych = *++cursor_; - if (yych == 'z') goto yy722; + if (yych == 'd') goto yy722; goto yy11; yy516: yych = *++cursor_; - if (yych == 'n') goto yy724; + if (yych == 'd') goto yy724; goto yy11; yy517: yych = *++cursor_; - if (yych == 'z') goto yy725; + if (yych == 'o') goto yy726; goto yy11; yy518: yych = *++cursor_; - if (yych == 'v') goto yy727; + if (yych == 'z') goto yy727; goto yy11; yy519: yych = *++cursor_; + if (yych == 'n') goto yy729; + goto yy11; +yy520: + yych = *++cursor_; + if (yych == 'z') goto yy730; + goto yy11; +yy521: + yych = *++cursor_; + if (yych == 'v') goto yy732; + goto yy11; +yy522: + yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy520; + if (yych <= '"') goto yy523; if (yych <= '\'') goto yy10; } } else { if (yych <= 'y') { if (yych != ';') goto yy10; } else { - if (yych <= 'z') goto yy728; + if (yych <= 'z') goto yy733; if (yych <= '~') goto yy10; } } -yy520: +yy523: #line 382 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64Eq); } -#line 3408 "src/prebuilt/wast-lexer-gen.cc" -yy521: +#line 3436 "src/prebuilt/wast-lexer-gen.cc" +yy524: yych = *++cursor_; - if (yych == 't') goto yy730; + if (yych == 't') goto yy735; goto yy11; -yy522: +yy525: yych = *++cursor_; - if (yych == '_') goto yy731; + if (yych == '_') goto yy736; goto yy11; -yy523: +yy526: yych = *++cursor_; - if (yych == '_') goto yy732; + if (yych == '_') goto yy737; goto yy11; -yy524: +yy527: yych = *++cursor_; - if (yych == '_') goto yy733; + if (yych == '_') goto yy738; goto yy11; -yy525: +yy528: yych = *++cursor_; - if (yych == 'a') goto yy734; + if (yych == 'a') goto yy739; goto yy11; -yy526: +yy529: yych = *++cursor_; - if (yych == '_') goto yy735; + if (yych == '_') goto yy740; goto yy11; -yy527: +yy530: yych = *++cursor_; - if (yych == 'l') goto yy736; + if (yych == 'l') goto yy741; goto yy11; -yy528: +yy531: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 384 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64Ne); } -#line 3444 "src/prebuilt/wast-lexer-gen.cc" -yy530: +#line 3472 "src/prebuilt/wast-lexer-gen.cc" +yy533: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 354 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Or); } -#line 3452 "src/prebuilt/wast-lexer-gen.cc" -yy532: - yych = *++cursor_; - if (yych == 'p') goto yy738; - goto yy11; -yy533: - yych = *++cursor_; - if (yych == 'i') goto yy739; - if (yych == 'm') goto yy740; - goto yy11; -yy534: - yych = *++cursor_; - if (yych == 't') goto yy741; - goto yy11; +#line 3480 "src/prebuilt/wast-lexer-gen.cc" yy535: yych = *++cursor_; - if (yych == 'l') goto yy742; - if (yych == 'r') goto yy744; + if (yych == 'p') goto yy743; goto yy11; yy536: yych = *++cursor_; - if (yych == 'o') goto yy745; + if (yych == 'i') goto yy744; + if (yych == 'm') goto yy745; goto yy11; yy537: yych = *++cursor_; - if (yych == 'b') goto yy746; + if (yych == 't') goto yy746; goto yy11; yy538: yych = *++cursor_; - if (yych == 'u') goto yy748; + if (yych == 'l') goto yy747; + if (yych == 'r') goto yy749; goto yy11; yy539: yych = *++cursor_; - if (yych == 'r') goto yy749; + if (yych == 'o') goto yy750; goto yy11; yy540: yych = *++cursor_; + if (yych == 'b') goto yy751; + goto yy11; +yy541: + yych = *++cursor_; + if (yych == 'u') goto yy753; + goto yy11; +yy542: + yych = *++cursor_; + if (yych == 'r') goto yy754; + goto yy11; +yy543: + yych = *++cursor_; switch (yych) { - case 'a': goto yy751; - case 'e': goto yy752; - case 'n': goto yy753; - case 'r': goto yy754; - case 's': goto yy755; - case 't': goto yy756; + case 'a': goto yy756; + case 'e': goto yy757; + case 'n': goto yy758; + case 'r': goto yy759; + case 's': goto yy760; + case 't': goto yy761; default: goto yy11; } -yy541: +yy544: yych = *++cursor_; switch (yych) { - case 'a': goto yy757; - case 'e': goto yy758; - case 'g': goto yy759; - case 'l': goto yy760; - case 'm': goto yy761; - case 'n': goto yy762; - case 'r': goto yy763; - case 's': goto yy764; + case 'a': goto yy762; + case 'e': goto yy763; + case 'g': goto yy764; + case 'l': goto yy765; + case 'm': goto yy766; + case 'n': goto yy767; + case 'r': goto yy768; + case 's': goto yy769; default: goto yy11; } -yy542: +yy545: yych = *++cursor_; - if (yych == 'e') goto yy765; + if (yych == 'e') goto yy770; goto yy11; -yy543: +yy546: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 677 "src/wast-lexer.cc" +#line 684 "src/wast-lexer.cc" { RETURN(Import); } -#line 3522 "src/prebuilt/wast-lexer-gen.cc" -yy545: +#line 3550 "src/prebuilt/wast-lexer-gen.cc" +yy548: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 681 "src/wast-lexer.cc" +#line 689 "src/wast-lexer.cc" { RETURN(Invoke); } -#line 3530 "src/prebuilt/wast-lexer-gen.cc" -yy547: +#line 3558 "src/prebuilt/wast-lexer-gen.cc" +yy550: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy548; + if (yych <= '"') goto yy551; if (yych <= '\'') goto yy10; } } else { if (yych <= ':') { - if (yych == '.') goto yy766; + if (yych == '.') goto yy771; goto yy10; } else { - if (yych <= ';') goto yy548; + if (yych <= ';') goto yy551; if (yych <= '~') goto yy10; } } -yy548: -#line 672 "src/wast-lexer.cc" +yy551: +#line 679 "src/wast-lexer.cc" { RETURN(Memory); } -#line 3552 "src/prebuilt/wast-lexer-gen.cc" -yy549: +#line 3580 "src/prebuilt/wast-lexer-gen.cc" +yy552: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 668 "src/wast-lexer.cc" +#line 675 "src/wast-lexer.cc" { RETURN(Module); } -#line 3560 "src/prebuilt/wast-lexer-gen.cc" -yy551: +#line 3588 "src/prebuilt/wast-lexer-gen.cc" +yy554: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -3569,1033 +3597,1053 @@ yy551: if (yych <= '\'') goto yy10; if (yych <= ')') goto yy12; if (yych <= '/') goto yy10; - goto yy767; + goto yy772; } } else { if (yych <= 'F') { if (yych == ';') goto yy12; if (yych <= '@') goto yy10; - goto yy767; + goto yy772; } else { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy767; + if (yych <= 'f') goto yy772; if (yych <= '~') goto yy10; goto yy12; } } -yy552: +yy555: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy553; + if (yych <= '"') goto yy556; if (yych <= '\'') goto yy10; } } else { if (yych <= '<') { if (yych != ';') goto yy10; } else { - if (yych <= '=') goto yy769; + if (yych <= '=') goto yy774; if (yych <= '~') goto yy10; } } -yy553: -#line 676 "src/wast-lexer.cc" +yy556: +#line 683 "src/wast-lexer.cc" { RETURN(Offset); } -#line 3607 "src/prebuilt/wast-lexer-gen.cc" -yy554: +#line 3635 "src/prebuilt/wast-lexer-gen.cc" +yy557: yych = *++cursor_; - if (yych == 'e') goto yy770; + if (yych == 'e') goto yy775; goto yy11; -yy555: +yy558: + yych = *++cursor_; + if (yych == 'e') goto yy777; + goto yy11; +yy559: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 665 "src/wast-lexer.cc" +#line 672 "src/wast-lexer.cc" { RETURN(Result); } -#line 3619 "src/prebuilt/wast-lexer-gen.cc" -yy557: +#line 3651 "src/prebuilt/wast-lexer-gen.cc" +yy561: yych = *++cursor_; - if (yych == 'w') goto yy771; + if (yych == 'w') goto yy778; goto yy11; -yy558: +yy562: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy559; + if (yych <= '"') goto yy563; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy773; + if (yych <= '_') goto yy780; if (yych <= '~') goto yy10; } } -yy559: +yy563: #line 275 "src/wast-lexer.cc" { RETURN_OPCODE0(Return); } -#line 3644 "src/prebuilt/wast-lexer-gen.cc" -yy560: +#line 3676 "src/prebuilt/wast-lexer-gen.cc" +yy564: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 446 "src/wast-lexer.cc" { RETURN_OPCODE0(Select); } -#line 3652 "src/prebuilt/wast-lexer-gen.cc" -yy562: +#line 3684 "src/prebuilt/wast-lexer-gen.cc" +yy566: yych = *++cursor_; - if (yych == 'o') goto yy774; + if (yych == 'o') goto yy781; goto yy11; -yy563: +yy567: yych = *++cursor_; - if (yych == 'c') goto yy775; + if (yych == 'c') goto yy782; goto yy11; -yy564: +yy568: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 697 "src/wast-lexer.cc" +#line 705 "src/wast-lexer.cc" { RETURN(Shared); } -#line 3668 "src/prebuilt/wast-lexer-gen.cc" -yy566: - yych = *++cursor_; - if (yych == 'c') goto yy776; - goto yy11; -yy567: - yych = *++cursor_; - if (yych == 'h') goto yy777; - goto yy11; -yy568: - yych = *++cursor_; - if (yych == 'n') goto yy778; - goto yy11; -yy569: - yych = *++cursor_; - if (yych == 'i') goto yy779; - goto yy11; +#line 3700 "src/prebuilt/wast-lexer-gen.cc" yy570: yych = *++cursor_; - if (yych == 'o') goto yy780; - goto yy11; + if (yych <= 'd') { + if (yych <= 'b') goto yy11; + if (yych <= 'c') goto yy783; + goto yy784; + } else { + if (yych == 'i') goto yy785; + goto yy11; + } yy571: yych = *++cursor_; - if (yych == 'o') goto yy781; + if (yych == 'c') goto yy786; goto yy11; yy572: yych = *++cursor_; - if (yych == 'o') goto yy782; + if (yych == 'h') goto yy787; goto yy11; yy573: yych = *++cursor_; - if (yych == 'r') goto yy783; + if (yych == 'n') goto yy788; goto yy11; yy574: yych = *++cursor_; - if (yych == 't') goto yy785; + if (yych == 'i') goto yy789; goto yy11; yy575: yych = *++cursor_; - if (yych == 'o') goto yy786; + if (yych == 'o') goto yy790; goto yy11; yy576: yych = *++cursor_; - if (yych == 's') goto yy787; + if (yych == 'o') goto yy791; goto yy11; yy577: yych = *++cursor_; - if (yych == 'x') goto yy789; - goto yy580; + if (yych == 'o') goto yy792; + goto yy11; yy578: + yych = *++cursor_; + if (yych == 'r') goto yy793; + goto yy11; +yy579: + yych = *++cursor_; + if (yych == 't') goto yy795; + goto yy11; +yy580: + yych = *++cursor_; + if (yych == 'o') goto yy796; + goto yy11; +yy581: + yych = *++cursor_; + if (yych == 's') goto yy797; + goto yy11; +yy582: + yych = *++cursor_; + if (yych == 'x') goto yy799; + goto yy585; +yy583: #line 305 "src/wast-lexer.cc" { RETURN_TEXT_AT(AlignEqNat, 6); } -#line 3720 "src/prebuilt/wast-lexer-gen.cc" -yy579: +#line 3762 "src/prebuilt/wast-lexer-gen.cc" +yy584: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy580: +yy585: if (yych <= '/') { if (yych <= '"') { if (yych == '!') goto yy10; - goto yy578; + goto yy583; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy578; + if (yych <= ')') goto yy583; goto yy10; } } else { if (yych <= ';') { - if (yych <= '9') goto yy579; + if (yych <= '9') goto yy584; if (yych <= ':') goto yy10; - goto yy578; + goto yy583; } else { - if (yych == '_') goto yy788; + if (yych == '_') goto yy798; if (yych <= '~') goto yy10; - goto yy578; + goto yy583; } } -yy581: +yy586: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 260 "src/wast-lexer.cc" { RETURN(Anyfunc); } -#line 3753 "src/prebuilt/wast-lexer-gen.cc" -yy583: +#line 3795 "src/prebuilt/wast-lexer-gen.cc" +yy588: yych = *++cursor_; switch (yych) { - case 'e': goto yy790; - case 'i': goto yy791; - case 'm': goto yy792; - case 'r': goto yy793; - case 't': goto yy794; - case 'u': goto yy795; + case 'e': goto yy800; + case 'i': goto yy801; + case 'm': goto yy802; + case 'r': goto yy803; + case 't': goto yy804; + case 'u': goto yy805; default: goto yy11; } -yy584: +yy589: yych = *++cursor_; - if (yych == 'w') goto yy796; + if (yych == 'w') goto yy806; goto yy11; -yy585: +yy590: yych = *++cursor_; - if (yych == 'e') goto yy797; + if (yych == 'e') goto yy807; goto yy11; -yy586: +yy591: yych = *++cursor_; - if (yych == 'd') goto yy799; + if (yych == 'd') goto yy809; goto yy11; -yy587: +yy592: yych = *++cursor_; - if (yych == '_') goto yy800; + if (yych == '_') goto yy810; goto yy11; -yy588: +yy593: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 320 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Abs); } -#line 3788 "src/prebuilt/wast-lexer-gen.cc" -yy590: +#line 3830 "src/prebuilt/wast-lexer-gen.cc" +yy595: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 367 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Add); } -#line 3796 "src/prebuilt/wast-lexer-gen.cc" -yy592: +#line 3838 "src/prebuilt/wast-lexer-gen.cc" +yy597: yych = *++cursor_; - if (yych == 'l') goto yy801; + if (yych == 'l') goto yy811; goto yy11; -yy593: +yy598: yych = *++cursor_; - if (yych == 's') goto yy803; - if (yych == 'v') goto yy804; + if (yych == 's') goto yy813; + if (yych == 'v') goto yy814; goto yy11; -yy594: +yy599: yych = *++cursor_; - if (yych == 'y') goto yy805; + if (yych == 'y') goto yy815; goto yy11; -yy595: +yy600: yych = *++cursor_; - if (yych == 'o') goto yy806; + if (yych == 'o') goto yy816; goto yy11; -yy596: +yy601: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 373 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Div); } -#line 3821 "src/prebuilt/wast-lexer-gen.cc" -yy598: +#line 3863 "src/prebuilt/wast-lexer-gen.cc" +yy603: yych = *++cursor_; - if (yych == 'o') goto yy807; + if (yych == 'o') goto yy817; goto yy11; -yy599: +yy604: yych = *++cursor_; - if (yych == 'd') goto yy808; + if (yych == 'd') goto yy818; goto yy11; -yy600: +yy605: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 377 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Max); } -#line 3837 "src/prebuilt/wast-lexer-gen.cc" -yy602: +#line 3879 "src/prebuilt/wast-lexer-gen.cc" +yy607: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 375 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Min); } -#line 3845 "src/prebuilt/wast-lexer-gen.cc" -yy604: +#line 3887 "src/prebuilt/wast-lexer-gen.cc" +yy609: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 371 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Mul); } -#line 3853 "src/prebuilt/wast-lexer-gen.cc" -yy606: +#line 3895 "src/prebuilt/wast-lexer-gen.cc" +yy611: yych = *++cursor_; - if (yych == 'r') goto yy810; + if (yych == 'r') goto yy820; goto yy11; -yy607: +yy612: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 318 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Neg); } -#line 3865 "src/prebuilt/wast-lexer-gen.cc" -yy609: +#line 3907 "src/prebuilt/wast-lexer-gen.cc" +yy614: yych = *++cursor_; - if (yych == 'n') goto yy811; + if (yych == 'n') goto yy821; goto yy11; -yy610: +yy615: yych = *++cursor_; - if (yych == 't') goto yy812; + if (yych == 't') goto yy822; goto yy11; -yy611: +yy616: yych = *++cursor_; - if (yych == 'r') goto yy814; + if (yych == 'r') goto yy824; goto yy11; -yy612: +yy617: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 369 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Sub); } -#line 3885 "src/prebuilt/wast-lexer-gen.cc" -yy614: +#line 3927 "src/prebuilt/wast-lexer-gen.cc" +yy619: yych = *++cursor_; - if (yych == 'n') goto yy815; + if (yych == 'n') goto yy825; goto yy11; -yy615: +yy620: yych = *++cursor_; - if (yych == 'b') goto yy816; - if (yych == 'd') goto yy817; + if (yych == 'b') goto yy826; + if (yych == 'd') goto yy827; goto yy11; -yy616: +yy621: yych = *++cursor_; - if (yych == 'o') goto yy818; + if (yych == 'o') goto yy828; goto yy11; -yy617: +yy622: yych = *++cursor_; - if (yych == 'i') goto yy819; + if (yych == 'i') goto yy829; goto yy11; -yy618: +yy623: yych = *++cursor_; - if (yych == 'q') goto yy820; - if (yych == 'x') goto yy822; + if (yych == 'q') goto yy830; + if (yych == 'x') goto yy832; goto yy11; -yy619: +yy624: yych = *++cursor_; - if (yych == 'e') goto yy823; - if (yych == 't') goto yy825; + if (yych == 'e') goto yy833; + if (yych == 't') goto yy835; goto yy11; -yy620: +yy625: yych = *++cursor_; - if (yych == 'e') goto yy827; - if (yych == 't') goto yy829; + if (yych == 'e') goto yy837; + if (yych == 't') goto yy839; goto yy11; -yy621: +yy626: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy831; + if (yych == 'a') goto yy841; goto yy11; } else { - if (yych <= 'i') goto yy832; - if (yych == 'u') goto yy833; + if (yych <= 'i') goto yy842; + if (yych == 'u') goto yy843; goto yy11; } -yy622: +yy627: yych = *++cursor_; - if (yych == 'e') goto yy834; + if (yych == 'e') goto yy844; goto yy11; -yy623: +yy628: yych = *++cursor_; - if (yych == 'e') goto yy836; + if (yych == 'e') goto yy846; goto yy11; -yy624: +yy629: yych = *++cursor_; if (yych <= 'q') { if (yych <= 'o') goto yy11; - if (yych <= 'p') goto yy837; - goto yy838; + if (yych <= 'p') goto yy847; + goto yy848; } else { - if (yych == 'u') goto yy839; + if (yych == 'u') goto yy849; goto yy11; } -yy625: +yy630: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 321 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Abs); } -#line 3953 "src/prebuilt/wast-lexer-gen.cc" -yy627: +#line 3995 "src/prebuilt/wast-lexer-gen.cc" +yy632: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 368 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Add); } -#line 3961 "src/prebuilt/wast-lexer-gen.cc" -yy629: +#line 4003 "src/prebuilt/wast-lexer-gen.cc" +yy634: yych = *++cursor_; - if (yych == 'l') goto yy840; + if (yych == 'l') goto yy850; goto yy11; -yy630: +yy635: yych = *++cursor_; - if (yych == 's') goto yy842; - if (yych == 'v') goto yy843; + if (yych == 's') goto yy852; + if (yych == 'v') goto yy853; goto yy11; -yy631: +yy636: yych = *++cursor_; - if (yych == 'y') goto yy844; + if (yych == 'y') goto yy854; goto yy11; -yy632: +yy637: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 374 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Div); } -#line 3982 "src/prebuilt/wast-lexer-gen.cc" -yy634: +#line 4024 "src/prebuilt/wast-lexer-gen.cc" +yy639: yych = *++cursor_; - if (yych == 'o') goto yy845; + if (yych == 'o') goto yy855; goto yy11; -yy635: +yy640: yych = *++cursor_; - if (yych == 'd') goto yy846; + if (yych == 'd') goto yy856; goto yy11; -yy636: +yy641: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 378 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Max); } -#line 3998 "src/prebuilt/wast-lexer-gen.cc" -yy638: +#line 4040 "src/prebuilt/wast-lexer-gen.cc" +yy643: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 376 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Min); } -#line 4006 "src/prebuilt/wast-lexer-gen.cc" -yy640: +#line 4048 "src/prebuilt/wast-lexer-gen.cc" +yy645: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 372 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Mul); } -#line 4014 "src/prebuilt/wast-lexer-gen.cc" -yy642: +#line 4056 "src/prebuilt/wast-lexer-gen.cc" +yy647: yych = *++cursor_; - if (yych == 'r') goto yy848; + if (yych == 'r') goto yy858; goto yy11; -yy643: +yy648: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 319 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Neg); } -#line 4026 "src/prebuilt/wast-lexer-gen.cc" -yy645: +#line 4068 "src/prebuilt/wast-lexer-gen.cc" +yy650: yych = *++cursor_; - if (yych == 'm') goto yy849; + if (yych == 'm') goto yy859; goto yy11; -yy646: +yy651: yych = *++cursor_; - if (yych == 'n') goto yy850; + if (yych == 'n') goto yy860; goto yy11; -yy647: +yy652: yych = *++cursor_; - if (yych == 't') goto yy851; + if (yych == 't') goto yy861; goto yy11; -yy648: +yy653: yych = *++cursor_; - if (yych == 'r') goto yy853; + if (yych == 'r') goto yy863; goto yy11; -yy649: +yy654: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 370 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Sub); } -#line 4050 "src/prebuilt/wast-lexer-gen.cc" -yy651: +#line 4092 "src/prebuilt/wast-lexer-gen.cc" +yy656: yych = *++cursor_; - if (yych == 'n') goto yy854; + if (yych == 'n') goto yy864; goto yy11; -yy652: +yy657: yych = *++cursor_; - if (yych == 'b') goto yy855; - if (yych == 'd') goto yy856; + if (yych == 'b') goto yy865; + if (yych == 'd') goto yy866; goto yy11; -yy653: +yy658: yych = *++cursor_; - if (yych == 'o') goto yy857; + if (yych == 'o') goto yy867; goto yy11; -yy654: +yy659: yych = *++cursor_; - if (yych == 'i') goto yy858; + if (yych == 'i') goto yy868; goto yy11; -yy655: +yy660: yych = *++cursor_; - if (yych == 'q') goto yy859; - if (yych == 'x') goto yy861; + if (yych == 'q') goto yy869; + if (yych == 'x') goto yy871; goto yy11; -yy656: +yy661: yych = *++cursor_; - if (yych == 'e') goto yy862; - if (yych == 't') goto yy864; + if (yych == 'e') goto yy872; + if (yych == 't') goto yy874; goto yy11; -yy657: +yy662: yych = *++cursor_; - if (yych == 'e') goto yy866; - if (yych == 't') goto yy868; + if (yych == 'e') goto yy876; + if (yych == 't') goto yy878; goto yy11; -yy658: +yy663: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy870; + if (yych == 'a') goto yy880; goto yy11; } else { - if (yych <= 'i') goto yy871; - if (yych == 'u') goto yy872; + if (yych <= 'i') goto yy881; + if (yych == 'u') goto yy882; goto yy11; } -yy659: +yy664: yych = *++cursor_; - if (yych == 'e') goto yy873; + if (yych == 'e') goto yy883; goto yy11; -yy660: +yy665: yych = *++cursor_; - if (yych == 'e') goto yy875; + if (yych == 'e') goto yy885; goto yy11; -yy661: +yy666: yych = *++cursor_; if (yych <= 'q') { if (yych <= 'o') goto yy11; - if (yych <= 'p') goto yy876; - goto yy877; + if (yych <= 'p') goto yy886; + goto yy887; } else { - if (yych == 'u') goto yy878; + if (yych == 'u') goto yy888; goto yy11; } -yy662: +yy667: yych = *++cursor_; - if (yych == 'b') goto yy879; + if (yych == 'b') goto yy889; goto yy11; -yy663: +yy668: yych = *++cursor_; - if (yych == 'a') goto yy880; + if (yych == 'a') goto yy890; goto yy11; -yy664: +yy669: yych = *++cursor_; - if (yych == 'm') goto yy881; + if (yych == 'm') goto yy891; goto yy11; -yy665: +yy670: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy882; + if (yych == 'd') goto yy892; goto yy11; } else { - if (yych <= 'l') goto yy883; - if (yych == 'n') goto yy884; + if (yych <= 'l') goto yy893; + if (yych == 'n') goto yy894; goto yy11; } -yy666: +yy671: yych = *++cursor_; - if (yych == 'q') goto yy885; - if (yych == 'x') goto yy887; + if (yych == 'q') goto yy895; + if (yych == 'x') goto yy897; goto yy11; -yy667: +yy672: yych = *++cursor_; - if (yych == 'e') goto yy888; - if (yych == 't') goto yy889; + if (yych == 'e') goto yy898; + if (yych == 't') goto yy899; goto yy11; -yy668: +yy673: yych = *++cursor_; - if (yych == 'e') goto yy890; - if (yych == 't') goto yy891; + if (yych == 'e') goto yy900; + if (yych == 't') goto yy901; goto yy11; -yy669: +yy674: yych = *++cursor_; - if (yych == 'u') goto yy892; + if (yych == 'u') goto yy902; goto yy11; -yy670: +yy675: yych = *++cursor_; - if (yych == 'e') goto yy893; + if (yych == 'e') goto yy903; goto yy11; -yy671: +yy676: yych = *++cursor_; - if (yych == 'e') goto yy895; + if (yych == 'e') goto yy905; goto yy11; -yy672: +yy677: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy896; + if (yych == 'h') goto yy906; goto yy11; } else { - if (yych <= 'p') goto yy897; - if (yych == 'u') goto yy898; + if (yych <= 'p') goto yy907; + if (yych == 'u') goto yy908; goto yy11; } -yy673: +yy678: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 337 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Add); } -#line 4177 "src/prebuilt/wast-lexer-gen.cc" -yy675: +#line 4219 "src/prebuilt/wast-lexer-gen.cc" +yy680: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 351 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32And); } -#line 4185 "src/prebuilt/wast-lexer-gen.cc" -yy677: +#line 4227 "src/prebuilt/wast-lexer-gen.cc" +yy682: yych = *++cursor_; - if (yych == 'm') goto yy899; + if (yych == 'm') goto yy909; goto yy11; -yy678: +yy683: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 312 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Clz); } -#line 4197 "src/prebuilt/wast-lexer-gen.cc" -yy680: +#line 4239 "src/prebuilt/wast-lexer-gen.cc" +yy685: yych = *++cursor_; - if (yych == 's') goto yy900; + if (yych == 's') goto yy910; goto yy11; -yy681: +yy686: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 314 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Ctz); } -#line 4209 "src/prebuilt/wast-lexer-gen.cc" -yy683: +#line 4251 "src/prebuilt/wast-lexer-gen.cc" +yy688: yych = *++cursor_; - if (yych == '_') goto yy901; + if (yych == '_') goto yy911; goto yy11; -yy684: +yy689: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 310 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32Eqz); } -#line 4221 "src/prebuilt/wast-lexer-gen.cc" -yy686: +#line 4263 "src/prebuilt/wast-lexer-gen.cc" +yy691: yych = *++cursor_; - if (yych == 'e') goto yy902; + if (yych == 'e') goto yy912; goto yy11; -yy687: +yy692: yych = *++cursor_; - if (yych == 's') goto yy903; - if (yych == 'u') goto yy905; + if (yych == 's') goto yy913; + if (yych == 'u') goto yy915; goto yy11; -yy688: +yy693: yych = *++cursor_; - if (yych == 's') goto yy907; - if (yych == 'u') goto yy909; + if (yych == 's') goto yy917; + if (yych == 'u') goto yy919; goto yy11; -yy689: +yy694: yych = *++cursor_; - if (yych == 's') goto yy911; - if (yych == 'u') goto yy913; + if (yych == 's') goto yy921; + if (yych == 'u') goto yy923; goto yy11; -yy690: +yy695: yych = *++cursor_; - if (yych == 'd') goto yy915; + if (yych == 'd') goto yy925; goto yy11; -yy691: +yy696: yych = *++cursor_; - if (yych == 's') goto yy917; - if (yych == 'u') goto yy919; + if (yych == 's') goto yy927; + if (yych == 'u') goto yy929; goto yy11; -yy692: +yy697: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 341 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Mul); } -#line 4257 "src/prebuilt/wast-lexer-gen.cc" -yy694: +#line 4299 "src/prebuilt/wast-lexer-gen.cc" +yy699: yych = *++cursor_; - if (yych == 'c') goto yy921; + if (yych == 'c') goto yy931; goto yy11; -yy695: +yy700: yych = *++cursor_; - if (yych == 'n') goto yy922; + if (yych == 'n') goto yy932; goto yy11; -yy696: +yy701: yych = *++cursor_; - if (yych == '_') goto yy923; + if (yych == '_') goto yy933; goto yy11; -yy697: +yy702: yych = *++cursor_; - if (yych == 'l') goto yy924; - if (yych == 'r') goto yy926; + if (yych == 'l') goto yy934; + if (yych == 'r') goto yy936; goto yy11; -yy698: +yy703: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 357 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Shl); } -#line 4282 "src/prebuilt/wast-lexer-gen.cc" -yy700: +#line 4324 "src/prebuilt/wast-lexer-gen.cc" +yy705: yych = *++cursor_; - if (yych == '_') goto yy928; + if (yych == '_') goto yy938; goto yy11; -yy701: +yy706: yych = *++cursor_; - if (yych == 'r') goto yy929; + if (yych == 'r') goto yy939; goto yy11; -yy702: +yy707: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 339 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Sub); } -#line 4298 "src/prebuilt/wast-lexer-gen.cc" -yy704: +#line 4340 "src/prebuilt/wast-lexer-gen.cc" +yy709: yych = *++cursor_; - if (yych == 'n') goto yy930; + if (yych == 'n') goto yy940; goto yy11; -yy705: +yy710: yych = *++cursor_; - if (yych == 'p') goto yy931; + if (yych == 'p') goto yy941; goto yy11; -yy706: +yy711: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 355 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Xor); } -#line 4314 "src/prebuilt/wast-lexer-gen.cc" -yy708: +#line 4356 "src/prebuilt/wast-lexer-gen.cc" +yy713: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy932; + if (yych == 'd') goto yy942; goto yy11; } else { - if (yych <= 'l') goto yy933; - if (yych == 'n') goto yy934; + if (yych <= 'l') goto yy943; + if (yych == 'n') goto yy944; goto yy11; } -yy709: +yy714: yych = *++cursor_; - if (yych == 'q') goto yy935; - if (yych == 'x') goto yy937; + if (yych == 'q') goto yy945; + if (yych == 'x') goto yy947; goto yy11; -yy710: +yy715: yych = *++cursor_; - if (yych == 'e') goto yy938; - if (yych == 't') goto yy939; + if (yych == 'e') goto yy948; + if (yych == 't') goto yy949; goto yy11; -yy711: +yy716: yych = *++cursor_; - if (yych == 'e') goto yy940; - if (yych == 't') goto yy941; + if (yych == 'e') goto yy950; + if (yych == 't') goto yy951; goto yy11; -yy712: +yy717: yych = *++cursor_; - if (yych == 'u') goto yy942; + if (yych == 'u') goto yy952; goto yy11; -yy713: +yy718: yych = *++cursor_; - if (yych == 'e') goto yy943; + if (yych == 'e') goto yy953; goto yy11; -yy714: +yy719: yych = *++cursor_; - if (yych == 'e') goto yy945; + if (yych == 'e') goto yy955; goto yy11; -yy715: +yy720: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy946; + if (yych == 'h') goto yy956; goto yy11; } else { - if (yych <= 'p') goto yy947; - if (yych == 'u') goto yy948; + if (yych <= 'p') goto yy957; + if (yych == 'u') goto yy958; goto yy11; } -yy716: +yy721: yych = *++cursor_; - if (yych == 'r') goto yy949; + if (yych == 'r') goto yy959; goto yy11; -yy717: +yy722: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 338 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Add); } -#line 4373 "src/prebuilt/wast-lexer-gen.cc" -yy719: +#line 4415 "src/prebuilt/wast-lexer-gen.cc" +yy724: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 352 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64And); } -#line 4381 "src/prebuilt/wast-lexer-gen.cc" -yy721: +#line 4423 "src/prebuilt/wast-lexer-gen.cc" +yy726: yych = *++cursor_; - if (yych == 'm') goto yy950; + if (yych == 'm') goto yy960; goto yy11; -yy722: +yy727: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 313 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Clz); } -#line 4393 "src/prebuilt/wast-lexer-gen.cc" -yy724: +#line 4435 "src/prebuilt/wast-lexer-gen.cc" +yy729: yych = *++cursor_; - if (yych == 's') goto yy951; + if (yych == 's') goto yy961; goto yy11; -yy725: +yy730: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 315 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Ctz); } -#line 4405 "src/prebuilt/wast-lexer-gen.cc" -yy727: +#line 4447 "src/prebuilt/wast-lexer-gen.cc" +yy732: yych = *++cursor_; - if (yych == '_') goto yy952; + if (yych == '_') goto yy962; goto yy11; -yy728: +yy733: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 311 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64Eqz); } -#line 4417 "src/prebuilt/wast-lexer-gen.cc" -yy730: +#line 4459 "src/prebuilt/wast-lexer-gen.cc" +yy735: yych = *++cursor_; - if (yych == 'e') goto yy953; + if (yych == 'e') goto yy963; goto yy11; -yy731: +yy736: yych = *++cursor_; - if (yych == 's') goto yy954; - if (yych == 'u') goto yy956; + if (yych == 's') goto yy964; + if (yych == 'u') goto yy966; goto yy11; -yy732: +yy737: yych = *++cursor_; - if (yych == 's') goto yy958; - if (yych == 'u') goto yy960; + if (yych == 's') goto yy968; + if (yych == 'u') goto yy970; goto yy11; -yy733: +yy738: yych = *++cursor_; - if (yych == 's') goto yy962; - if (yych == 'u') goto yy964; + if (yych == 's') goto yy972; + if (yych == 'u') goto yy974; goto yy11; -yy734: +yy739: yych = *++cursor_; - if (yych == 'd') goto yy966; + if (yych == 'd') goto yy976; goto yy11; -yy735: +yy740: yych = *++cursor_; - if (yych == 's') goto yy968; - if (yych == 'u') goto yy970; + if (yych == 's') goto yy978; + if (yych == 'u') goto yy980; goto yy11; -yy736: +yy741: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 342 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Mul); } -#line 4453 "src/prebuilt/wast-lexer-gen.cc" -yy738: +#line 4495 "src/prebuilt/wast-lexer-gen.cc" +yy743: yych = *++cursor_; - if (yych == 'c') goto yy972; + if (yych == 'c') goto yy982; goto yy11; -yy739: +yy744: yych = *++cursor_; - if (yych == 'n') goto yy973; + if (yych == 'n') goto yy983; goto yy11; -yy740: +yy745: yych = *++cursor_; - if (yych == '_') goto yy974; + if (yych == '_') goto yy984; goto yy11; -yy741: +yy746: yych = *++cursor_; - if (yych == 'l') goto yy975; - if (yych == 'r') goto yy977; + if (yych == 'l') goto yy985; + if (yych == 'r') goto yy987; goto yy11; -yy742: +yy747: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 358 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Shl); } -#line 4478 "src/prebuilt/wast-lexer-gen.cc" -yy744: +#line 4520 "src/prebuilt/wast-lexer-gen.cc" +yy749: yych = *++cursor_; - if (yych == '_') goto yy979; + if (yych == '_') goto yy989; goto yy11; -yy745: +yy750: yych = *++cursor_; - if (yych == 'r') goto yy980; + if (yych == 'r') goto yy990; goto yy11; -yy746: +yy751: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 340 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Sub); } -#line 4494 "src/prebuilt/wast-lexer-gen.cc" -yy748: +#line 4536 "src/prebuilt/wast-lexer-gen.cc" +yy753: yych = *++cursor_; - if (yych == 'n') goto yy981; + if (yych == 'n') goto yy991; goto yy11; -yy749: +yy754: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 356 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Xor); } -#line 4506 "src/prebuilt/wast-lexer-gen.cc" -yy751: +#line 4548 "src/prebuilt/wast-lexer-gen.cc" +yy756: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy982; + if (yych == 'd') goto yy992; goto yy11; } else { - if (yych <= 'l') goto yy983; - if (yych == 'n') goto yy984; + if (yych <= 'l') goto yy993; + if (yych == 'n') goto yy994; goto yy11; } -yy752: +yy757: yych = *++cursor_; - if (yych == 'x') goto yy985; + if (yych == 'x') goto yy995; goto yy11; -yy753: +yy758: yych = *++cursor_; - if (yych == 'e') goto yy986; + if (yych == 'e') goto yy996; goto yy11; -yy754: +yy759: yych = *++cursor_; - if (yych == 'e') goto yy987; + if (yych == 'e') goto yy997; goto yy11; -yy755: +yy760: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy988; + if (yych == 'h') goto yy998; goto yy11; } else { - if (yych <= 'p') goto yy989; - if (yych == 'u') goto yy990; + if (yych <= 'p') goto yy999; + if (yych == 'u') goto yy1000; goto yy11; } -yy756: +yy761: yych = *++cursor_; - if (yych == 'r') goto yy991; + if (yych == 'r') goto yy1001; goto yy11; -yy757: +yy762: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy992; + if (yych == 'd') goto yy1002; goto yy11; } else { - if (yych <= 'l') goto yy993; - if (yych == 'n') goto yy994; + if (yych <= 'l') goto yy1003; + if (yych == 'n') goto yy1004; goto yy11; } -yy758: +yy763: yych = *++cursor_; - if (yych == 'q') goto yy995; - if (yych == 'x') goto yy997; + if (yych == 'q') goto yy1005; + if (yych == 'x') goto yy1007; goto yy11; -yy759: +yy764: yych = *++cursor_; - if (yych == 'e') goto yy998; - if (yych == 't') goto yy999; + if (yych == 'e') goto yy1008; + if (yych == 't') goto yy1009; goto yy11; -yy760: +yy765: yych = *++cursor_; - if (yych == 'e') goto yy1000; - if (yych == 't') goto yy1001; + if (yych == 'e') goto yy1010; + if (yych == 't') goto yy1011; goto yy11; -yy761: +yy766: yych = *++cursor_; - if (yych == 'u') goto yy1002; + if (yych == 'u') goto yy1012; goto yy11; -yy762: +yy767: yych = *++cursor_; - if (yych == 'e') goto yy1003; + if (yych == 'e') goto yy1013; goto yy11; -yy763: +yy768: yych = *++cursor_; - if (yych == 'e') goto yy1005; + if (yych == 'e') goto yy1015; goto yy11; -yy764: +yy769: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy1006; + if (yych == 'h') goto yy1016; goto yy11; } else { - if (yych <= 'p') goto yy1007; - if (yych == 'u') goto yy1008; + if (yych <= 'p') goto yy1017; + if (yych == 'u') goto yy1018; goto yy11; } -yy765: +yy770: yych = *++cursor_; - if (yych == 'p') goto yy1009; + if (yych == 'p') goto yy1019; goto yy11; -yy766: +yy771: yych = *++cursor_; - if (yych == 'g') goto yy1010; - if (yych == 's') goto yy1011; - goto yy11; -yy767: + switch (yych) { + case 'c': goto yy1020; + case 'd': goto yy1021; + case 'f': goto yy1022; + case 'g': goto yy1023; + case 'i': goto yy1024; + case 's': goto yy1025; + default: goto yy11; + } +yy772: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -4607,105 +4655,125 @@ yy767: } else { if (yych <= ')') goto yy191; if (yych <= '/') goto yy10; - if (yych <= '9') goto yy767; + if (yych <= '9') goto yy772; goto yy10; } } else { if (yych <= '^') { if (yych <= ';') goto yy191; if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy767; + if (yych <= 'F') goto yy772; goto yy10; } else { if (yych <= '`') { - if (yych <= '_') goto yy551; + if (yych <= '_') goto yy554; goto yy10; } else { - if (yych <= 'f') goto yy767; + if (yych <= 'f') goto yy772; if (yych <= '~') goto yy10; goto yy191; } } } -yy769: +yy774: yych = *++cursor_; if (yych <= '/') goto yy11; - if (yych <= '0') goto yy1012; - if (yych <= '9') goto yy1014; + if (yych <= '0') goto yy1026; + if (yych <= '9') goto yy1028; goto yy11; -yy770: +yy775: yych = *++cursor_; - if (yych == 'r') goto yy1016; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 687 "src/wast-lexer.cc" + { RETURN(Passive); } +#line 4692 "src/prebuilt/wast-lexer-gen.cc" +yy777: + yych = *++cursor_; + if (yych == 'r') goto yy1030; goto yy11; -yy771: +yy778: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 694 "src/wast-lexer.cc" +#line 702 "src/wast-lexer.cc" { RETURN_OPCODE0(Rethrow); } -#line 4648 "src/prebuilt/wast-lexer-gen.cc" -yy773: +#line 4704 "src/prebuilt/wast-lexer-gen.cc" +yy780: yych = *++cursor_; - if (yych == 'c') goto yy1018; + if (yych == 'c') goto yy1032; goto yy11; -yy774: +yy781: yych = *++cursor_; - if (yych == 'b') goto yy1019; + if (yych == 'b') goto yy1033; goto yy11; -yy775: +yy782: yych = *++cursor_; - if (yych == 'a') goto yy1020; + if (yych == 'a') goto yy1034; goto yy11; -yy776: +yy783: yych = *++cursor_; - if (yych == 'a') goto yy1021; + if (yych == 'o') goto yy1035; goto yy11; -yy777: +yy784: yych = *++cursor_; - if (yych == 'a') goto yy1022; + if (yych == 'r') goto yy1036; goto yy11; -yy778: +yy785: yych = *++cursor_; - if (yych == 'd') goto yy1023; + if (yych == 'n') goto yy1037; goto yy11; -yy779: +yy786: yych = *++cursor_; - if (yych == 't') goto yy1025; + if (yych == 'a') goto yy1038; goto yy11; -yy780: +yy787: yych = *++cursor_; - if (yych == 'n') goto yy1026; + if (yych == 'a') goto yy1039; goto yy11; -yy781: +yy788: yych = *++cursor_; - if (yych == 'a') goto yy1027; + if (yych == 'd') goto yy1040; goto yy11; -yy782: +yy789: yych = *++cursor_; - if (yych == 't') goto yy1028; + if (yych == 't') goto yy1042; goto yy11; -yy783: +yy790: + yych = *++cursor_; + if (yych == 'n') goto yy1043; + goto yy11; +yy791: + yych = *++cursor_; + if (yych == 'a') goto yy1044; + goto yy11; +yy792: + yych = *++cursor_; + if (yych == 't') goto yy1045; + goto yy11; +yy793: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 579 "src/wast-lexer.cc" +#line 586 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, V128Or); } -#line 4696 "src/prebuilt/wast-lexer-gen.cc" -yy785: +#line 4764 "src/prebuilt/wast-lexer-gen.cc" +yy795: yych = *++cursor_; - if (yych == 'o') goto yy1030; + if (yych == 'o') goto yy1047; goto yy11; -yy786: +yy796: yych = *++cursor_; - if (yych == 'r') goto yy1031; + if (yych == 'r') goto yy1048; goto yy11; -yy787: +yy797: yych = *++cursor_; - if (yych == 'h') goto yy1033; + if (yych == 'h') goto yy1050; goto yy11; -yy788: +yy798: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -4721,7 +4789,7 @@ yy788: } else { if (yych <= ':') { if (yych <= '/') goto yy10; - if (yych <= '9') goto yy579; + if (yych <= '9') goto yy584; goto yy10; } else { if (yych <= ';') goto yy12; @@ -4729,7 +4797,7 @@ yy788: goto yy12; } } -yy789: +yy799: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -4741,562 +4809,562 @@ yy789: if (yych <= '\'') goto yy10; if (yych <= ')') goto yy12; if (yych <= '/') goto yy10; - goto yy1034; + goto yy1051; } } else { if (yych <= 'F') { if (yych == ';') goto yy12; if (yych <= '@') goto yy10; - goto yy1034; + goto yy1051; } else { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy1034; + if (yych <= 'f') goto yy1051; if (yych <= '~') goto yy10; goto yy12; } } -yy790: +yy800: yych = *++cursor_; - if (yych == 'x') goto yy1036; + if (yych == 'x') goto yy1053; goto yy11; -yy791: +yy801: yych = *++cursor_; - if (yych == 'n') goto yy1037; + if (yych == 'n') goto yy1054; goto yy11; -yy792: +yy802: yych = *++cursor_; - if (yych == 'a') goto yy1038; + if (yych == 'a') goto yy1055; goto yy11; -yy793: +yy803: yych = *++cursor_; - if (yych == 'e') goto yy1039; + if (yych == 'e') goto yy1056; goto yy11; -yy794: +yy804: yych = *++cursor_; - if (yych == 'r') goto yy1040; + if (yych == 'r') goto yy1057; goto yy11; -yy795: +yy805: yych = *++cursor_; - if (yych == 'n') goto yy1041; + if (yych == 'n') goto yy1058; goto yy11; -yy796: +yy806: yych = *++cursor_; - if (yych == 'a') goto yy1042; + if (yych == 'a') goto yy1059; goto yy11; -yy797: +yy807: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 270 "src/wast-lexer.cc" { RETURN_OPCODE0(BrTable); } -#line 4794 "src/prebuilt/wast-lexer-gen.cc" -yy799: +#line 4862 "src/prebuilt/wast-lexer-gen.cc" +yy809: yych = *++cursor_; - if (yych == 'i') goto yy1043; + if (yych == 'i') goto yy1060; goto yy11; -yy800: +yy810: yych = *++cursor_; - if (yych == 'm') goto yy1044; + if (yych == 'm') goto yy1061; goto yy11; -yy801: +yy811: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 324 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Ceil); } -#line 4810 "src/prebuilt/wast-lexer-gen.cc" -yy803: +#line 4878 "src/prebuilt/wast-lexer-gen.cc" +yy813: yych = *++cursor_; - if (yych == 't') goto yy1045; + if (yych == 't') goto yy1062; goto yy11; -yy804: +yy814: yych = *++cursor_; - if (yych == 'e') goto yy1047; + if (yych == 'e') goto yy1064; goto yy11; -yy805: +yy815: yych = *++cursor_; - if (yych == 's') goto yy1048; + if (yych == 's') goto yy1065; goto yy11; -yy806: +yy816: yych = *++cursor_; - if (yych == 't') goto yy1049; + if (yych == 't') goto yy1066; goto yy11; -yy807: +yy817: yych = *++cursor_; - if (yych == 'r') goto yy1050; + if (yych == 'r') goto yy1067; goto yy11; -yy808: +yy818: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 283 "src/wast-lexer.cc" { RETURN_OPCODE(Load, F32Load); } -#line 4838 "src/prebuilt/wast-lexer-gen.cc" -yy810: +#line 4906 "src/prebuilt/wast-lexer-gen.cc" +yy820: yych = *++cursor_; - if (yych == 'e') goto yy1052; + if (yych == 'e') goto yy1069; goto yy11; -yy811: +yy821: yych = *++cursor_; - if (yych == 't') goto yy1053; + if (yych == 't') goto yy1070; goto yy11; -yy812: +yy822: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 322 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Sqrt); } -#line 4854 "src/prebuilt/wast-lexer-gen.cc" -yy814: +#line 4922 "src/prebuilt/wast-lexer-gen.cc" +yy824: yych = *++cursor_; - if (yych == 'e') goto yy1054; + if (yych == 'e') goto yy1071; goto yy11; -yy815: +yy825: yych = *++cursor_; - if (yych == 'c') goto yy1056; + if (yych == 'c') goto yy1073; goto yy11; -yy816: +yy826: yych = *++cursor_; - if (yych == 's') goto yy1058; + if (yych == 's') goto yy1075; goto yy11; -yy817: +yy827: yych = *++cursor_; - if (yych == 'd') goto yy1060; + if (yych == 'd') goto yy1077; goto yy11; -yy818: +yy828: yych = *++cursor_; - if (yych == 'n') goto yy1062; + if (yych == 'n') goto yy1079; goto yy11; -yy819: +yy829: yych = *++cursor_; - if (yych == 'v') goto yy1063; + if (yych == 'v') goto yy1080; goto yy11; -yy820: +yy830: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 594 "src/wast-lexer.cc" +#line 601 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Eq); } -#line 4886 "src/prebuilt/wast-lexer-gen.cc" -yy822: +#line 4954 "src/prebuilt/wast-lexer-gen.cc" +yy832: yych = *++cursor_; - if (yych == 't') goto yy1065; + if (yych == 't') goto yy1082; goto yy11; -yy823: +yy833: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 631 "src/wast-lexer.cc" +#line 638 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Ge); } -#line 4898 "src/prebuilt/wast-lexer-gen.cc" -yy825: +#line 4966 "src/prebuilt/wast-lexer-gen.cc" +yy835: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 623 "src/wast-lexer.cc" +#line 630 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Gt); } -#line 4906 "src/prebuilt/wast-lexer-gen.cc" -yy827: +#line 4974 "src/prebuilt/wast-lexer-gen.cc" +yy837: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 615 "src/wast-lexer.cc" +#line 622 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Le); } -#line 4914 "src/prebuilt/wast-lexer-gen.cc" -yy829: +#line 4982 "src/prebuilt/wast-lexer-gen.cc" +yy839: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 607 "src/wast-lexer.cc" +#line 614 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Lt); } -#line 4922 "src/prebuilt/wast-lexer-gen.cc" -yy831: +#line 4990 "src/prebuilt/wast-lexer-gen.cc" +yy841: yych = *++cursor_; - if (yych == 'x') goto yy1066; + if (yych == 'x') goto yy1083; goto yy11; -yy832: +yy842: yych = *++cursor_; - if (yych == 'n') goto yy1068; + if (yych == 'n') goto yy1085; goto yy11; -yy833: +yy843: yych = *++cursor_; - if (yych == 'l') goto yy1070; + if (yych == 'l') goto yy1087; goto yy11; -yy834: +yy844: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy835; + if (yych <= '"') goto yy845; if (yych <= '\'') goto yy10; } } else { if (yych <= 'f') { if (yych != ';') goto yy10; } else { - if (yych <= 'g') goto yy1072; + if (yych <= 'g') goto yy1089; if (yych <= '~') goto yy10; } } -yy835: -#line 599 "src/wast-lexer.cc" +yy845: +#line 606 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Ne); } -#line 4955 "src/prebuilt/wast-lexer-gen.cc" -yy836: +#line 5023 "src/prebuilt/wast-lexer-gen.cc" +yy846: yych = *++cursor_; - if (yych == 'p') goto yy1074; + if (yych == 'p') goto yy1091; goto yy11; -yy837: +yy847: yych = *++cursor_; - if (yych == 'l') goto yy1075; + if (yych == 'l') goto yy1092; goto yy11; -yy838: +yy848: yych = *++cursor_; - if (yych == 'r') goto yy1076; + if (yych == 'r') goto yy1093; goto yy11; -yy839: +yy849: yych = *++cursor_; - if (yych == 'b') goto yy1077; + if (yych == 'b') goto yy1094; goto yy11; -yy840: +yy850: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 325 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Ceil); } -#line 4979 "src/prebuilt/wast-lexer-gen.cc" -yy842: +#line 5047 "src/prebuilt/wast-lexer-gen.cc" +yy852: yych = *++cursor_; - if (yych == 't') goto yy1079; + if (yych == 't') goto yy1096; goto yy11; -yy843: +yy853: yych = *++cursor_; - if (yych == 'e') goto yy1081; + if (yych == 'e') goto yy1098; goto yy11; -yy844: +yy854: yych = *++cursor_; - if (yych == 's') goto yy1082; + if (yych == 's') goto yy1099; goto yy11; -yy845: +yy855: yych = *++cursor_; - if (yych == 'r') goto yy1083; + if (yych == 'r') goto yy1100; goto yy11; -yy846: +yy856: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 284 "src/wast-lexer.cc" { RETURN_OPCODE(Load, F64Load); } -#line 5003 "src/prebuilt/wast-lexer-gen.cc" -yy848: +#line 5071 "src/prebuilt/wast-lexer-gen.cc" +yy858: yych = *++cursor_; - if (yych == 'e') goto yy1085; + if (yych == 'e') goto yy1102; goto yy11; -yy849: +yy859: yych = *++cursor_; - if (yych == 'o') goto yy1086; + if (yych == 'o') goto yy1103; goto yy11; -yy850: +yy860: yych = *++cursor_; - if (yych == 't') goto yy1087; + if (yych == 't') goto yy1104; goto yy11; -yy851: +yy861: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 323 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Sqrt); } -#line 5023 "src/prebuilt/wast-lexer-gen.cc" -yy853: +#line 5091 "src/prebuilt/wast-lexer-gen.cc" +yy863: yych = *++cursor_; - if (yych == 'e') goto yy1088; + if (yych == 'e') goto yy1105; goto yy11; -yy854: +yy864: yych = *++cursor_; - if (yych == 'c') goto yy1090; + if (yych == 'c') goto yy1107; goto yy11; -yy855: +yy865: yych = *++cursor_; - if (yych == 's') goto yy1092; + if (yych == 's') goto yy1109; goto yy11; -yy856: +yy866: yych = *++cursor_; - if (yych == 'd') goto yy1094; + if (yych == 'd') goto yy1111; goto yy11; -yy857: +yy867: yych = *++cursor_; - if (yych == 'n') goto yy1096; + if (yych == 'n') goto yy1113; goto yy11; -yy858: +yy868: yych = *++cursor_; - if (yych == 'v') goto yy1097; + if (yych == 'v') goto yy1114; goto yy11; -yy859: +yy869: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 595 "src/wast-lexer.cc" +#line 602 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Eq); } -#line 5055 "src/prebuilt/wast-lexer-gen.cc" -yy861: +#line 5123 "src/prebuilt/wast-lexer-gen.cc" +yy871: yych = *++cursor_; - if (yych == 't') goto yy1099; + if (yych == 't') goto yy1116; goto yy11; -yy862: +yy872: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 632 "src/wast-lexer.cc" +#line 639 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Ge); } -#line 5067 "src/prebuilt/wast-lexer-gen.cc" -yy864: +#line 5135 "src/prebuilt/wast-lexer-gen.cc" +yy874: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 624 "src/wast-lexer.cc" +#line 631 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Gt); } -#line 5075 "src/prebuilt/wast-lexer-gen.cc" -yy866: +#line 5143 "src/prebuilt/wast-lexer-gen.cc" +yy876: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 616 "src/wast-lexer.cc" +#line 623 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Le); } -#line 5083 "src/prebuilt/wast-lexer-gen.cc" -yy868: +#line 5151 "src/prebuilt/wast-lexer-gen.cc" +yy878: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 608 "src/wast-lexer.cc" +#line 615 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Lt); } -#line 5091 "src/prebuilt/wast-lexer-gen.cc" -yy870: +#line 5159 "src/prebuilt/wast-lexer-gen.cc" +yy880: yych = *++cursor_; - if (yych == 'x') goto yy1100; + if (yych == 'x') goto yy1117; goto yy11; -yy871: +yy881: yych = *++cursor_; - if (yych == 'n') goto yy1102; + if (yych == 'n') goto yy1119; goto yy11; -yy872: +yy882: yych = *++cursor_; - if (yych == 'l') goto yy1104; + if (yych == 'l') goto yy1121; goto yy11; -yy873: +yy883: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy874; + if (yych <= '"') goto yy884; if (yych <= '\'') goto yy10; } } else { if (yych <= 'f') { if (yych != ';') goto yy10; } else { - if (yych <= 'g') goto yy1106; + if (yych <= 'g') goto yy1123; if (yych <= '~') goto yy10; } } -yy874: -#line 600 "src/wast-lexer.cc" +yy884: +#line 607 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Ne); } -#line 5124 "src/prebuilt/wast-lexer-gen.cc" -yy875: +#line 5192 "src/prebuilt/wast-lexer-gen.cc" +yy885: yych = *++cursor_; - if (yych == 'p') goto yy1108; + if (yych == 'p') goto yy1125; goto yy11; -yy876: +yy886: yych = *++cursor_; - if (yych == 'l') goto yy1109; + if (yych == 'l') goto yy1126; goto yy11; -yy877: +yy887: yych = *++cursor_; - if (yych == 'r') goto yy1110; + if (yych == 'r') goto yy1127; goto yy11; -yy878: +yy888: yych = *++cursor_; - if (yych == 'b') goto yy1111; + if (yych == 'b') goto yy1128; goto yy11; -yy879: +yy889: yych = *++cursor_; - if (yych == 'a') goto yy1113; + if (yych == 'a') goto yy1130; goto yy11; -yy880: +yy890: yych = *++cursor_; - if (yych == 'l') goto yy1114; + if (yych == 'l') goto yy1131; goto yy11; -yy881: +yy891: yych = *++cursor_; - if (yych == 'o') goto yy1116; + if (yych == 'o') goto yy1133; goto yy11; -yy882: +yy892: yych = *++cursor_; - if (yych == 'd') goto yy1117; + if (yych == 'd') goto yy1134; goto yy11; -yy883: +yy893: yych = *++cursor_; - if (yych == 'l') goto yy1119; + if (yych == 'l') goto yy1136; goto yy11; -yy884: +yy894: yych = *++cursor_; - if (yych == 'y') goto yy1120; + if (yych == 'y') goto yy1137; goto yy11; -yy885: +yy895: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 592 "src/wast-lexer.cc" +#line 599 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8Eq); } -#line 5172 "src/prebuilt/wast-lexer-gen.cc" -yy887: +#line 5240 "src/prebuilt/wast-lexer-gen.cc" +yy897: yych = *++cursor_; - if (yych == 't') goto yy1121; + if (yych == 't') goto yy1138; goto yy11; -yy888: +yy898: yych = *++cursor_; - if (yych == '_') goto yy1122; + if (yych == '_') goto yy1139; goto yy11; -yy889: +yy899: yych = *++cursor_; - if (yych == '_') goto yy1123; + if (yych == '_') goto yy1140; goto yy11; -yy890: +yy900: yych = *++cursor_; - if (yych == '_') goto yy1124; + if (yych == '_') goto yy1141; goto yy11; -yy891: +yy901: yych = *++cursor_; - if (yych == '_') goto yy1125; + if (yych == '_') goto yy1142; goto yy11; -yy892: +yy902: yych = *++cursor_; - if (yych == 'l') goto yy1126; + if (yych == 'l') goto yy1143; goto yy11; -yy893: +yy903: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy894; + if (yych <= '"') goto yy904; if (yych <= '\'') goto yy10; } } else { if (yych <= 'f') { if (yych != ';') goto yy10; } else { - if (yych <= 'g') goto yy1128; + if (yych <= 'g') goto yy1145; if (yych <= '~') goto yy10; } } -yy894: -#line 597 "src/wast-lexer.cc" +yy904: +#line 604 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8Ne); } -#line 5217 "src/prebuilt/wast-lexer-gen.cc" -yy895: +#line 5285 "src/prebuilt/wast-lexer-gen.cc" +yy905: yych = *++cursor_; - if (yych == 'p') goto yy1130; + if (yych == 'p') goto yy1147; goto yy11; -yy896: +yy906: yych = *++cursor_; - if (yych == 'l') goto yy1131; - if (yych == 'r') goto yy1133; + if (yych == 'l') goto yy1148; + if (yych == 'r') goto yy1150; goto yy11; -yy897: +yy907: yych = *++cursor_; - if (yych == 'l') goto yy1134; + if (yych == 'l') goto yy1151; goto yy11; -yy898: +yy908: yych = *++cursor_; - if (yych == 'b') goto yy1135; + if (yych == 'b') goto yy1152; goto yy11; -yy899: +yy909: yych = *++cursor_; - if (yych == 'i') goto yy1137; + if (yych == 'i') goto yy1154; goto yy11; -yy900: +yy910: yych = *++cursor_; - if (yych == 't') goto yy1138; + if (yych == 't') goto yy1155; goto yy11; -yy901: +yy911: yych = *++cursor_; - if (yych == 's') goto yy1140; - if (yych == 'u') goto yy1142; + if (yych == 's') goto yy1157; + if (yych == 'u') goto yy1159; goto yy11; -yy902: +yy912: yych = *++cursor_; - if (yych == 'n') goto yy1144; + if (yych == 'n') goto yy1161; goto yy11; -yy903: +yy913: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 397 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GeS); } -#line 5259 "src/prebuilt/wast-lexer-gen.cc" -yy905: +#line 5327 "src/prebuilt/wast-lexer-gen.cc" +yy915: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 399 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GeU); } -#line 5267 "src/prebuilt/wast-lexer-gen.cc" -yy907: +#line 5335 "src/prebuilt/wast-lexer-gen.cc" +yy917: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 393 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GtS); } -#line 5275 "src/prebuilt/wast-lexer-gen.cc" -yy909: +#line 5343 "src/prebuilt/wast-lexer-gen.cc" +yy919: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 395 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GtU); } -#line 5283 "src/prebuilt/wast-lexer-gen.cc" -yy911: +#line 5351 "src/prebuilt/wast-lexer-gen.cc" +yy921: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 389 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LeS); } -#line 5291 "src/prebuilt/wast-lexer-gen.cc" -yy913: +#line 5359 "src/prebuilt/wast-lexer-gen.cc" +yy923: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 391 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LeU); } -#line 5299 "src/prebuilt/wast-lexer-gen.cc" -yy915: +#line 5367 "src/prebuilt/wast-lexer-gen.cc" +yy925: yych = *++cursor_; if (yych <= '0') { if (yych <= '"') { @@ -5307,1101 +5375,1129 @@ yy915: } } else { if (yych <= '8') { - if (yych <= '1') goto yy1145; + if (yych <= '1') goto yy1162; if (yych <= '7') goto yy10; - goto yy1146; + goto yy1163; } else { - if (yych == ';') goto yy916; + if (yych == ';') goto yy926; if (yych <= '~') goto yy10; } } -yy916: +yy926: #line 281 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load); } -#line 5322 "src/prebuilt/wast-lexer-gen.cc" -yy917: +#line 5390 "src/prebuilt/wast-lexer-gen.cc" +yy927: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 385 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LtS); } -#line 5330 "src/prebuilt/wast-lexer-gen.cc" -yy919: +#line 5398 "src/prebuilt/wast-lexer-gen.cc" +yy929: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 387 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LtU); } -#line 5338 "src/prebuilt/wast-lexer-gen.cc" -yy921: +#line 5406 "src/prebuilt/wast-lexer-gen.cc" +yy931: yych = *++cursor_; - if (yych == 'n') goto yy1147; + if (yych == 'n') goto yy1164; goto yy11; -yy922: +yy932: yych = *++cursor_; - if (yych == 't') goto yy1148; + if (yych == 't') goto yy1165; goto yy11; -yy923: +yy933: yych = *++cursor_; - if (yych == 's') goto yy1149; - if (yych == 'u') goto yy1151; + if (yych == 's') goto yy1166; + if (yych == 'u') goto yy1168; goto yy11; -yy924: +yy934: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 363 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Rotl); } -#line 5359 "src/prebuilt/wast-lexer-gen.cc" -yy926: +#line 5427 "src/prebuilt/wast-lexer-gen.cc" +yy936: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 365 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Rotr); } -#line 5367 "src/prebuilt/wast-lexer-gen.cc" -yy928: +#line 5435 "src/prebuilt/wast-lexer-gen.cc" +yy938: yych = *++cursor_; - if (yych == 's') goto yy1153; - if (yych == 'u') goto yy1155; + if (yych == 's') goto yy1170; + if (yych == 'u') goto yy1172; goto yy11; -yy929: +yy939: yych = *++cursor_; - if (yych == 'e') goto yy1157; + if (yych == 'e') goto yy1174; goto yy11; -yy930: +yy940: yych = *++cursor_; - if (yych == 'c') goto yy1159; + if (yych == 'c') goto yy1176; goto yy11; -yy931: +yy941: yych = *++cursor_; - if (yych == '/') goto yy1160; + if (yych == '/') goto yy1177; goto yy11; -yy932: +yy942: yych = *++cursor_; - if (yych == 'd') goto yy1161; + if (yych == 'd') goto yy1178; goto yy11; -yy933: +yy943: yych = *++cursor_; - if (yych == 'l') goto yy1163; + if (yych == 'l') goto yy1180; goto yy11; -yy934: +yy944: yych = *++cursor_; - if (yych == 'y') goto yy1164; + if (yych == 'y') goto yy1181; goto yy11; -yy935: +yy945: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 593 "src/wast-lexer.cc" +#line 600 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4Eq); } -#line 5404 "src/prebuilt/wast-lexer-gen.cc" -yy937: +#line 5472 "src/prebuilt/wast-lexer-gen.cc" +yy947: yych = *++cursor_; - if (yych == 't') goto yy1165; + if (yych == 't') goto yy1182; goto yy11; -yy938: +yy948: yych = *++cursor_; - if (yych == '_') goto yy1166; + if (yych == '_') goto yy1183; goto yy11; -yy939: +yy949: yych = *++cursor_; - if (yych == '_') goto yy1167; + if (yych == '_') goto yy1184; goto yy11; -yy940: +yy950: yych = *++cursor_; - if (yych == '_') goto yy1168; + if (yych == '_') goto yy1185; goto yy11; -yy941: +yy951: yych = *++cursor_; - if (yych == '_') goto yy1169; + if (yych == '_') goto yy1186; goto yy11; -yy942: +yy952: yych = *++cursor_; - if (yych == 'l') goto yy1170; + if (yych == 'l') goto yy1187; goto yy11; -yy943: +yy953: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy944; + if (yych <= '"') goto yy954; if (yych <= '\'') goto yy10; } } else { if (yych <= 'f') { if (yych != ';') goto yy10; } else { - if (yych <= 'g') goto yy1172; + if (yych <= 'g') goto yy1189; if (yych <= '~') goto yy10; } } -yy944: -#line 598 "src/wast-lexer.cc" +yy954: +#line 605 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4Ne); } -#line 5449 "src/prebuilt/wast-lexer-gen.cc" -yy945: +#line 5517 "src/prebuilt/wast-lexer-gen.cc" +yy955: yych = *++cursor_; - if (yych == 'p') goto yy1174; + if (yych == 'p') goto yy1191; goto yy11; -yy946: +yy956: yych = *++cursor_; - if (yych == 'l') goto yy1175; - if (yych == 'r') goto yy1177; + if (yych == 'l') goto yy1192; + if (yych == 'r') goto yy1194; goto yy11; -yy947: +yy957: yych = *++cursor_; - if (yych == 'l') goto yy1178; + if (yych == 'l') goto yy1195; goto yy11; -yy948: +yy958: yych = *++cursor_; - if (yych == 'b') goto yy1179; + if (yych == 'b') goto yy1196; goto yy11; -yy949: +yy959: yych = *++cursor_; - if (yych == 'u') goto yy1181; + if (yych == 'u') goto yy1198; goto yy11; -yy950: +yy960: yych = *++cursor_; - if (yych == 'i') goto yy1182; + if (yych == 'i') goto yy1199; goto yy11; -yy951: +yy961: yych = *++cursor_; - if (yych == 't') goto yy1183; + if (yych == 't') goto yy1200; goto yy11; -yy952: +yy962: yych = *++cursor_; - if (yych == 's') goto yy1185; - if (yych == 'u') goto yy1187; + if (yych == 's') goto yy1202; + if (yych == 'u') goto yy1204; goto yy11; -yy953: +yy963: yych = *++cursor_; - if (yych == 'n') goto yy1189; + if (yych == 'n') goto yy1206; goto yy11; -yy954: +yy964: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 398 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GeS); } -#line 5495 "src/prebuilt/wast-lexer-gen.cc" -yy956: +#line 5563 "src/prebuilt/wast-lexer-gen.cc" +yy966: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 400 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GeU); } -#line 5503 "src/prebuilt/wast-lexer-gen.cc" -yy958: +#line 5571 "src/prebuilt/wast-lexer-gen.cc" +yy968: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 394 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GtS); } -#line 5511 "src/prebuilt/wast-lexer-gen.cc" -yy960: +#line 5579 "src/prebuilt/wast-lexer-gen.cc" +yy970: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 396 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GtU); } -#line 5519 "src/prebuilt/wast-lexer-gen.cc" -yy962: +#line 5587 "src/prebuilt/wast-lexer-gen.cc" +yy972: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 390 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LeS); } -#line 5527 "src/prebuilt/wast-lexer-gen.cc" -yy964: +#line 5595 "src/prebuilt/wast-lexer-gen.cc" +yy974: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 392 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LeU); } -#line 5535 "src/prebuilt/wast-lexer-gen.cc" -yy966: +#line 5603 "src/prebuilt/wast-lexer-gen.cc" +yy976: yych = *++cursor_; if (yych <= '1') { if (yych <= '"') { if (yych == '!') goto yy10; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy967; + if (yych <= ')') goto yy977; if (yych <= '0') goto yy10; - goto yy1190; + goto yy1207; } } else { if (yych <= '8') { - if (yych == '3') goto yy1191; + if (yych == '3') goto yy1208; if (yych <= '7') goto yy10; - goto yy1192; + goto yy1209; } else { - if (yych == ';') goto yy967; + if (yych == ';') goto yy977; if (yych <= '~') goto yy10; } } -yy967: +yy977: #line 282 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load); } -#line 5560 "src/prebuilt/wast-lexer-gen.cc" -yy968: +#line 5628 "src/prebuilt/wast-lexer-gen.cc" +yy978: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 386 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LtS); } -#line 5568 "src/prebuilt/wast-lexer-gen.cc" -yy970: +#line 5636 "src/prebuilt/wast-lexer-gen.cc" +yy980: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 388 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LtU); } -#line 5576 "src/prebuilt/wast-lexer-gen.cc" -yy972: +#line 5644 "src/prebuilt/wast-lexer-gen.cc" +yy982: yych = *++cursor_; - if (yych == 'n') goto yy1193; + if (yych == 'n') goto yy1210; goto yy11; -yy973: +yy983: yych = *++cursor_; - if (yych == 't') goto yy1194; + if (yych == 't') goto yy1211; goto yy11; -yy974: +yy984: yych = *++cursor_; - if (yych == 's') goto yy1195; - if (yych == 'u') goto yy1197; + if (yych == 's') goto yy1212; + if (yych == 'u') goto yy1214; goto yy11; -yy975: +yy985: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 364 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Rotl); } -#line 5597 "src/prebuilt/wast-lexer-gen.cc" -yy977: +#line 5665 "src/prebuilt/wast-lexer-gen.cc" +yy987: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 366 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Rotr); } -#line 5605 "src/prebuilt/wast-lexer-gen.cc" -yy979: +#line 5673 "src/prebuilt/wast-lexer-gen.cc" +yy989: yych = *++cursor_; - if (yych == 's') goto yy1199; - if (yych == 'u') goto yy1201; + if (yych == 's') goto yy1216; + if (yych == 'u') goto yy1218; goto yy11; -yy980: +yy990: yych = *++cursor_; - if (yych == 'e') goto yy1203; + if (yych == 'e') goto yy1220; goto yy11; -yy981: +yy991: yych = *++cursor_; - if (yych == 'c') goto yy1205; + if (yych == 'c') goto yy1222; goto yy11; -yy982: +yy992: yych = *++cursor_; - if (yych == 'd') goto yy1206; + if (yych == 'd') goto yy1223; goto yy11; -yy983: +yy993: yych = *++cursor_; - if (yych == 'l') goto yy1208; + if (yych == 'l') goto yy1225; goto yy11; -yy984: +yy994: yych = *++cursor_; - if (yych == 'y') goto yy1209; + if (yych == 'y') goto yy1226; goto yy11; -yy985: +yy995: yych = *++cursor_; - if (yych == 't') goto yy1210; + if (yych == 't') goto yy1227; goto yy11; -yy986: +yy996: yych = *++cursor_; - if (yych == 'g') goto yy1211; + if (yych == 'g') goto yy1228; goto yy11; -yy987: +yy997: yych = *++cursor_; - if (yych == 'p') goto yy1213; + if (yych == 'p') goto yy1230; goto yy11; -yy988: +yy998: yych = *++cursor_; - if (yych == 'l') goto yy1214; - if (yych == 'r') goto yy1216; + if (yych == 'l') goto yy1231; + if (yych == 'r') goto yy1233; goto yy11; -yy989: +yy999: yych = *++cursor_; - if (yych == 'l') goto yy1217; + if (yych == 'l') goto yy1234; goto yy11; -yy990: +yy1000: yych = *++cursor_; - if (yych == 'b') goto yy1218; + if (yych == 'b') goto yy1235; goto yy11; -yy991: +yy1001: yych = *++cursor_; - if (yych == 'u') goto yy1220; + if (yych == 'u') goto yy1237; goto yy11; -yy992: +yy1002: yych = *++cursor_; - if (yych == 'd') goto yy1221; + if (yych == 'd') goto yy1238; goto yy11; -yy993: +yy1003: yych = *++cursor_; - if (yych == 'l') goto yy1223; + if (yych == 'l') goto yy1240; goto yy11; -yy994: +yy1004: yych = *++cursor_; - if (yych == 'y') goto yy1224; + if (yych == 'y') goto yy1241; goto yy11; -yy995: +yy1005: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 591 "src/wast-lexer.cc" +#line 598 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16Eq); } -#line 5679 "src/prebuilt/wast-lexer-gen.cc" -yy997: +#line 5747 "src/prebuilt/wast-lexer-gen.cc" +yy1007: yych = *++cursor_; - if (yych == 't') goto yy1225; + if (yych == 't') goto yy1242; goto yy11; -yy998: +yy1008: yych = *++cursor_; - if (yych == '_') goto yy1226; + if (yych == '_') goto yy1243; goto yy11; -yy999: +yy1009: yych = *++cursor_; - if (yych == '_') goto yy1227; + if (yych == '_') goto yy1244; goto yy11; -yy1000: +yy1010: yych = *++cursor_; - if (yych == '_') goto yy1228; + if (yych == '_') goto yy1245; goto yy11; -yy1001: +yy1011: yych = *++cursor_; - if (yych == '_') goto yy1229; + if (yych == '_') goto yy1246; goto yy11; -yy1002: +yy1012: yych = *++cursor_; - if (yych == 'l') goto yy1230; + if (yych == 'l') goto yy1247; goto yy11; -yy1003: +yy1013: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1004; + if (yych <= '"') goto yy1014; if (yych <= '\'') goto yy10; } } else { if (yych <= 'f') { if (yych != ';') goto yy10; } else { - if (yych <= 'g') goto yy1232; + if (yych <= 'g') goto yy1249; if (yych <= '~') goto yy10; } } -yy1004: -#line 596 "src/wast-lexer.cc" +yy1014: +#line 603 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16Ne); } -#line 5724 "src/prebuilt/wast-lexer-gen.cc" -yy1005: +#line 5792 "src/prebuilt/wast-lexer-gen.cc" +yy1015: yych = *++cursor_; - if (yych == 'p') goto yy1234; + if (yych == 'p') goto yy1251; goto yy11; -yy1006: +yy1016: yych = *++cursor_; - if (yych == 'l') goto yy1235; - if (yych == 'r') goto yy1237; + if (yych == 'l') goto yy1252; + if (yych == 'r') goto yy1254; goto yy11; -yy1007: +yy1017: yych = *++cursor_; - if (yych == 'l') goto yy1238; + if (yych == 'l') goto yy1255; goto yy11; -yy1008: +yy1018: yych = *++cursor_; - if (yych == 'b') goto yy1239; + if (yych == 'b') goto yy1256; goto yy11; -yy1009: +yy1019: yych = *++cursor_; - if (yych == 't') goto yy1241; + if (yych == 't') goto yy1258; goto yy11; -yy1010: +yy1020: yych = *++cursor_; - if (yych == 'r') goto yy1243; + if (yych == 'o') goto yy1260; goto yy11; -yy1011: +yy1021: yych = *++cursor_; - if (yych == 'i') goto yy1244; + if (yych == 'r') goto yy1261; goto yy11; -yy1012: +yy1022: yych = *++cursor_; - if (yych == 'x') goto yy1246; - goto yy1015; -yy1013: + if (yych == 'i') goto yy1262; + goto yy11; +yy1023: + yych = *++cursor_; + if (yych == 'r') goto yy1263; + goto yy11; +yy1024: + yych = *++cursor_; + if (yych == 'n') goto yy1264; + goto yy11; +yy1025: + yych = *++cursor_; + if (yych == 'i') goto yy1265; + goto yy11; +yy1026: + yych = *++cursor_; + if (yych == 'x') goto yy1267; + goto yy1029; +yy1027: #line 304 "src/wast-lexer.cc" { RETURN_TEXT_AT(OffsetEqNat, 7); } -#line 5761 "src/prebuilt/wast-lexer-gen.cc" -yy1014: +#line 5845 "src/prebuilt/wast-lexer-gen.cc" +yy1028: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy1015: +yy1029: if (yych <= '/') { if (yych <= '"') { if (yych == '!') goto yy10; - goto yy1013; + goto yy1027; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1013; + if (yych <= ')') goto yy1027; goto yy10; } } else { if (yych <= ';') { - if (yych <= '9') goto yy1014; + if (yych <= '9') goto yy1028; if (yych <= ':') goto yy10; - goto yy1013; + goto yy1027; } else { - if (yych == '_') goto yy1245; + if (yych == '_') goto yy1266; if (yych <= '~') goto yy10; - goto yy1013; + goto yy1027; } } -yy1016: +yy1030: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 680 "src/wast-lexer.cc" +#line 688 "src/wast-lexer.cc" { RETURN(Register); } -#line 5794 "src/prebuilt/wast-lexer-gen.cc" -yy1018: +#line 5878 "src/prebuilt/wast-lexer-gen.cc" +yy1032: yych = *++cursor_; - if (yych == 'a') goto yy1247; + if (yych == 'a') goto yy1268; goto yy11; -yy1019: +yy1033: yych = *++cursor_; - if (yych == 'a') goto yy1248; + if (yych == 'a') goto yy1269; goto yy11; -yy1020: +yy1034: yych = *++cursor_; - if (yych == 'l') goto yy1249; + if (yych == 'l') goto yy1270; goto yy11; -yy1021: +yy1035: yych = *++cursor_; - if (yych == 'l') goto yy1251; + if (yych == 'p') goto yy1272; goto yy11; -yy1022: +yy1036: yych = *++cursor_; - if (yych == 'b') goto yy1253; + if (yych == 'o') goto yy1273; goto yy11; -yy1023: +yy1037: + yych = *++cursor_; + if (yych == 'i') goto yy1274; + goto yy11; +yy1038: + yych = *++cursor_; + if (yych == 'l') goto yy1275; + goto yy11; +yy1039: + yych = *++cursor_; + if (yych == 'b') goto yy1277; + goto yy11; +yy1040: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 578 "src/wast-lexer.cc" +#line 585 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, V128And); } -#line 5822 "src/prebuilt/wast-lexer-gen.cc" -yy1025: +#line 5918 "src/prebuilt/wast-lexer-gen.cc" +yy1042: yych = *++cursor_; - if (yych == 's') goto yy1254; + if (yych == 's') goto yy1278; goto yy11; -yy1026: +yy1043: yych = *++cursor_; - if (yych == 's') goto yy1255; + if (yych == 's') goto yy1279; goto yy11; -yy1027: +yy1044: yych = *++cursor_; - if (yych == 'd') goto yy1256; + if (yych == 'd') goto yy1280; goto yy11; -yy1028: +yy1045: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 581 "src/wast-lexer.cc" +#line 588 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, V128Not); } -#line 5842 "src/prebuilt/wast-lexer-gen.cc" -yy1030: +#line 5938 "src/prebuilt/wast-lexer-gen.cc" +yy1047: yych = *++cursor_; - if (yych == 'r') goto yy1258; + if (yych == 'r') goto yy1282; goto yy11; -yy1031: +yy1048: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 580 "src/wast-lexer.cc" +#line 587 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, V128Xor); } -#line 5854 "src/prebuilt/wast-lexer-gen.cc" -yy1033: +#line 5950 "src/prebuilt/wast-lexer-gen.cc" +yy1050: yych = *++cursor_; - if (yych == 'u') goto yy1259; + if (yych == 'u') goto yy1283; goto yy11; -yy1034: +yy1051: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { if (yych == '!') goto yy10; - if (yych <= '"') goto yy578; + if (yych <= '"') goto yy583; goto yy10; } else { - if (yych <= ')') goto yy578; + if (yych <= ')') goto yy583; if (yych <= '/') goto yy10; - if (yych <= '9') goto yy1034; + if (yych <= '9') goto yy1051; goto yy10; } } else { if (yych <= '^') { - if (yych <= ';') goto yy578; + if (yych <= ';') goto yy583; if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy1034; + if (yych <= 'F') goto yy1051; goto yy10; } else { if (yych <= '`') { - if (yych <= '_') goto yy789; + if (yych <= '_') goto yy799; goto yy10; } else { - if (yych <= 'f') goto yy1034; + if (yych <= 'f') goto yy1051; if (yych <= '~') goto yy10; - goto yy578; + goto yy583; } } } -yy1036: +yy1053: yych = *++cursor_; - if (yych == 'h') goto yy1260; + if (yych == 'h') goto yy1284; goto yy11; -yy1037: +yy1054: yych = *++cursor_; - if (yych == 'v') goto yy1261; + if (yych == 'v') goto yy1285; goto yy11; -yy1038: +yy1055: yych = *++cursor_; - if (yych == 'l') goto yy1262; + if (yych == 'l') goto yy1286; goto yy11; -yy1039: +yy1056: yych = *++cursor_; - if (yych == 't') goto yy1263; + if (yych == 't') goto yy1287; goto yy11; -yy1040: +yy1057: yych = *++cursor_; - if (yych == 'a') goto yy1264; + if (yych == 'a') goto yy1288; goto yy11; -yy1041: +yy1058: yych = *++cursor_; - if (yych == 'l') goto yy1265; + if (yych == 'l') goto yy1289; goto yy11; -yy1042: +yy1059: yych = *++cursor_; - if (yych == 'k') goto yy1266; + if (yych == 'k') goto yy1290; goto yy11; -yy1043: +yy1060: yych = *++cursor_; - if (yych == 'r') goto yy1267; + if (yych == 'r') goto yy1291; goto yy11; -yy1044: +yy1061: yych = *++cursor_; - if (yych == 'e') goto yy1268; + if (yych == 'e') goto yy1292; goto yy11; -yy1045: +yy1062: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 308 "src/wast-lexer.cc" { RETURN_OPCODE(Const, F32Const); } -#line 5934 "src/prebuilt/wast-lexer-gen.cc" -yy1047: +#line 6030 "src/prebuilt/wast-lexer-gen.cc" +yy1064: yych = *++cursor_; - if (yych == 'r') goto yy1269; + if (yych == 'r') goto yy1293; goto yy11; -yy1048: +yy1065: yych = *++cursor_; - if (yych == 'i') goto yy1270; + if (yych == 'i') goto yy1294; goto yy11; -yy1049: +yy1066: yych = *++cursor_; - if (yych == 'e') goto yy1271; + if (yych == 'e') goto yy1295; goto yy11; -yy1050: +yy1067: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 326 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Floor); } -#line 5954 "src/prebuilt/wast-lexer-gen.cc" -yy1052: +#line 6050 "src/prebuilt/wast-lexer-gen.cc" +yy1069: yych = *++cursor_; - if (yych == 's') goto yy1272; + if (yych == 's') goto yy1296; goto yy11; -yy1053: +yy1070: yych = *++cursor_; - if (yych == 'e') goto yy1273; + if (yych == 'e') goto yy1297; goto yy11; -yy1054: +yy1071: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 287 "src/wast-lexer.cc" { RETURN_OPCODE(Store, F32Store); } -#line 5970 "src/prebuilt/wast-lexer-gen.cc" -yy1056: +#line 6066 "src/prebuilt/wast-lexer-gen.cc" +yy1073: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 328 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Trunc); } -#line 5978 "src/prebuilt/wast-lexer-gen.cc" -yy1058: +#line 6074 "src/prebuilt/wast-lexer-gen.cc" +yy1075: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 635 "src/wast-lexer.cc" +#line 642 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Abs); } -#line 5986 "src/prebuilt/wast-lexer-gen.cc" -yy1060: +#line 6082 "src/prebuilt/wast-lexer-gen.cc" +yy1077: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 641 "src/wast-lexer.cc" +#line 648 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Add); } -#line 5994 "src/prebuilt/wast-lexer-gen.cc" -yy1062: +#line 6090 "src/prebuilt/wast-lexer-gen.cc" +yy1079: yych = *++cursor_; - if (yych == 'v') goto yy1274; + if (yych == 'v') goto yy1298; goto yy11; -yy1063: +yy1080: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 645 "src/wast-lexer.cc" +#line 652 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Div); } -#line 6006 "src/prebuilt/wast-lexer-gen.cc" -yy1065: +#line 6102 "src/prebuilt/wast-lexer-gen.cc" +yy1082: yych = *++cursor_; - if (yych == 'r') goto yy1275; + if (yych == 'r') goto yy1299; goto yy11; -yy1066: +yy1083: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 639 "src/wast-lexer.cc" +#line 646 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Max); } -#line 6018 "src/prebuilt/wast-lexer-gen.cc" -yy1068: +#line 6114 "src/prebuilt/wast-lexer-gen.cc" +yy1085: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 637 "src/wast-lexer.cc" +#line 644 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Min); } -#line 6026 "src/prebuilt/wast-lexer-gen.cc" -yy1070: +#line 6122 "src/prebuilt/wast-lexer-gen.cc" +yy1087: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 647 "src/wast-lexer.cc" +#line 654 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Mul); } -#line 6034 "src/prebuilt/wast-lexer-gen.cc" -yy1072: +#line 6130 "src/prebuilt/wast-lexer-gen.cc" +yy1089: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 633 "src/wast-lexer.cc" +#line 640 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Neg); } -#line 6042 "src/prebuilt/wast-lexer-gen.cc" -yy1074: +#line 6138 "src/prebuilt/wast-lexer-gen.cc" +yy1091: yych = *++cursor_; - if (yych == 'l') goto yy1276; + if (yych == 'l') goto yy1300; goto yy11; -yy1075: +yy1092: yych = *++cursor_; - if (yych == 'a') goto yy1277; + if (yych == 'a') goto yy1301; goto yy11; -yy1076: +yy1093: yych = *++cursor_; - if (yych == 't') goto yy1278; + if (yych == 't') goto yy1302; goto yy11; -yy1077: +yy1094: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 643 "src/wast-lexer.cc" +#line 650 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Sub); } -#line 6062 "src/prebuilt/wast-lexer-gen.cc" -yy1079: +#line 6158 "src/prebuilt/wast-lexer-gen.cc" +yy1096: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 309 "src/wast-lexer.cc" { RETURN_OPCODE(Const, F64Const); } -#line 6070 "src/prebuilt/wast-lexer-gen.cc" -yy1081: +#line 6166 "src/prebuilt/wast-lexer-gen.cc" +yy1098: yych = *++cursor_; - if (yych == 'r') goto yy1280; + if (yych == 'r') goto yy1304; goto yy11; -yy1082: +yy1099: yych = *++cursor_; - if (yych == 'i') goto yy1281; + if (yych == 'i') goto yy1305; goto yy11; -yy1083: +yy1100: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 327 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Floor); } -#line 6086 "src/prebuilt/wast-lexer-gen.cc" -yy1085: +#line 6182 "src/prebuilt/wast-lexer-gen.cc" +yy1102: yych = *++cursor_; - if (yych == 's') goto yy1282; + if (yych == 's') goto yy1306; goto yy11; -yy1086: +yy1103: yych = *++cursor_; - if (yych == 't') goto yy1283; + if (yych == 't') goto yy1307; goto yy11; -yy1087: +yy1104: yych = *++cursor_; - if (yych == 'e') goto yy1284; + if (yych == 'e') goto yy1308; goto yy11; -yy1088: +yy1105: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 288 "src/wast-lexer.cc" { RETURN_OPCODE(Store, F64Store); } -#line 6106 "src/prebuilt/wast-lexer-gen.cc" -yy1090: +#line 6202 "src/prebuilt/wast-lexer-gen.cc" +yy1107: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 329 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Trunc); } -#line 6114 "src/prebuilt/wast-lexer-gen.cc" -yy1092: +#line 6210 "src/prebuilt/wast-lexer-gen.cc" +yy1109: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 636 "src/wast-lexer.cc" +#line 643 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Abs); } -#line 6122 "src/prebuilt/wast-lexer-gen.cc" -yy1094: +#line 6218 "src/prebuilt/wast-lexer-gen.cc" +yy1111: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 642 "src/wast-lexer.cc" +#line 649 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Add); } -#line 6130 "src/prebuilt/wast-lexer-gen.cc" -yy1096: +#line 6226 "src/prebuilt/wast-lexer-gen.cc" +yy1113: yych = *++cursor_; - if (yych == 'v') goto yy1285; + if (yych == 'v') goto yy1309; goto yy11; -yy1097: +yy1114: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 646 "src/wast-lexer.cc" +#line 653 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Div); } -#line 6142 "src/prebuilt/wast-lexer-gen.cc" -yy1099: +#line 6238 "src/prebuilt/wast-lexer-gen.cc" +yy1116: yych = *++cursor_; - if (yych == 'r') goto yy1286; + if (yych == 'r') goto yy1310; goto yy11; -yy1100: +yy1117: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 640 "src/wast-lexer.cc" +#line 647 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Max); } -#line 6154 "src/prebuilt/wast-lexer-gen.cc" -yy1102: +#line 6250 "src/prebuilt/wast-lexer-gen.cc" +yy1119: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 638 "src/wast-lexer.cc" +#line 645 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Min); } -#line 6162 "src/prebuilt/wast-lexer-gen.cc" -yy1104: +#line 6258 "src/prebuilt/wast-lexer-gen.cc" +yy1121: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 648 "src/wast-lexer.cc" +#line 655 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Mul); } -#line 6170 "src/prebuilt/wast-lexer-gen.cc" -yy1106: +#line 6266 "src/prebuilt/wast-lexer-gen.cc" +yy1123: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 634 "src/wast-lexer.cc" +#line 641 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Neg); } -#line 6178 "src/prebuilt/wast-lexer-gen.cc" -yy1108: +#line 6274 "src/prebuilt/wast-lexer-gen.cc" +yy1125: yych = *++cursor_; - if (yych == 'l') goto yy1287; + if (yych == 'l') goto yy1311; goto yy11; -yy1109: +yy1126: yych = *++cursor_; - if (yych == 'a') goto yy1288; + if (yych == 'a') goto yy1312; goto yy11; -yy1110: +yy1127: yych = *++cursor_; - if (yych == 't') goto yy1289; + if (yych == 't') goto yy1313; goto yy11; -yy1111: +yy1128: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 644 "src/wast-lexer.cc" +#line 651 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Sub); } -#line 6198 "src/prebuilt/wast-lexer-gen.cc" -yy1113: +#line 6294 "src/prebuilt/wast-lexer-gen.cc" +yy1130: yych = *++cursor_; - if (yych == 'l') goto yy1291; + if (yych == 'l') goto yy1315; goto yy11; -yy1114: +yy1131: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 276 "src/wast-lexer.cc" { RETURN_OPCODE0(GetLocal); } -#line 6210 "src/prebuilt/wast-lexer-gen.cc" -yy1116: +#line 6306 "src/prebuilt/wast-lexer-gen.cc" +yy1133: yych = *++cursor_; - if (yych == 'r') goto yy1293; + if (yych == 'r') goto yy1317; goto yy11; -yy1117: +yy1134: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1118; + if (yych <= '"') goto yy1135; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy1294; + if (yych <= '_') goto yy1318; if (yych <= '~') goto yy10; } } -yy1118: -#line 544 "src/wast-lexer.cc" +yy1135: +#line 551 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Add); } -#line 6235 "src/prebuilt/wast-lexer-gen.cc" -yy1119: +#line 6331 "src/prebuilt/wast-lexer-gen.cc" +yy1136: yych = *++cursor_; - if (yych == '_') goto yy1295; + if (yych == '_') goto yy1319; goto yy11; -yy1120: +yy1137: yych = *++cursor_; - if (yych == '_') goto yy1296; + if (yych == '_') goto yy1320; goto yy11; -yy1121: +yy1138: yych = *++cursor_; - if (yych == 'r') goto yy1297; + if (yych == 'r') goto yy1321; goto yy11; -yy1122: +yy1139: yych = *++cursor_; - if (yych == 's') goto yy1298; - if (yych == 'u') goto yy1300; + if (yych == 's') goto yy1322; + if (yych == 'u') goto yy1324; goto yy11; -yy1123: +yy1140: yych = *++cursor_; - if (yych == 's') goto yy1302; - if (yych == 'u') goto yy1304; + if (yych == 's') goto yy1326; + if (yych == 'u') goto yy1328; goto yy11; -yy1124: +yy1141: yych = *++cursor_; - if (yych == 's') goto yy1306; - if (yych == 'u') goto yy1308; + if (yych == 's') goto yy1330; + if (yych == 'u') goto yy1332; goto yy11; -yy1125: +yy1142: yych = *++cursor_; - if (yych == 's') goto yy1310; - if (yych == 'u') goto yy1312; + if (yych == 's') goto yy1334; + if (yych == 'u') goto yy1336; goto yy11; -yy1126: +yy1143: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 552 "src/wast-lexer.cc" +#line 559 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Mul); } -#line 6275 "src/prebuilt/wast-lexer-gen.cc" -yy1128: +#line 6371 "src/prebuilt/wast-lexer-gen.cc" +yy1145: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 555 "src/wast-lexer.cc" +#line 562 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I16X8Neg); } -#line 6283 "src/prebuilt/wast-lexer-gen.cc" -yy1130: +#line 6379 "src/prebuilt/wast-lexer-gen.cc" +yy1147: yych = *++cursor_; - if (yych == 'l') goto yy1314; + if (yych == 'l') goto yy1338; goto yy11; -yy1131: +yy1148: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 567 "src/wast-lexer.cc" +#line 574 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Shl); } -#line 6295 "src/prebuilt/wast-lexer-gen.cc" -yy1133: +#line 6391 "src/prebuilt/wast-lexer-gen.cc" +yy1150: yych = *++cursor_; - if (yych == '_') goto yy1315; + if (yych == '_') goto yy1339; goto yy11; -yy1134: +yy1151: yych = *++cursor_; - if (yych == 'a') goto yy1316; + if (yych == 'a') goto yy1340; goto yy11; -yy1135: +yy1152: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1136; + if (yych <= '"') goto yy1153; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy1317; + if (yych <= '_') goto yy1341; if (yych <= '~') goto yy10; } } -yy1136: -#line 548 "src/wast-lexer.cc" +yy1153: +#line 555 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Sub); } -#line 6324 "src/prebuilt/wast-lexer-gen.cc" -yy1137: +#line 6420 "src/prebuilt/wast-lexer-gen.cc" +yy1154: yych = *++cursor_; - if (yych == 'c') goto yy1318; + if (yych == 'c') goto yy1342; goto yy11; -yy1138: +yy1155: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 306 "src/wast-lexer.cc" { RETURN_OPCODE(Const, I32Const); } -#line 6336 "src/prebuilt/wast-lexer-gen.cc" -yy1140: +#line 6432 "src/prebuilt/wast-lexer-gen.cc" +yy1157: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 343 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32DivS); } -#line 6344 "src/prebuilt/wast-lexer-gen.cc" -yy1142: +#line 6440 "src/prebuilt/wast-lexer-gen.cc" +yy1159: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 345 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32DivU); } -#line 6352 "src/prebuilt/wast-lexer-gen.cc" -yy1144: +#line 6448 "src/prebuilt/wast-lexer-gen.cc" +yy1161: yych = *++cursor_; - if (yych == 'd') goto yy1319; + if (yych == 'd') goto yy1343; goto yy11; -yy1145: +yy1162: yych = *++cursor_; - if (yych == '6') goto yy1320; + if (yych == '6') goto yy1344; goto yy11; -yy1146: +yy1163: yych = *++cursor_; - if (yych == '_') goto yy1321; + if (yych == '_') goto yy1345; goto yy11; -yy1147: +yy1164: yych = *++cursor_; - if (yych == 't') goto yy1322; + if (yych == 't') goto yy1346; goto yy11; -yy1148: +yy1165: yych = *++cursor_; - if (yych == 'e') goto yy1324; + if (yych == 'e') goto yy1348; goto yy11; -yy1149: +yy1166: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 347 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32RemS); } -#line 6380 "src/prebuilt/wast-lexer-gen.cc" -yy1151: +#line 6476 "src/prebuilt/wast-lexer-gen.cc" +yy1168: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 349 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32RemU); } -#line 6388 "src/prebuilt/wast-lexer-gen.cc" -yy1153: +#line 6484 "src/prebuilt/wast-lexer-gen.cc" +yy1170: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 359 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32ShrS); } -#line 6396 "src/prebuilt/wast-lexer-gen.cc" -yy1155: +#line 6492 "src/prebuilt/wast-lexer-gen.cc" +yy1172: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 361 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32ShrU); } -#line 6404 "src/prebuilt/wast-lexer-gen.cc" -yy1157: +#line 6500 "src/prebuilt/wast-lexer-gen.cc" +yy1174: yych = *++cursor_; if (yych <= '0') { if (yych <= '"') { @@ -6412,414 +6508,430 @@ yy1157: } } else { if (yych <= '8') { - if (yych <= '1') goto yy1325; + if (yych <= '1') goto yy1349; if (yych <= '7') goto yy10; - goto yy1326; + goto yy1350; } else { - if (yych == ';') goto yy1158; + if (yych == ';') goto yy1175; if (yych <= '~') goto yy10; } } -yy1158: +yy1175: #line 285 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store); } -#line 6427 "src/prebuilt/wast-lexer-gen.cc" -yy1159: +#line 6523 "src/prebuilt/wast-lexer-gen.cc" +yy1176: yych = *++cursor_; - if (yych == '_') goto yy1328; + if (yych == '_') goto yy1352; goto yy11; -yy1160: +yy1177: yych = *++cursor_; - if (yych == 'i') goto yy1329; + if (yych == 'i') goto yy1353; goto yy11; -yy1161: +yy1178: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 545 "src/wast-lexer.cc" +#line 552 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Add); } -#line 6443 "src/prebuilt/wast-lexer-gen.cc" -yy1163: +#line 6539 "src/prebuilt/wast-lexer-gen.cc" +yy1180: yych = *++cursor_; - if (yych == '_') goto yy1330; + if (yych == '_') goto yy1354; goto yy11; -yy1164: +yy1181: yych = *++cursor_; - if (yych == '_') goto yy1331; + if (yych == '_') goto yy1355; goto yy11; -yy1165: +yy1182: yych = *++cursor_; - if (yych == 'r') goto yy1332; + if (yych == 'r') goto yy1356; goto yy11; -yy1166: +yy1183: yych = *++cursor_; - if (yych == 's') goto yy1333; - if (yych == 'u') goto yy1335; + if (yych == 's') goto yy1357; + if (yych == 'u') goto yy1359; goto yy11; -yy1167: +yy1184: yych = *++cursor_; - if (yych == 's') goto yy1337; - if (yych == 'u') goto yy1339; + if (yych == 's') goto yy1361; + if (yych == 'u') goto yy1363; goto yy11; -yy1168: +yy1185: yych = *++cursor_; - if (yych == 's') goto yy1341; - if (yych == 'u') goto yy1343; + if (yych == 's') goto yy1365; + if (yych == 'u') goto yy1367; goto yy11; -yy1169: +yy1186: yych = *++cursor_; - if (yych == 's') goto yy1345; - if (yych == 'u') goto yy1347; + if (yych == 's') goto yy1369; + if (yych == 'u') goto yy1371; goto yy11; -yy1170: +yy1187: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 553 "src/wast-lexer.cc" +#line 560 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Mul); } -#line 6483 "src/prebuilt/wast-lexer-gen.cc" -yy1172: +#line 6579 "src/prebuilt/wast-lexer-gen.cc" +yy1189: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 556 "src/wast-lexer.cc" +#line 563 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4Neg); } -#line 6491 "src/prebuilt/wast-lexer-gen.cc" -yy1174: +#line 6587 "src/prebuilt/wast-lexer-gen.cc" +yy1191: yych = *++cursor_; - if (yych == 'l') goto yy1349; + if (yych == 'l') goto yy1373; goto yy11; -yy1175: +yy1192: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 568 "src/wast-lexer.cc" +#line 575 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Shl); } -#line 6503 "src/prebuilt/wast-lexer-gen.cc" -yy1177: +#line 6599 "src/prebuilt/wast-lexer-gen.cc" +yy1194: yych = *++cursor_; - if (yych == '_') goto yy1350; + if (yych == '_') goto yy1374; goto yy11; -yy1178: +yy1195: yych = *++cursor_; - if (yych == 'a') goto yy1351; + if (yych == 'a') goto yy1375; goto yy11; -yy1179: +yy1196: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 549 "src/wast-lexer.cc" +#line 556 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Sub); } -#line 6519 "src/prebuilt/wast-lexer-gen.cc" -yy1181: +#line 6615 "src/prebuilt/wast-lexer-gen.cc" +yy1198: yych = *++cursor_; - if (yych == 'n') goto yy1352; + if (yych == 'n') goto yy1376; goto yy11; -yy1182: +yy1199: yych = *++cursor_; - if (yych == 'c') goto yy1353; + if (yych == 'c') goto yy1377; goto yy11; -yy1183: +yy1200: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 307 "src/wast-lexer.cc" { RETURN_OPCODE(Const, I64Const); } -#line 6535 "src/prebuilt/wast-lexer-gen.cc" -yy1185: +#line 6631 "src/prebuilt/wast-lexer-gen.cc" +yy1202: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 344 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64DivS); } -#line 6543 "src/prebuilt/wast-lexer-gen.cc" -yy1187: +#line 6639 "src/prebuilt/wast-lexer-gen.cc" +yy1204: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 346 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64DivU); } -#line 6551 "src/prebuilt/wast-lexer-gen.cc" -yy1189: +#line 6647 "src/prebuilt/wast-lexer-gen.cc" +yy1206: yych = *++cursor_; - if (yych == 'd') goto yy1354; + if (yych == 'd') goto yy1378; goto yy11; -yy1190: +yy1207: yych = *++cursor_; - if (yych == '6') goto yy1355; + if (yych == '6') goto yy1379; goto yy11; -yy1191: +yy1208: yych = *++cursor_; - if (yych == '2') goto yy1356; + if (yych == '2') goto yy1380; goto yy11; -yy1192: +yy1209: yych = *++cursor_; - if (yych == '_') goto yy1357; + if (yych == '_') goto yy1381; goto yy11; -yy1193: +yy1210: yych = *++cursor_; - if (yych == 't') goto yy1358; + if (yych == 't') goto yy1382; goto yy11; -yy1194: +yy1211: yych = *++cursor_; - if (yych == 'e') goto yy1360; + if (yych == 'e') goto yy1384; goto yy11; -yy1195: +yy1212: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 348 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64RemS); } -#line 6583 "src/prebuilt/wast-lexer-gen.cc" -yy1197: +#line 6679 "src/prebuilt/wast-lexer-gen.cc" +yy1214: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 350 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64RemU); } -#line 6591 "src/prebuilt/wast-lexer-gen.cc" -yy1199: +#line 6687 "src/prebuilt/wast-lexer-gen.cc" +yy1216: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 360 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64ShrS); } -#line 6599 "src/prebuilt/wast-lexer-gen.cc" -yy1201: +#line 6695 "src/prebuilt/wast-lexer-gen.cc" +yy1218: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 362 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64ShrU); } -#line 6607 "src/prebuilt/wast-lexer-gen.cc" -yy1203: +#line 6703 "src/prebuilt/wast-lexer-gen.cc" +yy1220: yych = *++cursor_; if (yych <= '1') { if (yych <= '"') { if (yych == '!') goto yy10; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1204; + if (yych <= ')') goto yy1221; if (yych <= '0') goto yy10; - goto yy1361; + goto yy1385; } } else { if (yych <= '8') { - if (yych == '3') goto yy1362; + if (yych == '3') goto yy1386; if (yych <= '7') goto yy10; - goto yy1363; + goto yy1387; } else { - if (yych == ';') goto yy1204; + if (yych == ';') goto yy1221; if (yych <= '~') goto yy10; } } -yy1204: +yy1221: #line 286 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store); } -#line 6632 "src/prebuilt/wast-lexer-gen.cc" -yy1205: +#line 6728 "src/prebuilt/wast-lexer-gen.cc" +yy1222: yych = *++cursor_; - if (yych == '_') goto yy1365; + if (yych == '_') goto yy1389; goto yy11; -yy1206: +yy1223: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 546 "src/wast-lexer.cc" +#line 553 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2Add); } -#line 6644 "src/prebuilt/wast-lexer-gen.cc" -yy1208: +#line 6740 "src/prebuilt/wast-lexer-gen.cc" +yy1225: yych = *++cursor_; - if (yych == '_') goto yy1366; + if (yych == '_') goto yy1390; goto yy11; -yy1209: +yy1226: yych = *++cursor_; - if (yych == '_') goto yy1367; + if (yych == '_') goto yy1391; goto yy11; -yy1210: +yy1227: yych = *++cursor_; - if (yych == 'r') goto yy1368; + if (yych == 'r') goto yy1392; goto yy11; -yy1211: +yy1228: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 557 "src/wast-lexer.cc" +#line 564 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2Neg); } -#line 6664 "src/prebuilt/wast-lexer-gen.cc" -yy1213: +#line 6760 "src/prebuilt/wast-lexer-gen.cc" +yy1230: yych = *++cursor_; - if (yych == 'l') goto yy1369; + if (yych == 'l') goto yy1393; goto yy11; -yy1214: +yy1231: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 569 "src/wast-lexer.cc" +#line 576 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2Shl); } -#line 6676 "src/prebuilt/wast-lexer-gen.cc" -yy1216: +#line 6772 "src/prebuilt/wast-lexer-gen.cc" +yy1233: yych = *++cursor_; - if (yych == '_') goto yy1370; + if (yych == '_') goto yy1394; goto yy11; -yy1217: +yy1234: yych = *++cursor_; - if (yych == 'a') goto yy1371; + if (yych == 'a') goto yy1395; goto yy11; -yy1218: +yy1235: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 550 "src/wast-lexer.cc" +#line 557 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2Sub); } -#line 6692 "src/prebuilt/wast-lexer-gen.cc" -yy1220: +#line 6788 "src/prebuilt/wast-lexer-gen.cc" +yy1237: yych = *++cursor_; - if (yych == 'n') goto yy1372; + if (yych == 'n') goto yy1396; goto yy11; -yy1221: +yy1238: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1222; + if (yych <= '"') goto yy1239; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy1373; + if (yych <= '_') goto yy1397; if (yych <= '~') goto yy10; } } -yy1222: -#line 543 "src/wast-lexer.cc" +yy1239: +#line 550 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Add); } -#line 6717 "src/prebuilt/wast-lexer-gen.cc" -yy1223: +#line 6813 "src/prebuilt/wast-lexer-gen.cc" +yy1240: yych = *++cursor_; - if (yych == '_') goto yy1374; + if (yych == '_') goto yy1398; goto yy11; -yy1224: +yy1241: yych = *++cursor_; - if (yych == '_') goto yy1375; + if (yych == '_') goto yy1399; goto yy11; -yy1225: +yy1242: yych = *++cursor_; - if (yych == 'r') goto yy1376; + if (yych == 'r') goto yy1400; goto yy11; -yy1226: +yy1243: yych = *++cursor_; - if (yych == 's') goto yy1377; - if (yych == 'u') goto yy1379; + if (yych == 's') goto yy1401; + if (yych == 'u') goto yy1403; goto yy11; -yy1227: +yy1244: yych = *++cursor_; - if (yych == 's') goto yy1381; - if (yych == 'u') goto yy1383; + if (yych == 's') goto yy1405; + if (yych == 'u') goto yy1407; goto yy11; -yy1228: +yy1245: yych = *++cursor_; - if (yych == 's') goto yy1385; - if (yych == 'u') goto yy1387; + if (yych == 's') goto yy1409; + if (yych == 'u') goto yy1411; goto yy11; -yy1229: +yy1246: yych = *++cursor_; - if (yych == 's') goto yy1389; - if (yych == 'u') goto yy1391; + if (yych == 's') goto yy1413; + if (yych == 'u') goto yy1415; goto yy11; -yy1230: +yy1247: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 551 "src/wast-lexer.cc" +#line 558 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Mul); } -#line 6757 "src/prebuilt/wast-lexer-gen.cc" -yy1232: +#line 6853 "src/prebuilt/wast-lexer-gen.cc" +yy1249: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 554 "src/wast-lexer.cc" +#line 561 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I8X16Neg); } -#line 6765 "src/prebuilt/wast-lexer-gen.cc" -yy1234: +#line 6861 "src/prebuilt/wast-lexer-gen.cc" +yy1251: yych = *++cursor_; - if (yych == 'l') goto yy1393; + if (yych == 'l') goto yy1417; goto yy11; -yy1235: +yy1252: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 566 "src/wast-lexer.cc" +#line 573 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Shl); } -#line 6777 "src/prebuilt/wast-lexer-gen.cc" -yy1237: +#line 6873 "src/prebuilt/wast-lexer-gen.cc" +yy1254: yych = *++cursor_; - if (yych == '_') goto yy1394; + if (yych == '_') goto yy1418; goto yy11; -yy1238: +yy1255: yych = *++cursor_; - if (yych == 'a') goto yy1395; + if (yych == 'a') goto yy1419; goto yy11; -yy1239: +yy1256: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1240; + if (yych <= '"') goto yy1257; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy1396; + if (yych <= '_') goto yy1420; if (yych <= '~') goto yy10; } } -yy1240: -#line 547 "src/wast-lexer.cc" +yy1257: +#line 554 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Sub); } -#line 6806 "src/prebuilt/wast-lexer-gen.cc" -yy1241: +#line 6902 "src/prebuilt/wast-lexer-gen.cc" +yy1258: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 695 "src/wast-lexer.cc" +#line 703 "src/wast-lexer.cc" { RETURN_OPCODE0(IfExcept); } -#line 6814 "src/prebuilt/wast-lexer-gen.cc" -yy1243: +#line 6910 "src/prebuilt/wast-lexer-gen.cc" +yy1260: yych = *++cursor_; - if (yych == 'o') goto yy1397; + if (yych == 'p') goto yy1421; goto yy11; -yy1244: +yy1261: yych = *++cursor_; - if (yych == 'z') goto yy1398; + if (yych == 'o') goto yy1422; goto yy11; -yy1245: +yy1262: + yych = *++cursor_; + if (yych == 'l') goto yy1423; + goto yy11; +yy1263: + yych = *++cursor_; + if (yych == 'o') goto yy1424; + goto yy11; +yy1264: + yych = *++cursor_; + if (yych == 'i') goto yy1425; + goto yy11; +yy1265: + yych = *++cursor_; + if (yych == 'z') goto yy1426; + goto yy11; +yy1266: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -6835,7 +6947,7 @@ yy1245: } else { if (yych <= ':') { if (yych <= '/') goto yy10; - if (yych <= '9') goto yy1014; + if (yych <= '9') goto yy1028; goto yy10; } else { if (yych <= ';') goto yy12; @@ -6843,7 +6955,7 @@ yy1245: goto yy12; } } -yy1246: +yy1267: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -6855,2399 +6967,2483 @@ yy1246: if (yych <= '\'') goto yy10; if (yych <= ')') goto yy12; if (yych <= '/') goto yy10; - goto yy1399; + goto yy1427; } } else { if (yych <= 'F') { if (yych == ';') goto yy12; if (yych <= '@') goto yy10; - goto yy1399; + goto yy1427; } else { if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy1399; + if (yych <= 'f') goto yy1427; if (yych <= '~') goto yy10; goto yy12; } } -yy1247: +yy1268: yych = *++cursor_; - if (yych == 'l') goto yy1401; + if (yych == 'l') goto yy1429; goto yy11; -yy1248: +yy1269: yych = *++cursor_; - if (yych == 'l') goto yy1402; + if (yych == 'l') goto yy1430; goto yy11; -yy1249: +yy1270: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 277 "src/wast-lexer.cc" { RETURN_OPCODE0(SetLocal); } -#line 6888 "src/prebuilt/wast-lexer-gen.cc" -yy1251: +#line 7000 "src/prebuilt/wast-lexer-gen.cc" +yy1272: + yych = *++cursor_; + if (yych == 'y') goto yy1432; + goto yy11; +yy1273: + yych = *++cursor_; + if (yych == 'p') goto yy1434; + goto yy11; +yy1274: + yych = *++cursor_; + if (yych == 't') goto yy1436; + goto yy11; +yy1275: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 278 "src/wast-lexer.cc" { RETURN_OPCODE0(TeeLocal); } -#line 6896 "src/prebuilt/wast-lexer-gen.cc" -yy1253: +#line 7020 "src/prebuilt/wast-lexer-gen.cc" +yy1277: yych = *++cursor_; - if (yych == 'l') goto yy1404; + if (yych == 'l') goto yy1438; goto yy11; -yy1254: +yy1278: yych = *++cursor_; - if (yych == 'e') goto yy1405; + if (yych == 'e') goto yy1439; goto yy11; -yy1255: +yy1279: yych = *++cursor_; - if (yych == 't') goto yy1406; + if (yych == 't') goto yy1440; goto yy11; -yy1256: +yy1280: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 520 "src/wast-lexer.cc" +#line 527 "src/wast-lexer.cc" { RETURN_OPCODE(Load, V128Load); } -#line 6916 "src/prebuilt/wast-lexer-gen.cc" -yy1258: +#line 7040 "src/prebuilt/wast-lexer-gen.cc" +yy1282: yych = *++cursor_; - if (yych == 'e') goto yy1408; + if (yych == 'e') goto yy1442; goto yy11; -yy1259: +yy1283: yych = *++cursor_; - if (yych == 'f') goto yy1410; + if (yych == 'f') goto yy1444; goto yy11; -yy1260: +yy1284: yych = *++cursor_; - if (yych == 'a') goto yy1411; + if (yych == 'a') goto yy1445; goto yy11; -yy1261: +yy1285: yych = *++cursor_; - if (yych == 'a') goto yy1412; + if (yych == 'a') goto yy1446; goto yy11; -yy1262: +yy1286: yych = *++cursor_; - if (yych == 'f') goto yy1413; + if (yych == 'f') goto yy1447; goto yy11; -yy1263: +yy1287: yych = *++cursor_; - if (yych == 'u') goto yy1414; + if (yych == 'u') goto yy1448; goto yy11; -yy1264: +yy1288: yych = *++cursor_; - if (yych == 'p') goto yy1415; + if (yych == 'p') goto yy1449; goto yy11; -yy1265: +yy1289: yych = *++cursor_; - if (yych == 'i') goto yy1417; + if (yych == 'i') goto yy1451; goto yy11; -yy1266: +yy1290: yych = *++cursor_; - if (yych == 'e') goto yy1418; + if (yych == 'e') goto yy1452; goto yy11; -yy1267: +yy1291: yych = *++cursor_; - if (yych == 'e') goto yy1420; + if (yych == 'e') goto yy1454; goto yy11; -yy1268: +yy1292: yych = *++cursor_; - if (yych == 'm') goto yy1421; + if (yych == 'm') goto yy1455; goto yy11; -yy1269: +yy1293: yych = *++cursor_; - if (yych == 't') goto yy1422; + if (yych == 't') goto yy1456; goto yy11; -yy1270: +yy1294: yych = *++cursor_; - if (yych == 'g') goto yy1423; + if (yych == 'g') goto yy1457; goto yy11; -yy1271: +yy1295: yych = *++cursor_; - if (yych == '/') goto yy1424; + if (yych == '/') goto yy1458; goto yy11; -yy1272: +yy1296: yych = *++cursor_; - if (yych == 't') goto yy1425; + if (yych == 't') goto yy1459; goto yy11; -yy1273: +yy1297: yych = *++cursor_; - if (yych == 'r') goto yy1427; + if (yych == 'r') goto yy1461; goto yy11; -yy1274: +yy1298: yych = *++cursor_; - if (yych == 'e') goto yy1428; + if (yych == 'e') goto yy1462; goto yy11; -yy1275: +yy1299: yych = *++cursor_; - if (yych == 'a') goto yy1429; + if (yych == 'a') goto yy1463; goto yy11; -yy1276: +yy1300: yych = *++cursor_; - if (yych == 'a') goto yy1430; + if (yych == 'a') goto yy1464; goto yy11; -yy1277: +yy1301: yych = *++cursor_; - if (yych == 't') goto yy1431; + if (yych == 't') goto yy1465; goto yy11; -yy1278: +yy1302: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 649 "src/wast-lexer.cc" +#line 656 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Sqrt); } -#line 7004 "src/prebuilt/wast-lexer-gen.cc" -yy1280: +#line 7128 "src/prebuilt/wast-lexer-gen.cc" +yy1304: yych = *++cursor_; - if (yych == 't') goto yy1433; + if (yych == 't') goto yy1467; goto yy11; -yy1281: +yy1305: yych = *++cursor_; - if (yych == 'g') goto yy1434; + if (yych == 'g') goto yy1468; goto yy11; -yy1282: +yy1306: yych = *++cursor_; - if (yych == 't') goto yy1435; + if (yych == 't') goto yy1469; goto yy11; -yy1283: +yy1307: yych = *++cursor_; - if (yych == 'e') goto yy1437; + if (yych == 'e') goto yy1471; goto yy11; -yy1284: +yy1308: yych = *++cursor_; - if (yych == 'r') goto yy1438; + if (yych == 'r') goto yy1472; goto yy11; -yy1285: +yy1309: yych = *++cursor_; - if (yych == 'e') goto yy1439; + if (yych == 'e') goto yy1473; goto yy11; -yy1286: +yy1310: yych = *++cursor_; - if (yych == 'a') goto yy1440; + if (yych == 'a') goto yy1474; goto yy11; -yy1287: +yy1311: yych = *++cursor_; - if (yych == 'a') goto yy1441; + if (yych == 'a') goto yy1475; goto yy11; -yy1288: +yy1312: yych = *++cursor_; - if (yych == 't') goto yy1442; + if (yych == 't') goto yy1476; goto yy11; -yy1289: +yy1313: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 650 "src/wast-lexer.cc" +#line 657 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Sqrt); } -#line 7048 "src/prebuilt/wast-lexer-gen.cc" -yy1291: +#line 7172 "src/prebuilt/wast-lexer-gen.cc" +yy1315: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 279 "src/wast-lexer.cc" { RETURN_OPCODE0(GetGlobal); } -#line 7056 "src/prebuilt/wast-lexer-gen.cc" -yy1293: +#line 7180 "src/prebuilt/wast-lexer-gen.cc" +yy1317: yych = *++cursor_; - if (yych == 'y') goto yy1444; + if (yych == 'y') goto yy1478; goto yy11; -yy1294: +yy1318: yych = *++cursor_; - if (yych == 's') goto yy1446; + if (yych == 's') goto yy1480; goto yy11; -yy1295: +yy1319: yych = *++cursor_; - if (yych == 't') goto yy1447; + if (yych == 't') goto yy1481; goto yy11; -yy1296: +yy1320: yych = *++cursor_; - if (yych == 't') goto yy1448; + if (yych == 't') goto yy1482; goto yy11; -yy1297: +yy1321: yych = *++cursor_; - if (yych == 'a') goto yy1449; + if (yych == 'a') goto yy1483; goto yy11; -yy1298: +yy1322: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 627 "src/wast-lexer.cc" +#line 634 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GeS); } -#line 7084 "src/prebuilt/wast-lexer-gen.cc" -yy1300: +#line 7208 "src/prebuilt/wast-lexer-gen.cc" +yy1324: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 628 "src/wast-lexer.cc" +#line 635 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GeU); } -#line 7092 "src/prebuilt/wast-lexer-gen.cc" -yy1302: +#line 7216 "src/prebuilt/wast-lexer-gen.cc" +yy1326: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 619 "src/wast-lexer.cc" +#line 626 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GtS); } -#line 7100 "src/prebuilt/wast-lexer-gen.cc" -yy1304: +#line 7224 "src/prebuilt/wast-lexer-gen.cc" +yy1328: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 620 "src/wast-lexer.cc" +#line 627 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GtU); } -#line 7108 "src/prebuilt/wast-lexer-gen.cc" -yy1306: +#line 7232 "src/prebuilt/wast-lexer-gen.cc" +yy1330: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 611 "src/wast-lexer.cc" +#line 618 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LeS); } -#line 7116 "src/prebuilt/wast-lexer-gen.cc" -yy1308: +#line 7240 "src/prebuilt/wast-lexer-gen.cc" +yy1332: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 612 "src/wast-lexer.cc" +#line 619 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LeU); } -#line 7124 "src/prebuilt/wast-lexer-gen.cc" -yy1310: +#line 7248 "src/prebuilt/wast-lexer-gen.cc" +yy1334: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 603 "src/wast-lexer.cc" +#line 610 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LtS); } -#line 7132 "src/prebuilt/wast-lexer-gen.cc" -yy1312: +#line 7256 "src/prebuilt/wast-lexer-gen.cc" +yy1336: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 604 "src/wast-lexer.cc" +#line 611 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LtU); } -#line 7140 "src/prebuilt/wast-lexer-gen.cc" -yy1314: +#line 7264 "src/prebuilt/wast-lexer-gen.cc" +yy1338: yych = *++cursor_; - if (yych == 'a') goto yy1450; + if (yych == 'a') goto yy1484; goto yy11; -yy1315: +yy1339: yych = *++cursor_; - if (yych == 's') goto yy1451; - if (yych == 'u') goto yy1453; + if (yych == 's') goto yy1485; + if (yych == 'u') goto yy1487; goto yy11; -yy1316: +yy1340: yych = *++cursor_; - if (yych == 't') goto yy1455; + if (yych == 't') goto yy1489; goto yy11; -yy1317: +yy1341: yych = *++cursor_; - if (yych == 's') goto yy1457; + if (yych == 's') goto yy1491; goto yy11; -yy1318: +yy1342: yych = *++cursor_; - if (yych == '.') goto yy1458; + if (yych == '.') goto yy1492; goto yy11; -yy1319: +yy1343: yych = *++cursor_; - if (yych == '1') goto yy1459; - if (yych == '8') goto yy1460; + if (yych == '1') goto yy1493; + if (yych == '8') goto yy1494; goto yy11; -yy1320: +yy1344: yych = *++cursor_; - if (yych == '_') goto yy1461; + if (yych == '_') goto yy1495; goto yy11; -yy1321: +yy1345: yych = *++cursor_; - if (yych == 's') goto yy1462; - if (yych == 'u') goto yy1464; + if (yych == 's') goto yy1496; + if (yych == 'u') goto yy1498; goto yy11; -yy1322: +yy1346: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 316 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Popcnt); } -#line 7183 "src/prebuilt/wast-lexer-gen.cc" -yy1324: +#line 7307 "src/prebuilt/wast-lexer-gen.cc" +yy1348: yych = *++cursor_; - if (yych == 'r') goto yy1466; + if (yych == 'r') goto yy1500; goto yy11; -yy1325: +yy1349: yych = *++cursor_; - if (yych == '6') goto yy1467; + if (yych == '6') goto yy1501; goto yy11; -yy1326: +yy1350: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 299 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store8); } -#line 7199 "src/prebuilt/wast-lexer-gen.cc" -yy1328: +#line 7323 "src/prebuilt/wast-lexer-gen.cc" +yy1352: yych = *++cursor_; - if (yych == 's') goto yy1469; - if (yych == 'u') goto yy1470; + if (yych == 's') goto yy1503; + if (yych == 'u') goto yy1504; goto yy11; -yy1329: +yy1353: yych = *++cursor_; - if (yych == '6') goto yy1471; + if (yych == '6') goto yy1505; goto yy11; -yy1330: +yy1354: yych = *++cursor_; - if (yych == 't') goto yy1472; + if (yych == 't') goto yy1506; goto yy11; -yy1331: +yy1355: yych = *++cursor_; - if (yych == 't') goto yy1473; + if (yych == 't') goto yy1507; goto yy11; -yy1332: +yy1356: yych = *++cursor_; - if (yych == 'a') goto yy1474; + if (yych == 'a') goto yy1508; goto yy11; -yy1333: +yy1357: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 629 "src/wast-lexer.cc" +#line 636 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GeS); } -#line 7228 "src/prebuilt/wast-lexer-gen.cc" -yy1335: +#line 7352 "src/prebuilt/wast-lexer-gen.cc" +yy1359: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 630 "src/wast-lexer.cc" +#line 637 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GeU); } -#line 7236 "src/prebuilt/wast-lexer-gen.cc" -yy1337: +#line 7360 "src/prebuilt/wast-lexer-gen.cc" +yy1361: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 621 "src/wast-lexer.cc" +#line 628 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GtS); } -#line 7244 "src/prebuilt/wast-lexer-gen.cc" -yy1339: +#line 7368 "src/prebuilt/wast-lexer-gen.cc" +yy1363: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 622 "src/wast-lexer.cc" +#line 629 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GtU); } -#line 7252 "src/prebuilt/wast-lexer-gen.cc" -yy1341: +#line 7376 "src/prebuilt/wast-lexer-gen.cc" +yy1365: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 613 "src/wast-lexer.cc" +#line 620 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LeS); } -#line 7260 "src/prebuilt/wast-lexer-gen.cc" -yy1343: +#line 7384 "src/prebuilt/wast-lexer-gen.cc" +yy1367: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 614 "src/wast-lexer.cc" +#line 621 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LeU); } -#line 7268 "src/prebuilt/wast-lexer-gen.cc" -yy1345: +#line 7392 "src/prebuilt/wast-lexer-gen.cc" +yy1369: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 605 "src/wast-lexer.cc" +#line 612 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LtS); } -#line 7276 "src/prebuilt/wast-lexer-gen.cc" -yy1347: +#line 7400 "src/prebuilt/wast-lexer-gen.cc" +yy1371: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 606 "src/wast-lexer.cc" +#line 613 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LtU); } -#line 7284 "src/prebuilt/wast-lexer-gen.cc" -yy1349: +#line 7408 "src/prebuilt/wast-lexer-gen.cc" +yy1373: yych = *++cursor_; - if (yych == 'a') goto yy1475; + if (yych == 'a') goto yy1509; goto yy11; -yy1350: +yy1374: yych = *++cursor_; - if (yych == 's') goto yy1476; - if (yych == 'u') goto yy1478; + if (yych == 's') goto yy1510; + if (yych == 'u') goto yy1512; goto yy11; -yy1351: +yy1375: yych = *++cursor_; - if (yych == 't') goto yy1480; + if (yych == 't') goto yy1514; goto yy11; -yy1352: +yy1376: yych = *++cursor_; - if (yych == 'c') goto yy1482; + if (yych == 'c') goto yy1516; goto yy11; -yy1353: +yy1377: yych = *++cursor_; - if (yych == '.') goto yy1483; + if (yych == '.') goto yy1517; goto yy11; -yy1354: +yy1378: yych = *++cursor_; if (yych <= '3') { - if (yych == '1') goto yy1484; + if (yych == '1') goto yy1518; if (yych <= '2') goto yy11; - goto yy1485; + goto yy1519; } else { if (yych <= '8') { if (yych <= '7') goto yy11; - goto yy1486; + goto yy1520; } else { - if (yych == '_') goto yy1487; + if (yych == '_') goto yy1521; goto yy11; } } -yy1355: +yy1379: yych = *++cursor_; - if (yych == '_') goto yy1488; + if (yych == '_') goto yy1522; goto yy11; -yy1356: +yy1380: yych = *++cursor_; - if (yych == '_') goto yy1489; + if (yych == '_') goto yy1523; goto yy11; -yy1357: +yy1381: yych = *++cursor_; - if (yych == 's') goto yy1490; - if (yych == 'u') goto yy1492; + if (yych == 's') goto yy1524; + if (yych == 'u') goto yy1526; goto yy11; -yy1358: +yy1382: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 317 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Popcnt); } -#line 7341 "src/prebuilt/wast-lexer-gen.cc" -yy1360: +#line 7465 "src/prebuilt/wast-lexer-gen.cc" +yy1384: yych = *++cursor_; - if (yych == 'r') goto yy1494; + if (yych == 'r') goto yy1528; goto yy11; -yy1361: +yy1385: yych = *++cursor_; - if (yych == '6') goto yy1495; + if (yych == '6') goto yy1529; goto yy11; -yy1362: +yy1386: yych = *++cursor_; - if (yych == '2') goto yy1497; + if (yych == '2') goto yy1531; goto yy11; -yy1363: +yy1387: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 300 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store8); } -#line 7361 "src/prebuilt/wast-lexer-gen.cc" -yy1365: +#line 7485 "src/prebuilt/wast-lexer-gen.cc" +yy1389: yych = *++cursor_; - if (yych == 's') goto yy1499; - if (yych == 'u') goto yy1500; + if (yych == 's') goto yy1533; + if (yych == 'u') goto yy1534; goto yy11; -yy1366: +yy1390: yych = *++cursor_; - if (yych == 't') goto yy1501; + if (yych == 't') goto yy1535; goto yy11; -yy1367: +yy1391: yych = *++cursor_; - if (yych == 't') goto yy1502; + if (yych == 't') goto yy1536; goto yy11; -yy1368: +yy1392: yych = *++cursor_; - if (yych == 'a') goto yy1503; + if (yych == 'a') goto yy1537; goto yy11; -yy1369: +yy1393: yych = *++cursor_; - if (yych == 'a') goto yy1504; + if (yych == 'a') goto yy1538; goto yy11; -yy1370: +yy1394: yych = *++cursor_; - if (yych == 's') goto yy1505; - if (yych == 'u') goto yy1507; + if (yych == 's') goto yy1539; + if (yych == 'u') goto yy1541; goto yy11; -yy1371: +yy1395: yych = *++cursor_; - if (yych == 't') goto yy1509; + if (yych == 't') goto yy1543; goto yy11; -yy1372: +yy1396: yych = *++cursor_; - if (yych == 'c') goto yy1511; + if (yych == 'c') goto yy1545; goto yy11; -yy1373: +yy1397: yych = *++cursor_; - if (yych == 's') goto yy1512; + if (yych == 's') goto yy1546; goto yy11; -yy1374: +yy1398: yych = *++cursor_; - if (yych == 't') goto yy1513; + if (yych == 't') goto yy1547; goto yy11; -yy1375: +yy1399: yych = *++cursor_; - if (yych == 't') goto yy1514; + if (yych == 't') goto yy1548; goto yy11; -yy1376: +yy1400: yych = *++cursor_; - if (yych == 'a') goto yy1515; + if (yych == 'a') goto yy1549; goto yy11; -yy1377: +yy1401: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 625 "src/wast-lexer.cc" +#line 632 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GeS); } -#line 7419 "src/prebuilt/wast-lexer-gen.cc" -yy1379: +#line 7543 "src/prebuilt/wast-lexer-gen.cc" +yy1403: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 626 "src/wast-lexer.cc" +#line 633 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GeU); } -#line 7427 "src/prebuilt/wast-lexer-gen.cc" -yy1381: +#line 7551 "src/prebuilt/wast-lexer-gen.cc" +yy1405: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 617 "src/wast-lexer.cc" +#line 624 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GtS); } -#line 7435 "src/prebuilt/wast-lexer-gen.cc" -yy1383: +#line 7559 "src/prebuilt/wast-lexer-gen.cc" +yy1407: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 618 "src/wast-lexer.cc" +#line 625 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GtU); } -#line 7443 "src/prebuilt/wast-lexer-gen.cc" -yy1385: +#line 7567 "src/prebuilt/wast-lexer-gen.cc" +yy1409: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 609 "src/wast-lexer.cc" +#line 616 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LeS); } -#line 7451 "src/prebuilt/wast-lexer-gen.cc" -yy1387: +#line 7575 "src/prebuilt/wast-lexer-gen.cc" +yy1411: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 610 "src/wast-lexer.cc" +#line 617 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LeU); } -#line 7459 "src/prebuilt/wast-lexer-gen.cc" -yy1389: +#line 7583 "src/prebuilt/wast-lexer-gen.cc" +yy1413: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 601 "src/wast-lexer.cc" +#line 608 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LtS); } -#line 7467 "src/prebuilt/wast-lexer-gen.cc" -yy1391: +#line 7591 "src/prebuilt/wast-lexer-gen.cc" +yy1415: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 602 "src/wast-lexer.cc" +#line 609 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LtU); } -#line 7475 "src/prebuilt/wast-lexer-gen.cc" -yy1393: +#line 7599 "src/prebuilt/wast-lexer-gen.cc" +yy1417: yych = *++cursor_; - if (yych == 'a') goto yy1516; + if (yych == 'a') goto yy1550; goto yy11; -yy1394: +yy1418: yych = *++cursor_; - if (yych == 's') goto yy1517; - if (yych == 'u') goto yy1519; + if (yych == 's') goto yy1551; + if (yych == 'u') goto yy1553; goto yy11; -yy1395: +yy1419: yych = *++cursor_; - if (yych == 't') goto yy1521; + if (yych == 't') goto yy1555; goto yy11; -yy1396: +yy1420: yych = *++cursor_; - if (yych == 's') goto yy1523; + if (yych == 's') goto yy1557; goto yy11; -yy1397: +yy1421: yych = *++cursor_; - if (yych == 'w') goto yy1524; + if (yych == 'y') goto yy1558; goto yy11; -yy1398: +yy1422: yych = *++cursor_; - if (yych == 'e') goto yy1526; + if (yych == 'p') goto yy1560; goto yy11; -yy1399: +yy1423: + yych = *++cursor_; + if (yych == 'l') goto yy1562; + goto yy11; +yy1424: + yych = *++cursor_; + if (yych == 'w') goto yy1564; + goto yy11; +yy1425: + yych = *++cursor_; + if (yych == 't') goto yy1566; + goto yy11; +yy1426: + yych = *++cursor_; + if (yych == 'e') goto yy1568; + goto yy11; +yy1427: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { if (yych == '!') goto yy10; - if (yych <= '"') goto yy1013; + if (yych <= '"') goto yy1027; goto yy10; } else { - if (yych <= ')') goto yy1013; + if (yych <= ')') goto yy1027; if (yych <= '/') goto yy10; - if (yych <= '9') goto yy1399; + if (yych <= '9') goto yy1427; goto yy10; } } else { if (yych <= '^') { - if (yych <= ';') goto yy1013; + if (yych <= ';') goto yy1027; if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy1399; + if (yych <= 'F') goto yy1427; goto yy10; } else { if (yych <= '`') { - if (yych <= '_') goto yy1246; + if (yych <= '_') goto yy1267; goto yy10; } else { - if (yych <= 'f') goto yy1399; + if (yych <= 'f') goto yy1427; if (yych <= '~') goto yy10; - goto yy1013; + goto yy1027; } } } -yy1401: +yy1429: yych = *++cursor_; - if (yych == 'l') goto yy1528; + if (yych == 'l') goto yy1570; goto yy11; -yy1402: +yy1430: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 280 "src/wast-lexer.cc" { RETURN_OPCODE0(SetGlobal); } -#line 7544 "src/prebuilt/wast-lexer-gen.cc" -yy1404: +#line 7684 "src/prebuilt/wast-lexer-gen.cc" +yy1432: + yych = *++cursor_; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 458 "src/wast-lexer.cc" + { RETURN_OPCODE0(TableCopy); } +#line 7692 "src/prebuilt/wast-lexer-gen.cc" +yy1434: yych = *++cursor_; - if (yych == 'e') goto yy1530; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 457 "src/wast-lexer.cc" + { RETURN_OPCODE0(TableDrop); } +#line 7700 "src/prebuilt/wast-lexer-gen.cc" +yy1436: + yych = *++cursor_; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 456 "src/wast-lexer.cc" + { RETURN_OPCODE0(TableInit); } +#line 7708 "src/prebuilt/wast-lexer-gen.cc" +yy1438: + yych = *++cursor_; + if (yych == 'e') goto yy1572; goto yy11; -yy1405: +yy1439: yych = *++cursor_; - if (yych == 'l') goto yy1532; + if (yych == 'l') goto yy1574; goto yy11; -yy1406: +yy1440: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 519 "src/wast-lexer.cc" +#line 526 "src/wast-lexer.cc" { RETURN_OPCODE(Const, V128Const); } -#line 7560 "src/prebuilt/wast-lexer-gen.cc" -yy1408: +#line 7724 "src/prebuilt/wast-lexer-gen.cc" +yy1442: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 521 "src/wast-lexer.cc" +#line 528 "src/wast-lexer.cc" { RETURN_OPCODE(Store, V128Store); } -#line 7568 "src/prebuilt/wast-lexer-gen.cc" -yy1410: +#line 7732 "src/prebuilt/wast-lexer-gen.cc" +yy1444: yych = *++cursor_; - if (yych == 'f') goto yy1533; + if (yych == 'f') goto yy1575; goto yy11; -yy1411: +yy1445: yych = *++cursor_; - if (yych == 'u') goto yy1534; + if (yych == 'u') goto yy1576; goto yy11; -yy1412: +yy1446: yych = *++cursor_; - if (yych == 'l') goto yy1535; + if (yych == 'l') goto yy1577; goto yy11; -yy1413: +yy1447: yych = *++cursor_; - if (yych == 'o') goto yy1536; + if (yych == 'o') goto yy1578; goto yy11; -yy1414: +yy1448: yych = *++cursor_; - if (yych == 'r') goto yy1537; + if (yych == 'r') goto yy1579; goto yy11; -yy1415: +yy1449: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 689 "src/wast-lexer.cc" +#line 697 "src/wast-lexer.cc" { RETURN(AssertTrap); } -#line 7596 "src/prebuilt/wast-lexer-gen.cc" -yy1417: +#line 7760 "src/prebuilt/wast-lexer-gen.cc" +yy1451: yych = *++cursor_; - if (yych == 'n') goto yy1538; + if (yych == 'n') goto yy1580; goto yy11; -yy1418: +yy1452: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 455 "src/wast-lexer.cc" +#line 462 "src/wast-lexer.cc" { RETURN_OPCODE0(AtomicWake); } -#line 7608 "src/prebuilt/wast-lexer-gen.cc" -yy1420: +#line 7772 "src/prebuilt/wast-lexer-gen.cc" +yy1454: yych = *++cursor_; - if (yych == 'c') goto yy1539; + if (yych == 'c') goto yy1581; goto yy11; -yy1421: +yy1455: yych = *++cursor_; - if (yych == 'o') goto yy1540; + if (yych == 'o') goto yy1582; goto yy11; -yy1422: +yy1456: yych = *++cursor_; - if (yych == '_') goto yy1541; + if (yych == '_') goto yy1583; goto yy11; -yy1423: +yy1457: yych = *++cursor_; - if (yych == 'n') goto yy1542; + if (yych == 'n') goto yy1584; goto yy11; -yy1424: +yy1458: yych = *++cursor_; - if (yych == 'f') goto yy1544; + if (yych == 'f') goto yy1586; goto yy11; -yy1425: +yy1459: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 330 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Nearest); } -#line 7636 "src/prebuilt/wast-lexer-gen.cc" -yy1427: +#line 7800 "src/prebuilt/wast-lexer-gen.cc" +yy1461: yych = *++cursor_; - if (yych == 'p') goto yy1545; + if (yych == 'p') goto yy1587; goto yy11; -yy1428: +yy1462: yych = *++cursor_; - if (yych == 'r') goto yy1546; + if (yych == 'r') goto yy1588; goto yy11; -yy1429: +yy1463: yych = *++cursor_; - if (yych == 'c') goto yy1547; + if (yych == 'c') goto yy1589; goto yy11; -yy1430: +yy1464: yych = *++cursor_; - if (yych == 'c') goto yy1548; + if (yych == 'c') goto yy1590; goto yy11; -yy1431: +yy1465: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 526 "src/wast-lexer.cc" +#line 533 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Splat); } -#line 7660 "src/prebuilt/wast-lexer-gen.cc" -yy1433: +#line 7824 "src/prebuilt/wast-lexer-gen.cc" +yy1467: yych = *++cursor_; - if (yych == '_') goto yy1549; + if (yych == '_') goto yy1591; goto yy11; -yy1434: +yy1468: yych = *++cursor_; - if (yych == 'n') goto yy1550; + if (yych == 'n') goto yy1592; goto yy11; -yy1435: +yy1469: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 331 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Nearest); } -#line 7676 "src/prebuilt/wast-lexer-gen.cc" -yy1437: +#line 7840 "src/prebuilt/wast-lexer-gen.cc" +yy1471: yych = *++cursor_; - if (yych == '/') goto yy1552; + if (yych == '/') goto yy1594; goto yy11; -yy1438: +yy1472: yych = *++cursor_; - if (yych == 'p') goto yy1553; + if (yych == 'p') goto yy1595; goto yy11; -yy1439: +yy1473: yych = *++cursor_; - if (yych == 'r') goto yy1554; + if (yych == 'r') goto yy1596; goto yy11; -yy1440: +yy1474: yych = *++cursor_; - if (yych == 'c') goto yy1555; + if (yych == 'c') goto yy1597; goto yy11; -yy1441: +yy1475: yych = *++cursor_; - if (yych == 'c') goto yy1556; + if (yych == 'c') goto yy1598; goto yy11; -yy1442: +yy1476: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 527 "src/wast-lexer.cc" +#line 534 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Splat); } -#line 7704 "src/prebuilt/wast-lexer-gen.cc" -yy1444: +#line 7868 "src/prebuilt/wast-lexer-gen.cc" +yy1478: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 451 "src/wast-lexer.cc" +#line 455 "src/wast-lexer.cc" { RETURN_OPCODE0(MemoryGrow); } -#line 7712 "src/prebuilt/wast-lexer-gen.cc" -yy1446: +#line 7876 "src/prebuilt/wast-lexer-gen.cc" +yy1480: yych = *++cursor_; - if (yych == 'a') goto yy1557; + if (yych == 'a') goto yy1599; goto yy11; -yy1447: +yy1481: yych = *++cursor_; - if (yych == 'r') goto yy1558; + if (yych == 'r') goto yy1600; goto yy11; -yy1448: +yy1482: yych = *++cursor_; - if (yych == 'r') goto yy1559; + if (yych == 'r') goto yy1601; goto yy11; -yy1449: +yy1483: yych = *++cursor_; - if (yych == 'c') goto yy1560; + if (yych == 'c') goto yy1602; goto yy11; -yy1450: +yy1484: yych = *++cursor_; - if (yych == 'c') goto yy1561; + if (yych == 'c') goto yy1603; goto yy11; -yy1451: +yy1485: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 572 "src/wast-lexer.cc" +#line 579 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8ShrS); } -#line 7740 "src/prebuilt/wast-lexer-gen.cc" -yy1453: +#line 7904 "src/prebuilt/wast-lexer-gen.cc" +yy1487: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 573 "src/wast-lexer.cc" +#line 580 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8ShrU); } -#line 7748 "src/prebuilt/wast-lexer-gen.cc" -yy1455: +#line 7912 "src/prebuilt/wast-lexer-gen.cc" +yy1489: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 523 "src/wast-lexer.cc" +#line 530 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I16X8Splat); } -#line 7756 "src/prebuilt/wast-lexer-gen.cc" -yy1457: +#line 7920 "src/prebuilt/wast-lexer-gen.cc" +yy1491: yych = *++cursor_; - if (yych == 'a') goto yy1562; + if (yych == 'a') goto yy1604; goto yy11; -yy1458: +yy1492: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'l') goto yy1563; + if (yych == 'l') goto yy1605; if (yych <= 'q') goto yy11; - goto yy1564; + goto yy1606; } else { - if (yych <= 's') goto yy1565; - if (yych == 'w') goto yy1566; + if (yych <= 's') goto yy1607; + if (yych == 'w') goto yy1608; goto yy11; } -yy1459: +yy1493: yych = *++cursor_; - if (yych == '6') goto yy1567; + if (yych == '6') goto yy1609; goto yy11; -yy1460: +yy1494: yych = *++cursor_; - if (yych == '_') goto yy1568; + if (yych == '_') goto yy1610; goto yy11; -yy1461: +yy1495: yych = *++cursor_; - if (yych == 's') goto yy1569; - if (yych == 'u') goto yy1571; + if (yych == 's') goto yy1611; + if (yych == 'u') goto yy1613; goto yy11; -yy1462: +yy1496: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 289 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load8S); } -#line 7792 "src/prebuilt/wast-lexer-gen.cc" -yy1464: +#line 7956 "src/prebuilt/wast-lexer-gen.cc" +yy1498: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 291 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load8U); } -#line 7800 "src/prebuilt/wast-lexer-gen.cc" -yy1466: +#line 7964 "src/prebuilt/wast-lexer-gen.cc" +yy1500: yych = *++cursor_; - if (yych == 'p') goto yy1573; + if (yych == 'p') goto yy1615; goto yy11; -yy1467: +yy1501: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 301 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store16); } -#line 7812 "src/prebuilt/wast-lexer-gen.cc" -yy1469: +#line 7976 "src/prebuilt/wast-lexer-gen.cc" +yy1503: yych = *++cursor_; - if (yych == '/') goto yy1574; - if (yych == ':') goto yy1575; + if (yych == '/') goto yy1616; + if (yych == ':') goto yy1617; goto yy11; -yy1470: +yy1504: yych = *++cursor_; - if (yych == '/') goto yy1576; - if (yych == ':') goto yy1577; + if (yych == '/') goto yy1618; + if (yych == ':') goto yy1619; goto yy11; -yy1471: +yy1505: yych = *++cursor_; - if (yych == '4') goto yy1578; + if (yych == '4') goto yy1620; goto yy11; -yy1472: +yy1506: yych = *++cursor_; - if (yych == 'r') goto yy1580; + if (yych == 'r') goto yy1622; goto yy11; -yy1473: +yy1507: yych = *++cursor_; - if (yych == 'r') goto yy1581; + if (yych == 'r') goto yy1623; goto yy11; -yy1474: +yy1508: yych = *++cursor_; - if (yych == 'c') goto yy1582; + if (yych == 'c') goto yy1624; goto yy11; -yy1475: +yy1509: yych = *++cursor_; - if (yych == 'c') goto yy1583; + if (yych == 'c') goto yy1625; goto yy11; -yy1476: +yy1510: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 574 "src/wast-lexer.cc" +#line 581 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4ShrS); } -#line 7850 "src/prebuilt/wast-lexer-gen.cc" -yy1478: +#line 8014 "src/prebuilt/wast-lexer-gen.cc" +yy1512: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 575 "src/wast-lexer.cc" +#line 582 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4ShrU); } -#line 7858 "src/prebuilt/wast-lexer-gen.cc" -yy1480: +#line 8022 "src/prebuilt/wast-lexer-gen.cc" +yy1514: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 524 "src/wast-lexer.cc" +#line 531 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4Splat); } -#line 7866 "src/prebuilt/wast-lexer-gen.cc" -yy1482: +#line 8030 "src/prebuilt/wast-lexer-gen.cc" +yy1516: yych = *++cursor_; - if (yych == '_') goto yy1584; + if (yych == '_') goto yy1626; goto yy11; -yy1483: +yy1517: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'l') goto yy1585; + if (yych == 'l') goto yy1627; if (yych <= 'q') goto yy11; - goto yy1586; + goto yy1628; } else { - if (yych <= 's') goto yy1587; - if (yych == 'w') goto yy1588; + if (yych <= 's') goto yy1629; + if (yych == 'w') goto yy1630; goto yy11; } -yy1484: +yy1518: yych = *++cursor_; - if (yych == '6') goto yy1589; + if (yych == '6') goto yy1631; goto yy11; -yy1485: +yy1519: yych = *++cursor_; - if (yych == '2') goto yy1590; + if (yych == '2') goto yy1632; goto yy11; -yy1486: +yy1520: yych = *++cursor_; - if (yych == '_') goto yy1591; + if (yych == '_') goto yy1633; goto yy11; -yy1487: +yy1521: yych = *++cursor_; - if (yych == 's') goto yy1592; - if (yych == 'u') goto yy1593; + if (yych == 's') goto yy1634; + if (yych == 'u') goto yy1635; goto yy11; -yy1488: +yy1522: yych = *++cursor_; - if (yych == 's') goto yy1594; - if (yych == 'u') goto yy1596; + if (yych == 's') goto yy1636; + if (yych == 'u') goto yy1638; goto yy11; -yy1489: +yy1523: yych = *++cursor_; - if (yych == 's') goto yy1598; - if (yych == 'u') goto yy1600; + if (yych == 's') goto yy1640; + if (yych == 'u') goto yy1642; goto yy11; -yy1490: +yy1524: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 290 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load8S); } -#line 7916 "src/prebuilt/wast-lexer-gen.cc" -yy1492: +#line 8080 "src/prebuilt/wast-lexer-gen.cc" +yy1526: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 292 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load8U); } -#line 7924 "src/prebuilt/wast-lexer-gen.cc" -yy1494: +#line 8088 "src/prebuilt/wast-lexer-gen.cc" +yy1528: yych = *++cursor_; - if (yych == 'p') goto yy1602; + if (yych == 'p') goto yy1644; goto yy11; -yy1495: +yy1529: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 302 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store16); } -#line 7936 "src/prebuilt/wast-lexer-gen.cc" -yy1497: +#line 8100 "src/prebuilt/wast-lexer-gen.cc" +yy1531: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 303 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store32); } -#line 7944 "src/prebuilt/wast-lexer-gen.cc" -yy1499: +#line 8108 "src/prebuilt/wast-lexer-gen.cc" +yy1533: yych = *++cursor_; - if (yych == '/') goto yy1603; - if (yych == ':') goto yy1604; + if (yych == '/') goto yy1645; + if (yych == ':') goto yy1646; goto yy11; -yy1500: +yy1534: yych = *++cursor_; - if (yych == '/') goto yy1605; - if (yych == ':') goto yy1606; + if (yych == '/') goto yy1647; + if (yych == ':') goto yy1648; goto yy11; -yy1501: +yy1535: yych = *++cursor_; - if (yych == 'r') goto yy1607; + if (yych == 'r') goto yy1649; goto yy11; -yy1502: +yy1536: yych = *++cursor_; - if (yych == 'r') goto yy1608; + if (yych == 'r') goto yy1650; goto yy11; -yy1503: +yy1537: yych = *++cursor_; - if (yych == 'c') goto yy1609; + if (yych == 'c') goto yy1651; goto yy11; -yy1504: +yy1538: yych = *++cursor_; - if (yych == 'c') goto yy1610; + if (yych == 'c') goto yy1652; goto yy11; -yy1505: +yy1539: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 576 "src/wast-lexer.cc" +#line 583 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2ShrS); } -#line 7978 "src/prebuilt/wast-lexer-gen.cc" -yy1507: +#line 8142 "src/prebuilt/wast-lexer-gen.cc" +yy1541: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 577 "src/wast-lexer.cc" +#line 584 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2ShrU); } -#line 7986 "src/prebuilt/wast-lexer-gen.cc" -yy1509: +#line 8150 "src/prebuilt/wast-lexer-gen.cc" +yy1543: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 525 "src/wast-lexer.cc" +#line 532 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2Splat); } -#line 7994 "src/prebuilt/wast-lexer-gen.cc" -yy1511: +#line 8158 "src/prebuilt/wast-lexer-gen.cc" +yy1545: yych = *++cursor_; - if (yych == '_') goto yy1611; + if (yych == '_') goto yy1653; goto yy11; -yy1512: +yy1546: yych = *++cursor_; - if (yych == 'a') goto yy1612; + if (yych == 'a') goto yy1654; goto yy11; -yy1513: +yy1547: yych = *++cursor_; - if (yych == 'r') goto yy1613; + if (yych == 'r') goto yy1655; goto yy11; -yy1514: +yy1548: yych = *++cursor_; - if (yych == 'r') goto yy1614; + if (yych == 'r') goto yy1656; goto yy11; -yy1515: +yy1549: yych = *++cursor_; - if (yych == 'c') goto yy1615; + if (yych == 'c') goto yy1657; goto yy11; -yy1516: +yy1550: yych = *++cursor_; - if (yych == 'c') goto yy1616; + if (yych == 'c') goto yy1658; goto yy11; -yy1517: +yy1551: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 570 "src/wast-lexer.cc" +#line 577 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16ShrS); } -#line 8026 "src/prebuilt/wast-lexer-gen.cc" -yy1519: +#line 8190 "src/prebuilt/wast-lexer-gen.cc" +yy1553: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 571 "src/wast-lexer.cc" +#line 578 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16ShrU); } -#line 8034 "src/prebuilt/wast-lexer-gen.cc" -yy1521: +#line 8198 "src/prebuilt/wast-lexer-gen.cc" +yy1555: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 522 "src/wast-lexer.cc" +#line 529 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I8X16Splat); } -#line 8042 "src/prebuilt/wast-lexer-gen.cc" -yy1523: +#line 8206 "src/prebuilt/wast-lexer-gen.cc" +yy1557: yych = *++cursor_; - if (yych == 'a') goto yy1617; + if (yych == 'a') goto yy1659; goto yy11; -yy1524: +yy1558: + yych = *++cursor_; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 452 "src/wast-lexer.cc" + { RETURN_OPCODE0(MemoryCopy); } +#line 8218 "src/prebuilt/wast-lexer-gen.cc" +yy1560: + yych = *++cursor_; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 451 "src/wast-lexer.cc" + { RETURN_OPCODE0(MemoryDrop); } +#line 8226 "src/prebuilt/wast-lexer-gen.cc" +yy1562: + yych = *++cursor_; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 453 "src/wast-lexer.cc" + { RETURN_OPCODE0(MemoryFill); } +#line 8234 "src/prebuilt/wast-lexer-gen.cc" +yy1564: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 449 "src/wast-lexer.cc" { RETURN_OPCODE0(MemoryGrow); } -#line 8054 "src/prebuilt/wast-lexer-gen.cc" -yy1526: +#line 8242 "src/prebuilt/wast-lexer-gen.cc" +yy1566: + yych = *++cursor_; + if (yybm[0+yych] & 8) { + goto yy10; + } +#line 450 "src/wast-lexer.cc" + { RETURN_OPCODE0(MemoryInit); } +#line 8250 "src/prebuilt/wast-lexer-gen.cc" +yy1568: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 448 "src/wast-lexer.cc" { RETURN_OPCODE0(MemorySize); } -#line 8062 "src/prebuilt/wast-lexer-gen.cc" -yy1528: +#line 8258 "src/prebuilt/wast-lexer-gen.cc" +yy1570: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1529; + if (yych <= '"') goto yy1571; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy1618; + if (yych <= '_') goto yy1660; if (yych <= '~') goto yy10; } } -yy1529: -#line 659 "src/wast-lexer.cc" +yy1571: +#line 666 "src/wast-lexer.cc" { RETURN_OPCODE0(ReturnCall); } -#line 8083 "src/prebuilt/wast-lexer-gen.cc" -yy1530: +#line 8279 "src/prebuilt/wast-lexer-gen.cc" +yy1572: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 447 "src/wast-lexer.cc" { RETURN_OPCODE0(Unreachable); } -#line 8091 "src/prebuilt/wast-lexer-gen.cc" -yy1532: +#line 8287 "src/prebuilt/wast-lexer-gen.cc" +yy1574: yych = *++cursor_; - if (yych == 'e') goto yy1619; + if (yych == 'e') goto yy1661; goto yy11; -yy1533: +yy1575: yych = *++cursor_; - if (yych == 'l') goto yy1620; + if (yych == 'l') goto yy1662; goto yy11; -yy1534: +yy1576: yych = *++cursor_; - if (yych == 's') goto yy1621; + if (yych == 's') goto yy1663; goto yy11; -yy1535: +yy1577: yych = *++cursor_; - if (yych == 'i') goto yy1622; + if (yych == 'i') goto yy1664; goto yy11; -yy1536: +yy1578: yych = *++cursor_; - if (yych == 'r') goto yy1623; + if (yych == 'r') goto yy1665; goto yy11; -yy1537: +yy1579: yych = *++cursor_; - if (yych == 'n') goto yy1624; + if (yych == 'n') goto yy1666; goto yy11; -yy1538: +yy1580: yych = *++cursor_; - if (yych == 'k') goto yy1626; + if (yych == 'k') goto yy1668; goto yy11; -yy1539: +yy1581: yych = *++cursor_; - if (yych == 't') goto yy1627; + if (yych == 't') goto yy1669; goto yy11; -yy1540: +yy1582: yych = *++cursor_; - if (yych == 'r') goto yy1629; + if (yych == 'r') goto yy1671; goto yy11; -yy1541: +yy1583: yych = *++cursor_; - if (yych == 's') goto yy1630; - if (yych == 'u') goto yy1631; + if (yych == 's') goto yy1672; + if (yych == 'u') goto yy1673; goto yy11; -yy1542: +yy1584: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 379 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Copysign); } -#line 8140 "src/prebuilt/wast-lexer-gen.cc" -yy1544: +#line 8336 "src/prebuilt/wast-lexer-gen.cc" +yy1586: yych = *++cursor_; - if (yych == '6') goto yy1632; + if (yych == '6') goto yy1674; goto yy11; -yy1545: +yy1587: yych = *++cursor_; - if (yych == 'r') goto yy1633; + if (yych == 'r') goto yy1675; goto yy11; -yy1546: +yy1588: yych = *++cursor_; - if (yych == 't') goto yy1634; + if (yych == 't') goto yy1676; goto yy11; -yy1547: +yy1589: yych = *++cursor_; - if (yych == 't') goto yy1635; + if (yych == 't') goto yy1677; goto yy11; -yy1548: +yy1590: yych = *++cursor_; - if (yych == 'e') goto yy1636; + if (yych == 'e') goto yy1678; goto yy11; -yy1549: +yy1591: yych = *++cursor_; - if (yych == 's') goto yy1637; - if (yych == 'u') goto yy1638; + if (yych == 's') goto yy1679; + if (yych == 'u') goto yy1680; goto yy11; -yy1550: +yy1592: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 380 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Copysign); } -#line 8173 "src/prebuilt/wast-lexer-gen.cc" -yy1552: +#line 8369 "src/prebuilt/wast-lexer-gen.cc" +yy1594: yych = *++cursor_; - if (yych == 'f') goto yy1639; + if (yych == 'f') goto yy1681; goto yy11; -yy1553: +yy1595: yych = *++cursor_; - if (yych == 'r') goto yy1640; + if (yych == 'r') goto yy1682; goto yy11; -yy1554: +yy1596: yych = *++cursor_; - if (yych == 't') goto yy1641; + if (yych == 't') goto yy1683; goto yy11; -yy1555: +yy1597: yych = *++cursor_; - if (yych == 't') goto yy1642; + if (yych == 't') goto yy1684; goto yy11; -yy1556: +yy1598: yych = *++cursor_; - if (yych == 'e') goto yy1643; + if (yych == 'e') goto yy1685; goto yy11; -yy1557: +yy1599: yych = *++cursor_; - if (yych == 't') goto yy1644; + if (yych == 't') goto yy1686; goto yy11; -yy1558: +yy1600: yych = *++cursor_; - if (yych == 'u') goto yy1645; + if (yych == 'u') goto yy1687; goto yy11; -yy1559: +yy1601: yych = *++cursor_; - if (yych == 'u') goto yy1646; + if (yych == 'u') goto yy1688; goto yy11; -yy1560: +yy1602: yych = *++cursor_; - if (yych == 't') goto yy1647; + if (yych == 't') goto yy1689; goto yy11; -yy1561: +yy1603: yych = *++cursor_; - if (yych == 'e') goto yy1648; + if (yych == 'e') goto yy1690; goto yy11; -yy1562: +yy1604: yych = *++cursor_; - if (yych == 't') goto yy1649; + if (yych == 't') goto yy1691; goto yy11; -yy1563: +yy1605: yych = *++cursor_; - if (yych == 'o') goto yy1650; + if (yych == 'o') goto yy1692; goto yy11; -yy1564: +yy1606: yych = *++cursor_; - if (yych == 'm') goto yy1651; + if (yych == 'm') goto yy1693; goto yy11; -yy1565: +yy1607: yych = *++cursor_; - if (yych == 't') goto yy1652; + if (yych == 't') goto yy1694; goto yy11; -yy1566: +yy1608: yych = *++cursor_; - if (yych == 'a') goto yy1653; + if (yych == 'a') goto yy1695; goto yy11; -yy1567: +yy1609: yych = *++cursor_; - if (yych == '_') goto yy1654; + if (yych == '_') goto yy1696; goto yy11; -yy1568: +yy1610: yych = *++cursor_; - if (yych == 's') goto yy1655; + if (yych == 's') goto yy1697; goto yy11; -yy1569: +yy1611: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 293 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load16S); } -#line 8249 "src/prebuilt/wast-lexer-gen.cc" -yy1571: +#line 8445 "src/prebuilt/wast-lexer-gen.cc" +yy1613: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 295 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load16U); } -#line 8257 "src/prebuilt/wast-lexer-gen.cc" -yy1573: +#line 8453 "src/prebuilt/wast-lexer-gen.cc" +yy1615: yych = *++cursor_; - if (yych == 'r') goto yy1657; + if (yych == 'r') goto yy1699; goto yy11; -yy1574: +yy1616: yych = *++cursor_; - if (yych == 'f') goto yy1658; + if (yych == 'f') goto yy1700; goto yy11; -yy1575: +yy1617: yych = *++cursor_; - if (yych == 's') goto yy1659; + if (yych == 's') goto yy1701; goto yy11; -yy1576: +yy1618: yych = *++cursor_; - if (yych == 'f') goto yy1660; + if (yych == 'f') goto yy1702; goto yy11; -yy1577: +yy1619: yych = *++cursor_; - if (yych == 's') goto yy1661; + if (yych == 's') goto yy1703; goto yy11; -yy1578: +yy1620: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 415 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32WrapI64); } -#line 8285 "src/prebuilt/wast-lexer-gen.cc" -yy1580: +#line 8481 "src/prebuilt/wast-lexer-gen.cc" +yy1622: yych = *++cursor_; - if (yych == 'u') goto yy1662; + if (yych == 'u') goto yy1704; goto yy11; -yy1581: +yy1623: yych = *++cursor_; - if (yych == 'u') goto yy1663; + if (yych == 'u') goto yy1705; goto yy11; -yy1582: +yy1624: yych = *++cursor_; - if (yych == 't') goto yy1664; + if (yych == 't') goto yy1706; goto yy11; -yy1583: +yy1625: yych = *++cursor_; - if (yych == 'e') goto yy1665; + if (yych == 'e') goto yy1707; goto yy11; -yy1584: +yy1626: yych = *++cursor_; - if (yych == 's') goto yy1666; - if (yych == 'u') goto yy1667; + if (yych == 's') goto yy1708; + if (yych == 'u') goto yy1709; goto yy11; -yy1585: +yy1627: yych = *++cursor_; - if (yych == 'o') goto yy1668; + if (yych == 'o') goto yy1710; goto yy11; -yy1586: +yy1628: yych = *++cursor_; - if (yych == 'm') goto yy1669; + if (yych == 'm') goto yy1711; goto yy11; -yy1587: +yy1629: yych = *++cursor_; - if (yych == 't') goto yy1670; + if (yych == 't') goto yy1712; goto yy11; -yy1588: +yy1630: yych = *++cursor_; - if (yych == 'a') goto yy1671; + if (yych == 'a') goto yy1713; goto yy11; -yy1589: +yy1631: yych = *++cursor_; - if (yych == '_') goto yy1672; + if (yych == '_') goto yy1714; goto yy11; -yy1590: +yy1632: yych = *++cursor_; - if (yych == '_') goto yy1673; + if (yych == '_') goto yy1715; goto yy11; -yy1591: +yy1633: yych = *++cursor_; - if (yych == 's') goto yy1674; + if (yych == 's') goto yy1716; goto yy11; -yy1592: +yy1634: yych = *++cursor_; - if (yych == '/') goto yy1676; + if (yych == '/') goto yy1718; goto yy11; -yy1593: +yy1635: yych = *++cursor_; - if (yych == '/') goto yy1677; + if (yych == '/') goto yy1719; goto yy11; -yy1594: +yy1636: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 294 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load16S); } -#line 8350 "src/prebuilt/wast-lexer-gen.cc" -yy1596: +#line 8546 "src/prebuilt/wast-lexer-gen.cc" +yy1638: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 296 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load16U); } -#line 8358 "src/prebuilt/wast-lexer-gen.cc" -yy1598: +#line 8554 "src/prebuilt/wast-lexer-gen.cc" +yy1640: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 297 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load32S); } -#line 8366 "src/prebuilt/wast-lexer-gen.cc" -yy1600: +#line 8562 "src/prebuilt/wast-lexer-gen.cc" +yy1642: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 298 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load32U); } -#line 8374 "src/prebuilt/wast-lexer-gen.cc" -yy1602: +#line 8570 "src/prebuilt/wast-lexer-gen.cc" +yy1644: yych = *++cursor_; - if (yych == 'r') goto yy1678; + if (yych == 'r') goto yy1720; goto yy11; -yy1603: +yy1645: yych = *++cursor_; - if (yych == 'f') goto yy1679; + if (yych == 'f') goto yy1721; goto yy11; -yy1604: +yy1646: yych = *++cursor_; - if (yych == 's') goto yy1680; + if (yych == 's') goto yy1722; goto yy11; -yy1605: +yy1647: yych = *++cursor_; - if (yych == 'f') goto yy1681; + if (yych == 'f') goto yy1723; goto yy11; -yy1606: +yy1648: yych = *++cursor_; - if (yych == 's') goto yy1682; + if (yych == 's') goto yy1724; goto yy11; -yy1607: +yy1649: yych = *++cursor_; - if (yych == 'u') goto yy1683; + if (yych == 'u') goto yy1725; goto yy11; -yy1608: +yy1650: yych = *++cursor_; - if (yych == 'u') goto yy1684; + if (yych == 'u') goto yy1726; goto yy11; -yy1609: +yy1651: yych = *++cursor_; - if (yych == 't') goto yy1685; + if (yych == 't') goto yy1727; goto yy11; -yy1610: +yy1652: yych = *++cursor_; - if (yych == 'e') goto yy1686; + if (yych == 'e') goto yy1728; goto yy11; -yy1611: +yy1653: yych = *++cursor_; - if (yych == 's') goto yy1687; - if (yych == 'u') goto yy1688; + if (yych == 's') goto yy1729; + if (yych == 'u') goto yy1730; goto yy11; -yy1612: +yy1654: yych = *++cursor_; - if (yych == 't') goto yy1689; + if (yych == 't') goto yy1731; goto yy11; -yy1613: +yy1655: yych = *++cursor_; - if (yych == 'u') goto yy1690; + if (yych == 'u') goto yy1732; goto yy11; -yy1614: +yy1656: yych = *++cursor_; - if (yych == 'u') goto yy1691; + if (yych == 'u') goto yy1733; goto yy11; -yy1615: +yy1657: yych = *++cursor_; - if (yych == 't') goto yy1692; + if (yych == 't') goto yy1734; goto yy11; -yy1616: +yy1658: yych = *++cursor_; - if (yych == 'e') goto yy1693; + if (yych == 'e') goto yy1735; goto yy11; -yy1617: +yy1659: yych = *++cursor_; - if (yych == 't') goto yy1694; + if (yych == 't') goto yy1736; goto yy11; -yy1618: +yy1660: yych = *++cursor_; - if (yych == 'i') goto yy1695; + if (yych == 'i') goto yy1737; goto yy11; -yy1619: +yy1661: yych = *++cursor_; - if (yych == 'c') goto yy1696; + if (yych == 'c') goto yy1738; goto yy11; -yy1620: +yy1662: yych = *++cursor_; - if (yych == 'e') goto yy1697; + if (yych == 'e') goto yy1739; goto yy11; -yy1621: +yy1663: yych = *++cursor_; - if (yych == 't') goto yy1699; + if (yych == 't') goto yy1741; goto yy11; -yy1622: +yy1664: yych = *++cursor_; - if (yych == 'd') goto yy1700; + if (yych == 'd') goto yy1742; goto yy11; -yy1623: +yy1665: yych = *++cursor_; - if (yych == 'm') goto yy1702; + if (yych == 'm') goto yy1744; goto yy11; -yy1624: +yy1666: yych = *++cursor_; if (yych <= ')') { if (yych <= '!') { if (yych >= '!') goto yy10; } else { - if (yych <= '"') goto yy1625; + if (yych <= '"') goto yy1667; if (yych <= '\'') goto yy10; } } else { if (yych <= '^') { if (yych != ';') goto yy10; } else { - if (yych <= '_') goto yy1703; + if (yych <= '_') goto yy1745; if (yych <= '~') goto yy10; } } -yy1625: -#line 686 "src/wast-lexer.cc" +yy1667: +#line 694 "src/wast-lexer.cc" { RETURN(AssertReturn); } -#line 8484 "src/prebuilt/wast-lexer-gen.cc" -yy1626: +#line 8680 "src/prebuilt/wast-lexer-gen.cc" +yy1668: yych = *++cursor_; - if (yych == 'a') goto yy1704; + if (yych == 'a') goto yy1746; goto yy11; -yy1627: +yy1669: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 272 "src/wast-lexer.cc" { RETURN_OPCODE0(CallIndirect); } -#line 8496 "src/prebuilt/wast-lexer-gen.cc" -yy1629: +#line 8692 "src/prebuilt/wast-lexer-gen.cc" +yy1671: yych = *++cursor_; - if (yych == 'y') goto yy1705; + if (yych == 'y') goto yy1747; goto yy11; -yy1630: +yy1672: yych = *++cursor_; - if (yych == '/') goto yy1707; + if (yych == '/') goto yy1749; goto yy11; -yy1631: +yy1673: yych = *++cursor_; - if (yych == '/') goto yy1708; + if (yych == '/') goto yy1750; goto yy11; -yy1632: +yy1674: yych = *++cursor_; - if (yych == '4') goto yy1709; + if (yych == '4') goto yy1751; goto yy11; -yy1633: +yy1675: yych = *++cursor_; - if (yych == 'e') goto yy1711; + if (yych == 'e') goto yy1753; goto yy11; -yy1634: +yy1676: yych = *++cursor_; - if (yych == '_') goto yy1712; + if (yych == '_') goto yy1754; goto yy11; -yy1635: +yy1677: yych = *++cursor_; - if (yych == '_') goto yy1713; + if (yych == '_') goto yy1755; goto yy11; -yy1636: +yy1678: yych = *++cursor_; - if (yych == '_') goto yy1714; + if (yych == '_') goto yy1756; goto yy11; -yy1637: +yy1679: yych = *++cursor_; - if (yych == '/') goto yy1715; + if (yych == '/') goto yy1757; goto yy11; -yy1638: +yy1680: yych = *++cursor_; - if (yych == '/') goto yy1716; + if (yych == '/') goto yy1758; goto yy11; -yy1639: +yy1681: yych = *++cursor_; - if (yych == '3') goto yy1717; + if (yych == '3') goto yy1759; goto yy11; -yy1640: +yy1682: yych = *++cursor_; - if (yych == 'e') goto yy1718; + if (yych == 'e') goto yy1760; goto yy11; -yy1641: +yy1683: yych = *++cursor_; - if (yych == '_') goto yy1719; + if (yych == '_') goto yy1761; goto yy11; -yy1642: +yy1684: yych = *++cursor_; - if (yych == '_') goto yy1720; + if (yych == '_') goto yy1762; goto yy11; -yy1643: +yy1685: yych = *++cursor_; - if (yych == '_') goto yy1721; + if (yych == '_') goto yy1763; goto yy11; -yy1644: +yy1686: yych = *++cursor_; - if (yych == 'u') goto yy1722; + if (yych == 'u') goto yy1764; goto yy11; -yy1645: +yy1687: yych = *++cursor_; - if (yych == 'e') goto yy1723; + if (yych == 'e') goto yy1765; goto yy11; -yy1646: +yy1688: yych = *++cursor_; - if (yych == 'e') goto yy1725; + if (yych == 'e') goto yy1767; goto yy11; -yy1647: +yy1689: yych = *++cursor_; - if (yych == '_') goto yy1727; + if (yych == '_') goto yy1769; goto yy11; -yy1648: +yy1690: yych = *++cursor_; - if (yych == '_') goto yy1728; + if (yych == '_') goto yy1770; goto yy11; -yy1649: +yy1691: yych = *++cursor_; - if (yych == 'u') goto yy1729; + if (yych == 'u') goto yy1771; goto yy11; -yy1650: +yy1692: yych = *++cursor_; - if (yych == 'a') goto yy1730; + if (yych == 'a') goto yy1772; goto yy11; -yy1651: +yy1693: yych = *++cursor_; - if (yych == 'w') goto yy1731; + if (yych == 'w') goto yy1773; goto yy11; -yy1652: +yy1694: yych = *++cursor_; - if (yych == 'o') goto yy1732; + if (yych == 'o') goto yy1774; goto yy11; -yy1653: +yy1695: yych = *++cursor_; - if (yych == 'i') goto yy1733; + if (yych == 'i') goto yy1775; goto yy11; -yy1654: +yy1696: yych = *++cursor_; - if (yych == 's') goto yy1734; + if (yych == 's') goto yy1776; goto yy11; -yy1655: +yy1697: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 332 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Extend8S); } -#line 8608 "src/prebuilt/wast-lexer-gen.cc" -yy1657: +#line 8804 "src/prebuilt/wast-lexer-gen.cc" +yy1699: yych = *++cursor_; - if (yych == 'e') goto yy1736; + if (yych == 'e') goto yy1778; goto yy11; -yy1658: +yy1700: yych = *++cursor_; - if (yych == '3') goto yy1737; - if (yych == '6') goto yy1738; + if (yych == '3') goto yy1779; + if (yych == '6') goto yy1780; goto yy11; -yy1659: +yy1701: yych = *++cursor_; - if (yych == 'a') goto yy1739; + if (yych == 'a') goto yy1781; goto yy11; -yy1660: +yy1702: yych = *++cursor_; - if (yych == '3') goto yy1740; - if (yych == '6') goto yy1741; + if (yych == '3') goto yy1782; + if (yych == '6') goto yy1783; goto yy11; -yy1661: +yy1703: yych = *++cursor_; - if (yych == 'a') goto yy1742; + if (yych == 'a') goto yy1784; goto yy11; -yy1662: +yy1704: yych = *++cursor_; - if (yych == 'e') goto yy1743; + if (yych == 'e') goto yy1785; goto yy11; -yy1663: +yy1705: yych = *++cursor_; - if (yych == 'e') goto yy1745; + if (yych == 'e') goto yy1787; goto yy11; -yy1664: +yy1706: yych = *++cursor_; - if (yych == '_') goto yy1747; + if (yych == '_') goto yy1789; goto yy11; -yy1665: +yy1707: yych = *++cursor_; - if (yych == '_') goto yy1748; + if (yych == '_') goto yy1790; goto yy11; -yy1666: +yy1708: yych = *++cursor_; - if (yych == '/') goto yy1749; + if (yych == '/') goto yy1791; goto yy11; -yy1667: +yy1709: yych = *++cursor_; - if (yych == '/') goto yy1750; + if (yych == '/') goto yy1792; goto yy11; -yy1668: +yy1710: yych = *++cursor_; - if (yych == 'a') goto yy1751; + if (yych == 'a') goto yy1793; goto yy11; -yy1669: +yy1711: yych = *++cursor_; - if (yych == 'w') goto yy1752; + if (yych == 'w') goto yy1794; goto yy11; -yy1670: +yy1712: yych = *++cursor_; - if (yych == 'o') goto yy1753; + if (yych == 'o') goto yy1795; goto yy11; -yy1671: +yy1713: yych = *++cursor_; - if (yych == 'i') goto yy1754; + if (yych == 'i') goto yy1796; goto yy11; -yy1672: +yy1714: yych = *++cursor_; - if (yych == 's') goto yy1755; + if (yych == 's') goto yy1797; goto yy11; -yy1673: +yy1715: yych = *++cursor_; - if (yych == 's') goto yy1757; + if (yych == 's') goto yy1799; goto yy11; -yy1674: +yy1716: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 334 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Extend8S); } -#line 8686 "src/prebuilt/wast-lexer-gen.cc" -yy1676: +#line 8882 "src/prebuilt/wast-lexer-gen.cc" +yy1718: yych = *++cursor_; - if (yych == 'i') goto yy1759; + if (yych == 'i') goto yy1801; goto yy11; -yy1677: +yy1719: yych = *++cursor_; - if (yych == 'i') goto yy1760; + if (yych == 'i') goto yy1802; goto yy11; -yy1678: +yy1720: yych = *++cursor_; - if (yych == 'e') goto yy1761; + if (yych == 'e') goto yy1803; goto yy11; -yy1679: +yy1721: yych = *++cursor_; - if (yych == '3') goto yy1762; - if (yych == '6') goto yy1763; + if (yych == '3') goto yy1804; + if (yych == '6') goto yy1805; goto yy11; -yy1680: +yy1722: yych = *++cursor_; - if (yych == 'a') goto yy1764; + if (yych == 'a') goto yy1806; goto yy11; -yy1681: +yy1723: yych = *++cursor_; - if (yych == '3') goto yy1765; - if (yych == '6') goto yy1766; + if (yych == '3') goto yy1807; + if (yych == '6') goto yy1808; goto yy11; -yy1682: +yy1724: yych = *++cursor_; - if (yych == 'a') goto yy1767; + if (yych == 'a') goto yy1809; goto yy11; -yy1683: +yy1725: yych = *++cursor_; - if (yych == 'e') goto yy1768; + if (yych == 'e') goto yy1810; goto yy11; -yy1684: +yy1726: yych = *++cursor_; - if (yych == 'e') goto yy1770; + if (yych == 'e') goto yy1812; goto yy11; -yy1685: +yy1727: yych = *++cursor_; - if (yych == '_') goto yy1772; + if (yych == '_') goto yy1814; goto yy11; -yy1686: +yy1728: yych = *++cursor_; - if (yych == '_') goto yy1773; + if (yych == '_') goto yy1815; goto yy11; -yy1687: +yy1729: yych = *++cursor_; - if (yych == '/') goto yy1774; + if (yych == '/') goto yy1816; goto yy11; -yy1688: +yy1730: yych = *++cursor_; - if (yych == '/') goto yy1775; + if (yych == '/') goto yy1817; goto yy11; -yy1689: +yy1731: yych = *++cursor_; - if (yych == 'u') goto yy1776; + if (yych == 'u') goto yy1818; goto yy11; -yy1690: +yy1732: yych = *++cursor_; - if (yych == 'e') goto yy1777; + if (yych == 'e') goto yy1819; goto yy11; -yy1691: +yy1733: yych = *++cursor_; - if (yych == 'e') goto yy1779; + if (yych == 'e') goto yy1821; goto yy11; -yy1692: +yy1734: yych = *++cursor_; - if (yych == '_') goto yy1781; + if (yych == '_') goto yy1823; goto yy11; -yy1693: +yy1735: yych = *++cursor_; - if (yych == '_') goto yy1782; + if (yych == '_') goto yy1824; goto yy11; -yy1694: +yy1736: yych = *++cursor_; - if (yych == 'u') goto yy1783; + if (yych == 'u') goto yy1825; goto yy11; -yy1695: +yy1737: yych = *++cursor_; - if (yych == 'n') goto yy1784; + if (yych == 'n') goto yy1826; goto yy11; -yy1696: +yy1738: yych = *++cursor_; - if (yych == 't') goto yy1785; + if (yych == 't') goto yy1827; goto yy11; -yy1697: +yy1739: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 542 "src/wast-lexer.cc" +#line 549 "src/wast-lexer.cc" { RETURN_OPCODE(SimdShuffleOp, V8X16Shuffle); } -#line 8780 "src/prebuilt/wast-lexer-gen.cc" -yy1699: +#line 8976 "src/prebuilt/wast-lexer-gen.cc" +yy1741: yych = *++cursor_; - if (yych == 'i') goto yy1787; + if (yych == 'i') goto yy1829; goto yy11; -yy1700: +yy1742: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 684 "src/wast-lexer.cc" +#line 692 "src/wast-lexer.cc" { RETURN(AssertInvalid); } -#line 8792 "src/prebuilt/wast-lexer-gen.cc" -yy1702: +#line 8988 "src/prebuilt/wast-lexer-gen.cc" +yy1744: yych = *++cursor_; - if (yych == 'e') goto yy1788; + if (yych == 'e') goto yy1830; goto yy11; -yy1703: +yy1745: yych = *++cursor_; - if (yych == 'a') goto yy1789; - if (yych == 'c') goto yy1790; + if (yych == 'a') goto yy1831; + if (yych == 'c') goto yy1832; goto yy11; -yy1704: +yy1746: yych = *++cursor_; - if (yych == 'b') goto yy1791; + if (yych == 'b') goto yy1833; goto yy11; -yy1705: +yy1747: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 450 "src/wast-lexer.cc" +#line 454 "src/wast-lexer.cc" { RETURN_OPCODE0(MemorySize); } -#line 8813 "src/prebuilt/wast-lexer-gen.cc" -yy1707: +#line 9009 "src/prebuilt/wast-lexer-gen.cc" +yy1749: yych = *++cursor_; - if (yych == 'i') goto yy1792; + if (yych == 'i') goto yy1834; goto yy11; -yy1708: +yy1750: yych = *++cursor_; - if (yych == 'i') goto yy1793; + if (yych == 'i') goto yy1835; goto yy11; -yy1709: +yy1751: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 441 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32DemoteF64); } -#line 8829 "src/prebuilt/wast-lexer-gen.cc" -yy1711: +#line 9025 "src/prebuilt/wast-lexer-gen.cc" +yy1753: yych = *++cursor_; - if (yych == 't') goto yy1794; + if (yych == 't') goto yy1836; goto yy11; -yy1712: +yy1754: yych = *++cursor_; - if (yych == 's') goto yy1795; - if (yych == 'u') goto yy1796; + if (yych == 's') goto yy1837; + if (yych == 'u') goto yy1838; goto yy11; -yy1713: +yy1755: yych = *++cursor_; - if (yych == 'l') goto yy1797; + if (yych == 'l') goto yy1839; goto yy11; -yy1714: +yy1756: yych = *++cursor_; - if (yych == 'l') goto yy1798; + if (yych == 'l') goto yy1840; goto yy11; -yy1715: +yy1757: yych = *++cursor_; - if (yych == 'i') goto yy1799; + if (yych == 'i') goto yy1841; goto yy11; -yy1716: +yy1758: yych = *++cursor_; - if (yych == 'i') goto yy1800; + if (yych == 'i') goto yy1842; goto yy11; -yy1717: +yy1759: yych = *++cursor_; - if (yych == '2') goto yy1801; + if (yych == '2') goto yy1843; goto yy11; -yy1718: +yy1760: yych = *++cursor_; - if (yych == 't') goto yy1803; + if (yych == 't') goto yy1845; goto yy11; -yy1719: +yy1761: yych = *++cursor_; - if (yych == 's') goto yy1804; - if (yych == 'u') goto yy1805; + if (yych == 's') goto yy1846; + if (yych == 'u') goto yy1847; goto yy11; -yy1720: +yy1762: yych = *++cursor_; - if (yych == 'l') goto yy1806; + if (yych == 'l') goto yy1848; goto yy11; -yy1721: +yy1763: yych = *++cursor_; - if (yych == 'l') goto yy1807; + if (yych == 'l') goto yy1849; goto yy11; -yy1722: +yy1764: yych = *++cursor_; - if (yych == 'r') goto yy1808; + if (yych == 'r') goto yy1850; goto yy11; -yy1723: +yy1765: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 588 "src/wast-lexer.cc" +#line 595 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I16X8AllTrue); } -#line 8887 "src/prebuilt/wast-lexer-gen.cc" -yy1725: +#line 9083 "src/prebuilt/wast-lexer-gen.cc" +yy1767: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 584 "src/wast-lexer.cc" +#line 591 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I16X8AnyTrue); } -#line 8895 "src/prebuilt/wast-lexer-gen.cc" -yy1727: +#line 9091 "src/prebuilt/wast-lexer-gen.cc" +yy1769: yych = *++cursor_; - if (yych == 'l') goto yy1809; + if (yych == 'l') goto yy1851; goto yy11; -yy1728: +yy1770: yych = *++cursor_; - if (yych == 'l') goto yy1810; + if (yych == 'l') goto yy1852; goto yy11; -yy1729: +yy1771: yych = *++cursor_; - if (yych == 'r') goto yy1811; + if (yych == 'r') goto yy1853; goto yy11; -yy1730: +yy1772: yych = *++cursor_; - if (yych == 'd') goto yy1812; + if (yych == 'd') goto yy1854; goto yy11; -yy1731: +yy1773: yych = *++cursor_; if (yych <= '0') { - if (yych == '.') goto yy1814; + if (yych == '.') goto yy1856; goto yy11; } else { - if (yych <= '1') goto yy1815; - if (yych == '8') goto yy1816; + if (yych <= '1') goto yy1857; + if (yych == '8') goto yy1858; goto yy11; } -yy1732: +yy1774: yych = *++cursor_; - if (yych == 'r') goto yy1817; + if (yych == 'r') goto yy1859; goto yy11; -yy1733: +yy1775: yych = *++cursor_; - if (yych == 't') goto yy1818; + if (yych == 't') goto yy1860; goto yy11; -yy1734: +yy1776: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 333 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Extend16S); } -#line 8937 "src/prebuilt/wast-lexer-gen.cc" -yy1736: +#line 9133 "src/prebuilt/wast-lexer-gen.cc" +yy1778: yych = *++cursor_; - if (yych == 't') goto yy1820; + if (yych == 't') goto yy1862; goto yy11; -yy1737: +yy1779: yych = *++cursor_; - if (yych == '2') goto yy1821; + if (yych == '2') goto yy1863; goto yy11; -yy1738: +yy1780: yych = *++cursor_; - if (yych == '4') goto yy1823; + if (yych == '4') goto yy1865; goto yy11; -yy1739: +yy1781: yych = *++cursor_; - if (yych == 't') goto yy1825; + if (yych == 't') goto yy1867; goto yy11; -yy1740: +yy1782: yych = *++cursor_; - if (yych == '2') goto yy1826; + if (yych == '2') goto yy1868; goto yy11; -yy1741: +yy1783: yych = *++cursor_; - if (yych == '4') goto yy1828; + if (yych == '4') goto yy1870; goto yy11; -yy1742: +yy1784: yych = *++cursor_; - if (yych == 't') goto yy1830; + if (yych == 't') goto yy1872; goto yy11; -yy1743: +yy1785: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 589 "src/wast-lexer.cc" +#line 596 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4AllTrue); } -#line 8973 "src/prebuilt/wast-lexer-gen.cc" -yy1745: +#line 9169 "src/prebuilt/wast-lexer-gen.cc" +yy1787: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 585 "src/wast-lexer.cc" +#line 592 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4AnyTrue); } -#line 8981 "src/prebuilt/wast-lexer-gen.cc" -yy1747: +#line 9177 "src/prebuilt/wast-lexer-gen.cc" +yy1789: yych = *++cursor_; - if (yych == 'l') goto yy1831; + if (yych == 'l') goto yy1873; goto yy11; -yy1748: +yy1790: yych = *++cursor_; - if (yych == 'l') goto yy1832; + if (yych == 'l') goto yy1874; goto yy11; -yy1749: +yy1791: yych = *++cursor_; - if (yych == 'f') goto yy1833; + if (yych == 'f') goto yy1875; goto yy11; -yy1750: +yy1792: yych = *++cursor_; - if (yych == 'f') goto yy1834; + if (yych == 'f') goto yy1876; goto yy11; -yy1751: +yy1793: yych = *++cursor_; - if (yych == 'd') goto yy1835; + if (yych == 'd') goto yy1877; goto yy11; -yy1752: +yy1794: yych = *++cursor_; switch (yych) { - case '.': goto yy1837; - case '1': goto yy1838; - case '3': goto yy1839; - case '8': goto yy1840; + case '.': goto yy1879; + case '1': goto yy1880; + case '3': goto yy1881; + case '8': goto yy1882; default: goto yy11; } -yy1753: +yy1795: yych = *++cursor_; - if (yych == 'r') goto yy1841; + if (yych == 'r') goto yy1883; goto yy11; -yy1754: +yy1796: yych = *++cursor_; - if (yych == 't') goto yy1842; + if (yych == 't') goto yy1884; goto yy11; -yy1755: +yy1797: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 335 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Extend16S); } -#line 9026 "src/prebuilt/wast-lexer-gen.cc" -yy1757: +#line 9222 "src/prebuilt/wast-lexer-gen.cc" +yy1799: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 336 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Extend32S); } -#line 9034 "src/prebuilt/wast-lexer-gen.cc" -yy1759: +#line 9230 "src/prebuilt/wast-lexer-gen.cc" +yy1801: yych = *++cursor_; - if (yych == '3') goto yy1844; + if (yych == '3') goto yy1886; goto yy11; -yy1760: +yy1802: yych = *++cursor_; - if (yych == '3') goto yy1845; + if (yych == '3') goto yy1887; goto yy11; -yy1761: +yy1803: yych = *++cursor_; - if (yych == 't') goto yy1846; + if (yych == 't') goto yy1888; goto yy11; -yy1762: +yy1804: yych = *++cursor_; - if (yych == '2') goto yy1847; + if (yych == '2') goto yy1889; goto yy11; -yy1763: +yy1805: yych = *++cursor_; - if (yych == '4') goto yy1849; + if (yych == '4') goto yy1891; goto yy11; -yy1764: +yy1806: yych = *++cursor_; - if (yych == 't') goto yy1851; + if (yych == 't') goto yy1893; goto yy11; -yy1765: +yy1807: yych = *++cursor_; - if (yych == '2') goto yy1852; + if (yych == '2') goto yy1894; goto yy11; -yy1766: +yy1808: yych = *++cursor_; - if (yych == '4') goto yy1854; + if (yych == '4') goto yy1896; goto yy11; -yy1767: +yy1809: yych = *++cursor_; - if (yych == 't') goto yy1856; + if (yych == 't') goto yy1898; goto yy11; -yy1768: +yy1810: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 590 "src/wast-lexer.cc" +#line 597 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2AllTrue); } -#line 9078 "src/prebuilt/wast-lexer-gen.cc" -yy1770: +#line 9274 "src/prebuilt/wast-lexer-gen.cc" +yy1812: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 586 "src/wast-lexer.cc" +#line 593 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2AnyTrue); } -#line 9086 "src/prebuilt/wast-lexer-gen.cc" -yy1772: +#line 9282 "src/prebuilt/wast-lexer-gen.cc" +yy1814: yych = *++cursor_; - if (yych == 'l') goto yy1857; + if (yych == 'l') goto yy1899; goto yy11; -yy1773: +yy1815: yych = *++cursor_; - if (yych == 'l') goto yy1858; + if (yych == 'l') goto yy1900; goto yy11; -yy1774: +yy1816: yych = *++cursor_; - if (yych == 'f') goto yy1859; + if (yych == 'f') goto yy1901; goto yy11; -yy1775: +yy1817: yych = *++cursor_; - if (yych == 'f') goto yy1860; + if (yych == 'f') goto yy1902; goto yy11; -yy1776: +yy1818: yych = *++cursor_; - if (yych == 'r') goto yy1861; + if (yych == 'r') goto yy1903; goto yy11; -yy1777: +yy1819: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 587 "src/wast-lexer.cc" +#line 594 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I8X16AllTrue); } -#line 9114 "src/prebuilt/wast-lexer-gen.cc" -yy1779: +#line 9310 "src/prebuilt/wast-lexer-gen.cc" +yy1821: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 583 "src/wast-lexer.cc" +#line 590 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I8X16AnyTrue); } -#line 9122 "src/prebuilt/wast-lexer-gen.cc" -yy1781: +#line 9318 "src/prebuilt/wast-lexer-gen.cc" +yy1823: yych = *++cursor_; - if (yych == 'l') goto yy1862; + if (yych == 'l') goto yy1904; goto yy11; -yy1782: +yy1824: yych = *++cursor_; - if (yych == 'l') goto yy1863; + if (yych == 'l') goto yy1905; goto yy11; -yy1783: +yy1825: yych = *++cursor_; - if (yych == 'r') goto yy1864; + if (yych == 'r') goto yy1906; goto yy11; -yy1784: +yy1826: yych = *++cursor_; - if (yych == 'd') goto yy1865; + if (yych == 'd') goto yy1907; goto yy11; -yy1785: +yy1827: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 582 "src/wast-lexer.cc" +#line 589 "src/wast-lexer.cc" { RETURN_OPCODE(Ternary, V128BitSelect); } -#line 9146 "src/prebuilt/wast-lexer-gen.cc" -yy1787: +#line 9342 "src/prebuilt/wast-lexer-gen.cc" +yy1829: yych = *++cursor_; - if (yych == 'o') goto yy1866; + if (yych == 'o') goto yy1908; goto yy11; -yy1788: +yy1830: yych = *++cursor_; - if (yych == 'd') goto yy1867; + if (yych == 'd') goto yy1909; goto yy11; -yy1789: +yy1831: yych = *++cursor_; - if (yych == 'r') goto yy1869; + if (yych == 'r') goto yy1911; goto yy11; -yy1790: +yy1832: yych = *++cursor_; - if (yych == 'a') goto yy1870; + if (yych == 'a') goto yy1912; goto yy11; -yy1791: +yy1833: yych = *++cursor_; - if (yych == 'l') goto yy1871; + if (yych == 'l') goto yy1913; goto yy11; -yy1792: +yy1834: yych = *++cursor_; - if (yych == '3') goto yy1872; - if (yych == '6') goto yy1873; + if (yych == '3') goto yy1914; + if (yych == '6') goto yy1915; goto yy11; -yy1793: +yy1835: yych = *++cursor_; - if (yych == '3') goto yy1874; - if (yych == '6') goto yy1875; + if (yych == '3') goto yy1916; + if (yych == '6') goto yy1917; goto yy11; -yy1794: +yy1836: yych = *++cursor_; - if (yych == '/') goto yy1876; + if (yych == '/') goto yy1918; goto yy11; -yy1795: +yy1837: yych = *++cursor_; - if (yych == '/') goto yy1877; + if (yych == '/') goto yy1919; goto yy11; -yy1796: +yy1838: yych = *++cursor_; - if (yych == '/') goto yy1878; + if (yych == '/') goto yy1920; goto yy11; -yy1797: +yy1839: yych = *++cursor_; - if (yych == 'a') goto yy1879; + if (yych == 'a') goto yy1921; goto yy11; -yy1798: +yy1840: yych = *++cursor_; - if (yych == 'a') goto yy1880; + if (yych == 'a') goto yy1922; goto yy11; -yy1799: +yy1841: yych = *++cursor_; - if (yych == '3') goto yy1881; - if (yych == '6') goto yy1882; + if (yych == '3') goto yy1923; + if (yych == '6') goto yy1924; goto yy11; -yy1800: +yy1842: yych = *++cursor_; - if (yych == '3') goto yy1883; - if (yych == '6') goto yy1884; + if (yych == '3') goto yy1925; + if (yych == '6') goto yy1926; goto yy11; -yy1801: +yy1843: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 440 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64PromoteF32); } -#line 9214 "src/prebuilt/wast-lexer-gen.cc" -yy1803: +#line 9410 "src/prebuilt/wast-lexer-gen.cc" +yy1845: yych = *++cursor_; - if (yych == '/') goto yy1885; + if (yych == '/') goto yy1927; goto yy11; -yy1804: +yy1846: yych = *++cursor_; - if (yych == '/') goto yy1886; + if (yych == '/') goto yy1928; goto yy11; -yy1805: +yy1847: yych = *++cursor_; - if (yych == '/') goto yy1887; + if (yych == '/') goto yy1929; goto yy11; -yy1806: +yy1848: yych = *++cursor_; - if (yych == 'a') goto yy1888; + if (yych == 'a') goto yy1930; goto yy11; -yy1807: +yy1849: yych = *++cursor_; - if (yych == 'a') goto yy1889; + if (yych == 'a') goto yy1931; goto yy11; -yy1808: +yy1850: yych = *++cursor_; - if (yych == 'a') goto yy1890; + if (yych == 'a') goto yy1932; goto yy11; -yy1809: +yy1851: yych = *++cursor_; - if (yych == 'a') goto yy1891; + if (yych == 'a') goto yy1933; goto yy11; -yy1810: +yy1852: yych = *++cursor_; - if (yych == 'a') goto yy1892; + if (yych == 'a') goto yy1934; goto yy11; -yy1811: +yy1853: yych = *++cursor_; - if (yych == 'a') goto yy1893; + if (yych == 'a') goto yy1935; goto yy11; -yy1812: +yy1854: yych = *++cursor_; if (yych <= '0') { if (yych <= '"') { @@ -9258,406 +9454,406 @@ yy1812: } } else { if (yych <= '8') { - if (yych <= '1') goto yy1894; + if (yych <= '1') goto yy1936; if (yych <= '7') goto yy10; - goto yy1895; + goto yy1937; } else { - if (yych == ';') goto yy1813; + if (yych == ';') goto yy1855; if (yych <= '~') goto yy10; } } -yy1813: -#line 456 "src/wast-lexer.cc" +yy1855: +#line 463 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I32AtomicLoad); } -#line 9273 "src/prebuilt/wast-lexer-gen.cc" -yy1814: +#line 9469 "src/prebuilt/wast-lexer-gen.cc" +yy1856: yych = *++cursor_; switch (yych) { - case 'a': goto yy1896; - case 'c': goto yy1897; - case 'o': goto yy1898; - case 's': goto yy1899; - case 'x': goto yy1900; + case 'a': goto yy1938; + case 'c': goto yy1939; + case 'o': goto yy1940; + case 's': goto yy1941; + case 'x': goto yy1942; default: goto yy11; } -yy1815: +yy1857: yych = *++cursor_; - if (yych == '6') goto yy1901; + if (yych == '6') goto yy1943; goto yy11; -yy1816: +yy1858: yych = *++cursor_; - if (yych == '_') goto yy1902; + if (yych == '_') goto yy1944; goto yy11; -yy1817: +yy1859: yych = *++cursor_; - if (yych == 'e') goto yy1903; + if (yych == 'e') goto yy1945; goto yy11; -yy1818: +yy1860: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 453 "src/wast-lexer.cc" +#line 460 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicWait, I32AtomicWait); } -#line 9303 "src/prebuilt/wast-lexer-gen.cc" -yy1820: +#line 9499 "src/prebuilt/wast-lexer-gen.cc" +yy1862: yych = *++cursor_; - if (yych == '/') goto yy1905; + if (yych == '/') goto yy1947; goto yy11; -yy1821: +yy1863: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 416 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSF32); } -#line 9315 "src/prebuilt/wast-lexer-gen.cc" -yy1823: +#line 9511 "src/prebuilt/wast-lexer-gen.cc" +yy1865: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 418 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSF64); } -#line 9323 "src/prebuilt/wast-lexer-gen.cc" -yy1825: +#line 9519 "src/prebuilt/wast-lexer-gen.cc" +yy1867: yych = *++cursor_; - if (yych == '/') goto yy1906; + if (yych == '/') goto yy1948; goto yy11; -yy1826: +yy1868: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 420 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUF32); } -#line 9335 "src/prebuilt/wast-lexer-gen.cc" -yy1828: +#line 9531 "src/prebuilt/wast-lexer-gen.cc" +yy1870: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 422 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUF64); } -#line 9343 "src/prebuilt/wast-lexer-gen.cc" -yy1830: +#line 9539 "src/prebuilt/wast-lexer-gen.cc" +yy1872: yych = *++cursor_; - if (yych == '/') goto yy1907; + if (yych == '/') goto yy1949; goto yy11; -yy1831: +yy1873: yych = *++cursor_; - if (yych == 'a') goto yy1908; + if (yych == 'a') goto yy1950; goto yy11; -yy1832: +yy1874: yych = *++cursor_; - if (yych == 'a') goto yy1909; + if (yych == 'a') goto yy1951; goto yy11; -yy1833: +yy1875: yych = *++cursor_; - if (yych == '3') goto yy1910; + if (yych == '3') goto yy1952; goto yy11; -yy1834: +yy1876: yych = *++cursor_; - if (yych == '3') goto yy1911; + if (yych == '3') goto yy1953; goto yy11; -yy1835: +yy1877: yych = *++cursor_; if (yych <= '1') { if (yych <= '"') { if (yych == '!') goto yy10; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1836; + if (yych <= ')') goto yy1878; if (yych <= '0') goto yy10; - goto yy1912; + goto yy1954; } } else { if (yych <= '8') { - if (yych == '3') goto yy1913; + if (yych == '3') goto yy1955; if (yych <= '7') goto yy10; - goto yy1914; + goto yy1956; } else { - if (yych == ';') goto yy1836; + if (yych == ';') goto yy1878; if (yych <= '~') goto yy10; } } -yy1836: -#line 457 "src/wast-lexer.cc" +yy1878: +#line 464 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I64AtomicLoad); } -#line 9388 "src/prebuilt/wast-lexer-gen.cc" -yy1837: +#line 9584 "src/prebuilt/wast-lexer-gen.cc" +yy1879: yych = *++cursor_; switch (yych) { - case 'a': goto yy1915; - case 'c': goto yy1916; - case 'o': goto yy1917; - case 's': goto yy1918; - case 'x': goto yy1919; + case 'a': goto yy1957; + case 'c': goto yy1958; + case 'o': goto yy1959; + case 's': goto yy1960; + case 'x': goto yy1961; default: goto yy11; } -yy1838: +yy1880: yych = *++cursor_; - if (yych == '6') goto yy1920; + if (yych == '6') goto yy1962; goto yy11; -yy1839: +yy1881: yych = *++cursor_; - if (yych == '2') goto yy1921; + if (yych == '2') goto yy1963; goto yy11; -yy1840: +yy1882: yych = *++cursor_; - if (yych == '_') goto yy1922; + if (yych == '_') goto yy1964; goto yy11; -yy1841: +yy1883: yych = *++cursor_; - if (yych == 'e') goto yy1923; + if (yych == 'e') goto yy1965; goto yy11; -yy1842: +yy1884: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 454 "src/wast-lexer.cc" +#line 461 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicWait, I64AtomicWait); } -#line 9422 "src/prebuilt/wast-lexer-gen.cc" -yy1844: +#line 9618 "src/prebuilt/wast-lexer-gen.cc" +yy1886: yych = *++cursor_; - if (yych == '2') goto yy1925; + if (yych == '2') goto yy1967; goto yy11; -yy1845: +yy1887: yych = *++cursor_; - if (yych == '2') goto yy1927; + if (yych == '2') goto yy1969; goto yy11; -yy1846: +yy1888: yych = *++cursor_; - if (yych == '/') goto yy1929; + if (yych == '/') goto yy1971; goto yy11; -yy1847: +yy1889: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 417 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSF32); } -#line 9442 "src/prebuilt/wast-lexer-gen.cc" -yy1849: +#line 9638 "src/prebuilt/wast-lexer-gen.cc" +yy1891: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 419 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSF64); } -#line 9450 "src/prebuilt/wast-lexer-gen.cc" -yy1851: +#line 9646 "src/prebuilt/wast-lexer-gen.cc" +yy1893: yych = *++cursor_; - if (yych == '/') goto yy1930; + if (yych == '/') goto yy1972; goto yy11; -yy1852: +yy1894: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 421 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUF32); } -#line 9462 "src/prebuilt/wast-lexer-gen.cc" -yy1854: +#line 9658 "src/prebuilt/wast-lexer-gen.cc" +yy1896: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 423 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUF64); } -#line 9470 "src/prebuilt/wast-lexer-gen.cc" -yy1856: +#line 9666 "src/prebuilt/wast-lexer-gen.cc" +yy1898: yych = *++cursor_; - if (yych == '/') goto yy1931; + if (yych == '/') goto yy1973; goto yy11; -yy1857: +yy1899: yych = *++cursor_; - if (yych == 'a') goto yy1932; + if (yych == 'a') goto yy1974; goto yy11; -yy1858: +yy1900: yych = *++cursor_; - if (yych == 'a') goto yy1933; + if (yych == 'a') goto yy1975; goto yy11; -yy1859: +yy1901: yych = *++cursor_; - if (yych == '6') goto yy1934; + if (yych == '6') goto yy1976; goto yy11; -yy1860: +yy1902: yych = *++cursor_; - if (yych == '6') goto yy1935; + if (yych == '6') goto yy1977; goto yy11; -yy1861: +yy1903: yych = *++cursor_; - if (yych == 'a') goto yy1936; + if (yych == 'a') goto yy1978; goto yy11; -yy1862: +yy1904: yych = *++cursor_; - if (yych == 'a') goto yy1937; + if (yych == 'a') goto yy1979; goto yy11; -yy1863: +yy1905: yych = *++cursor_; - if (yych == 'a') goto yy1938; + if (yych == 'a') goto yy1980; goto yy11; -yy1864: +yy1906: yych = *++cursor_; - if (yych == 'a') goto yy1939; + if (yych == 'a') goto yy1981; goto yy11; -yy1865: +yy1907: yych = *++cursor_; - if (yych == 'i') goto yy1940; + if (yych == 'i') goto yy1982; goto yy11; -yy1866: +yy1908: yych = *++cursor_; - if (yych == 'n') goto yy1941; + if (yych == 'n') goto yy1983; goto yy11; -yy1867: +yy1909: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 683 "src/wast-lexer.cc" +#line 691 "src/wast-lexer.cc" { RETURN(AssertMalformed); } -#line 9522 "src/prebuilt/wast-lexer-gen.cc" -yy1869: +#line 9718 "src/prebuilt/wast-lexer-gen.cc" +yy1911: yych = *++cursor_; - if (yych == 'i') goto yy1943; + if (yych == 'i') goto yy1985; goto yy11; -yy1870: +yy1912: yych = *++cursor_; - if (yych == 'n') goto yy1944; + if (yych == 'n') goto yy1986; goto yy11; -yy1871: +yy1913: yych = *++cursor_; - if (yych == 'e') goto yy1945; + if (yych == 'e') goto yy1987; goto yy11; -yy1872: +yy1914: yych = *++cursor_; - if (yych == '2') goto yy1947; + if (yych == '2') goto yy1989; goto yy11; -yy1873: +yy1915: yych = *++cursor_; - if (yych == '4') goto yy1949; + if (yych == '4') goto yy1991; goto yy11; -yy1874: +yy1916: yych = *++cursor_; - if (yych == '2') goto yy1951; + if (yych == '2') goto yy1993; goto yy11; -yy1875: +yy1917: yych = *++cursor_; - if (yych == '4') goto yy1953; + if (yych == '4') goto yy1995; goto yy11; -yy1876: +yy1918: yych = *++cursor_; - if (yych == 'i') goto yy1955; + if (yych == 'i') goto yy1997; goto yy11; -yy1877: +yy1919: yych = *++cursor_; - if (yych == 'i') goto yy1956; + if (yych == 'i') goto yy1998; goto yy11; -yy1878: +yy1920: yych = *++cursor_; - if (yych == 'i') goto yy1957; + if (yych == 'i') goto yy1999; goto yy11; -yy1879: +yy1921: yych = *++cursor_; - if (yych == 'n') goto yy1958; + if (yych == 'n') goto yy2000; goto yy11; -yy1880: +yy1922: yych = *++cursor_; - if (yych == 'n') goto yy1959; + if (yych == 'n') goto yy2001; goto yy11; -yy1881: +yy1923: yych = *++cursor_; - if (yych == '2') goto yy1960; + if (yych == '2') goto yy2002; goto yy11; -yy1882: +yy1924: yych = *++cursor_; - if (yych == '4') goto yy1962; + if (yych == '4') goto yy2004; goto yy11; -yy1883: +yy1925: yych = *++cursor_; - if (yych == '2') goto yy1964; + if (yych == '2') goto yy2006; goto yy11; -yy1884: +yy1926: yych = *++cursor_; - if (yych == '4') goto yy1966; + if (yych == '4') goto yy2008; goto yy11; -yy1885: +yy1927: yych = *++cursor_; - if (yych == 'i') goto yy1968; + if (yych == 'i') goto yy2010; goto yy11; -yy1886: +yy1928: yych = *++cursor_; - if (yych == 'i') goto yy1969; + if (yych == 'i') goto yy2011; goto yy11; -yy1887: +yy1929: yych = *++cursor_; - if (yych == 'i') goto yy1970; + if (yych == 'i') goto yy2012; goto yy11; -yy1888: +yy1930: yych = *++cursor_; - if (yych == 'n') goto yy1971; + if (yych == 'n') goto yy2013; goto yy11; -yy1889: +yy1931: yych = *++cursor_; - if (yych == 'n') goto yy1972; + if (yych == 'n') goto yy2014; goto yy11; -yy1890: +yy1932: yych = *++cursor_; - if (yych == 't') goto yy1973; + if (yych == 't') goto yy2015; goto yy11; -yy1891: +yy1933: yych = *++cursor_; - if (yych == 'n') goto yy1974; + if (yych == 'n') goto yy2016; goto yy11; -yy1892: +yy1934: yych = *++cursor_; - if (yych == 'n') goto yy1975; + if (yych == 'n') goto yy2017; goto yy11; -yy1893: +yy1935: yych = *++cursor_; - if (yych == 't') goto yy1976; + if (yych == 't') goto yy2018; goto yy11; -yy1894: +yy1936: yych = *++cursor_; - if (yych == '6') goto yy1977; + if (yych == '6') goto yy2019; goto yy11; -yy1895: +yy1937: yych = *++cursor_; - if (yych == '_') goto yy1978; + if (yych == '_') goto yy2020; goto yy11; -yy1896: +yy1938: yych = *++cursor_; - if (yych == 'd') goto yy1979; - if (yych == 'n') goto yy1980; + if (yych == 'd') goto yy2021; + if (yych == 'n') goto yy2022; goto yy11; -yy1897: +yy1939: yych = *++cursor_; - if (yych == 'm') goto yy1981; + if (yych == 'm') goto yy2023; goto yy11; -yy1898: +yy1940: yych = *++cursor_; - if (yych == 'r') goto yy1982; + if (yych == 'r') goto yy2024; goto yy11; -yy1899: +yy1941: yych = *++cursor_; - if (yych == 'u') goto yy1984; + if (yych == 'u') goto yy2026; goto yy11; -yy1900: +yy1942: yych = *++cursor_; - if (yych == 'c') goto yy1985; - if (yych == 'o') goto yy1986; + if (yych == 'c') goto yy2027; + if (yych == 'o') goto yy2028; goto yy11; -yy1901: +yy1943: yych = *++cursor_; - if (yych == '_') goto yy1987; + if (yych == '_') goto yy2029; goto yy11; -yy1902: +yy1944: yych = *++cursor_; - if (yych == 'u') goto yy1988; + if (yych == 'u') goto yy2030; goto yy11; -yy1903: +yy1945: yych = *++cursor_; if (yych <= '0') { if (yych <= '"') { @@ -9668,2095 +9864,2095 @@ yy1903: } } else { if (yych <= '8') { - if (yych <= '1') goto yy1989; + if (yych <= '1') goto yy2031; if (yych <= '7') goto yy10; - goto yy1990; + goto yy2032; } else { - if (yych == ';') goto yy1904; + if (yych == ';') goto yy1946; if (yych <= '~') goto yy10; } } -yy1904: -#line 463 "src/wast-lexer.cc" +yy1946: +#line 470 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I32AtomicStore); } -#line 9683 "src/prebuilt/wast-lexer-gen.cc" -yy1905: +#line 9879 "src/prebuilt/wast-lexer-gen.cc" +yy1947: yych = *++cursor_; - if (yych == 'f') goto yy1992; + if (yych == 'f') goto yy2034; goto yy11; -yy1906: +yy1948: yych = *++cursor_; - if (yych == 'f') goto yy1993; + if (yych == 'f') goto yy2035; goto yy11; -yy1907: +yy1949: yych = *++cursor_; - if (yych == 'f') goto yy1994; + if (yych == 'f') goto yy2036; goto yy11; -yy1908: +yy1950: yych = *++cursor_; - if (yych == 'n') goto yy1995; + if (yych == 'n') goto yy2037; goto yy11; -yy1909: +yy1951: yych = *++cursor_; - if (yych == 'n') goto yy1996; + if (yych == 'n') goto yy2038; goto yy11; -yy1910: +yy1952: yych = *++cursor_; - if (yych == '2') goto yy1997; + if (yych == '2') goto yy2039; goto yy11; -yy1911: +yy1953: yych = *++cursor_; - if (yych == '2') goto yy1998; + if (yych == '2') goto yy2040; goto yy11; -yy1912: +yy1954: yych = *++cursor_; - if (yych == '6') goto yy1999; + if (yych == '6') goto yy2041; goto yy11; -yy1913: +yy1955: yych = *++cursor_; - if (yych == '2') goto yy2000; + if (yych == '2') goto yy2042; goto yy11; -yy1914: +yy1956: yych = *++cursor_; - if (yych == '_') goto yy2001; + if (yych == '_') goto yy2043; goto yy11; -yy1915: +yy1957: yych = *++cursor_; - if (yych == 'd') goto yy2002; - if (yych == 'n') goto yy2003; + if (yych == 'd') goto yy2044; + if (yych == 'n') goto yy2045; goto yy11; -yy1916: +yy1958: yych = *++cursor_; - if (yych == 'm') goto yy2004; + if (yych == 'm') goto yy2046; goto yy11; -yy1917: +yy1959: yych = *++cursor_; - if (yych == 'r') goto yy2005; + if (yych == 'r') goto yy2047; goto yy11; -yy1918: +yy1960: yych = *++cursor_; - if (yych == 'u') goto yy2007; + if (yych == 'u') goto yy2049; goto yy11; -yy1919: +yy1961: yych = *++cursor_; - if (yych == 'c') goto yy2008; - if (yych == 'o') goto yy2009; + if (yych == 'c') goto yy2050; + if (yych == 'o') goto yy2051; goto yy11; -yy1920: +yy1962: yych = *++cursor_; - if (yych == '_') goto yy2010; + if (yych == '_') goto yy2052; goto yy11; -yy1921: +yy1963: yych = *++cursor_; - if (yych == '_') goto yy2011; + if (yych == '_') goto yy2053; goto yy11; -yy1922: +yy1964: yych = *++cursor_; - if (yych == 'u') goto yy2012; + if (yych == 'u') goto yy2054; goto yy11; -yy1923: +yy1965: yych = *++cursor_; if (yych <= '1') { if (yych <= '"') { if (yych == '!') goto yy10; } else { if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1924; + if (yych <= ')') goto yy1966; if (yych <= '0') goto yy10; - goto yy2013; + goto yy2055; } } else { if (yych <= '8') { - if (yych == '3') goto yy2014; + if (yych == '3') goto yy2056; if (yych <= '7') goto yy10; - goto yy2015; + goto yy2057; } else { - if (yych == ';') goto yy1924; + if (yych == ';') goto yy1966; if (yych <= '~') goto yy10; } } -yy1924: -#line 464 "src/wast-lexer.cc" +yy1966: +#line 471 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I64AtomicStore); } -#line 9782 "src/prebuilt/wast-lexer-gen.cc" -yy1925: +#line 9978 "src/prebuilt/wast-lexer-gen.cc" +yy1967: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 413 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64ExtendSI32); } -#line 9790 "src/prebuilt/wast-lexer-gen.cc" -yy1927: +#line 9986 "src/prebuilt/wast-lexer-gen.cc" +yy1969: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 414 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64ExtendUI32); } -#line 9798 "src/prebuilt/wast-lexer-gen.cc" -yy1929: +#line 9994 "src/prebuilt/wast-lexer-gen.cc" +yy1971: yych = *++cursor_; - if (yych == 'f') goto yy2017; + if (yych == 'f') goto yy2059; goto yy11; -yy1930: +yy1972: yych = *++cursor_; - if (yych == 'f') goto yy2018; + if (yych == 'f') goto yy2060; goto yy11; -yy1931: +yy1973: yych = *++cursor_; - if (yych == 'f') goto yy2019; + if (yych == 'f') goto yy2061; goto yy11; -yy1932: +yy1974: yych = *++cursor_; - if (yych == 'n') goto yy2020; + if (yych == 'n') goto yy2062; goto yy11; -yy1933: +yy1975: yych = *++cursor_; - if (yych == 'n') goto yy2021; + if (yych == 'n') goto yy2063; goto yy11; -yy1934: +yy1976: yych = *++cursor_; - if (yych == '4') goto yy2022; + if (yych == '4') goto yy2064; goto yy11; -yy1935: +yy1977: yych = *++cursor_; - if (yych == '4') goto yy2023; + if (yych == '4') goto yy2065; goto yy11; -yy1936: +yy1978: yych = *++cursor_; - if (yych == 't') goto yy2024; + if (yych == 't') goto yy2066; goto yy11; -yy1937: +yy1979: yych = *++cursor_; - if (yych == 'n') goto yy2025; + if (yych == 'n') goto yy2067; goto yy11; -yy1938: +yy1980: yych = *++cursor_; - if (yych == 'n') goto yy2026; + if (yych == 'n') goto yy2068; goto yy11; -yy1939: +yy1981: yych = *++cursor_; - if (yych == 't') goto yy2027; + if (yych == 't') goto yy2069; goto yy11; -yy1940: +yy1982: yych = *++cursor_; - if (yych == 'r') goto yy2028; + if (yych == 'r') goto yy2070; goto yy11; -yy1941: +yy1983: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 690 "src/wast-lexer.cc" +#line 698 "src/wast-lexer.cc" { RETURN(AssertExhaustion); } -#line 9854 "src/prebuilt/wast-lexer-gen.cc" -yy1943: +#line 10050 "src/prebuilt/wast-lexer-gen.cc" +yy1985: yych = *++cursor_; - if (yych == 't') goto yy2029; + if (yych == 't') goto yy2071; goto yy11; -yy1944: +yy1986: yych = *++cursor_; - if (yych == 'o') goto yy2030; + if (yych == 'o') goto yy2072; goto yy11; -yy1945: +yy1987: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 685 "src/wast-lexer.cc" +#line 693 "src/wast-lexer.cc" { RETURN(AssertUnlinkable); } -#line 9870 "src/prebuilt/wast-lexer-gen.cc" -yy1947: +#line 10066 "src/prebuilt/wast-lexer-gen.cc" +yy1989: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 432 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertSI32); } -#line 9878 "src/prebuilt/wast-lexer-gen.cc" -yy1949: +#line 10074 "src/prebuilt/wast-lexer-gen.cc" +yy1991: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 434 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertSI64); } -#line 9886 "src/prebuilt/wast-lexer-gen.cc" -yy1951: +#line 10082 "src/prebuilt/wast-lexer-gen.cc" +yy1993: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 436 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertUI32); } -#line 9894 "src/prebuilt/wast-lexer-gen.cc" -yy1953: +#line 10090 "src/prebuilt/wast-lexer-gen.cc" +yy1995: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 438 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertUI64); } -#line 9902 "src/prebuilt/wast-lexer-gen.cc" -yy1955: +#line 10098 "src/prebuilt/wast-lexer-gen.cc" +yy1997: yych = *++cursor_; - if (yych == '3') goto yy2031; + if (yych == '3') goto yy2073; goto yy11; -yy1956: +yy1998: yych = *++cursor_; - if (yych == '3') goto yy2032; + if (yych == '3') goto yy2074; goto yy11; -yy1957: +yy1999: yych = *++cursor_; - if (yych == '3') goto yy2033; + if (yych == '3') goto yy2075; goto yy11; -yy1958: +yy2000: yych = *++cursor_; - if (yych == 'e') goto yy2034; + if (yych == 'e') goto yy2076; goto yy11; -yy1959: +yy2001: yych = *++cursor_; - if (yych == 'e') goto yy2036; + if (yych == 'e') goto yy2078; goto yy11; -yy1960: +yy2002: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 433 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertSI32); } -#line 9930 "src/prebuilt/wast-lexer-gen.cc" -yy1962: +#line 10126 "src/prebuilt/wast-lexer-gen.cc" +yy2004: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 435 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertSI64); } -#line 9938 "src/prebuilt/wast-lexer-gen.cc" -yy1964: +#line 10134 "src/prebuilt/wast-lexer-gen.cc" +yy2006: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 437 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertUI32); } -#line 9946 "src/prebuilt/wast-lexer-gen.cc" -yy1966: +#line 10142 "src/prebuilt/wast-lexer-gen.cc" +yy2008: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 439 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertUI64); } -#line 9954 "src/prebuilt/wast-lexer-gen.cc" -yy1968: +#line 10150 "src/prebuilt/wast-lexer-gen.cc" +yy2010: yych = *++cursor_; - if (yych == '6') goto yy2038; + if (yych == '6') goto yy2080; goto yy11; -yy1969: +yy2011: yych = *++cursor_; - if (yych == '6') goto yy2039; + if (yych == '6') goto yy2081; goto yy11; -yy1970: +yy2012: yych = *++cursor_; - if (yych == '6') goto yy2040; + if (yych == '6') goto yy2082; goto yy11; -yy1971: +yy2013: yych = *++cursor_; - if (yych == 'e') goto yy2041; + if (yych == 'e') goto yy2083; goto yy11; -yy1972: +yy2014: yych = *++cursor_; - if (yych == 'e') goto yy2043; + if (yych == 'e') goto yy2085; goto yy11; -yy1973: +yy2015: yych = *++cursor_; - if (yych == 'e') goto yy2045; + if (yych == 'e') goto yy2087; goto yy11; -yy1974: +yy2016: yych = *++cursor_; - if (yych == 'e') goto yy2046; + if (yych == 'e') goto yy2088; goto yy11; -yy1975: +yy2017: yych = *++cursor_; - if (yych == 'e') goto yy2047; + if (yych == 'e') goto yy2089; goto yy11; -yy1976: +yy2018: yych = *++cursor_; - if (yych == 'e') goto yy2049; + if (yych == 'e') goto yy2091; goto yy11; -yy1977: +yy2019: yych = *++cursor_; - if (yych == '_') goto yy2050; + if (yych == '_') goto yy2092; goto yy11; -yy1978: +yy2020: yych = *++cursor_; - if (yych == 'u') goto yy2051; + if (yych == 'u') goto yy2093; goto yy11; -yy1979: +yy2021: yych = *++cursor_; - if (yych == 'd') goto yy2053; + if (yych == 'd') goto yy2095; goto yy11; -yy1980: +yy2022: yych = *++cursor_; - if (yych == 'd') goto yy2055; + if (yych == 'd') goto yy2097; goto yy11; -yy1981: +yy2023: yych = *++cursor_; - if (yych == 'p') goto yy2057; + if (yych == 'p') goto yy2099; goto yy11; -yy1982: +yy2024: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 491 "src/wast-lexer.cc" +#line 498 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwOr); } -#line 10018 "src/prebuilt/wast-lexer-gen.cc" -yy1984: +#line 10214 "src/prebuilt/wast-lexer-gen.cc" +yy2026: yych = *++cursor_; - if (yych == 'b') goto yy2058; + if (yych == 'b') goto yy2100; goto yy11; -yy1985: +yy2027: yych = *++cursor_; - if (yych == 'h') goto yy2060; + if (yych == 'h') goto yy2102; goto yy11; -yy1986: +yy2028: yych = *++cursor_; - if (yych == 'r') goto yy2061; + if (yych == 'r') goto yy2103; goto yy11; -yy1987: +yy2029: yych = *++cursor_; - if (yych == 'u') goto yy2063; + if (yych == 'u') goto yy2105; goto yy11; -yy1988: +yy2030: yych = *++cursor_; - if (yych == '.') goto yy2064; + if (yych == '.') goto yy2106; goto yy11; -yy1989: +yy2031: yych = *++cursor_; - if (yych == '6') goto yy2065; + if (yych == '6') goto yy2107; goto yy11; -yy1990: +yy2032: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 465 "src/wast-lexer.cc" +#line 472 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I32AtomicStore8); } -#line 10050 "src/prebuilt/wast-lexer-gen.cc" -yy1992: +#line 10246 "src/prebuilt/wast-lexer-gen.cc" +yy2034: yych = *++cursor_; - if (yych == '3') goto yy2067; + if (yych == '3') goto yy2109; goto yy11; -yy1993: +yy2035: yych = *++cursor_; - if (yych == '3') goto yy2068; - if (yych == '6') goto yy2069; + if (yych == '3') goto yy2110; + if (yych == '6') goto yy2111; goto yy11; -yy1994: +yy2036: yych = *++cursor_; - if (yych == '3') goto yy2070; - if (yych == '6') goto yy2071; + if (yych == '3') goto yy2112; + if (yych == '6') goto yy2113; goto yy11; -yy1995: +yy2037: yych = *++cursor_; - if (yych == 'e') goto yy2072; + if (yych == 'e') goto yy2114; goto yy11; -yy1996: +yy2038: yych = *++cursor_; - if (yych == 'e') goto yy2074; + if (yych == 'e') goto yy2116; goto yy11; -yy1997: +yy2039: yych = *++cursor_; - if (yych == 'x') goto yy2076; + if (yych == 'x') goto yy2118; goto yy11; -yy1998: +yy2040: yych = *++cursor_; - if (yych == 'x') goto yy2077; + if (yych == 'x') goto yy2119; goto yy11; -yy1999: +yy2041: yych = *++cursor_; - if (yych == '_') goto yy2078; + if (yych == '_') goto yy2120; goto yy11; -yy2000: +yy2042: yych = *++cursor_; - if (yych == '_') goto yy2079; + if (yych == '_') goto yy2121; goto yy11; -yy2001: +yy2043: yych = *++cursor_; - if (yych == 'u') goto yy2080; + if (yych == 'u') goto yy2122; goto yy11; -yy2002: +yy2044: yych = *++cursor_; - if (yych == 'd') goto yy2082; + if (yych == 'd') goto yy2124; goto yy11; -yy2003: +yy2045: yych = *++cursor_; - if (yych == 'd') goto yy2084; + if (yych == 'd') goto yy2126; goto yy11; -yy2004: +yy2046: yych = *++cursor_; - if (yych == 'p') goto yy2086; + if (yych == 'p') goto yy2128; goto yy11; -yy2005: +yy2047: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 492 "src/wast-lexer.cc" +#line 499 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwOr); } -#line 10112 "src/prebuilt/wast-lexer-gen.cc" -yy2007: +#line 10308 "src/prebuilt/wast-lexer-gen.cc" +yy2049: yych = *++cursor_; - if (yych == 'b') goto yy2087; + if (yych == 'b') goto yy2129; goto yy11; -yy2008: +yy2050: yych = *++cursor_; - if (yych == 'h') goto yy2089; + if (yych == 'h') goto yy2131; goto yy11; -yy2009: +yy2051: yych = *++cursor_; - if (yych == 'r') goto yy2090; + if (yych == 'r') goto yy2132; goto yy11; -yy2010: +yy2052: yych = *++cursor_; - if (yych == 'u') goto yy2092; + if (yych == 'u') goto yy2134; goto yy11; -yy2011: +yy2053: yych = *++cursor_; - if (yych == 'u') goto yy2093; + if (yych == 'u') goto yy2135; goto yy11; -yy2012: +yy2054: yych = *++cursor_; - if (yych == '.') goto yy2094; + if (yych == '.') goto yy2136; goto yy11; -yy2013: +yy2055: yych = *++cursor_; - if (yych == '6') goto yy2095; + if (yych == '6') goto yy2137; goto yy11; -yy2014: +yy2056: yych = *++cursor_; - if (yych == '2') goto yy2097; + if (yych == '2') goto yy2139; goto yy11; -yy2015: +yy2057: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 467 "src/wast-lexer.cc" +#line 474 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I64AtomicStore8); } -#line 10152 "src/prebuilt/wast-lexer-gen.cc" -yy2017: +#line 10348 "src/prebuilt/wast-lexer-gen.cc" +yy2059: yych = *++cursor_; - if (yych == '6') goto yy2099; + if (yych == '6') goto yy2141; goto yy11; -yy2018: +yy2060: yych = *++cursor_; - if (yych == '3') goto yy2100; - if (yych == '6') goto yy2101; + if (yych == '3') goto yy2142; + if (yych == '6') goto yy2143; goto yy11; -yy2019: +yy2061: yych = *++cursor_; - if (yych == '3') goto yy2102; - if (yych == '6') goto yy2103; + if (yych == '3') goto yy2144; + if (yych == '6') goto yy2145; goto yy11; -yy2020: +yy2062: yych = *++cursor_; - if (yych == 'e') goto yy2104; + if (yych == 'e') goto yy2146; goto yy11; -yy2021: +yy2063: yych = *++cursor_; - if (yych == 'e') goto yy2106; + if (yych == 'e') goto yy2148; goto yy11; -yy2022: +yy2064: yych = *++cursor_; - if (yych == 'x') goto yy2108; + if (yych == 'x') goto yy2150; goto yy11; -yy2023: +yy2065: yych = *++cursor_; - if (yych == 'x') goto yy2109; + if (yych == 'x') goto yy2151; goto yy11; -yy2024: +yy2066: yych = *++cursor_; - if (yych == 'e') goto yy2110; + if (yych == 'e') goto yy2152; goto yy11; -yy2025: +yy2067: yych = *++cursor_; - if (yych == 'e') goto yy2111; + if (yych == 'e') goto yy2153; goto yy11; -yy2026: +yy2068: yych = *++cursor_; - if (yych == 'e') goto yy2112; + if (yych == 'e') goto yy2154; goto yy11; -yy2027: +yy2069: yych = *++cursor_; - if (yych == 'e') goto yy2114; + if (yych == 'e') goto yy2156; goto yy11; -yy2028: +yy2070: yych = *++cursor_; - if (yych == 'e') goto yy2115; + if (yych == 'e') goto yy2157; goto yy11; -yy2029: +yy2071: yych = *++cursor_; - if (yych == 'h') goto yy2116; + if (yych == 'h') goto yy2158; goto yy11; -yy2030: +yy2072: yych = *++cursor_; - if (yych == 'n') goto yy2117; + if (yych == 'n') goto yy2159; goto yy11; -yy2031: +yy2073: yych = *++cursor_; - if (yych == '2') goto yy2118; + if (yych == '2') goto yy2160; goto yy11; -yy2032: +yy2074: yych = *++cursor_; - if (yych == '2') goto yy2120; + if (yych == '2') goto yy2162; goto yy11; -yy2033: +yy2075: yych = *++cursor_; - if (yych == '2') goto yy2121; + if (yych == '2') goto yy2163; goto yy11; -yy2034: +yy2076: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 534 "src/wast-lexer.cc" +#line 541 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, F32X4ExtractLane); } -#line 10230 "src/prebuilt/wast-lexer-gen.cc" -yy2036: +#line 10426 "src/prebuilt/wast-lexer-gen.cc" +yy2078: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 540 "src/wast-lexer.cc" +#line 547 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, F32X4ReplaceLane); } -#line 10238 "src/prebuilt/wast-lexer-gen.cc" -yy2038: +#line 10434 "src/prebuilt/wast-lexer-gen.cc" +yy2080: yych = *++cursor_; - if (yych == '4') goto yy2122; + if (yych == '4') goto yy2164; goto yy11; -yy2039: +yy2081: yych = *++cursor_; - if (yych == '4') goto yy2124; + if (yych == '4') goto yy2166; goto yy11; -yy2040: +yy2082: yych = *++cursor_; - if (yych == '4') goto yy2125; + if (yych == '4') goto yy2167; goto yy11; -yy2041: +yy2083: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 535 "src/wast-lexer.cc" +#line 542 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, F64X2ExtractLane); } -#line 10258 "src/prebuilt/wast-lexer-gen.cc" -yy2043: +#line 10454 "src/prebuilt/wast-lexer-gen.cc" +yy2085: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 541 "src/wast-lexer.cc" +#line 548 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, F64X2ReplaceLane); } -#line 10266 "src/prebuilt/wast-lexer-gen.cc" -yy2045: +#line 10462 "src/prebuilt/wast-lexer-gen.cc" +yy2087: yych = *++cursor_; - if (yych == '_') goto yy2126; + if (yych == '_') goto yy2168; goto yy11; -yy2046: +yy2088: yych = *++cursor_; - if (yych == '_') goto yy2127; + if (yych == '_') goto yy2169; goto yy11; -yy2047: +yy2089: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 537 "src/wast-lexer.cc" +#line 544 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I16X8ReplaceLane); } -#line 10282 "src/prebuilt/wast-lexer-gen.cc" -yy2049: +#line 10478 "src/prebuilt/wast-lexer-gen.cc" +yy2091: yych = *++cursor_; - if (yych == '_') goto yy2128; + if (yych == '_') goto yy2170; goto yy11; -yy2050: +yy2092: yych = *++cursor_; - if (yych == 'u') goto yy2129; + if (yych == 'u') goto yy2171; goto yy11; -yy2051: +yy2093: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 458 "src/wast-lexer.cc" +#line 465 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I32AtomicLoad8U); } -#line 10298 "src/prebuilt/wast-lexer-gen.cc" -yy2053: +#line 10494 "src/prebuilt/wast-lexer-gen.cc" +yy2095: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 470 "src/wast-lexer.cc" +#line 477 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAdd); } -#line 10306 "src/prebuilt/wast-lexer-gen.cc" -yy2055: +#line 10502 "src/prebuilt/wast-lexer-gen.cc" +yy2097: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 484 "src/wast-lexer.cc" +#line 491 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAnd); } -#line 10314 "src/prebuilt/wast-lexer-gen.cc" -yy2057: +#line 10510 "src/prebuilt/wast-lexer-gen.cc" +yy2099: yych = *++cursor_; - if (yych == 'x') goto yy2131; + if (yych == 'x') goto yy2173; goto yy11; -yy2058: +yy2100: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 477 "src/wast-lexer.cc" +#line 484 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwSub); } -#line 10326 "src/prebuilt/wast-lexer-gen.cc" -yy2060: +#line 10522 "src/prebuilt/wast-lexer-gen.cc" +yy2102: yych = *++cursor_; - if (yych == 'g') goto yy2132; + if (yych == 'g') goto yy2174; goto yy11; -yy2061: +yy2103: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 498 "src/wast-lexer.cc" +#line 505 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXor); } -#line 10338 "src/prebuilt/wast-lexer-gen.cc" -yy2063: +#line 10534 "src/prebuilt/wast-lexer-gen.cc" +yy2105: yych = *++cursor_; - if (yych == '.') goto yy2134; + if (yych == '.') goto yy2176; goto yy11; -yy2064: +yy2106: yych = *++cursor_; switch (yych) { - case 'a': goto yy2135; - case 'c': goto yy2136; - case 'o': goto yy2137; - case 's': goto yy2138; - case 'x': goto yy2139; + case 'a': goto yy2177; + case 'c': goto yy2178; + case 'o': goto yy2179; + case 's': goto yy2180; + case 'x': goto yy2181; default: goto yy11; } -yy2065: +yy2107: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 466 "src/wast-lexer.cc" +#line 473 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I32AtomicStore16); } -#line 10360 "src/prebuilt/wast-lexer-gen.cc" -yy2067: +#line 10556 "src/prebuilt/wast-lexer-gen.cc" +yy2109: yych = *++cursor_; - if (yych == '2') goto yy2140; + if (yych == '2') goto yy2182; goto yy11; -yy2068: +yy2110: yych = *++cursor_; - if (yych == '2') goto yy2142; + if (yych == '2') goto yy2184; goto yy11; -yy2069: +yy2111: yych = *++cursor_; - if (yych == '4') goto yy2144; + if (yych == '4') goto yy2186; goto yy11; -yy2070: +yy2112: yych = *++cursor_; - if (yych == '2') goto yy2146; + if (yych == '2') goto yy2188; goto yy11; -yy2071: +yy2113: yych = *++cursor_; - if (yych == '4') goto yy2148; + if (yych == '4') goto yy2190; goto yy11; -yy2072: +yy2114: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 532 "src/wast-lexer.cc" +#line 539 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I32X4ExtractLane); } -#line 10388 "src/prebuilt/wast-lexer-gen.cc" -yy2074: +#line 10584 "src/prebuilt/wast-lexer-gen.cc" +yy2116: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 538 "src/wast-lexer.cc" +#line 545 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I32X4ReplaceLane); } -#line 10396 "src/prebuilt/wast-lexer-gen.cc" -yy2076: +#line 10592 "src/prebuilt/wast-lexer-gen.cc" +yy2118: yych = *++cursor_; - if (yych == '4') goto yy2150; + if (yych == '4') goto yy2192; goto yy11; -yy2077: +yy2119: yych = *++cursor_; - if (yych == '4') goto yy2151; + if (yych == '4') goto yy2193; goto yy11; -yy2078: +yy2120: yych = *++cursor_; - if (yych == 'u') goto yy2152; + if (yych == 'u') goto yy2194; goto yy11; -yy2079: +yy2121: yych = *++cursor_; - if (yych == 'u') goto yy2154; + if (yych == 'u') goto yy2196; goto yy11; -yy2080: +yy2122: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 460 "src/wast-lexer.cc" +#line 467 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I64AtomicLoad8U); } -#line 10420 "src/prebuilt/wast-lexer-gen.cc" -yy2082: +#line 10616 "src/prebuilt/wast-lexer-gen.cc" +yy2124: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 471 "src/wast-lexer.cc" +#line 478 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAdd); } -#line 10428 "src/prebuilt/wast-lexer-gen.cc" -yy2084: +#line 10624 "src/prebuilt/wast-lexer-gen.cc" +yy2126: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 485 "src/wast-lexer.cc" +#line 492 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAnd); } -#line 10436 "src/prebuilt/wast-lexer-gen.cc" -yy2086: +#line 10632 "src/prebuilt/wast-lexer-gen.cc" +yy2128: yych = *++cursor_; - if (yych == 'x') goto yy2156; + if (yych == 'x') goto yy2198; goto yy11; -yy2087: +yy2129: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 478 "src/wast-lexer.cc" +#line 485 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwSub); } -#line 10448 "src/prebuilt/wast-lexer-gen.cc" -yy2089: +#line 10644 "src/prebuilt/wast-lexer-gen.cc" +yy2131: yych = *++cursor_; - if (yych == 'g') goto yy2157; + if (yych == 'g') goto yy2199; goto yy11; -yy2090: +yy2132: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 499 "src/wast-lexer.cc" +#line 506 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXor); } -#line 10460 "src/prebuilt/wast-lexer-gen.cc" -yy2092: +#line 10656 "src/prebuilt/wast-lexer-gen.cc" +yy2134: yych = *++cursor_; - if (yych == '.') goto yy2159; + if (yych == '.') goto yy2201; goto yy11; -yy2093: +yy2135: yych = *++cursor_; - if (yych == '.') goto yy2160; + if (yych == '.') goto yy2202; goto yy11; -yy2094: +yy2136: yych = *++cursor_; switch (yych) { - case 'a': goto yy2161; - case 'c': goto yy2162; - case 'o': goto yy2163; - case 's': goto yy2164; - case 'x': goto yy2165; + case 'a': goto yy2203; + case 'c': goto yy2204; + case 'o': goto yy2205; + case 's': goto yy2206; + case 'x': goto yy2207; default: goto yy11; } -yy2095: +yy2137: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 468 "src/wast-lexer.cc" +#line 475 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I64AtomicStore16); } -#line 10486 "src/prebuilt/wast-lexer-gen.cc" -yy2097: +#line 10682 "src/prebuilt/wast-lexer-gen.cc" +yy2139: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 469 "src/wast-lexer.cc" +#line 476 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicStore, I64AtomicStore32); } -#line 10494 "src/prebuilt/wast-lexer-gen.cc" -yy2099: +#line 10690 "src/prebuilt/wast-lexer-gen.cc" +yy2141: yych = *++cursor_; - if (yych == '4') goto yy2166; + if (yych == '4') goto yy2208; goto yy11; -yy2100: +yy2142: yych = *++cursor_; - if (yych == '2') goto yy2168; + if (yych == '2') goto yy2210; goto yy11; -yy2101: +yy2143: yych = *++cursor_; - if (yych == '4') goto yy2170; + if (yych == '4') goto yy2212; goto yy11; -yy2102: +yy2144: yych = *++cursor_; - if (yych == '2') goto yy2172; + if (yych == '2') goto yy2214; goto yy11; -yy2103: +yy2145: yych = *++cursor_; - if (yych == '4') goto yy2174; + if (yych == '4') goto yy2216; goto yy11; -yy2104: +yy2146: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 533 "src/wast-lexer.cc" +#line 540 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I64X2ExtractLane); } -#line 10522 "src/prebuilt/wast-lexer-gen.cc" -yy2106: +#line 10718 "src/prebuilt/wast-lexer-gen.cc" +yy2148: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 539 "src/wast-lexer.cc" +#line 546 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I64X2ReplaceLane); } -#line 10530 "src/prebuilt/wast-lexer-gen.cc" -yy2108: +#line 10726 "src/prebuilt/wast-lexer-gen.cc" +yy2150: yych = *++cursor_; - if (yych == '2') goto yy2176; + if (yych == '2') goto yy2218; goto yy11; -yy2109: +yy2151: yych = *++cursor_; - if (yych == '2') goto yy2177; + if (yych == '2') goto yy2219; goto yy11; -yy2110: +yy2152: yych = *++cursor_; - if (yych == '_') goto yy2178; + if (yych == '_') goto yy2220; goto yy11; -yy2111: +yy2153: yych = *++cursor_; - if (yych == '_') goto yy2179; + if (yych == '_') goto yy2221; goto yy11; -yy2112: +yy2154: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 536 "src/wast-lexer.cc" +#line 543 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I8X16ReplaceLane); } -#line 10554 "src/prebuilt/wast-lexer-gen.cc" -yy2114: +#line 10750 "src/prebuilt/wast-lexer-gen.cc" +yy2156: yych = *++cursor_; - if (yych == '_') goto yy2180; + if (yych == '_') goto yy2222; goto yy11; -yy2115: +yy2157: yych = *++cursor_; - if (yych == 'c') goto yy2181; + if (yych == 'c') goto yy2223; goto yy11; -yy2116: +yy2158: yych = *++cursor_; - if (yych == 'm') goto yy2182; + if (yych == 'm') goto yy2224; goto yy11; -yy2117: +yy2159: yych = *++cursor_; - if (yych == 'i') goto yy2183; + if (yych == 'i') goto yy2225; goto yy11; -yy2118: +yy2160: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 442 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ReinterpretI32); } -#line 10578 "src/prebuilt/wast-lexer-gen.cc" -yy2120: +#line 10774 "src/prebuilt/wast-lexer-gen.cc" +yy2162: yych = *++cursor_; - if (yych == 'x') goto yy2184; + if (yych == 'x') goto yy2226; goto yy11; -yy2121: +yy2163: yych = *++cursor_; - if (yych == 'x') goto yy2185; + if (yych == 'x') goto yy2227; goto yy11; -yy2122: +yy2164: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 444 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ReinterpretI64); } -#line 10594 "src/prebuilt/wast-lexer-gen.cc" -yy2124: +#line 10790 "src/prebuilt/wast-lexer-gen.cc" +yy2166: yych = *++cursor_; - if (yych == 'x') goto yy2186; + if (yych == 'x') goto yy2228; goto yy11; -yy2125: +yy2167: yych = *++cursor_; - if (yych == 'x') goto yy2187; + if (yych == 'x') goto yy2229; goto yy11; -yy2126: +yy2168: yych = *++cursor_; - if (yych == 's') goto yy2188; - if (yych == 'u') goto yy2190; + if (yych == 's') goto yy2230; + if (yych == 'u') goto yy2232; goto yy11; -yy2127: +yy2169: yych = *++cursor_; - if (yych == 's') goto yy2192; - if (yych == 'u') goto yy2194; + if (yych == 's') goto yy2234; + if (yych == 'u') goto yy2236; goto yy11; -yy2128: +yy2170: yych = *++cursor_; - if (yych == 's') goto yy2196; - if (yych == 'u') goto yy2198; + if (yych == 's') goto yy2238; + if (yych == 'u') goto yy2240; goto yy11; -yy2129: +yy2171: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 459 "src/wast-lexer.cc" +#line 466 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I32AtomicLoad16U); } -#line 10625 "src/prebuilt/wast-lexer-gen.cc" -yy2131: +#line 10821 "src/prebuilt/wast-lexer-gen.cc" +yy2173: yych = *++cursor_; - if (yych == 'c') goto yy2200; + if (yych == 'c') goto yy2242; goto yy11; -yy2132: +yy2174: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 505 "src/wast-lexer.cc" +#line 512 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXchg); } -#line 10637 "src/prebuilt/wast-lexer-gen.cc" -yy2134: +#line 10833 "src/prebuilt/wast-lexer-gen.cc" +yy2176: yych = *++cursor_; switch (yych) { - case 'a': goto yy2201; - case 'c': goto yy2202; - case 'o': goto yy2203; - case 's': goto yy2204; - case 'x': goto yy2205; + case 'a': goto yy2243; + case 'c': goto yy2244; + case 'o': goto yy2245; + case 's': goto yy2246; + case 'x': goto yy2247; default: goto yy11; } -yy2135: +yy2177: yych = *++cursor_; - if (yych == 'd') goto yy2206; - if (yych == 'n') goto yy2207; + if (yych == 'd') goto yy2248; + if (yych == 'n') goto yy2249; goto yy11; -yy2136: +yy2178: yych = *++cursor_; - if (yych == 'm') goto yy2208; + if (yych == 'm') goto yy2250; goto yy11; -yy2137: +yy2179: yych = *++cursor_; - if (yych == 'r') goto yy2209; + if (yych == 'r') goto yy2251; goto yy11; -yy2138: +yy2180: yych = *++cursor_; - if (yych == 'u') goto yy2211; + if (yych == 'u') goto yy2253; goto yy11; -yy2139: +yy2181: yych = *++cursor_; - if (yych == 'c') goto yy2212; - if (yych == 'o') goto yy2213; + if (yych == 'c') goto yy2254; + if (yych == 'o') goto yy2255; goto yy11; -yy2140: +yy2182: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 443 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32ReinterpretF32); } -#line 10677 "src/prebuilt/wast-lexer-gen.cc" -yy2142: +#line 10873 "src/prebuilt/wast-lexer-gen.cc" +yy2184: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 424 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSSatF32); } -#line 10685 "src/prebuilt/wast-lexer-gen.cc" -yy2144: +#line 10881 "src/prebuilt/wast-lexer-gen.cc" +yy2186: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 426 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSSatF64); } -#line 10693 "src/prebuilt/wast-lexer-gen.cc" -yy2146: +#line 10889 "src/prebuilt/wast-lexer-gen.cc" +yy2188: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 428 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUSatF32); } -#line 10701 "src/prebuilt/wast-lexer-gen.cc" -yy2148: +#line 10897 "src/prebuilt/wast-lexer-gen.cc" +yy2190: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 430 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUSatF64); } -#line 10709 "src/prebuilt/wast-lexer-gen.cc" -yy2150: +#line 10905 "src/prebuilt/wast-lexer-gen.cc" +yy2192: yych = *++cursor_; - if (yych == ':') goto yy2214; + if (yych == ':') goto yy2256; goto yy11; -yy2151: +yy2193: yych = *++cursor_; - if (yych == ':') goto yy2215; + if (yych == ':') goto yy2257; goto yy11; -yy2152: +yy2194: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 461 "src/wast-lexer.cc" +#line 468 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I64AtomicLoad16U); } -#line 10725 "src/prebuilt/wast-lexer-gen.cc" -yy2154: +#line 10921 "src/prebuilt/wast-lexer-gen.cc" +yy2196: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 462 "src/wast-lexer.cc" +#line 469 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicLoad, I64AtomicLoad32U); } -#line 10733 "src/prebuilt/wast-lexer-gen.cc" -yy2156: +#line 10929 "src/prebuilt/wast-lexer-gen.cc" +yy2198: yych = *++cursor_; - if (yych == 'c') goto yy2216; + if (yych == 'c') goto yy2258; goto yy11; -yy2157: +yy2199: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 506 "src/wast-lexer.cc" +#line 513 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXchg); } -#line 10745 "src/prebuilt/wast-lexer-gen.cc" -yy2159: +#line 10941 "src/prebuilt/wast-lexer-gen.cc" +yy2201: yych = *++cursor_; switch (yych) { - case 'a': goto yy2217; - case 'c': goto yy2218; - case 'o': goto yy2219; - case 's': goto yy2220; - case 'x': goto yy2221; + case 'a': goto yy2259; + case 'c': goto yy2260; + case 'o': goto yy2261; + case 's': goto yy2262; + case 'x': goto yy2263; default: goto yy11; } -yy2160: +yy2202: yych = *++cursor_; switch (yych) { - case 'a': goto yy2222; - case 'c': goto yy2223; - case 'o': goto yy2224; - case 's': goto yy2225; - case 'x': goto yy2226; + case 'a': goto yy2264; + case 'c': goto yy2265; + case 'o': goto yy2266; + case 's': goto yy2267; + case 'x': goto yy2268; default: goto yy11; } -yy2161: +yy2203: yych = *++cursor_; - if (yych == 'd') goto yy2227; - if (yych == 'n') goto yy2228; + if (yych == 'd') goto yy2269; + if (yych == 'n') goto yy2270; goto yy11; -yy2162: +yy2204: yych = *++cursor_; - if (yych == 'm') goto yy2229; + if (yych == 'm') goto yy2271; goto yy11; -yy2163: +yy2205: yych = *++cursor_; - if (yych == 'r') goto yy2230; + if (yych == 'r') goto yy2272; goto yy11; -yy2164: +yy2206: yych = *++cursor_; - if (yych == 'u') goto yy2232; + if (yych == 'u') goto yy2274; goto yy11; -yy2165: +yy2207: yych = *++cursor_; - if (yych == 'c') goto yy2233; - if (yych == 'o') goto yy2234; + if (yych == 'c') goto yy2275; + if (yych == 'o') goto yy2276; goto yy11; -yy2166: +yy2208: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 445 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64ReinterpretF64); } -#line 10795 "src/prebuilt/wast-lexer-gen.cc" -yy2168: +#line 10991 "src/prebuilt/wast-lexer-gen.cc" +yy2210: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 425 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSSatF32); } -#line 10803 "src/prebuilt/wast-lexer-gen.cc" -yy2170: +#line 10999 "src/prebuilt/wast-lexer-gen.cc" +yy2212: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 427 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSSatF64); } -#line 10811 "src/prebuilt/wast-lexer-gen.cc" -yy2172: +#line 11007 "src/prebuilt/wast-lexer-gen.cc" +yy2214: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 429 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUSatF32); } -#line 10819 "src/prebuilt/wast-lexer-gen.cc" -yy2174: +#line 11015 "src/prebuilt/wast-lexer-gen.cc" +yy2216: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } #line 431 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUSatF64); } -#line 10827 "src/prebuilt/wast-lexer-gen.cc" -yy2176: +#line 11023 "src/prebuilt/wast-lexer-gen.cc" +yy2218: yych = *++cursor_; - if (yych == ':') goto yy2235; + if (yych == ':') goto yy2277; goto yy11; -yy2177: +yy2219: yych = *++cursor_; - if (yych == ':') goto yy2236; + if (yych == ':') goto yy2278; goto yy11; -yy2178: +yy2220: yych = *++cursor_; - if (yych == 's') goto yy2237; - if (yych == 'u') goto yy2239; + if (yych == 's') goto yy2279; + if (yych == 'u') goto yy2281; goto yy11; -yy2179: +yy2221: yych = *++cursor_; - if (yych == 's') goto yy2241; - if (yych == 'u') goto yy2243; + if (yych == 's') goto yy2283; + if (yych == 'u') goto yy2285; goto yy11; -yy2180: +yy2222: yych = *++cursor_; - if (yych == 's') goto yy2245; - if (yych == 'u') goto yy2247; + if (yych == 's') goto yy2287; + if (yych == 'u') goto yy2289; goto yy11; -yy2181: +yy2223: yych = *++cursor_; - if (yych == 't') goto yy2249; + if (yych == 't') goto yy2291; goto yy11; -yy2182: +yy2224: yych = *++cursor_; - if (yych == 'e') goto yy2251; + if (yych == 'e') goto yy2293; goto yy11; -yy2183: +yy2225: yych = *++cursor_; - if (yych == 'c') goto yy2252; + if (yych == 'c') goto yy2294; goto yy11; -yy2184: +yy2226: yych = *++cursor_; - if (yych == '4') goto yy2253; + if (yych == '4') goto yy2295; goto yy11; -yy2185: +yy2227: yych = *++cursor_; - if (yych == '4') goto yy2255; + if (yych == '4') goto yy2297; goto yy11; -yy2186: +yy2228: yych = *++cursor_; - if (yych == '2') goto yy2257; + if (yych == '2') goto yy2299; goto yy11; -yy2187: +yy2229: yych = *++cursor_; - if (yych == '2') goto yy2259; + if (yych == '2') goto yy2301; goto yy11; -yy2188: +yy2230: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 560 "src/wast-lexer.cc" +#line 567 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8AddSaturateS); } -#line 10886 "src/prebuilt/wast-lexer-gen.cc" -yy2190: +#line 11082 "src/prebuilt/wast-lexer-gen.cc" +yy2232: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 561 "src/wast-lexer.cc" +#line 568 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8AddSaturateU); } -#line 10894 "src/prebuilt/wast-lexer-gen.cc" -yy2192: +#line 11090 "src/prebuilt/wast-lexer-gen.cc" +yy2234: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 530 "src/wast-lexer.cc" +#line 537 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I16X8ExtractLaneS); } -#line 10902 "src/prebuilt/wast-lexer-gen.cc" -yy2194: +#line 11098 "src/prebuilt/wast-lexer-gen.cc" +yy2236: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 531 "src/wast-lexer.cc" +#line 538 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I16X8ExtractLaneU); } -#line 10910 "src/prebuilt/wast-lexer-gen.cc" -yy2196: +#line 11106 "src/prebuilt/wast-lexer-gen.cc" +yy2238: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 564 "src/wast-lexer.cc" +#line 571 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8SubSaturateS); } -#line 10918 "src/prebuilt/wast-lexer-gen.cc" -yy2198: +#line 11114 "src/prebuilt/wast-lexer-gen.cc" +yy2240: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 565 "src/wast-lexer.cc" +#line 572 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8SubSaturateU); } -#line 10926 "src/prebuilt/wast-lexer-gen.cc" -yy2200: +#line 11122 "src/prebuilt/wast-lexer-gen.cc" +yy2242: yych = *++cursor_; - if (yych == 'h') goto yy2261; + if (yych == 'h') goto yy2303; goto yy11; -yy2201: +yy2243: yych = *++cursor_; - if (yych == 'd') goto yy2262; - if (yych == 'n') goto yy2263; + if (yych == 'd') goto yy2304; + if (yych == 'n') goto yy2305; goto yy11; -yy2202: +yy2244: yych = *++cursor_; - if (yych == 'm') goto yy2264; + if (yych == 'm') goto yy2306; goto yy11; -yy2203: +yy2245: yych = *++cursor_; - if (yych == 'r') goto yy2265; + if (yych == 'r') goto yy2307; goto yy11; -yy2204: +yy2246: yych = *++cursor_; - if (yych == 'u') goto yy2267; + if (yych == 'u') goto yy2309; goto yy11; -yy2205: +yy2247: yych = *++cursor_; - if (yych == 'c') goto yy2268; - if (yych == 'o') goto yy2269; + if (yych == 'c') goto yy2310; + if (yych == 'o') goto yy2311; goto yy11; -yy2206: +yy2248: yych = *++cursor_; - if (yych == 'd') goto yy2270; + if (yych == 'd') goto yy2312; goto yy11; -yy2207: +yy2249: yych = *++cursor_; - if (yych == 'd') goto yy2272; + if (yych == 'd') goto yy2314; goto yy11; -yy2208: +yy2250: yych = *++cursor_; - if (yych == 'p') goto yy2274; + if (yych == 'p') goto yy2316; goto yy11; -yy2209: +yy2251: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 493 "src/wast-lexer.cc" +#line 500 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UOr); } -#line 10972 "src/prebuilt/wast-lexer-gen.cc" -yy2211: +#line 11168 "src/prebuilt/wast-lexer-gen.cc" +yy2253: yych = *++cursor_; - if (yych == 'b') goto yy2275; + if (yych == 'b') goto yy2317; goto yy11; -yy2212: +yy2254: yych = *++cursor_; - if (yych == 'h') goto yy2277; + if (yych == 'h') goto yy2319; goto yy11; -yy2213: +yy2255: yych = *++cursor_; - if (yych == 'r') goto yy2278; + if (yych == 'r') goto yy2320; goto yy11; -yy2214: +yy2256: yych = *++cursor_; - if (yych == 's') goto yy2280; + if (yych == 's') goto yy2322; goto yy11; -yy2215: +yy2257: yych = *++cursor_; - if (yych == 's') goto yy2281; + if (yych == 's') goto yy2323; goto yy11; -yy2216: +yy2258: yych = *++cursor_; - if (yych == 'h') goto yy2282; + if (yych == 'h') goto yy2324; goto yy11; -yy2217: +yy2259: yych = *++cursor_; - if (yych == 'd') goto yy2283; - if (yych == 'n') goto yy2284; + if (yych == 'd') goto yy2325; + if (yych == 'n') goto yy2326; goto yy11; -yy2218: +yy2260: yych = *++cursor_; - if (yych == 'm') goto yy2285; + if (yych == 'm') goto yy2327; goto yy11; -yy2219: +yy2261: yych = *++cursor_; - if (yych == 'r') goto yy2286; + if (yych == 'r') goto yy2328; goto yy11; -yy2220: +yy2262: yych = *++cursor_; - if (yych == 'u') goto yy2288; + if (yych == 'u') goto yy2330; goto yy11; -yy2221: +yy2263: yych = *++cursor_; - if (yych == 'c') goto yy2289; - if (yych == 'o') goto yy2290; + if (yych == 'c') goto yy2331; + if (yych == 'o') goto yy2332; goto yy11; -yy2222: +yy2264: yych = *++cursor_; - if (yych == 'd') goto yy2291; - if (yych == 'n') goto yy2292; + if (yych == 'd') goto yy2333; + if (yych == 'n') goto yy2334; goto yy11; -yy2223: +yy2265: yych = *++cursor_; - if (yych == 'm') goto yy2293; + if (yych == 'm') goto yy2335; goto yy11; -yy2224: +yy2266: yych = *++cursor_; - if (yych == 'r') goto yy2294; + if (yych == 'r') goto yy2336; goto yy11; -yy2225: +yy2267: yych = *++cursor_; - if (yych == 'u') goto yy2296; + if (yych == 'u') goto yy2338; goto yy11; -yy2226: +yy2268: yych = *++cursor_; - if (yych == 'c') goto yy2297; - if (yych == 'o') goto yy2298; + if (yych == 'c') goto yy2339; + if (yych == 'o') goto yy2340; goto yy11; -yy2227: +yy2269: yych = *++cursor_; - if (yych == 'd') goto yy2299; + if (yych == 'd') goto yy2341; goto yy11; -yy2228: +yy2270: yych = *++cursor_; - if (yych == 'd') goto yy2301; + if (yych == 'd') goto yy2343; goto yy11; -yy2229: +yy2271: yych = *++cursor_; - if (yych == 'p') goto yy2303; + if (yych == 'p') goto yy2345; goto yy11; -yy2230: +yy2272: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 495 "src/wast-lexer.cc" +#line 502 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UOr); } -#line 11060 "src/prebuilt/wast-lexer-gen.cc" -yy2232: +#line 11256 "src/prebuilt/wast-lexer-gen.cc" +yy2274: yych = *++cursor_; - if (yych == 'b') goto yy2304; + if (yych == 'b') goto yy2346; goto yy11; -yy2233: +yy2275: yych = *++cursor_; - if (yych == 'h') goto yy2306; + if (yych == 'h') goto yy2348; goto yy11; -yy2234: +yy2276: yych = *++cursor_; - if (yych == 'r') goto yy2307; + if (yych == 'r') goto yy2349; goto yy11; -yy2235: +yy2277: yych = *++cursor_; - if (yych == 's') goto yy2309; + if (yych == 's') goto yy2351; goto yy11; -yy2236: +yy2278: yych = *++cursor_; - if (yych == 's') goto yy2310; + if (yych == 's') goto yy2352; goto yy11; -yy2237: +yy2279: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 558 "src/wast-lexer.cc" +#line 565 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16AddSaturateS); } -#line 11088 "src/prebuilt/wast-lexer-gen.cc" -yy2239: +#line 11284 "src/prebuilt/wast-lexer-gen.cc" +yy2281: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 559 "src/wast-lexer.cc" +#line 566 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16AddSaturateU); } -#line 11096 "src/prebuilt/wast-lexer-gen.cc" -yy2241: +#line 11292 "src/prebuilt/wast-lexer-gen.cc" +yy2283: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 528 "src/wast-lexer.cc" +#line 535 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I8X16ExtractLaneS); } -#line 11104 "src/prebuilt/wast-lexer-gen.cc" -yy2243: +#line 11300 "src/prebuilt/wast-lexer-gen.cc" +yy2285: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 529 "src/wast-lexer.cc" +#line 536 "src/wast-lexer.cc" { RETURN_OPCODE(SimdLaneOp, I8X16ExtractLaneU); } -#line 11112 "src/prebuilt/wast-lexer-gen.cc" -yy2245: +#line 11308 "src/prebuilt/wast-lexer-gen.cc" +yy2287: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 562 "src/wast-lexer.cc" +#line 569 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16SubSaturateS); } -#line 11120 "src/prebuilt/wast-lexer-gen.cc" -yy2247: +#line 11316 "src/prebuilt/wast-lexer-gen.cc" +yy2289: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 563 "src/wast-lexer.cc" +#line 570 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16SubSaturateU); } -#line 11128 "src/prebuilt/wast-lexer-gen.cc" -yy2249: +#line 11324 "src/prebuilt/wast-lexer-gen.cc" +yy2291: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 660 "src/wast-lexer.cc" +#line 667 "src/wast-lexer.cc" { RETURN_OPCODE0(ReturnCallIndirect); } -#line 11136 "src/prebuilt/wast-lexer-gen.cc" -yy2251: +#line 11332 "src/prebuilt/wast-lexer-gen.cc" +yy2293: yych = *++cursor_; - if (yych == 't') goto yy2311; + if (yych == 't') goto yy2353; goto yy11; -yy2252: +yy2294: yych = *++cursor_; - if (yych == 'a') goto yy2312; + if (yych == 'a') goto yy2354; goto yy11; -yy2253: +yy2295: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 651 "src/wast-lexer.cc" +#line 658 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4ConvertSI32X4); } -#line 11152 "src/prebuilt/wast-lexer-gen.cc" -yy2255: +#line 11348 "src/prebuilt/wast-lexer-gen.cc" +yy2297: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 652 "src/wast-lexer.cc" +#line 659 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4ConvertUI32X4); } -#line 11160 "src/prebuilt/wast-lexer-gen.cc" -yy2257: +#line 11356 "src/prebuilt/wast-lexer-gen.cc" +yy2299: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 653 "src/wast-lexer.cc" +#line 660 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2ConvertSI64X2); } -#line 11168 "src/prebuilt/wast-lexer-gen.cc" -yy2259: +#line 11364 "src/prebuilt/wast-lexer-gen.cc" +yy2301: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 654 "src/wast-lexer.cc" +#line 661 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2ConvertUI64X2); } -#line 11176 "src/prebuilt/wast-lexer-gen.cc" -yy2261: +#line 11372 "src/prebuilt/wast-lexer-gen.cc" +yy2303: yych = *++cursor_; - if (yych == 'g') goto yy2313; + if (yych == 'g') goto yy2355; goto yy11; -yy2262: +yy2304: yych = *++cursor_; - if (yych == 'd') goto yy2315; + if (yych == 'd') goto yy2357; goto yy11; -yy2263: +yy2305: yych = *++cursor_; - if (yych == 'd') goto yy2317; + if (yych == 'd') goto yy2359; goto yy11; -yy2264: +yy2306: yych = *++cursor_; - if (yych == 'p') goto yy2319; + if (yych == 'p') goto yy2361; goto yy11; -yy2265: +yy2307: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 494 "src/wast-lexer.cc" +#line 501 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UOr); } -#line 11200 "src/prebuilt/wast-lexer-gen.cc" -yy2267: +#line 11396 "src/prebuilt/wast-lexer-gen.cc" +yy2309: yych = *++cursor_; - if (yych == 'b') goto yy2320; + if (yych == 'b') goto yy2362; goto yy11; -yy2268: +yy2310: yych = *++cursor_; - if (yych == 'h') goto yy2322; + if (yych == 'h') goto yy2364; goto yy11; -yy2269: +yy2311: yych = *++cursor_; - if (yych == 'r') goto yy2323; + if (yych == 'r') goto yy2365; goto yy11; -yy2270: +yy2312: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 472 "src/wast-lexer.cc" +#line 479 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAdd); } -#line 11220 "src/prebuilt/wast-lexer-gen.cc" -yy2272: +#line 11416 "src/prebuilt/wast-lexer-gen.cc" +yy2314: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 486 "src/wast-lexer.cc" +#line 493 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAnd); } -#line 11228 "src/prebuilt/wast-lexer-gen.cc" -yy2274: +#line 11424 "src/prebuilt/wast-lexer-gen.cc" +yy2316: yych = *++cursor_; - if (yych == 'x') goto yy2325; + if (yych == 'x') goto yy2367; goto yy11; -yy2275: +yy2317: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 479 "src/wast-lexer.cc" +#line 486 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8USub); } -#line 11240 "src/prebuilt/wast-lexer-gen.cc" -yy2277: +#line 11436 "src/prebuilt/wast-lexer-gen.cc" +yy2319: yych = *++cursor_; - if (yych == 'g') goto yy2326; + if (yych == 'g') goto yy2368; goto yy11; -yy2278: +yy2320: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 500 "src/wast-lexer.cc" +#line 507 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXor); } -#line 11252 "src/prebuilt/wast-lexer-gen.cc" -yy2280: +#line 11448 "src/prebuilt/wast-lexer-gen.cc" +yy2322: yych = *++cursor_; - if (yych == 'a') goto yy2328; + if (yych == 'a') goto yy2370; goto yy11; -yy2281: +yy2323: yych = *++cursor_; - if (yych == 'a') goto yy2329; + if (yych == 'a') goto yy2371; goto yy11; -yy2282: +yy2324: yych = *++cursor_; - if (yych == 'g') goto yy2330; + if (yych == 'g') goto yy2372; goto yy11; -yy2283: +yy2325: yych = *++cursor_; - if (yych == 'd') goto yy2332; + if (yych == 'd') goto yy2374; goto yy11; -yy2284: +yy2326: yych = *++cursor_; - if (yych == 'd') goto yy2334; + if (yych == 'd') goto yy2376; goto yy11; -yy2285: +yy2327: yych = *++cursor_; - if (yych == 'p') goto yy2336; + if (yych == 'p') goto yy2378; goto yy11; -yy2286: +yy2328: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 496 "src/wast-lexer.cc" +#line 503 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UOr); } -#line 11284 "src/prebuilt/wast-lexer-gen.cc" -yy2288: +#line 11480 "src/prebuilt/wast-lexer-gen.cc" +yy2330: yych = *++cursor_; - if (yych == 'b') goto yy2337; + if (yych == 'b') goto yy2379; goto yy11; -yy2289: +yy2331: yych = *++cursor_; - if (yych == 'h') goto yy2339; + if (yych == 'h') goto yy2381; goto yy11; -yy2290: +yy2332: yych = *++cursor_; - if (yych == 'r') goto yy2340; + if (yych == 'r') goto yy2382; goto yy11; -yy2291: +yy2333: yych = *++cursor_; - if (yych == 'd') goto yy2342; + if (yych == 'd') goto yy2384; goto yy11; -yy2292: +yy2334: yych = *++cursor_; - if (yych == 'd') goto yy2344; + if (yych == 'd') goto yy2386; goto yy11; -yy2293: +yy2335: yych = *++cursor_; - if (yych == 'p') goto yy2346; + if (yych == 'p') goto yy2388; goto yy11; -yy2294: +yy2336: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 497 "src/wast-lexer.cc" +#line 504 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UOr); } -#line 11316 "src/prebuilt/wast-lexer-gen.cc" -yy2296: +#line 11512 "src/prebuilt/wast-lexer-gen.cc" +yy2338: yych = *++cursor_; - if (yych == 'b') goto yy2347; + if (yych == 'b') goto yy2389; goto yy11; -yy2297: +yy2339: yych = *++cursor_; - if (yych == 'h') goto yy2349; + if (yych == 'h') goto yy2391; goto yy11; -yy2298: +yy2340: yych = *++cursor_; - if (yych == 'r') goto yy2350; + if (yych == 'r') goto yy2392; goto yy11; -yy2299: +yy2341: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 474 "src/wast-lexer.cc" +#line 481 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAdd); } -#line 11336 "src/prebuilt/wast-lexer-gen.cc" -yy2301: +#line 11532 "src/prebuilt/wast-lexer-gen.cc" +yy2343: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 488 "src/wast-lexer.cc" +#line 495 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAnd); } -#line 11344 "src/prebuilt/wast-lexer-gen.cc" -yy2303: +#line 11540 "src/prebuilt/wast-lexer-gen.cc" +yy2345: yych = *++cursor_; - if (yych == 'x') goto yy2352; + if (yych == 'x') goto yy2394; goto yy11; -yy2304: +yy2346: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 481 "src/wast-lexer.cc" +#line 488 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8USub); } -#line 11356 "src/prebuilt/wast-lexer-gen.cc" -yy2306: +#line 11552 "src/prebuilt/wast-lexer-gen.cc" +yy2348: yych = *++cursor_; - if (yych == 'g') goto yy2353; + if (yych == 'g') goto yy2395; goto yy11; -yy2307: +yy2349: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 502 "src/wast-lexer.cc" +#line 509 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXor); } -#line 11368 "src/prebuilt/wast-lexer-gen.cc" -yy2309: +#line 11564 "src/prebuilt/wast-lexer-gen.cc" +yy2351: yych = *++cursor_; - if (yych == 'a') goto yy2355; + if (yych == 'a') goto yy2397; goto yy11; -yy2310: +yy2352: yych = *++cursor_; - if (yych == 'a') goto yy2356; + if (yych == 'a') goto yy2398; goto yy11; -yy2311: +yy2353: yych = *++cursor_; - if (yych == 'i') goto yy2357; + if (yych == 'i') goto yy2399; goto yy11; -yy2312: +yy2354: yych = *++cursor_; - if (yych == 'l') goto yy2358; + if (yych == 'l') goto yy2400; goto yy11; -yy2313: +yy2355: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 512 "src/wast-lexer.cc" +#line 519 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmwCmpxchg); } -#line 11392 "src/prebuilt/wast-lexer-gen.cc" -yy2315: +#line 11588 "src/prebuilt/wast-lexer-gen.cc" +yy2357: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 473 "src/wast-lexer.cc" +#line 480 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAdd); } -#line 11400 "src/prebuilt/wast-lexer-gen.cc" -yy2317: +#line 11596 "src/prebuilt/wast-lexer-gen.cc" +yy2359: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 487 "src/wast-lexer.cc" +#line 494 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAnd); } -#line 11408 "src/prebuilt/wast-lexer-gen.cc" -yy2319: +#line 11604 "src/prebuilt/wast-lexer-gen.cc" +yy2361: yych = *++cursor_; - if (yych == 'x') goto yy2359; + if (yych == 'x') goto yy2401; goto yy11; -yy2320: +yy2362: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 480 "src/wast-lexer.cc" +#line 487 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16USub); } -#line 11420 "src/prebuilt/wast-lexer-gen.cc" -yy2322: +#line 11616 "src/prebuilt/wast-lexer-gen.cc" +yy2364: yych = *++cursor_; - if (yych == 'g') goto yy2360; + if (yych == 'g') goto yy2402; goto yy11; -yy2323: +yy2365: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 501 "src/wast-lexer.cc" +#line 508 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXor); } -#line 11432 "src/prebuilt/wast-lexer-gen.cc" -yy2325: +#line 11628 "src/prebuilt/wast-lexer-gen.cc" +yy2367: yych = *++cursor_; - if (yych == 'c') goto yy2362; + if (yych == 'c') goto yy2404; goto yy11; -yy2326: +yy2368: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 507 "src/wast-lexer.cc" +#line 514 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXchg); } -#line 11444 "src/prebuilt/wast-lexer-gen.cc" -yy2328: +#line 11640 "src/prebuilt/wast-lexer-gen.cc" +yy2370: yych = *++cursor_; - if (yych == 't') goto yy2363; + if (yych == 't') goto yy2405; goto yy11; -yy2329: +yy2371: yych = *++cursor_; - if (yych == 't') goto yy2365; + if (yych == 't') goto yy2407; goto yy11; -yy2330: +yy2372: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 513 "src/wast-lexer.cc" +#line 520 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmwCmpxchg); } -#line 11460 "src/prebuilt/wast-lexer-gen.cc" -yy2332: +#line 11656 "src/prebuilt/wast-lexer-gen.cc" +yy2374: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 475 "src/wast-lexer.cc" +#line 482 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAdd); } -#line 11468 "src/prebuilt/wast-lexer-gen.cc" -yy2334: +#line 11664 "src/prebuilt/wast-lexer-gen.cc" +yy2376: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 489 "src/wast-lexer.cc" +#line 496 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAnd); } -#line 11476 "src/prebuilt/wast-lexer-gen.cc" -yy2336: +#line 11672 "src/prebuilt/wast-lexer-gen.cc" +yy2378: yych = *++cursor_; - if (yych == 'x') goto yy2367; + if (yych == 'x') goto yy2409; goto yy11; -yy2337: +yy2379: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 482 "src/wast-lexer.cc" +#line 489 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16USub); } -#line 11488 "src/prebuilt/wast-lexer-gen.cc" -yy2339: +#line 11684 "src/prebuilt/wast-lexer-gen.cc" +yy2381: yych = *++cursor_; - if (yych == 'g') goto yy2368; + if (yych == 'g') goto yy2410; goto yy11; -yy2340: +yy2382: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 503 "src/wast-lexer.cc" +#line 510 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXor); } -#line 11500 "src/prebuilt/wast-lexer-gen.cc" -yy2342: +#line 11696 "src/prebuilt/wast-lexer-gen.cc" +yy2384: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 476 "src/wast-lexer.cc" +#line 483 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAdd); } -#line 11508 "src/prebuilt/wast-lexer-gen.cc" -yy2344: +#line 11704 "src/prebuilt/wast-lexer-gen.cc" +yy2386: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 490 "src/wast-lexer.cc" +#line 497 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAnd); } -#line 11516 "src/prebuilt/wast-lexer-gen.cc" -yy2346: +#line 11712 "src/prebuilt/wast-lexer-gen.cc" +yy2388: yych = *++cursor_; - if (yych == 'x') goto yy2370; + if (yych == 'x') goto yy2412; goto yy11; -yy2347: +yy2389: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 483 "src/wast-lexer.cc" +#line 490 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32USub); } -#line 11528 "src/prebuilt/wast-lexer-gen.cc" -yy2349: +#line 11724 "src/prebuilt/wast-lexer-gen.cc" +yy2391: yych = *++cursor_; - if (yych == 'g') goto yy2371; + if (yych == 'g') goto yy2413; goto yy11; -yy2350: +yy2392: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 504 "src/wast-lexer.cc" +#line 511 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXor); } -#line 11540 "src/prebuilt/wast-lexer-gen.cc" -yy2352: +#line 11736 "src/prebuilt/wast-lexer-gen.cc" +yy2394: yych = *++cursor_; - if (yych == 'c') goto yy2373; + if (yych == 'c') goto yy2415; goto yy11; -yy2353: +yy2395: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 509 "src/wast-lexer.cc" +#line 516 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXchg); } -#line 11552 "src/prebuilt/wast-lexer-gen.cc" -yy2355: +#line 11748 "src/prebuilt/wast-lexer-gen.cc" +yy2397: yych = *++cursor_; - if (yych == 't') goto yy2374; + if (yych == 't') goto yy2416; goto yy11; -yy2356: +yy2398: yych = *++cursor_; - if (yych == 't') goto yy2376; + if (yych == 't') goto yy2418; goto yy11; -yy2357: +yy2399: yych = *++cursor_; - if (yych == 'c') goto yy2378; + if (yych == 'c') goto yy2420; goto yy11; -yy2358: +yy2400: yych = *++cursor_; - if (yych == '_') goto yy2379; + if (yych == '_') goto yy2421; goto yy11; -yy2359: +yy2401: yych = *++cursor_; - if (yych == 'c') goto yy2380; + if (yych == 'c') goto yy2422; goto yy11; -yy2360: +yy2402: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 508 "src/wast-lexer.cc" +#line 515 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXchg); } -#line 11580 "src/prebuilt/wast-lexer-gen.cc" -yy2362: +#line 11776 "src/prebuilt/wast-lexer-gen.cc" +yy2404: yych = *++cursor_; - if (yych == 'h') goto yy2381; + if (yych == 'h') goto yy2423; goto yy11; -yy2363: +yy2405: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 655 "src/wast-lexer.cc" +#line 662 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4TruncSF32X4Sat); } -#line 11592 "src/prebuilt/wast-lexer-gen.cc" -yy2365: +#line 11788 "src/prebuilt/wast-lexer-gen.cc" +yy2407: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 656 "src/wast-lexer.cc" +#line 663 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4TruncUF32X4Sat); } -#line 11600 "src/prebuilt/wast-lexer-gen.cc" -yy2367: +#line 11796 "src/prebuilt/wast-lexer-gen.cc" +yy2409: yych = *++cursor_; - if (yych == 'c') goto yy2382; + if (yych == 'c') goto yy2424; goto yy11; -yy2368: +yy2410: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 510 "src/wast-lexer.cc" +#line 517 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXchg); } -#line 11612 "src/prebuilt/wast-lexer-gen.cc" -yy2370: +#line 11808 "src/prebuilt/wast-lexer-gen.cc" +yy2412: yych = *++cursor_; - if (yych == 'c') goto yy2383; + if (yych == 'c') goto yy2425; goto yy11; -yy2371: +yy2413: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 511 "src/wast-lexer.cc" +#line 518 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXchg); } -#line 11624 "src/prebuilt/wast-lexer-gen.cc" -yy2373: +#line 11820 "src/prebuilt/wast-lexer-gen.cc" +yy2415: yych = *++cursor_; - if (yych == 'h') goto yy2384; + if (yych == 'h') goto yy2426; goto yy11; -yy2374: +yy2416: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 657 "src/wast-lexer.cc" +#line 664 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2TruncSF64X2Sat); } -#line 11636 "src/prebuilt/wast-lexer-gen.cc" -yy2376: +#line 11832 "src/prebuilt/wast-lexer-gen.cc" +yy2418: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 658 "src/wast-lexer.cc" +#line 665 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2TruncUF64X2Sat); } -#line 11644 "src/prebuilt/wast-lexer-gen.cc" -yy2378: +#line 11840 "src/prebuilt/wast-lexer-gen.cc" +yy2420: yych = *++cursor_; - if (yych == '_') goto yy2385; + if (yych == '_') goto yy2427; goto yy11; -yy2379: +yy2421: yych = *++cursor_; - if (yych == 'n') goto yy2386; + if (yych == 'n') goto yy2428; goto yy11; -yy2380: +yy2422: yych = *++cursor_; - if (yych == 'h') goto yy2387; + if (yych == 'h') goto yy2429; goto yy11; -yy2381: +yy2423: yych = *++cursor_; - if (yych == 'g') goto yy2388; + if (yych == 'g') goto yy2430; goto yy11; -yy2382: +yy2424: yych = *++cursor_; - if (yych == 'h') goto yy2390; + if (yych == 'h') goto yy2432; goto yy11; -yy2383: +yy2425: yych = *++cursor_; - if (yych == 'h') goto yy2391; + if (yych == 'h') goto yy2433; goto yy11; -yy2384: +yy2426: yych = *++cursor_; - if (yych == 'g') goto yy2392; + if (yych == 'g') goto yy2434; goto yy11; -yy2385: +yy2427: yych = *++cursor_; - if (yych == 'n') goto yy2394; + if (yych == 'n') goto yy2436; goto yy11; -yy2386: +yy2428: yych = *++cursor_; - if (yych == 'a') goto yy2395; + if (yych == 'a') goto yy2437; goto yy11; -yy2387: +yy2429: yych = *++cursor_; - if (yych == 'g') goto yy2396; + if (yych == 'g') goto yy2438; goto yy11; -yy2388: +yy2430: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 514 "src/wast-lexer.cc" +#line 521 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8UCmpxchg); } -#line 11692 "src/prebuilt/wast-lexer-gen.cc" -yy2390: +#line 11888 "src/prebuilt/wast-lexer-gen.cc" +yy2432: yych = *++cursor_; - if (yych == 'g') goto yy2398; + if (yych == 'g') goto yy2440; goto yy11; -yy2391: +yy2433: yych = *++cursor_; - if (yych == 'g') goto yy2400; + if (yych == 'g') goto yy2442; goto yy11; -yy2392: +yy2434: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 516 "src/wast-lexer.cc" +#line 523 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8UCmpxchg); } -#line 11708 "src/prebuilt/wast-lexer-gen.cc" -yy2394: +#line 11904 "src/prebuilt/wast-lexer-gen.cc" +yy2436: yych = *++cursor_; - if (yych == 'a') goto yy2402; + if (yych == 'a') goto yy2444; goto yy11; -yy2395: +yy2437: yych = *++cursor_; - if (yych == 'n') goto yy2403; + if (yych == 'n') goto yy2445; goto yy11; -yy2396: +yy2438: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 515 "src/wast-lexer.cc" +#line 522 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16UCmpxchg); } -#line 11724 "src/prebuilt/wast-lexer-gen.cc" -yy2398: +#line 11920 "src/prebuilt/wast-lexer-gen.cc" +yy2440: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 517 "src/wast-lexer.cc" +#line 524 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16UCmpxchg); } -#line 11732 "src/prebuilt/wast-lexer-gen.cc" -yy2400: +#line 11928 "src/prebuilt/wast-lexer-gen.cc" +yy2442: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 518 "src/wast-lexer.cc" +#line 525 "src/wast-lexer.cc" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32UCmpxchg); } -#line 11740 "src/prebuilt/wast-lexer-gen.cc" -yy2402: +#line 11936 "src/prebuilt/wast-lexer-gen.cc" +yy2444: yych = *++cursor_; - if (yych == 'n') goto yy2405; + if (yych == 'n') goto yy2447; goto yy11; -yy2403: +yy2445: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 687 "src/wast-lexer.cc" +#line 695 "src/wast-lexer.cc" { RETURN(AssertReturnCanonicalNan); } -#line 11752 "src/prebuilt/wast-lexer-gen.cc" -yy2405: +#line 11948 "src/prebuilt/wast-lexer-gen.cc" +yy2447: yych = *++cursor_; if (yybm[0+yych] & 8) { goto yy10; } -#line 688 "src/wast-lexer.cc" +#line 696 "src/wast-lexer.cc" { RETURN(AssertReturnArithmeticNan); } -#line 11760 "src/prebuilt/wast-lexer-gen.cc" +#line 11956 "src/prebuilt/wast-lexer-gen.cc" } /* *********************************** */ YYCOND_BAD_TEXT: @@ -11764,206 +11960,206 @@ YYCOND_BAD_TEXT: yych = *cursor_; if (yych <= 0x7F) { if (yych <= '!') { - if (yych == '\n') goto yy2411; - if (yych >= ' ') goto yy2413; + if (yych == '\n') goto yy2453; + if (yych >= ' ') goto yy2455; } else { - if (yych <= '"') goto yy2415; - if (yych == '\\') goto yy2417; - goto yy2413; + if (yych <= '"') goto yy2457; + if (yych == '\\') goto yy2459; + goto yy2455; } } else { if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2418; - if (yych <= 0xDF) goto yy2420; - if (yych <= 0xE0) goto yy2421; - goto yy2422; + if (yych <= 0xC1) goto yy2460; + if (yych <= 0xDF) goto yy2462; + if (yych <= 0xE0) goto yy2463; + goto yy2464; } else { - if (yych <= 0xF0) goto yy2423; - if (yych <= 0xF3) goto yy2424; - if (yych <= 0xF4) goto yy2425; - goto yy2418; + if (yych <= 0xF0) goto yy2465; + if (yych <= 0xF3) goto yy2466; + if (yych <= 0xF4) goto yy2467; + goto yy2460; } } ++cursor_; -yy2410: +yy2452: #line 252 "src/wast-lexer.cc" { ERROR("illegal character in string"); continue; } -#line 11793 "src/prebuilt/wast-lexer-gen.cc" -yy2411: +#line 11989 "src/prebuilt/wast-lexer-gen.cc" +yy2453: ++cursor_; BEGIN(YYCOND_i); #line 245 "src/wast-lexer.cc" { ERROR("newline in string"); NEWLINE; continue; } -#line 11801 "src/prebuilt/wast-lexer-gen.cc" -yy2413: +#line 11997 "src/prebuilt/wast-lexer-gen.cc" +yy2455: ++cursor_; #line 244 "src/wast-lexer.cc" { continue; } -#line 11806 "src/prebuilt/wast-lexer-gen.cc" -yy2415: +#line 12002 "src/prebuilt/wast-lexer-gen.cc" +yy2457: ++cursor_; BEGIN(YYCOND_i); #line 251 "src/wast-lexer.cc" { RETURN_TEXT(Text); } -#line 11812 "src/prebuilt/wast-lexer-gen.cc" -yy2417: +#line 12008 "src/prebuilt/wast-lexer-gen.cc" +yy2459: yyaccept = 0; yych = *(marker_ = ++cursor_); if (yych <= 'f') { if (yych <= '/') { if (yych <= '!') { - if (yych == '\n') goto yy2410; - goto yy2426; + if (yych == '\n') goto yy2452; + goto yy2468; } else { - if (yych <= '"') goto yy2413; - if (yych == '\'') goto yy2413; - goto yy2426; + if (yych <= '"') goto yy2455; + if (yych == '\'') goto yy2455; + goto yy2468; } } else { if (yych <= 'F') { - if (yych <= '9') goto yy2428; - if (yych <= '@') goto yy2426; - goto yy2428; + if (yych <= '9') goto yy2470; + if (yych <= '@') goto yy2468; + goto yy2470; } else { - if (yych == '\\') goto yy2413; - if (yych <= '`') goto yy2426; - goto yy2428; + if (yych == '\\') goto yy2455; + if (yych <= '`') goto yy2468; + goto yy2470; } } } else { if (yych <= 0x7F) { if (yych <= 'q') { - if (yych == 'n') goto yy2413; - goto yy2426; + if (yych == 'n') goto yy2455; + goto yy2468; } else { - if (yych == 's') goto yy2426; - if (yych <= 't') goto yy2413; - goto yy2426; + if (yych == 's') goto yy2468; + if (yych <= 't') goto yy2455; + goto yy2468; } } else { if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2410; - if (yych <= 0xDF) goto yy2429; - if (yych <= 0xE0) goto yy2431; - goto yy2432; + if (yych <= 0xC1) goto yy2452; + if (yych <= 0xDF) goto yy2471; + if (yych <= 0xE0) goto yy2473; + goto yy2474; } else { - if (yych <= 0xF0) goto yy2433; - if (yych <= 0xF3) goto yy2434; - if (yych <= 0xF4) goto yy2435; - goto yy2410; + if (yych <= 0xF0) goto yy2475; + if (yych <= 0xF3) goto yy2476; + if (yych <= 0xF4) goto yy2477; + goto yy2452; } } } -yy2418: +yy2460: ++cursor_; -yy2419: +yy2461: #line 254 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(" in string"); } -#line 11866 "src/prebuilt/wast-lexer-gen.cc" -yy2420: +#line 12062 "src/prebuilt/wast-lexer-gen.cc" +yy2462: yych = *++cursor_; - if (yych <= 0x7F) goto yy2419; - if (yych <= 0xBF) goto yy2413; - goto yy2419; -yy2421: + if (yych <= 0x7F) goto yy2461; + if (yych <= 0xBF) goto yy2455; + goto yy2461; +yy2463: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy2419; - if (yych <= 0xBF) goto yy2436; - goto yy2419; -yy2422: + if (yych <= 0x9F) goto yy2461; + if (yych <= 0xBF) goto yy2478; + goto yy2461; +yy2464: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2419; - if (yych <= 0xBF) goto yy2436; - goto yy2419; -yy2423: + if (yych <= 0x7F) goto yy2461; + if (yych <= 0xBF) goto yy2478; + goto yy2461; +yy2465: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy2419; - if (yych <= 0xBF) goto yy2437; - goto yy2419; -yy2424: + if (yych <= 0x8F) goto yy2461; + if (yych <= 0xBF) goto yy2479; + goto yy2461; +yy2466: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2419; - if (yych <= 0xBF) goto yy2437; - goto yy2419; -yy2425: + if (yych <= 0x7F) goto yy2461; + if (yych <= 0xBF) goto yy2479; + goto yy2461; +yy2467: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2419; - if (yych <= 0x8F) goto yy2437; - goto yy2419; -yy2426: + if (yych <= 0x7F) goto yy2461; + if (yych <= 0x8F) goto yy2479; + goto yy2461; +yy2468: ++cursor_; -yy2427: +yy2469: #line 248 "src/wast-lexer.cc" { ERROR("bad escape \"%.*s\"", static_cast<int>(yyleng), yytext); continue; } -#line 11909 "src/prebuilt/wast-lexer-gen.cc" -yy2428: +#line 12105 "src/prebuilt/wast-lexer-gen.cc" +yy2470: yych = *++cursor_; if (yych <= '@') { - if (yych <= '/') goto yy2427; - if (yych <= '9') goto yy2413; - goto yy2427; + if (yych <= '/') goto yy2469; + if (yych <= '9') goto yy2455; + goto yy2469; } else { - if (yych <= 'F') goto yy2413; - if (yych <= '`') goto yy2427; - if (yych <= 'f') goto yy2413; - goto yy2427; + if (yych <= 'F') goto yy2455; + if (yych <= '`') goto yy2469; + if (yych <= 'f') goto yy2455; + goto yy2469; } -yy2429: +yy2471: yych = *++cursor_; - if (yych <= 0x7F) goto yy2430; - if (yych <= 0xBF) goto yy2426; -yy2430: + if (yych <= 0x7F) goto yy2472; + if (yych <= 0xBF) goto yy2468; +yy2472: cursor_ = marker_; if (yyaccept == 0) { - goto yy2410; + goto yy2452; } else { - goto yy2419; + goto yy2461; } -yy2431: +yy2473: yych = *++cursor_; - if (yych <= 0x9F) goto yy2430; - if (yych <= 0xBF) goto yy2429; - goto yy2430; -yy2432: + if (yych <= 0x9F) goto yy2472; + if (yych <= 0xBF) goto yy2471; + goto yy2472; +yy2474: yych = *++cursor_; - if (yych <= 0x7F) goto yy2430; - if (yych <= 0xBF) goto yy2429; - goto yy2430; -yy2433: + if (yych <= 0x7F) goto yy2472; + if (yych <= 0xBF) goto yy2471; + goto yy2472; +yy2475: yych = *++cursor_; - if (yych <= 0x8F) goto yy2430; - if (yych <= 0xBF) goto yy2432; - goto yy2430; -yy2434: + if (yych <= 0x8F) goto yy2472; + if (yych <= 0xBF) goto yy2474; + goto yy2472; +yy2476: yych = *++cursor_; - if (yych <= 0x7F) goto yy2430; - if (yych <= 0xBF) goto yy2432; - goto yy2430; -yy2435: + if (yych <= 0x7F) goto yy2472; + if (yych <= 0xBF) goto yy2474; + goto yy2472; +yy2477: yych = *++cursor_; - if (yych <= 0x7F) goto yy2430; - if (yych <= 0x8F) goto yy2432; - goto yy2430; -yy2436: + if (yych <= 0x7F) goto yy2472; + if (yych <= 0x8F) goto yy2474; + goto yy2472; +yy2478: yych = *++cursor_; - if (yych <= 0x7F) goto yy2430; - if (yych <= 0xBF) goto yy2413; - goto yy2430; -yy2437: + if (yych <= 0x7F) goto yy2472; + if (yych <= 0xBF) goto yy2455; + goto yy2472; +yy2479: yych = *++cursor_; - if (yych <= 0x7F) goto yy2430; - if (yych <= 0xBF) goto yy2436; - goto yy2430; + if (yych <= 0x7F) goto yy2472; + if (yych <= 0xBF) goto yy2478; + goto yy2472; /* *********************************** */ YYCOND_LINE_COMMENT: { @@ -12004,140 +12200,140 @@ YYCOND_LINE_COMMENT: if ((limit_ - cursor_) < 2) FILL(2); yych = *cursor_; if (yybm[0+yych] & 128) { - goto yy2440; + goto yy2482; } if (yych <= 0xE0) { - if (yych <= '\n') goto yy2443; - if (yych <= 0xC1) goto yy2445; - if (yych <= 0xDF) goto yy2447; - goto yy2448; + if (yych <= '\n') goto yy2485; + if (yych <= 0xC1) goto yy2487; + if (yych <= 0xDF) goto yy2489; + goto yy2490; } else { if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy2449; - goto yy2450; + if (yych <= 0xEF) goto yy2491; + goto yy2492; } else { - if (yych <= 0xF3) goto yy2451; - if (yych <= 0xF4) goto yy2452; - goto yy2445; + if (yych <= 0xF3) goto yy2493; + if (yych <= 0xF4) goto yy2494; + goto yy2487; } } -yy2440: +yy2482: yyaccept = 0; marker_ = ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yybm[0+yych] & 128) { - goto yy2440; + goto yy2482; } if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2442; - if (yych <= 0xDF) goto yy2453; - if (yych <= 0xE0) goto yy2455; - goto yy2456; + if (yych <= 0xC1) goto yy2484; + if (yych <= 0xDF) goto yy2495; + if (yych <= 0xE0) goto yy2497; + goto yy2498; } else { - if (yych <= 0xF0) goto yy2457; - if (yych <= 0xF3) goto yy2458; - if (yych <= 0xF4) goto yy2459; + if (yych <= 0xF0) goto yy2499; + if (yych <= 0xF3) goto yy2500; + if (yych <= 0xF4) goto yy2501; } -yy2442: -#line 701 "src/wast-lexer.cc" +yy2484: +#line 709 "src/wast-lexer.cc" { continue; } -#line 12046 "src/prebuilt/wast-lexer-gen.cc" -yy2443: +#line 12242 "src/prebuilt/wast-lexer-gen.cc" +yy2485: ++cursor_; BEGIN(YYCOND_i); -#line 700 "src/wast-lexer.cc" +#line 708 "src/wast-lexer.cc" { NEWLINE; continue; } -#line 12052 "src/prebuilt/wast-lexer-gen.cc" -yy2445: +#line 12248 "src/prebuilt/wast-lexer-gen.cc" +yy2487: ++cursor_; -yy2446: -#line 715 "src/wast-lexer.cc" +yy2488: +#line 723 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } -#line 12058 "src/prebuilt/wast-lexer-gen.cc" -yy2447: +#line 12254 "src/prebuilt/wast-lexer-gen.cc" +yy2489: yych = *++cursor_; - if (yych <= 0x7F) goto yy2446; - if (yych <= 0xBF) goto yy2440; - goto yy2446; -yy2448: + if (yych <= 0x7F) goto yy2488; + if (yych <= 0xBF) goto yy2482; + goto yy2488; +yy2490: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy2446; - if (yych <= 0xBF) goto yy2453; - goto yy2446; -yy2449: + if (yych <= 0x9F) goto yy2488; + if (yych <= 0xBF) goto yy2495; + goto yy2488; +yy2491: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2446; - if (yych <= 0xBF) goto yy2453; - goto yy2446; -yy2450: + if (yych <= 0x7F) goto yy2488; + if (yych <= 0xBF) goto yy2495; + goto yy2488; +yy2492: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy2446; - if (yych <= 0xBF) goto yy2456; - goto yy2446; -yy2451: + if (yych <= 0x8F) goto yy2488; + if (yych <= 0xBF) goto yy2498; + goto yy2488; +yy2493: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2446; - if (yych <= 0xBF) goto yy2456; - goto yy2446; -yy2452: + if (yych <= 0x7F) goto yy2488; + if (yych <= 0xBF) goto yy2498; + goto yy2488; +yy2494: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2446; - if (yych <= 0x8F) goto yy2456; - goto yy2446; -yy2453: + if (yych <= 0x7F) goto yy2488; + if (yych <= 0x8F) goto yy2498; + goto yy2488; +yy2495: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy2454; - if (yych <= 0xBF) goto yy2440; -yy2454: + if (yych <= 0x7F) goto yy2496; + if (yych <= 0xBF) goto yy2482; +yy2496: cursor_ = marker_; if (yyaccept == 0) { - goto yy2442; + goto yy2484; } else { - goto yy2446; + goto yy2488; } -yy2455: +yy2497: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x9F) goto yy2454; - if (yych <= 0xBF) goto yy2453; - goto yy2454; -yy2456: + if (yych <= 0x9F) goto yy2496; + if (yych <= 0xBF) goto yy2495; + goto yy2496; +yy2498: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy2454; - if (yych <= 0xBF) goto yy2453; - goto yy2454; -yy2457: + if (yych <= 0x7F) goto yy2496; + if (yych <= 0xBF) goto yy2495; + goto yy2496; +yy2499: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x8F) goto yy2454; - if (yych <= 0xBF) goto yy2456; - goto yy2454; -yy2458: + if (yych <= 0x8F) goto yy2496; + if (yych <= 0xBF) goto yy2498; + goto yy2496; +yy2500: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy2454; - if (yych <= 0xBF) goto yy2456; - goto yy2454; -yy2459: + if (yych <= 0x7F) goto yy2496; + if (yych <= 0xBF) goto yy2498; + goto yy2496; +yy2501: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy2454; - if (yych <= 0x8F) goto yy2456; - goto yy2454; + if (yych <= 0x7F) goto yy2496; + if (yych <= 0x8F) goto yy2498; + goto yy2496; } /* *********************************** */ YYCOND_BLOCK_COMMENT: @@ -12145,106 +12341,106 @@ YYCOND_BLOCK_COMMENT: yych = *cursor_; if (yych <= 0x7F) { if (yych <= '\'') { - if (yych == '\n') goto yy2464; + if (yych == '\n') goto yy2506; } else { - if (yych <= '(') goto yy2466; - if (yych == ';') goto yy2467; + if (yych <= '(') goto yy2508; + if (yych == ';') goto yy2509; } } else { if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2468; - if (yych <= 0xDF) goto yy2470; - if (yych <= 0xE0) goto yy2471; - goto yy2472; + if (yych <= 0xC1) goto yy2510; + if (yych <= 0xDF) goto yy2512; + if (yych <= 0xE0) goto yy2513; + goto yy2514; } else { - if (yych <= 0xF0) goto yy2473; - if (yych <= 0xF3) goto yy2474; - if (yych <= 0xF4) goto yy2475; - goto yy2468; + if (yych <= 0xF0) goto yy2515; + if (yych <= 0xF3) goto yy2516; + if (yych <= 0xF4) goto yy2517; + goto yy2510; } } -yy2462: +yy2504: ++cursor_; -yy2463: -#line 709 "src/wast-lexer.cc" +yy2505: +#line 717 "src/wast-lexer.cc" { continue; } -#line 12172 "src/prebuilt/wast-lexer-gen.cc" -yy2464: +#line 12368 "src/prebuilt/wast-lexer-gen.cc" +yy2506: ++cursor_; -#line 708 "src/wast-lexer.cc" +#line 716 "src/wast-lexer.cc" { NEWLINE; continue; } -#line 12177 "src/prebuilt/wast-lexer-gen.cc" -yy2466: +#line 12373 "src/prebuilt/wast-lexer-gen.cc" +yy2508: yych = *++cursor_; - if (yych == ';') goto yy2476; - goto yy2463; -yy2467: + if (yych == ';') goto yy2518; + goto yy2505; +yy2509: yych = *++cursor_; - if (yych == ')') goto yy2478; - goto yy2463; -yy2468: + if (yych == ')') goto yy2520; + goto yy2505; +yy2510: ++cursor_; -yy2469: -#line 710 "src/wast-lexer.cc" +yy2511: +#line 718 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(" in block comment"); } -#line 12191 "src/prebuilt/wast-lexer-gen.cc" -yy2470: +#line 12387 "src/prebuilt/wast-lexer-gen.cc" +yy2512: yych = *++cursor_; - if (yych <= 0x7F) goto yy2469; - if (yych <= 0xBF) goto yy2462; - goto yy2469; -yy2471: + if (yych <= 0x7F) goto yy2511; + if (yych <= 0xBF) goto yy2504; + goto yy2511; +yy2513: yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy2469; - if (yych <= 0xBF) goto yy2480; - goto yy2469; -yy2472: + if (yych <= 0x9F) goto yy2511; + if (yych <= 0xBF) goto yy2522; + goto yy2511; +yy2514: yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2469; - if (yych <= 0xBF) goto yy2480; - goto yy2469; -yy2473: + if (yych <= 0x7F) goto yy2511; + if (yych <= 0xBF) goto yy2522; + goto yy2511; +yy2515: yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy2469; - if (yych <= 0xBF) goto yy2482; - goto yy2469; -yy2474: + if (yych <= 0x8F) goto yy2511; + if (yych <= 0xBF) goto yy2524; + goto yy2511; +yy2516: yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2469; - if (yych <= 0xBF) goto yy2482; - goto yy2469; -yy2475: + if (yych <= 0x7F) goto yy2511; + if (yych <= 0xBF) goto yy2524; + goto yy2511; +yy2517: yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2469; - if (yych <= 0x8F) goto yy2482; - goto yy2469; -yy2476: + if (yych <= 0x7F) goto yy2511; + if (yych <= 0x8F) goto yy2524; + goto yy2511; +yy2518: ++cursor_; -#line 703 "src/wast-lexer.cc" +#line 711 "src/wast-lexer.cc" { COMMENT_NESTING++; continue; } -#line 12226 "src/prebuilt/wast-lexer-gen.cc" -yy2478: +#line 12422 "src/prebuilt/wast-lexer-gen.cc" +yy2520: ++cursor_; -#line 704 "src/wast-lexer.cc" +#line 712 "src/wast-lexer.cc" { if (--COMMENT_NESTING == 0) { BEGIN(YYCOND_i); } continue; } -#line 12234 "src/prebuilt/wast-lexer-gen.cc" -yy2480: +#line 12430 "src/prebuilt/wast-lexer-gen.cc" +yy2522: yych = *++cursor_; - if (yych <= 0x7F) goto yy2481; - if (yych <= 0xBF) goto yy2462; -yy2481: + if (yych <= 0x7F) goto yy2523; + if (yych <= 0xBF) goto yy2504; +yy2523: cursor_ = marker_; - goto yy2469; -yy2482: + goto yy2511; +yy2524: yych = *++cursor_; - if (yych <= 0x7F) goto yy2481; - if (yych <= 0xBF) goto yy2480; - goto yy2481; + if (yych <= 0x7F) goto yy2523; + if (yych <= 0xBF) goto yy2522; + goto yy2523; } -#line 716 "src/wast-lexer.cc" +#line 724 "src/wast-lexer.cc" } } diff --git a/src/token.def b/src/token.def index 8cd55452..109fd8da 100644 --- a/src/token.def +++ b/src/token.def @@ -47,6 +47,7 @@ WABT_TOKEN(Module, "module") WABT_TOKEN(Mut, "mut") WABT_TOKEN(Offset, "offset") WABT_TOKEN(Param, "param") +WABT_TOKEN(Passive, "passive") WABT_TOKEN(Quote, "quote") WABT_TOKEN(Register, "register") WABT_TOKEN(Result, "result") @@ -93,8 +94,15 @@ WABT_TOKEN(IfExcept, "if_except") WABT_TOKEN(If, "if") WABT_TOKEN(Load, "LOAD") WABT_TOKEN(Loop, "loop") +WABT_TOKEN(MemoryCopy, "memory.copy") +WABT_TOKEN(MemoryDrop, "memory.drop") +WABT_TOKEN(MemoryFill, "memory.fill") WABT_TOKEN(MemoryGrow, "memory.grow") +WABT_TOKEN(MemoryInit, "memory.init") WABT_TOKEN(MemorySize, "memory.size") +WABT_TOKEN(TableCopy, "table.copy") +WABT_TOKEN(TableDrop, "table.drop") +WABT_TOKEN(TableInit, "table.init") WABT_TOKEN(Nop, "nop") WABT_TOKEN(Rethrow, "rethrow") WABT_TOKEN(Return, "return") diff --git a/src/type-checker.cc b/src/type-checker.cc index 2623c3e8..b8e1c477 100644 --- a/src/type-checker.cc +++ b/src/type-checker.cc @@ -527,15 +527,43 @@ Result TypeChecker::OnLoop(const TypeVector& param_types, return result; } +Result TypeChecker::OnMemoryCopy() { + return CheckOpcode3(Opcode::MemoryCopy); +} + +Result TypeChecker::OnMemoryDrop(uint32_t segment) { + return Result::Ok; +} + +Result TypeChecker::OnMemoryFill() { + return CheckOpcode3(Opcode::MemoryFill); +} + Result TypeChecker::OnMemoryGrow() { return CheckOpcode1(Opcode::MemoryGrow); } +Result TypeChecker::OnMemoryInit(uint32_t segment) { + return CheckOpcode3(Opcode::MemoryInit); +} + Result TypeChecker::OnMemorySize() { PushType(Type::I32); return Result::Ok; } +Result TypeChecker::OnTableCopy() { + return CheckOpcode3(Opcode::TableCopy); +} + +Result TypeChecker::OnTableDrop(uint32_t segment) { + return Result::Ok; +} + +Result TypeChecker::OnTableInit(uint32_t segment) { + return CheckOpcode3(Opcode::TableInit); +} + Result TypeChecker::OnRethrow() { Result result = PopAndCheck1Type(Type::ExceptRef, "rethrow"); CHECK_RESULT(SetUnreachable()); diff --git a/src/type-checker.h b/src/type-checker.h index e142ce1c..ef8196d4 100644 --- a/src/type-checker.h +++ b/src/type-checker.h @@ -90,8 +90,15 @@ class TypeChecker { const TypeVector& except_sig); Result OnLoad(Opcode); Result OnLoop(const TypeVector& param_types, const TypeVector& result_types); + Result OnMemoryCopy(); + Result OnMemoryDrop(Index); + Result OnMemoryFill(); Result OnMemoryGrow(); + Result OnMemoryInit(Index); Result OnMemorySize(); + Result OnTableCopy(); + Result OnTableDrop(Index); + Result OnTableInit(Index); Result OnRethrow(); Result OnReturn(); Result OnSelect(); diff --git a/src/validator.cc b/src/validator.cc index fc255b43..20787512 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -66,8 +66,15 @@ class Validator : public ExprVisitor::Delegate { Result OnLoadExpr(LoadExpr*) override; Result BeginLoopExpr(LoopExpr*) override; Result EndLoopExpr(LoopExpr*) override; + Result OnMemoryCopyExpr(MemoryCopyExpr*) override; + Result OnMemoryDropExpr(MemoryDropExpr*) override; + Result OnMemoryFillExpr(MemoryFillExpr*) override; Result OnMemoryGrowExpr(MemoryGrowExpr*) override; + Result OnMemoryInitExpr(MemoryInitExpr*) override; Result OnMemorySizeExpr(MemorySizeExpr*) override; + Result OnTableCopyExpr(TableCopyExpr*) override; + Result OnTableDropExpr(TableDropExpr*) override; + Result OnTableInitExpr(TableInitExpr*) override; Result OnNopExpr(NopExpr*) override; Result OnReturnExpr(ReturnExpr*) override; Result OnReturnCallExpr(ReturnCallExpr*) override; @@ -159,6 +166,7 @@ class Validator : public ExprVisitor::Delegate { const char* desc); void CheckExprList(const Location* loc, const ExprList& exprs); bool CheckHasMemory(const Location* loc, Opcode opcode); + bool CheckHasTable(const Location* loc, Opcode opcode); void CheckHasSharedMemory(const Location* loc, Opcode opcode); void CheckBlockDeclaration(const Location* loc, Opcode opcode, @@ -469,6 +477,16 @@ bool Validator::CheckHasMemory(const Location* loc, Opcode opcode) { return true; } +bool Validator::CheckHasTable(const Location* loc, Opcode opcode) { + if (current_module_->tables.size() == 0) { + PrintError(loc, "%s requires an imported or defined table.", + opcode.GetName()); + return false; + } + + return true; +} + void Validator::CheckHasSharedMemory(const Location* loc, Opcode opcode) { if (CheckHasMemory(loc, opcode)) { Memory* memory = current_module_->memories[0]; @@ -685,6 +703,27 @@ Result Validator::EndLoopExpr(LoopExpr* expr) { return Result::Ok; } +Result Validator::OnMemoryCopyExpr(MemoryCopyExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasMemory(&expr->loc, Opcode::MemoryCopy); + typechecker_.OnMemoryCopy(); + return Result::Ok; +} + +Result Validator::OnMemoryDropExpr(MemoryDropExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasMemory(&expr->loc, Opcode::MemoryDrop); + typechecker_.OnMemoryDrop(expr->segment); + return Result::Ok; +} + +Result Validator::OnMemoryFillExpr(MemoryFillExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasMemory(&expr->loc, Opcode::MemoryFill); + typechecker_.OnMemoryFill(); + return Result::Ok; +} + Result Validator::OnMemoryGrowExpr(MemoryGrowExpr* expr) { expr_loc_ = &expr->loc; CheckHasMemory(&expr->loc, Opcode::MemoryGrow); @@ -692,6 +731,13 @@ Result Validator::OnMemoryGrowExpr(MemoryGrowExpr* expr) { return Result::Ok; } +Result Validator::OnMemoryInitExpr(MemoryInitExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasMemory(&expr->loc, Opcode::MemoryInit); + typechecker_.OnMemoryInit(expr->segment); + return Result::Ok; +} + Result Validator::OnMemorySizeExpr(MemorySizeExpr* expr) { expr_loc_ = &expr->loc; CheckHasMemory(&expr->loc, Opcode::MemorySize); @@ -699,6 +745,27 @@ Result Validator::OnMemorySizeExpr(MemorySizeExpr* expr) { return Result::Ok; } +Result Validator::OnTableCopyExpr(TableCopyExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasTable(&expr->loc, Opcode::TableCopy); + typechecker_.OnTableCopy(); + return Result::Ok; +} + +Result Validator::OnTableDropExpr(TableDropExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasTable(&expr->loc, Opcode::TableDrop); + typechecker_.OnTableDrop(expr->segment); + return Result::Ok; +} + +Result Validator::OnTableInitExpr(TableInitExpr* expr) { + expr_loc_ = &expr->loc; + CheckHasTable(&expr->loc, Opcode::TableInit); + typechecker_.OnTableInit(expr->segment); + return Result::Ok; +} + Result Validator::OnNopExpr(NopExpr* expr) { expr_loc_ = &expr->loc; return Result::Ok; @@ -994,14 +1061,16 @@ void Validator::CheckElemSegments(const Module* module) { if (auto elem_segment_field = dyn_cast<ElemSegmentModuleField>(&field)) { auto&& elem_segment = elem_segment_field->elem_segment; const Table* table; - if (Failed(CheckTableVar(&elem_segment.table_var, &table))) { - continue; - } - for (const Var& var : elem_segment.vars) { CheckFuncVar(&var, nullptr); } + if (elem_segment.passive) { + continue; + } + if (Failed(CheckTableVar(&elem_segment.table_var, &table))) { + continue; + } CheckConstInitExpr(&field.loc, elem_segment.offset, Type::I32, "elem segment offset"); } @@ -1028,10 +1097,12 @@ void Validator::CheckDataSegments(const Module* module) { if (auto data_segment_field = dyn_cast<DataSegmentModuleField>(&field)) { auto&& data_segment = data_segment_field->data_segment; const Memory* memory; + if (data_segment.passive) { + continue; + } if (Failed(CheckMemoryVar(&data_segment.memory_var, &memory))) { continue; } - CheckConstInitExpr(&field.loc, data_segment.offset, Type::I32, "data segment offset"); } diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc index 7627ded6..4c3a79f5 100644 --- a/src/wast-lexer.cc +++ b/src/wast-lexer.cc @@ -447,8 +447,15 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "unreachable" { RETURN_OPCODE0(Unreachable); } <i> "memory.size" { RETURN_OPCODE0(MemorySize); } <i> "memory.grow" { RETURN_OPCODE0(MemoryGrow); } + <i> "memory.init" { RETURN_OPCODE0(MemoryInit); } + <i> "memory.drop" { RETURN_OPCODE0(MemoryDrop); } + <i> "memory.copy" { RETURN_OPCODE0(MemoryCopy); } + <i> "memory.fill" { RETURN_OPCODE0(MemoryFill); } <i> "current_memory" { RETURN_OPCODE0(MemorySize); } <i> "grow_memory" { RETURN_OPCODE0(MemoryGrow); } + <i> "table.init" { RETURN_OPCODE0(TableInit); } + <i> "table.drop" { RETURN_OPCODE0(TableDrop); } + <i> "table.copy" { RETURN_OPCODE0(TableCopy); } <i> "i32.atomic.wait" { RETURN_OPCODE(AtomicWait, I32AtomicWait); } <i> "i64.atomic.wait" { RETURN_OPCODE(AtomicWait, I64AtomicWait); } @@ -677,6 +684,7 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "import" { RETURN(Import); } <i> "export" { RETURN(Export); } <i> "except" { RETURN(Except); } + <i> "passive" { RETURN(Passive); } <i> "register" { RETURN(Register); } <i> "invoke" { RETURN(Invoke); } <i> "get" { RETURN(Get); } diff --git a/src/wast-parser.cc b/src/wast-parser.cc index 1fef262b..2b9dbe6e 100644 --- a/src/wast-parser.cc +++ b/src/wast-parser.cc @@ -127,8 +127,15 @@ bool IsPlainInstr(TokenType token_type) { case TokenType::Binary: case TokenType::Compare: case TokenType::Convert: - case TokenType::MemorySize: + case TokenType::MemoryCopy: + case TokenType::MemoryDrop: + case TokenType::MemoryFill: case TokenType::MemoryGrow: + case TokenType::MemoryInit: + case TokenType::MemorySize: + case TokenType::TableCopy: + case TokenType::TableDrop: + case TokenType::TableInit: case TokenType::Throw: case TokenType::Rethrow: case TokenType::AtomicLoad: @@ -793,8 +800,13 @@ Result WastParser::ParseDataModuleField(Module* module) { Location loc = GetLocation(); auto field = MakeUnique<DataSegmentModuleField>(loc); EXPECT(Data); - ParseVarOpt(&field->data_segment.memory_var, Var(0, loc)); - CHECK_RESULT(ParseOffsetExpr(&field->data_segment.offset)); + if (Peek() == TokenType::Passive) { + Consume(); + field->data_segment.passive = true; + } else { + ParseVarOpt(&field->data_segment.memory_var, Var(0, loc)); + CHECK_RESULT(ParseOffsetExpr(&field->data_segment.offset)); + } ParseTextListOpt(&field->data_segment.data); EXPECT(Rpar); module->AppendField(std::move(field)); @@ -807,8 +819,13 @@ Result WastParser::ParseElemModuleField(Module* module) { Location loc = GetLocation(); auto field = MakeUnique<ElemSegmentModuleField>(loc); EXPECT(Elem); - ParseVarOpt(&field->elem_segment.table_var, Var(0, loc)); - CHECK_RESULT(ParseOffsetExpr(&field->elem_segment.offset)); + if (Peek() == TokenType::Passive) { + Consume(); + field->elem_segment.passive = true; + } else { + ParseVarOpt(&field->elem_segment.table_var, Var(0, loc)); + CHECK_RESULT(ParseOffsetExpr(&field->elem_segment.offset)); + } ParseVarListOpt(&field->elem_segment.vars); EXPECT(Rpar); module->AppendField(std::move(field)); @@ -1427,6 +1444,32 @@ Result WastParser::ParsePlainInstr(std::unique_ptr<Expr>* out_expr) { break; } + case TokenType::MemoryCopy: + Consume(); + out_expr->reset(new MemoryCopyExpr(loc)); + break; + + case TokenType::MemoryFill: + Consume(); + out_expr->reset(new MemoryFillExpr(loc)); + break; + + case TokenType::MemoryDrop: { + Consume(); + uint64_t segment; + CHECK_RESULT(ParseNat(&segment)); + out_expr->reset(new MemoryDropExpr(segment, loc)); + break; + } + + case TokenType::MemoryInit: { + Consume(); + uint64_t segment; + CHECK_RESULT(ParseNat(&segment)); + out_expr->reset(new MemoryInitExpr(segment, loc)); + break; + } + case TokenType::MemorySize: Consume(); out_expr->reset(new MemorySizeExpr(loc)); @@ -1437,6 +1480,27 @@ Result WastParser::ParsePlainInstr(std::unique_ptr<Expr>* out_expr) { out_expr->reset(new MemoryGrowExpr(loc)); break; + case TokenType::TableCopy: + Consume(); + out_expr->reset(new TableCopyExpr(loc)); + break; + + case TokenType::TableDrop: { + Consume(); + uint64_t segment; + CHECK_RESULT(ParseNat(&segment)); + out_expr->reset(new TableDropExpr(segment, loc)); + break; + } + + case TokenType::TableInit: { + Consume(); + uint64_t segment; + CHECK_RESULT(ParseNat(&segment)); + out_expr->reset(new TableInitExpr(segment, loc)); + break; + } + case TokenType::Throw: ErrorUnlessOpcodeEnabled(Consume()); CHECK_RESULT(ParsePlainInstrVar<ThrowExpr>(loc, out_expr)); diff --git a/src/wat-writer.cc b/src/wat-writer.cc index 1ab32f9b..0769b8e7 100644 --- a/src/wat-writer.cc +++ b/src/wat-writer.cc @@ -567,8 +567,15 @@ class WatWriter::ExprVisitorDelegate : public ExprVisitor::Delegate { Result OnLoadExpr(LoadExpr*) override; Result BeginLoopExpr(LoopExpr*) override; Result EndLoopExpr(LoopExpr*) override; + Result OnMemoryCopyExpr(MemoryCopyExpr*) override; + Result OnMemoryDropExpr(MemoryDropExpr*) override; + Result OnMemoryFillExpr(MemoryFillExpr*) override; Result OnMemoryGrowExpr(MemoryGrowExpr*) override; + Result OnMemoryInitExpr(MemoryInitExpr*) override; Result OnMemorySizeExpr(MemorySizeExpr*) override; + Result OnTableCopyExpr(TableCopyExpr*) override; + Result OnTableDropExpr(TableDropExpr*) override; + Result OnTableInitExpr(TableInitExpr*) override; Result OnNopExpr(NopExpr*) override; Result OnReturnExpr(ReturnExpr*) override; Result OnReturnCallExpr(ReturnCallExpr*) override; @@ -743,16 +750,59 @@ Result WatWriter::ExprVisitorDelegate::EndLoopExpr(LoopExpr* expr) { return Result::Ok; } +Result WatWriter::ExprVisitorDelegate::OnMemoryCopyExpr(MemoryCopyExpr* expr) { + writer_->WritePutsNewline(Opcode::MemoryCopy_Opcode.GetName()); + return Result::Ok; +} + +Result WatWriter::ExprVisitorDelegate::OnMemoryDropExpr(MemoryDropExpr* expr) { + writer_->WritePutsSpace(Opcode::MemoryDrop_Opcode.GetName()); + writer_->Writef("%d", expr->segment); + writer_->WriteNewline(FORCE_NEWLINE); + return Result::Ok; +} + +Result WatWriter::ExprVisitorDelegate::OnMemoryFillExpr(MemoryFillExpr* expr) { + writer_->WritePutsNewline(Opcode::MemoryFill_Opcode.GetName()); + return Result::Ok; +} + Result WatWriter::ExprVisitorDelegate::OnMemoryGrowExpr(MemoryGrowExpr* expr) { writer_->WritePutsNewline(Opcode::MemoryGrow_Opcode.GetName()); return Result::Ok; } +Result WatWriter::ExprVisitorDelegate::OnMemoryInitExpr(MemoryInitExpr* expr) { + writer_->WritePutsSpace(Opcode::MemoryInit_Opcode.GetName()); + writer_->Writef("%d", expr->segment); + writer_->WriteNewline(FORCE_NEWLINE); + return Result::Ok; +} + Result WatWriter::ExprVisitorDelegate::OnMemorySizeExpr(MemorySizeExpr* expr) { writer_->WritePutsNewline(Opcode::MemorySize_Opcode.GetName()); return Result::Ok; } +Result WatWriter::ExprVisitorDelegate::OnTableCopyExpr(TableCopyExpr* expr) { + writer_->WritePutsNewline(Opcode::TableCopy_Opcode.GetName()); + return Result::Ok; +} + +Result WatWriter::ExprVisitorDelegate::OnTableDropExpr(TableDropExpr* expr) { + writer_->WritePutsSpace(Opcode::TableDrop_Opcode.GetName()); + writer_->Writef("%d", expr->segment); + writer_->WriteNewline(FORCE_NEWLINE); + return Result::Ok; +} + +Result WatWriter::ExprVisitorDelegate::OnTableInitExpr(TableInitExpr* expr) { + writer_->WritePutsSpace(Opcode::TableInit_Opcode.GetName()); + writer_->Writef("%d", expr->segment); + writer_->WriteNewline(FORCE_NEWLINE); + return Result::Ok; +} + Result WatWriter::ExprVisitorDelegate::OnNopExpr(NopExpr* expr) { writer_->WritePutsNewline(Opcode::Nop_Opcode.GetName()); return Result::Ok; @@ -1005,6 +1055,19 @@ void WatWriter::WriteFoldedExpr(const Expr* expr) { PushExpr(expr, 0, 1); break; + case ExprType::MemoryDrop: + case ExprType::TableDrop: + PushExpr(expr, 0, 0); + break; + + case ExprType::MemoryInit: + case ExprType::TableInit: + case ExprType::MemoryFill: + case ExprType::MemoryCopy: + case ExprType::TableCopy: + PushExpr(expr, 3, 0); + break; + case ExprType::AtomicLoad: case ExprType::Convert: case ExprType::MemoryGrow: @@ -1396,7 +1459,11 @@ void WatWriter::WriteTable(const Table& table) { void WatWriter::WriteElemSegment(const ElemSegment& segment) { WriteOpenSpace("elem"); - WriteInitExpr(segment.offset); + if (segment.passive) { + WritePutsSpace("passive"); + } else { + WriteInitExpr(segment.offset); + } for (const Var& var : segment.vars) { WriteVar(var, NextChar::Space); } @@ -1415,7 +1482,11 @@ void WatWriter::WriteMemory(const Memory& memory) { void WatWriter::WriteDataSegment(const DataSegment& segment) { WriteOpenSpace("data"); - WriteInitExpr(segment.offset); + if (segment.passive) { + WritePutsSpace("passive"); + } else { + WriteInitExpr(segment.offset); + } WriteQuotedData(segment.data.data(), segment.data.size()); WriteCloseNewline(); } diff --git a/test/dump/callindirect.txt b/test/dump/callindirect.txt index bc563fe8..e832438f 100644 --- a/test/dump/callindirect.txt +++ b/test/dump/callindirect.txt @@ -41,7 +41,7 @@ 000001b: 00 ; section size (guess) 000001c: 01 ; num elem segments ; elem segment header 0 -000001d: 00 ; table index +000001d: 00 000001e: 41 ; i32.const 000001f: 00 ; i32 literal 0000020: 0b ; end diff --git a/test/dump/invalid-data-segment-no-memory.txt b/test/dump/invalid-data-segment-no-memory.txt index 6efd94c7..2cb03910 100644 --- a/test/dump/invalid-data-segment-no-memory.txt +++ b/test/dump/invalid-data-segment-no-memory.txt @@ -10,7 +10,7 @@ 0000009: 00 ; section size (guess) 000000a: 01 ; num data segments ; data segment header 0 -000000b: 00 ; memory index +000000b: 00 000000c: 41 ; i32.const 000000d: 00 ; i32 literal 000000e: 0b ; end diff --git a/test/dump/invalid-data-segment-offset.txt b/test/dump/invalid-data-segment-offset.txt index fd079dbe..d4f84a13 100644 --- a/test/dump/invalid-data-segment-offset.txt +++ b/test/dump/invalid-data-segment-offset.txt @@ -19,7 +19,7 @@ 000000e: 00 ; section size (guess) 000000f: 01 ; num data segments ; data segment header 0 -0000010: 00 ; memory index +0000010: 00 0000011: 41 ; i32.const 0000012: 01 ; i32 literal 0000013: 41 ; i32.const diff --git a/test/dump/invalid-elem-segment-no-table.txt b/test/dump/invalid-elem-segment-no-table.txt index 0501f369..f99d4ffd 100644 --- a/test/dump/invalid-elem-segment-no-table.txt +++ b/test/dump/invalid-elem-segment-no-table.txt @@ -28,7 +28,7 @@ 0000014: 00 ; section size (guess) 0000015: 01 ; num elem segments ; elem segment header 0 -0000016: 00 ; table index +0000016: 00 0000017: 41 ; i32.const 0000018: 00 ; i32 literal 0000019: 0b ; end diff --git a/test/dump/invalid-elem-segment-offset.txt b/test/dump/invalid-elem-segment-offset.txt index eb846a46..bc502c65 100644 --- a/test/dump/invalid-elem-segment-offset.txt +++ b/test/dump/invalid-elem-segment-offset.txt @@ -36,7 +36,7 @@ 0000019: 00 ; section size (guess) 000001a: 01 ; num elem segments ; elem segment header 0 -000001b: 00 ; table index +000001b: 00 000001c: 41 ; i32.const 000001d: 01 ; i32 literal 000001e: 45 ; i32.eqz diff --git a/test/dump/memory-hex.txt b/test/dump/memory-hex.txt index a1cdfd3b..98a47caf 100644 --- a/test/dump/memory-hex.txt +++ b/test/dump/memory-hex.txt @@ -20,7 +20,7 @@ 000000f: 00 ; section size (guess) 0000010: 01 ; num data segments ; data segment header 0 -0000011: 00 ; memory index +0000011: 00 0000012: 41 ; i32.const 0000013: 00 ; i32 literal 0000014: 0b ; end diff --git a/test/dump/memory.txt b/test/dump/memory.txt index 1059d605..3315863e 100644 --- a/test/dump/memory.txt +++ b/test/dump/memory.txt @@ -21,7 +21,7 @@ 000000e: 00 ; section size (guess) 000000f: 02 ; num data segments ; data segment header 0 -0000010: 00 ; memory index +0000010: 00 0000011: 41 ; i32.const 0000012: 0a ; i32 literal 0000013: 0b ; end @@ -29,7 +29,7 @@ ; data segment data 0 0000015: 6865 6c6c 6f ; data segment data ; data segment header 1 -000001a: 00 ; memory index +000001a: 00 000001b: 41 ; i32.const 000001c: 14 ; i32 literal 000001d: 0b ; end diff --git a/test/dump/no-canonicalize.txt b/test/dump/no-canonicalize.txt index a4946fa2..6b98a05b 100644 --- a/test/dump/no-canonicalize.txt +++ b/test/dump/no-canonicalize.txt @@ -98,7 +98,7 @@ 000005d: 0000 0000 00 ; section size (guess) 0000062: 01 ; num elem segments ; elem segment header 0 -0000063: 00 ; table index +0000063: 00 0000064: 41 ; i32.const 0000065: 00 ; i32 literal 0000066: 0b ; end diff --git a/test/dump/table.txt b/test/dump/table.txt index 35ed24b2..baa5ab68 100644 --- a/test/dump/table.txt +++ b/test/dump/table.txt @@ -57,7 +57,7 @@ 0000026: 00 ; section size (guess) 0000027: 02 ; num elem segments ; elem segment header 0 -0000028: 00 ; table index +0000028: 00 0000029: 41 ; i32.const 000002a: 00 ; i32 literal 000002b: 0b ; end @@ -65,7 +65,7 @@ 000002d: 01 ; function index 000002e: 01 ; function index ; elem segment header 1 -000002f: 00 ; table index +000002f: 00 0000030: 41 ; i32.const 0000031: 02 ; i32 literal 0000032: 0b ; end diff --git a/test/help/spectest-interp.txt b/test/help/spectest-interp.txt index 58a4a447..8ad66af4 100644 --- a/test/help/spectest-interp.txt +++ b/test/help/spectest-interp.txt @@ -20,6 +20,7 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations -V, --value-stack-size=SIZE Size in elements of the value stack -C, --call-stack-size=SIZE Size in elements of the call stack -t, --trace Trace execution diff --git a/test/help/wasm-interp.txt b/test/help/wasm-interp.txt index fbe4f45b..77420472 100644 --- a/test/help/wasm-interp.txt +++ b/test/help/wasm-interp.txt @@ -31,6 +31,7 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations -V, --value-stack-size=SIZE Size in elements of the value stack -C, --call-stack-size=SIZE Size in elements of the call stack -t, --trace Trace execution diff --git a/test/help/wasm-validate.txt b/test/help/wasm-validate.txt index 7cd20039..4b1a45a8 100644 --- a/test/help/wasm-validate.txt +++ b/test/help/wasm-validate.txt @@ -20,6 +20,7 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations --no-debug-names Ignore debug names in the binary file --ignore-custom-section-errors Ignore errors in custom sections ;;; STDOUT ;;) diff --git a/test/help/wasm2wat.txt b/test/help/wasm2wat.txt index 30a2488d..38641fe1 100644 --- a/test/help/wasm2wat.txt +++ b/test/help/wasm2wat.txt @@ -26,6 +26,7 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations --inline-exports Write all exports inline --inline-imports Write all imports inline --no-debug-names Ignore debug names in the binary file diff --git a/test/help/wast2json.txt b/test/help/wast2json.txt index aa187b13..7b71d625 100644 --- a/test/help/wast2json.txt +++ b/test/help/wast2json.txt @@ -23,6 +23,7 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations -o, --output=FILE output wasm binary file -r, --relocatable Create a relocatable wasm binary (suitable for linking with e.g. lld) --no-canonicalize-leb128s Write all LEB128 sizes as 5-bytes instead of their minimal size diff --git a/test/help/wat-desugar.txt b/test/help/wat-desugar.txt index 8fc23c9c..383d10d1 100644 --- a/test/help/wat-desugar.txt +++ b/test/help/wat-desugar.txt @@ -30,5 +30,6 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations --generate-names Give auto-generated names to non-named functions, types, etc. ;;; STDOUT ;;) diff --git a/test/help/wat2wasm.txt b/test/help/wat2wasm.txt index b1be5c5f..853e1b92 100644 --- a/test/help/wat2wasm.txt +++ b/test/help/wat2wasm.txt @@ -30,6 +30,7 @@ options: --enable-threads Enable Threading support --enable-multi-value Enable Multi-value --enable-tail-call Enable Tail-call support + --enable-bulk-memory Enable Bulk-memory operations -o, --output=FILE output wasm binary file -r, --relocatable Create a relocatable wasm binary (suitable for linking with e.g. lld) --no-canonicalize-leb128s Write all LEB128 sizes as 5-bytes instead of their minimal size diff --git a/test/interp/logging-all-opcodes.txt b/test/interp/logging-all-opcodes.txt index 8970d88b..5b785ebb 100644 --- a/test/interp/logging-all-opcodes.txt +++ b/test/interp/logging-all-opcodes.txt @@ -2555,7 +2555,7 @@ 0001a1b: 00 ; section size (guess) 0001a1c: 01 ; num elem segments ; elem segment header 0 -0001a1d: 00 ; table index +0001a1d: 00 0001a1e: 41 ; i32.const 0001a1f: 00 ; i32 literal 0001a20: 0b ; end @@ -7996,7 +7996,7 @@ BeginModule(version: 1) EndExportSection BeginElemSection(8) OnElemSegmentCount(1) - BeginElemSegment(index: 0, table_index: 0) + BeginElemSegment(index: 0, table_index: 0, passive: false) BeginElemSegmentInitExpr(0) OnInitExprI32ConstExpr(index: 0, value: 0) EndElemSegmentInitExpr(0) diff --git a/test/parse/expr/memory-copy.txt b/test/parse/expr/memory-copy.txt new file mode 100644 index 00000000..2941d3fc --- /dev/null +++ b/test/parse/expr/memory-copy.txt @@ -0,0 +1,10 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + i32.const 0 + i32.const 0 + i32.const 0 + memory.copy)) diff --git a/test/parse/expr/memory-drop.txt b/test/parse/expr/memory-drop.txt new file mode 100644 index 00000000..2803ee0c --- /dev/null +++ b/test/parse/expr/memory-drop.txt @@ -0,0 +1,9 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + memory.drop 0) + + (data passive "hi")) diff --git a/test/parse/expr/memory-fill.txt b/test/parse/expr/memory-fill.txt new file mode 100644 index 00000000..940762af --- /dev/null +++ b/test/parse/expr/memory-fill.txt @@ -0,0 +1,10 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + i32.const 0 + i32.const 0 + i32.const 0 + memory.fill)) diff --git a/test/parse/expr/memory-init.txt b/test/parse/expr/memory-init.txt new file mode 100644 index 00000000..01b02c86 --- /dev/null +++ b/test/parse/expr/memory-init.txt @@ -0,0 +1,12 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + i32.const 0 + i32.const 0 + i32.const 0 + memory.init 0) + + (data passive "hi")) diff --git a/test/parse/expr/table-copy.txt b/test/parse/expr/table-copy.txt new file mode 100644 index 00000000..41a62fb8 --- /dev/null +++ b/test/parse/expr/table-copy.txt @@ -0,0 +1,12 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + i32.const 0 + i32.const 0 + i32.const 0 + table.copy) + + (table 0 anyfunc)) diff --git a/test/parse/expr/table-drop.txt b/test/parse/expr/table-drop.txt new file mode 100644 index 00000000..7705f3f6 --- /dev/null +++ b/test/parse/expr/table-drop.txt @@ -0,0 +1,12 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + table.drop 0) + + (func) + + (table 0 anyfunc) + (elem passive 1)) diff --git a/test/parse/expr/table-init.txt b/test/parse/expr/table-init.txt new file mode 100644 index 00000000..4673c644 --- /dev/null +++ b/test/parse/expr/table-init.txt @@ -0,0 +1,15 @@ +;;; TOOL: wat2wasm +;;; ARGS: --enable-bulk-memory +(module + (memory 0) + + (func + i32.const 0 + i32.const 0 + i32.const 0 + table.init 0) + + (func) + + (table 0 anyfunc) + (elem passive 1)) diff --git a/test/parse/module/memory-segment-passive.txt b/test/parse/module/memory-segment-passive.txt new file mode 100644 index 00000000..0eb64787 --- /dev/null +++ b/test/parse/module/memory-segment-passive.txt @@ -0,0 +1,4 @@ +;;; TOOL: wat2wasm +(module + (memory 1) + (data passive "hi")) diff --git a/test/roundtrip/bulk-memory.txt b/test/roundtrip/bulk-memory.txt new file mode 100644 index 00000000..f2df7561 --- /dev/null +++ b/test/roundtrip/bulk-memory.txt @@ -0,0 +1,75 @@ +;;; TOOL: run-roundtrip +;;; ARGS: --stdout --enable-bulk-memory +(module + (memory 0) + (table 0 anyfunc) + + (func + i32.const 0 + i32.const 0 + i32.const 0 + memory.init 0 + + memory.drop 0 + + i32.const 0 + i32.const 0 + i32.const 0 + memory.copy + + i32.const 0 + i32.const 0 + i32.const 0 + memory.fill + + i32.const 0 + i32.const 0 + i32.const 0 + table.init 0 + + table.drop 0 + + i32.const 0 + i32.const 0 + i32.const 0 + table.copy + + ) + + (func) + + (data passive "hi") + (elem passive 1) + ) +(;; STDOUT ;;; +(module + (type (;0;) (func)) + (func (;0;) (type 0) + i32.const 0 + i32.const 0 + i32.const 0 + memory.init 0 + memory.drop 0 + i32.const 0 + i32.const 0 + i32.const 0 + memory.copy + i32.const 0 + i32.const 0 + i32.const 0 + memory.fill + i32.const 0 + i32.const 0 + i32.const 0 + table.init 0 + table.drop 0 + i32.const 0 + i32.const 0 + i32.const 0 + table.copy) + (func (;1;) (type 0)) + (table (;0;) 0 anyfunc) + (memory (;0;) 0) + (elem passive 1) + (data passive "hi")) +;;; STDOUT ;;) diff --git a/test/run-roundtrip.py b/test/run-roundtrip.py index 20466c21..8eba3b49 100755 --- a/test/run-roundtrip.py +++ b/test/run-roundtrip.py @@ -122,6 +122,7 @@ def main(args): parser.add_argument('--enable-simd', action='store_true') parser.add_argument('--enable-sign-extension', action='store_true') parser.add_argument('--enable-multi-value', action='store_true') + parser.add_argument('--enable-bulk-memory', action='store_true') parser.add_argument('--inline-exports', action='store_true') parser.add_argument('--inline-imports', action='store_true') parser.add_argument('file', help='test file.') @@ -139,6 +140,7 @@ def main(args): '--enable-sign-extension': options.enable_sign_extension, '--enable-simd': options.enable_simd, '--enable-threads': options.enable_threads, + '--enable-bulk-memory': options.enable_bulk_memory, '--no-check': options.no_check, }) @@ -153,6 +155,7 @@ def main(args): options.enable_saturating_float_to_int, '--enable-sign-extension': options.enable_sign_extension, '--enable-simd': options.enable_simd, + '--enable-bulk-memory': options.enable_bulk_memory, '--enable-threads': options.enable_threads, '--inline-exports': options.inline_exports, '--inline-imports': options.inline_imports, |