diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/apply-names.cc | 20 | ||||
-rw-r--r-- | src/binary-reader-ir.cc | 50 | ||||
-rw-r--r-- | src/binary-reader-logging.cc | 14 | ||||
-rw-r--r-- | src/binary-reader-logging.h | 18 | ||||
-rw-r--r-- | src/binary-reader-nop.h | 14 | ||||
-rw-r--r-- | src/binary-reader-objdump.cc | 8 | ||||
-rw-r--r-- | src/binary-reader.cc | 180 | ||||
-rw-r--r-- | src/binary-reader.h | 26 | ||||
-rw-r--r-- | src/binary-writer.cc | 56 | ||||
-rw-r--r-- | src/c-writer.cc | 110 | ||||
-rw-r--r-- | src/expr-visitor.cc | 35 | ||||
-rw-r--r-- | src/expr-visitor.h | 24 | ||||
-rw-r--r-- | src/interp/binary-reader-interp.cc | 58 | ||||
-rw-r--r-- | src/interp/interp-disassemble.cc | 150 | ||||
-rw-r--r-- | src/interp/interp-trace.cc | 150 | ||||
-rw-r--r-- | src/interp/interp.cc | 100 | ||||
-rw-r--r-- | src/ir.cc | 14 | ||||
-rw-r--r-- | src/ir.h | 26 | ||||
-rw-r--r-- | src/opcode.cc | 104 | ||||
-rw-r--r-- | src/opcode.def | 164 | ||||
-rw-r--r-- | src/prebuilt/wast-lexer-gen.cc | 17942 | ||||
-rw-r--r-- | src/resolve-names.cc | 42 | ||||
-rw-r--r-- | src/token.def | 14 | ||||
-rw-r--r-- | src/type-checker.cc | 40 | ||||
-rw-r--r-- | src/type-checker.h | 12 | ||||
-rw-r--r-- | src/validator.cc | 88 | ||||
-rw-r--r-- | src/wast-lexer.cc | 211 | ||||
-rw-r--r-- | src/wast-parser.cc | 44 | ||||
-rw-r--r-- | src/wat-writer.cc | 75 |
29 files changed, 10433 insertions, 9356 deletions
diff --git a/src/apply-names.cc b/src/apply-names.cc index e03b2377..1c66428e 100644 --- a/src/apply-names.cc +++ b/src/apply-names.cc @@ -44,21 +44,21 @@ class NameApplier : public ExprVisitor::DelegateNop { Result OnCallIndirectExpr(CallIndirectExpr*) override; Result OnReturnCallExpr(ReturnCallExpr*) override; Result OnReturnCallIndirectExpr(ReturnCallIndirectExpr*) override; - Result OnGetGlobalExpr(GetGlobalExpr*) override; - Result OnGetLocalExpr(GetLocalExpr*) override; + Result OnGlobalGetExpr(GlobalGetExpr*) override; + Result OnGlobalSetExpr(GlobalSetExpr*) override; Result BeginIfExpr(IfExpr*) override; Result EndIfExpr(IfExpr*) override; Result BeginIfExceptExpr(IfExceptExpr*) override; Result EndIfExceptExpr(IfExceptExpr*) override; + Result OnLocalGetExpr(LocalGetExpr*) override; + Result OnLocalSetExpr(LocalSetExpr*) override; + Result OnLocalTeeExpr(LocalTeeExpr*) override; Result BeginLoopExpr(LoopExpr*) override; Result EndLoopExpr(LoopExpr*) override; Result OnMemoryDropExpr(MemoryDropExpr*) override; Result OnMemoryInitExpr(MemoryInitExpr*) override; - Result OnSetGlobalExpr(SetGlobalExpr*) override; - Result OnSetLocalExpr(SetLocalExpr*) override; Result OnTableDropExpr(TableDropExpr*) override; Result OnTableInitExpr(TableInitExpr*) override; - Result OnTeeLocalExpr(TeeLocalExpr*) override; Result BeginTryExpr(TryExpr*) override; Result EndTryExpr(TryExpr*) override; Result OnThrowExpr(ThrowExpr*) override; @@ -320,12 +320,12 @@ Result NameApplier::OnReturnCallIndirectExpr(ReturnCallIndirectExpr* expr) { return Result::Ok; } -Result NameApplier::OnGetGlobalExpr(GetGlobalExpr* expr) { +Result NameApplier::OnGlobalGetExpr(GlobalGetExpr* expr) { CHECK_RESULT(UseNameForGlobalVar(&expr->var)); return Result::Ok; } -Result NameApplier::OnGetLocalExpr(GetLocalExpr* expr) { +Result NameApplier::OnLocalGetExpr(LocalGetExpr* expr) { CHECK_RESULT(UseNameForParamAndLocalVar(current_func_, &expr->var)); return Result::Ok; } @@ -351,17 +351,17 @@ Result NameApplier::EndIfExceptExpr(IfExceptExpr* expr) { return Result::Ok; } -Result NameApplier::OnSetGlobalExpr(SetGlobalExpr* expr) { +Result NameApplier::OnGlobalSetExpr(GlobalSetExpr* expr) { CHECK_RESULT(UseNameForGlobalVar(&expr->var)); return Result::Ok; } -Result NameApplier::OnSetLocalExpr(SetLocalExpr* expr) { +Result NameApplier::OnLocalSetExpr(LocalSetExpr* expr) { CHECK_RESULT(UseNameForParamAndLocalVar(current_func_, &expr->var)); return Result::Ok; } -Result NameApplier::OnTeeLocalExpr(TeeLocalExpr* expr) { +Result NameApplier::OnLocalTeeExpr(LocalTeeExpr* expr) { CHECK_RESULT(UseNameForParamAndLocalVar(current_func_, &expr->var)); return Result::Ok; } diff --git a/src/binary-reader-ir.cc b/src/binary-reader-ir.cc index dd4ad01a..a215117f 100644 --- a/src/binary-reader-ir.cc +++ b/src/binary-reader-ir.cc @@ -130,9 +130,9 @@ class BinaryReaderIR : public BinaryReaderNop { wabt::Result OnAtomicWaitExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; - wabt::Result OnAtomicWakeExpr(Opcode opcode, - uint32_t alignment_log2, - Address offset) override; + wabt::Result OnAtomicNotifyExpr(Opcode opcode, + uint32_t alignment_log2, + Address offset) override; Result OnBinaryExpr(Opcode opcode) override; Result OnBlockExpr(Type sig_type) override; Result OnBrExpr(Index depth) override; @@ -153,8 +153,8 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnF32ConstExpr(uint32_t value_bits) override; Result OnF64ConstExpr(uint64_t value_bits) override; Result OnV128ConstExpr(v128 value_bits) override; - Result OnGetGlobalExpr(Index global_index) override; - Result OnGetLocalExpr(Index local_index) override; + Result OnGlobalGetExpr(Index global_index) override; + Result OnGlobalSetExpr(Index global_index) override; Result OnI32ConstExpr(uint32_t value) override; Result OnI64ConstExpr(uint64_t value) override; Result OnIfExpr(Type sig_type) override; @@ -162,6 +162,9 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnLoadExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; + Result OnLocalGetExpr(Index local_index) override; + Result OnLocalSetExpr(Index local_index) override; + Result OnLocalTeeExpr(Index local_index) override; Result OnLoopExpr(Type sig_type) override; Result OnMemoryCopyExpr() override; Result OnMemoryDropExpr(Index segment_index) override; @@ -176,13 +179,10 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnRethrowExpr() override; Result OnReturnExpr() override; Result OnSelectExpr() override; - Result OnSetGlobalExpr(Index global_index) override; - Result OnSetLocalExpr(Index local_index) override; Result OnStoreExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; Result OnThrowExpr(Index except_index) override; - Result OnTeeLocalExpr(Index local_index) override; Result OnTryExpr(Type sig_type) override; Result OnUnaryExpr(Opcode opcode) override; Result OnTernaryExpr(Opcode opcode) override; @@ -223,7 +223,7 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnInitExprF32ConstExpr(Index index, uint32_t value) override; Result OnInitExprF64ConstExpr(Index index, uint64_t value) override; Result OnInitExprV128ConstExpr(Index index, v128 value) override; - Result OnInitExprGetGlobalExpr(Index index, Index global_index) override; + Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; @@ -620,11 +620,11 @@ wabt::Result BinaryReaderIR::OnAtomicWaitExpr(Opcode opcode, MakeUnique<AtomicWaitExpr>(opcode, 1 << alignment_log2, offset)); } -wabt::Result BinaryReaderIR::OnAtomicWakeExpr(Opcode opcode, - uint32_t alignment_log2, - Address offset) { +wabt::Result BinaryReaderIR::OnAtomicNotifyExpr(Opcode opcode, + uint32_t alignment_log2, + Address offset) { return AppendExpr( - MakeUnique<AtomicWakeExpr>(opcode, 1 << alignment_log2, offset)); + MakeUnique<AtomicNotifyExpr>(opcode, 1 << alignment_log2, offset)); } Result BinaryReaderIR::OnBinaryExpr(Opcode opcode) { @@ -773,13 +773,13 @@ Result BinaryReaderIR::OnV128ConstExpr(v128 value_bits) { MakeUnique<ConstExpr>(Const::V128(value_bits, GetLocation()))); } -Result BinaryReaderIR::OnGetGlobalExpr(Index global_index) { +Result BinaryReaderIR::OnGlobalGetExpr(Index global_index) { return AppendExpr( - MakeUnique<GetGlobalExpr>(Var(global_index, GetLocation()))); + MakeUnique<GlobalGetExpr>(Var(global_index, GetLocation()))); } -Result BinaryReaderIR::OnGetLocalExpr(Index local_index) { - return AppendExpr(MakeUnique<GetLocalExpr>(Var(local_index, GetLocation()))); +Result BinaryReaderIR::OnLocalGetExpr(Index local_index) { + return AppendExpr(MakeUnique<LocalGetExpr>(Var(local_index, GetLocation()))); } Result BinaryReaderIR::OnI32ConstExpr(uint32_t value) { @@ -876,13 +876,13 @@ Result BinaryReaderIR::OnSelectExpr() { return AppendExpr(MakeUnique<SelectExpr>()); } -Result BinaryReaderIR::OnSetGlobalExpr(Index global_index) { +Result BinaryReaderIR::OnGlobalSetExpr(Index global_index) { return AppendExpr( - MakeUnique<SetGlobalExpr>(Var(global_index, GetLocation()))); + MakeUnique<GlobalSetExpr>(Var(global_index, GetLocation()))); } -Result BinaryReaderIR::OnSetLocalExpr(Index local_index) { - return AppendExpr(MakeUnique<SetLocalExpr>(Var(local_index, GetLocation()))); +Result BinaryReaderIR::OnLocalSetExpr(Index local_index) { + return AppendExpr(MakeUnique<LocalSetExpr>(Var(local_index, GetLocation()))); } Result BinaryReaderIR::OnStoreExpr(Opcode opcode, @@ -895,8 +895,8 @@ Result BinaryReaderIR::OnThrowExpr(Index except_index) { return AppendExpr(MakeUnique<ThrowExpr>(Var(except_index, GetLocation()))); } -Result BinaryReaderIR::OnTeeLocalExpr(Index local_index) { - return AppendExpr(MakeUnique<TeeLocalExpr>(Var(local_index, GetLocation()))); +Result BinaryReaderIR::OnLocalTeeExpr(Index local_index) { + return AppendExpr(MakeUnique<LocalTeeExpr>(Var(local_index, GetLocation()))); } Result BinaryReaderIR::OnTryExpr(Type sig_type) { @@ -1114,11 +1114,11 @@ Result BinaryReaderIR::OnInitExprV128ConstExpr(Index index, v128 value) { return Result::Ok; } -Result BinaryReaderIR::OnInitExprGetGlobalExpr(Index index, +Result BinaryReaderIR::OnInitExprGlobalGetExpr(Index index, Index global_index) { Location loc = GetLocation(); current_init_expr_->push_back( - MakeUnique<GetGlobalExpr>(Var(global_index, loc), loc)); + MakeUnique<GlobalGetExpr>(Var(global_index, loc), loc)); return Result::Ok; } diff --git a/src/binary-reader-logging.cc b/src/binary-reader-logging.cc index 934e125c..bb89fb9d 100644 --- a/src/binary-reader-logging.cc +++ b/src/binary-reader-logging.cc @@ -681,7 +681,7 @@ DEFINE_LOAD_STORE_OPCODE(OnAtomicRmwExpr); DEFINE_LOAD_STORE_OPCODE(OnAtomicRmwCmpxchgExpr); DEFINE_LOAD_STORE_OPCODE(OnAtomicStoreExpr); DEFINE_LOAD_STORE_OPCODE(OnAtomicWaitExpr); -DEFINE_LOAD_STORE_OPCODE(OnAtomicWakeExpr); +DEFINE_LOAD_STORE_OPCODE(OnAtomicNotifyExpr); DEFINE_OPCODE(OnBinaryExpr) DEFINE_INDEX_DESC(OnCallExpr, "func_index") DEFINE_INDEX_DESC(OnCallIndirectExpr, "sig_index") @@ -691,9 +691,12 @@ DEFINE_OPCODE(OnConvertExpr) DEFINE0(OnDropExpr) DEFINE0(OnElseExpr) DEFINE0(OnEndExpr) -DEFINE_INDEX_DESC(OnGetGlobalExpr, "index") -DEFINE_INDEX_DESC(OnGetLocalExpr, "index") +DEFINE_INDEX_DESC(OnGlobalGetExpr, "index") +DEFINE_INDEX_DESC(OnGlobalSetExpr, "index") DEFINE_LOAD_STORE_OPCODE(OnLoadExpr); +DEFINE_INDEX_DESC(OnLocalGetExpr, "index") +DEFINE_INDEX_DESC(OnLocalSetExpr, "index") +DEFINE_INDEX_DESC(OnLocalTeeExpr, "index") DEFINE0(OnMemoryCopyExpr) DEFINE_INDEX(OnMemoryDropExpr) DEFINE0(OnMemoryFillExpr) @@ -710,10 +713,7 @@ DEFINE_INDEX_DESC(OnReturnCallExpr, "func_index") DEFINE_INDEX_DESC(OnReturnCallIndirectExpr, "sig_index") DEFINE0(OnReturnExpr) DEFINE0(OnSelectExpr) -DEFINE_INDEX_DESC(OnSetGlobalExpr, "index") -DEFINE_INDEX_DESC(OnSetLocalExpr, "index") DEFINE_LOAD_STORE_OPCODE(OnStoreExpr); -DEFINE_INDEX_DESC(OnTeeLocalExpr, "index") DEFINE_INDEX_DESC(OnThrowExpr, "except_index") DEFINE0(OnUnreachableExpr) DEFINE_OPCODE(OnUnaryExpr) @@ -746,7 +746,7 @@ DEFINE_END(EndNamesSection) DEFINE_BEGIN(BeginRelocSection) DEFINE_END(EndRelocSection) -DEFINE_INDEX_INDEX(OnInitExprGetGlobalExpr, "index", "global_index") +DEFINE_INDEX_INDEX(OnInitExprGlobalGetExpr, "index", "global_index") DEFINE_BEGIN(BeginDylinkSection) DEFINE_INDEX(OnDylinkNeededCount) diff --git a/src/binary-reader-logging.h b/src/binary-reader-logging.h index 32480306..0f2c509a 100644 --- a/src/binary-reader-logging.h +++ b/src/binary-reader-logging.h @@ -165,8 +165,8 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnF32ConstExpr(uint32_t value_bits) override; Result OnF64ConstExpr(uint64_t value_bits) override; Result OnV128ConstExpr(v128 value_bits) override; - Result OnGetGlobalExpr(Index global_index) override; - Result OnGetLocalExpr(Index local_index) override; + Result OnGlobalGetExpr(Index global_index) override; + Result OnGlobalSetExpr(Index global_index) override; Result OnI32ConstExpr(uint32_t value) override; Result OnI64ConstExpr(uint64_t value) override; Result OnIfExpr(Type sig_type) override; @@ -174,6 +174,9 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnLoadExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; + Result OnLocalGetExpr(Index local_index) override; + Result OnLocalSetExpr(Index local_index) override; + Result OnLocalTeeExpr(Index local_index) override; Result OnLoopExpr(Type sig_type) override; Result OnMemoryCopyExpr() override; Result OnMemoryDropExpr(Index segment_index) override; @@ -190,12 +193,9 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnReturnCallIndirectExpr(Index sig_index) override; Result OnReturnExpr() override; Result OnSelectExpr() override; - Result OnSetGlobalExpr(Index global_index) override; - Result OnSetLocalExpr(Index local_index) override; Result OnStoreExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; - Result OnTeeLocalExpr(Index local_index) override; Result OnThrowExpr(Index except_index) override; Result OnTryExpr(Type sig_type) override; Result OnUnaryExpr(Opcode opcode) override; @@ -204,9 +204,9 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnAtomicWaitExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; - Result OnAtomicWakeExpr(Opcode opcode, - uint32_t alignment_log2, - Address offset) override; + Result OnAtomicNotifyExpr(Opcode opcode, + uint32_t alignment_log2, + Address offset) override; Result EndFunctionBody(Index index) override; Result EndCodeSection() override; Result OnSimdLaneOpExpr(Opcode opcode, uint64_t value) override; @@ -308,7 +308,7 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnInitExprF32ConstExpr(Index index, uint32_t value) override; Result OnInitExprF64ConstExpr(Index index, uint64_t value) override; Result OnInitExprV128ConstExpr(Index index, v128 value) override; - Result OnInitExprGetGlobalExpr(Index index, Index global_index) override; + Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; diff --git a/src/binary-reader-nop.h b/src/binary-reader-nop.h index 5cb926a9..bfab11d8 100644 --- a/src/binary-reader-nop.h +++ b/src/binary-reader-nop.h @@ -199,7 +199,7 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnAtomicWaitExpr(Opcode, uint32_t, Address) override { return Result::Ok; } - Result OnAtomicWakeExpr(Opcode, uint32_t, Address) override { + Result OnAtomicNotifyExpr(Opcode, uint32_t, Address) override { return Result::Ok; } Result OnBinaryExpr(Opcode opcode) override { return Result::Ok; } @@ -223,8 +223,8 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnF32ConstExpr(uint32_t value_bits) override { return Result::Ok; } Result OnF64ConstExpr(uint64_t value_bits) override { return Result::Ok; } Result OnV128ConstExpr(v128 value_bits) override { return Result::Ok; } - Result OnGetGlobalExpr(Index global_index) override { return Result::Ok; } - Result OnGetLocalExpr(Index local_index) override { return Result::Ok; } + Result OnGlobalGetExpr(Index global_index) override { return Result::Ok; } + Result OnGlobalSetExpr(Index global_index) override { return Result::Ok; } Result OnI32ConstExpr(uint32_t value) override { return Result::Ok; } Result OnI64ConstExpr(uint64_t value) override { return Result::Ok; } Result OnIfExpr(Type sig_type) override { return Result::Ok; } @@ -236,6 +236,9 @@ class BinaryReaderNop : public BinaryReaderDelegate { Address offset) override { return Result::Ok; } + Result OnLocalGetExpr(Index local_index) override { return Result::Ok; } + Result OnLocalSetExpr(Index local_index) override { return Result::Ok; } + Result OnLocalTeeExpr(Index local_index) override { 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; } @@ -252,14 +255,11 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnReturnCallIndirectExpr(Index sig_index) override { return Result::Ok; } Result OnReturnExpr() override { return Result::Ok; } Result OnSelectExpr() override { return Result::Ok; } - Result OnSetGlobalExpr(Index global_index) override { return Result::Ok; } - Result OnSetLocalExpr(Index local_index) override { return Result::Ok; } Result OnStoreExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override { return Result::Ok; } - Result OnTeeLocalExpr(Index local_index) override { return Result::Ok; } Result OnThrowExpr(Index depth) override { return Result::Ok; } Result OnTryExpr(Type sig_type) override { return Result::Ok; } Result OnUnaryExpr(Opcode opcode) override { return Result::Ok; } @@ -436,7 +436,7 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnInitExprV128ConstExpr(Index index, v128 value) override { return Result::Ok; } - Result OnInitExprGetGlobalExpr(Index index, Index global_index) override { + Result OnInitExprGlobalGetExpr(Index index, Index global_index) override { return Result::Ok; } Result OnInitExprI32ConstExpr(Index index, uint32_t value) override { diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index ca5e4332..1cd636a6 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -517,8 +517,8 @@ Result BinaryReaderObjdumpDisassemble::OnOpcodeIndex(Index value) { const char* name; if (current_opcode == Opcode::Call && (name = GetFunctionName(value))) { LogOpcode(immediate_len, "%d <%s>", value, name); - } else if ((current_opcode == Opcode::GetGlobal || - current_opcode == Opcode::SetGlobal) && + } else if ((current_opcode == Opcode::GlobalGet || + current_opcode == Opcode::GlobalSet) && (name = GetGlobalName(value))) { LogOpcode(immediate_len, "%d <%s>", value, name); } else { @@ -761,7 +761,7 @@ class BinaryReaderObjdump : public BinaryReaderObjdumpBase { Result OnInitExprF32ConstExpr(Index index, uint32_t value) override; Result OnInitExprF64ConstExpr(Index index, uint64_t value) override; Result OnInitExprV128ConstExpr(Index index, v128 value) override; - Result OnInitExprGetGlobalExpr(Index index, Index global_index) override; + Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; @@ -1258,7 +1258,7 @@ Result BinaryReaderObjdump::OnInitExprV128ConstExpr(Index index, v128 value) { return Result::Ok; } -Result BinaryReaderObjdump::OnInitExprGetGlobalExpr(Index index, +Result BinaryReaderObjdump::OnInitExprGlobalGetExpr(Index index, Index global_index) { InitExpr expr; expr.type = InitExprType::Global; diff --git a/src/binary-reader.cc b/src/binary-reader.cc index ebdcb547..9e048410 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -460,10 +460,10 @@ Result BinaryReader::ReadInitExpr(Index index, bool require_i32) { break; } - case Opcode::GetGlobal: { + case Opcode::GlobalGet: { Index global_index; - CHECK_RESULT(ReadIndex(&global_index, "init_expr get_global index")); - CALLBACK(OnInitExprGetGlobalExpr, index, global_index); + CHECK_RESULT(ReadIndex(&global_index, "init_expr global.get index")); + CALLBACK(OnInitExprGlobalGetExpr, index, global_index); break; } @@ -475,7 +475,7 @@ Result BinaryReader::ReadInitExpr(Index index, bool require_i32) { } if (require_i32 && opcode != Opcode::I32Const && - opcode != Opcode::GetGlobal) { + opcode != Opcode::GlobalGet) { PrintError("expected i32 init_expr"); return Result::Error; } @@ -706,34 +706,34 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { break; } - case Opcode::GetGlobal: { + case Opcode::GlobalGet: { Index global_index; - CHECK_RESULT(ReadIndex(&global_index, "get_global global index")); - CALLBACK(OnGetGlobalExpr, global_index); + CHECK_RESULT(ReadIndex(&global_index, "global.get global index")); + CALLBACK(OnGlobalGetExpr, global_index); CALLBACK(OnOpcodeIndex, global_index); break; } - case Opcode::GetLocal: { + case Opcode::LocalGet: { Index local_index; - CHECK_RESULT(ReadIndex(&local_index, "get_local local index")); - CALLBACK(OnGetLocalExpr, local_index); + CHECK_RESULT(ReadIndex(&local_index, "local.get local index")); + CALLBACK(OnLocalGetExpr, local_index); CALLBACK(OnOpcodeIndex, local_index); break; } - case Opcode::SetGlobal: { + case Opcode::GlobalSet: { Index global_index; - CHECK_RESULT(ReadIndex(&global_index, "set_global global index")); - CALLBACK(OnSetGlobalExpr, global_index); + CHECK_RESULT(ReadIndex(&global_index, "global.set global index")); + CALLBACK(OnGlobalSetExpr, global_index); CALLBACK(OnOpcodeIndex, global_index); break; } - case Opcode::SetLocal: { + case Opcode::LocalSet: { Index local_index; - CHECK_RESULT(ReadIndex(&local_index, "set_local local index")); - CALLBACK(OnSetLocalExpr, local_index); + CHECK_RESULT(ReadIndex(&local_index, "local.set local index")); + CALLBACK(OnLocalSetExpr, local_index); CALLBACK(OnOpcodeIndex, local_index); break; } @@ -787,10 +787,10 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { break; } - case Opcode::TeeLocal: { + case Opcode::LocalTee: { Index local_index; - CHECK_RESULT(ReadIndex(&local_index, "tee_local local index")); - CALLBACK(OnTeeLocalExpr, local_index); + CHECK_RESULT(ReadIndex(&local_index, "local.tee local index")); + CALLBACK(OnLocalTeeExpr, local_index); CALLBACK(OnOpcodeIndex, local_index); break; } @@ -1113,41 +1113,41 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { break; } - case Opcode::I32TruncSF32: - case Opcode::I32TruncSF64: - case Opcode::I32TruncUF32: - case Opcode::I32TruncUF64: + case Opcode::I32TruncF32S: + case Opcode::I32TruncF64S: + case Opcode::I32TruncF32U: + case Opcode::I32TruncF64U: case Opcode::I32WrapI64: - case Opcode::I64TruncSF32: - case Opcode::I64TruncSF64: - case Opcode::I64TruncUF32: - case Opcode::I64TruncUF64: - case Opcode::I64ExtendSI32: - case Opcode::I64ExtendUI32: - case Opcode::F32ConvertSI32: - case Opcode::F32ConvertUI32: - case Opcode::F32ConvertSI64: - case Opcode::F32ConvertUI64: + case Opcode::I64TruncF32S: + case Opcode::I64TruncF64S: + case Opcode::I64TruncF32U: + case Opcode::I64TruncF64U: + case Opcode::I64ExtendI32S: + case Opcode::I64ExtendI32U: + case Opcode::F32ConvertI32S: + case Opcode::F32ConvertI32U: + case Opcode::F32ConvertI64S: + case Opcode::F32ConvertI64U: case Opcode::F32DemoteF64: case Opcode::F32ReinterpretI32: - case Opcode::F64ConvertSI32: - case Opcode::F64ConvertUI32: - case Opcode::F64ConvertSI64: - case Opcode::F64ConvertUI64: + case Opcode::F64ConvertI32S: + case Opcode::F64ConvertI32U: + case Opcode::F64ConvertI64S: + case Opcode::F64ConvertI64U: case Opcode::F64PromoteF32: case Opcode::F64ReinterpretI64: case Opcode::I32ReinterpretF32: case Opcode::I64ReinterpretF64: case Opcode::I32Eqz: case Opcode::I64Eqz: - case Opcode::F32X4ConvertSI32X4: - case Opcode::F32X4ConvertUI32X4: - case Opcode::F64X2ConvertSI64X2: - case Opcode::F64X2ConvertUI64X2: - case Opcode::I32X4TruncSF32X4Sat: - case Opcode::I32X4TruncUF32X4Sat: - case Opcode::I64X2TruncSF64X2Sat: - case Opcode::I64X2TruncUF64X2Sat: + case Opcode::F32X4ConvertI32X4S: + case Opcode::F32X4ConvertI32X4U: + case Opcode::F64X2ConvertI64X2S: + case Opcode::F64X2ConvertI64X2U: + case Opcode::I32X4TruncSatF32X4S: + case Opcode::I32X4TruncSatF32X4U: + case Opcode::I64X2TruncSatF64X2S: + case Opcode::I64X2TruncSatF64X2U: CALLBACK(OnConvertExpr, opcode); CALLBACK0(OnOpcodeBare); break; @@ -1202,25 +1202,25 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { CALLBACK0(OnOpcodeBare); break; - case Opcode::I32TruncSSatF32: - case Opcode::I32TruncUSatF32: - case Opcode::I32TruncSSatF64: - case Opcode::I32TruncUSatF64: - case Opcode::I64TruncSSatF32: - case Opcode::I64TruncUSatF32: - case Opcode::I64TruncSSatF64: - case Opcode::I64TruncUSatF64: + case Opcode::I32TruncSatF32S: + case Opcode::I32TruncSatF32U: + case Opcode::I32TruncSatF64S: + case Opcode::I32TruncSatF64U: + case Opcode::I64TruncSatF32S: + case Opcode::I64TruncSatF32U: + case Opcode::I64TruncSatF64S: + case Opcode::I64TruncSatF64U: CALLBACK(OnConvertExpr, opcode); CALLBACK0(OnOpcodeBare); break; - case Opcode::AtomicWake: { + case Opcode::AtomicNotify: { uint32_t alignment_log2; CHECK_RESULT(ReadU32Leb128(&alignment_log2, "load alignment")); Address offset; CHECK_RESULT(ReadU32Leb128(&offset, "load offset")); - CALLBACK(OnAtomicWakeExpr, opcode, alignment_log2, offset); + CALLBACK(OnAtomicNotifyExpr, opcode, alignment_log2, offset); CALLBACK(OnOpcodeUint32Uint32, alignment_log2, offset); break; } @@ -1273,46 +1273,46 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { case Opcode::I32AtomicRmwAdd: case Opcode::I64AtomicRmwAdd: - case Opcode::I32AtomicRmw8UAdd: - case Opcode::I32AtomicRmw16UAdd: - case Opcode::I64AtomicRmw8UAdd: - case Opcode::I64AtomicRmw16UAdd: - case Opcode::I64AtomicRmw32UAdd: + case Opcode::I32AtomicRmw8AddU: + case Opcode::I32AtomicRmw16AddU: + case Opcode::I64AtomicRmw8AddU: + case Opcode::I64AtomicRmw16AddU: + case Opcode::I64AtomicRmw32AddU: case Opcode::I32AtomicRmwSub: case Opcode::I64AtomicRmwSub: - case Opcode::I32AtomicRmw8USub: - case Opcode::I32AtomicRmw16USub: - case Opcode::I64AtomicRmw8USub: - case Opcode::I64AtomicRmw16USub: - case Opcode::I64AtomicRmw32USub: + case Opcode::I32AtomicRmw8SubU: + case Opcode::I32AtomicRmw16SubU: + case Opcode::I64AtomicRmw8SubU: + case Opcode::I64AtomicRmw16SubU: + case Opcode::I64AtomicRmw32SubU: case Opcode::I32AtomicRmwAnd: case Opcode::I64AtomicRmwAnd: - case Opcode::I32AtomicRmw8UAnd: - case Opcode::I32AtomicRmw16UAnd: - case Opcode::I64AtomicRmw8UAnd: - case Opcode::I64AtomicRmw16UAnd: - case Opcode::I64AtomicRmw32UAnd: + case Opcode::I32AtomicRmw8AndU: + case Opcode::I32AtomicRmw16AndU: + case Opcode::I64AtomicRmw8AndU: + case Opcode::I64AtomicRmw16AndU: + case Opcode::I64AtomicRmw32AndU: case Opcode::I32AtomicRmwOr: case Opcode::I64AtomicRmwOr: - case Opcode::I32AtomicRmw8UOr: - case Opcode::I32AtomicRmw16UOr: - case Opcode::I64AtomicRmw8UOr: - case Opcode::I64AtomicRmw16UOr: - case Opcode::I64AtomicRmw32UOr: + case Opcode::I32AtomicRmw8OrU: + case Opcode::I32AtomicRmw16OrU: + case Opcode::I64AtomicRmw8OrU: + case Opcode::I64AtomicRmw16OrU: + case Opcode::I64AtomicRmw32OrU: case Opcode::I32AtomicRmwXor: case Opcode::I64AtomicRmwXor: - case Opcode::I32AtomicRmw8UXor: - case Opcode::I32AtomicRmw16UXor: - case Opcode::I64AtomicRmw8UXor: - case Opcode::I64AtomicRmw16UXor: - case Opcode::I64AtomicRmw32UXor: + case Opcode::I32AtomicRmw8XorU: + case Opcode::I32AtomicRmw16XorU: + case Opcode::I64AtomicRmw8XorU: + case Opcode::I64AtomicRmw16XorU: + case Opcode::I64AtomicRmw32XorU: case Opcode::I32AtomicRmwXchg: case Opcode::I64AtomicRmwXchg: - case Opcode::I32AtomicRmw8UXchg: - case Opcode::I32AtomicRmw16UXchg: - case Opcode::I64AtomicRmw8UXchg: - case Opcode::I64AtomicRmw16UXchg: - case Opcode::I64AtomicRmw32UXchg: { + case Opcode::I32AtomicRmw8XchgU: + case Opcode::I32AtomicRmw16XchgU: + case Opcode::I64AtomicRmw8XchgU: + case Opcode::I64AtomicRmw16XchgU: + case Opcode::I64AtomicRmw32XchgU: { uint32_t alignment_log2; CHECK_RESULT(ReadU32Leb128(&alignment_log2, "memory alignment")); Address offset; @@ -1325,11 +1325,11 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { case Opcode::I32AtomicRmwCmpxchg: case Opcode::I64AtomicRmwCmpxchg: - case Opcode::I32AtomicRmw8UCmpxchg: - case Opcode::I32AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw8UCmpxchg: - case Opcode::I64AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw32UCmpxchg: { + case Opcode::I32AtomicRmw8CmpxchgU: + case Opcode::I32AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw8CmpxchgU: + case Opcode::I64AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw32CmpxchgU: { uint32_t alignment_log2; CHECK_RESULT(ReadU32Leb128(&alignment_log2, "memory alignment")); Address offset; diff --git a/src/binary-reader.h b/src/binary-reader.h index 743103e9..98334440 100644 --- a/src/binary-reader.h +++ b/src/binary-reader.h @@ -199,9 +199,9 @@ class BinaryReaderDelegate { virtual Result OnAtomicWaitExpr(Opcode opcode, uint32_t alignment_log2, Address offset) = 0; - virtual Result OnAtomicWakeExpr(Opcode opcode, - uint32_t alignment_log2, - Address offset) = 0; + virtual Result OnAtomicNotifyExpr(Opcode opcode, + uint32_t alignment_log2, + Address offset) = 0; virtual Result OnBinaryExpr(Opcode opcode) = 0; virtual Result OnBlockExpr(Type sig_type) = 0; virtual Result OnBrExpr(Index depth) = 0; @@ -221,8 +221,8 @@ class BinaryReaderDelegate { virtual Result OnF32ConstExpr(uint32_t value_bits) = 0; virtual Result OnF64ConstExpr(uint64_t value_bits) = 0; virtual Result OnV128ConstExpr(v128 value_bits) = 0; - virtual Result OnGetGlobalExpr(Index global_index) = 0; - virtual Result OnGetLocalExpr(Index local_index) = 0; + virtual Result OnGlobalGetExpr(Index global_index) = 0; + virtual Result OnGlobalSetExpr(Index global_index) = 0; virtual Result OnI32ConstExpr(uint32_t value) = 0; virtual Result OnI64ConstExpr(uint64_t value) = 0; virtual Result OnIfExpr(Type sig_type) = 0; @@ -230,6 +230,9 @@ class BinaryReaderDelegate { virtual Result OnLoadExpr(Opcode opcode, uint32_t alignment_log2, Address offset) = 0; + virtual Result OnLocalGetExpr(Index local_index) = 0; + virtual Result OnLocalSetExpr(Index local_index) = 0; + virtual Result OnLocalTeeExpr(Index local_index) = 0; virtual Result OnLoopExpr(Type sig_type) = 0; virtual Result OnMemoryCopyExpr() = 0; virtual Result OnMemoryDropExpr(Index segment_index) = 0; @@ -246,12 +249,9 @@ class BinaryReaderDelegate { virtual Result OnReturnCallExpr(Index func_index) = 0; virtual Result OnReturnCallIndirectExpr(Index sig_index) = 0; virtual Result OnSelectExpr() = 0; - virtual Result OnSetGlobalExpr(Index global_index) = 0; - virtual Result OnSetLocalExpr(Index local_index) = 0; virtual Result OnStoreExpr(Opcode opcode, uint32_t alignment_log2, Address offset) = 0; - virtual Result OnTeeLocalExpr(Index local_index) = 0; virtual Result OnThrowExpr(Index except_index) = 0; virtual Result OnTryExpr(Type sig_type) = 0; @@ -268,7 +268,9 @@ class BinaryReaderDelegate { /* Elem section */ virtual Result BeginElemSection(Offset size) = 0; virtual Result OnElemSegmentCount(Index count) = 0; - virtual Result BeginElemSegment(Index index, Index table_index, bool passive) = 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; @@ -280,7 +282,9 @@ class BinaryReaderDelegate { /* Data section */ virtual Result BeginDataSection(Offset size) = 0; virtual Result OnDataSegmentCount(Index count) = 0; - virtual Result BeginDataSegment(Index index, Index memory_index, bool passive) = 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, @@ -373,7 +377,7 @@ class BinaryReaderDelegate { virtual Result OnInitExprF32ConstExpr(Index index, uint32_t value) = 0; virtual Result OnInitExprF64ConstExpr(Index index, uint64_t value) = 0; virtual Result OnInitExprV128ConstExpr(Index index, v128 value) = 0; - virtual Result OnInitExprGetGlobalExpr(Index index, Index global_index) = 0; + virtual Result OnInitExprGlobalGetExpr(Index index, Index global_index) = 0; virtual Result OnInitExprI32ConstExpr(Index index, uint32_t value) = 0; virtual Result OnInitExprI64ConstExpr(Index index, uint64_t value) = 0; diff --git a/src/binary-writer.cc b/src/binary-writer.cc index dc26128d..af71250d 100644 --- a/src/binary-writer.cc +++ b/src/binary-writer.cc @@ -357,7 +357,7 @@ void BinaryWriter::WriteU32Leb128WithReloc(Index index, } Index BinaryWriter::GetLocalIndex(const Func* func, const Var& var) { - // func can be nullptr when using get_local/set_local/tee_local in an + // func can be nullptr when using local.get/local.set/local.tee in an // init_expr. if (func) { return func->GetLocalIndex(var); @@ -397,8 +397,8 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { case ExprType::AtomicWait: WriteLoadStoreExpr<AtomicWaitExpr>(func, expr, "memory offset"); break; - case ExprType::AtomicWake: - WriteLoadStoreExpr<AtomicWakeExpr>(func, expr, "memory offset"); + case ExprType::AtomicNotify: + WriteLoadStoreExpr<AtomicNotifyExpr>(func, expr, "memory offset"); break; case ExprType::Binary: WriteOpcode(stream_, cast<BinaryExpr>(expr)->opcode); @@ -498,16 +498,16 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { case ExprType::Drop: WriteOpcode(stream_, Opcode::Drop); break; - case ExprType::GetGlobal: { - Index index = module_->GetGlobalIndex(cast<GetGlobalExpr>(expr)->var); - WriteOpcode(stream_, Opcode::GetGlobal); + case ExprType::GlobalGet: { + Index index = module_->GetGlobalIndex(cast<GlobalGetExpr>(expr)->var); + WriteOpcode(stream_, Opcode::GlobalGet); WriteU32Leb128WithReloc(index, "global index", RelocType::GlobalIndexLEB); break; } - case ExprType::GetLocal: { - Index index = GetLocalIndex(func, cast<GetLocalExpr>(expr)->var); - WriteOpcode(stream_, Opcode::GetLocal); - WriteU32Leb128(stream_, index, "local index"); + case ExprType::GlobalSet: { + Index index = module_->GetGlobalIndex(cast<GlobalSetExpr>(expr)->var); + WriteOpcode(stream_, Opcode::GlobalSet); + WriteU32Leb128WithReloc(index, "global index", RelocType::GlobalIndexLEB); break; } case ExprType::If: { @@ -539,6 +539,24 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { case ExprType::Load: WriteLoadStoreExpr<LoadExpr>(func, expr, "load offset"); break; + case ExprType::LocalGet: { + Index index = GetLocalIndex(func, cast<LocalGetExpr>(expr)->var); + WriteOpcode(stream_, Opcode::LocalGet); + WriteU32Leb128(stream_, index, "local index"); + break; + } + case ExprType::LocalSet: { + Index index = GetLocalIndex(func, cast<LocalSetExpr>(expr)->var); + WriteOpcode(stream_, Opcode::LocalSet); + WriteU32Leb128(stream_, index, "local index"); + break; + } + case ExprType::LocalTee: { + Index index = GetLocalIndex(func, cast<LocalTeeExpr>(expr)->var); + WriteOpcode(stream_, Opcode::LocalTee); + WriteU32Leb128(stream_, index, "local index"); + break; + } case ExprType::Loop: WriteOpcode(stream_, Opcode::Loop); WriteBlockDecl(cast<LoopExpr>(expr)->block.decl); @@ -607,27 +625,9 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { case ExprType::Select: WriteOpcode(stream_, Opcode::Select); break; - case ExprType::SetGlobal: { - Index index = module_->GetGlobalIndex(cast<SetGlobalExpr>(expr)->var); - WriteOpcode(stream_, Opcode::SetGlobal); - WriteU32Leb128WithReloc(index, "global index", RelocType::GlobalIndexLEB); - break; - } - case ExprType::SetLocal: { - Index index = GetLocalIndex(func, cast<SetLocalExpr>(expr)->var); - WriteOpcode(stream_, Opcode::SetLocal); - WriteU32Leb128(stream_, index, "local index"); - break; - } case ExprType::Store: WriteLoadStoreExpr<StoreExpr>(func, expr, "store offset"); break; - case ExprType::TeeLocal: { - Index index = GetLocalIndex(func, cast<TeeLocalExpr>(expr)->var); - WriteOpcode(stream_, Opcode::TeeLocal); - WriteU32Leb128(stream_, index, "local index"); - break; - } case ExprType::Throw: WriteOpcode(stream_, Opcode::Throw); WriteU32Leb128(stream_, GetExceptVarDepth(&cast<ThrowExpr>(expr)->var), diff --git a/src/c-writer.cc b/src/c-writer.cc index 0e8d6f91..77eabbda 100644 --- a/src/c-writer.cc +++ b/src/c-writer.cc @@ -861,8 +861,8 @@ void CWriter::WriteInitExpr(const ExprList& expr_list) { Write(cast<ConstExpr>(expr)->const_); break; - case ExprType::GetGlobal: - Write(GlobalVar(cast<GetGlobalExpr>(expr)->var)); + case ExprType::GlobalGet: + Write(GlobalVar(cast<GlobalGetExpr>(expr)->var)); break; default: @@ -1516,17 +1516,17 @@ void CWriter::Write(const ExprList& exprs) { DropTypes(1); break; - case ExprType::GetGlobal: { - const Var& var = cast<GetGlobalExpr>(&expr)->var; + case ExprType::GlobalGet: { + const Var& var = cast<GlobalGetExpr>(&expr)->var; PushType(module_->GetGlobal(var)->type); Write(StackVar(0), " = ", GlobalVar(var), ";", Newline()); break; } - case ExprType::GetLocal: { - const Var& var = cast<GetLocalExpr>(&expr)->var; - PushType(func_->GetLocalType(var)); - Write(StackVar(0), " = ", var, ";", Newline()); + case ExprType::GlobalSet: { + const Var& var = cast<GlobalSetExpr>(&expr)->var; + Write(GlobalVar(var), " = ", StackVar(0), ";", Newline()); + DropTypes(1); break; } @@ -1553,6 +1553,26 @@ void CWriter::Write(const ExprList& exprs) { Write(*cast<LoadExpr>(&expr)); break; + case ExprType::LocalGet: { + const Var& var = cast<LocalGetExpr>(&expr)->var; + PushType(func_->GetLocalType(var)); + Write(StackVar(0), " = ", var, ";", Newline()); + break; + } + + case ExprType::LocalSet: { + const Var& var = cast<LocalSetExpr>(&expr)->var; + Write(var, " = ", StackVar(0), ";", Newline()); + DropTypes(1); + break; + } + + case ExprType::LocalTee: { + const Var& var = cast<LocalTeeExpr>(&expr)->var; + Write(var, " = ", StackVar(0), ";", Newline()); + break; + } + case ExprType::Loop: { const Block& block = cast<LoopExpr>(&expr)->block; if (!block.exprs.empty()) { @@ -1617,30 +1637,10 @@ void CWriter::Write(const ExprList& exprs) { break; } - case ExprType::SetGlobal: { - const Var& var = cast<SetGlobalExpr>(&expr)->var; - Write(GlobalVar(var), " = ", StackVar(0), ";", Newline()); - DropTypes(1); - break; - } - - case ExprType::SetLocal: { - const Var& var = cast<SetLocalExpr>(&expr)->var; - Write(var, " = ", StackVar(0), ";", Newline()); - DropTypes(1); - break; - } - case ExprType::Store: Write(*cast<StoreExpr>(&expr)); break; - case ExprType::TeeLocal: { - const Var& var = cast<TeeLocalExpr>(&expr)->var; - Write(var, " = ", StackVar(0), ";", Newline()); - break; - } - case ExprType::Unary: Write(*cast<UnaryExpr>(&expr)); break; @@ -1668,7 +1668,7 @@ void CWriter::Write(const ExprList& exprs) { case ExprType::AtomicRmwCmpxchg: case ExprType::AtomicStore: case ExprType::AtomicWait: - case ExprType::AtomicWake: + case ExprType::AtomicNotify: case ExprType::IfExcept: case ExprType::Rethrow: case ExprType::ReturnCall: @@ -1930,11 +1930,11 @@ void CWriter::Write(const ConvertExpr& expr) { WriteSimpleUnaryExpr(expr.opcode, "!"); break; - case Opcode::I64ExtendSI32: + case Opcode::I64ExtendI32S: WriteSimpleUnaryExpr(expr.opcode, "(u64)(s64)(s32)"); break; - case Opcode::I64ExtendUI32: + case Opcode::I64ExtendI32U: WriteSimpleUnaryExpr(expr.opcode, "(u64)"); break; @@ -1942,82 +1942,82 @@ void CWriter::Write(const ConvertExpr& expr) { WriteSimpleUnaryExpr(expr.opcode, "(u32)"); break; - case Opcode::I32TruncSF32: + case Opcode::I32TruncF32S: WriteSimpleUnaryExpr(expr.opcode, "I32_TRUNC_S_F32"); break; - case Opcode::I64TruncSF32: + case Opcode::I64TruncF32S: WriteSimpleUnaryExpr(expr.opcode, "I64_TRUNC_S_F32"); break; - case Opcode::I32TruncSF64: + case Opcode::I32TruncF64S: WriteSimpleUnaryExpr(expr.opcode, "I32_TRUNC_S_F64"); break; - case Opcode::I64TruncSF64: + case Opcode::I64TruncF64S: WriteSimpleUnaryExpr(expr.opcode, "I64_TRUNC_S_F64"); break; - case Opcode::I32TruncUF32: + case Opcode::I32TruncF32U: WriteSimpleUnaryExpr(expr.opcode, "I32_TRUNC_U_F32"); break; - case Opcode::I64TruncUF32: + case Opcode::I64TruncF32U: WriteSimpleUnaryExpr(expr.opcode, "I64_TRUNC_U_F32"); break; - case Opcode::I32TruncUF64: + case Opcode::I32TruncF64U: WriteSimpleUnaryExpr(expr.opcode, "I32_TRUNC_U_F64"); break; - case Opcode::I64TruncUF64: + case Opcode::I64TruncF64U: WriteSimpleUnaryExpr(expr.opcode, "I64_TRUNC_U_F64"); break; - case Opcode::I32TruncSSatF32: - case Opcode::I64TruncSSatF32: - case Opcode::I32TruncSSatF64: - case Opcode::I64TruncSSatF64: - case Opcode::I32TruncUSatF32: - case Opcode::I64TruncUSatF32: - case Opcode::I32TruncUSatF64: - case Opcode::I64TruncUSatF64: + case Opcode::I32TruncSatF32S: + case Opcode::I64TruncSatF32S: + case Opcode::I32TruncSatF64S: + case Opcode::I64TruncSatF64S: + case Opcode::I32TruncSatF32U: + case Opcode::I64TruncSatF32U: + case Opcode::I32TruncSatF64U: + case Opcode::I64TruncSatF64U: UNIMPLEMENTED(expr.opcode.GetName()); break; - case Opcode::F32ConvertSI32: + case Opcode::F32ConvertI32S: WriteSimpleUnaryExpr(expr.opcode, "(f32)(s32)"); break; - case Opcode::F32ConvertSI64: + case Opcode::F32ConvertI64S: WriteSimpleUnaryExpr(expr.opcode, "(f32)(s64)"); break; - case Opcode::F32ConvertUI32: + case Opcode::F32ConvertI32U: case Opcode::F32DemoteF64: WriteSimpleUnaryExpr(expr.opcode, "(f32)"); break; - case Opcode::F32ConvertUI64: + case Opcode::F32ConvertI64U: // TODO(binji): This needs to be handled specially (see // wabt_convert_uint64_to_float). WriteSimpleUnaryExpr(expr.opcode, "(f32)"); break; - case Opcode::F64ConvertSI32: + case Opcode::F64ConvertI32S: WriteSimpleUnaryExpr(expr.opcode, "(f64)(s32)"); break; - case Opcode::F64ConvertSI64: + case Opcode::F64ConvertI64S: WriteSimpleUnaryExpr(expr.opcode, "(f64)(s64)"); break; - case Opcode::F64ConvertUI32: + case Opcode::F64ConvertI32U: case Opcode::F64PromoteF32: WriteSimpleUnaryExpr(expr.opcode, "(f64)"); break; - case Opcode::F64ConvertUI64: + case Opcode::F64ConvertI64U: // TODO(binji): This needs to be handled specially (see // wabt_convert_uint64_to_double). WriteSimpleUnaryExpr(expr.opcode, "(f64)"); diff --git a/src/expr-visitor.cc b/src/expr-visitor.cc index 6a96fa8b..2638d7d4 100644 --- a/src/expr-visitor.cc +++ b/src/expr-visitor.cc @@ -182,8 +182,8 @@ Result ExprVisitor::HandleDefaultState(Expr* expr) { CHECK_RESULT(delegate_->OnAtomicWaitExpr(cast<AtomicWaitExpr>(expr))); break; - case ExprType::AtomicWake: - CHECK_RESULT(delegate_->OnAtomicWakeExpr(cast<AtomicWakeExpr>(expr))); + case ExprType::AtomicNotify: + CHECK_RESULT(delegate_->OnAtomicNotifyExpr(cast<AtomicNotifyExpr>(expr))); break; case ExprType::Binary: @@ -233,12 +233,12 @@ Result ExprVisitor::HandleDefaultState(Expr* expr) { CHECK_RESULT(delegate_->OnDropExpr(cast<DropExpr>(expr))); break; - case ExprType::GetGlobal: - CHECK_RESULT(delegate_->OnGetGlobalExpr(cast<GetGlobalExpr>(expr))); + case ExprType::GlobalGet: + CHECK_RESULT(delegate_->OnGlobalGetExpr(cast<GlobalGetExpr>(expr))); break; - case ExprType::GetLocal: - CHECK_RESULT(delegate_->OnGetLocalExpr(cast<GetLocalExpr>(expr))); + case ExprType::GlobalSet: + CHECK_RESULT(delegate_->OnGlobalSetExpr(cast<GlobalSetExpr>(expr))); break; case ExprType::If: { @@ -259,6 +259,18 @@ Result ExprVisitor::HandleDefaultState(Expr* expr) { CHECK_RESULT(delegate_->OnLoadExpr(cast<LoadExpr>(expr))); break; + case ExprType::LocalGet: + CHECK_RESULT(delegate_->OnLocalGetExpr(cast<LocalGetExpr>(expr))); + break; + + case ExprType::LocalSet: + CHECK_RESULT(delegate_->OnLocalSetExpr(cast<LocalSetExpr>(expr))); + break; + + case ExprType::LocalTee: + CHECK_RESULT(delegate_->OnLocalTeeExpr(cast<LocalTeeExpr>(expr))); + break; + case ExprType::Loop: { auto loop_expr = cast<LoopExpr>(expr); CHECK_RESULT(delegate_->BeginLoopExpr(loop_expr)); @@ -327,21 +339,10 @@ Result ExprVisitor::HandleDefaultState(Expr* expr) { CHECK_RESULT(delegate_->OnSelectExpr(cast<SelectExpr>(expr))); break; - case ExprType::SetGlobal: - CHECK_RESULT(delegate_->OnSetGlobalExpr(cast<SetGlobalExpr>(expr))); - break; - - case ExprType::SetLocal: - CHECK_RESULT(delegate_->OnSetLocalExpr(cast<SetLocalExpr>(expr))); - break; - case ExprType::Store: CHECK_RESULT(delegate_->OnStoreExpr(cast<StoreExpr>(expr))); break; - case ExprType::TeeLocal: - CHECK_RESULT(delegate_->OnTeeLocalExpr(cast<TeeLocalExpr>(expr))); - break; case ExprType::Throw: CHECK_RESULT(delegate_->OnThrowExpr(cast<ThrowExpr>(expr))); diff --git a/src/expr-visitor.h b/src/expr-visitor.h index 4b13097e..d164e062 100644 --- a/src/expr-visitor.h +++ b/src/expr-visitor.h @@ -78,8 +78,8 @@ class ExprVisitor::Delegate { virtual Result OnConstExpr(ConstExpr*) = 0; virtual Result OnConvertExpr(ConvertExpr*) = 0; virtual Result OnDropExpr(DropExpr*) = 0; - virtual Result OnGetGlobalExpr(GetGlobalExpr*) = 0; - virtual Result OnGetLocalExpr(GetLocalExpr*) = 0; + virtual Result OnGlobalGetExpr(GlobalGetExpr*) = 0; + virtual Result OnGlobalSetExpr(GlobalSetExpr*) = 0; virtual Result BeginIfExpr(IfExpr*) = 0; virtual Result AfterIfTrueExpr(IfExpr*) = 0; virtual Result EndIfExpr(IfExpr*) = 0; @@ -87,6 +87,9 @@ class ExprVisitor::Delegate { virtual Result AfterIfExceptTrueExpr(IfExceptExpr*) = 0; virtual Result EndIfExceptExpr(IfExceptExpr*) = 0; virtual Result OnLoadExpr(LoadExpr*) = 0; + virtual Result OnLocalGetExpr(LocalGetExpr*) = 0; + virtual Result OnLocalSetExpr(LocalSetExpr*) = 0; + virtual Result OnLocalTeeExpr(LocalTeeExpr*) = 0; virtual Result BeginLoopExpr(LoopExpr*) = 0; virtual Result EndLoopExpr(LoopExpr*) = 0; virtual Result OnMemoryCopyExpr(MemoryCopyExpr*) = 0; @@ -103,10 +106,7 @@ class ExprVisitor::Delegate { virtual Result OnReturnCallExpr(ReturnCallExpr*) = 0; virtual Result OnReturnCallIndirectExpr(ReturnCallIndirectExpr*) = 0; virtual Result OnSelectExpr(SelectExpr*) = 0; - virtual Result OnSetGlobalExpr(SetGlobalExpr*) = 0; - virtual Result OnSetLocalExpr(SetLocalExpr*) = 0; virtual Result OnStoreExpr(StoreExpr*) = 0; - virtual Result OnTeeLocalExpr(TeeLocalExpr*) = 0; virtual Result OnUnaryExpr(UnaryExpr*) = 0; virtual Result OnUnreachableExpr(UnreachableExpr*) = 0; virtual Result BeginTryExpr(TryExpr*) = 0; @@ -115,7 +115,7 @@ class ExprVisitor::Delegate { virtual Result OnThrowExpr(ThrowExpr*) = 0; virtual Result OnRethrowExpr(RethrowExpr*) = 0; virtual Result OnAtomicWaitExpr(AtomicWaitExpr*) = 0; - virtual Result OnAtomicWakeExpr(AtomicWakeExpr*) = 0; + virtual Result OnAtomicNotifyExpr(AtomicNotifyExpr*) = 0; virtual Result OnAtomicLoadExpr(AtomicLoadExpr*) = 0; virtual Result OnAtomicStoreExpr(AtomicStoreExpr*) = 0; virtual Result OnAtomicRmwExpr(AtomicRmwExpr*) = 0; @@ -139,8 +139,8 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { Result OnConstExpr(ConstExpr*) override { return Result::Ok; } Result OnConvertExpr(ConvertExpr*) override { return Result::Ok; } Result OnDropExpr(DropExpr*) override { return Result::Ok; } - Result OnGetGlobalExpr(GetGlobalExpr*) override { return Result::Ok; } - Result OnGetLocalExpr(GetLocalExpr*) override { return Result::Ok; } + Result OnGlobalGetExpr(GlobalGetExpr*) override { return Result::Ok; } + Result OnGlobalSetExpr(GlobalSetExpr*) override { return Result::Ok; } Result BeginIfExpr(IfExpr*) override { return Result::Ok; } Result AfterIfTrueExpr(IfExpr*) override { return Result::Ok; } Result EndIfExpr(IfExpr*) override { return Result::Ok; } @@ -148,6 +148,9 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { Result AfterIfExceptTrueExpr(IfExceptExpr*) override { return Result::Ok; } Result EndIfExceptExpr(IfExceptExpr*) override { return Result::Ok; } Result OnLoadExpr(LoadExpr*) override { return Result::Ok; } + Result OnLocalGetExpr(LocalGetExpr*) override { return Result::Ok; } + Result OnLocalSetExpr(LocalSetExpr*) override { return Result::Ok; } + Result OnLocalTeeExpr(LocalTeeExpr*) 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; } @@ -166,10 +169,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { return Result::Ok; } Result OnSelectExpr(SelectExpr*) override { return Result::Ok; } - Result OnSetGlobalExpr(SetGlobalExpr*) override { return Result::Ok; } - Result OnSetLocalExpr(SetLocalExpr*) override { return Result::Ok; } Result OnStoreExpr(StoreExpr*) override { return Result::Ok; } - Result OnTeeLocalExpr(TeeLocalExpr*) override { return Result::Ok; } Result OnUnaryExpr(UnaryExpr*) override { return Result::Ok; } Result OnUnreachableExpr(UnreachableExpr*) override { return Result::Ok; } Result BeginTryExpr(TryExpr*) override { return Result::Ok; } @@ -178,7 +178,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { Result OnThrowExpr(ThrowExpr*) override { return Result::Ok; } Result OnRethrowExpr(RethrowExpr*) override { return Result::Ok; } Result OnAtomicWaitExpr(AtomicWaitExpr*) override { return Result::Ok; } - Result OnAtomicWakeExpr(AtomicWakeExpr*) override { return Result::Ok; } + Result OnAtomicNotifyExpr(AtomicNotifyExpr*) override { return Result::Ok; } Result OnAtomicLoadExpr(AtomicLoadExpr*) override { return Result::Ok; } Result OnAtomicStoreExpr(AtomicStoreExpr*) override { return Result::Ok; } Result OnAtomicRmwExpr(AtomicRmwExpr*) override { return Result::Ok; } diff --git a/src/interp/binary-reader-interp.cc b/src/interp/binary-reader-interp.cc index ce8c8ac2..c0494b3f 100644 --- a/src/interp/binary-reader-interp.cc +++ b/src/interp/binary-reader-interp.cc @@ -153,7 +153,7 @@ class BinaryReaderInterp : public BinaryReaderNop { wabt::Result OnAtomicWaitExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; - wabt::Result OnAtomicWakeExpr(Opcode opcode, + wabt::Result OnAtomicNotifyExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; wabt::Result OnBinaryExpr(wabt::Opcode opcode) override; @@ -175,26 +175,26 @@ class BinaryReaderInterp : public BinaryReaderNop { wabt::Result OnF32ConstExpr(uint32_t value_bits) override; wabt::Result OnF64ConstExpr(uint64_t value_bits) override; wabt::Result OnV128ConstExpr(v128 value_bits) override; - wabt::Result OnGetGlobalExpr(Index global_index) override; - wabt::Result OnGetLocalExpr(Index local_index) override; + wabt::Result OnGlobalGetExpr(Index global_index) override; + wabt::Result OnGlobalSetExpr(Index global_index) override; wabt::Result OnI32ConstExpr(uint32_t value) override; wabt::Result OnI64ConstExpr(uint64_t value) override; wabt::Result OnIfExpr(Type sig_type) override; wabt::Result OnLoadExpr(wabt::Opcode opcode, uint32_t alignment_log2, Address offset) override; + wabt::Result OnLocalGetExpr(Index local_index) override; + wabt::Result OnLocalSetExpr(Index local_index) override; + wabt::Result OnLocalTeeExpr(Index local_index) override; wabt::Result OnLoopExpr(Type sig_type) override; wabt::Result OnMemoryGrowExpr() override; wabt::Result OnMemorySizeExpr() override; wabt::Result OnNopExpr() override; wabt::Result OnReturnExpr() override; wabt::Result OnSelectExpr() override; - wabt::Result OnSetGlobalExpr(Index global_index) override; - wabt::Result OnSetLocalExpr(Index local_index) override; wabt::Result OnStoreExpr(wabt::Opcode opcode, uint32_t alignment_log2, Address offset) override; - wabt::Result OnTeeLocalExpr(Index local_index) override; wabt::Result OnUnaryExpr(wabt::Opcode opcode) override; wabt::Result OnTernaryExpr(wabt::Opcode opcode) override; wabt::Result OnUnreachableExpr() override; @@ -215,7 +215,7 @@ class BinaryReaderInterp : public BinaryReaderNop { wabt::Result OnInitExprF32ConstExpr(Index index, uint32_t value) override; wabt::Result OnInitExprF64ConstExpr(Index index, uint64_t value) override; wabt::Result OnInitExprV128ConstExpr(Index index, v128 value) override; - wabt::Result OnInitExprGetGlobalExpr(Index index, + wabt::Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; wabt::Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; wabt::Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; @@ -890,7 +890,7 @@ wabt::Result BinaryReaderInterp::OnInitExprV128ConstExpr(Index index, return wabt::Result::Ok; } -wabt::Result BinaryReaderInterp::OnInitExprGetGlobalExpr(Index index, +wabt::Result BinaryReaderInterp::OnInitExprGlobalGetExpr(Index index, Index global_index) { if (global_index >= num_global_imports_) { PrintError("initializer expression can only reference an imported global"); @@ -1438,25 +1438,25 @@ wabt::Result BinaryReaderInterp::OnV128ConstExpr(v128 value_bits) { return wabt::Result::Ok; } -wabt::Result BinaryReaderInterp::OnGetGlobalExpr(Index global_index) { +wabt::Result BinaryReaderInterp::OnGlobalGetExpr(Index global_index) { CHECK_RESULT(CheckGlobal(global_index)); Type type = GetGlobalTypeByModuleIndex(global_index); - CHECK_RESULT(typechecker_.OnGetGlobal(type)); - CHECK_RESULT(EmitOpcode(Opcode::GetGlobal)); + CHECK_RESULT(typechecker_.OnGlobalGet(type)); + CHECK_RESULT(EmitOpcode(Opcode::GlobalGet)); CHECK_RESULT(EmitI32(TranslateGlobalIndexToEnv(global_index))); return wabt::Result::Ok; } -wabt::Result BinaryReaderInterp::OnSetGlobalExpr(Index global_index) { +wabt::Result BinaryReaderInterp::OnGlobalSetExpr(Index global_index) { CHECK_RESULT(CheckGlobal(global_index)); Global* global = GetGlobalByModuleIndex(global_index); if (!global->mutable_) { - PrintError("can't set_global on immutable global at index %" PRIindex ".", + PrintError("can't global.set on immutable global at index %" PRIindex ".", global_index); return wabt::Result::Error; } - CHECK_RESULT(typechecker_.OnSetGlobal(global->typed_value.type)); - CHECK_RESULT(EmitOpcode(Opcode::SetGlobal)); + CHECK_RESULT(typechecker_.OnGlobalSet(global->typed_value.type)); + CHECK_RESULT(EmitOpcode(Opcode::GlobalSet)); CHECK_RESULT(EmitI32(TranslateGlobalIndexToEnv(global_index))); return wabt::Result::Ok; } @@ -1466,33 +1466,33 @@ Index BinaryReaderInterp::TranslateLocalIndex(Index local_index) { current_func_->param_and_local_types.size() - local_index; } -wabt::Result BinaryReaderInterp::OnGetLocalExpr(Index local_index) { +wabt::Result BinaryReaderInterp::OnLocalGetExpr(Index local_index) { CHECK_RESULT(CheckLocal(local_index)); Type type = GetLocalTypeByIndex(current_func_, local_index); - // Get the translated index before calling typechecker_.OnGetLocal because it + // Get the translated index before calling typechecker_.OnLocalGet because it // will update the type stack size. We need the index to be relative to the // old stack size. Index translated_local_index = TranslateLocalIndex(local_index); - CHECK_RESULT(typechecker_.OnGetLocal(type)); - CHECK_RESULT(EmitOpcode(Opcode::GetLocal)); + CHECK_RESULT(typechecker_.OnLocalGet(type)); + CHECK_RESULT(EmitOpcode(Opcode::LocalGet)); CHECK_RESULT(EmitI32(translated_local_index)); return wabt::Result::Ok; } -wabt::Result BinaryReaderInterp::OnSetLocalExpr(Index local_index) { +wabt::Result BinaryReaderInterp::OnLocalSetExpr(Index local_index) { CHECK_RESULT(CheckLocal(local_index)); Type type = GetLocalTypeByIndex(current_func_, local_index); - CHECK_RESULT(typechecker_.OnSetLocal(type)); - CHECK_RESULT(EmitOpcode(Opcode::SetLocal)); + CHECK_RESULT(typechecker_.OnLocalSet(type)); + CHECK_RESULT(EmitOpcode(Opcode::LocalSet)); CHECK_RESULT(EmitI32(TranslateLocalIndex(local_index))); return wabt::Result::Ok; } -wabt::Result BinaryReaderInterp::OnTeeLocalExpr(Index local_index) { +wabt::Result BinaryReaderInterp::OnLocalTeeExpr(Index local_index) { CHECK_RESULT(CheckLocal(local_index)); Type type = GetLocalTypeByIndex(current_func_, local_index); - CHECK_RESULT(typechecker_.OnTeeLocal(type)); - CHECK_RESULT(EmitOpcode(Opcode::TeeLocal)); + CHECK_RESULT(typechecker_.OnLocalTee(type)); + CHECK_RESULT(EmitOpcode(Opcode::LocalTee)); CHECK_RESULT(EmitI32(TranslateLocalIndex(local_index))); return wabt::Result::Ok; } @@ -1574,12 +1574,12 @@ wabt::Result BinaryReaderInterp::OnAtomicWaitExpr(Opcode opcode, return wabt::Result::Ok; } -wabt::Result BinaryReaderInterp::OnAtomicWakeExpr(Opcode opcode, - uint32_t alignment_log2, - Address offset) { +wabt::Result BinaryReaderInterp::OnAtomicNotifyExpr(Opcode opcode, + uint32_t alignment_log2, + Address offset) { CHECK_RESULT(CheckHasMemory(opcode)); CHECK_RESULT(CheckAtomicAlign(alignment_log2, opcode.GetMemorySize())); - CHECK_RESULT(typechecker_.OnAtomicWake(opcode)); + CHECK_RESULT(typechecker_.OnAtomicNotify(opcode)); CHECK_RESULT(EmitOpcode(opcode)); CHECK_RESULT(EmitI32(module_->memory_index)); CHECK_RESULT(EmitI32(offset)); diff --git a/src/interp/interp-disassemble.cc b/src/interp/interp-disassemble.cc index 66921718..d30714f0 100644 --- a/src/interp/interp-disassemble.cc +++ b/src/interp/interp-disassemble.cc @@ -94,14 +94,14 @@ void Environment::Disassemble(Stream* stream, Bitcast<double>(ReadU64(&pc))); break; - case Opcode::GetLocal: - case Opcode::GetGlobal: + case Opcode::LocalGet: + case Opcode::GlobalGet: stream->Writef("%s $%u\n", opcode.GetName(), ReadU32(&pc)); break; - case Opcode::SetLocal: - case Opcode::SetGlobal: - case Opcode::TeeLocal: + case Opcode::LocalSet: + case Opcode::GlobalSet: + case Opcode::LocalTee: stream->Writef("%s $%u, %%[-1]\n", opcode.GetName(), ReadU32(&pc)); break; @@ -150,7 +150,7 @@ void Environment::Disassemble(Stream* stream, break; } - case Opcode::AtomicWake: + case Opcode::AtomicNotify: case Opcode::I32AtomicStore: case Opcode::I64AtomicStore: case Opcode::I32AtomicStore8: @@ -160,46 +160,46 @@ void Environment::Disassemble(Stream* stream, case Opcode::I64AtomicStore32: case Opcode::I32AtomicRmwAdd: case Opcode::I64AtomicRmwAdd: - case Opcode::I32AtomicRmw8UAdd: - case Opcode::I32AtomicRmw16UAdd: - case Opcode::I64AtomicRmw8UAdd: - case Opcode::I64AtomicRmw16UAdd: - case Opcode::I64AtomicRmw32UAdd: + case Opcode::I32AtomicRmw8AddU: + case Opcode::I32AtomicRmw16AddU: + case Opcode::I64AtomicRmw8AddU: + case Opcode::I64AtomicRmw16AddU: + case Opcode::I64AtomicRmw32AddU: case Opcode::I32AtomicRmwSub: case Opcode::I64AtomicRmwSub: - case Opcode::I32AtomicRmw8USub: - case Opcode::I32AtomicRmw16USub: - case Opcode::I64AtomicRmw8USub: - case Opcode::I64AtomicRmw16USub: - case Opcode::I64AtomicRmw32USub: + case Opcode::I32AtomicRmw8SubU: + case Opcode::I32AtomicRmw16SubU: + case Opcode::I64AtomicRmw8SubU: + case Opcode::I64AtomicRmw16SubU: + case Opcode::I64AtomicRmw32SubU: case Opcode::I32AtomicRmwAnd: case Opcode::I64AtomicRmwAnd: - case Opcode::I32AtomicRmw8UAnd: - case Opcode::I32AtomicRmw16UAnd: - case Opcode::I64AtomicRmw8UAnd: - case Opcode::I64AtomicRmw16UAnd: - case Opcode::I64AtomicRmw32UAnd: + case Opcode::I32AtomicRmw8AndU: + case Opcode::I32AtomicRmw16AndU: + case Opcode::I64AtomicRmw8AndU: + case Opcode::I64AtomicRmw16AndU: + case Opcode::I64AtomicRmw32AndU: case Opcode::I32AtomicRmwOr: case Opcode::I64AtomicRmwOr: - case Opcode::I32AtomicRmw8UOr: - case Opcode::I32AtomicRmw16UOr: - case Opcode::I64AtomicRmw8UOr: - case Opcode::I64AtomicRmw16UOr: - case Opcode::I64AtomicRmw32UOr: + case Opcode::I32AtomicRmw8OrU: + case Opcode::I32AtomicRmw16OrU: + case Opcode::I64AtomicRmw8OrU: + case Opcode::I64AtomicRmw16OrU: + case Opcode::I64AtomicRmw32OrU: case Opcode::I32AtomicRmwXor: case Opcode::I64AtomicRmwXor: - case Opcode::I32AtomicRmw8UXor: - case Opcode::I32AtomicRmw16UXor: - case Opcode::I64AtomicRmw8UXor: - case Opcode::I64AtomicRmw16UXor: - case Opcode::I64AtomicRmw32UXor: + case Opcode::I32AtomicRmw8XorU: + case Opcode::I32AtomicRmw16XorU: + case Opcode::I64AtomicRmw8XorU: + case Opcode::I64AtomicRmw16XorU: + case Opcode::I64AtomicRmw32XorU: case Opcode::I32AtomicRmwXchg: case Opcode::I64AtomicRmwXchg: - case Opcode::I32AtomicRmw8UXchg: - case Opcode::I32AtomicRmw16UXchg: - case Opcode::I64AtomicRmw8UXchg: - case Opcode::I64AtomicRmw16UXchg: - case Opcode::I64AtomicRmw32UXchg: + case Opcode::I32AtomicRmw8XchgU: + case Opcode::I32AtomicRmw16XchgU: + case Opcode::I64AtomicRmw8XchgU: + case Opcode::I64AtomicRmw16XchgU: + case Opcode::I64AtomicRmw32XchgU: case Opcode::I32Store8: case Opcode::I32Store16: case Opcode::I32Store: @@ -220,11 +220,11 @@ void Environment::Disassemble(Stream* stream, case Opcode::I64AtomicWait: case Opcode::I32AtomicRmwCmpxchg: case Opcode::I64AtomicRmwCmpxchg: - case Opcode::I32AtomicRmw8UCmpxchg: - case Opcode::I32AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw8UCmpxchg: - case Opcode::I64AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw32UCmpxchg: { + case Opcode::I32AtomicRmw8CmpxchgU: + case Opcode::I32AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw8CmpxchgU: + case Opcode::I64AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw32CmpxchgU: { const Index memory_index = ReadU32(&pc); stream->Writef("%s $%" PRIindex ":%%[-3]+$%u, %%[-2], %%[-1]\n", opcode.GetName(), memory_index, ReadU32(&pc)); @@ -420,39 +420,39 @@ void Environment::Disassemble(Stream* stream, case Opcode::F64Trunc: case Opcode::F64Nearest: case Opcode::F64Sqrt: - case Opcode::I32TruncSF32: - case Opcode::I32TruncUF32: - case Opcode::I64TruncSF32: - case Opcode::I64TruncUF32: + case Opcode::I32TruncF32S: + case Opcode::I32TruncF32U: + case Opcode::I64TruncF32S: + case Opcode::I64TruncF32U: case Opcode::F64PromoteF32: case Opcode::I32ReinterpretF32: - case Opcode::I32TruncSF64: - case Opcode::I32TruncUF64: - case Opcode::I64TruncSF64: - case Opcode::I64TruncUF64: + case Opcode::I32TruncF64S: + case Opcode::I32TruncF64U: + case Opcode::I64TruncF64S: + case Opcode::I64TruncF64U: case Opcode::F32DemoteF64: case Opcode::I64ReinterpretF64: case Opcode::I32WrapI64: - case Opcode::F32ConvertSI64: - case Opcode::F32ConvertUI64: - case Opcode::F64ConvertSI64: - case Opcode::F64ConvertUI64: + case Opcode::F32ConvertI64S: + case Opcode::F32ConvertI64U: + case Opcode::F64ConvertI64S: + case Opcode::F64ConvertI64U: case Opcode::F64ReinterpretI64: - case Opcode::I64ExtendSI32: - case Opcode::I64ExtendUI32: - case Opcode::F32ConvertSI32: - case Opcode::F32ConvertUI32: + case Opcode::I64ExtendI32S: + case Opcode::I64ExtendI32U: + case Opcode::F32ConvertI32S: + case Opcode::F32ConvertI32U: case Opcode::F32ReinterpretI32: - case Opcode::F64ConvertSI32: - case Opcode::F64ConvertUI32: - case Opcode::I32TruncSSatF32: - case Opcode::I32TruncUSatF32: - case Opcode::I64TruncSSatF32: - case Opcode::I64TruncUSatF32: - case Opcode::I32TruncSSatF64: - case Opcode::I32TruncUSatF64: - case Opcode::I64TruncSSatF64: - case Opcode::I64TruncUSatF64: + case Opcode::F64ConvertI32S: + case Opcode::F64ConvertI32U: + case Opcode::I32TruncSatF32S: + case Opcode::I32TruncSatF32U: + case Opcode::I64TruncSatF32S: + case Opcode::I64TruncSatF32U: + case Opcode::I32TruncSatF64S: + case Opcode::I32TruncSatF64U: + case Opcode::I64TruncSatF64S: + case Opcode::I64TruncSatF64U: case Opcode::I32Extend16S: case Opcode::I32Extend8S: case Opcode::I64Extend16S: @@ -483,14 +483,14 @@ void Environment::Disassemble(Stream* stream, case Opcode::F64X2Abs: case Opcode::F32X4Sqrt: case Opcode::F64X2Sqrt: - case Opcode::F32X4ConvertSI32X4: - case Opcode::F32X4ConvertUI32X4: - case Opcode::F64X2ConvertSI64X2: - case Opcode::F64X2ConvertUI64X2: - case Opcode::I32X4TruncSF32X4Sat: - case Opcode::I32X4TruncUF32X4Sat: - case Opcode::I64X2TruncSF64X2Sat: - case Opcode::I64X2TruncUF64X2Sat: + case Opcode::F32X4ConvertI32X4S: + case Opcode::F32X4ConvertI32X4U: + case Opcode::F64X2ConvertI64X2S: + case Opcode::F64X2ConvertI64X2U: + case Opcode::I32X4TruncSatF32X4S: + case Opcode::I32X4TruncSatF32X4U: + case Opcode::I64X2TruncSatF64X2S: + case Opcode::I64X2TruncSatF64X2U: stream->Writef("%s %%[-1]\n", opcode.GetName()); break; diff --git a/src/interp/interp-trace.cc b/src/interp/interp-trace.cc index d575441f..8bdfe016 100644 --- a/src/interp/interp-trace.cc +++ b/src/interp/interp-trace.cc @@ -89,14 +89,14 @@ void Thread::Trace(Stream* stream) { Bitcast<double>(ReadU64At(pc))); break; - case Opcode::GetLocal: - case Opcode::GetGlobal: + case Opcode::LocalGet: + case Opcode::GlobalGet: stream->Writef("%s $%u\n", opcode.GetName(), ReadU32At(pc)); break; - case Opcode::SetLocal: - case Opcode::SetGlobal: - case Opcode::TeeLocal: + case Opcode::LocalSet: + case Opcode::GlobalSet: + case Opcode::LocalTee: stream->Writef("%s $%u, %u\n", opcode.GetName(), ReadU32At(pc), Top().i32); break; @@ -144,27 +144,27 @@ void Thread::Trace(Stream* stream) { break; } - case Opcode::AtomicWake: + case Opcode::AtomicNotify: case Opcode::I32AtomicStore: case Opcode::I32AtomicStore8: case Opcode::I32AtomicStore16: - case Opcode::I32AtomicRmw8UAdd: - case Opcode::I32AtomicRmw16UAdd: + case Opcode::I32AtomicRmw8AddU: + case Opcode::I32AtomicRmw16AddU: case Opcode::I32AtomicRmwAdd: - case Opcode::I32AtomicRmw8USub: - case Opcode::I32AtomicRmw16USub: + case Opcode::I32AtomicRmw8SubU: + case Opcode::I32AtomicRmw16SubU: case Opcode::I32AtomicRmwSub: - case Opcode::I32AtomicRmw8UAnd: - case Opcode::I32AtomicRmw16UAnd: + case Opcode::I32AtomicRmw8AndU: + case Opcode::I32AtomicRmw16AndU: case Opcode::I32AtomicRmwAnd: - case Opcode::I32AtomicRmw8UOr: - case Opcode::I32AtomicRmw16UOr: + case Opcode::I32AtomicRmw8OrU: + case Opcode::I32AtomicRmw16OrU: case Opcode::I32AtomicRmwOr: - case Opcode::I32AtomicRmw8UXor: - case Opcode::I32AtomicRmw16UXor: + case Opcode::I32AtomicRmw8XorU: + case Opcode::I32AtomicRmw16XorU: case Opcode::I32AtomicRmwXor: - case Opcode::I32AtomicRmw8UXchg: - case Opcode::I32AtomicRmw16UXchg: + case Opcode::I32AtomicRmw8XchgU: + case Opcode::I32AtomicRmw16XchgU: case Opcode::I32AtomicRmwXchg: case Opcode::I32Store8: case Opcode::I32Store16: @@ -176,8 +176,8 @@ void Thread::Trace(Stream* stream) { } case Opcode::I32AtomicRmwCmpxchg: - case Opcode::I32AtomicRmw8UCmpxchg: - case Opcode::I32AtomicRmw16UCmpxchg: { + case Opcode::I32AtomicRmw8CmpxchgU: + case Opcode::I32AtomicRmw16CmpxchgU: { const Index memory_index = ReadU32(&pc); stream->Writef("%s $%" PRIindex ":%u+$%u, %u, %u\n", opcode.GetName(), memory_index, Pick(3).i32, ReadU32At(pc), Pick(2).i32, @@ -189,29 +189,29 @@ void Thread::Trace(Stream* stream) { case Opcode::I64AtomicStore16: case Opcode::I64AtomicStore32: case Opcode::I64AtomicStore: - case Opcode::I64AtomicRmw8UAdd: - case Opcode::I64AtomicRmw16UAdd: - case Opcode::I64AtomicRmw32UAdd: + case Opcode::I64AtomicRmw8AddU: + case Opcode::I64AtomicRmw16AddU: + case Opcode::I64AtomicRmw32AddU: case Opcode::I64AtomicRmwAdd: - case Opcode::I64AtomicRmw8USub: - case Opcode::I64AtomicRmw16USub: - case Opcode::I64AtomicRmw32USub: + case Opcode::I64AtomicRmw8SubU: + case Opcode::I64AtomicRmw16SubU: + case Opcode::I64AtomicRmw32SubU: case Opcode::I64AtomicRmwSub: - case Opcode::I64AtomicRmw8UAnd: - case Opcode::I64AtomicRmw16UAnd: - case Opcode::I64AtomicRmw32UAnd: + case Opcode::I64AtomicRmw8AndU: + case Opcode::I64AtomicRmw16AndU: + case Opcode::I64AtomicRmw32AndU: case Opcode::I64AtomicRmwAnd: - case Opcode::I64AtomicRmw8UOr: - case Opcode::I64AtomicRmw16UOr: - case Opcode::I64AtomicRmw32UOr: + case Opcode::I64AtomicRmw8OrU: + case Opcode::I64AtomicRmw16OrU: + case Opcode::I64AtomicRmw32OrU: case Opcode::I64AtomicRmwOr: - case Opcode::I64AtomicRmw8UXor: - case Opcode::I64AtomicRmw16UXor: - case Opcode::I64AtomicRmw32UXor: + case Opcode::I64AtomicRmw8XorU: + case Opcode::I64AtomicRmw16XorU: + case Opcode::I64AtomicRmw32XorU: case Opcode::I64AtomicRmwXor: - case Opcode::I64AtomicRmw8UXchg: - case Opcode::I64AtomicRmw16UXchg: - case Opcode::I64AtomicRmw32UXchg: + case Opcode::I64AtomicRmw8XchgU: + case Opcode::I64AtomicRmw16XchgU: + case Opcode::I64AtomicRmw32XchgU: case Opcode::I64AtomicRmwXchg: case Opcode::I64Store8: case Opcode::I64Store16: @@ -234,9 +234,9 @@ void Thread::Trace(Stream* stream) { case Opcode::I64AtomicWait: case Opcode::I64AtomicRmwCmpxchg: - case Opcode::I64AtomicRmw8UCmpxchg: - case Opcode::I64AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw32UCmpxchg: { + case Opcode::I64AtomicRmw8CmpxchgU: + case Opcode::I64AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw32CmpxchgU: { const Index memory_index = ReadU32(&pc); stream->Writef("%s $%" PRIindex ":%u+$%u, %" PRIu64 ", %" PRIu64 "\n", opcode.GetName(), memory_index, Pick(3).i32, ReadU32At(pc), @@ -413,48 +413,48 @@ void Thread::Trace(Stream* stream) { stream->Writef("%s %g\n", opcode.GetName(), Bitcast<double>(Top().i64)); break; - case Opcode::I32TruncSF32: - case Opcode::I32TruncUF32: - case Opcode::I64TruncSF32: - case Opcode::I64TruncUF32: + case Opcode::I32TruncF32S: + case Opcode::I32TruncF32U: + case Opcode::I64TruncF32S: + case Opcode::I64TruncF32U: case Opcode::F64PromoteF32: case Opcode::I32ReinterpretF32: - case Opcode::I32TruncSSatF32: - case Opcode::I32TruncUSatF32: - case Opcode::I64TruncSSatF32: - case Opcode::I64TruncUSatF32: + case Opcode::I32TruncSatF32S: + case Opcode::I32TruncSatF32U: + case Opcode::I64TruncSatF32S: + case Opcode::I64TruncSatF32U: stream->Writef("%s %g\n", opcode.GetName(), Bitcast<float>(Top().i32)); break; - case Opcode::I32TruncSF64: - case Opcode::I32TruncUF64: - case Opcode::I64TruncSF64: - case Opcode::I64TruncUF64: + case Opcode::I32TruncF64S: + case Opcode::I32TruncF64U: + case Opcode::I64TruncF64S: + case Opcode::I64TruncF64U: case Opcode::F32DemoteF64: case Opcode::I64ReinterpretF64: - case Opcode::I32TruncSSatF64: - case Opcode::I32TruncUSatF64: - case Opcode::I64TruncSSatF64: - case Opcode::I64TruncUSatF64: + case Opcode::I32TruncSatF64S: + case Opcode::I32TruncSatF64U: + case Opcode::I64TruncSatF64S: + case Opcode::I64TruncSatF64U: stream->Writef("%s %g\n", opcode.GetName(), Bitcast<double>(Top().i64)); break; case Opcode::I32WrapI64: - case Opcode::F32ConvertSI64: - case Opcode::F32ConvertUI64: - case Opcode::F64ConvertSI64: - case Opcode::F64ConvertUI64: + case Opcode::F32ConvertI64S: + case Opcode::F32ConvertI64U: + case Opcode::F64ConvertI64S: + case Opcode::F64ConvertI64U: case Opcode::F64ReinterpretI64: stream->Writef("%s %" PRIu64 "\n", opcode.GetName(), Top().i64); break; - case Opcode::I64ExtendSI32: - case Opcode::I64ExtendUI32: - case Opcode::F32ConvertSI32: - case Opcode::F32ConvertUI32: + case Opcode::I64ExtendI32S: + case Opcode::I64ExtendI32U: + case Opcode::F32ConvertI32S: + case Opcode::F32ConvertI32U: case Opcode::F32ReinterpretI32: - case Opcode::F64ConvertSI32: - case Opcode::F64ConvertUI32: + case Opcode::F64ConvertI32S: + case Opcode::F64ConvertI32U: stream->Writef("%s %u\n", opcode.GetName(), Top().i32); break; @@ -498,14 +498,14 @@ void Thread::Trace(Stream* stream) { case Opcode::F64X2Abs: case Opcode::F32X4Sqrt: case Opcode::F64X2Sqrt: - case Opcode::F32X4ConvertSI32X4: - case Opcode::F32X4ConvertUI32X4: - case Opcode::F64X2ConvertSI64X2: - case Opcode::F64X2ConvertUI64X2: - case Opcode::I32X4TruncSF32X4Sat: - case Opcode::I32X4TruncUF32X4Sat: - case Opcode::I64X2TruncSF64X2Sat: - case Opcode::I64X2TruncUF64X2Sat: { + case Opcode::F32X4ConvertI32X4S: + case Opcode::F32X4ConvertI32X4U: + case Opcode::F64X2ConvertI64X2S: + case Opcode::F64X2ConvertI64X2U: + case Opcode::I32X4TruncSatF32X4S: + case Opcode::I32X4TruncSatF32X4U: + case Opcode::I64X2TruncSatF64X2S: + case Opcode::I64X2TruncSatF64X2U: { stream->Writef("%s $0x%08x 0x%08x 0x%08x 0x%08x\n", opcode.GetName(), Top().v128_bits.v[0], Top().v128_bits.v[1], Top().v128_bits.v[2], Top().v128_bits.v[3]); diff --git a/src/interp/interp.cc b/src/interp/interp.cc index afdc23ee..20711305 100644 --- a/src/interp/interp.cc +++ b/src/interp/interp.cc @@ -1575,33 +1575,33 @@ Result Thread::Run(int num_instructions) { CHECK_TRAP(PushRep<double>(ReadU64(&pc))); break; - case Opcode::GetGlobal: { + case Opcode::GlobalGet: { Index index = ReadU32(&pc); assert(index < env_->globals_.size()); CHECK_TRAP(Push(env_->globals_[index].typed_value.value)); break; } - case Opcode::SetGlobal: { + case Opcode::GlobalSet: { Index index = ReadU32(&pc); assert(index < env_->globals_.size()); env_->globals_[index].typed_value.value = Pop(); break; } - case Opcode::GetLocal: { + case Opcode::LocalGet: { Value value = Pick(ReadU32(&pc)); CHECK_TRAP(Push(value)); break; } - case Opcode::SetLocal: { + case Opcode::LocalSet: { Value value = Pop(); Pick(ReadU32(&pc)) = value; break; } - case Opcode::TeeLocal: + case Opcode::LocalTee: Pick(ReadU32(&pc)) = Top(); break; @@ -1824,19 +1824,19 @@ Result Thread::Run(int num_instructions) { case Opcode::I64AtomicRmw##rmwop: \ CHECK_TRAP(AtomicRmw<uint64_t, uint64_t>(func<uint64_t>, &pc)); \ break; \ - case Opcode::I32AtomicRmw8U##rmwop: \ + case Opcode::I32AtomicRmw8##rmwop##U: \ CHECK_TRAP(AtomicRmw<uint8_t, uint32_t>(func<uint32_t>, &pc)); \ break; \ - case Opcode::I32AtomicRmw16U##rmwop: \ + case Opcode::I32AtomicRmw16##rmwop##U: \ CHECK_TRAP(AtomicRmw<uint16_t, uint32_t>(func<uint32_t>, &pc)); \ break; \ - case Opcode::I64AtomicRmw8U##rmwop: \ + case Opcode::I64AtomicRmw8##rmwop##U: \ CHECK_TRAP(AtomicRmw<uint8_t, uint64_t>(func<uint64_t>, &pc)); \ break; \ - case Opcode::I64AtomicRmw16U##rmwop: \ + case Opcode::I64AtomicRmw16##rmwop##U: \ CHECK_TRAP(AtomicRmw<uint16_t, uint64_t>(func<uint64_t>, &pc)); \ break; \ - case Opcode::I64AtomicRmw32U##rmwop: \ + case Opcode::I64AtomicRmw32##rmwop##U: \ CHECK_TRAP(AtomicRmw<uint32_t, uint64_t>(func<uint64_t>, &pc)); \ break /* no semicolon */ @@ -1857,23 +1857,23 @@ Result Thread::Run(int num_instructions) { CHECK_TRAP(AtomicRmwCmpxchg<uint64_t, uint64_t>(&pc)); break; - case Opcode::I32AtomicRmw8UCmpxchg: + case Opcode::I32AtomicRmw8CmpxchgU: CHECK_TRAP(AtomicRmwCmpxchg<uint8_t, uint32_t>(&pc)); break; - case Opcode::I32AtomicRmw16UCmpxchg: + case Opcode::I32AtomicRmw16CmpxchgU: CHECK_TRAP(AtomicRmwCmpxchg<uint16_t, uint32_t>(&pc)); break; - case Opcode::I64AtomicRmw8UCmpxchg: + case Opcode::I64AtomicRmw8CmpxchgU: CHECK_TRAP(AtomicRmwCmpxchg<uint8_t, uint64_t>(&pc)); break; - case Opcode::I64AtomicRmw16UCmpxchg: + case Opcode::I64AtomicRmw16CmpxchgU: CHECK_TRAP(AtomicRmwCmpxchg<uint16_t, uint64_t>(&pc)); break; - case Opcode::I64AtomicRmw32UCmpxchg: + case Opcode::I64AtomicRmw32CmpxchgU: CHECK_TRAP(AtomicRmwCmpxchg<uint32_t, uint64_t>(&pc)); break; @@ -2270,35 +2270,35 @@ Result Thread::Run(int num_instructions) { CHECK_TRAP(Binop(Ge<double>)); break; - case Opcode::I32TruncSF32: + case Opcode::I32TruncF32S: CHECK_TRAP(UnopTrap(IntTrunc<int32_t, float>)); break; - case Opcode::I32TruncSSatF32: + case Opcode::I32TruncSatF32S: CHECK_TRAP(Unop(IntTruncSat<int32_t, float>)); break; - case Opcode::I32TruncSF64: + case Opcode::I32TruncF64S: CHECK_TRAP(UnopTrap(IntTrunc<int32_t, double>)); break; - case Opcode::I32TruncSSatF64: + case Opcode::I32TruncSatF64S: CHECK_TRAP(Unop(IntTruncSat<int32_t, double>)); break; - case Opcode::I32TruncUF32: + case Opcode::I32TruncF32U: CHECK_TRAP(UnopTrap(IntTrunc<uint32_t, float>)); break; - case Opcode::I32TruncUSatF32: + case Opcode::I32TruncSatF32U: CHECK_TRAP(Unop(IntTruncSat<uint32_t, float>)); break; - case Opcode::I32TruncUF64: + case Opcode::I32TruncF64U: CHECK_TRAP(UnopTrap(IntTrunc<uint32_t, double>)); break; - case Opcode::I32TruncUSatF64: + case Opcode::I32TruncSatF64U: CHECK_TRAP(Unop(IntTruncSat<uint32_t, double>)); break; @@ -2306,59 +2306,59 @@ Result Thread::Run(int num_instructions) { CHECK_TRAP(Push<uint32_t>(Pop<uint64_t>())); break; - case Opcode::I64TruncSF32: + case Opcode::I64TruncF32S: CHECK_TRAP(UnopTrap(IntTrunc<int64_t, float>)); break; - case Opcode::I64TruncSSatF32: + case Opcode::I64TruncSatF32S: CHECK_TRAP(Unop(IntTruncSat<int64_t, float>)); break; - case Opcode::I64TruncSF64: + case Opcode::I64TruncF64S: CHECK_TRAP(UnopTrap(IntTrunc<int64_t, double>)); break; - case Opcode::I64TruncSSatF64: + case Opcode::I64TruncSatF64S: CHECK_TRAP(Unop(IntTruncSat<int64_t, double>)); break; - case Opcode::I64TruncUF32: + case Opcode::I64TruncF32U: CHECK_TRAP(UnopTrap(IntTrunc<uint64_t, float>)); break; - case Opcode::I64TruncUSatF32: + case Opcode::I64TruncSatF32U: CHECK_TRAP(Unop(IntTruncSat<uint64_t, float>)); break; - case Opcode::I64TruncUF64: + case Opcode::I64TruncF64U: CHECK_TRAP(UnopTrap(IntTrunc<uint64_t, double>)); break; - case Opcode::I64TruncUSatF64: + case Opcode::I64TruncSatF64U: CHECK_TRAP(Unop(IntTruncSat<uint64_t, double>)); break; - case Opcode::I64ExtendSI32: + case Opcode::I64ExtendI32S: CHECK_TRAP(Push<uint64_t>(Pop<int32_t>())); break; - case Opcode::I64ExtendUI32: + case Opcode::I64ExtendI32U: CHECK_TRAP(Push<uint64_t>(Pop<uint32_t>())); break; - case Opcode::F32ConvertSI32: + case Opcode::F32ConvertI32S: CHECK_TRAP(Push<float>(Pop<int32_t>())); break; - case Opcode::F32ConvertUI32: + case Opcode::F32ConvertI32U: CHECK_TRAP(Push<float>(Pop<uint32_t>())); break; - case Opcode::F32ConvertSI64: + case Opcode::F32ConvertI64S: CHECK_TRAP(Push<float>(Pop<int64_t>())); break; - case Opcode::F32ConvertUI64: + case Opcode::F32ConvertI64U: CHECK_TRAP(Push<float>(wabt_convert_uint64_to_float(Pop<uint64_t>()))); break; @@ -2390,19 +2390,19 @@ Result Thread::Run(int num_instructions) { CHECK_TRAP(PushRep<float>(Pop<uint32_t>())); break; - case Opcode::F64ConvertSI32: + case Opcode::F64ConvertI32S: CHECK_TRAP(Push<double>(Pop<int32_t>())); break; - case Opcode::F64ConvertUI32: + case Opcode::F64ConvertI32U: CHECK_TRAP(Push<double>(Pop<uint32_t>())); break; - case Opcode::F64ConvertSI64: + case Opcode::F64ConvertI64S: CHECK_TRAP(Push<double>(Pop<int64_t>())); break; - case Opcode::F64ConvertUI64: + case Opcode::F64ConvertI64U: CHECK_TRAP( Push<double>(wabt_convert_uint64_to_double(Pop<uint64_t>()))); break; @@ -2496,7 +2496,7 @@ Result Thread::Run(int num_instructions) { case Opcode::I32AtomicWait: case Opcode::I64AtomicWait: - case Opcode::AtomicWake: + case Opcode::AtomicNotify: // TODO(binji): Implement. TRAP(Unreachable); break; @@ -3208,35 +3208,35 @@ Result Thread::Run(int num_instructions) { CHECK_TRAP(SimdUnop<v128, int64_t>(FloatSqrt<double>)); break; - case Opcode::F32X4ConvertSI32X4: + case Opcode::F32X4ConvertI32X4S: CHECK_TRAP(SimdUnop<v128, int32_t>(SimdConvert<float, int32_t>)); break; - case Opcode::F32X4ConvertUI32X4: + case Opcode::F32X4ConvertI32X4U: CHECK_TRAP(SimdUnop<v128, uint32_t>(SimdConvert<float, uint32_t>)); break; - case Opcode::F64X2ConvertSI64X2: + case Opcode::F64X2ConvertI64X2S: CHECK_TRAP(SimdUnop<v128, int64_t>(SimdConvert<double, int64_t>)); break; - case Opcode::F64X2ConvertUI64X2: + case Opcode::F64X2ConvertI64X2U: CHECK_TRAP(SimdUnop<v128, uint64_t>(SimdConvert<double, uint64_t>)); break; - case Opcode::I32X4TruncSF32X4Sat: + case Opcode::I32X4TruncSatF32X4S: CHECK_TRAP(SimdUnop<v128, int32_t>(IntTruncSat<int32_t, float>)); break; - case Opcode::I32X4TruncUF32X4Sat: + case Opcode::I32X4TruncSatF32X4U: CHECK_TRAP(SimdUnop<v128, uint32_t>(IntTruncSat<uint32_t, float>)); break; - case Opcode::I64X2TruncSF64X2Sat: + case Opcode::I64X2TruncSatF64X2S: CHECK_TRAP(SimdUnop<v128, int64_t>(IntTruncSat<int64_t, double>)); break; - case Opcode::I64X2TruncUF64X2Sat: + case Opcode::I64X2TruncSatF64X2U: CHECK_TRAP(SimdUnop<v128, uint64_t>(IntTruncSat<uint64_t, double>)); break; @@ -29,8 +29,8 @@ const char* ExprTypeName[] = { "AtomicRmw", "AtomicRmwCmpxchg", "AtomicStore", + "AtomicNotify", "AtomicWait", - "AtomicWake", "Binary", "Block", "Br", @@ -42,11 +42,14 @@ const char* ExprTypeName[] = { "Const", "Convert", "Drop", - "GetGlobal", - "GetLocal", + "GlobalGet", + "GlobalSet", "If", "IfExcept", "Load", + "LocalGet", + "LocalSet", + "LocalTee", "Loop", "MemoryCopy", "MemoryDrop", @@ -60,15 +63,12 @@ const char* ExprTypeName[] = { "ReturnCall", "ReturnCallIndirect", "Select", - "SetGlobal", - "SetLocal", "SimdLaneOp", "SimdShuffleOp", "Store", - "TableInit", "TableCopy", "TableDrop", - "TeeLocal", + "TableInit", "Ternary", "Throw", "Try", @@ -160,8 +160,8 @@ enum class ExprType { AtomicRmw, AtomicRmwCmpxchg, AtomicStore, + AtomicNotify, AtomicWait, - AtomicWake, Binary, Block, Br, @@ -173,11 +173,14 @@ enum class ExprType { Const, Convert, Drop, - GetGlobal, - GetLocal, + GlobalGet, + GlobalSet, If, IfExcept, Load, + LocalGet, + LocalSet, + LocalTee, Loop, MemoryCopy, MemoryDrop, @@ -191,15 +194,12 @@ enum class ExprType { ReturnCall, ReturnCallIndirect, Select, - SetGlobal, - SetLocal, SimdLaneOp, SimdShuffleOp, Store, - TableInit, TableCopy, TableDrop, - TeeLocal, + TableInit, Ternary, Throw, Try, @@ -311,12 +311,12 @@ class VarExpr : public ExprMixin<TypeEnum> { typedef VarExpr<ExprType::Br> BrExpr; typedef VarExpr<ExprType::BrIf> BrIfExpr; typedef VarExpr<ExprType::Call> CallExpr; -typedef VarExpr<ExprType::GetGlobal> GetGlobalExpr; -typedef VarExpr<ExprType::GetLocal> GetLocalExpr; +typedef VarExpr<ExprType::GlobalGet> GlobalGetExpr; +typedef VarExpr<ExprType::GlobalSet> GlobalSetExpr; +typedef VarExpr<ExprType::LocalGet> LocalGetExpr; +typedef VarExpr<ExprType::LocalSet> LocalSetExpr; +typedef VarExpr<ExprType::LocalTee> LocalTeeExpr; typedef VarExpr<ExprType::ReturnCall> ReturnCallExpr; -typedef VarExpr<ExprType::SetGlobal> SetGlobalExpr; -typedef VarExpr<ExprType::SetLocal> SetLocalExpr; -typedef VarExpr<ExprType::TeeLocal> TeeLocalExpr; typedef VarExpr<ExprType::Throw> ThrowExpr; typedef VarExpr<ExprType::MemoryInit> MemoryInitExpr; @@ -423,7 +423,7 @@ typedef LoadStoreExpr<ExprType::AtomicStore> AtomicStoreExpr; typedef LoadStoreExpr<ExprType::AtomicRmw> AtomicRmwExpr; typedef LoadStoreExpr<ExprType::AtomicRmwCmpxchg> AtomicRmwCmpxchgExpr; typedef LoadStoreExpr<ExprType::AtomicWait> AtomicWaitExpr; -typedef LoadStoreExpr<ExprType::AtomicWake> AtomicWakeExpr; +typedef LoadStoreExpr<ExprType::AtomicNotify> AtomicNotifyExpr; struct Exception { explicit Exception(string_view name) : name(name.to_string()) {} diff --git a/src/opcode.cc b/src/opcode.cc index 10df4e2e..b388ed3b 100644 --- a/src/opcode.cc +++ b/src/opcode.cc @@ -75,14 +75,14 @@ bool Opcode::IsEnabled(const Features& features) const { case Opcode::ReturnCall: return features.tail_call_enabled(); - case Opcode::I32TruncSSatF32: - case Opcode::I32TruncUSatF32: - case Opcode::I32TruncSSatF64: - case Opcode::I32TruncUSatF64: - case Opcode::I64TruncSSatF32: - case Opcode::I64TruncUSatF32: - case Opcode::I64TruncSSatF64: - case Opcode::I64TruncUSatF64: + case Opcode::I32TruncSatF32S: + case Opcode::I32TruncSatF32U: + case Opcode::I32TruncSatF64S: + case Opcode::I32TruncSatF64U: + case Opcode::I64TruncSatF32S: + case Opcode::I64TruncSatF32U: + case Opcode::I64TruncSatF64S: + case Opcode::I64TruncSatF64U: return features.sat_float_to_int_enabled(); case Opcode::I32Extend8S: @@ -92,7 +92,7 @@ bool Opcode::IsEnabled(const Features& features) const { case Opcode::I64Extend32S: return features.sign_extension_enabled(); - case Opcode::AtomicWake: + case Opcode::AtomicNotify: case Opcode::I32AtomicWait: case Opcode::I64AtomicWait: case Opcode::I32AtomicLoad: @@ -111,53 +111,53 @@ bool Opcode::IsEnabled(const Features& features) const { case Opcode::I64AtomicStore32: case Opcode::I32AtomicRmwAdd: case Opcode::I64AtomicRmwAdd: - case Opcode::I32AtomicRmw8UAdd: - case Opcode::I32AtomicRmw16UAdd: - case Opcode::I64AtomicRmw8UAdd: - case Opcode::I64AtomicRmw16UAdd: - case Opcode::I64AtomicRmw32UAdd: + case Opcode::I32AtomicRmw8AddU: + case Opcode::I32AtomicRmw16AddU: + case Opcode::I64AtomicRmw8AddU: + case Opcode::I64AtomicRmw16AddU: + case Opcode::I64AtomicRmw32AddU: case Opcode::I32AtomicRmwSub: case Opcode::I64AtomicRmwSub: - case Opcode::I32AtomicRmw8USub: - case Opcode::I32AtomicRmw16USub: - case Opcode::I64AtomicRmw8USub: - case Opcode::I64AtomicRmw16USub: - case Opcode::I64AtomicRmw32USub: + case Opcode::I32AtomicRmw8SubU: + case Opcode::I32AtomicRmw16SubU: + case Opcode::I64AtomicRmw8SubU: + case Opcode::I64AtomicRmw16SubU: + case Opcode::I64AtomicRmw32SubU: case Opcode::I32AtomicRmwAnd: case Opcode::I64AtomicRmwAnd: - case Opcode::I32AtomicRmw8UAnd: - case Opcode::I32AtomicRmw16UAnd: - case Opcode::I64AtomicRmw8UAnd: - case Opcode::I64AtomicRmw16UAnd: - case Opcode::I64AtomicRmw32UAnd: + case Opcode::I32AtomicRmw8AndU: + case Opcode::I32AtomicRmw16AndU: + case Opcode::I64AtomicRmw8AndU: + case Opcode::I64AtomicRmw16AndU: + case Opcode::I64AtomicRmw32AndU: case Opcode::I32AtomicRmwOr: case Opcode::I64AtomicRmwOr: - case Opcode::I32AtomicRmw8UOr: - case Opcode::I32AtomicRmw16UOr: - case Opcode::I64AtomicRmw8UOr: - case Opcode::I64AtomicRmw16UOr: - case Opcode::I64AtomicRmw32UOr: + case Opcode::I32AtomicRmw8OrU: + case Opcode::I32AtomicRmw16OrU: + case Opcode::I64AtomicRmw8OrU: + case Opcode::I64AtomicRmw16OrU: + case Opcode::I64AtomicRmw32OrU: case Opcode::I32AtomicRmwXor: case Opcode::I64AtomicRmwXor: - case Opcode::I32AtomicRmw8UXor: - case Opcode::I32AtomicRmw16UXor: - case Opcode::I64AtomicRmw8UXor: - case Opcode::I64AtomicRmw16UXor: - case Opcode::I64AtomicRmw32UXor: + case Opcode::I32AtomicRmw8XorU: + case Opcode::I32AtomicRmw16XorU: + case Opcode::I64AtomicRmw8XorU: + case Opcode::I64AtomicRmw16XorU: + case Opcode::I64AtomicRmw32XorU: case Opcode::I32AtomicRmwXchg: case Opcode::I64AtomicRmwXchg: - case Opcode::I32AtomicRmw8UXchg: - case Opcode::I32AtomicRmw16UXchg: - case Opcode::I64AtomicRmw8UXchg: - case Opcode::I64AtomicRmw16UXchg: - case Opcode::I64AtomicRmw32UXchg: + case Opcode::I32AtomicRmw8XchgU: + case Opcode::I32AtomicRmw16XchgU: + case Opcode::I64AtomicRmw8XchgU: + case Opcode::I64AtomicRmw16XchgU: + case Opcode::I64AtomicRmw32XchgU: case Opcode::I32AtomicRmwCmpxchg: case Opcode::I64AtomicRmwCmpxchg: - case Opcode::I32AtomicRmw8UCmpxchg: - case Opcode::I32AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw8UCmpxchg: - case Opcode::I64AtomicRmw16UCmpxchg: - case Opcode::I64AtomicRmw32UCmpxchg: + case Opcode::I32AtomicRmw8CmpxchgU: + case Opcode::I32AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw8CmpxchgU: + case Opcode::I64AtomicRmw16CmpxchgU: + case Opcode::I64AtomicRmw32CmpxchgU: return features.threads_enabled(); case Opcode::V128Const: @@ -292,14 +292,14 @@ bool Opcode::IsEnabled(const Features& features) const { case Opcode::F64X2Mul: case Opcode::F32X4Sqrt: case Opcode::F64X2Sqrt: - case Opcode::F32X4ConvertSI32X4: - case Opcode::F32X4ConvertUI32X4: - case Opcode::F64X2ConvertSI64X2: - case Opcode::F64X2ConvertUI64X2: - case Opcode::I32X4TruncSF32X4Sat: - case Opcode::I32X4TruncUF32X4Sat: - case Opcode::I64X2TruncSF64X2Sat: - case Opcode::I64X2TruncUF64X2Sat: + case Opcode::F32X4ConvertI32X4S: + case Opcode::F32X4ConvertI32X4U: + case Opcode::F64X2ConvertI64X2S: + case Opcode::F64X2ConvertI64X2U: + case Opcode::I32X4TruncSatF32X4S: + case Opcode::I32X4TruncSatF32X4U: + case Opcode::I64X2TruncSatF64X2S: + case Opcode::I64X2TruncSatF64X2U: return features.simd_enabled(); case Opcode::MemoryInit: diff --git a/src/opcode.def b/src/opcode.def index d63b7941..bb65c247 100644 --- a/src/opcode.def +++ b/src/opcode.def @@ -56,11 +56,11 @@ WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x12, ReturnCall, "return_call") WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x13, ReturnCallIndirect, "return_call_indirect") WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x1a, Drop, "drop") WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x1b, Select, "select") -WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x20, GetLocal, "get_local") -WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x21, SetLocal, "set_local") -WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x22, TeeLocal, "tee_local") -WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x23, GetGlobal, "get_global") -WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x24, SetGlobal, "set_global") +WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x20, LocalGet, "local.get") +WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x21, LocalSet, "local.set") +WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x22, LocalTee, "local.tee") +WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x23, GlobalGet, "global.get") +WABT_OPCODE(___, ___, ___, ___, 0, 0, 0x24, GlobalSet, "global.set") WABT_OPCODE(I32, I32, ___, ___, 4, 0, 0x28, I32Load, "i32.load") WABT_OPCODE(I64, I32, ___, ___, 8, 0, 0x29, I64Load, "i64.load") WABT_OPCODE(F32, I32, ___, ___, 4, 0, 0x2a, F32Load, "f32.load") @@ -188,31 +188,31 @@ WABT_OPCODE(F64, F64, F64, ___, 0, 0, 0xa3, F64Div, "f64.div") WABT_OPCODE(F64, F64, F64, ___, 0, 0, 0xa4, F64Min, "f64.min") WABT_OPCODE(F64, F64, F64, ___, 0, 0, 0xa5, F64Max, "f64.max") WABT_OPCODE(F64, F64, F64, ___, 0, 0, 0xa6, F64Copysign, "f64.copysign") -WABT_OPCODE(I32, I64, ___, ___, 0, 0, 0xa7, I32WrapI64, "i32.wrap/i64") -WABT_OPCODE(I32, F32, ___, ___, 0, 0, 0xa8, I32TruncSF32, "i32.trunc_s/f32") -WABT_OPCODE(I32, F32, ___, ___, 0, 0, 0xa9, I32TruncUF32, "i32.trunc_u/f32") -WABT_OPCODE(I32, F64, ___, ___, 0, 0, 0xaa, I32TruncSF64, "i32.trunc_s/f64") -WABT_OPCODE(I32, F64, ___, ___, 0, 0, 0xab, I32TruncUF64, "i32.trunc_u/f64") -WABT_OPCODE(I64, I32, ___, ___, 0, 0, 0xac, I64ExtendSI32, "i64.extend_s/i32") -WABT_OPCODE(I64, I32, ___, ___, 0, 0, 0xad, I64ExtendUI32, "i64.extend_u/i32") -WABT_OPCODE(I64, F32, ___, ___, 0, 0, 0xae, I64TruncSF32, "i64.trunc_s/f32") -WABT_OPCODE(I64, F32, ___, ___, 0, 0, 0xaf, I64TruncUF32, "i64.trunc_u/f32") -WABT_OPCODE(I64, F64, ___, ___, 0, 0, 0xb0, I64TruncSF64, "i64.trunc_s/f64") -WABT_OPCODE(I64, F64, ___, ___, 0, 0, 0xb1, I64TruncUF64, "i64.trunc_u/f64") -WABT_OPCODE(F32, I32, ___, ___, 0, 0, 0xb2, F32ConvertSI32, "f32.convert_s/i32") -WABT_OPCODE(F32, I32, ___, ___, 0, 0, 0xb3, F32ConvertUI32, "f32.convert_u/i32") -WABT_OPCODE(F32, I64, ___, ___, 0, 0, 0xb4, F32ConvertSI64, "f32.convert_s/i64") -WABT_OPCODE(F32, I64, ___, ___, 0, 0, 0xb5, F32ConvertUI64, "f32.convert_u/i64") -WABT_OPCODE(F32, F64, ___, ___, 0, 0, 0xb6, F32DemoteF64, "f32.demote/f64") -WABT_OPCODE(F64, I32, ___, ___, 0, 0, 0xb7, F64ConvertSI32, "f64.convert_s/i32") -WABT_OPCODE(F64, I32, ___, ___, 0, 0, 0xb8, F64ConvertUI32, "f64.convert_u/i32") -WABT_OPCODE(F64, I64, ___, ___, 0, 0, 0xb9, F64ConvertSI64, "f64.convert_s/i64") -WABT_OPCODE(F64, I64, ___, ___, 0, 0, 0xba, F64ConvertUI64, "f64.convert_u/i64") -WABT_OPCODE(F64, F32, ___, ___, 0, 0, 0xbb, F64PromoteF32, "f64.promote/f32") -WABT_OPCODE(I32, F32, ___, ___, 0, 0, 0xbc, I32ReinterpretF32, "i32.reinterpret/f32") -WABT_OPCODE(I64, F64, ___, ___, 0, 0, 0xbd, I64ReinterpretF64, "i64.reinterpret/f64") -WABT_OPCODE(F32, I32, ___, ___, 0, 0, 0xbe, F32ReinterpretI32, "f32.reinterpret/i32") -WABT_OPCODE(F64, I64, ___, ___, 0, 0, 0xbf, F64ReinterpretI64, "f64.reinterpret/i64") +WABT_OPCODE(I32, I64, ___, ___, 0, 0, 0xa7, I32WrapI64, "i32.wrap_i64") +WABT_OPCODE(I32, F32, ___, ___, 0, 0, 0xa8, I32TruncF32S, "i32.trunc_f32_s") +WABT_OPCODE(I32, F32, ___, ___, 0, 0, 0xa9, I32TruncF32U, "i32.trunc_f32_u") +WABT_OPCODE(I32, F64, ___, ___, 0, 0, 0xaa, I32TruncF64S, "i32.trunc_f64_s") +WABT_OPCODE(I32, F64, ___, ___, 0, 0, 0xab, I32TruncF64U, "i32.trunc_f64_u") +WABT_OPCODE(I64, I32, ___, ___, 0, 0, 0xac, I64ExtendI32S, "i64.extend_i32_s") +WABT_OPCODE(I64, I32, ___, ___, 0, 0, 0xad, I64ExtendI32U, "i64.extend_i32_u") +WABT_OPCODE(I64, F32, ___, ___, 0, 0, 0xae, I64TruncF32S, "i64.trunc_f32_s") +WABT_OPCODE(I64, F32, ___, ___, 0, 0, 0xaf, I64TruncF32U, "i64.trunc_f32_u") +WABT_OPCODE(I64, F64, ___, ___, 0, 0, 0xb0, I64TruncF64S, "i64.trunc_f64_s") +WABT_OPCODE(I64, F64, ___, ___, 0, 0, 0xb1, I64TruncF64U, "i64.trunc_f64_u") +WABT_OPCODE(F32, I32, ___, ___, 0, 0, 0xb2, F32ConvertI32S, "f32.convert_i32_s") +WABT_OPCODE(F32, I32, ___, ___, 0, 0, 0xb3, F32ConvertI32U, "f32.convert_i32_u") +WABT_OPCODE(F32, I64, ___, ___, 0, 0, 0xb4, F32ConvertI64S, "f32.convert_i64_s") +WABT_OPCODE(F32, I64, ___, ___, 0, 0, 0xb5, F32ConvertI64U, "f32.convert_i64_u") +WABT_OPCODE(F32, F64, ___, ___, 0, 0, 0xb6, F32DemoteF64, "f32.demote_f64") +WABT_OPCODE(F64, I32, ___, ___, 0, 0, 0xb7, F64ConvertI32S, "f64.convert_i32_s") +WABT_OPCODE(F64, I32, ___, ___, 0, 0, 0xb8, F64ConvertI32U, "f64.convert_i32_u") +WABT_OPCODE(F64, I64, ___, ___, 0, 0, 0xb9, F64ConvertI64S, "f64.convert_i64_s") +WABT_OPCODE(F64, I64, ___, ___, 0, 0, 0xba, F64ConvertI64U, "f64.convert_i64_u") +WABT_OPCODE(F64, F32, ___, ___, 0, 0, 0xbb, F64PromoteF32, "f64.promote_f32") +WABT_OPCODE(I32, F32, ___, ___, 0, 0, 0xbc, I32ReinterpretF32, "i32.reinterpret_f32") +WABT_OPCODE(I64, F64, ___, ___, 0, 0, 0xbd, I64ReinterpretF64, "i64.reinterpret_f64") +WABT_OPCODE(F32, I32, ___, ___, 0, 0, 0xbe, F32ReinterpretI32, "f32.reinterpret_i32") +WABT_OPCODE(F64, I64, ___, ___, 0, 0, 0xbf, F64ReinterpretI64, "f64.reinterpret_i64") /* Sign-extension opcodes (--enable-sign-extension) */ WABT_OPCODE(I32, I32, ___, ___, 0, 0, 0xC0, I32Extend8S, "i32.extend8_s") @@ -229,14 +229,14 @@ WABT_OPCODE(___, ___, ___, ___, 0, 0, 0xe3, InterpData, "data") WABT_OPCODE(___, ___, ___, ___, 0, 0, 0xe4, InterpDropKeep, "drop_keep") /* Saturating float-to-int opcodes (--enable-saturating-float-to-int) */ -WABT_OPCODE(I32, F32, ___, ___, 0, 0xfc, 0x00, I32TruncSSatF32, "i32.trunc_s:sat/f32") -WABT_OPCODE(I32, F32, ___, ___, 0, 0xfc, 0x01, I32TruncUSatF32, "i32.trunc_u:sat/f32") -WABT_OPCODE(I32, F64, ___, ___, 0, 0xfc, 0x02, I32TruncSSatF64, "i32.trunc_s:sat/f64") -WABT_OPCODE(I32, F64, ___, ___, 0, 0xfc, 0x03, I32TruncUSatF64, "i32.trunc_u:sat/f64") -WABT_OPCODE(I64, F32, ___, ___, 0, 0xfc, 0x04, I64TruncSSatF32, "i64.trunc_s:sat/f32") -WABT_OPCODE(I64, F32, ___, ___, 0, 0xfc, 0x05, I64TruncUSatF32, "i64.trunc_u:sat/f32") -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") +WABT_OPCODE(I32, F32, ___, ___, 0, 0xfc, 0x00, I32TruncSatF32S, "i32.trunc_sat_f32_s") +WABT_OPCODE(I32, F32, ___, ___, 0, 0xfc, 0x01, I32TruncSatF32U, "i32.trunc_sat_f32_u") +WABT_OPCODE(I32, F64, ___, ___, 0, 0xfc, 0x02, I32TruncSatF64S, "i32.trunc_sat_f64_s") +WABT_OPCODE(I32, F64, ___, ___, 0, 0xfc, 0x03, I32TruncSatF64U, "i32.trunc_sat_f64_u") +WABT_OPCODE(I64, F32, ___, ___, 0, 0xfc, 0x04, I64TruncSatF32S, "i64.trunc_sat_f32_s") +WABT_OPCODE(I64, F32, ___, ___, 0, 0xfc, 0x05, I64TruncSatF32U, "i64.trunc_sat_f32_u") +WABT_OPCODE(I64, F64, ___, ___, 0, 0xfc, 0x06, I64TruncSatF64S, "i64.trunc_sat_f64_s") +WABT_OPCODE(I64, F64, ___, ___, 0, 0xfc, 0x07, I64TruncSatF64U, "i64.trunc_sat_f64_u") /* Bulk-memory (--enable-bulk-memory) */ WABT_OPCODE(___, I32, I32, I32, 0, 0xfc, 0x08, MemoryInit, "memory.init") @@ -380,17 +380,17 @@ WABT_OPCODE(V128, V128, V128, ___, 0, 0xfd, 0xa7, F64X2Mul, "f64x2.mul") WABT_OPCODE(V128, V128, V128, ___, 0, 0xfd, 0xa8, F64X2Div, "f64x2.div") WABT_OPCODE(V128, V128, V128, ___, 0, 0xfd, 0xa9, F64X2Min, "f64x2.min") WABT_OPCODE(V128, V128, V128, ___, 0, 0xfd, 0xaa, F64X2Max, "f64x2.max") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xab, I32X4TruncSF32X4Sat,"i32x4.trunc_s/f32x4:sat") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xac, I32X4TruncUF32X4Sat,"i32x4.trunc_u/f32x4:sat") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xad, I64X2TruncSF64X2Sat,"i64x2.trunc_s/f64x2:sat") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xae, I64X2TruncUF64X2Sat,"i64x2.trunc_u/f64x2:sat") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xaf, F32X4ConvertSI32X4, "f32x4.convert_s/i32x4") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xb0, F32X4ConvertUI32X4, "f32x4.convert_u/i32x4") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xb1, F64X2ConvertSI64X2, "f64x2.convert_s/i64x2") -WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xb2, F64X2ConvertUI64X2, "f64x2.convert_u/i64x2") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xab, I32X4TruncSatF32X4S,"i32x4.trunc_sat_f32x4_s") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xac, I32X4TruncSatF32X4U,"i32x4.trunc_sat_f32x4_u") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xad, I64X2TruncSatF64X2S,"i64x2.trunc_sat_f64x2_s") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xae, I64X2TruncSatF64X2U,"i64x2.trunc_sat_f64x2_u") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xaf, F32X4ConvertI32X4S, "f32x4.convert_i32x4_s") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xb0, F32X4ConvertI32X4U, "f32x4.convert_i32x4_u") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xb1, F64X2ConvertI64X2S, "f64x2.convert_i64x2_s") +WABT_OPCODE(V128, V128, ___, ___, 0, 0xfd, 0xb2, F64X2ConvertI64X2U, "f64x2.convert_i64x2_u") /* Thread opcodes (--enable-threads) */ -WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x00, AtomicWake, "atomic.wake") +WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x00, AtomicNotify, "atomic.notify") WABT_OPCODE(I32, I32, I32, I64, 4, 0xfe, 0x01, I32AtomicWait, "i32.atomic.wait") WABT_OPCODE(I32, I32, I64, I64, 8, 0xfe, 0x02, I64AtomicWait, "i64.atomic.wait") WABT_OPCODE(I32, I32, ___, ___, 4, 0xfe, 0x10, I32AtomicLoad, "i32.atomic.load") @@ -409,50 +409,50 @@ WABT_OPCODE(___, I32, I64, ___, 2, 0xfe, 0x1c, I64AtomicStore16, "i64.atomi WABT_OPCODE(___, I32, I64, ___, 4, 0xfe, 0x1d, I64AtomicStore32, "i64.atomic.store32") WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x1e, I32AtomicRmwAdd, "i32.atomic.rmw.add") WABT_OPCODE(I64, I32, I64, ___, 8, 0xfe, 0x1f, I64AtomicRmwAdd, "i64.atomic.rmw.add") -WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x20, I32AtomicRmw8UAdd, "i32.atomic.rmw8_u.add") -WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x21, I32AtomicRmw16UAdd, "i32.atomic.rmw16_u.add") -WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x22, I64AtomicRmw8UAdd, "i64.atomic.rmw8_u.add") -WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x23, I64AtomicRmw16UAdd, "i64.atomic.rmw16_u.add") -WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x24, I64AtomicRmw32UAdd, "i64.atomic.rmw32_u.add") +WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x20, I32AtomicRmw8AddU, "i32.atomic.rmw8.add_u") +WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x21, I32AtomicRmw16AddU, "i32.atomic.rmw16.add_u") +WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x22, I64AtomicRmw8AddU, "i64.atomic.rmw8.add_u") +WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x23, I64AtomicRmw16AddU, "i64.atomic.rmw16.add_u") +WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x24, I64AtomicRmw32AddU, "i64.atomic.rmw32.add_u") WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x25, I32AtomicRmwSub, "i32.atomic.rmw.sub") WABT_OPCODE(I64, I32, I64, ___, 8, 0xfe, 0x26, I64AtomicRmwSub, "i64.atomic.rmw.sub") -WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x27, I32AtomicRmw8USub, "i32.atomic.rmw8_u.sub") -WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x28, I32AtomicRmw16USub, "i32.atomic.rmw16_u.sub") -WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x29, I64AtomicRmw8USub, "i64.atomic.rmw8_u.sub") -WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x2a, I64AtomicRmw16USub, "i64.atomic.rmw16_u.sub") -WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x2b, I64AtomicRmw32USub, "i64.atomic.rmw32_u.sub") +WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x27, I32AtomicRmw8SubU, "i32.atomic.rmw8.sub_u") +WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x28, I32AtomicRmw16SubU, "i32.atomic.rmw16.sub_u") +WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x29, I64AtomicRmw8SubU, "i64.atomic.rmw8.sub_u") +WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x2a, I64AtomicRmw16SubU, "i64.atomic.rmw16.sub_u") +WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x2b, I64AtomicRmw32SubU, "i64.atomic.rmw32.sub_u") WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x2c, I32AtomicRmwAnd, "i32.atomic.rmw.and") WABT_OPCODE(I64, I32, I64, ___, 8, 0xfe, 0x2d, I64AtomicRmwAnd, "i64.atomic.rmw.and") -WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x2e, I32AtomicRmw8UAnd, "i32.atomic.rmw8_u.and") -WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x2f, I32AtomicRmw16UAnd, "i32.atomic.rmw16_u.and") -WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x30, I64AtomicRmw8UAnd, "i64.atomic.rmw8_u.and") -WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x31, I64AtomicRmw16UAnd, "i64.atomic.rmw16_u.and") -WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x32, I64AtomicRmw32UAnd, "i64.atomic.rmw32_u.and") +WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x2e, I32AtomicRmw8AndU, "i32.atomic.rmw8.and_u") +WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x2f, I32AtomicRmw16AndU, "i32.atomic.rmw16.and_u") +WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x30, I64AtomicRmw8AndU, "i64.atomic.rmw8.and_u") +WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x31, I64AtomicRmw16AndU, "i64.atomic.rmw16.and_u") +WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x32, I64AtomicRmw32AndU, "i64.atomic.rmw32.and_u") WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x33, I32AtomicRmwOr, "i32.atomic.rmw.or") WABT_OPCODE(I64, I32, I64, ___, 8, 0xfe, 0x34, I64AtomicRmwOr, "i64.atomic.rmw.or") -WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x35, I32AtomicRmw8UOr, "i32.atomic.rmw8_u.or") -WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x36, I32AtomicRmw16UOr, "i32.atomic.rmw16_u.or") -WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x37, I64AtomicRmw8UOr, "i64.atomic.rmw8_u.or") -WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x38, I64AtomicRmw16UOr, "i64.atomic.rmw16_u.or") -WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x39, I64AtomicRmw32UOr, "i64.atomic.rmw32_u.or") +WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x35, I32AtomicRmw8OrU, "i32.atomic.rmw8.or_u") +WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x36, I32AtomicRmw16OrU, "i32.atomic.rmw16.or_u") +WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x37, I64AtomicRmw8OrU, "i64.atomic.rmw8.or_u") +WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x38, I64AtomicRmw16OrU, "i64.atomic.rmw16.or_u") +WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x39, I64AtomicRmw32OrU, "i64.atomic.rmw32.or_u") WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x3a, I32AtomicRmwXor, "i32.atomic.rmw.xor") WABT_OPCODE(I64, I32, I64, ___, 8, 0xfe, 0x3b, I64AtomicRmwXor, "i64.atomic.rmw.xor") -WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x3c, I32AtomicRmw8UXor, "i32.atomic.rmw8_u.xor") -WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x3d, I32AtomicRmw16UXor, "i32.atomic.rmw16_u.xor") -WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x3e, I64AtomicRmw8UXor, "i64.atomic.rmw8_u.xor") -WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x3f, I64AtomicRmw16UXor, "i64.atomic.rmw16_u.xor") -WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x40, I64AtomicRmw32UXor, "i64.atomic.rmw32_u.xor") +WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x3c, I32AtomicRmw8XorU, "i32.atomic.rmw8.xor_u") +WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x3d, I32AtomicRmw16XorU, "i32.atomic.rmw16.xor_u") +WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x3e, I64AtomicRmw8XorU, "i64.atomic.rmw8.xor_u") +WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x3f, I64AtomicRmw16XorU, "i64.atomic.rmw16.xor_u") +WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x40, I64AtomicRmw32XorU, "i64.atomic.rmw32.xor_u") WABT_OPCODE(I32, I32, I32, ___, 4, 0xfe, 0x41, I32AtomicRmwXchg, "i32.atomic.rmw.xchg") WABT_OPCODE(I64, I32, I64, ___, 8, 0xfe, 0x42, I64AtomicRmwXchg, "i64.atomic.rmw.xchg") -WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x43, I32AtomicRmw8UXchg, "i32.atomic.rmw8_u.xchg") -WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x44, I32AtomicRmw16UXchg, "i32.atomic.rmw16_u.xchg") -WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x45, I64AtomicRmw8UXchg, "i64.atomic.rmw8_u.xchg") -WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x46, I64AtomicRmw16UXchg, "i64.atomic.rmw16_u.xchg") -WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x47, I64AtomicRmw32UXchg, "i64.atomic.rmw32_u.xchg") +WABT_OPCODE(I32, I32, I32, ___, 1, 0xfe, 0x43, I32AtomicRmw8XchgU, "i32.atomic.rmw8.xchg_u") +WABT_OPCODE(I32, I32, I32, ___, 2, 0xfe, 0x44, I32AtomicRmw16XchgU, "i32.atomic.rmw16.xchg_u") +WABT_OPCODE(I64, I32, I64, ___, 1, 0xfe, 0x45, I64AtomicRmw8XchgU, "i64.atomic.rmw8.xchg_u") +WABT_OPCODE(I64, I32, I64, ___, 2, 0xfe, 0x46, I64AtomicRmw16XchgU, "i64.atomic.rmw16.xchg_u") +WABT_OPCODE(I64, I32, I64, ___, 4, 0xfe, 0x47, I64AtomicRmw32XchgU, "i64.atomic.rmw32.xchg_u") WABT_OPCODE(I32, I32, I32, I32, 4, 0xfe, 0x48, I32AtomicRmwCmpxchg, "i32.atomic.rmw.cmpxchg") WABT_OPCODE(I64, I32, I64, I64, 8, 0xfe, 0x49, I64AtomicRmwCmpxchg, "i64.atomic.rmw.cmpxchg") -WABT_OPCODE(I32, I32, I32, I32, 1, 0xfe, 0x4a, I32AtomicRmw8UCmpxchg, "i32.atomic.rmw8_u.cmpxchg") -WABT_OPCODE(I32, I32, I32, I32, 2, 0xfe, 0x4b, I32AtomicRmw16UCmpxchg, "i32.atomic.rmw16_u.cmpxchg") -WABT_OPCODE(I64, I32, I64, I64, 1, 0xfe, 0x4c, I64AtomicRmw8UCmpxchg, "i64.atomic.rmw8_u.cmpxchg") -WABT_OPCODE(I64, I32, I64, I64, 2, 0xfe, 0x4d, I64AtomicRmw16UCmpxchg, "i64.atomic.rmw16_u.cmpxchg") -WABT_OPCODE(I64, I32, I64, I64, 4, 0xfe, 0x4e, I64AtomicRmw32UCmpxchg, "i64.atomic.rmw32_u.cmpxchg") +WABT_OPCODE(I32, I32, I32, I32, 1, 0xfe, 0x4a, I32AtomicRmw8CmpxchgU, "i32.atomic.rmw8.cmpxchg_u") +WABT_OPCODE(I32, I32, I32, I32, 2, 0xfe, 0x4b, I32AtomicRmw16CmpxchgU, "i32.atomic.rmw16.cmpxchg_u") +WABT_OPCODE(I64, I32, I64, I64, 1, 0xfe, 0x4c, I64AtomicRmw8CmpxchgU, "i64.atomic.rmw8.cmpxchg_u") +WABT_OPCODE(I64, I32, I64, I64, 2, 0xfe, 0x4d, I64AtomicRmw16CmpxchgU, "i64.atomic.rmw16.cmpxchg_u") +WABT_OPCODE(I64, I32, I64, I64, 4, 0xfe, 0x4e, I64AtomicRmw32CmpxchgU, "i64.atomic.rmw32.cmpxchg_u") diff --git a/src/prebuilt/wast-lexer-gen.cc b/src/prebuilt/wast-lexer-gen.cc index a03b7721..f89c1378 100644 --- a/src/prebuilt/wast-lexer-gen.cc +++ b/src/prebuilt/wast-lexer-gen.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 1.0.1 on Thu Oct 11 23:03:28 2018 */ +/* Generated by re2c 0.16 */ #line 1 "src/wast-lexer.cc" /* * Copyright 2016 WebAssembly Community Group participants @@ -28,7 +28,6 @@ #define YYMAXFILL 29 - #define INITIAL_LEXER_BUFFER_SIZE (64 * 1024) #define ERROR(...) parser->Error(GetLocation(), __VA_ARGS__) @@ -190,15 +189,16 @@ Result WastLexer::Fill(size_t need) { } Token WastLexer::GetToken(WastParser* parser) { - #line 194 "src/prebuilt/wast-lexer-gen.cc" +#line 193 "src/prebuilt/wast-lexer-gen.cc" + enum YYCONDTYPE { YYCOND_i, YYCOND_BAD_TEXT, YYCOND_LINE_COMMENT, YYCOND_BLOCK_COMMENT, }; -#line 190 "src/wast-lexer.cc" +#line 190 "src/wast-lexer.cc" YYCONDTYPE cond = YYCOND_i; // i is the initial state. for (;;) { @@ -222,6 +222,491 @@ enum YYCONDTYPE { } } /* *********************************** */ +YYCOND_BAD_TEXT: + if ((limit_ - cursor_) < 5) FILL(5); + yych = *cursor_; + if (yych <= 0x7F) { + if (yych <= '!') { + if (yych == '\n') goto yy5; + if (yych >= ' ') goto yy7; + } else { + if (yych <= '"') goto yy9; + if (yych == '\\') goto yy11; + goto yy7; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xC1) goto yy12; + if (yych <= 0xDF) goto yy14; + if (yych <= 0xE0) goto yy15; + goto yy16; + } else { + if (yych <= 0xF0) goto yy17; + if (yych <= 0xF3) goto yy18; + if (yych <= 0xF4) goto yy19; + goto yy12; + } + } + ++cursor_; +yy4: +#line 252 "src/wast-lexer.cc" + { ERROR("illegal character in string"); + continue; } +#line 256 "src/prebuilt/wast-lexer-gen.cc" +yy5: + ++cursor_; + BEGIN(YYCOND_i); +#line 245 "src/wast-lexer.cc" + { ERROR("newline in string"); + NEWLINE; + continue; } +#line 264 "src/prebuilt/wast-lexer-gen.cc" +yy7: + ++cursor_; +#line 244 "src/wast-lexer.cc" + { continue; } +#line 269 "src/prebuilt/wast-lexer-gen.cc" +yy9: + ++cursor_; + BEGIN(YYCOND_i); +#line 251 "src/wast-lexer.cc" + { RETURN_TEXT(Text); } +#line 275 "src/prebuilt/wast-lexer-gen.cc" +yy11: + yyaccept = 0; + yych = *(marker_ = ++cursor_); + if (yych <= 'f') { + if (yych <= '/') { + if (yych <= '!') { + if (yych == '\n') goto yy4; + goto yy20; + } else { + if (yych <= '"') goto yy7; + if (yych == '\'') goto yy7; + goto yy20; + } + } else { + if (yych <= 'F') { + if (yych <= '9') goto yy22; + if (yych <= '@') goto yy20; + goto yy22; + } else { + if (yych == '\\') goto yy7; + if (yych <= '`') goto yy20; + goto yy22; + } + } + } else { + if (yych <= 0x7F) { + if (yych <= 'q') { + if (yych == 'n') goto yy7; + goto yy20; + } else { + if (yych == 's') goto yy20; + if (yych <= 't') goto yy7; + goto yy20; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xC1) goto yy4; + if (yych <= 0xDF) goto yy23; + if (yych <= 0xE0) goto yy25; + goto yy26; + } else { + if (yych <= 0xF0) goto yy27; + if (yych <= 0xF3) goto yy28; + if (yych <= 0xF4) goto yy29; + goto yy4; + } + } + } +yy12: + ++cursor_; +yy13: +#line 254 "src/wast-lexer.cc" + { MAYBE_MALFORMED_UTF8(" in string"); } +#line 329 "src/prebuilt/wast-lexer-gen.cc" +yy14: + yych = *++cursor_; + if (yych <= 0x7F) goto yy13; + if (yych <= 0xBF) goto yy7; + goto yy13; +yy15: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x9F) goto yy13; + if (yych <= 0xBF) goto yy30; + goto yy13; +yy16: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy13; + if (yych <= 0xBF) goto yy30; + goto yy13; +yy17: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x8F) goto yy13; + if (yych <= 0xBF) goto yy31; + goto yy13; +yy18: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy13; + if (yych <= 0xBF) goto yy31; + goto yy13; +yy19: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy13; + if (yych <= 0x8F) goto yy31; + goto yy13; +yy20: + ++cursor_; +yy21: +#line 248 "src/wast-lexer.cc" + { ERROR("bad escape \"%.*s\"", + static_cast<int>(yyleng), yytext); + continue; } +#line 372 "src/prebuilt/wast-lexer-gen.cc" +yy22: + yych = *++cursor_; + if (yych <= '@') { + if (yych <= '/') goto yy21; + if (yych <= '9') goto yy7; + goto yy21; + } else { + if (yych <= 'F') goto yy7; + if (yych <= '`') goto yy21; + if (yych <= 'f') goto yy7; + goto yy21; + } +yy23: + yych = *++cursor_; + if (yych <= 0x7F) goto yy24; + if (yych <= 0xBF) goto yy20; +yy24: + cursor_ = marker_; + if (yyaccept == 0) { + goto yy4; + } else { + goto yy13; + } +yy25: + yych = *++cursor_; + if (yych <= 0x9F) goto yy24; + if (yych <= 0xBF) goto yy23; + goto yy24; +yy26: + yych = *++cursor_; + if (yych <= 0x7F) goto yy24; + if (yych <= 0xBF) goto yy23; + goto yy24; +yy27: + yych = *++cursor_; + if (yych <= 0x8F) goto yy24; + if (yych <= 0xBF) goto yy26; + goto yy24; +yy28: + yych = *++cursor_; + if (yych <= 0x7F) goto yy24; + if (yych <= 0xBF) goto yy26; + goto yy24; +yy29: + yych = *++cursor_; + if (yych <= 0x7F) goto yy24; + if (yych <= 0x8F) goto yy26; + goto yy24; +yy30: + yych = *++cursor_; + if (yych <= 0x7F) goto yy24; + if (yych <= 0xBF) goto yy7; + goto yy24; +yy31: + ++cursor_; + if ((yych = *cursor_) <= 0x7F) goto yy24; + if (yych <= 0xBF) goto yy30; + goto yy24; +/* *********************************** */ +YYCOND_BLOCK_COMMENT: + if ((limit_ - cursor_) < 4) FILL(4); + yych = *cursor_; + if (yych <= 0x7F) { + if (yych <= '\'') { + if (yych == '\n') goto yy36; + } else { + if (yych <= '(') goto yy38; + if (yych == ';') goto yy39; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xC1) goto yy40; + if (yych <= 0xDF) goto yy42; + if (yych <= 0xE0) goto yy43; + goto yy44; + } else { + if (yych <= 0xF0) goto yy45; + if (yych <= 0xF3) goto yy46; + if (yych <= 0xF4) goto yy47; + goto yy40; + } + } +yy34: + ++cursor_; +yy35: +#line 758 "src/wast-lexer.cc" + { continue; } +#line 460 "src/prebuilt/wast-lexer-gen.cc" +yy36: + ++cursor_; +#line 757 "src/wast-lexer.cc" + { NEWLINE; continue; } +#line 465 "src/prebuilt/wast-lexer-gen.cc" +yy38: + yych = *++cursor_; + if (yych == ';') goto yy48; + goto yy35; +yy39: + yych = *++cursor_; + if (yych == ')') goto yy50; + goto yy35; +yy40: + ++cursor_; +yy41: +#line 759 "src/wast-lexer.cc" + { MAYBE_MALFORMED_UTF8(" in block comment"); } +#line 479 "src/prebuilt/wast-lexer-gen.cc" +yy42: + yych = *++cursor_; + if (yych <= 0x7F) goto yy41; + if (yych <= 0xBF) goto yy34; + goto yy41; +yy43: + yych = *(marker_ = ++cursor_); + if (yych <= 0x9F) goto yy41; + if (yych <= 0xBF) goto yy52; + goto yy41; +yy44: + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy41; + if (yych <= 0xBF) goto yy52; + goto yy41; +yy45: + yych = *(marker_ = ++cursor_); + if (yych <= 0x8F) goto yy41; + if (yych <= 0xBF) goto yy54; + goto yy41; +yy46: + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy41; + if (yych <= 0xBF) goto yy54; + goto yy41; +yy47: + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy41; + if (yych <= 0x8F) goto yy54; + goto yy41; +yy48: + ++cursor_; +#line 752 "src/wast-lexer.cc" + { COMMENT_NESTING++; continue; } +#line 514 "src/prebuilt/wast-lexer-gen.cc" +yy50: + ++cursor_; +#line 753 "src/wast-lexer.cc" + { if (--COMMENT_NESTING == 0) { + BEGIN(YYCOND_i); + } + continue; } +#line 522 "src/prebuilt/wast-lexer-gen.cc" +yy52: + yych = *++cursor_; + if (yych <= 0x7F) goto yy53; + if (yych <= 0xBF) goto yy34; +yy53: + cursor_ = marker_; + goto yy41; +yy54: + ++cursor_; + if ((yych = *cursor_) <= 0x7F) goto yy53; + if (yych <= 0xBF) goto yy52; + goto yy53; +/* *********************************** */ +YYCOND_LINE_COMMENT: + { + static const unsigned char yybm[] = { + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + if ((limit_ - cursor_) < 2) FILL(2); + yych = *cursor_; + if (yybm[0+yych] & 128) { + goto yy57; + } + if (yych <= 0xE0) { + if (yych <= '\n') goto yy60; + if (yych <= 0xC1) goto yy62; + if (yych <= 0xDF) goto yy64; + goto yy65; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) goto yy66; + goto yy67; + } else { + if (yych <= 0xF3) goto yy68; + if (yych <= 0xF4) goto yy69; + goto yy62; + } + } +yy57: + yyaccept = 0; + marker_ = ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yybm[0+yych] & 128) { + goto yy57; + } + if (yych <= 0xEF) { + if (yych <= 0xC1) goto yy59; + if (yych <= 0xDF) goto yy70; + if (yych <= 0xE0) goto yy72; + goto yy73; + } else { + if (yych <= 0xF0) goto yy74; + if (yych <= 0xF3) goto yy75; + if (yych <= 0xF4) goto yy76; + } +yy59: +#line 750 "src/wast-lexer.cc" + { continue; } +#line 613 "src/prebuilt/wast-lexer-gen.cc" +yy60: + ++cursor_; + BEGIN(YYCOND_i); +#line 749 "src/wast-lexer.cc" + { NEWLINE; continue; } +#line 619 "src/prebuilt/wast-lexer-gen.cc" +yy62: + ++cursor_; +yy63: +#line 764 "src/wast-lexer.cc" + { MAYBE_MALFORMED_UTF8(""); } +#line 625 "src/prebuilt/wast-lexer-gen.cc" +yy64: + yych = *++cursor_; + if (yych <= 0x7F) goto yy63; + if (yych <= 0xBF) goto yy57; + goto yy63; +yy65: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x9F) goto yy63; + if (yych <= 0xBF) goto yy70; + goto yy63; +yy66: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy63; + if (yych <= 0xBF) goto yy70; + goto yy63; +yy67: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x8F) goto yy63; + if (yych <= 0xBF) goto yy73; + goto yy63; +yy68: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy63; + if (yych <= 0xBF) goto yy73; + goto yy63; +yy69: + yyaccept = 1; + yych = *(marker_ = ++cursor_); + if (yych <= 0x7F) goto yy63; + if (yych <= 0x8F) goto yy73; + goto yy63; +yy70: + ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yych <= 0x7F) goto yy71; + if (yych <= 0xBF) goto yy57; +yy71: + cursor_ = marker_; + if (yyaccept == 0) { + goto yy59; + } else { + goto yy63; + } +yy72: + ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yych <= 0x9F) goto yy71; + if (yych <= 0xBF) goto yy70; + goto yy71; +yy73: + ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yych <= 0x7F) goto yy71; + if (yych <= 0xBF) goto yy70; + goto yy71; +yy74: + ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yych <= 0x8F) goto yy71; + if (yych <= 0xBF) goto yy73; + goto yy71; +yy75: + ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yych <= 0x7F) goto yy71; + if (yych <= 0xBF) goto yy73; + goto yy71; +yy76: + ++cursor_; + if (limit_ <= cursor_) FILL(1); + yych = *cursor_; + if (yych <= 0x7F) goto yy71; + if (yych <= 0x8F) goto yy73; + goto yy71; + } +/* *********************************** */ YYCOND_i: { static const unsigned char yybm[] = { @@ -261,49 +746,49 @@ YYCOND_i: if ((limit_ - cursor_) < 29) FILL(29); yych = *cursor_; if (yybm[0+yych] & 4) { - goto yy5; + goto yy81; } if (yych <= 'e') { if (yych <= '+') { if (yych <= '#') { if (yych <= 0x1F) { - if (yych <= 0x08) goto yy3; - if (yych <= '\n') goto yy8; + if (yych <= 0x08) goto yy79; + if (yych <= '\n') goto yy84; } else { - if (yych == '"') goto yy13; - goto yy10; + if (yych == '"') goto yy89; + goto yy86; } } else { if (yych <= '(') { - if (yych <= '$') goto yy15; - if (yych <= '\'') goto yy10; - goto yy16; + if (yych <= '$') goto yy91; + if (yych <= '\'') goto yy86; + goto yy92; } else { - if (yych <= ')') goto yy18; - if (yych <= '*') goto yy10; - goto yy20; + if (yych <= ')') goto yy94; + if (yych <= '*') goto yy86; + goto yy96; } } } else { if (yych <= ':') { if (yych <= '/') { - if (yych == '-') goto yy20; - goto yy10; + if (yych == '-') goto yy96; + goto yy86; } else { - if (yych <= '0') goto yy21; - if (yych <= '9') goto yy23; - goto yy10; + if (yych <= '0') goto yy97; + if (yych <= '9') goto yy99; + goto yy86; } } else { if (yych <= 'a') { - if (yych <= ';') goto yy25; - if (yych <= '`') goto yy10; - goto yy26; + if (yych <= ';') goto yy101; + if (yych <= '`') goto yy86; + goto yy102; } else { - if (yych <= 'b') goto yy27; - if (yych <= 'c') goto yy28; - if (yych <= 'd') goto yy29; - goto yy30; + if (yych <= 'b') goto yy103; + if (yych <= 'c') goto yy104; + if (yych <= 'd') goto yy105; + goto yy106; } } } @@ -311,12136 +796,12681 @@ YYCOND_i: if (yych <= 's') { if (yych <= 'l') { if (yych <= 'h') { - if (yych <= 'f') goto yy31; - if (yych <= 'g') goto yy32; - goto yy10; + if (yych <= 'f') goto yy107; + if (yych <= 'g') goto yy108; + goto yy86; } else { - if (yych <= 'i') goto yy33; - if (yych <= 'k') goto yy10; - goto yy34; + if (yych <= 'i') goto yy109; + if (yych <= 'k') goto yy86; + goto yy110; } } else { if (yych <= 'o') { - if (yych <= 'm') goto yy35; - if (yych <= 'n') goto yy36; - goto yy37; + if (yych <= 'm') goto yy111; + if (yych <= 'n') goto yy112; + goto yy113; } else { - if (yych <= 'p') goto yy38; - if (yych <= 'q') goto yy39; - if (yych <= 'r') goto yy40; - goto yy41; + if (yych <= 'p') goto yy114; + if (yych <= 'q') goto yy115; + if (yych <= 'r') goto yy116; + goto yy117; } } } else { if (yych <= 0xC1) { if (yych <= 'v') { - if (yych <= 't') goto yy42; - if (yych <= 'u') goto yy43; - goto yy44; + if (yych <= 't') goto yy118; + if (yych <= 'u') goto yy119; + goto yy120; } else { - if (yych <= '~') goto yy10; - if (yych >= 0x80) goto yy45; + if (yych <= '~') goto yy86; + if (yych >= 0x80) goto yy121; } } else { if (yych <= 0xEF) { - if (yych <= 0xDF) goto yy47; - if (yych <= 0xE0) goto yy48; - goto yy49; + if (yych <= 0xDF) goto yy123; + if (yych <= 0xE0) goto yy124; + goto yy125; } else { - if (yych <= 0xF0) goto yy50; - if (yych <= 0xF3) goto yy51; - if (yych <= 0xF4) goto yy52; - goto yy45; + if (yych <= 0xF0) goto yy126; + if (yych <= 0xF3) goto yy127; + if (yych <= 0xF4) goto yy128; + goto yy121; } } } } -yy3: +yy79: ++cursor_; -yy4: -#line 722 "src/wast-lexer.cc" +yy80: +#line 763 "src/wast-lexer.cc" { ERROR("unexpected char"); continue; } -#line 364 "src/prebuilt/wast-lexer-gen.cc" -yy5: +#line 849 "src/prebuilt/wast-lexer-gen.cc" +yy81: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yybm[0+yych] & 4) { - goto yy5; + goto yy81; } -#line 720 "src/wast-lexer.cc" +#line 761 "src/wast-lexer.cc" { continue; } -#line 374 "src/prebuilt/wast-lexer-gen.cc" -yy8: +#line 859 "src/prebuilt/wast-lexer-gen.cc" +yy84: ++cursor_; -#line 719 "src/wast-lexer.cc" +#line 760 "src/wast-lexer.cc" { NEWLINE; continue; } -#line 379 "src/prebuilt/wast-lexer-gen.cc" -yy10: +#line 864 "src/prebuilt/wast-lexer-gen.cc" +yy86: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy11: +yy87: if (yybm[0+yych] & 8) { - goto yy10; + goto yy86; } -yy12: -#line 721 "src/wast-lexer.cc" +yy88: +#line 762 "src/wast-lexer.cc" { RETURN_TEXT(Reserved); } -#line 391 "src/prebuilt/wast-lexer-gen.cc" -yy13: +#line 876 "src/prebuilt/wast-lexer-gen.cc" +yy89: yyaccept = 0; yych = *(marker_ = ++cursor_); - if (yych <= 0x1F) goto yy14; - if (yych <= 0x7F) goto yy54; - if (yych <= 0xC1) goto yy14; - if (yych <= 0xF4) goto yy54; -yy14: + if (yych <= 0x1F) goto yy90; + if (yych <= 0x7F) goto yy130; + if (yych <= 0xC1) goto yy90; + if (yych <= 0xF4) goto yy130; +yy90: BEGIN(YYCOND_BAD_TEXT); #line 243 "src/wast-lexer.cc" { continue; } -#line 403 "src/prebuilt/wast-lexer-gen.cc" -yy15: +#line 888 "src/prebuilt/wast-lexer-gen.cc" +yy91: yych = *++cursor_; if (yych <= '\'') { - if (yych == '!') goto yy66; - if (yych <= '"') goto yy12; - goto yy66; + if (yych == '!') goto yy142; + if (yych <= '"') goto yy88; + goto yy142; } else { if (yych <= ':') { - if (yych <= ')') goto yy12; - goto yy66; + if (yych <= ')') goto yy88; + goto yy142; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy66; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy142; + goto yy88; } } -yy16: - yych = *++cursor_; - if (yych == ';') goto yy68; +yy92: + ++cursor_; + if ((yych = *cursor_) == ';') goto yy144; #line 234 "src/wast-lexer.cc" { RETURN(Lpar); } -#line 425 "src/prebuilt/wast-lexer-gen.cc" -yy18: +#line 910 "src/prebuilt/wast-lexer-gen.cc" +yy94: ++cursor_; #line 235 "src/wast-lexer.cc" { RETURN(Rpar); } -#line 430 "src/prebuilt/wast-lexer-gen.cc" -yy20: +#line 915 "src/prebuilt/wast-lexer-gen.cc" +yy96: yych = *++cursor_; if (yych <= 'h') { - if (yych <= '/') goto yy11; - if (yych <= '0') goto yy70; - if (yych <= '9') goto yy72; - goto yy11; + if (yych <= '/') goto yy87; + if (yych <= '0') goto yy146; + if (yych <= '9') goto yy148; + goto yy87; } else { - if (yych <= 'i') goto yy74; - if (yych == 'n') goto yy75; - goto yy11; + if (yych <= 'i') goto yy150; + if (yych == 'n') goto yy151; + goto yy87; } -yy21: - yych = *++cursor_; - if (yych == 'x') goto yy80; - goto yy24; -yy22: +yy97: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 16) { + goto yy99; + } + if (yych <= ';') { + if (yych <= '\'') { + if (yych == '!') goto yy86; + if (yych >= '#') goto yy86; + } else { + if (yych <= '-') { + if (yych >= '*') goto yy86; + } else { + if (yych <= '.') goto yy152; + if (yych <= ':') goto yy86; + } + } + } else { + if (yych <= 'd') { + if (yych <= 'E') { + if (yych <= 'D') goto yy86; + goto yy154; + } else { + if (yych == '_') goto yy155; + goto yy86; + } + } else { + if (yych <= 'w') { + if (yych <= 'e') goto yy154; + goto yy86; + } else { + if (yych <= 'x') goto yy156; + if (yych <= '~') goto yy86; + } + } + } +yy98: #line 236 "src/wast-lexer.cc" { RETURN_LITERAL(Nat, Int); } -#line 450 "src/prebuilt/wast-lexer-gen.cc" -yy23: +#line 967 "src/prebuilt/wast-lexer-gen.cc" +yy99: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; -yy24: if (yybm[0+yych] & 16) { - goto yy23; + goto yy99; } if (yych <= ':') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy22; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy98; + goto yy86; } else { - if (yych <= ')') goto yy22; - if (yych == '.') goto yy76; - goto yy10; + if (yych <= ')') goto yy98; + if (yych == '.') goto yy152; + goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy22; - if (yych == 'E') goto yy78; - goto yy10; + if (yych <= ';') goto yy98; + if (yych == 'E') goto yy154; + goto yy86; } else { if (yych <= 'd') { - if (yych <= '_') goto yy79; - goto yy10; + if (yych <= '_') goto yy155; + goto yy86; } else { - if (yych <= 'e') goto yy78; - if (yych <= '~') goto yy10; - goto yy22; + if (yych <= 'e') goto yy154; + if (yych <= '~') goto yy86; + goto yy98; } } } -yy25: +yy101: yych = *++cursor_; - if (yych == ';') goto yy81; - goto yy4; -yy26: + if (yych == ';') goto yy157; + goto yy80; +yy102: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy83; - if (yych <= 'm') goto yy11; - goto yy84; + if (yych == 'l') goto yy159; + if (yych <= 'm') goto yy87; + goto yy160; } else { - if (yych <= 'r') goto yy11; - if (yych <= 's') goto yy85; - if (yych <= 't') goto yy86; - goto yy11; + if (yych <= 'r') goto yy87; + if (yych <= 's') goto yy161; + if (yych <= 't') goto yy162; + goto yy87; } -yy27: +yy103: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'i') goto yy87; - goto yy11; + if (yych == 'i') goto yy163; + goto yy87; } else { - if (yych <= 'l') goto yy88; - if (yych == 'r') goto yy89; - goto yy11; + if (yych <= 'l') goto yy164; + if (yych == 'r') goto yy165; + goto yy87; } -yy28: +yy104: yych = *++cursor_; - if (yych == 'a') goto yy91; - if (yych == 'u') goto yy92; - goto yy11; -yy29: + if (yych == 'a') goto yy167; + if (yych == 'u') goto yy168; + goto yy87; +yy105: yych = *++cursor_; - if (yych == 'a') goto yy93; - if (yych == 'r') goto yy94; - goto yy11; -yy30: + if (yych == 'a') goto yy169; + if (yych == 'r') goto yy170; + goto yy87; +yy106: yych = *++cursor_; if (yych <= 'm') { - if (yych == 'l') goto yy95; - goto yy11; + if (yych == 'l') goto yy171; + goto yy87; } else { - if (yych <= 'n') goto yy96; - if (yych == 'x') goto yy97; - goto yy11; + if (yych <= 'n') goto yy172; + if (yych == 'x') goto yy173; + goto yy87; } -yy31: +yy107: yych = *++cursor_; if (yych <= '5') { - if (yych == '3') goto yy98; - goto yy11; + if (yych == '3') goto yy174; + goto yy87; } else { - if (yych <= '6') goto yy99; - if (yych == 'u') goto yy100; - goto yy11; + if (yych <= '6') goto yy175; + if (yych == 'u') goto yy176; + goto yy87; } -yy32: +yy108: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'e') goto yy101; - goto yy11; + if (yych == 'e') goto yy177; + goto yy87; } else { - if (yych <= 'l') goto yy102; - if (yych == 'r') goto yy103; - goto yy11; + if (yych <= 'l') goto yy178; + if (yych == 'r') goto yy179; + goto yy87; } -yy33: +yy109: yych = *++cursor_; if (yych <= '7') { if (yych <= '2') { - if (yych == '1') goto yy104; - goto yy11; + if (yych == '1') goto yy180; + goto yy87; } else { - if (yych <= '3') goto yy105; - if (yych == '6') goto yy106; - goto yy11; + if (yych <= '3') goto yy181; + if (yych == '6') goto yy182; + goto yy87; } } else { if (yych <= 'f') { - if (yych <= '8') goto yy107; - if (yych <= 'e') goto yy11; - goto yy108; + if (yych <= '8') goto yy183; + if (yych <= 'e') goto yy87; + goto yy184; } else { - if (yych <= 'l') goto yy11; - if (yych <= 'm') goto yy110; - if (yych <= 'n') goto yy111; - goto yy11; + if (yych <= 'l') goto yy87; + if (yych <= 'm') goto yy186; + if (yych <= 'n') goto yy187; + goto yy87; } } -yy34: +yy110: yych = *++cursor_; - if (yych == 'o') goto yy112; - goto yy11; -yy35: + if (yych == 'o') goto yy188; + goto yy87; +yy111: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy113; - goto yy11; + if (yych == 'e') goto yy189; + goto yy87; } else { - if (yych <= 'o') goto yy114; - if (yych == 'u') goto yy115; - goto yy11; + if (yych <= 'o') goto yy190; + if (yych == 'u') goto yy191; + goto yy87; } -yy36: +yy112: yych = *++cursor_; - if (yych == 'a') goto yy116; - if (yych == 'o') goto yy117; - goto yy11; -yy37: + if (yych == 'a') goto yy192; + if (yych == 'o') goto yy193; + goto yy87; +yy113: yych = *++cursor_; - if (yych == 'f') goto yy118; - goto yy11; -yy38: + if (yych == 'f') goto yy194; + goto yy87; +yy114: yych = *++cursor_; - if (yych == 'a') goto yy119; - goto yy11; -yy39: + if (yych == 'a') goto yy195; + goto yy87; +yy115: yych = *++cursor_; - if (yych == 'u') goto yy120; - goto yy11; -yy40: + if (yych == 'u') goto yy196; + goto yy87; +yy116: yych = *++cursor_; - if (yych == 'e') goto yy121; - goto yy11; -yy41: + if (yych == 'e') goto yy197; + goto yy87; +yy117: yych = *++cursor_; if (yych <= 'g') { - if (yych == 'e') goto yy122; - goto yy11; + if (yych == 'e') goto yy198; + goto yy87; } else { - if (yych <= 'h') goto yy123; - if (yych == 't') goto yy124; - goto yy11; + if (yych <= 'h') goto yy199; + if (yych == 't') goto yy200; + goto yy87; } -yy42: +yy118: yych = *++cursor_; switch (yych) { - case 'a': goto yy125; - case 'e': goto yy126; - case 'h': goto yy127; - case 'r': goto yy128; - case 'y': goto yy129; - default: goto yy11; + case 'a': goto yy201; + case 'e': goto yy202; + case 'h': goto yy203; + case 'r': goto yy204; + case 'y': goto yy205; + default: goto yy87; } -yy43: +yy119: yych = *++cursor_; - if (yych == 'n') goto yy130; - goto yy11; -yy44: + if (yych == 'n') goto yy206; + goto yy87; +yy120: yych = *++cursor_; - if (yych == '1') goto yy131; - if (yych == '8') goto yy132; - goto yy11; -yy45: + if (yych == '1') goto yy207; + if (yych == '8') goto yy208; + goto yy87; +yy121: ++cursor_; -yy46: -#line 723 "src/wast-lexer.cc" +yy122: +#line 764 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } -#line 643 "src/prebuilt/wast-lexer-gen.cc" -yy47: +#line 1159 "src/prebuilt/wast-lexer-gen.cc" +yy123: yych = *++cursor_; - if (yych <= 0x7F) goto yy46; - if (yych <= 0xBF) goto yy3; - goto yy46; -yy48: + if (yych <= 0x7F) goto yy122; + if (yych <= 0xBF) goto yy79; + goto yy122; +yy124: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy46; - if (yych <= 0xBF) goto yy133; - goto yy46; -yy49: + if (yych <= 0x9F) goto yy122; + if (yych <= 0xBF) goto yy209; + goto yy122; +yy125: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy46; - if (yych <= 0xBF) goto yy133; - goto yy46; -yy50: + if (yych <= 0x7F) goto yy122; + if (yych <= 0xBF) goto yy209; + goto yy122; +yy126: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy46; - if (yych <= 0xBF) goto yy134; - goto yy46; -yy51: + if (yych <= 0x8F) goto yy122; + if (yych <= 0xBF) goto yy210; + goto yy122; +yy127: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy46; - if (yych <= 0xBF) goto yy134; - goto yy46; -yy52: + if (yych <= 0x7F) goto yy122; + if (yych <= 0xBF) goto yy210; + goto yy122; +yy128: yyaccept = 1; yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy46; - if (yych <= 0x8F) goto yy134; - goto yy46; -yy53: + if (yych <= 0x7F) goto yy122; + if (yych <= 0x8F) goto yy210; + goto yy122; +yy129: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy54: +yy130: if (yybm[0+yych] & 32) { - goto yy53; + goto yy129; } if (yych <= 0xDF) { if (yych <= '"') { - if (yych >= ' ') goto yy56; + if (yych >= ' ') goto yy132; } else { - if (yych <= '\\') goto yy58; - if (yych >= 0xC2) goto yy59; + if (yych <= '\\') goto yy134; + if (yych >= 0xC2) goto yy135; } } else { if (yych <= 0xF0) { - if (yych <= 0xE0) goto yy60; - if (yych <= 0xEF) goto yy61; - goto yy62; + if (yych <= 0xE0) goto yy136; + if (yych <= 0xEF) goto yy137; + goto yy138; } else { - if (yych <= 0xF3) goto yy63; - if (yych <= 0xF4) goto yy64; + if (yych <= 0xF3) goto yy139; + if (yych <= 0xF4) goto yy140; } } -yy55: +yy131: cursor_ = marker_; if (yyaccept == 0) { - goto yy14; + goto yy90; } else { - goto yy46; + goto yy122; } -yy56: +yy132: ++cursor_; #line 242 "src/wast-lexer.cc" { RETURN_TEXT(Text); } -#line 715 "src/prebuilt/wast-lexer-gen.cc" -yy58: +#line 1231 "src/prebuilt/wast-lexer-gen.cc" +yy134: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '[') { if (yych <= '\'') { - if (yych == '"') goto yy53; - if (yych <= '&') goto yy55; - goto yy53; + if (yych == '"') goto yy129; + if (yych <= '&') goto yy131; + goto yy129; } else { if (yych <= '9') { - if (yych <= '/') goto yy55; - goto yy135; + if (yych <= '/') goto yy131; + goto yy211; } else { - if (yych <= '@') goto yy55; - if (yych <= 'F') goto yy135; - goto yy55; + if (yych <= '@') goto yy131; + if (yych <= 'F') goto yy211; + goto yy131; } } } else { if (yych <= 'n') { if (yych <= '`') { - if (yych <= '\\') goto yy53; - goto yy55; + if (yych <= '\\') goto yy129; + goto yy131; } else { - if (yych <= 'f') goto yy135; - if (yych <= 'm') goto yy55; - goto yy53; + if (yych <= 'f') goto yy211; + if (yych <= 'm') goto yy131; + goto yy129; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy55; - goto yy53; + if (yych <= 'q') goto yy131; + goto yy129; } else { - if (yych == 't') goto yy53; - goto yy55; + if (yych == 't') goto yy129; + goto yy131; } } } -yy59: +yy135: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy55; - if (yych <= 0xBF) goto yy53; - goto yy55; -yy60: + if (yych <= 0x7F) goto yy131; + if (yych <= 0xBF) goto yy129; + goto yy131; +yy136: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x9F) goto yy55; - if (yych <= 0xBF) goto yy59; - goto yy55; -yy61: + if (yych <= 0x9F) goto yy131; + if (yych <= 0xBF) goto yy135; + goto yy131; +yy137: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy55; - if (yych <= 0xBF) goto yy59; - goto yy55; -yy62: + if (yych <= 0x7F) goto yy131; + if (yych <= 0xBF) goto yy135; + goto yy131; +yy138: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x8F) goto yy55; - if (yych <= 0xBF) goto yy61; - goto yy55; -yy63: + if (yych <= 0x8F) goto yy131; + if (yych <= 0xBF) goto yy137; + goto yy131; +yy139: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy55; - if (yych <= 0xBF) goto yy61; - goto yy55; -yy64: + if (yych <= 0x7F) goto yy131; + if (yych <= 0xBF) goto yy137; + goto yy131; +yy140: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; - if (yych <= 0x7F) goto yy55; - if (yych <= 0x8F) goto yy61; - goto yy55; -yy65: + if (yych <= 0x7F) goto yy131; + if (yych <= 0x8F) goto yy137; + goto yy131; +yy141: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy66: +yy142: if (yybm[0+yych] & 64) { - goto yy65; - } - if (yych <= ')') goto yy67; - if (yych <= ',') goto yy10; - if (yych <= ';') goto yy67; - if (yych <= '}') goto yy10; -yy67: -#line 704 "src/wast-lexer.cc" + goto yy141; + } + if (yych <= ')') goto yy143; + if (yych <= ',') goto yy86; + if (yych <= ';') goto yy143; + if (yych <= '}') goto yy86; +yy143: +#line 745 "src/wast-lexer.cc" { RETURN_TEXT(Var); } -#line 812 "src/prebuilt/wast-lexer-gen.cc" -yy68: +#line 1328 "src/prebuilt/wast-lexer-gen.cc" +yy144: ++cursor_; BEGIN(YYCOND_BLOCK_COMMENT); -#line 710 "src/wast-lexer.cc" +#line 751 "src/wast-lexer.cc" { COMMENT_NESTING = 1; continue; } -#line 818 "src/prebuilt/wast-lexer-gen.cc" -yy70: - yych = *++cursor_; - if (yych == 'x') goto yy137; - goto yy73; -yy71: +#line 1334 "src/prebuilt/wast-lexer-gen.cc" +yy146: + ++cursor_; + if ((yych = *cursor_) <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy86; + } else { + if (yych <= '"') goto yy147; + if (yych <= '\'') goto yy86; + } + } else { + if (yych <= '.') { + if (yych <= '-') goto yy86; + goto yy152; + } else { + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy148; + goto yy86; + } + } + } else { + if (yych <= '_') { + if (yych <= 'D') { + if (yych >= '<') goto yy86; + } else { + if (yych <= 'E') goto yy154; + if (yych <= '^') goto yy86; + goto yy212; + } + } else { + if (yych <= 'w') { + if (yych == 'e') goto yy154; + goto yy86; + } else { + if (yych <= 'x') goto yy213; + if (yych <= '~') goto yy86; + } + } + } +yy147: #line 237 "src/wast-lexer.cc" { RETURN_LITERAL(Int, Int); } -#line 826 "src/prebuilt/wast-lexer-gen.cc" -yy72: +#line 1377 "src/prebuilt/wast-lexer-gen.cc" +yy148: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; -yy73: if (yych <= '9') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy71; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy147; + goto yy86; } else { if (yych <= '-') { - if (yych <= ')') goto yy71; - goto yy10; + if (yych <= ')') goto yy147; + goto yy86; } else { - if (yych <= '.') goto yy76; - if (yych <= '/') goto yy10; - goto yy72; + if (yych <= '.') goto yy152; + if (yych <= '/') goto yy86; + goto yy148; } } } else { if (yych <= '^') { if (yych <= ';') { - if (yych <= ':') goto yy10; - goto yy71; + if (yych <= ':') goto yy86; + goto yy147; } else { - if (yych == 'E') goto yy78; - goto yy10; + if (yych == 'E') goto yy154; + goto yy86; } } else { if (yych <= 'd') { - if (yych <= '_') goto yy136; - goto yy10; + if (yych <= '_') goto yy212; + goto yy86; } else { - if (yych <= 'e') goto yy78; - if (yych <= '~') goto yy10; - goto yy71; + if (yych <= 'e') goto yy154; + if (yych <= '~') goto yy86; + goto yy147; } } } -yy74: - yych = *++cursor_; - if (yych == 'n') goto yy138; - goto yy11; -yy75: +yy150: yych = *++cursor_; - if (yych == 'a') goto yy116; - goto yy11; -yy76: + if (yych == 'n') goto yy214; + goto yy87; +yy151: yych = *++cursor_; - if (yych == '_') goto yy10; - goto yy140; -yy77: + if (yych == 'a') goto yy192; + goto yy87; +yy152: + ++cursor_; + if ((yych = *cursor_) <= '9') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy153; + if (yych <= '/') goto yy86; + goto yy215; + } + } else { + if (yych <= 'E') { + if (yych == ';') goto yy153; + if (yych <= 'D') goto yy86; + goto yy154; + } else { + if (yych == 'e') goto yy154; + if (yych <= '~') goto yy86; + } + } +yy153: #line 238 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Float); } -#line 882 "src/prebuilt/wast-lexer-gen.cc" -yy78: +#line 1449 "src/prebuilt/wast-lexer-gen.cc" +yy154: yych = *++cursor_; if (yych <= ',') { - if (yych == '+') goto yy141; - goto yy11; + if (yych == '+') goto yy217; + goto yy87; } else { - if (yych <= '-') goto yy141; - if (yych <= '/') goto yy11; - if (yych <= '9') goto yy142; - goto yy11; + if (yych <= '-') goto yy217; + if (yych <= '/') goto yy87; + if (yych <= '9') goto yy218; + goto yy87; } -yy79: +yy155: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yybm[0+yych] & 16) { - goto yy23; + goto yy99; } if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy12; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy88; + goto yy86; } else { if (yych <= ':') { - if (yych <= ')') goto yy12; - goto yy10; + if (yych <= ')') goto yy88; + goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy80: +yy156: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yybm[0+yych] & 128) { - goto yy144; + goto yy220; } if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy12; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy88; + goto yy86; } else { if (yych <= ':') { - if (yych <= ')') goto yy12; - goto yy10; + if (yych <= ')') goto yy88; + goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy81: +yy157: ++cursor_; BEGIN(YYCOND_LINE_COMMENT); -#line 707 "src/wast-lexer.cc" +#line 748 "src/wast-lexer.cc" { continue; } -#line 941 "src/prebuilt/wast-lexer-gen.cc" -yy83: - yych = *++cursor_; - if (yych == 'i') goto yy146; - goto yy11; -yy84: +#line 1508 "src/prebuilt/wast-lexer-gen.cc" +yy159: yych = *++cursor_; - if (yych == 'y') goto yy147; - goto yy11; -yy85: + if (yych == 'i') goto yy222; + goto yy87; +yy160: yych = *++cursor_; - if (yych == 's') goto yy148; - goto yy11; -yy86: + if (yych == 'y') goto yy223; + goto yy87; +yy161: yych = *++cursor_; - if (yych == 'o') goto yy149; - goto yy11; -yy87: + if (yych == 's') goto yy224; + goto yy87; +yy162: yych = *++cursor_; - if (yych == 'n') goto yy150; - goto yy11; -yy88: + if (yych == 'o') goto yy225; + goto yy87; +yy163: yych = *++cursor_; - if (yych == 'o') goto yy151; - goto yy11; -yy89: + if (yych == 'n') goto yy226; + goto yy87; +yy164: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'o') goto yy227; + goto yy87; +yy165: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy90; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy166; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy152; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy228; + if (yych <= '~') goto yy86; } } -yy90: +yy166: #line 268 "src/wast-lexer.cc" { RETURN_OPCODE0(Br); } -#line 986 "src/prebuilt/wast-lexer-gen.cc" -yy91: - yych = *++cursor_; - if (yych == 'l') goto yy153; - if (yych == 't') goto yy154; - goto yy11; -yy92: +#line 1553 "src/prebuilt/wast-lexer-gen.cc" +yy167: yych = *++cursor_; - if (yych == 'r') goto yy155; - goto yy11; -yy93: + if (yych == 'l') goto yy229; + if (yych == 't') goto yy230; + goto yy87; +yy168: yych = *++cursor_; - if (yych == 't') goto yy156; - goto yy11; -yy94: + if (yych == 'r') goto yy231; + goto yy87; +yy169: yych = *++cursor_; - if (yych == 'o') goto yy157; - goto yy11; -yy95: + if (yych == 't') goto yy232; + goto yy87; +yy170: yych = *++cursor_; - if (yych == 'e') goto yy158; - if (yych == 's') goto yy159; - goto yy11; -yy96: + if (yych == 'o') goto yy233; + goto yy87; +yy171: yych = *++cursor_; - if (yych == 'd') goto yy160; - goto yy11; -yy97: + if (yych == 'e') goto yy234; + if (yych == 's') goto yy235; + goto yy87; +yy172: yych = *++cursor_; - if (yych == 'c') goto yy162; - if (yych == 'p') goto yy163; - goto yy11; -yy98: + if (yych == 'd') goto yy236; + goto yy87; +yy173: yych = *++cursor_; - if (yych == '2') goto yy164; - goto yy11; -yy99: + if (yych == 'c') goto yy238; + if (yych == 'p') goto yy239; + goto yy87; +yy174: yych = *++cursor_; - if (yych == '4') goto yy166; - goto yy11; -yy100: + if (yych == '2') goto yy240; + goto yy87; +yy175: yych = *++cursor_; - if (yych == 'n') goto yy168; - goto yy11; -yy101: + if (yych == '4') goto yy242; + goto yy87; +yy176: yych = *++cursor_; - if (yych == 't') goto yy169; - goto yy11; -yy102: + if (yych == 'n') goto yy244; + goto yy87; +yy177: yych = *++cursor_; - if (yych == 'o') goto yy171; - goto yy11; -yy103: + if (yych == 't') goto yy245; + goto yy87; +yy178: yych = *++cursor_; - if (yych == 'o') goto yy172; - goto yy11; -yy104: + if (yych == 'o') goto yy247; + goto yy87; +yy179: yych = *++cursor_; - if (yych == '6') goto yy173; - goto yy11; -yy105: + if (yych == 'o') goto yy248; + goto yy87; +yy180: yych = *++cursor_; - if (yych == '2') goto yy174; - goto yy11; -yy106: + if (yych == '6') goto yy249; + goto yy87; +yy181: yych = *++cursor_; - if (yych == '4') goto yy176; - goto yy11; -yy107: + if (yych == '2') goto yy250; + goto yy87; +yy182: yych = *++cursor_; - if (yych == 'x') goto yy178; - goto yy11; -yy108: + if (yych == '4') goto yy252; + goto yy87; +yy183: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'x') goto yy254; + goto yy87; +yy184: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy109; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy185; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy179; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy255; + if (yych <= '~') goto yy86; } } -yy109: +yy185: #line 264 "src/wast-lexer.cc" { RETURN_OPCODE0(If); } -#line 1078 "src/prebuilt/wast-lexer-gen.cc" -yy110: +#line 1645 "src/prebuilt/wast-lexer-gen.cc" +yy186: yych = *++cursor_; - if (yych == 'p') goto yy180; - goto yy11; -yy111: + if (yych == 'p') goto yy256; + goto yy87; +yy187: yych = *++cursor_; - if (yych == 'f') goto yy181; - if (yych == 'v') goto yy183; - goto yy11; -yy112: + if (yych == 'f') goto yy257; + if (yych == 'v') goto yy259; + goto yy87; +yy188: yych = *++cursor_; - if (yych == 'c') goto yy184; - if (yych == 'o') goto yy185; - goto yy11; -yy113: + if (yych == 'c') goto yy260; + if (yych == 'o') goto yy261; + goto yy87; +yy189: yych = *++cursor_; - if (yych == 'm') goto yy186; - goto yy11; -yy114: + if (yych == 'm') goto yy262; + goto yy87; +yy190: yych = *++cursor_; - if (yych == 'd') goto yy187; - goto yy11; -yy115: + if (yych == 'd') goto yy263; + goto yy87; +yy191: yych = *++cursor_; - if (yych == 't') goto yy188; - goto yy11; -yy116: + if (yych == 't') goto yy264; + goto yy87; +yy192: yych = *++cursor_; - if (yych == 'n') goto yy190; - goto yy11; -yy117: + if (yych == 'n') goto yy266; + goto yy87; +yy193: yych = *++cursor_; - if (yych == 'p') goto yy192; - goto yy11; -yy118: + if (yych == 'p') goto yy268; + goto yy87; +yy194: yych = *++cursor_; - if (yych == 'f') goto yy194; - goto yy11; -yy119: + if (yych == 'f') goto yy270; + goto yy87; +yy195: yych = *++cursor_; - if (yych <= 'q') goto yy11; - if (yych <= 'r') goto yy195; - if (yych <= 's') goto yy196; - goto yy11; -yy120: + if (yych <= 'q') goto yy87; + if (yych <= 'r') goto yy271; + if (yych <= 's') goto yy272; + goto yy87; +yy196: yych = *++cursor_; - if (yych == 'o') goto yy197; - goto yy11; -yy121: + if (yych == 'o') goto yy273; + goto yy87; +yy197: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'g') goto yy198; - goto yy11; + if (yych == 'g') goto yy274; + goto yy87; } else { - if (yych <= 's') goto yy199; - if (yych <= 't') goto yy200; - goto yy11; + if (yych <= 's') goto yy275; + if (yych <= 't') goto yy276; + goto yy87; } -yy122: +yy198: yych = *++cursor_; - if (yych == 'l') goto yy201; - if (yych == 't') goto yy202; - goto yy11; -yy123: + if (yych == 'l') goto yy277; + if (yych == 't') goto yy278; + goto yy87; +yy199: yych = *++cursor_; - if (yych == 'a') goto yy203; - goto yy11; -yy124: + if (yych == 'a') goto yy279; + goto yy87; +yy200: yych = *++cursor_; - if (yych == 'a') goto yy204; - goto yy11; -yy125: + if (yych == 'a') goto yy280; + goto yy87; +yy201: yych = *++cursor_; - if (yych == 'b') goto yy205; - goto yy11; -yy126: + if (yych == 'b') goto yy281; + goto yy87; +yy202: yych = *++cursor_; - if (yych == 'e') goto yy206; - goto yy11; -yy127: + if (yych == 'e') goto yy282; + goto yy87; +yy203: yych = *++cursor_; - if (yych == 'e') goto yy207; - if (yych == 'r') goto yy208; - goto yy11; -yy128: + if (yych == 'e') goto yy283; + if (yych == 'r') goto yy284; + goto yy87; +yy204: yych = *++cursor_; - if (yych == 'y') goto yy209; - goto yy11; -yy129: + if (yych == 'y') goto yy285; + goto yy87; +yy205: yych = *++cursor_; - if (yych == 'p') goto yy211; - goto yy11; -yy130: + if (yych == 'p') goto yy287; + goto yy87; +yy206: yych = *++cursor_; - if (yych == 'r') goto yy212; - goto yy11; -yy131: + if (yych == 'r') goto yy288; + goto yy87; +yy207: yych = *++cursor_; - if (yych == '2') goto yy213; - goto yy11; -yy132: + if (yych == '2') goto yy289; + goto yy87; +yy208: yych = *++cursor_; - if (yych == 'x') goto yy214; - goto yy11; -yy133: + if (yych == 'x') goto yy290; + goto yy87; +yy209: yych = *++cursor_; - if (yych <= 0x7F) goto yy55; - if (yych <= 0xBF) goto yy3; - goto yy55; -yy134: + if (yych <= 0x7F) goto yy131; + if (yych <= 0xBF) goto yy79; + goto yy131; +yy210: yych = *++cursor_; - if (yych <= 0x7F) goto yy55; - if (yych <= 0xBF) goto yy133; - goto yy55; -yy135: + if (yych <= 0x7F) goto yy131; + if (yych <= 0xBF) goto yy209; + goto yy131; +yy211: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '@') { - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy53; - goto yy55; + if (yych <= '/') goto yy131; + if (yych <= '9') goto yy129; + goto yy131; } else { - if (yych <= 'F') goto yy53; - if (yych <= '`') goto yy55; - if (yych <= 'f') goto yy53; - goto yy55; + if (yych <= 'F') goto yy129; + if (yych <= '`') goto yy131; + if (yych <= 'f') goto yy129; + goto yy131; } -yy136: +yy212: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy12; - goto yy10; + if (yych <= ' ') goto yy88; + goto yy86; } else { - if (yych <= '"') goto yy12; - if (yych <= '\'') goto yy10; - goto yy12; + if (yych <= '"') goto yy88; + if (yych <= '\'') goto yy86; + goto yy88; } } else { if (yych <= ':') { - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy72; - goto yy10; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy148; + goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy137: +yy213: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy12; + if (yych == '!') goto yy86; + goto yy88; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy12; - if (yych <= '/') goto yy10; - goto yy215; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy88; + if (yych <= '/') goto yy86; + goto yy291; } } else { if (yych <= 'F') { - if (yych == ';') goto yy12; - if (yych <= '@') goto yy10; - goto yy215; + if (yych == ';') goto yy88; + if (yych <= '@') goto yy86; + goto yy291; } else { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy215; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy291; + if (yych <= '~') goto yy86; + goto yy88; } } -yy138: +yy214: yych = *++cursor_; - if (yych == 'f') goto yy181; - goto yy11; -yy139: + if (yych == 'f') goto yy257; + goto yy87; +yy215: ++cursor_; if ((limit_ - cursor_) < 2) FILL(2); yych = *cursor_; -yy140: if (yych <= ':') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy77; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy153; + goto yy86; } else { - if (yych <= ')') goto yy77; - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy139; - goto yy10; + if (yych <= ')') goto yy153; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy215; + goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy77; - if (yych == 'E') goto yy78; - goto yy10; + if (yych <= ';') goto yy153; + if (yych == 'E') goto yy154; + goto yy86; } else { if (yych <= 'd') { - if (yych <= '_') goto yy217; - goto yy10; + if (yych <= '_') goto yy293; + goto yy86; } else { - if (yych <= 'e') goto yy78; - if (yych <= '~') goto yy10; - goto yy77; + if (yych <= 'e') goto yy154; + if (yych <= '~') goto yy86; + goto yy153; } } } -yy141: +yy217: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy12; - goto yy10; + if (yych <= ' ') goto yy88; + goto yy86; } else { - if (yych <= '"') goto yy12; - if (yych <= '\'') goto yy10; - goto yy12; + if (yych <= '"') goto yy88; + if (yych <= '\'') goto yy86; + goto yy88; } } else { if (yych <= ':') { - if (yych <= '/') goto yy10; - if (yych >= ':') goto yy10; + if (yych <= '/') goto yy86; + if (yych >= ':') goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy142: +yy218: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '/') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy77; + if (yych == '!') goto yy86; + goto yy153; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy77; - goto yy10; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy153; + goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy142; - if (yych <= ':') goto yy10; - goto yy77; + if (yych <= '9') goto yy218; + if (yych <= ':') goto yy86; + goto yy153; } else { - if (yych == '_') goto yy141; - if (yych <= '~') goto yy10; - goto yy77; + if (yych == '_') goto yy217; + if (yych <= '~') goto yy86; + goto yy153; } } -yy144: +yy220: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; if (yybm[0+yych] & 128) { - goto yy144; + goto yy220; } if (yych <= ':') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy22; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy98; + goto yy86; } else { - if (yych <= ')') goto yy22; - if (yych == '.') goto yy218; - goto yy10; + if (yych <= ')') goto yy98; + if (yych == '.') goto yy294; + goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy22; - if (yych == 'P') goto yy220; - goto yy10; + if (yych <= ';') goto yy98; + if (yych == 'P') goto yy296; + goto yy86; } else { if (yych <= 'o') { - if (yych <= '_') goto yy80; - goto yy10; + if (yych <= '_') goto yy156; + goto yy86; } else { - if (yych <= 'p') goto yy220; - if (yych <= '~') goto yy10; - goto yy22; + if (yych <= 'p') goto yy296; + if (yych <= '~') goto yy86; + goto yy98; } } } -yy146: - yych = *++cursor_; - if (yych == 'g') goto yy221; - goto yy11; -yy147: +yy222: yych = *++cursor_; - if (yych == 'f') goto yy222; - goto yy11; -yy148: + if (yych == 'g') goto yy297; + goto yy87; +yy223: yych = *++cursor_; - if (yych == 'e') goto yy223; - goto yy11; -yy149: + if (yych == 'f') goto yy298; + goto yy87; +yy224: yych = *++cursor_; - if (yych == 'm') goto yy224; - goto yy11; -yy150: + if (yych == 'e') goto yy299; + goto yy87; +yy225: yych = *++cursor_; - if (yych == 'a') goto yy225; - goto yy11; -yy151: + if (yych == 'm') goto yy300; + goto yy87; +yy226: yych = *++cursor_; - if (yych == 'c') goto yy226; - goto yy11; -yy152: + if (yych == 'a') goto yy301; + goto yy87; +yy227: yych = *++cursor_; - if (yych == 'i') goto yy227; - if (yych == 't') goto yy228; - goto yy11; -yy153: + if (yych == 'c') goto yy302; + goto yy87; +yy228: yych = *++cursor_; - if (yych == 'l') goto yy229; - goto yy11; -yy154: + if (yych == 'i') goto yy303; + if (yych == 't') goto yy304; + goto yy87; +yy229: yych = *++cursor_; - if (yych == 'c') goto yy231; - goto yy11; -yy155: + if (yych == 'l') goto yy305; + goto yy87; +yy230: yych = *++cursor_; - if (yych == 'r') goto yy232; - goto yy11; -yy156: + if (yych == 'c') goto yy307; + goto yy87; +yy231: yych = *++cursor_; - if (yych == 'a') goto yy233; - goto yy11; -yy157: + if (yych == 'r') goto yy308; + goto yy87; +yy232: yych = *++cursor_; - if (yych == 'p') goto yy235; - goto yy11; -yy158: + if (yych == 'a') goto yy309; + goto yy87; +yy233: yych = *++cursor_; - if (yych == 'm') goto yy237; - goto yy11; -yy159: + if (yych == 'p') goto yy311; + goto yy87; +yy234: yych = *++cursor_; - if (yych == 'e') goto yy239; - goto yy11; -yy160: + if (yych == 'm') goto yy313; + goto yy87; +yy235: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy315; + goto yy87; +yy236: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 274 "src/wast-lexer.cc" { RETURN_OPCODE0(End); } -#line 1437 "src/prebuilt/wast-lexer-gen.cc" -yy162: +#line 2003 "src/prebuilt/wast-lexer-gen.cc" +yy238: yych = *++cursor_; - if (yych == 'e') goto yy241; - goto yy11; -yy163: - yych = *++cursor_; - if (yych == 'o') goto yy242; - goto yy11; -yy164: + if (yych == 'e') goto yy317; + goto yy87; +yy239: yych = *++cursor_; - if (yych <= '-') { + if (yych == 'o') goto yy318; + goto yy87; +yy240: + ++cursor_; + if ((yych = *cursor_) <= '-') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= ';') { - if (yych <= '.') goto yy243; - if (yych <= ':') goto yy10; + if (yych <= '.') goto yy319; + if (yych <= ':') goto yy86; } else { - if (yych == 'x') goto yy244; - if (yych <= '~') goto yy10; + if (yych == 'x') goto yy320; + if (yych <= '~') goto yy86; } } #line 257 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, F32); } -#line 1466 "src/prebuilt/wast-lexer-gen.cc" -yy166: - yych = *++cursor_; - if (yych <= '-') { +#line 2032 "src/prebuilt/wast-lexer-gen.cc" +yy242: + ++cursor_; + if ((yych = *cursor_) <= '-') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= ';') { - if (yych <= '.') goto yy245; - if (yych <= ':') goto yy10; + if (yych <= '.') goto yy321; + if (yych <= ':') goto yy86; } else { - if (yych == 'x') goto yy246; - if (yych <= '~') goto yy10; + if (yych == 'x') goto yy322; + if (yych <= '~') goto yy86; } } #line 258 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, F64); } -#line 1487 "src/prebuilt/wast-lexer-gen.cc" -yy168: - yych = *++cursor_; - if (yych == 'c') goto yy247; - goto yy11; -yy169: +#line 2053 "src/prebuilt/wast-lexer-gen.cc" +yy244: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'c') goto yy323; + goto yy87; +yy245: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy170; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy246; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy249; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy325; + if (yych <= '~') goto yy86; } } -yy170: -#line 690 "src/wast-lexer.cc" +yy246: +#line 731 "src/wast-lexer.cc" { RETURN(Get); } -#line 1512 "src/prebuilt/wast-lexer-gen.cc" -yy171: - yych = *++cursor_; - if (yych == 'b') goto yy250; - goto yy11; -yy172: +#line 2078 "src/prebuilt/wast-lexer-gen.cc" +yy247: yych = *++cursor_; - if (yych == 'w') goto yy251; - goto yy11; -yy173: + if (yych == 'b') goto yy326; + goto yy87; +yy248: yych = *++cursor_; - if (yych == 'x') goto yy252; - goto yy11; -yy174: + if (yych == 'w') goto yy327; + goto yy87; +yy249: yych = *++cursor_; - if (yych <= '-') { + if (yych == 'x') goto yy328; + goto yy87; +yy250: + ++cursor_; + if ((yych = *cursor_) <= '-') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= ';') { - if (yych <= '.') goto yy253; - if (yych <= ':') goto yy10; + if (yych <= '.') goto yy329; + if (yych <= ':') goto yy86; } else { - if (yych == 'x') goto yy254; - if (yych <= '~') goto yy10; + if (yych == 'x') goto yy330; + if (yych <= '~') goto yy86; } } #line 255 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, I32); } -#line 1545 "src/prebuilt/wast-lexer-gen.cc" -yy176: - yych = *++cursor_; - if (yych <= '-') { +#line 2111 "src/prebuilt/wast-lexer-gen.cc" +yy252: + ++cursor_; + if ((yych = *cursor_) <= '-') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= ';') { - if (yych <= '.') goto yy255; - if (yych <= ':') goto yy10; + if (yych <= '.') goto yy331; + if (yych <= ':') goto yy86; } else { - if (yych == 'x') goto yy256; - if (yych <= '~') goto yy10; + if (yych == 'x') goto yy332; + if (yych <= '~') goto yy86; } } #line 256 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, I64); } -#line 1566 "src/prebuilt/wast-lexer-gen.cc" -yy178: - yych = *++cursor_; - if (yych == '1') goto yy257; - goto yy11; -yy179: +#line 2132 "src/prebuilt/wast-lexer-gen.cc" +yy254: yych = *++cursor_; - if (yych == 'e') goto yy258; - goto yy11; -yy180: + if (yych == '1') goto yy333; + goto yy87; +yy255: yych = *++cursor_; - if (yych == 'o') goto yy259; - goto yy11; -yy181: + if (yych == 'e') goto yy334; + goto yy87; +yy256: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy335; + goto yy87; +yy257: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 240 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Infinity); } -#line 1586 "src/prebuilt/wast-lexer-gen.cc" -yy183: - yych = *++cursor_; - if (yych == 'o') goto yy260; - goto yy11; -yy184: +#line 2152 "src/prebuilt/wast-lexer-gen.cc" +yy259: yych = *++cursor_; - if (yych == 'a') goto yy261; - goto yy11; -yy185: + if (yych == 'o') goto yy336; + goto yy87; +yy260: yych = *++cursor_; - if (yych == 'p') goto yy262; - goto yy11; -yy186: + if (yych == 'a') goto yy337; + goto yy87; +yy261: yych = *++cursor_; - if (yych == 'o') goto yy264; - goto yy11; -yy187: + if (yych == 'p') goto yy338; + goto yy87; +yy262: yych = *++cursor_; - if (yych == 'u') goto yy265; - goto yy11; -yy188: + if (yych == 'o') goto yy340; + goto yy87; +yy263: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'u') goto yy341; + goto yy87; +yy264: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 261 "src/wast-lexer.cc" { RETURN(Mut); } -#line 1614 "src/prebuilt/wast-lexer-gen.cc" -yy190: - yych = *++cursor_; - if (yych <= ')') { +#line 2180 "src/prebuilt/wast-lexer-gen.cc" +yy266: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy191; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy267; + if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych <= '9') goto yy10; - goto yy266; + if (yych <= '9') goto yy86; + goto yy342; } else { - if (yych <= ';') goto yy191; - if (yych <= '~') goto yy10; + if (yych <= ';') goto yy267; + if (yych <= '~') goto yy86; } } -yy191: +yy267: #line 241 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Nan); } -#line 1636 "src/prebuilt/wast-lexer-gen.cc" -yy192: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 2202 "src/prebuilt/wast-lexer-gen.cc" +yy268: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 262 "src/wast-lexer.cc" { RETURN_OPCODE0(Nop); } -#line 1644 "src/prebuilt/wast-lexer-gen.cc" -yy194: - yych = *++cursor_; - if (yych == 's') goto yy267; - goto yy11; -yy195: +#line 2210 "src/prebuilt/wast-lexer-gen.cc" +yy270: yych = *++cursor_; - if (yych == 'a') goto yy268; - goto yy11; -yy196: + if (yych == 's') goto yy343; + goto yy87; +yy271: yych = *++cursor_; - if (yych == 's') goto yy269; - goto yy11; -yy197: + if (yych == 'a') goto yy344; + goto yy87; +yy272: yych = *++cursor_; - if (yych == 't') goto yy270; - goto yy11; -yy198: + if (yych == 's') goto yy345; + goto yy87; +yy273: yych = *++cursor_; - if (yych == 'i') goto yy271; - goto yy11; -yy199: + if (yych == 't') goto yy346; + goto yy87; +yy274: yych = *++cursor_; - if (yych == 'u') goto yy272; - goto yy11; -yy200: + if (yych == 'i') goto yy347; + goto yy87; +yy275: yych = *++cursor_; - if (yych == 'h') goto yy273; - if (yych == 'u') goto yy274; - goto yy11; -yy201: + if (yych == 'u') goto yy348; + goto yy87; +yy276: yych = *++cursor_; - if (yych == 'e') goto yy275; - goto yy11; -yy202: + if (yych == 'h') goto yy349; + if (yych == 'u') goto yy350; + goto yy87; +yy277: yych = *++cursor_; - if (yych == '_') goto yy276; - goto yy11; -yy203: + if (yych == 'e') goto yy351; + goto yy87; +yy278: yych = *++cursor_; - if (yych == 'r') goto yy277; - goto yy11; -yy204: + if (yych == '_') goto yy352; + goto yy87; +yy279: yych = *++cursor_; - if (yych == 'r') goto yy278; - goto yy11; -yy205: + if (yych == 'r') goto yy353; + goto yy87; +yy280: yych = *++cursor_; - if (yych == 'l') goto yy279; - goto yy11; -yy206: + if (yych == 'r') goto yy354; + goto yy87; +yy281: yych = *++cursor_; - if (yych == '_') goto yy280; - goto yy11; -yy207: + if (yych == 'l') goto yy355; + goto yy87; +yy282: yych = *++cursor_; - if (yych == 'n') goto yy281; - goto yy11; -yy208: + if (yych == '_') goto yy356; + goto yy87; +yy283: yych = *++cursor_; - if (yych == 'o') goto yy283; - goto yy11; -yy209: + if (yych == 'n') goto yy357; + goto yy87; +yy284: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy359; + goto yy87; +yy285: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 699 "src/wast-lexer.cc" +#line 740 "src/wast-lexer.cc" { RETURN_OPCODE0(Try); } -#line 1713 "src/prebuilt/wast-lexer-gen.cc" -yy211: +#line 2279 "src/prebuilt/wast-lexer-gen.cc" +yy287: yych = *++cursor_; - if (yych == 'e') goto yy284; - goto yy11; -yy212: + if (yych == 'e') goto yy360; + goto yy87; +yy288: yych = *++cursor_; - if (yych == 'e') goto yy286; - goto yy11; -yy213: + if (yych == 'e') goto yy362; + goto yy87; +yy289: yych = *++cursor_; - if (yych == '8') goto yy287; - goto yy11; -yy214: + if (yych == '8') goto yy363; + goto yy87; +yy290: yych = *++cursor_; - if (yych == '1') goto yy289; - goto yy11; -yy215: + if (yych == '1') goto yy365; + goto yy87; +yy291: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; if (yych <= ';') { if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy71; - goto yy10; + if (yych <= ' ') goto yy147; + goto yy86; } else { - if (yych <= '"') goto yy71; - if (yych <= '\'') goto yy10; - goto yy71; + if (yych <= '"') goto yy147; + if (yych <= '\'') goto yy86; + goto yy147; } } else { if (yych <= '/') { - if (yych == '.') goto yy218; - goto yy10; + if (yych == '.') goto yy294; + goto yy86; } else { - if (yych <= '9') goto yy215; - if (yych <= ':') goto yy10; - goto yy71; + if (yych <= '9') goto yy291; + if (yych <= ':') goto yy86; + goto yy147; } } } else { if (yych <= '_') { if (yych <= 'O') { - if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy215; - goto yy10; + if (yych <= '@') goto yy86; + if (yych <= 'F') goto yy291; + goto yy86; } else { - if (yych <= 'P') goto yy220; - if (yych <= '^') goto yy10; - goto yy137; + if (yych <= 'P') goto yy296; + if (yych <= '^') goto yy86; + goto yy213; } } else { if (yych <= 'o') { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy215; - goto yy10; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy291; + goto yy86; } else { - if (yych <= 'p') goto yy220; - if (yych <= '~') goto yy10; - goto yy71; + if (yych <= 'p') goto yy296; + if (yych <= '~') goto yy86; + goto yy147; } } } -yy217: +yy293: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy12; - goto yy10; + if (yych <= ' ') goto yy88; + goto yy86; } else { - if (yych <= '"') goto yy12; - if (yych <= '\'') goto yy10; - goto yy12; + if (yych <= '"') goto yy88; + if (yych <= '\'') goto yy86; + goto yy88; } } else { if (yych <= ':') { - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy139; - goto yy10; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy215; + goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy218: - yych = *++cursor_; - if (yych == '_') goto yy10; - goto yy291; -yy219: +yy294: + ++cursor_; + if ((yych = *cursor_) <= ';') { + if (yych <= '\'') { + if (yych == '!') goto yy86; + if (yych >= '#') goto yy86; + } else { + if (yych <= '/') { + if (yych >= '*') goto yy86; + } else { + if (yych <= '9') goto yy366; + if (yych <= ':') goto yy86; + } + } + } else { + if (yych <= '`') { + if (yych <= 'F') { + if (yych <= '@') goto yy86; + goto yy366; + } else { + if (yych == 'P') goto yy296; + goto yy86; + } + } else { + if (yych <= 'o') { + if (yych <= 'f') goto yy366; + goto yy86; + } else { + if (yych <= 'p') goto yy296; + if (yych <= '~') goto yy86; + } + } + } +yy295: #line 239 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Hexfloat); } -#line 1808 "src/prebuilt/wast-lexer-gen.cc" -yy220: +#line 2403 "src/prebuilt/wast-lexer-gen.cc" +yy296: yych = *++cursor_; if (yych <= ',') { - if (yych == '+') goto yy292; - goto yy11; + if (yych == '+') goto yy368; + goto yy87; } else { - if (yych <= '-') goto yy292; - if (yych <= '/') goto yy11; - if (yych <= '9') goto yy293; - goto yy11; + if (yych <= '-') goto yy368; + if (yych <= '/') goto yy87; + if (yych <= '9') goto yy369; + goto yy87; } -yy221: - yych = *++cursor_; - if (yych == 'n') goto yy295; - goto yy11; -yy222: +yy297: yych = *++cursor_; - if (yych == 'u') goto yy296; - goto yy11; -yy223: + if (yych == 'n') goto yy371; + goto yy87; +yy298: yych = *++cursor_; - if (yych == 'r') goto yy297; - goto yy11; -yy224: + if (yych == 'u') goto yy372; + goto yy87; +yy299: yych = *++cursor_; - if (yych == 'i') goto yy298; - goto yy11; -yy225: + if (yych == 'r') goto yy373; + goto yy87; +yy300: yych = *++cursor_; - if (yych == 'r') goto yy299; - goto yy11; -yy226: + if (yych == 'i') goto yy374; + goto yy87; +yy301: yych = *++cursor_; - if (yych == 'k') goto yy300; - goto yy11; -yy227: + if (yych == 'r') goto yy375; + goto yy87; +yy302: yych = *++cursor_; - if (yych == 'f') goto yy302; - goto yy11; -yy228: + if (yych == 'k') goto yy376; + goto yy87; +yy303: yych = *++cursor_; - if (yych == 'a') goto yy304; - goto yy11; -yy229: + if (yych == 'f') goto yy378; + goto yy87; +yy304: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'a') goto yy380; + goto yy87; +yy305: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy230; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy306; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy305; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy381; + if (yych <= '~') goto yy86; } } -yy230: +yy306: #line 271 "src/wast-lexer.cc" { RETURN_OPCODE0(Call); } -#line 1872 "src/prebuilt/wast-lexer-gen.cc" -yy231: +#line 2467 "src/prebuilt/wast-lexer-gen.cc" +yy307: yych = *++cursor_; - if (yych == 'h') goto yy306; - goto yy11; -yy232: - yych = *++cursor_; - if (yych == 'e') goto yy308; - goto yy11; -yy233: + if (yych == 'h') goto yy382; + goto yy87; +yy308: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy384; + goto yy87; +yy309: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 682 "src/wast-lexer.cc" +#line 723 "src/wast-lexer.cc" { RETURN(Data); } -#line 1888 "src/prebuilt/wast-lexer-gen.cc" -yy235: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 2483 "src/prebuilt/wast-lexer-gen.cc" +yy311: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 273 "src/wast-lexer.cc" { RETURN_OPCODE0(Drop); } -#line 1896 "src/prebuilt/wast-lexer-gen.cc" -yy237: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 2491 "src/prebuilt/wast-lexer-gen.cc" +yy313: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 681 "src/wast-lexer.cc" +#line 722 "src/wast-lexer.cc" { RETURN(Elem); } -#line 1904 "src/prebuilt/wast-lexer-gen.cc" -yy239: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 2499 "src/prebuilt/wast-lexer-gen.cc" +yy315: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 266 "src/wast-lexer.cc" { RETURN_OPCODE0(Else); } -#line 1912 "src/prebuilt/wast-lexer-gen.cc" -yy241: +#line 2507 "src/prebuilt/wast-lexer-gen.cc" +yy317: yych = *++cursor_; - if (yych == 'p') goto yy309; - goto yy11; -yy242: + if (yych == 'p') goto yy385; + goto yy87; +yy318: yych = *++cursor_; - if (yych == 'r') goto yy310; - goto yy11; -yy243: + if (yych == 'r') goto yy386; + goto yy87; +yy319: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy387; + case 'c': goto yy388; + case 'd': goto yy389; + case 'e': goto yy390; + case 'f': goto yy391; + case 'g': goto yy392; + case 'l': goto yy393; + case 'm': goto yy394; + case 'n': goto yy395; + case 'r': goto yy396; + case 's': goto yy397; + case 't': goto yy398; + default: goto yy87; } -yy244: +yy320: yych = *++cursor_; - if (yych == '4') goto yy323; - goto yy11; -yy245: + if (yych == '4') goto yy399; + goto yy87; +yy321: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy400; + case 'c': goto yy401; + case 'd': goto yy402; + case 'e': goto yy403; + case 'f': goto yy404; + case 'g': goto yy405; + case 'l': goto yy406; + case 'm': goto yy407; + case 'n': goto yy408; + case 'p': goto yy409; + case 'r': goto yy410; + case 's': goto yy411; + case 't': goto yy412; + default: goto yy87; } -yy246: - yych = *++cursor_; - if (yych == '2') goto yy337; - goto yy11; -yy247: +yy322: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '2') goto yy413; + goto yy87; +yy323: + ++cursor_; + if ((yych = *cursor_) <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy86; + } else { + if (yych <= '"') goto yy324; + if (yych <= '\'') goto yy86; + } + } else { + if (yych <= 'q') { + if (yych != ';') goto yy86; + } else { + if (yych <= 'r') goto yy414; + if (yych <= '~') goto yy86; + } } -#line 670 "src/wast-lexer.cc" +yy324: +#line 711 "src/wast-lexer.cc" { RETURN(Func); } -#line 1971 "src/prebuilt/wast-lexer-gen.cc" -yy249: +#line 2579 "src/prebuilt/wast-lexer-gen.cc" +yy325: yych = *++cursor_; - if (yych == 'g') goto yy338; - if (yych == 'l') goto yy339; - goto yy11; -yy250: + if (yych == 'g') goto yy415; + if (yych == 'l') goto yy416; + goto yy87; +yy326: yych = *++cursor_; - if (yych == 'a') goto yy340; - goto yy11; -yy251: + if (yych == 'a') goto yy417; + goto yy87; +yy327: yych = *++cursor_; - if (yych == '_') goto yy341; - goto yy11; -yy252: + if (yych == '_') goto yy418; + goto yy87; +yy328: yych = *++cursor_; - if (yych == '8') goto yy342; - goto yy11; -yy253: + if (yych == '8') goto yy419; + goto yy87; +yy329: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy420; + case 'c': goto yy421; + case 'd': goto yy422; + case 'e': goto yy423; + case 'g': goto yy424; + case 'l': goto yy425; + case 'm': goto yy426; + case 'n': goto yy427; + case 'o': goto yy428; + case 'p': goto yy429; + case 'r': goto yy430; + case 's': goto yy431; + case 't': goto yy432; + case 'w': goto yy433; + case 'x': goto yy434; + default: goto yy87; } -yy254: +yy330: yych = *++cursor_; - if (yych == '4') goto yy358; - goto yy11; -yy255: + if (yych == '4') goto yy435; + goto yy87; +yy331: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy436; + case 'c': goto yy437; + case 'd': goto yy438; + case 'e': goto yy439; + case 'g': goto yy440; + case 'l': goto yy441; + case 'm': goto yy442; + case 'n': goto yy443; + case 'o': goto yy444; + case 'p': goto yy445; + case 'r': goto yy446; + case 's': goto yy447; + case 't': goto yy448; + case 'x': goto yy449; + default: goto yy87; } -yy256: - yych = *++cursor_; - if (yych == '2') goto yy373; - goto yy11; -yy257: +yy332: yych = *++cursor_; - if (yych == '6') goto yy374; - goto yy11; -yy258: + if (yych == '2') goto yy450; + goto yy87; +yy333: yych = *++cursor_; - if (yych == 'x') goto yy375; - goto yy11; -yy259: + if (yych == '6') goto yy451; + goto yy87; +yy334: yych = *++cursor_; - if (yych == 'r') goto yy376; - goto yy11; -yy260: + if (yych == 'x') goto yy452; + goto yy87; +yy335: yych = *++cursor_; - if (yych == 'k') goto yy377; - goto yy11; -yy261: + if (yych == 'r') goto yy453; + goto yy87; +yy336: yych = *++cursor_; - if (yych == 'l') goto yy378; - goto yy11; -yy262: + if (yych == 'k') goto yy454; + goto yy87; +yy337: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy455; + goto yy87; +yy338: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 267 "src/wast-lexer.cc" { RETURN_OPCODE0(Loop); } -#line 2063 "src/prebuilt/wast-lexer-gen.cc" -yy264: - yych = *++cursor_; - if (yych == 'r') goto yy380; - goto yy11; -yy265: +#line 2671 "src/prebuilt/wast-lexer-gen.cc" +yy340: yych = *++cursor_; - if (yych == 'l') goto yy381; - goto yy11; -yy266: + if (yych == 'r') goto yy457; + goto yy87; +yy341: yych = *++cursor_; - if (yych == '0') goto yy382; - goto yy11; -yy267: + if (yych == 'l') goto yy458; + goto yy87; +yy342: yych = *++cursor_; - if (yych == 'e') goto yy383; - goto yy11; -yy268: + if (yych == '0') goto yy459; + goto yy87; +yy343: yych = *++cursor_; - if (yych == 'm') goto yy384; - goto yy11; -yy269: + if (yych == 'e') goto yy460; + goto yy87; +yy344: yych = *++cursor_; - if (yych == 'i') goto yy386; - goto yy11; -yy270: + if (yych == 'm') goto yy461; + goto yy87; +yy345: yych = *++cursor_; - if (yych == 'e') goto yy387; - goto yy11; -yy271: + if (yych == 'i') goto yy463; + goto yy87; +yy346: yych = *++cursor_; - if (yych == 's') goto yy389; - goto yy11; -yy272: + if (yych == 'e') goto yy464; + goto yy87; +yy347: yych = *++cursor_; - if (yych == 'l') goto yy390; - goto yy11; -yy273: + if (yych == 's') goto yy466; + goto yy87; +yy348: yych = *++cursor_; - if (yych == 'r') goto yy391; - goto yy11; -yy274: + if (yych == 'l') goto yy467; + goto yy87; +yy349: yych = *++cursor_; - if (yych == 'r') goto yy392; - goto yy11; -yy275: + if (yych == 'r') goto yy468; + goto yy87; +yy350: yych = *++cursor_; - if (yych == 'c') goto yy393; - goto yy11; -yy276: + if (yych == 'r') goto yy469; + goto yy87; +yy351: yych = *++cursor_; - if (yych == 'g') goto yy394; - if (yych == 'l') goto yy395; - goto yy11; -yy277: + if (yych == 'c') goto yy470; + goto yy87; +yy352: yych = *++cursor_; - if (yych == 'e') goto yy396; - goto yy11; -yy278: + if (yych == 'g') goto yy471; + if (yych == 'l') goto yy472; + goto yy87; +yy353: yych = *++cursor_; - if (yych == 't') goto yy397; - goto yy11; -yy279: + if (yych == 'e') goto yy473; + goto yy87; +yy354: yych = *++cursor_; - if (yych == 'e') goto yy399; - goto yy11; -yy280: + if (yych == 't') goto yy474; + goto yy87; +yy355: yych = *++cursor_; - if (yych == 'l') goto yy401; - goto yy11; -yy281: + if (yych == 'e') goto yy476; + goto yy87; +yy356: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy478; + goto yy87; +yy357: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 265 "src/wast-lexer.cc" { RETURN(Then); } -#line 2140 "src/prebuilt/wast-lexer-gen.cc" -yy283: - yych = *++cursor_; - if (yych == 'w') goto yy402; - goto yy11; -yy284: +#line 2748 "src/prebuilt/wast-lexer-gen.cc" +yy359: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'w') goto yy479; + goto yy87; +yy360: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 669 "src/wast-lexer.cc" +#line 710 "src/wast-lexer.cc" { RETURN(Type); } -#line 2152 "src/prebuilt/wast-lexer-gen.cc" -yy286: - yych = *++cursor_; - if (yych == 'a') goto yy404; - goto yy11; -yy287: +#line 2760 "src/prebuilt/wast-lexer-gen.cc" +yy362: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'a') goto yy481; + goto yy87; +yy363: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy288; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy364; + if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy405; - goto yy10; + if (yych == '.') goto yy482; + goto yy86; } else { - if (yych <= ';') goto yy288; - if (yych <= '~') goto yy10; + if (yych <= ';') goto yy364; + if (yych <= '~') goto yy86; } } -yy288: +yy364: #line 259 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, V128); } -#line 2178 "src/prebuilt/wast-lexer-gen.cc" -yy289: +#line 2786 "src/prebuilt/wast-lexer-gen.cc" +yy365: yych = *++cursor_; - if (yych == '6') goto yy406; - goto yy11; -yy290: + if (yych == '6') goto yy483; + goto yy87; +yy366: ++cursor_; if ((limit_ - cursor_) < 2) FILL(2); yych = *cursor_; -yy291: if (yych <= '@') { if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy219; - goto yy10; + if (yych <= ' ') goto yy295; + goto yy86; } else { - if (yych <= '"') goto yy219; - if (yych <= '\'') goto yy10; - goto yy219; + if (yych <= '"') goto yy295; + if (yych <= '\'') goto yy86; + goto yy295; } } else { if (yych <= '9') { - if (yych <= '/') goto yy10; - goto yy290; + if (yych <= '/') goto yy86; + goto yy366; } else { - if (yych == ';') goto yy219; - goto yy10; + if (yych == ';') goto yy295; + goto yy86; } } } else { if (yych <= '_') { if (yych <= 'O') { - if (yych <= 'F') goto yy290; - goto yy10; + if (yych <= 'F') goto yy366; + goto yy86; } else { - if (yych <= 'P') goto yy220; - if (yych <= '^') goto yy10; - goto yy407; + if (yych <= 'P') goto yy296; + if (yych <= '^') goto yy86; + goto yy484; } } else { if (yych <= 'o') { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy290; - goto yy10; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy366; + goto yy86; } else { - if (yych <= 'p') goto yy220; - if (yych <= '~') goto yy10; - goto yy219; + if (yych <= 'p') goto yy296; + if (yych <= '~') goto yy86; + goto yy295; } } } -yy292: +yy368: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy12; - goto yy10; + if (yych <= ' ') goto yy88; + goto yy86; } else { - if (yych <= '"') goto yy12; - if (yych <= '\'') goto yy10; - goto yy12; + if (yych <= '"') goto yy88; + if (yych <= '\'') goto yy86; + goto yy88; } } else { if (yych <= ':') { - if (yych <= '/') goto yy10; - if (yych >= ':') goto yy10; + if (yych <= '/') goto yy86; + if (yych >= ':') goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy293: +yy369: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '/') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy219; + if (yych == '!') goto yy86; + goto yy295; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy219; - goto yy10; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy295; + goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy293; - if (yych <= ':') goto yy10; - goto yy219; + if (yych <= '9') goto yy369; + if (yych <= ':') goto yy86; + goto yy295; } else { - if (yych == '_') goto yy292; - if (yych <= '~') goto yy10; - goto yy219; + if (yych == '_') goto yy368; + if (yych <= '~') goto yy86; + goto yy295; } } -yy295: - yych = *++cursor_; - if (yych == '=') goto yy408; - goto yy11; -yy296: +yy371: yych = *++cursor_; - if (yych == 'n') goto yy409; - goto yy11; -yy297: + if (yych == '=') goto yy485; + goto yy87; +yy372: yych = *++cursor_; - if (yych == 't') goto yy410; - goto yy11; -yy298: + if (yych == 'n') goto yy486; + goto yy87; +yy373: yych = *++cursor_; - if (yych == 'c') goto yy411; - goto yy11; -yy299: + if (yych == 't') goto yy487; + goto yy87; +yy374: yych = *++cursor_; - if (yych == 'y') goto yy412; - goto yy11; -yy300: + if (yych == 'c') goto yy488; + goto yy87; +yy375: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'y') goto yy489; + goto yy87; +yy376: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 263 "src/wast-lexer.cc" { RETURN_OPCODE0(Block); } -#line 2303 "src/prebuilt/wast-lexer-gen.cc" -yy302: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 2910 "src/prebuilt/wast-lexer-gen.cc" +yy378: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 269 "src/wast-lexer.cc" { RETURN_OPCODE0(BrIf); } -#line 2311 "src/prebuilt/wast-lexer-gen.cc" -yy304: - yych = *++cursor_; - if (yych == 'b') goto yy414; - goto yy11; -yy305: +#line 2918 "src/prebuilt/wast-lexer-gen.cc" +yy380: yych = *++cursor_; - if (yych == 'i') goto yy415; - goto yy11; -yy306: + if (yych == 'b') goto yy491; + goto yy87; +yy381: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'i') goto yy492; + goto yy87; +yy382: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 700 "src/wast-lexer.cc" +#line 741 "src/wast-lexer.cc" { RETURN_OPCODE0(Catch); } -#line 2327 "src/prebuilt/wast-lexer-gen.cc" -yy308: +#line 2934 "src/prebuilt/wast-lexer-gen.cc" +yy384: yych = *++cursor_; - if (yych == 'n') goto yy416; - goto yy11; -yy309: + if (yych == 'n') goto yy493; + goto yy87; +yy385: yych = *++cursor_; - if (yych == 't') goto yy417; - goto yy11; -yy310: + if (yych == 't') goto yy494; + goto yy87; +yy386: yych = *++cursor_; - if (yych == 't') goto yy419; - goto yy11; -yy311: + if (yych == 't') goto yy496; + goto yy87; +yy387: yych = *++cursor_; - if (yych == 'b') goto yy421; - if (yych == 'd') goto yy422; - goto yy11; -yy312: + if (yych == 'b') goto yy498; + if (yych == 'd') goto yy499; + goto yy87; +yy388: yych = *++cursor_; - if (yych == 'e') goto yy423; - if (yych == 'o') goto yy424; - goto yy11; -yy313: + if (yych == 'e') goto yy500; + if (yych == 'o') goto yy501; + goto yy87; +yy389: yych = *++cursor_; - if (yych == 'e') goto yy425; - if (yych == 'i') goto yy426; - goto yy11; -yy314: + if (yych == 'e') goto yy502; + if (yych == 'i') goto yy503; + goto yy87; +yy390: yych = *++cursor_; - if (yych == 'q') goto yy427; - goto yy11; -yy315: + if (yych == 'q') goto yy504; + goto yy87; +yy391: yych = *++cursor_; - if (yych == 'l') goto yy429; - goto yy11; -yy316: + if (yych == 'l') goto yy506; + goto yy87; +yy392: yych = *++cursor_; - if (yych == 'e') goto yy430; - if (yych == 't') goto yy432; - goto yy11; -yy317: + if (yych == 'e') goto yy507; + if (yych == 't') goto yy509; + goto yy87; +yy393: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy434; - goto yy11; + if (yych == 'e') goto yy511; + goto yy87; } else { - if (yych <= 'o') goto yy436; - if (yych == 't') goto yy437; - goto yy11; + if (yych <= 'o') goto yy513; + if (yych == 't') goto yy514; + goto yy87; } -yy318: +yy394: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy439; - goto yy11; + if (yych == 'a') goto yy516; + goto yy87; } else { - if (yych <= 'i') goto yy440; - if (yych == 'u') goto yy441; - goto yy11; + if (yych <= 'i') goto yy517; + if (yych == 'u') goto yy518; + goto yy87; } -yy319: +yy395: yych = *++cursor_; - if (yych == 'e') goto yy442; - goto yy11; -yy320: + if (yych == 'e') goto yy519; + goto yy87; +yy396: yych = *++cursor_; - if (yych == 'e') goto yy444; - goto yy11; -yy321: + if (yych == 'e') goto yy521; + goto yy87; +yy397: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy445; - goto yy11; + if (yych == 'q') goto yy522; + goto yy87; } else { - if (yych <= 't') goto yy446; - if (yych <= 'u') goto yy447; - goto yy11; + if (yych <= 't') goto yy523; + if (yych <= 'u') goto yy524; + goto yy87; } -yy322: +yy398: yych = *++cursor_; - if (yych == 'r') goto yy448; - goto yy11; -yy323: + if (yych == 'r') goto yy525; + goto yy87; +yy399: yych = *++cursor_; - if (yych == '.') goto yy449; - goto yy11; -yy324: + if (yych == '.') goto yy526; + goto yy87; +yy400: yych = *++cursor_; - if (yych == 'b') goto yy450; - if (yych == 'd') goto yy451; - goto yy11; -yy325: + if (yych == 'b') goto yy527; + if (yych == 'd') goto yy528; + goto yy87; +yy401: yych = *++cursor_; - if (yych == 'e') goto yy452; - if (yych == 'o') goto yy453; - goto yy11; -yy326: + if (yych == 'e') goto yy529; + if (yych == 'o') goto yy530; + goto yy87; +yy402: yych = *++cursor_; - if (yych == 'i') goto yy454; - goto yy11; -yy327: + if (yych == 'i') goto yy531; + goto yy87; +yy403: yych = *++cursor_; - if (yych == 'q') goto yy455; - goto yy11; -yy328: + if (yych == 'q') goto yy532; + goto yy87; +yy404: yych = *++cursor_; - if (yych == 'l') goto yy457; - goto yy11; -yy329: + if (yych == 'l') goto yy534; + goto yy87; +yy405: yych = *++cursor_; - if (yych == 'e') goto yy458; - if (yych == 't') goto yy460; - goto yy11; -yy330: + if (yych == 'e') goto yy535; + if (yych == 't') goto yy537; + goto yy87; +yy406: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy462; - goto yy11; + if (yych == 'e') goto yy539; + goto yy87; } else { - if (yych <= 'o') goto yy464; - if (yych == 't') goto yy465; - goto yy11; + if (yych <= 'o') goto yy541; + if (yych == 't') goto yy542; + goto yy87; } -yy331: +yy407: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy467; - goto yy11; + if (yych == 'a') goto yy544; + goto yy87; } else { - if (yych <= 'i') goto yy468; - if (yych == 'u') goto yy469; - goto yy11; + if (yych <= 'i') goto yy545; + if (yych == 'u') goto yy546; + goto yy87; } -yy332: +yy408: yych = *++cursor_; - if (yych == 'e') goto yy470; - goto yy11; -yy333: + if (yych == 'e') goto yy547; + goto yy87; +yy409: yych = *++cursor_; - if (yych == 'r') goto yy472; - goto yy11; -yy334: + if (yych == 'r') goto yy549; + goto yy87; +yy410: yych = *++cursor_; - if (yych == 'e') goto yy473; - goto yy11; -yy335: + if (yych == 'e') goto yy550; + goto yy87; +yy411: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy474; - goto yy11; + if (yych == 'q') goto yy551; + goto yy87; } else { - if (yych <= 't') goto yy475; - if (yych <= 'u') goto yy476; - goto yy11; + if (yych <= 't') goto yy552; + if (yych <= 'u') goto yy553; + goto yy87; } -yy336: +yy412: yych = *++cursor_; - if (yych == 'r') goto yy477; - goto yy11; -yy337: + if (yych == 'r') goto yy554; + goto yy87; +yy413: yych = *++cursor_; - if (yych == '.') goto yy478; - goto yy11; -yy338: + if (yych == '.') goto yy555; + goto yy87; +yy414: yych = *++cursor_; - if (yych == 'l') goto yy479; - goto yy11; -yy339: + if (yych == 'e') goto yy556; + goto yy87; +yy415: yych = *++cursor_; - if (yych == 'o') goto yy480; - goto yy11; -yy340: + if (yych == 'l') goto yy557; + goto yy87; +yy416: yych = *++cursor_; - if (yych == 'l') goto yy481; - goto yy11; -yy341: + if (yych == 'o') goto yy558; + goto yy87; +yy417: yych = *++cursor_; - if (yych == 'm') goto yy483; - goto yy11; -yy342: + if (yych == 'l') goto yy559; + goto yy87; +yy418: yych = *++cursor_; - if (yych == '.') goto yy484; - goto yy11; -yy343: + if (yych == 'm') goto yy561; + goto yy87; +yy419: + yych = *++cursor_; + if (yych == '.') goto yy562; + goto yy87; +yy420: yych = *++cursor_; if (yych <= 'm') { - if (yych == 'd') goto yy485; - goto yy11; + if (yych == 'd') goto yy563; + goto yy87; } else { - if (yych <= 'n') goto yy486; - if (yych == 't') goto yy487; - goto yy11; + if (yych <= 'n') goto yy564; + if (yych == 't') goto yy565; + goto yy87; } -yy344: +yy421: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy488; - goto yy11; + if (yych == 'l') goto yy566; + goto yy87; } else { - if (yych <= 'o') goto yy489; - if (yych == 't') goto yy490; - goto yy11; + if (yych <= 'o') goto yy567; + if (yych == 't') goto yy568; + goto yy87; } -yy345: +yy422: yych = *++cursor_; - if (yych == 'i') goto yy491; - goto yy11; -yy346: + if (yych == 'i') goto yy569; + goto yy87; +yy423: yych = *++cursor_; - if (yych == 'q') goto yy492; - if (yych == 'x') goto yy494; - goto yy11; -yy347: + if (yych == 'q') goto yy570; + if (yych == 'x') goto yy572; + goto yy87; +yy424: yych = *++cursor_; - if (yych == 'e') goto yy495; - if (yych == 't') goto yy496; - goto yy11; -yy348: + if (yych == 'e') goto yy573; + if (yych == 't') goto yy574; + goto yy87; +yy425: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy497; - goto yy11; + if (yych == 'e') goto yy575; + goto yy87; } else { - if (yych <= 'o') goto yy498; - if (yych == 't') goto yy499; - goto yy11; + if (yych <= 'o') goto yy576; + if (yych == 't') goto yy577; + goto yy87; } -yy349: +yy426: yych = *++cursor_; - if (yych == 'u') goto yy500; - goto yy11; -yy350: + if (yych == 'u') goto yy578; + goto yy87; +yy427: yych = *++cursor_; - if (yych == 'e') goto yy501; - goto yy11; -yy351: + if (yych == 'e') goto yy579; + goto yy87; +yy428: yych = *++cursor_; - if (yych == 'r') goto yy503; - goto yy11; -yy352: + if (yych == 'r') goto yy581; + goto yy87; +yy429: yych = *++cursor_; - if (yych == 'o') goto yy505; - goto yy11; -yy353: + if (yych == 'o') goto yy583; + goto yy87; +yy430: yych = *++cursor_; - if (yych == 'e') goto yy506; - if (yych == 'o') goto yy507; - goto yy11; -yy354: + if (yych == 'e') goto yy584; + if (yych == 'o') goto yy585; + goto yy87; +yy431: yych = *++cursor_; if (yych <= 's') { - if (yych == 'h') goto yy508; - goto yy11; + if (yych == 'h') goto yy586; + goto yy87; } else { - if (yych <= 't') goto yy509; - if (yych <= 'u') goto yy510; - goto yy11; + if (yych <= 't') goto yy587; + if (yych <= 'u') goto yy588; + goto yy87; } -yy355: +yy432: yych = *++cursor_; - if (yych == 'r') goto yy511; - goto yy11; -yy356: + if (yych == 'r') goto yy589; + goto yy87; +yy433: yych = *++cursor_; - if (yych == 'r') goto yy512; - goto yy11; -yy357: + if (yych == 'r') goto yy590; + goto yy87; +yy434: yych = *++cursor_; - if (yych == 'o') goto yy513; - goto yy11; -yy358: + if (yych == 'o') goto yy591; + goto yy87; +yy435: yych = *++cursor_; - if (yych == '.') goto yy514; - goto yy11; -yy359: + if (yych == '.') goto yy592; + goto yy87; +yy436: yych = *++cursor_; if (yych <= 'm') { - if (yych == 'd') goto yy515; - goto yy11; + if (yych == 'd') goto yy593; + goto yy87; } else { - if (yych <= 'n') goto yy516; - if (yych == 't') goto yy517; - goto yy11; + if (yych <= 'n') goto yy594; + if (yych == 't') goto yy595; + goto yy87; } -yy360: +yy437: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy518; - goto yy11; + if (yych == 'l') goto yy596; + goto yy87; } else { - if (yych <= 'o') goto yy519; - if (yych == 't') goto yy520; - goto yy11; + if (yych <= 'o') goto yy597; + if (yych == 't') goto yy598; + goto yy87; } -yy361: +yy438: yych = *++cursor_; - if (yych == 'i') goto yy521; - goto yy11; -yy362: + if (yych == 'i') goto yy599; + goto yy87; +yy439: yych = *++cursor_; - if (yych == 'q') goto yy522; - if (yych == 'x') goto yy524; - goto yy11; -yy363: + if (yych == 'q') goto yy600; + if (yych == 'x') goto yy602; + goto yy87; +yy440: yych = *++cursor_; - if (yych == 'e') goto yy525; - if (yych == 't') goto yy526; - goto yy11; -yy364: + if (yych == 'e') goto yy603; + if (yych == 't') goto yy604; + goto yy87; +yy441: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy527; - goto yy11; + if (yych == 'e') goto yy605; + goto yy87; } else { - if (yych <= 'o') goto yy528; - if (yych == 't') goto yy529; - goto yy11; + if (yych <= 'o') goto yy606; + if (yych == 't') goto yy607; + goto yy87; } -yy365: +yy442: yych = *++cursor_; - if (yych == 'u') goto yy530; - goto yy11; -yy366: + if (yych == 'u') goto yy608; + goto yy87; +yy443: yych = *++cursor_; - if (yych == 'e') goto yy531; - goto yy11; -yy367: + if (yych == 'e') goto yy609; + goto yy87; +yy444: yych = *++cursor_; - if (yych == 'r') goto yy533; - goto yy11; -yy368: + if (yych == 'r') goto yy611; + goto yy87; +yy445: yych = *++cursor_; - if (yych == 'o') goto yy535; - goto yy11; -yy369: + if (yych == 'o') goto yy613; + goto yy87; +yy446: yych = *++cursor_; - if (yych == 'e') goto yy536; - if (yych == 'o') goto yy537; - goto yy11; -yy370: + if (yych == 'e') goto yy614; + if (yych == 'o') goto yy615; + goto yy87; +yy447: yych = *++cursor_; if (yych <= 's') { - if (yych == 'h') goto yy538; - goto yy11; + if (yych == 'h') goto yy616; + goto yy87; } else { - if (yych <= 't') goto yy539; - if (yych <= 'u') goto yy540; - goto yy11; + if (yych <= 't') goto yy617; + if (yych <= 'u') goto yy618; + goto yy87; } -yy371: - yych = *++cursor_; - if (yych == 'r') goto yy541; - goto yy11; -yy372: +yy448: yych = *++cursor_; - if (yych == 'o') goto yy542; - goto yy11; -yy373: + if (yych == 'r') goto yy619; + goto yy87; +yy449: yych = *++cursor_; - if (yych == '.') goto yy543; - goto yy11; -yy374: + if (yych == 'o') goto yy620; + goto yy87; +yy450: yych = *++cursor_; - if (yych == '.') goto yy544; - goto yy11; -yy375: + if (yych == '.') goto yy621; + goto yy87; +yy451: yych = *++cursor_; - if (yych == 'c') goto yy545; - goto yy11; -yy376: + if (yych == '.') goto yy622; + goto yy87; +yy452: yych = *++cursor_; - if (yych == 't') goto yy546; - goto yy11; -yy377: + if (yych == 'c') goto yy623; + goto yy87; +yy453: yych = *++cursor_; - if (yych == 'e') goto yy548; - goto yy11; -yy378: + if (yych == 't') goto yy624; + goto yy87; +yy454: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy626; + goto yy87; +yy455: + ++cursor_; + if ((yych = *cursor_) <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy86; + } else { + if (yych <= '"') goto yy456; + if (yych <= '\'') goto yy86; + } + } else { + if (yych <= ':') { + if (yych == '.') goto yy628; + goto yy86; + } else { + if (yych <= ';') goto yy456; + if (yych <= '~') goto yy86; + } } -#line 673 "src/wast-lexer.cc" +yy456: +#line 714 "src/wast-lexer.cc" { RETURN(Local); } -#line 2712 "src/prebuilt/wast-lexer-gen.cc" -yy380: - yych = *++cursor_; - if (yych == 'y') goto yy550; - goto yy11; -yy381: +#line 3337 "src/prebuilt/wast-lexer-gen.cc" +yy457: yych = *++cursor_; - if (yych == 'e') goto yy552; - goto yy11; -yy382: + if (yych == 'y') goto yy629; + goto yy87; +yy458: yych = *++cursor_; - if (yych == 'x') goto yy554; - goto yy11; -yy383: + if (yych == 'e') goto yy631; + goto yy87; +yy459: yych = *++cursor_; - if (yych == 't') goto yy555; - goto yy11; -yy384: + if (yych == 'x') goto yy633; + goto yy87; +yy460: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy634; + goto yy87; +yy461: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 671 "src/wast-lexer.cc" +#line 712 "src/wast-lexer.cc" { RETURN(Param); } -#line 2736 "src/prebuilt/wast-lexer-gen.cc" -yy386: +#line 3361 "src/prebuilt/wast-lexer-gen.cc" +yy463: yych = *++cursor_; - if (yych == 'v') goto yy557; - goto yy11; -yy387: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy636; + goto yy87; +yy464: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 677 "src/wast-lexer.cc" +#line 718 "src/wast-lexer.cc" { RETURN(Quote); } -#line 2748 "src/prebuilt/wast-lexer-gen.cc" -yy389: - yych = *++cursor_; - if (yych == 't') goto yy558; - goto yy11; -yy390: +#line 3373 "src/prebuilt/wast-lexer-gen.cc" +yy466: yych = *++cursor_; - if (yych == 't') goto yy559; - goto yy11; -yy391: + if (yych == 't') goto yy637; + goto yy87; +yy467: yych = *++cursor_; - if (yych == 'o') goto yy561; - goto yy11; -yy392: + if (yych == 't') goto yy638; + goto yy87; +yy468: yych = *++cursor_; - if (yych == 'n') goto yy562; - goto yy11; -yy393: + if (yych == 'o') goto yy640; + goto yy87; +yy469: yych = *++cursor_; - if (yych == 't') goto yy564; - goto yy11; -yy394: + if (yych == 'n') goto yy641; + goto yy87; +yy470: yych = *++cursor_; - if (yych == 'l') goto yy566; - goto yy11; -yy395: + if (yych == 't') goto yy643; + goto yy87; +yy471: yych = *++cursor_; - if (yych == 'o') goto yy567; - goto yy11; -yy396: + if (yych == 'l') goto yy645; + goto yy87; +yy472: yych = *++cursor_; - if (yych == 'd') goto yy568; - goto yy11; -yy397: + if (yych == 'o') goto yy646; + goto yy87; +yy473: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'd') goto yy647; + goto yy87; +yy474: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 680 "src/wast-lexer.cc" +#line 721 "src/wast-lexer.cc" { RETURN(Start); } -#line 2788 "src/prebuilt/wast-lexer-gen.cc" -yy399: - yych = *++cursor_; - if (yych <= ')') { +#line 3413 "src/prebuilt/wast-lexer-gen.cc" +yy476: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy400; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy477; + if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy570; - goto yy10; + if (yych == '.') goto yy649; + goto yy86; } else { - if (yych <= ';') goto yy400; - if (yych <= '~') goto yy10; + if (yych <= ';') goto yy477; + if (yych <= '~') goto yy86; } } -yy400: -#line 678 "src/wast-lexer.cc" +yy477: +#line 719 "src/wast-lexer.cc" { RETURN(Table); } -#line 2810 "src/prebuilt/wast-lexer-gen.cc" -yy401: - yych = *++cursor_; - if (yych == 'o') goto yy571; - goto yy11; -yy402: +#line 3435 "src/prebuilt/wast-lexer-gen.cc" +yy478: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy650; + goto yy87; +yy479: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 701 "src/wast-lexer.cc" +#line 742 "src/wast-lexer.cc" { RETURN_OPCODE0(Throw); } -#line 2822 "src/prebuilt/wast-lexer-gen.cc" -yy404: +#line 3447 "src/prebuilt/wast-lexer-gen.cc" +yy481: yych = *++cursor_; - if (yych == 'c') goto yy572; - goto yy11; -yy405: + if (yych == 'c') goto yy651; + goto yy87; +yy482: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy652; + case 'b': goto yy653; + case 'c': goto yy654; + case 'l': goto yy655; + case 'n': goto yy656; + case 'o': goto yy657; + case 's': goto yy658; + case 'x': goto yy659; + default: goto yy87; } -yy406: +yy483: yych = *++cursor_; - if (yych == '.') goto yy581; - goto yy11; -yy407: + if (yych == '.') goto yy660; + goto yy87; +yy484: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy12; + if (yych == '!') goto yy86; + goto yy88; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy12; - if (yych <= '/') goto yy10; - goto yy290; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy88; + if (yych <= '/') goto yy86; + goto yy366; } } else { if (yych <= 'F') { - if (yych == ';') goto yy12; - if (yych <= '@') goto yy10; - goto yy290; + if (yych == ';') goto yy88; + if (yych <= '@') goto yy86; + goto yy366; } else { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy290; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy366; + if (yych <= '~') goto yy86; + goto yy88; } } -yy408: - yych = *++cursor_; - if (yych <= '/') goto yy11; - if (yych <= '0') goto yy582; - if (yych <= '9') goto yy584; - goto yy11; -yy409: +yy485: yych = *++cursor_; - if (yych == 'c') goto yy586; - goto yy11; -yy410: + if (yych <= '/') goto yy87; + if (yych <= '0') goto yy661; + if (yych <= '9') goto yy663; + goto yy87; +yy486: yych = *++cursor_; - if (yych == '_') goto yy588; - goto yy11; -yy411: + if (yych == 'c') goto yy665; + goto yy87; +yy487: yych = *++cursor_; - if (yych == '.') goto yy589; - goto yy11; -yy412: + if (yych == '_') goto yy667; + goto yy87; +yy488: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '.') goto yy668; + goto yy87; +yy489: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 676 "src/wast-lexer.cc" +#line 717 "src/wast-lexer.cc" { RETURN(Bin); } -#line 2895 "src/prebuilt/wast-lexer-gen.cc" -yy414: - yych = *++cursor_; - if (yych == 'l') goto yy590; - goto yy11; -yy415: +#line 3520 "src/prebuilt/wast-lexer-gen.cc" +yy491: yych = *++cursor_; - if (yych == 'n') goto yy591; - goto yy11; -yy416: + if (yych == 'l') goto yy669; + goto yy87; +yy492: yych = *++cursor_; - if (yych == 't') goto yy592; - goto yy11; -yy417: + if (yych == 'n') goto yy670; + goto yy87; +yy493: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy671; + goto yy87; +yy494: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 686 "src/wast-lexer.cc" +#line 727 "src/wast-lexer.cc" { RETURN(Except); } -#line 2915 "src/prebuilt/wast-lexer-gen.cc" -yy419: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 3540 "src/prebuilt/wast-lexer-gen.cc" +yy496: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 685 "src/wast-lexer.cc" +#line 726 "src/wast-lexer.cc" { RETURN(Export); } -#line 2923 "src/prebuilt/wast-lexer-gen.cc" -yy421: - yych = *++cursor_; - if (yych == 's') goto yy593; - goto yy11; -yy422: +#line 3548 "src/prebuilt/wast-lexer-gen.cc" +yy498: yych = *++cursor_; - if (yych == 'd') goto yy595; - goto yy11; -yy423: + if (yych == 's') goto yy672; + goto yy87; +yy499: yych = *++cursor_; - if (yych == 'i') goto yy597; - goto yy11; -yy424: + if (yych == 'd') goto yy674; + goto yy87; +yy500: yych = *++cursor_; - if (yych == 'n') goto yy598; - if (yych == 'p') goto yy599; - goto yy11; -yy425: + if (yych == 'i') goto yy676; + goto yy87; +yy501: yych = *++cursor_; - if (yych == 'm') goto yy600; - goto yy11; -yy426: + if (yych == 'n') goto yy677; + if (yych == 'p') goto yy678; + goto yy87; +yy502: yych = *++cursor_; - if (yych == 'v') goto yy601; - goto yy11; -yy427: + if (yych == 'm') goto yy679; + goto yy87; +yy503: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy680; + goto yy87; +yy504: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 401 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Eq); } -#line 2956 "src/prebuilt/wast-lexer-gen.cc" -yy429: - yych = *++cursor_; - if (yych == 'o') goto yy603; - goto yy11; -yy430: +#line 3581 "src/prebuilt/wast-lexer-gen.cc" +yy506: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy682; + goto yy87; +yy507: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 411 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Ge); } -#line 2968 "src/prebuilt/wast-lexer-gen.cc" -yy432: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 3593 "src/prebuilt/wast-lexer-gen.cc" +yy509: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 409 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Gt); } -#line 2976 "src/prebuilt/wast-lexer-gen.cc" -yy434: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 3601 "src/prebuilt/wast-lexer-gen.cc" +yy511: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 407 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Le); } -#line 2984 "src/prebuilt/wast-lexer-gen.cc" -yy436: - yych = *++cursor_; - if (yych == 'a') goto yy604; - goto yy11; -yy437: +#line 3609 "src/prebuilt/wast-lexer-gen.cc" +yy513: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy683; + goto yy87; +yy514: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 405 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Lt); } -#line 2996 "src/prebuilt/wast-lexer-gen.cc" -yy439: - yych = *++cursor_; - if (yych == 'x') goto yy605; - goto yy11; -yy440: +#line 3621 "src/prebuilt/wast-lexer-gen.cc" +yy516: yych = *++cursor_; - if (yych == 'n') goto yy607; - goto yy11; -yy441: + if (yych == 'x') goto yy684; + goto yy87; +yy517: yych = *++cursor_; - if (yych == 'l') goto yy609; - goto yy11; -yy442: + if (yych == 'n') goto yy686; + goto yy87; +yy518: yych = *++cursor_; - if (yych <= ':') { + if (yych == 'l') goto yy688; + goto yy87; +yy519: + ++cursor_; + if ((yych = *cursor_) <= ':') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= 'a') { - if (yych <= ';') goto yy443; - if (yych <= '`') goto yy10; - goto yy611; + if (yych <= ';') goto yy520; + if (yych <= '`') goto yy86; + goto yy690; } else { - if (yych == 'g') goto yy612; - if (yych <= '~') goto yy10; + if (yych == 'g') goto yy691; + if (yych <= '~') goto yy86; } } -yy443: +yy520: #line 403 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Ne); } -#line 3031 "src/prebuilt/wast-lexer-gen.cc" -yy444: +#line 3656 "src/prebuilt/wast-lexer-gen.cc" +yy521: yych = *++cursor_; - if (yych == 'i') goto yy614; - goto yy11; -yy445: + if (yych == 'i') goto yy693; + goto yy87; +yy522: yych = *++cursor_; - if (yych == 'r') goto yy615; - goto yy11; -yy446: + if (yych == 'r') goto yy694; + goto yy87; +yy523: yych = *++cursor_; - if (yych == 'o') goto yy616; - goto yy11; -yy447: + if (yych == 'o') goto yy695; + goto yy87; +yy524: yych = *++cursor_; - if (yych == 'b') goto yy617; - goto yy11; -yy448: + if (yych == 'b') goto yy696; + goto yy87; +yy525: yych = *++cursor_; - if (yych == 'u') goto yy619; - goto yy11; -yy449: + if (yych == 'u') goto yy698; + goto yy87; +yy526: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy699; + case 'c': goto yy700; + case 'd': goto yy701; + case 'e': goto yy702; + case 'g': goto yy703; + case 'l': goto yy704; + case 'm': goto yy705; + case 'n': goto yy706; + case 'r': goto yy707; + case 's': goto yy708; + default: goto yy87; } -yy450: - yych = *++cursor_; - if (yych == 's') goto yy630; - goto yy11; -yy451: +yy527: yych = *++cursor_; - if (yych == 'd') goto yy632; - goto yy11; -yy452: + if (yych == 's') goto yy709; + goto yy87; +yy528: yych = *++cursor_; - if (yych == 'i') goto yy634; - goto yy11; -yy453: + if (yych == 'd') goto yy711; + goto yy87; +yy529: yych = *++cursor_; - if (yych == 'n') goto yy635; - if (yych == 'p') goto yy636; - goto yy11; -yy454: + if (yych == 'i') goto yy713; + goto yy87; +yy530: yych = *++cursor_; - if (yych == 'v') goto yy637; - goto yy11; -yy455: + if (yych == 'n') goto yy714; + if (yych == 'p') goto yy715; + goto yy87; +yy531: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy716; + goto yy87; +yy532: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 402 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Eq); } -#line 3095 "src/prebuilt/wast-lexer-gen.cc" -yy457: - yych = *++cursor_; - if (yych == 'o') goto yy639; - goto yy11; -yy458: +#line 3720 "src/prebuilt/wast-lexer-gen.cc" +yy534: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy718; + goto yy87; +yy535: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 412 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Ge); } -#line 3107 "src/prebuilt/wast-lexer-gen.cc" -yy460: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 3732 "src/prebuilt/wast-lexer-gen.cc" +yy537: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 410 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Gt); } -#line 3115 "src/prebuilt/wast-lexer-gen.cc" -yy462: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 3740 "src/prebuilt/wast-lexer-gen.cc" +yy539: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 408 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Le); } -#line 3123 "src/prebuilt/wast-lexer-gen.cc" -yy464: - yych = *++cursor_; - if (yych == 'a') goto yy640; - goto yy11; -yy465: +#line 3748 "src/prebuilt/wast-lexer-gen.cc" +yy541: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy719; + goto yy87; +yy542: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 406 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Lt); } -#line 3135 "src/prebuilt/wast-lexer-gen.cc" -yy467: - yych = *++cursor_; - if (yych == 'x') goto yy641; - goto yy11; -yy468: +#line 3760 "src/prebuilt/wast-lexer-gen.cc" +yy544: yych = *++cursor_; - if (yych == 'n') goto yy643; - goto yy11; -yy469: + if (yych == 'x') goto yy720; + goto yy87; +yy545: yych = *++cursor_; - if (yych == 'l') goto yy645; - goto yy11; -yy470: + if (yych == 'n') goto yy722; + goto yy87; +yy546: yych = *++cursor_; - if (yych <= ':') { + if (yych == 'l') goto yy724; + goto yy87; +yy547: + ++cursor_; + if ((yych = *cursor_) <= ':') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= 'a') { - if (yych <= ';') goto yy471; - if (yych <= '`') goto yy10; - goto yy647; + if (yych <= ';') goto yy548; + if (yych <= '`') goto yy86; + goto yy726; } else { - if (yych == 'g') goto yy648; - if (yych <= '~') goto yy10; + if (yych == 'g') goto yy727; + if (yych <= '~') goto yy86; } } -yy471: +yy548: #line 404 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Ne); } -#line 3170 "src/prebuilt/wast-lexer-gen.cc" -yy472: +#line 3795 "src/prebuilt/wast-lexer-gen.cc" +yy549: yych = *++cursor_; - if (yych == 'o') goto yy650; - goto yy11; -yy473: + if (yych == 'o') goto yy729; + goto yy87; +yy550: yych = *++cursor_; - if (yych == 'i') goto yy651; - goto yy11; -yy474: + if (yych == 'i') goto yy730; + goto yy87; +yy551: yych = *++cursor_; - if (yych == 'r') goto yy652; - goto yy11; -yy475: + if (yych == 'r') goto yy731; + goto yy87; +yy552: yych = *++cursor_; - if (yych == 'o') goto yy653; - goto yy11; -yy476: + if (yych == 'o') goto yy732; + goto yy87; +yy553: yych = *++cursor_; - if (yych == 'b') goto yy654; - goto yy11; -yy477: + if (yych == 'b') goto yy733; + goto yy87; +yy554: yych = *++cursor_; - if (yych == 'u') goto yy656; - goto yy11; -yy478: + if (yych == 'u') goto yy735; + goto yy87; +yy555: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy736; + case 'c': goto yy737; + case 'd': goto yy738; + case 'e': goto yy739; + case 'g': goto yy740; + case 'l': goto yy741; + case 'm': goto yy742; + case 'n': goto yy743; + case 'r': goto yy744; + case 's': goto yy745; + default: goto yy87; } -yy479: +yy556: yych = *++cursor_; - if (yych == 'o') goto yy667; - goto yy11; -yy480: + if (yych == 'f') goto yy746; + goto yy87; +yy557: yych = *++cursor_; - if (yych == 'c') goto yy668; - goto yy11; -yy481: + if (yych == 'o') goto yy748; + goto yy87; +yy558: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy749; + goto yy87; +yy559: + ++cursor_; + if ((yych = *cursor_) <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy86; + } else { + if (yych <= '"') goto yy560; + if (yych <= '\'') goto yy86; + } + } else { + if (yych <= ':') { + if (yych == '.') goto yy750; + goto yy86; + } else { + if (yych <= ';') goto yy560; + if (yych <= '~') goto yy86; + } } -#line 674 "src/wast-lexer.cc" +yy560: +#line 715 "src/wast-lexer.cc" { RETURN(Global); } -#line 3225 "src/prebuilt/wast-lexer-gen.cc" -yy483: +#line 3868 "src/prebuilt/wast-lexer-gen.cc" +yy561: yych = *++cursor_; - if (yych == 'e') goto yy669; - goto yy11; -yy484: + if (yych == 'e') goto yy751; + goto yy87; +yy562: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy752; + case 'e': goto yy753; + case 'g': goto yy754; + case 'l': goto yy755; + case 'm': goto yy756; + case 'n': goto yy757; + case 'r': goto yy758; + case 's': goto yy759; + default: goto yy87; } -yy485: - yych = *++cursor_; - if (yych == 'd') goto yy678; - goto yy11; -yy486: +yy563: yych = *++cursor_; - if (yych == 'd') goto yy680; - goto yy11; -yy487: + if (yych == 'd') goto yy760; + goto yy87; +yy564: yych = *++cursor_; - if (yych == 'o') goto yy682; - goto yy11; -yy488: + if (yych == 'd') goto yy762; + goto yy87; +yy565: yych = *++cursor_; - if (yych == 'z') goto yy683; - goto yy11; -yy489: + if (yych == 'o') goto yy764; + goto yy87; +yy566: yych = *++cursor_; - if (yych == 'n') goto yy685; - goto yy11; -yy490: + if (yych == 'z') goto yy765; + goto yy87; +yy567: yych = *++cursor_; - if (yych == 'z') goto yy686; - goto yy11; -yy491: + if (yych == 'n') goto yy767; + goto yy87; +yy568: yych = *++cursor_; - if (yych == 'v') goto yy688; - goto yy11; -yy492: + if (yych == 'z') goto yy768; + goto yy87; +yy569: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'v') goto yy770; + goto yy87; +yy570: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy493; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy571; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'y') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'z') goto yy689; - if (yych <= '~') goto yy10; + if (yych <= 'z') goto yy771; + if (yych <= '~') goto yy86; } } -yy493: +yy571: #line 381 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32Eq); } -#line 3291 "src/prebuilt/wast-lexer-gen.cc" -yy494: - yych = *++cursor_; - if (yych == 't') goto yy691; - goto yy11; -yy495: +#line 3934 "src/prebuilt/wast-lexer-gen.cc" +yy572: yych = *++cursor_; - if (yych == '_') goto yy692; - goto yy11; -yy496: + if (yych == 't') goto yy773; + goto yy87; +yy573: yych = *++cursor_; - if (yych == '_') goto yy693; - goto yy11; -yy497: + if (yych == '_') goto yy774; + goto yy87; +yy574: yych = *++cursor_; - if (yych == '_') goto yy694; - goto yy11; -yy498: + if (yych == '_') goto yy775; + goto yy87; +yy575: yych = *++cursor_; - if (yych == 'a') goto yy695; - goto yy11; -yy499: + if (yych == '_') goto yy776; + goto yy87; +yy576: yych = *++cursor_; - if (yych == '_') goto yy696; - goto yy11; -yy500: + if (yych == 'a') goto yy777; + goto yy87; +yy577: yych = *++cursor_; - if (yych == 'l') goto yy697; - goto yy11; -yy501: + if (yych == '_') goto yy778; + goto yy87; +yy578: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy779; + goto yy87; +yy579: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 383 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32Ne); } -#line 3327 "src/prebuilt/wast-lexer-gen.cc" -yy503: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 3970 "src/prebuilt/wast-lexer-gen.cc" +yy581: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 353 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Or); } -#line 3335 "src/prebuilt/wast-lexer-gen.cc" -yy505: +#line 3978 "src/prebuilt/wast-lexer-gen.cc" +yy583: yych = *++cursor_; - if (yych == 'p') goto yy699; - goto yy11; -yy506: + if (yych == 'p') goto yy781; + goto yy87; +yy584: yych = *++cursor_; - if (yych == 'i') goto yy700; - if (yych == 'm') goto yy701; - goto yy11; -yy507: + if (yych == 'i') goto yy782; + if (yych == 'm') goto yy783; + goto yy87; +yy585: yych = *++cursor_; - if (yych == 't') goto yy702; - goto yy11; -yy508: + if (yych == 't') goto yy784; + goto yy87; +yy586: yych = *++cursor_; - if (yych == 'l') goto yy703; - if (yych == 'r') goto yy705; - goto yy11; -yy509: + if (yych == 'l') goto yy785; + if (yych == 'r') goto yy787; + goto yy87; +yy587: yych = *++cursor_; - if (yych == 'o') goto yy706; - goto yy11; -yy510: + if (yych == 'o') goto yy788; + goto yy87; +yy588: yych = *++cursor_; - if (yych == 'b') goto yy707; - goto yy11; -yy511: + if (yych == 'b') goto yy789; + goto yy87; +yy589: yych = *++cursor_; - if (yych == 'u') goto yy709; - goto yy11; -yy512: + if (yych == 'u') goto yy791; + goto yy87; +yy590: yych = *++cursor_; - if (yych == 'a') goto yy710; - goto yy11; -yy513: + if (yych == 'a') goto yy792; + goto yy87; +yy591: yych = *++cursor_; - if (yych == 'r') goto yy711; - goto yy11; -yy514: + if (yych == 'r') goto yy793; + goto yy87; +yy592: yych = *++cursor_; 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 == 'd') goto yy722; - goto yy11; -yy516: + case 'a': goto yy795; + case 'e': goto yy796; + case 'g': goto yy797; + case 'l': goto yy798; + case 'm': goto yy799; + case 'n': goto yy800; + case 'r': goto yy801; + case 's': goto yy802; + case 't': goto yy803; + default: goto yy87; + } +yy593: yych = *++cursor_; - if (yych == 'd') goto yy724; - goto yy11; -yy517: + if (yych == 'd') goto yy804; + goto yy87; +yy594: yych = *++cursor_; - if (yych == 'o') goto yy726; - goto yy11; -yy518: + if (yych == 'd') goto yy806; + goto yy87; +yy595: yych = *++cursor_; - if (yych == 'z') goto yy727; - goto yy11; -yy519: + if (yych == 'o') goto yy808; + goto yy87; +yy596: yych = *++cursor_; - if (yych == 'n') goto yy729; - goto yy11; -yy520: + if (yych == 'z') goto yy809; + goto yy87; +yy597: yych = *++cursor_; - if (yych == 'z') goto yy730; - goto yy11; -yy521: + if (yych == 'n') goto yy811; + goto yy87; +yy598: yych = *++cursor_; - if (yych == 'v') goto yy732; - goto yy11; -yy522: + if (yych == 'z') goto yy812; + goto yy87; +yy599: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'v') goto yy814; + goto yy87; +yy600: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy523; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy601; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'y') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'z') goto yy733; - if (yych <= '~') goto yy10; + if (yych <= 'z') goto yy815; + if (yych <= '~') goto yy86; } } -yy523: +yy601: #line 382 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64Eq); } -#line 3436 "src/prebuilt/wast-lexer-gen.cc" -yy524: +#line 4079 "src/prebuilt/wast-lexer-gen.cc" +yy602: yych = *++cursor_; - if (yych == 't') goto yy735; - goto yy11; -yy525: - yych = *++cursor_; - if (yych == '_') goto yy736; - goto yy11; -yy526: + if (yych == 't') goto yy817; + goto yy87; +yy603: yych = *++cursor_; - if (yych == '_') goto yy737; - goto yy11; -yy527: + if (yych == '_') goto yy818; + goto yy87; +yy604: yych = *++cursor_; - if (yych == '_') goto yy738; - goto yy11; -yy528: + if (yych == '_') goto yy819; + goto yy87; +yy605: yych = *++cursor_; - if (yych == 'a') goto yy739; - goto yy11; -yy529: + if (yych == '_') goto yy820; + goto yy87; +yy606: yych = *++cursor_; - if (yych == '_') goto yy740; - goto yy11; -yy530: + if (yych == 'a') goto yy821; + goto yy87; +yy607: yych = *++cursor_; - if (yych == 'l') goto yy741; - goto yy11; -yy531: + if (yych == '_') goto yy822; + goto yy87; +yy608: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy823; + goto yy87; +yy609: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 384 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64Ne); } -#line 3472 "src/prebuilt/wast-lexer-gen.cc" -yy533: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4115 "src/prebuilt/wast-lexer-gen.cc" +yy611: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 354 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Or); } -#line 3480 "src/prebuilt/wast-lexer-gen.cc" -yy535: +#line 4123 "src/prebuilt/wast-lexer-gen.cc" +yy613: yych = *++cursor_; - if (yych == 'p') goto yy743; - goto yy11; -yy536: + if (yych == 'p') goto yy825; + goto yy87; +yy614: yych = *++cursor_; - if (yych == 'i') goto yy744; - if (yych == 'm') goto yy745; - goto yy11; -yy537: + if (yych == 'i') goto yy826; + if (yych == 'm') goto yy827; + goto yy87; +yy615: yych = *++cursor_; - if (yych == 't') goto yy746; - goto yy11; -yy538: + if (yych == 't') goto yy828; + goto yy87; +yy616: yych = *++cursor_; - if (yych == 'l') goto yy747; - if (yych == 'r') goto yy749; - goto yy11; -yy539: + if (yych == 'l') goto yy829; + if (yych == 'r') goto yy831; + goto yy87; +yy617: yych = *++cursor_; - if (yych == 'o') goto yy750; - goto yy11; -yy540: + if (yych == 'o') goto yy832; + goto yy87; +yy618: yych = *++cursor_; - if (yych == 'b') goto yy751; - goto yy11; -yy541: + if (yych == 'b') goto yy833; + goto yy87; +yy619: yych = *++cursor_; - if (yych == 'u') goto yy753; - goto yy11; -yy542: + if (yych == 'u') goto yy835; + goto yy87; +yy620: yych = *++cursor_; - if (yych == 'r') goto yy754; - goto yy11; -yy543: + if (yych == 'r') goto yy836; + goto yy87; +yy621: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy838; + case 'e': goto yy839; + case 'n': goto yy840; + case 'r': goto yy841; + case 's': goto yy842; + case 't': goto yy843; + default: goto yy87; } -yy544: +yy622: yych = *++cursor_; switch (yych) { - 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; + case 'a': goto yy844; + case 'e': goto yy845; + case 'g': goto yy846; + case 'l': goto yy847; + case 'm': goto yy848; + case 'n': goto yy849; + case 'r': goto yy850; + case 's': goto yy851; + default: goto yy87; } -yy545: - yych = *++cursor_; - if (yych == 'e') goto yy770; - goto yy11; -yy546: +yy623: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy852; + goto yy87; +yy624: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 684 "src/wast-lexer.cc" +#line 725 "src/wast-lexer.cc" { RETURN(Import); } -#line 3550 "src/prebuilt/wast-lexer-gen.cc" -yy548: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4193 "src/prebuilt/wast-lexer-gen.cc" +yy626: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 689 "src/wast-lexer.cc" +#line 730 "src/wast-lexer.cc" { RETURN(Invoke); } -#line 3558 "src/prebuilt/wast-lexer-gen.cc" -yy550: +#line 4201 "src/prebuilt/wast-lexer-gen.cc" +yy628: yych = *++cursor_; - if (yych <= ')') { + if (yych <= 'r') { + if (yych == 'g') goto yy853; + goto yy87; + } else { + if (yych <= 's') goto yy854; + if (yych <= 't') goto yy855; + goto yy87; + } +yy629: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy551; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy630; + if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy771; - goto yy10; + if (yych == '.') goto yy856; + goto yy86; } else { - if (yych <= ';') goto yy551; - if (yych <= '~') goto yy10; + if (yych <= ';') goto yy630; + if (yych <= '~') goto yy86; } } -yy551: -#line 679 "src/wast-lexer.cc" +yy630: +#line 720 "src/wast-lexer.cc" { RETURN(Memory); } -#line 3580 "src/prebuilt/wast-lexer-gen.cc" -yy552: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4233 "src/prebuilt/wast-lexer-gen.cc" +yy631: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 675 "src/wast-lexer.cc" +#line 716 "src/wast-lexer.cc" { RETURN(Module); } -#line 3588 "src/prebuilt/wast-lexer-gen.cc" -yy554: +#line 4241 "src/prebuilt/wast-lexer-gen.cc" +yy633: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy12; + if (yych == '!') goto yy86; + goto yy88; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy12; - if (yych <= '/') goto yy10; - goto yy772; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy88; + if (yych <= '/') goto yy86; + goto yy857; } } else { if (yych <= 'F') { - if (yych == ';') goto yy12; - if (yych <= '@') goto yy10; - goto yy772; + if (yych == ';') goto yy88; + if (yych <= '@') goto yy86; + goto yy857; } else { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy772; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy857; + if (yych <= '~') goto yy86; + goto yy88; } } -yy555: - yych = *++cursor_; - if (yych <= ')') { +yy634: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy556; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy635; + if (yych <= '\'') goto yy86; } } else { if (yych <= '<') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '=') goto yy774; - if (yych <= '~') goto yy10; + if (yych <= '=') goto yy859; + if (yych <= '~') goto yy86; } } -yy556: -#line 683 "src/wast-lexer.cc" +yy635: +#line 724 "src/wast-lexer.cc" { RETURN(Offset); } -#line 3635 "src/prebuilt/wast-lexer-gen.cc" -yy557: - yych = *++cursor_; - if (yych == 'e') goto yy775; - goto yy11; -yy558: +#line 4288 "src/prebuilt/wast-lexer-gen.cc" +yy636: yych = *++cursor_; - if (yych == 'e') goto yy777; - goto yy11; -yy559: + if (yych == 'e') goto yy860; + goto yy87; +yy637: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy862; + goto yy87; +yy638: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 672 "src/wast-lexer.cc" +#line 713 "src/wast-lexer.cc" { RETURN(Result); } -#line 3651 "src/prebuilt/wast-lexer-gen.cc" -yy561: - yych = *++cursor_; - if (yych == 'w') goto yy778; - goto yy11; -yy562: +#line 4304 "src/prebuilt/wast-lexer-gen.cc" +yy640: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'w') goto yy863; + goto yy87; +yy641: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy563; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy642; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy780; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy865; + if (yych <= '~') goto yy86; } } -yy563: +yy642: #line 275 "src/wast-lexer.cc" { RETURN_OPCODE0(Return); } -#line 3676 "src/prebuilt/wast-lexer-gen.cc" -yy564: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4329 "src/prebuilt/wast-lexer-gen.cc" +yy643: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 446 "src/wast-lexer.cc" { RETURN_OPCODE0(Select); } -#line 3684 "src/prebuilt/wast-lexer-gen.cc" -yy566: - yych = *++cursor_; - if (yych == 'o') goto yy781; - goto yy11; -yy567: +#line 4337 "src/prebuilt/wast-lexer-gen.cc" +yy645: yych = *++cursor_; - if (yych == 'c') goto yy782; - goto yy11; -yy568: + if (yych == 'o') goto yy866; + goto yy87; +yy646: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy867; + goto yy87; +yy647: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 705 "src/wast-lexer.cc" +#line 746 "src/wast-lexer.cc" { RETURN(Shared); } -#line 3700 "src/prebuilt/wast-lexer-gen.cc" -yy570: +#line 4353 "src/prebuilt/wast-lexer-gen.cc" +yy649: yych = *++cursor_; if (yych <= 'd') { - if (yych <= 'b') goto yy11; - if (yych <= 'c') goto yy783; - goto yy784; + if (yych <= 'b') goto yy87; + if (yych <= 'c') goto yy868; + goto yy869; } else { - if (yych == 'i') goto yy785; - goto yy11; + if (yych == 'i') goto yy870; + goto yy87; } -yy571: - yych = *++cursor_; - if (yych == 'c') goto yy786; - goto yy11; -yy572: +yy650: yych = *++cursor_; - if (yych == 'h') goto yy787; - goto yy11; -yy573: + if (yych == 'c') goto yy871; + goto yy87; +yy651: yych = *++cursor_; - if (yych == 'n') goto yy788; - goto yy11; -yy574: + if (yych == 'h') goto yy872; + goto yy87; +yy652: yych = *++cursor_; - if (yych == 'i') goto yy789; - goto yy11; -yy575: + if (yych == 'n') goto yy873; + goto yy87; +yy653: yych = *++cursor_; - if (yych == 'o') goto yy790; - goto yy11; -yy576: + if (yych == 'i') goto yy874; + goto yy87; +yy654: yych = *++cursor_; - if (yych == 'o') goto yy791; - goto yy11; -yy577: + if (yych == 'o') goto yy875; + goto yy87; +yy655: yych = *++cursor_; - if (yych == 'o') goto yy792; - goto yy11; -yy578: + if (yych == 'o') goto yy876; + goto yy87; +yy656: yych = *++cursor_; - if (yych == 'r') goto yy793; - goto yy11; -yy579: + if (yych == 'o') goto yy877; + goto yy87; +yy657: yych = *++cursor_; - if (yych == 't') goto yy795; - goto yy11; -yy580: + if (yych == 'r') goto yy878; + goto yy87; +yy658: yych = *++cursor_; - if (yych == 'o') goto yy796; - goto yy11; -yy581: + if (yych == 't') goto yy880; + goto yy87; +yy659: yych = *++cursor_; - if (yych == 's') goto yy797; - goto yy11; -yy582: + if (yych == 'o') goto yy881; + goto yy87; +yy660: yych = *++cursor_; - if (yych == 'x') goto yy799; - goto yy585; -yy583: + if (yych == 's') goto yy882; + goto yy87; +yy661: + ++cursor_; + if ((yych = *cursor_) <= '9') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy662; + if (yych <= '/') goto yy86; + goto yy663; + } + } else { + if (yych <= '_') { + if (yych == ';') goto yy662; + if (yych <= '^') goto yy86; + goto yy883; + } else { + if (yych == 'x') goto yy884; + if (yych <= '~') goto yy86; + } + } +yy662: #line 305 "src/wast-lexer.cc" { RETURN_TEXT_AT(AlignEqNat, 6); } -#line 3762 "src/prebuilt/wast-lexer-gen.cc" -yy584: +#line 4432 "src/prebuilt/wast-lexer-gen.cc" +yy663: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy585: if (yych <= '/') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy583; + if (yych == '!') goto yy86; + goto yy662; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy583; - goto yy10; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy662; + goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy584; - if (yych <= ':') goto yy10; - goto yy583; + if (yych <= '9') goto yy663; + if (yych <= ':') goto yy86; + goto yy662; } else { - if (yych == '_') goto yy798; - if (yych <= '~') goto yy10; - goto yy583; + if (yych == '_') goto yy883; + if (yych <= '~') goto yy86; + goto yy662; } } -yy586: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +yy665: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 260 "src/wast-lexer.cc" - { RETURN(Anyfunc); } -#line 3795 "src/prebuilt/wast-lexer-gen.cc" -yy588: +#line 670 "src/wast-lexer.cc" + { RETURN(Funcref); } +#line 4464 "src/prebuilt/wast-lexer-gen.cc" +yy667: yych = *++cursor_; switch (yych) { - 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; + case 'e': goto yy885; + case 'i': goto yy886; + case 'm': goto yy887; + case 'r': goto yy888; + case 't': goto yy889; + case 'u': goto yy890; + default: goto yy87; } -yy589: - yych = *++cursor_; - if (yych == 'w') goto yy806; - goto yy11; -yy590: +yy668: yych = *++cursor_; - if (yych == 'e') goto yy807; - goto yy11; -yy591: + if (yych == 'n') goto yy891; + goto yy87; +yy669: yych = *++cursor_; - if (yych == 'd') goto yy809; - goto yy11; -yy592: + if (yych == 'e') goto yy892; + goto yy87; +yy670: yych = *++cursor_; - if (yych == '_') goto yy810; - goto yy11; -yy593: + if (yych == 'd') goto yy894; + goto yy87; +yy671: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy895; + goto yy87; +yy672: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 320 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Abs); } -#line 3830 "src/prebuilt/wast-lexer-gen.cc" -yy595: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4499 "src/prebuilt/wast-lexer-gen.cc" +yy674: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 367 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Add); } -#line 3838 "src/prebuilt/wast-lexer-gen.cc" -yy597: - yych = *++cursor_; - if (yych == 'l') goto yy811; - goto yy11; -yy598: +#line 4507 "src/prebuilt/wast-lexer-gen.cc" +yy676: yych = *++cursor_; - if (yych == 's') goto yy813; - if (yych == 'v') goto yy814; - goto yy11; -yy599: + if (yych == 'l') goto yy896; + goto yy87; +yy677: yych = *++cursor_; - if (yych == 'y') goto yy815; - goto yy11; -yy600: + if (yych == 's') goto yy898; + if (yych == 'v') goto yy899; + goto yy87; +yy678: yych = *++cursor_; - if (yych == 'o') goto yy816; - goto yy11; -yy601: + if (yych == 'y') goto yy900; + goto yy87; +yy679: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy901; + goto yy87; +yy680: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 373 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Div); } -#line 3863 "src/prebuilt/wast-lexer-gen.cc" -yy603: - yych = *++cursor_; - if (yych == 'o') goto yy817; - goto yy11; -yy604: +#line 4532 "src/prebuilt/wast-lexer-gen.cc" +yy682: yych = *++cursor_; - if (yych == 'd') goto yy818; - goto yy11; -yy605: + if (yych == 'o') goto yy902; + goto yy87; +yy683: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'd') goto yy903; + goto yy87; +yy684: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 377 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Max); } -#line 3879 "src/prebuilt/wast-lexer-gen.cc" -yy607: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4548 "src/prebuilt/wast-lexer-gen.cc" +yy686: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 375 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Min); } -#line 3887 "src/prebuilt/wast-lexer-gen.cc" -yy609: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4556 "src/prebuilt/wast-lexer-gen.cc" +yy688: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 371 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Mul); } -#line 3895 "src/prebuilt/wast-lexer-gen.cc" -yy611: - yych = *++cursor_; - if (yych == 'r') goto yy820; - goto yy11; -yy612: +#line 4564 "src/prebuilt/wast-lexer-gen.cc" +yy690: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy905; + goto yy87; +yy691: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 318 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Neg); } -#line 3907 "src/prebuilt/wast-lexer-gen.cc" -yy614: - yych = *++cursor_; - if (yych == 'n') goto yy821; - goto yy11; -yy615: +#line 4576 "src/prebuilt/wast-lexer-gen.cc" +yy693: yych = *++cursor_; - if (yych == 't') goto yy822; - goto yy11; -yy616: + if (yych == 'n') goto yy906; + goto yy87; +yy694: yych = *++cursor_; - if (yych == 'r') goto yy824; - goto yy11; -yy617: + if (yych == 't') goto yy907; + goto yy87; +yy695: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy909; + goto yy87; +yy696: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 369 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Sub); } -#line 3927 "src/prebuilt/wast-lexer-gen.cc" -yy619: +#line 4596 "src/prebuilt/wast-lexer-gen.cc" +yy698: yych = *++cursor_; - if (yych == 'n') goto yy825; - goto yy11; -yy620: + if (yych == 'n') goto yy910; + goto yy87; +yy699: yych = *++cursor_; - if (yych == 'b') goto yy826; - if (yych == 'd') goto yy827; - goto yy11; -yy621: + if (yych == 'b') goto yy911; + if (yych == 'd') goto yy912; + goto yy87; +yy700: yych = *++cursor_; - if (yych == 'o') goto yy828; - goto yy11; -yy622: + if (yych == 'o') goto yy913; + goto yy87; +yy701: yych = *++cursor_; - if (yych == 'i') goto yy829; - goto yy11; -yy623: + if (yych == 'i') goto yy914; + goto yy87; +yy702: yych = *++cursor_; - if (yych == 'q') goto yy830; - if (yych == 'x') goto yy832; - goto yy11; -yy624: + if (yych == 'q') goto yy915; + if (yych == 'x') goto yy917; + goto yy87; +yy703: yych = *++cursor_; - if (yych == 'e') goto yy833; - if (yych == 't') goto yy835; - goto yy11; -yy625: + if (yych == 'e') goto yy918; + if (yych == 't') goto yy920; + goto yy87; +yy704: yych = *++cursor_; - if (yych == 'e') goto yy837; - if (yych == 't') goto yy839; - goto yy11; -yy626: + if (yych == 'e') goto yy922; + if (yych == 't') goto yy924; + goto yy87; +yy705: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy841; - goto yy11; + if (yych == 'a') goto yy926; + goto yy87; } else { - if (yych <= 'i') goto yy842; - if (yych == 'u') goto yy843; - goto yy11; + if (yych <= 'i') goto yy927; + if (yych == 'u') goto yy928; + goto yy87; } -yy627: +yy706: yych = *++cursor_; - if (yych == 'e') goto yy844; - goto yy11; -yy628: + if (yych == 'e') goto yy929; + goto yy87; +yy707: yych = *++cursor_; - if (yych == 'e') goto yy846; - goto yy11; -yy629: + if (yych == 'e') goto yy931; + goto yy87; +yy708: yych = *++cursor_; if (yych <= 'q') { - if (yych <= 'o') goto yy11; - if (yych <= 'p') goto yy847; - goto yy848; + if (yych <= 'o') goto yy87; + if (yych <= 'p') goto yy932; + goto yy933; } else { - if (yych == 'u') goto yy849; - goto yy11; + if (yych == 'u') goto yy934; + goto yy87; } -yy630: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +yy709: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 321 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Abs); } -#line 3995 "src/prebuilt/wast-lexer-gen.cc" -yy632: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4664 "src/prebuilt/wast-lexer-gen.cc" +yy711: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 368 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Add); } -#line 4003 "src/prebuilt/wast-lexer-gen.cc" -yy634: - yych = *++cursor_; - if (yych == 'l') goto yy850; - goto yy11; -yy635: +#line 4672 "src/prebuilt/wast-lexer-gen.cc" +yy713: yych = *++cursor_; - if (yych == 's') goto yy852; - if (yych == 'v') goto yy853; - goto yy11; -yy636: + if (yych == 'l') goto yy935; + goto yy87; +yy714: yych = *++cursor_; - if (yych == 'y') goto yy854; - goto yy11; -yy637: + if (yych == 's') goto yy937; + if (yych == 'v') goto yy938; + goto yy87; +yy715: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'y') goto yy939; + goto yy87; +yy716: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 374 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Div); } -#line 4024 "src/prebuilt/wast-lexer-gen.cc" -yy639: - yych = *++cursor_; - if (yych == 'o') goto yy855; - goto yy11; -yy640: +#line 4693 "src/prebuilt/wast-lexer-gen.cc" +yy718: yych = *++cursor_; - if (yych == 'd') goto yy856; - goto yy11; -yy641: + if (yych == 'o') goto yy940; + goto yy87; +yy719: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'd') goto yy941; + goto yy87; +yy720: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 378 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Max); } -#line 4040 "src/prebuilt/wast-lexer-gen.cc" -yy643: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4709 "src/prebuilt/wast-lexer-gen.cc" +yy722: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 376 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Min); } -#line 4048 "src/prebuilt/wast-lexer-gen.cc" -yy645: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4717 "src/prebuilt/wast-lexer-gen.cc" +yy724: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 372 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Mul); } -#line 4056 "src/prebuilt/wast-lexer-gen.cc" -yy647: - yych = *++cursor_; - if (yych == 'r') goto yy858; - goto yy11; -yy648: +#line 4725 "src/prebuilt/wast-lexer-gen.cc" +yy726: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy943; + goto yy87; +yy727: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 319 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Neg); } -#line 4068 "src/prebuilt/wast-lexer-gen.cc" -yy650: +#line 4737 "src/prebuilt/wast-lexer-gen.cc" +yy729: yych = *++cursor_; - if (yych == 'm') goto yy859; - goto yy11; -yy651: + if (yych == 'm') goto yy944; + goto yy87; +yy730: yych = *++cursor_; - if (yych == 'n') goto yy860; - goto yy11; -yy652: + if (yych == 'n') goto yy945; + goto yy87; +yy731: yych = *++cursor_; - if (yych == 't') goto yy861; - goto yy11; -yy653: - yych = *++cursor_; - if (yych == 'r') goto yy863; - goto yy11; -yy654: + if (yych == 't') goto yy946; + goto yy87; +yy732: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy948; + goto yy87; +yy733: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 370 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Sub); } -#line 4092 "src/prebuilt/wast-lexer-gen.cc" -yy656: +#line 4761 "src/prebuilt/wast-lexer-gen.cc" +yy735: yych = *++cursor_; - if (yych == 'n') goto yy864; - goto yy11; -yy657: + if (yych == 'n') goto yy949; + goto yy87; +yy736: yych = *++cursor_; - if (yych == 'b') goto yy865; - if (yych == 'd') goto yy866; - goto yy11; -yy658: + if (yych == 'b') goto yy950; + if (yych == 'd') goto yy951; + goto yy87; +yy737: yych = *++cursor_; - if (yych == 'o') goto yy867; - goto yy11; -yy659: + if (yych == 'o') goto yy952; + goto yy87; +yy738: yych = *++cursor_; - if (yych == 'i') goto yy868; - goto yy11; -yy660: + if (yych == 'i') goto yy953; + goto yy87; +yy739: yych = *++cursor_; - if (yych == 'q') goto yy869; - if (yych == 'x') goto yy871; - goto yy11; -yy661: + if (yych == 'q') goto yy954; + if (yych == 'x') goto yy956; + goto yy87; +yy740: yych = *++cursor_; - if (yych == 'e') goto yy872; - if (yych == 't') goto yy874; - goto yy11; -yy662: + if (yych == 'e') goto yy957; + if (yych == 't') goto yy959; + goto yy87; +yy741: yych = *++cursor_; - if (yych == 'e') goto yy876; - if (yych == 't') goto yy878; - goto yy11; -yy663: + if (yych == 'e') goto yy961; + if (yych == 't') goto yy963; + goto yy87; +yy742: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy880; - goto yy11; + if (yych == 'a') goto yy965; + goto yy87; } else { - if (yych <= 'i') goto yy881; - if (yych == 'u') goto yy882; - goto yy11; + if (yych <= 'i') goto yy966; + if (yych == 'u') goto yy967; + goto yy87; } -yy664: +yy743: yych = *++cursor_; - if (yych == 'e') goto yy883; - goto yy11; -yy665: + if (yych == 'e') goto yy968; + goto yy87; +yy744: yych = *++cursor_; - if (yych == 'e') goto yy885; - goto yy11; -yy666: + if (yych == 'e') goto yy970; + goto yy87; +yy745: yych = *++cursor_; if (yych <= 'q') { - if (yych <= 'o') goto yy11; - if (yych <= 'p') goto yy886; - goto yy887; + if (yych <= 'o') goto yy87; + if (yych <= 'p') goto yy971; + goto yy972; } else { - if (yych == 'u') goto yy888; - goto yy11; + if (yych == 'u') goto yy973; + goto yy87; } -yy667: +yy746: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 260 "src/wast-lexer.cc" + { RETURN(Funcref); } +#line 4829 "src/prebuilt/wast-lexer-gen.cc" +yy748: yych = *++cursor_; - if (yych == 'b') goto yy889; - goto yy11; -yy668: + if (yych == 'b') goto yy974; + goto yy87; +yy749: yych = *++cursor_; - if (yych == 'a') goto yy890; - goto yy11; -yy669: + if (yych == 'a') goto yy975; + goto yy87; +yy750: yych = *++cursor_; - if (yych == 'm') goto yy891; - goto yy11; -yy670: + if (yych == 'g') goto yy976; + if (yych == 's') goto yy977; + goto yy87; +yy751: + yych = *++cursor_; + if (yych == 'm') goto yy978; + goto yy87; +yy752: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy892; - goto yy11; + if (yych == 'd') goto yy979; + goto yy87; } else { - if (yych <= 'l') goto yy893; - if (yych == 'n') goto yy894; - goto yy11; + if (yych <= 'l') goto yy980; + if (yych == 'n') goto yy981; + goto yy87; } -yy671: +yy753: yych = *++cursor_; - if (yych == 'q') goto yy895; - if (yych == 'x') goto yy897; - goto yy11; -yy672: + if (yych == 'q') goto yy982; + if (yych == 'x') goto yy984; + goto yy87; +yy754: yych = *++cursor_; - if (yych == 'e') goto yy898; - if (yych == 't') goto yy899; - goto yy11; -yy673: + if (yych == 'e') goto yy985; + if (yych == 't') goto yy986; + goto yy87; +yy755: yych = *++cursor_; - if (yych == 'e') goto yy900; - if (yych == 't') goto yy901; - goto yy11; -yy674: + if (yych == 'e') goto yy987; + if (yych == 't') goto yy988; + goto yy87; +yy756: yych = *++cursor_; - if (yych == 'u') goto yy902; - goto yy11; -yy675: + if (yych == 'u') goto yy989; + goto yy87; +yy757: yych = *++cursor_; - if (yych == 'e') goto yy903; - goto yy11; -yy676: + if (yych == 'e') goto yy990; + goto yy87; +yy758: yych = *++cursor_; - if (yych == 'e') goto yy905; - goto yy11; -yy677: + if (yych == 'e') goto yy992; + goto yy87; +yy759: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy906; - goto yy11; + if (yych == 'h') goto yy993; + goto yy87; } else { - if (yych <= 'p') goto yy907; - if (yych == 'u') goto yy908; - goto yy11; + if (yych <= 'p') goto yy994; + if (yych == 'u') goto yy995; + goto yy87; } -yy678: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +yy760: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 337 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Add); } -#line 4219 "src/prebuilt/wast-lexer-gen.cc" -yy680: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 4901 "src/prebuilt/wast-lexer-gen.cc" +yy762: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 351 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32And); } -#line 4227 "src/prebuilt/wast-lexer-gen.cc" -yy682: - yych = *++cursor_; - if (yych == 'm') goto yy909; - goto yy11; -yy683: +#line 4909 "src/prebuilt/wast-lexer-gen.cc" +yy764: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'm') goto yy996; + goto yy87; +yy765: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 312 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Clz); } -#line 4239 "src/prebuilt/wast-lexer-gen.cc" -yy685: - yych = *++cursor_; - if (yych == 's') goto yy910; - goto yy11; -yy686: +#line 4921 "src/prebuilt/wast-lexer-gen.cc" +yy767: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy997; + goto yy87; +yy768: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 314 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Ctz); } -#line 4251 "src/prebuilt/wast-lexer-gen.cc" -yy688: - yych = *++cursor_; - if (yych == '_') goto yy911; - goto yy11; -yy689: +#line 4933 "src/prebuilt/wast-lexer-gen.cc" +yy770: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy998; + goto yy87; +yy771: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 310 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32Eqz); } -#line 4263 "src/prebuilt/wast-lexer-gen.cc" -yy691: - yych = *++cursor_; - if (yych == 'e') goto yy912; - goto yy11; -yy692: +#line 4945 "src/prebuilt/wast-lexer-gen.cc" +yy773: yych = *++cursor_; - if (yych == 's') goto yy913; - if (yych == 'u') goto yy915; - goto yy11; -yy693: + if (yych == 'e') goto yy999; + goto yy87; +yy774: yych = *++cursor_; - if (yych == 's') goto yy917; - if (yych == 'u') goto yy919; - goto yy11; -yy694: + if (yych == 's') goto yy1000; + if (yych == 'u') goto yy1002; + goto yy87; +yy775: yych = *++cursor_; - if (yych == 's') goto yy921; - if (yych == 'u') goto yy923; - goto yy11; -yy695: + if (yych == 's') goto yy1004; + if (yych == 'u') goto yy1006; + goto yy87; +yy776: yych = *++cursor_; - if (yych == 'd') goto yy925; - goto yy11; -yy696: + if (yych == 's') goto yy1008; + if (yych == 'u') goto yy1010; + goto yy87; +yy777: yych = *++cursor_; - if (yych == 's') goto yy927; - if (yych == 'u') goto yy929; - goto yy11; -yy697: + if (yych == 'd') goto yy1012; + goto yy87; +yy778: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1014; + if (yych == 'u') goto yy1016; + goto yy87; +yy779: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 341 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Mul); } -#line 4299 "src/prebuilt/wast-lexer-gen.cc" -yy699: - yych = *++cursor_; - if (yych == 'c') goto yy931; - goto yy11; -yy700: +#line 4981 "src/prebuilt/wast-lexer-gen.cc" +yy781: yych = *++cursor_; - if (yych == 'n') goto yy932; - goto yy11; -yy701: + if (yych == 'c') goto yy1018; + goto yy87; +yy782: yych = *++cursor_; - if (yych == '_') goto yy933; - goto yy11; -yy702: + if (yych == 'n') goto yy1019; + goto yy87; +yy783: yych = *++cursor_; - if (yych == 'l') goto yy934; - if (yych == 'r') goto yy936; - goto yy11; -yy703: + if (yych == '_') goto yy1020; + goto yy87; +yy784: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1021; + if (yych == 'r') goto yy1023; + goto yy87; +yy785: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 357 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Shl); } -#line 4324 "src/prebuilt/wast-lexer-gen.cc" -yy705: - yych = *++cursor_; - if (yych == '_') goto yy938; - goto yy11; -yy706: +#line 5006 "src/prebuilt/wast-lexer-gen.cc" +yy787: yych = *++cursor_; - if (yych == 'r') goto yy939; - goto yy11; -yy707: + if (yych == '_') goto yy1025; + goto yy87; +yy788: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1026; + goto yy87; +yy789: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 339 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Sub); } -#line 4340 "src/prebuilt/wast-lexer-gen.cc" -yy709: - yych = *++cursor_; - if (yych == 'n') goto yy940; - goto yy11; -yy710: +#line 5022 "src/prebuilt/wast-lexer-gen.cc" +yy791: yych = *++cursor_; - if (yych == 'p') goto yy941; - goto yy11; -yy711: + if (yych == 'n') goto yy1027; + goto yy87; +yy792: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'p') goto yy1028; + goto yy87; +yy793: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 355 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Xor); } -#line 4356 "src/prebuilt/wast-lexer-gen.cc" -yy713: +#line 5038 "src/prebuilt/wast-lexer-gen.cc" +yy795: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy942; - goto yy11; + if (yych == 'd') goto yy1029; + goto yy87; } else { - if (yych <= 'l') goto yy943; - if (yych == 'n') goto yy944; - goto yy11; + if (yych <= 'l') goto yy1030; + if (yych == 'n') goto yy1031; + goto yy87; } -yy714: +yy796: yych = *++cursor_; - if (yych == 'q') goto yy945; - if (yych == 'x') goto yy947; - goto yy11; -yy715: + if (yych == 'q') goto yy1032; + if (yych == 'x') goto yy1034; + goto yy87; +yy797: yych = *++cursor_; - if (yych == 'e') goto yy948; - if (yych == 't') goto yy949; - goto yy11; -yy716: + if (yych == 'e') goto yy1035; + if (yych == 't') goto yy1036; + goto yy87; +yy798: yych = *++cursor_; - if (yych == 'e') goto yy950; - if (yych == 't') goto yy951; - goto yy11; -yy717: + if (yych == 'e') goto yy1037; + if (yych == 't') goto yy1038; + goto yy87; +yy799: yych = *++cursor_; - if (yych == 'u') goto yy952; - goto yy11; -yy718: + if (yych == 'u') goto yy1039; + goto yy87; +yy800: yych = *++cursor_; - if (yych == 'e') goto yy953; - goto yy11; -yy719: + if (yych == 'e') goto yy1040; + goto yy87; +yy801: yych = *++cursor_; - if (yych == 'e') goto yy955; - goto yy11; -yy720: + if (yych == 'e') goto yy1042; + goto yy87; +yy802: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy956; - goto yy11; + if (yych == 'h') goto yy1043; + goto yy87; } else { - if (yych <= 'p') goto yy957; - if (yych == 'u') goto yy958; - goto yy11; + if (yych <= 'p') goto yy1044; + if (yych == 'u') goto yy1045; + goto yy87; } -yy721: - yych = *++cursor_; - if (yych == 'r') goto yy959; - goto yy11; -yy722: +yy803: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1046; + goto yy87; +yy804: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 338 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Add); } -#line 4415 "src/prebuilt/wast-lexer-gen.cc" -yy724: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5097 "src/prebuilt/wast-lexer-gen.cc" +yy806: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 352 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64And); } -#line 4423 "src/prebuilt/wast-lexer-gen.cc" -yy726: - yych = *++cursor_; - if (yych == 'm') goto yy960; - goto yy11; -yy727: +#line 5105 "src/prebuilt/wast-lexer-gen.cc" +yy808: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'm') goto yy1047; + goto yy87; +yy809: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 313 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Clz); } -#line 4435 "src/prebuilt/wast-lexer-gen.cc" -yy729: - yych = *++cursor_; - if (yych == 's') goto yy961; - goto yy11; -yy730: +#line 5117 "src/prebuilt/wast-lexer-gen.cc" +yy811: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1048; + goto yy87; +yy812: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 315 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Ctz); } -#line 4447 "src/prebuilt/wast-lexer-gen.cc" -yy732: - yych = *++cursor_; - if (yych == '_') goto yy962; - goto yy11; -yy733: +#line 5129 "src/prebuilt/wast-lexer-gen.cc" +yy814: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy1049; + goto yy87; +yy815: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 311 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64Eqz); } -#line 4459 "src/prebuilt/wast-lexer-gen.cc" -yy735: - yych = *++cursor_; - if (yych == 'e') goto yy963; - goto yy11; -yy736: +#line 5141 "src/prebuilt/wast-lexer-gen.cc" +yy817: yych = *++cursor_; - if (yych == 's') goto yy964; - if (yych == 'u') goto yy966; - goto yy11; -yy737: + if (yych == 'e') goto yy1050; + goto yy87; +yy818: yych = *++cursor_; - if (yych == 's') goto yy968; - if (yych == 'u') goto yy970; - goto yy11; -yy738: + if (yych == 's') goto yy1051; + if (yych == 'u') goto yy1053; + goto yy87; +yy819: yych = *++cursor_; - if (yych == 's') goto yy972; - if (yych == 'u') goto yy974; - goto yy11; -yy739: + if (yych == 's') goto yy1055; + if (yych == 'u') goto yy1057; + goto yy87; +yy820: yych = *++cursor_; - if (yych == 'd') goto yy976; - goto yy11; -yy740: + if (yych == 's') goto yy1059; + if (yych == 'u') goto yy1061; + goto yy87; +yy821: yych = *++cursor_; - if (yych == 's') goto yy978; - if (yych == 'u') goto yy980; - goto yy11; -yy741: + if (yych == 'd') goto yy1063; + goto yy87; +yy822: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1065; + if (yych == 'u') goto yy1067; + goto yy87; +yy823: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 342 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Mul); } -#line 4495 "src/prebuilt/wast-lexer-gen.cc" -yy743: - yych = *++cursor_; - if (yych == 'c') goto yy982; - goto yy11; -yy744: +#line 5177 "src/prebuilt/wast-lexer-gen.cc" +yy825: yych = *++cursor_; - if (yych == 'n') goto yy983; - goto yy11; -yy745: + if (yych == 'c') goto yy1069; + goto yy87; +yy826: yych = *++cursor_; - if (yych == '_') goto yy984; - goto yy11; -yy746: + if (yych == 'n') goto yy1070; + goto yy87; +yy827: yych = *++cursor_; - if (yych == 'l') goto yy985; - if (yych == 'r') goto yy987; - goto yy11; -yy747: + if (yych == '_') goto yy1071; + goto yy87; +yy828: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1072; + if (yych == 'r') goto yy1074; + goto yy87; +yy829: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 358 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Shl); } -#line 4520 "src/prebuilt/wast-lexer-gen.cc" -yy749: - yych = *++cursor_; - if (yych == '_') goto yy989; - goto yy11; -yy750: +#line 5202 "src/prebuilt/wast-lexer-gen.cc" +yy831: yych = *++cursor_; - if (yych == 'r') goto yy990; - goto yy11; -yy751: + if (yych == '_') goto yy1076; + goto yy87; +yy832: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1077; + goto yy87; +yy833: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 340 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Sub); } -#line 4536 "src/prebuilt/wast-lexer-gen.cc" -yy753: - yych = *++cursor_; - if (yych == 'n') goto yy991; - goto yy11; -yy754: +#line 5218 "src/prebuilt/wast-lexer-gen.cc" +yy835: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'n') goto yy1078; + goto yy87; +yy836: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 356 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Xor); } -#line 4548 "src/prebuilt/wast-lexer-gen.cc" -yy756: +#line 5230 "src/prebuilt/wast-lexer-gen.cc" +yy838: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy992; - goto yy11; + if (yych == 'd') goto yy1079; + goto yy87; } else { - if (yych <= 'l') goto yy993; - if (yych == 'n') goto yy994; - goto yy11; + if (yych <= 'l') goto yy1080; + if (yych == 'n') goto yy1081; + goto yy87; } -yy757: +yy839: yych = *++cursor_; - if (yych == 'x') goto yy995; - goto yy11; -yy758: + if (yych == 'x') goto yy1082; + goto yy87; +yy840: yych = *++cursor_; - if (yych == 'e') goto yy996; - goto yy11; -yy759: + if (yych == 'e') goto yy1083; + goto yy87; +yy841: yych = *++cursor_; - if (yych == 'e') goto yy997; - goto yy11; -yy760: + if (yych == 'e') goto yy1084; + goto yy87; +yy842: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy998; - goto yy11; + if (yych == 'h') goto yy1085; + goto yy87; } else { - if (yych <= 'p') goto yy999; - if (yych == 'u') goto yy1000; - goto yy11; + if (yych <= 'p') goto yy1086; + if (yych == 'u') goto yy1087; + goto yy87; } -yy761: +yy843: yych = *++cursor_; - if (yych == 'r') goto yy1001; - goto yy11; -yy762: + if (yych == 'r') goto yy1088; + goto yy87; +yy844: yych = *++cursor_; if (yych <= 'k') { - if (yych == 'd') goto yy1002; - goto yy11; + if (yych == 'd') goto yy1089; + goto yy87; } else { - if (yych <= 'l') goto yy1003; - if (yych == 'n') goto yy1004; - goto yy11; + if (yych <= 'l') goto yy1090; + if (yych == 'n') goto yy1091; + goto yy87; } -yy763: +yy845: yych = *++cursor_; - if (yych == 'q') goto yy1005; - if (yych == 'x') goto yy1007; - goto yy11; -yy764: + if (yych == 'q') goto yy1092; + if (yych == 'x') goto yy1094; + goto yy87; +yy846: yych = *++cursor_; - if (yych == 'e') goto yy1008; - if (yych == 't') goto yy1009; - goto yy11; -yy765: + if (yych == 'e') goto yy1095; + if (yych == 't') goto yy1096; + goto yy87; +yy847: yych = *++cursor_; - if (yych == 'e') goto yy1010; - if (yych == 't') goto yy1011; - goto yy11; -yy766: + if (yych == 'e') goto yy1097; + if (yych == 't') goto yy1098; + goto yy87; +yy848: yych = *++cursor_; - if (yych == 'u') goto yy1012; - goto yy11; -yy767: + if (yych == 'u') goto yy1099; + goto yy87; +yy849: yych = *++cursor_; - if (yych == 'e') goto yy1013; - goto yy11; -yy768: + if (yych == 'e') goto yy1100; + goto yy87; +yy850: yych = *++cursor_; - if (yych == 'e') goto yy1015; - goto yy11; -yy769: + if (yych == 'e') goto yy1102; + goto yy87; +yy851: yych = *++cursor_; if (yych <= 'o') { - if (yych == 'h') goto yy1016; - goto yy11; + if (yych == 'h') goto yy1103; + goto yy87; } else { - if (yych <= 'p') goto yy1017; - if (yych == 'u') goto yy1018; - goto yy11; + if (yych <= 'p') goto yy1104; + if (yych == 'u') goto yy1105; + goto yy87; } -yy770: +yy852: yych = *++cursor_; - if (yych == 'p') goto yy1019; - goto yy11; -yy771: + if (yych == 'p') goto yy1106; + goto yy87; +yy853: + yych = *++cursor_; + if (yych == 'e') goto yy1107; + goto yy87; +yy854: + yych = *++cursor_; + if (yych == 'e') goto yy1108; + goto yy87; +yy855: + yych = *++cursor_; + if (yych == 'e') goto yy1109; + goto yy87; +yy856: yych = *++cursor_; 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: + case 'c': goto yy1110; + case 'd': goto yy1111; + case 'f': goto yy1112; + case 'g': goto yy1113; + case 'i': goto yy1114; + case 's': goto yy1115; + default: goto yy87; + } +yy857: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy191; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy267; + goto yy86; } else { - if (yych <= ')') goto yy191; - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy772; - goto yy10; + if (yych <= ')') goto yy267; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy857; + goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy191; - if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy772; - goto yy10; + if (yych <= ';') goto yy267; + if (yych <= '@') goto yy86; + if (yych <= 'F') goto yy857; + goto yy86; } else { if (yych <= '`') { - if (yych <= '_') goto yy554; - goto yy10; + if (yych <= '_') goto yy633; + goto yy86; } else { - if (yych <= 'f') goto yy772; - if (yych <= '~') goto yy10; - goto yy191; + if (yych <= 'f') goto yy857; + if (yych <= '~') goto yy86; + goto yy267; } } } -yy774: - yych = *++cursor_; - if (yych <= '/') goto yy11; - if (yych <= '0') goto yy1026; - if (yych <= '9') goto yy1028; - goto yy11; -yy775: +yy859: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych <= '/') goto yy87; + if (yych <= '0') goto yy1116; + if (yych <= '9') goto yy1118; + goto yy87; +yy860: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 687 "src/wast-lexer.cc" +#line 728 "src/wast-lexer.cc" { RETURN(Passive); } -#line 4692 "src/prebuilt/wast-lexer-gen.cc" -yy777: - yych = *++cursor_; - if (yych == 'r') goto yy1030; - goto yy11; -yy778: +#line 5386 "src/prebuilt/wast-lexer-gen.cc" +yy862: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1120; + goto yy87; +yy863: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 702 "src/wast-lexer.cc" +#line 743 "src/wast-lexer.cc" { RETURN_OPCODE0(Rethrow); } -#line 4704 "src/prebuilt/wast-lexer-gen.cc" -yy780: - yych = *++cursor_; - if (yych == 'c') goto yy1032; - goto yy11; -yy781: +#line 5398 "src/prebuilt/wast-lexer-gen.cc" +yy865: yych = *++cursor_; - if (yych == 'b') goto yy1033; - goto yy11; -yy782: + if (yych == 'c') goto yy1122; + goto yy87; +yy866: yych = *++cursor_; - if (yych == 'a') goto yy1034; - goto yy11; -yy783: + if (yych == 'b') goto yy1123; + goto yy87; +yy867: yych = *++cursor_; - if (yych == 'o') goto yy1035; - goto yy11; -yy784: + if (yych == 'a') goto yy1124; + goto yy87; +yy868: yych = *++cursor_; - if (yych == 'r') goto yy1036; - goto yy11; -yy785: + if (yych == 'o') goto yy1125; + goto yy87; +yy869: yych = *++cursor_; - if (yych == 'n') goto yy1037; - goto yy11; -yy786: + if (yych == 'r') goto yy1126; + goto yy87; +yy870: yych = *++cursor_; - if (yych == 'a') goto yy1038; - goto yy11; -yy787: + if (yych == 'n') goto yy1127; + goto yy87; +yy871: yych = *++cursor_; - if (yych == 'a') goto yy1039; - goto yy11; -yy788: + if (yych == 'a') goto yy1128; + goto yy87; +yy872: yych = *++cursor_; - if (yych == 'd') goto yy1040; - goto yy11; -yy789: + if (yych == 'a') goto yy1129; + goto yy87; +yy873: yych = *++cursor_; - if (yych == 't') goto yy1042; - goto yy11; -yy790: + if (yych == 'd') goto yy1130; + goto yy87; +yy874: yych = *++cursor_; - if (yych == 'n') goto yy1043; - goto yy11; -yy791: + if (yych == 't') goto yy1132; + goto yy87; +yy875: yych = *++cursor_; - if (yych == 'a') goto yy1044; - goto yy11; -yy792: + if (yych == 'n') goto yy1133; + goto yy87; +yy876: yych = *++cursor_; - if (yych == 't') goto yy1045; - goto yy11; -yy793: + if (yych == 'a') goto yy1134; + goto yy87; +yy877: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1135; + goto yy87; +yy878: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 586 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, V128Or); } -#line 4764 "src/prebuilt/wast-lexer-gen.cc" -yy795: +#line 5458 "src/prebuilt/wast-lexer-gen.cc" +yy880: yych = *++cursor_; - if (yych == 'o') goto yy1047; - goto yy11; -yy796: + if (yych == 'o') goto yy1137; + goto yy87; +yy881: yych = *++cursor_; - if (yych == 'r') goto yy1048; - goto yy11; -yy797: + if (yych == 'r') goto yy1138; + goto yy87; +yy882: yych = *++cursor_; - if (yych == 'h') goto yy1050; - goto yy11; -yy798: + if (yych == 'h') goto yy1140; + goto yy87; +yy883: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy12; - goto yy10; + if (yych <= ' ') goto yy88; + goto yy86; } else { - if (yych <= '"') goto yy12; - if (yych <= '\'') goto yy10; - goto yy12; + if (yych <= '"') goto yy88; + if (yych <= '\'') goto yy86; + goto yy88; } } else { if (yych <= ':') { - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy584; - goto yy10; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy663; + goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy799: +yy884: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy12; + if (yych == '!') goto yy86; + goto yy88; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy12; - if (yych <= '/') goto yy10; - goto yy1051; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy88; + if (yych <= '/') goto yy86; + goto yy1141; } } else { if (yych <= 'F') { - if (yych == ';') goto yy12; - if (yych <= '@') goto yy10; - goto yy1051; + if (yych == ';') goto yy88; + if (yych <= '@') goto yy86; + goto yy1141; } else { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy1051; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy1141; + if (yych <= '~') goto yy86; + goto yy88; } } -yy800: - yych = *++cursor_; - if (yych == 'x') goto yy1053; - goto yy11; -yy801: +yy885: yych = *++cursor_; - if (yych == 'n') goto yy1054; - goto yy11; -yy802: + if (yych == 'x') goto yy1143; + goto yy87; +yy886: yych = *++cursor_; - if (yych == 'a') goto yy1055; - goto yy11; -yy803: + if (yych == 'n') goto yy1144; + goto yy87; +yy887: yych = *++cursor_; - if (yych == 'e') goto yy1056; - goto yy11; -yy804: + if (yych == 'a') goto yy1145; + goto yy87; +yy888: yych = *++cursor_; - if (yych == 'r') goto yy1057; - goto yy11; -yy805: + if (yych == 'e') goto yy1146; + goto yy87; +yy889: yych = *++cursor_; - if (yych == 'n') goto yy1058; - goto yy11; -yy806: + if (yych == 'r') goto yy1147; + goto yy87; +yy890: yych = *++cursor_; - if (yych == 'a') goto yy1059; - goto yy11; -yy807: + if (yych == 'n') goto yy1148; + goto yy87; +yy891: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'o') goto yy1149; + goto yy87; +yy892: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 270 "src/wast-lexer.cc" { RETURN_OPCODE0(BrTable); } -#line 4862 "src/prebuilt/wast-lexer-gen.cc" -yy809: - yych = *++cursor_; - if (yych == 'i') goto yy1060; - goto yy11; -yy810: +#line 5556 "src/prebuilt/wast-lexer-gen.cc" +yy894: yych = *++cursor_; - if (yych == 'm') goto yy1061; - goto yy11; -yy811: + if (yych == 'i') goto yy1150; + goto yy87; +yy895: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'm') goto yy1151; + goto yy87; +yy896: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 324 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Ceil); } -#line 4878 "src/prebuilt/wast-lexer-gen.cc" -yy813: - yych = *++cursor_; - if (yych == 't') goto yy1062; - goto yy11; -yy814: +#line 5572 "src/prebuilt/wast-lexer-gen.cc" +yy898: yych = *++cursor_; - if (yych == 'e') goto yy1064; - goto yy11; -yy815: + if (yych == 't') goto yy1152; + goto yy87; +yy899: yych = *++cursor_; - if (yych == 's') goto yy1065; - goto yy11; -yy816: + if (yych == 'e') goto yy1154; + goto yy87; +yy900: yych = *++cursor_; - if (yych == 't') goto yy1066; - goto yy11; -yy817: + if (yych == 's') goto yy1155; + goto yy87; +yy901: yych = *++cursor_; - if (yych == 'r') goto yy1067; - goto yy11; -yy818: + if (yych == 't') goto yy1156; + goto yy87; +yy902: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1157; + goto yy87; +yy903: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 283 "src/wast-lexer.cc" { RETURN_OPCODE(Load, F32Load); } -#line 4906 "src/prebuilt/wast-lexer-gen.cc" -yy820: - yych = *++cursor_; - if (yych == 'e') goto yy1069; - goto yy11; -yy821: +#line 5600 "src/prebuilt/wast-lexer-gen.cc" +yy905: yych = *++cursor_; - if (yych == 't') goto yy1070; - goto yy11; -yy822: + if (yych == 'e') goto yy1159; + goto yy87; +yy906: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1160; + goto yy87; +yy907: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 322 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Sqrt); } -#line 4922 "src/prebuilt/wast-lexer-gen.cc" -yy824: - yych = *++cursor_; - if (yych == 'e') goto yy1071; - goto yy11; -yy825: +#line 5616 "src/prebuilt/wast-lexer-gen.cc" +yy909: yych = *++cursor_; - if (yych == 'c') goto yy1073; - goto yy11; -yy826: + if (yych == 'e') goto yy1161; + goto yy87; +yy910: yych = *++cursor_; - if (yych == 's') goto yy1075; - goto yy11; -yy827: + if (yych == 'c') goto yy1163; + goto yy87; +yy911: yych = *++cursor_; - if (yych == 'd') goto yy1077; - goto yy11; -yy828: + if (yych == 's') goto yy1165; + goto yy87; +yy912: yych = *++cursor_; - if (yych == 'n') goto yy1079; - goto yy11; -yy829: + if (yych == 'd') goto yy1167; + goto yy87; +yy913: yych = *++cursor_; - if (yych == 'v') goto yy1080; - goto yy11; -yy830: + if (yych == 'n') goto yy1169; + goto yy87; +yy914: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy1170; + goto yy87; +yy915: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 601 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Eq); } -#line 4954 "src/prebuilt/wast-lexer-gen.cc" -yy832: - yych = *++cursor_; - if (yych == 't') goto yy1082; - goto yy11; -yy833: +#line 5648 "src/prebuilt/wast-lexer-gen.cc" +yy917: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1172; + goto yy87; +yy918: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 638 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Ge); } -#line 4966 "src/prebuilt/wast-lexer-gen.cc" -yy835: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5660 "src/prebuilt/wast-lexer-gen.cc" +yy920: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 630 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Gt); } -#line 4974 "src/prebuilt/wast-lexer-gen.cc" -yy837: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5668 "src/prebuilt/wast-lexer-gen.cc" +yy922: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 622 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Le); } -#line 4982 "src/prebuilt/wast-lexer-gen.cc" -yy839: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5676 "src/prebuilt/wast-lexer-gen.cc" +yy924: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 614 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Lt); } -#line 4990 "src/prebuilt/wast-lexer-gen.cc" -yy841: - yych = *++cursor_; - if (yych == 'x') goto yy1083; - goto yy11; -yy842: +#line 5684 "src/prebuilt/wast-lexer-gen.cc" +yy926: yych = *++cursor_; - if (yych == 'n') goto yy1085; - goto yy11; -yy843: + if (yych == 'x') goto yy1173; + goto yy87; +yy927: yych = *++cursor_; - if (yych == 'l') goto yy1087; - goto yy11; -yy844: + if (yych == 'n') goto yy1175; + goto yy87; +yy928: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'l') goto yy1177; + goto yy87; +yy929: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy845; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy930; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'f') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'g') goto yy1089; - if (yych <= '~') goto yy10; + if (yych <= 'g') goto yy1179; + if (yych <= '~') goto yy86; } } -yy845: +yy930: #line 606 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32X4Ne); } -#line 5023 "src/prebuilt/wast-lexer-gen.cc" -yy846: - yych = *++cursor_; - if (yych == 'p') goto yy1091; - goto yy11; -yy847: +#line 5717 "src/prebuilt/wast-lexer-gen.cc" +yy931: yych = *++cursor_; - if (yych == 'l') goto yy1092; - goto yy11; -yy848: + if (yych == 'p') goto yy1181; + goto yy87; +yy932: yych = *++cursor_; - if (yych == 'r') goto yy1093; - goto yy11; -yy849: + if (yych == 'l') goto yy1182; + goto yy87; +yy933: yych = *++cursor_; - if (yych == 'b') goto yy1094; - goto yy11; -yy850: + if (yych == 'r') goto yy1183; + goto yy87; +yy934: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'b') goto yy1184; + goto yy87; +yy935: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 325 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Ceil); } -#line 5047 "src/prebuilt/wast-lexer-gen.cc" -yy852: +#line 5741 "src/prebuilt/wast-lexer-gen.cc" +yy937: yych = *++cursor_; - if (yych == 't') goto yy1096; - goto yy11; -yy853: - yych = *++cursor_; - if (yych == 'e') goto yy1098; - goto yy11; -yy854: + if (yych == 't') goto yy1186; + goto yy87; +yy938: yych = *++cursor_; - if (yych == 's') goto yy1099; - goto yy11; -yy855: + if (yych == 'e') goto yy1188; + goto yy87; +yy939: yych = *++cursor_; - if (yych == 'r') goto yy1100; - goto yy11; -yy856: + if (yych == 's') goto yy1189; + goto yy87; +yy940: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1190; + goto yy87; +yy941: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 284 "src/wast-lexer.cc" { RETURN_OPCODE(Load, F64Load); } -#line 5071 "src/prebuilt/wast-lexer-gen.cc" -yy858: - yych = *++cursor_; - if (yych == 'e') goto yy1102; - goto yy11; -yy859: +#line 5765 "src/prebuilt/wast-lexer-gen.cc" +yy943: yych = *++cursor_; - if (yych == 'o') goto yy1103; - goto yy11; -yy860: + if (yych == 'e') goto yy1192; + goto yy87; +yy944: yych = *++cursor_; - if (yych == 't') goto yy1104; - goto yy11; -yy861: + if (yych == 'o') goto yy1193; + goto yy87; +yy945: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1194; + goto yy87; +yy946: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 323 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Sqrt); } -#line 5091 "src/prebuilt/wast-lexer-gen.cc" -yy863: - yych = *++cursor_; - if (yych == 'e') goto yy1105; - goto yy11; -yy864: +#line 5785 "src/prebuilt/wast-lexer-gen.cc" +yy948: yych = *++cursor_; - if (yych == 'c') goto yy1107; - goto yy11; -yy865: + if (yych == 'e') goto yy1195; + goto yy87; +yy949: yych = *++cursor_; - if (yych == 's') goto yy1109; - goto yy11; -yy866: + if (yych == 'c') goto yy1197; + goto yy87; +yy950: yych = *++cursor_; - if (yych == 'd') goto yy1111; - goto yy11; -yy867: + if (yych == 's') goto yy1199; + goto yy87; +yy951: yych = *++cursor_; - if (yych == 'n') goto yy1113; - goto yy11; -yy868: + if (yych == 'd') goto yy1201; + goto yy87; +yy952: yych = *++cursor_; - if (yych == 'v') goto yy1114; - goto yy11; -yy869: + if (yych == 'n') goto yy1203; + goto yy87; +yy953: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy1204; + goto yy87; +yy954: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 602 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Eq); } -#line 5123 "src/prebuilt/wast-lexer-gen.cc" -yy871: - yych = *++cursor_; - if (yych == 't') goto yy1116; - goto yy11; -yy872: +#line 5817 "src/prebuilt/wast-lexer-gen.cc" +yy956: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1206; + goto yy87; +yy957: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 639 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Ge); } -#line 5135 "src/prebuilt/wast-lexer-gen.cc" -yy874: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5829 "src/prebuilt/wast-lexer-gen.cc" +yy959: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 631 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Gt); } -#line 5143 "src/prebuilt/wast-lexer-gen.cc" -yy876: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5837 "src/prebuilt/wast-lexer-gen.cc" +yy961: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 623 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Le); } -#line 5151 "src/prebuilt/wast-lexer-gen.cc" -yy878: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 5845 "src/prebuilt/wast-lexer-gen.cc" +yy963: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 615 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Lt); } -#line 5159 "src/prebuilt/wast-lexer-gen.cc" -yy880: +#line 5853 "src/prebuilt/wast-lexer-gen.cc" +yy965: yych = *++cursor_; - if (yych == 'x') goto yy1117; - goto yy11; -yy881: - yych = *++cursor_; - if (yych == 'n') goto yy1119; - goto yy11; -yy882: + if (yych == 'x') goto yy1207; + goto yy87; +yy966: yych = *++cursor_; - if (yych == 'l') goto yy1121; - goto yy11; -yy883: + if (yych == 'n') goto yy1209; + goto yy87; +yy967: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'l') goto yy1211; + goto yy87; +yy968: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy884; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy969; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'f') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'g') goto yy1123; - if (yych <= '~') goto yy10; + if (yych <= 'g') goto yy1213; + if (yych <= '~') goto yy86; } } -yy884: +yy969: #line 607 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64X2Ne); } -#line 5192 "src/prebuilt/wast-lexer-gen.cc" -yy885: +#line 5886 "src/prebuilt/wast-lexer-gen.cc" +yy970: yych = *++cursor_; - if (yych == 'p') goto yy1125; - goto yy11; -yy886: + if (yych == 'p') goto yy1215; + goto yy87; +yy971: yych = *++cursor_; - if (yych == 'l') goto yy1126; - goto yy11; -yy887: + if (yych == 'l') goto yy1216; + goto yy87; +yy972: yych = *++cursor_; - if (yych == 'r') goto yy1127; - goto yy11; -yy888: + if (yych == 'r') goto yy1217; + goto yy87; +yy973: yych = *++cursor_; - if (yych == 'b') goto yy1128; - goto yy11; -yy889: + if (yych == 'b') goto yy1218; + goto yy87; +yy974: yych = *++cursor_; - if (yych == 'a') goto yy1130; - goto yy11; -yy890: + if (yych == 'a') goto yy1220; + goto yy87; +yy975: yych = *++cursor_; - if (yych == 'l') goto yy1131; - goto yy11; -yy891: + if (yych == 'l') goto yy1221; + goto yy87; +yy976: yych = *++cursor_; - if (yych == 'o') goto yy1133; - goto yy11; -yy892: + if (yych == 'e') goto yy1223; + goto yy87; +yy977: yych = *++cursor_; - if (yych == 'd') goto yy1134; - goto yy11; -yy893: + if (yych == 'e') goto yy1224; + goto yy87; +yy978: yych = *++cursor_; - if (yych == 'l') goto yy1136; - goto yy11; -yy894: + if (yych == 'o') goto yy1225; + goto yy87; +yy979: yych = *++cursor_; - if (yych == 'y') goto yy1137; - goto yy11; -yy895: + if (yych == 'd') goto yy1226; + goto yy87; +yy980: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1228; + goto yy87; +yy981: + yych = *++cursor_; + if (yych == 'y') goto yy1229; + goto yy87; +yy982: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 599 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8Eq); } -#line 5240 "src/prebuilt/wast-lexer-gen.cc" -yy897: - yych = *++cursor_; - if (yych == 't') goto yy1138; - goto yy11; -yy898: +#line 5942 "src/prebuilt/wast-lexer-gen.cc" +yy984: yych = *++cursor_; - if (yych == '_') goto yy1139; - goto yy11; -yy899: + if (yych == 't') goto yy1230; + goto yy87; +yy985: yych = *++cursor_; - if (yych == '_') goto yy1140; - goto yy11; -yy900: + if (yych == '_') goto yy1231; + goto yy87; +yy986: yych = *++cursor_; - if (yych == '_') goto yy1141; - goto yy11; -yy901: + if (yych == '_') goto yy1232; + goto yy87; +yy987: yych = *++cursor_; - if (yych == '_') goto yy1142; - goto yy11; -yy902: + if (yych == '_') goto yy1233; + goto yy87; +yy988: yych = *++cursor_; - if (yych == 'l') goto yy1143; - goto yy11; -yy903: + if (yych == '_') goto yy1234; + goto yy87; +yy989: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'l') goto yy1235; + goto yy87; +yy990: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy904; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy991; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'f') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'g') goto yy1145; - if (yych <= '~') goto yy10; + if (yych <= 'g') goto yy1237; + if (yych <= '~') goto yy86; } } -yy904: +yy991: #line 604 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8Ne); } -#line 5285 "src/prebuilt/wast-lexer-gen.cc" -yy905: - yych = *++cursor_; - if (yych == 'p') goto yy1147; - goto yy11; -yy906: +#line 5987 "src/prebuilt/wast-lexer-gen.cc" +yy992: yych = *++cursor_; - if (yych == 'l') goto yy1148; - if (yych == 'r') goto yy1150; - goto yy11; -yy907: + if (yych == 'p') goto yy1239; + goto yy87; +yy993: yych = *++cursor_; - if (yych == 'l') goto yy1151; - goto yy11; -yy908: + if (yych == 'l') goto yy1240; + if (yych == 'r') goto yy1242; + goto yy87; +yy994: yych = *++cursor_; - if (yych == 'b') goto yy1152; - goto yy11; -yy909: + if (yych == 'l') goto yy1243; + goto yy87; +yy995: yych = *++cursor_; - if (yych == 'i') goto yy1154; - goto yy11; -yy910: + if (yych == 'b') goto yy1244; + goto yy87; +yy996: yych = *++cursor_; - if (yych == 't') goto yy1155; - goto yy11; -yy911: + if (yych == 'i') goto yy1246; + goto yy87; +yy997: yych = *++cursor_; - if (yych == 's') goto yy1157; - if (yych == 'u') goto yy1159; - goto yy11; -yy912: + if (yych == 't') goto yy1247; + goto yy87; +yy998: yych = *++cursor_; - if (yych == 'n') goto yy1161; - goto yy11; -yy913: + if (yych == 's') goto yy1249; + if (yych == 'u') goto yy1251; + goto yy87; +yy999: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'n') goto yy1253; + goto yy87; +yy1000: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 397 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GeS); } -#line 5327 "src/prebuilt/wast-lexer-gen.cc" -yy915: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6029 "src/prebuilt/wast-lexer-gen.cc" +yy1002: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 399 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GeU); } -#line 5335 "src/prebuilt/wast-lexer-gen.cc" -yy917: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6037 "src/prebuilt/wast-lexer-gen.cc" +yy1004: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 393 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GtS); } -#line 5343 "src/prebuilt/wast-lexer-gen.cc" -yy919: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6045 "src/prebuilt/wast-lexer-gen.cc" +yy1006: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 395 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GtU); } -#line 5351 "src/prebuilt/wast-lexer-gen.cc" -yy921: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6053 "src/prebuilt/wast-lexer-gen.cc" +yy1008: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 389 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LeS); } -#line 5359 "src/prebuilt/wast-lexer-gen.cc" -yy923: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6061 "src/prebuilt/wast-lexer-gen.cc" +yy1010: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 391 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LeU); } -#line 5367 "src/prebuilt/wast-lexer-gen.cc" -yy925: - yych = *++cursor_; - if (yych <= '0') { +#line 6069 "src/prebuilt/wast-lexer-gen.cc" +yy1012: + ++cursor_; + if ((yych = *cursor_) <= '0') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= '8') { - if (yych <= '1') goto yy1162; - if (yych <= '7') goto yy10; - goto yy1163; + if (yych <= '1') goto yy1254; + if (yych <= '7') goto yy86; + goto yy1255; } else { - if (yych == ';') goto yy926; - if (yych <= '~') goto yy10; + if (yych == ';') goto yy1013; + if (yych <= '~') goto yy86; } } -yy926: +yy1013: #line 281 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load); } -#line 5390 "src/prebuilt/wast-lexer-gen.cc" -yy927: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6092 "src/prebuilt/wast-lexer-gen.cc" +yy1014: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 385 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LtS); } -#line 5398 "src/prebuilt/wast-lexer-gen.cc" -yy929: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6100 "src/prebuilt/wast-lexer-gen.cc" +yy1016: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 387 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LtU); } -#line 5406 "src/prebuilt/wast-lexer-gen.cc" -yy931: - yych = *++cursor_; - if (yych == 'n') goto yy1164; - goto yy11; -yy932: +#line 6108 "src/prebuilt/wast-lexer-gen.cc" +yy1018: yych = *++cursor_; - if (yych == 't') goto yy1165; - goto yy11; -yy933: + if (yych == 'n') goto yy1256; + goto yy87; +yy1019: yych = *++cursor_; - if (yych == 's') goto yy1166; - if (yych == 'u') goto yy1168; - goto yy11; -yy934: + if (yych == 't') goto yy1257; + goto yy87; +yy1020: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1258; + if (yych == 'u') goto yy1260; + goto yy87; +yy1021: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 363 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Rotl); } -#line 5427 "src/prebuilt/wast-lexer-gen.cc" -yy936: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6129 "src/prebuilt/wast-lexer-gen.cc" +yy1023: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 365 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Rotr); } -#line 5435 "src/prebuilt/wast-lexer-gen.cc" -yy938: +#line 6137 "src/prebuilt/wast-lexer-gen.cc" +yy1025: yych = *++cursor_; - if (yych == 's') goto yy1170; - if (yych == 'u') goto yy1172; - goto yy11; -yy939: + if (yych == 's') goto yy1262; + if (yych == 'u') goto yy1264; + goto yy87; +yy1026: yych = *++cursor_; - if (yych == 'e') goto yy1174; - goto yy11; -yy940: + if (yych == 'e') goto yy1266; + goto yy87; +yy1027: yych = *++cursor_; - if (yych == 'c') goto yy1176; - goto yy11; -yy941: + if (yych == 'c') goto yy1268; + goto yy87; +yy1028: yych = *++cursor_; - if (yych == '/') goto yy1177; - goto yy11; -yy942: + if (yych == '/') goto yy1269; + if (yych == '_') goto yy1270; + goto yy87; +yy1029: yych = *++cursor_; - if (yych == 'd') goto yy1178; - goto yy11; -yy943: + if (yych == 'd') goto yy1271; + goto yy87; +yy1030: yych = *++cursor_; - if (yych == 'l') goto yy1180; - goto yy11; -yy944: + if (yych == 'l') goto yy1273; + goto yy87; +yy1031: yych = *++cursor_; - if (yych == 'y') goto yy1181; - goto yy11; -yy945: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'y') goto yy1274; + goto yy87; +yy1032: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 600 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4Eq); } -#line 5472 "src/prebuilt/wast-lexer-gen.cc" -yy947: - yych = *++cursor_; - if (yych == 't') goto yy1182; - goto yy11; -yy948: +#line 6175 "src/prebuilt/wast-lexer-gen.cc" +yy1034: yych = *++cursor_; - if (yych == '_') goto yy1183; - goto yy11; -yy949: + if (yych == 't') goto yy1275; + goto yy87; +yy1035: yych = *++cursor_; - if (yych == '_') goto yy1184; - goto yy11; -yy950: + if (yych == '_') goto yy1276; + goto yy87; +yy1036: yych = *++cursor_; - if (yych == '_') goto yy1185; - goto yy11; -yy951: + if (yych == '_') goto yy1277; + goto yy87; +yy1037: yych = *++cursor_; - if (yych == '_') goto yy1186; - goto yy11; -yy952: + if (yych == '_') goto yy1278; + goto yy87; +yy1038: yych = *++cursor_; - if (yych == 'l') goto yy1187; - goto yy11; -yy953: + if (yych == '_') goto yy1279; + goto yy87; +yy1039: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'l') goto yy1280; + goto yy87; +yy1040: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy954; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1041; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'f') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'g') goto yy1189; - if (yych <= '~') goto yy10; + if (yych <= 'g') goto yy1282; + if (yych <= '~') goto yy86; } } -yy954: +yy1041: #line 605 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4Ne); } -#line 5517 "src/prebuilt/wast-lexer-gen.cc" -yy955: - yych = *++cursor_; - if (yych == 'p') goto yy1191; - goto yy11; -yy956: +#line 6220 "src/prebuilt/wast-lexer-gen.cc" +yy1042: yych = *++cursor_; - if (yych == 'l') goto yy1192; - if (yych == 'r') goto yy1194; - goto yy11; -yy957: + if (yych == 'p') goto yy1284; + goto yy87; +yy1043: yych = *++cursor_; - if (yych == 'l') goto yy1195; - goto yy11; -yy958: + if (yych == 'l') goto yy1285; + if (yych == 'r') goto yy1287; + goto yy87; +yy1044: yych = *++cursor_; - if (yych == 'b') goto yy1196; - goto yy11; -yy959: + if (yych == 'l') goto yy1288; + goto yy87; +yy1045: yych = *++cursor_; - if (yych == 'u') goto yy1198; - goto yy11; -yy960: + if (yych == 'b') goto yy1289; + goto yy87; +yy1046: yych = *++cursor_; - if (yych == 'i') goto yy1199; - goto yy11; -yy961: + if (yych == 'u') goto yy1291; + goto yy87; +yy1047: yych = *++cursor_; - if (yych == 't') goto yy1200; - goto yy11; -yy962: + if (yych == 'i') goto yy1292; + goto yy87; +yy1048: yych = *++cursor_; - if (yych == 's') goto yy1202; - if (yych == 'u') goto yy1204; - goto yy11; -yy963: + if (yych == 't') goto yy1293; + goto yy87; +yy1049: yych = *++cursor_; - if (yych == 'n') goto yy1206; - goto yy11; -yy964: + if (yych == 's') goto yy1295; + if (yych == 'u') goto yy1297; + goto yy87; +yy1050: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'n') goto yy1299; + goto yy87; +yy1051: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 398 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GeS); } -#line 5563 "src/prebuilt/wast-lexer-gen.cc" -yy966: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6266 "src/prebuilt/wast-lexer-gen.cc" +yy1053: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 400 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GeU); } -#line 5571 "src/prebuilt/wast-lexer-gen.cc" -yy968: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6274 "src/prebuilt/wast-lexer-gen.cc" +yy1055: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 394 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GtS); } -#line 5579 "src/prebuilt/wast-lexer-gen.cc" -yy970: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6282 "src/prebuilt/wast-lexer-gen.cc" +yy1057: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 396 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GtU); } -#line 5587 "src/prebuilt/wast-lexer-gen.cc" -yy972: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6290 "src/prebuilt/wast-lexer-gen.cc" +yy1059: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 390 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LeS); } -#line 5595 "src/prebuilt/wast-lexer-gen.cc" -yy974: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6298 "src/prebuilt/wast-lexer-gen.cc" +yy1061: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 392 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LeU); } -#line 5603 "src/prebuilt/wast-lexer-gen.cc" -yy976: - yych = *++cursor_; - if (yych <= '1') { +#line 6306 "src/prebuilt/wast-lexer-gen.cc" +yy1063: + ++cursor_; + if ((yych = *cursor_) <= '1') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy977; - if (yych <= '0') goto yy10; - goto yy1207; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy1064; + if (yych <= '0') goto yy86; + goto yy1300; } } else { if (yych <= '8') { - if (yych == '3') goto yy1208; - if (yych <= '7') goto yy10; - goto yy1209; + if (yych == '3') goto yy1301; + if (yych <= '7') goto yy86; + goto yy1302; } else { - if (yych == ';') goto yy977; - if (yych <= '~') goto yy10; + if (yych == ';') goto yy1064; + if (yych <= '~') goto yy86; } } -yy977: +yy1064: #line 282 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load); } -#line 5628 "src/prebuilt/wast-lexer-gen.cc" -yy978: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6331 "src/prebuilt/wast-lexer-gen.cc" +yy1065: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 386 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LtS); } -#line 5636 "src/prebuilt/wast-lexer-gen.cc" -yy980: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6339 "src/prebuilt/wast-lexer-gen.cc" +yy1067: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 388 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LtU); } -#line 5644 "src/prebuilt/wast-lexer-gen.cc" -yy982: - yych = *++cursor_; - if (yych == 'n') goto yy1210; - goto yy11; -yy983: +#line 6347 "src/prebuilt/wast-lexer-gen.cc" +yy1069: yych = *++cursor_; - if (yych == 't') goto yy1211; - goto yy11; -yy984: + if (yych == 'n') goto yy1303; + goto yy87; +yy1070: yych = *++cursor_; - if (yych == 's') goto yy1212; - if (yych == 'u') goto yy1214; - goto yy11; -yy985: + if (yych == 't') goto yy1304; + goto yy87; +yy1071: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1305; + if (yych == 'u') goto yy1307; + goto yy87; +yy1072: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 364 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Rotl); } -#line 5665 "src/prebuilt/wast-lexer-gen.cc" -yy987: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6368 "src/prebuilt/wast-lexer-gen.cc" +yy1074: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 366 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Rotr); } -#line 5673 "src/prebuilt/wast-lexer-gen.cc" -yy989: - yych = *++cursor_; - if (yych == 's') goto yy1216; - if (yych == 'u') goto yy1218; - goto yy11; -yy990: +#line 6376 "src/prebuilt/wast-lexer-gen.cc" +yy1076: yych = *++cursor_; - if (yych == 'e') goto yy1220; - goto yy11; -yy991: + if (yych == 's') goto yy1309; + if (yych == 'u') goto yy1311; + goto yy87; +yy1077: yych = *++cursor_; - if (yych == 'c') goto yy1222; - goto yy11; -yy992: + if (yych == 'e') goto yy1313; + goto yy87; +yy1078: yych = *++cursor_; - if (yych == 'd') goto yy1223; - goto yy11; -yy993: + if (yych == 'c') goto yy1315; + goto yy87; +yy1079: yych = *++cursor_; - if (yych == 'l') goto yy1225; - goto yy11; -yy994: + if (yych == 'd') goto yy1316; + goto yy87; +yy1080: yych = *++cursor_; - if (yych == 'y') goto yy1226; - goto yy11; -yy995: + if (yych == 'l') goto yy1318; + goto yy87; +yy1081: yych = *++cursor_; - if (yych == 't') goto yy1227; - goto yy11; -yy996: + if (yych == 'y') goto yy1319; + goto yy87; +yy1082: yych = *++cursor_; - if (yych == 'g') goto yy1228; - goto yy11; -yy997: + if (yych == 't') goto yy1320; + goto yy87; +yy1083: yych = *++cursor_; - if (yych == 'p') goto yy1230; - goto yy11; -yy998: + if (yych == 'g') goto yy1321; + goto yy87; +yy1084: yych = *++cursor_; - if (yych == 'l') goto yy1231; - if (yych == 'r') goto yy1233; - goto yy11; -yy999: + if (yych == 'p') goto yy1323; + goto yy87; +yy1085: yych = *++cursor_; - if (yych == 'l') goto yy1234; - goto yy11; -yy1000: + if (yych == 'l') goto yy1324; + if (yych == 'r') goto yy1326; + goto yy87; +yy1086: yych = *++cursor_; - if (yych == 'b') goto yy1235; - goto yy11; -yy1001: + if (yych == 'l') goto yy1327; + goto yy87; +yy1087: yych = *++cursor_; - if (yych == 'u') goto yy1237; - goto yy11; -yy1002: + if (yych == 'b') goto yy1328; + goto yy87; +yy1088: yych = *++cursor_; - if (yych == 'd') goto yy1238; - goto yy11; -yy1003: + if (yych == 'u') goto yy1330; + goto yy87; +yy1089: yych = *++cursor_; - if (yych == 'l') goto yy1240; - goto yy11; -yy1004: + if (yych == 'd') goto yy1331; + goto yy87; +yy1090: yych = *++cursor_; - if (yych == 'y') goto yy1241; - goto yy11; -yy1005: + if (yych == 'l') goto yy1333; + goto yy87; +yy1091: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'y') goto yy1334; + goto yy87; +yy1092: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 598 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16Eq); } -#line 5747 "src/prebuilt/wast-lexer-gen.cc" -yy1007: - yych = *++cursor_; - if (yych == 't') goto yy1242; - goto yy11; -yy1008: +#line 6450 "src/prebuilt/wast-lexer-gen.cc" +yy1094: yych = *++cursor_; - if (yych == '_') goto yy1243; - goto yy11; -yy1009: + if (yych == 't') goto yy1335; + goto yy87; +yy1095: yych = *++cursor_; - if (yych == '_') goto yy1244; - goto yy11; -yy1010: + if (yych == '_') goto yy1336; + goto yy87; +yy1096: yych = *++cursor_; - if (yych == '_') goto yy1245; - goto yy11; -yy1011: + if (yych == '_') goto yy1337; + goto yy87; +yy1097: yych = *++cursor_; - if (yych == '_') goto yy1246; - goto yy11; -yy1012: + if (yych == '_') goto yy1338; + goto yy87; +yy1098: yych = *++cursor_; - if (yych == 'l') goto yy1247; - goto yy11; -yy1013: + if (yych == '_') goto yy1339; + goto yy87; +yy1099: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'l') goto yy1340; + goto yy87; +yy1100: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1014; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1101; + if (yych <= '\'') goto yy86; } } else { if (yych <= 'f') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= 'g') goto yy1249; - if (yych <= '~') goto yy10; + if (yych <= 'g') goto yy1342; + if (yych <= '~') goto yy86; } } -yy1014: +yy1101: #line 603 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16Ne); } -#line 5792 "src/prebuilt/wast-lexer-gen.cc" -yy1015: +#line 6495 "src/prebuilt/wast-lexer-gen.cc" +yy1102: yych = *++cursor_; - if (yych == 'p') goto yy1251; - goto yy11; -yy1016: + if (yych == 'p') goto yy1344; + goto yy87; +yy1103: yych = *++cursor_; - if (yych == 'l') goto yy1252; - if (yych == 'r') goto yy1254; - goto yy11; -yy1017: + if (yych == 'l') goto yy1345; + if (yych == 'r') goto yy1347; + goto yy87; +yy1104: yych = *++cursor_; - if (yych == 'l') goto yy1255; - goto yy11; -yy1018: + if (yych == 'l') goto yy1348; + goto yy87; +yy1105: yych = *++cursor_; - if (yych == 'b') goto yy1256; - goto yy11; -yy1019: + if (yych == 'b') goto yy1349; + goto yy87; +yy1106: yych = *++cursor_; - if (yych == 't') goto yy1258; - goto yy11; -yy1020: + if (yych == 't') goto yy1351; + goto yy87; +yy1107: yych = *++cursor_; - if (yych == 'o') goto yy1260; - goto yy11; -yy1021: + if (yych == 't') goto yy1353; + goto yy87; +yy1108: yych = *++cursor_; - if (yych == 'r') goto yy1261; - goto yy11; -yy1022: + if (yych == 't') goto yy1355; + goto yy87; +yy1109: yych = *++cursor_; - if (yych == 'i') goto yy1262; - goto yy11; -yy1023: + if (yych == 'e') goto yy1357; + goto yy87; +yy1110: yych = *++cursor_; - if (yych == 'r') goto yy1263; - goto yy11; -yy1024: + if (yych == 'o') goto yy1359; + goto yy87; +yy1111: yych = *++cursor_; - if (yych == 'n') goto yy1264; - goto yy11; -yy1025: + if (yych == 'r') goto yy1360; + goto yy87; +yy1112: yych = *++cursor_; - if (yych == 'i') goto yy1265; - goto yy11; -yy1026: + if (yych == 'i') goto yy1361; + goto yy87; +yy1113: yych = *++cursor_; - if (yych == 'x') goto yy1267; - goto yy1029; -yy1027: + if (yych == 'r') goto yy1362; + goto yy87; +yy1114: + yych = *++cursor_; + if (yych == 'n') goto yy1363; + goto yy87; +yy1115: + yych = *++cursor_; + if (yych == 'i') goto yy1364; + goto yy87; +yy1116: + ++cursor_; + if ((yych = *cursor_) <= '9') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy1117; + if (yych <= '/') goto yy86; + goto yy1118; + } + } else { + if (yych <= '_') { + if (yych == ';') goto yy1117; + if (yych <= '^') goto yy86; + goto yy1365; + } else { + if (yych == 'x') goto yy1366; + if (yych <= '~') goto yy86; + } + } +yy1117: #line 304 "src/wast-lexer.cc" { RETURN_TEXT_AT(OffsetEqNat, 7); } -#line 5845 "src/prebuilt/wast-lexer-gen.cc" -yy1028: +#line 6577 "src/prebuilt/wast-lexer-gen.cc" +yy1118: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; -yy1029: if (yych <= '/') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy1027; + if (yych == '!') goto yy86; + goto yy1117; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1027; - goto yy10; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy1117; + goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy1028; - if (yych <= ':') goto yy10; - goto yy1027; + if (yych <= '9') goto yy1118; + if (yych <= ':') goto yy86; + goto yy1117; } else { - if (yych == '_') goto yy1266; - if (yych <= '~') goto yy10; - goto yy1027; + if (yych == '_') goto yy1365; + if (yych <= '~') goto yy86; + goto yy1117; } } -yy1030: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +yy1120: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 688 "src/wast-lexer.cc" +#line 729 "src/wast-lexer.cc" { RETURN(Register); } -#line 5878 "src/prebuilt/wast-lexer-gen.cc" -yy1032: - yych = *++cursor_; - if (yych == 'a') goto yy1268; - goto yy11; -yy1033: +#line 6609 "src/prebuilt/wast-lexer-gen.cc" +yy1122: yych = *++cursor_; - if (yych == 'a') goto yy1269; - goto yy11; -yy1034: + if (yych == 'a') goto yy1367; + goto yy87; +yy1123: yych = *++cursor_; - if (yych == 'l') goto yy1270; - goto yy11; -yy1035: + if (yych == 'a') goto yy1368; + goto yy87; +yy1124: yych = *++cursor_; - if (yych == 'p') goto yy1272; - goto yy11; -yy1036: + if (yych == 'l') goto yy1369; + goto yy87; +yy1125: yych = *++cursor_; - if (yych == 'o') goto yy1273; - goto yy11; -yy1037: + if (yych == 'p') goto yy1371; + goto yy87; +yy1126: yych = *++cursor_; - if (yych == 'i') goto yy1274; - goto yy11; -yy1038: + if (yych == 'o') goto yy1372; + goto yy87; +yy1127: yych = *++cursor_; - if (yych == 'l') goto yy1275; - goto yy11; -yy1039: + if (yych == 'i') goto yy1373; + goto yy87; +yy1128: yych = *++cursor_; - if (yych == 'b') goto yy1277; - goto yy11; -yy1040: + if (yych == 'l') goto yy1374; + goto yy87; +yy1129: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'b') goto yy1376; + goto yy87; +yy1130: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 585 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, V128And); } -#line 5918 "src/prebuilt/wast-lexer-gen.cc" -yy1042: - yych = *++cursor_; - if (yych == 's') goto yy1278; - goto yy11; -yy1043: +#line 6649 "src/prebuilt/wast-lexer-gen.cc" +yy1132: yych = *++cursor_; - if (yych == 's') goto yy1279; - goto yy11; -yy1044: + if (yych == 's') goto yy1377; + goto yy87; +yy1133: yych = *++cursor_; - if (yych == 'd') goto yy1280; - goto yy11; -yy1045: + if (yych == 's') goto yy1378; + goto yy87; +yy1134: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'd') goto yy1379; + goto yy87; +yy1135: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 588 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, V128Not); } -#line 5938 "src/prebuilt/wast-lexer-gen.cc" -yy1047: - yych = *++cursor_; - if (yych == 'r') goto yy1282; - goto yy11; -yy1048: +#line 6669 "src/prebuilt/wast-lexer-gen.cc" +yy1137: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1381; + goto yy87; +yy1138: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 587 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, V128Xor); } -#line 5950 "src/prebuilt/wast-lexer-gen.cc" -yy1050: +#line 6681 "src/prebuilt/wast-lexer-gen.cc" +yy1140: yych = *++cursor_; - if (yych == 'u') goto yy1283; - goto yy11; -yy1051: + if (yych == 'u') goto yy1382; + goto yy87; +yy1141: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy583; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy662; + goto yy86; } else { - if (yych <= ')') goto yy583; - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy1051; - goto yy10; + if (yych <= ')') goto yy662; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy1141; + goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy583; - if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy1051; - goto yy10; + if (yych <= ';') goto yy662; + if (yych <= '@') goto yy86; + if (yych <= 'F') goto yy1141; + goto yy86; } else { if (yych <= '`') { - if (yych <= '_') goto yy799; - goto yy10; + if (yych <= '_') goto yy884; + goto yy86; } else { - if (yych <= 'f') goto yy1051; - if (yych <= '~') goto yy10; - goto yy583; + if (yych <= 'f') goto yy1141; + if (yych <= '~') goto yy86; + goto yy662; } } } -yy1053: - yych = *++cursor_; - if (yych == 'h') goto yy1284; - goto yy11; -yy1054: +yy1143: yych = *++cursor_; - if (yych == 'v') goto yy1285; - goto yy11; -yy1055: + if (yych == 'h') goto yy1383; + goto yy87; +yy1144: yych = *++cursor_; - if (yych == 'l') goto yy1286; - goto yy11; -yy1056: + if (yych == 'v') goto yy1384; + goto yy87; +yy1145: yych = *++cursor_; - if (yych == 't') goto yy1287; - goto yy11; -yy1057: + if (yych == 'l') goto yy1385; + goto yy87; +yy1146: yych = *++cursor_; - if (yych == 'a') goto yy1288; - goto yy11; -yy1058: + if (yych == 't') goto yy1386; + goto yy87; +yy1147: yych = *++cursor_; - if (yych == 'l') goto yy1289; - goto yy11; -yy1059: + if (yych == 'a') goto yy1387; + goto yy87; +yy1148: yych = *++cursor_; - if (yych == 'k') goto yy1290; - goto yy11; -yy1060: + if (yych == 'l') goto yy1388; + goto yy87; +yy1149: yych = *++cursor_; - if (yych == 'r') goto yy1291; - goto yy11; -yy1061: + if (yych == 't') goto yy1389; + goto yy87; +yy1150: yych = *++cursor_; - if (yych == 'e') goto yy1292; - goto yy11; -yy1062: + if (yych == 'r') goto yy1390; + goto yy87; +yy1151: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy1391; + goto yy87; +yy1152: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 308 "src/wast-lexer.cc" { RETURN_OPCODE(Const, F32Const); } -#line 6030 "src/prebuilt/wast-lexer-gen.cc" -yy1064: - yych = *++cursor_; - if (yych == 'r') goto yy1293; - goto yy11; -yy1065: +#line 6761 "src/prebuilt/wast-lexer-gen.cc" +yy1154: yych = *++cursor_; - if (yych == 'i') goto yy1294; - goto yy11; -yy1066: + if (yych == 'r') goto yy1392; + goto yy87; +yy1155: yych = *++cursor_; - if (yych == 'e') goto yy1295; - goto yy11; -yy1067: + if (yych == 'i') goto yy1393; + goto yy87; +yy1156: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy1394; + goto yy87; +yy1157: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 326 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Floor); } -#line 6050 "src/prebuilt/wast-lexer-gen.cc" -yy1069: - yych = *++cursor_; - if (yych == 's') goto yy1296; - goto yy11; -yy1070: +#line 6781 "src/prebuilt/wast-lexer-gen.cc" +yy1159: yych = *++cursor_; - if (yych == 'e') goto yy1297; - goto yy11; -yy1071: + if (yych == 's') goto yy1395; + goto yy87; +yy1160: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy1396; + goto yy87; +yy1161: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 287 "src/wast-lexer.cc" { RETURN_OPCODE(Store, F32Store); } -#line 6066 "src/prebuilt/wast-lexer-gen.cc" -yy1073: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6797 "src/prebuilt/wast-lexer-gen.cc" +yy1163: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 328 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Trunc); } -#line 6074 "src/prebuilt/wast-lexer-gen.cc" -yy1075: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6805 "src/prebuilt/wast-lexer-gen.cc" +yy1165: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 642 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Abs); } -#line 6082 "src/prebuilt/wast-lexer-gen.cc" -yy1077: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6813 "src/prebuilt/wast-lexer-gen.cc" +yy1167: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 648 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Add); } -#line 6090 "src/prebuilt/wast-lexer-gen.cc" -yy1079: +#line 6821 "src/prebuilt/wast-lexer-gen.cc" +yy1169: yych = *++cursor_; - if (yych == 'v') goto yy1298; - goto yy11; -yy1080: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy1397; + goto yy87; +yy1170: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 652 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Div); } -#line 6102 "src/prebuilt/wast-lexer-gen.cc" -yy1082: - yych = *++cursor_; - if (yych == 'r') goto yy1299; - goto yy11; -yy1083: +#line 6833 "src/prebuilt/wast-lexer-gen.cc" +yy1172: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1398; + goto yy87; +yy1173: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 646 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Max); } -#line 6114 "src/prebuilt/wast-lexer-gen.cc" -yy1085: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6845 "src/prebuilt/wast-lexer-gen.cc" +yy1175: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 644 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Min); } -#line 6122 "src/prebuilt/wast-lexer-gen.cc" -yy1087: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6853 "src/prebuilt/wast-lexer-gen.cc" +yy1177: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 654 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Mul); } -#line 6130 "src/prebuilt/wast-lexer-gen.cc" -yy1089: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6861 "src/prebuilt/wast-lexer-gen.cc" +yy1179: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 640 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Neg); } -#line 6138 "src/prebuilt/wast-lexer-gen.cc" -yy1091: - yych = *++cursor_; - if (yych == 'l') goto yy1300; - goto yy11; -yy1092: +#line 6869 "src/prebuilt/wast-lexer-gen.cc" +yy1181: yych = *++cursor_; - if (yych == 'a') goto yy1301; - goto yy11; -yy1093: + if (yych == 'l') goto yy1399; + goto yy87; +yy1182: yych = *++cursor_; - if (yych == 't') goto yy1302; - goto yy11; -yy1094: + if (yych == 'a') goto yy1400; + goto yy87; +yy1183: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1401; + goto yy87; +yy1184: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 650 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32X4Sub); } -#line 6158 "src/prebuilt/wast-lexer-gen.cc" -yy1096: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6889 "src/prebuilt/wast-lexer-gen.cc" +yy1186: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 309 "src/wast-lexer.cc" { RETURN_OPCODE(Const, F64Const); } -#line 6166 "src/prebuilt/wast-lexer-gen.cc" -yy1098: - yych = *++cursor_; - if (yych == 'r') goto yy1304; - goto yy11; -yy1099: +#line 6897 "src/prebuilt/wast-lexer-gen.cc" +yy1188: yych = *++cursor_; - if (yych == 'i') goto yy1305; - goto yy11; -yy1100: + if (yych == 'r') goto yy1403; + goto yy87; +yy1189: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'i') goto yy1404; + goto yy87; +yy1190: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 327 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Floor); } -#line 6182 "src/prebuilt/wast-lexer-gen.cc" -yy1102: - yych = *++cursor_; - if (yych == 's') goto yy1306; - goto yy11; -yy1103: +#line 6913 "src/prebuilt/wast-lexer-gen.cc" +yy1192: yych = *++cursor_; - if (yych == 't') goto yy1307; - goto yy11; -yy1104: + if (yych == 's') goto yy1405; + goto yy87; +yy1193: yych = *++cursor_; - if (yych == 'e') goto yy1308; - goto yy11; -yy1105: + if (yych == 't') goto yy1406; + goto yy87; +yy1194: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy1407; + goto yy87; +yy1195: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 288 "src/wast-lexer.cc" { RETURN_OPCODE(Store, F64Store); } -#line 6202 "src/prebuilt/wast-lexer-gen.cc" -yy1107: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6933 "src/prebuilt/wast-lexer-gen.cc" +yy1197: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 329 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Trunc); } -#line 6210 "src/prebuilt/wast-lexer-gen.cc" -yy1109: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6941 "src/prebuilt/wast-lexer-gen.cc" +yy1199: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 643 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Abs); } -#line 6218 "src/prebuilt/wast-lexer-gen.cc" -yy1111: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6949 "src/prebuilt/wast-lexer-gen.cc" +yy1201: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 649 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Add); } -#line 6226 "src/prebuilt/wast-lexer-gen.cc" -yy1113: +#line 6957 "src/prebuilt/wast-lexer-gen.cc" +yy1203: yych = *++cursor_; - if (yych == 'v') goto yy1309; - goto yy11; -yy1114: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'v') goto yy1408; + goto yy87; +yy1204: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 653 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Div); } -#line 6238 "src/prebuilt/wast-lexer-gen.cc" -yy1116: - yych = *++cursor_; - if (yych == 'r') goto yy1310; - goto yy11; -yy1117: +#line 6969 "src/prebuilt/wast-lexer-gen.cc" +yy1206: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1409; + goto yy87; +yy1207: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 647 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Max); } -#line 6250 "src/prebuilt/wast-lexer-gen.cc" -yy1119: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6981 "src/prebuilt/wast-lexer-gen.cc" +yy1209: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 645 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Min); } -#line 6258 "src/prebuilt/wast-lexer-gen.cc" -yy1121: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6989 "src/prebuilt/wast-lexer-gen.cc" +yy1211: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 655 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Mul); } -#line 6266 "src/prebuilt/wast-lexer-gen.cc" -yy1123: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 6997 "src/prebuilt/wast-lexer-gen.cc" +yy1213: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 641 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Neg); } -#line 6274 "src/prebuilt/wast-lexer-gen.cc" -yy1125: - yych = *++cursor_; - if (yych == 'l') goto yy1311; - goto yy11; -yy1126: +#line 7005 "src/prebuilt/wast-lexer-gen.cc" +yy1215: yych = *++cursor_; - if (yych == 'a') goto yy1312; - goto yy11; -yy1127: + if (yych == 'l') goto yy1410; + goto yy87; +yy1216: yych = *++cursor_; - if (yych == 't') goto yy1313; - goto yy11; -yy1128: + if (yych == 'a') goto yy1411; + goto yy87; +yy1217: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1412; + goto yy87; +yy1218: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 651 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64X2Sub); } -#line 6294 "src/prebuilt/wast-lexer-gen.cc" -yy1130: - yych = *++cursor_; - if (yych == 'l') goto yy1315; - goto yy11; -yy1131: +#line 7025 "src/prebuilt/wast-lexer-gen.cc" +yy1220: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1414; + goto yy87; +yy1221: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 276 "src/wast-lexer.cc" - { RETURN_OPCODE0(GetLocal); } -#line 6306 "src/prebuilt/wast-lexer-gen.cc" -yy1133: +#line 671 "src/wast-lexer.cc" + { RETURN_OPCODE0(LocalGet); } +#line 7037 "src/prebuilt/wast-lexer-gen.cc" +yy1223: yych = *++cursor_; - if (yych == 'r') goto yy1317; - goto yy11; -yy1134: + if (yych == 't') goto yy1416; + goto yy87; +yy1224: yych = *++cursor_; - if (yych <= ')') { + if (yych == 't') goto yy1418; + goto yy87; +yy1225: + yych = *++cursor_; + if (yych == 'r') goto yy1420; + goto yy87; +yy1226: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1135; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1227; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1318; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy1421; + if (yych <= '~') goto yy86; } } -yy1135: +yy1227: #line 551 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Add); } -#line 6331 "src/prebuilt/wast-lexer-gen.cc" -yy1136: - yych = *++cursor_; - if (yych == '_') goto yy1319; - goto yy11; -yy1137: +#line 7070 "src/prebuilt/wast-lexer-gen.cc" +yy1228: yych = *++cursor_; - if (yych == '_') goto yy1320; - goto yy11; -yy1138: + if (yych == '_') goto yy1422; + goto yy87; +yy1229: yych = *++cursor_; - if (yych == 'r') goto yy1321; - goto yy11; -yy1139: + if (yych == '_') goto yy1423; + goto yy87; +yy1230: yych = *++cursor_; - if (yych == 's') goto yy1322; - if (yych == 'u') goto yy1324; - goto yy11; -yy1140: + if (yych == 'r') goto yy1424; + goto yy87; +yy1231: yych = *++cursor_; - if (yych == 's') goto yy1326; - if (yych == 'u') goto yy1328; - goto yy11; -yy1141: + if (yych == 's') goto yy1425; + if (yych == 'u') goto yy1427; + goto yy87; +yy1232: yych = *++cursor_; - if (yych == 's') goto yy1330; - if (yych == 'u') goto yy1332; - goto yy11; -yy1142: + if (yych == 's') goto yy1429; + if (yych == 'u') goto yy1431; + goto yy87; +yy1233: yych = *++cursor_; - if (yych == 's') goto yy1334; - if (yych == 'u') goto yy1336; - goto yy11; -yy1143: + if (yych == 's') goto yy1433; + if (yych == 'u') goto yy1435; + goto yy87; +yy1234: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1437; + if (yych == 'u') goto yy1439; + goto yy87; +yy1235: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 559 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Mul); } -#line 6371 "src/prebuilt/wast-lexer-gen.cc" -yy1145: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7110 "src/prebuilt/wast-lexer-gen.cc" +yy1237: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 562 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I16X8Neg); } -#line 6379 "src/prebuilt/wast-lexer-gen.cc" -yy1147: - yych = *++cursor_; - if (yych == 'l') goto yy1338; - goto yy11; -yy1148: +#line 7118 "src/prebuilt/wast-lexer-gen.cc" +yy1239: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1441; + goto yy87; +yy1240: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 574 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Shl); } -#line 6391 "src/prebuilt/wast-lexer-gen.cc" -yy1150: - yych = *++cursor_; - if (yych == '_') goto yy1339; - goto yy11; -yy1151: +#line 7130 "src/prebuilt/wast-lexer-gen.cc" +yy1242: yych = *++cursor_; - if (yych == 'a') goto yy1340; - goto yy11; -yy1152: + if (yych == '_') goto yy1442; + goto yy87; +yy1243: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'a') goto yy1443; + goto yy87; +yy1244: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1153; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1245; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1341; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy1444; + if (yych <= '~') goto yy86; } } -yy1153: +yy1245: #line 555 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8Sub); } -#line 6420 "src/prebuilt/wast-lexer-gen.cc" -yy1154: - yych = *++cursor_; - if (yych == 'c') goto yy1342; - goto yy11; -yy1155: +#line 7159 "src/prebuilt/wast-lexer-gen.cc" +yy1246: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1445; + goto yy87; +yy1247: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 306 "src/wast-lexer.cc" { RETURN_OPCODE(Const, I32Const); } -#line 6432 "src/prebuilt/wast-lexer-gen.cc" -yy1157: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7171 "src/prebuilt/wast-lexer-gen.cc" +yy1249: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 343 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32DivS); } -#line 6440 "src/prebuilt/wast-lexer-gen.cc" -yy1159: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7179 "src/prebuilt/wast-lexer-gen.cc" +yy1251: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 345 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32DivU); } -#line 6448 "src/prebuilt/wast-lexer-gen.cc" -yy1161: - yych = *++cursor_; - if (yych == 'd') goto yy1343; - goto yy11; -yy1162: +#line 7187 "src/prebuilt/wast-lexer-gen.cc" +yy1253: yych = *++cursor_; - if (yych == '6') goto yy1344; - goto yy11; -yy1163: + if (yych == 'd') goto yy1446; + goto yy87; +yy1254: yych = *++cursor_; - if (yych == '_') goto yy1345; - goto yy11; -yy1164: + if (yych == '6') goto yy1447; + goto yy87; +yy1255: yych = *++cursor_; - if (yych == 't') goto yy1346; - goto yy11; -yy1165: + if (yych == '_') goto yy1448; + goto yy87; +yy1256: yych = *++cursor_; - if (yych == 'e') goto yy1348; - goto yy11; -yy1166: + if (yych == 't') goto yy1449; + goto yy87; +yy1257: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy1451; + goto yy87; +yy1258: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 347 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32RemS); } -#line 6476 "src/prebuilt/wast-lexer-gen.cc" -yy1168: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7215 "src/prebuilt/wast-lexer-gen.cc" +yy1260: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 349 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32RemU); } -#line 6484 "src/prebuilt/wast-lexer-gen.cc" -yy1170: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7223 "src/prebuilt/wast-lexer-gen.cc" +yy1262: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 359 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32ShrS); } -#line 6492 "src/prebuilt/wast-lexer-gen.cc" -yy1172: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7231 "src/prebuilt/wast-lexer-gen.cc" +yy1264: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 361 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32ShrU); } -#line 6500 "src/prebuilt/wast-lexer-gen.cc" -yy1174: - yych = *++cursor_; - if (yych <= '0') { +#line 7239 "src/prebuilt/wast-lexer-gen.cc" +yy1266: + ++cursor_; + if ((yych = *cursor_) <= '0') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; } } else { if (yych <= '8') { - if (yych <= '1') goto yy1349; - if (yych <= '7') goto yy10; - goto yy1350; + if (yych <= '1') goto yy1452; + if (yych <= '7') goto yy86; + goto yy1453; } else { - if (yych == ';') goto yy1175; - if (yych <= '~') goto yy10; + if (yych == ';') goto yy1267; + if (yych <= '~') goto yy86; } } -yy1175: +yy1267: #line 285 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store); } -#line 6523 "src/prebuilt/wast-lexer-gen.cc" -yy1176: +#line 7262 "src/prebuilt/wast-lexer-gen.cc" +yy1268: yych = *++cursor_; - if (yych == '_') goto yy1352; - goto yy11; -yy1177: + if (yych == '_') goto yy1455; + goto yy87; +yy1269: yych = *++cursor_; - if (yych == 'i') goto yy1353; - goto yy11; -yy1178: + if (yych == 'i') goto yy1456; + goto yy87; +yy1270: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'i') goto yy1457; + goto yy87; +yy1271: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 552 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Add); } -#line 6539 "src/prebuilt/wast-lexer-gen.cc" -yy1180: - yych = *++cursor_; - if (yych == '_') goto yy1354; - goto yy11; -yy1181: +#line 7282 "src/prebuilt/wast-lexer-gen.cc" +yy1273: yych = *++cursor_; - if (yych == '_') goto yy1355; - goto yy11; -yy1182: + if (yych == '_') goto yy1458; + goto yy87; +yy1274: yych = *++cursor_; - if (yych == 'r') goto yy1356; - goto yy11; -yy1183: + if (yych == '_') goto yy1459; + goto yy87; +yy1275: yych = *++cursor_; - if (yych == 's') goto yy1357; - if (yych == 'u') goto yy1359; - goto yy11; -yy1184: + if (yych == 'r') goto yy1460; + goto yy87; +yy1276: yych = *++cursor_; - if (yych == 's') goto yy1361; - if (yych == 'u') goto yy1363; - goto yy11; -yy1185: + if (yych == 's') goto yy1461; + if (yych == 'u') goto yy1463; + goto yy87; +yy1277: yych = *++cursor_; - if (yych == 's') goto yy1365; - if (yych == 'u') goto yy1367; - goto yy11; -yy1186: + if (yych == 's') goto yy1465; + if (yych == 'u') goto yy1467; + goto yy87; +yy1278: yych = *++cursor_; - if (yych == 's') goto yy1369; - if (yych == 'u') goto yy1371; - goto yy11; -yy1187: + if (yych == 's') goto yy1469; + if (yych == 'u') goto yy1471; + goto yy87; +yy1279: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1473; + if (yych == 'u') goto yy1475; + goto yy87; +yy1280: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 560 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Mul); } -#line 6579 "src/prebuilt/wast-lexer-gen.cc" -yy1189: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7322 "src/prebuilt/wast-lexer-gen.cc" +yy1282: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 563 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4Neg); } -#line 6587 "src/prebuilt/wast-lexer-gen.cc" -yy1191: - yych = *++cursor_; - if (yych == 'l') goto yy1373; - goto yy11; -yy1192: +#line 7330 "src/prebuilt/wast-lexer-gen.cc" +yy1284: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1477; + goto yy87; +yy1285: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 575 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Shl); } -#line 6599 "src/prebuilt/wast-lexer-gen.cc" -yy1194: - yych = *++cursor_; - if (yych == '_') goto yy1374; - goto yy11; -yy1195: +#line 7342 "src/prebuilt/wast-lexer-gen.cc" +yy1287: yych = *++cursor_; - if (yych == 'a') goto yy1375; - goto yy11; -yy1196: + if (yych == '_') goto yy1478; + goto yy87; +yy1288: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1479; + goto yy87; +yy1289: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 556 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4Sub); } -#line 6615 "src/prebuilt/wast-lexer-gen.cc" -yy1198: - yych = *++cursor_; - if (yych == 'n') goto yy1376; - goto yy11; -yy1199: +#line 7358 "src/prebuilt/wast-lexer-gen.cc" +yy1291: yych = *++cursor_; - if (yych == 'c') goto yy1377; - goto yy11; -yy1200: + if (yych == 'n') goto yy1480; + goto yy87; +yy1292: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1481; + goto yy87; +yy1293: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 307 "src/wast-lexer.cc" { RETURN_OPCODE(Const, I64Const); } -#line 6631 "src/prebuilt/wast-lexer-gen.cc" -yy1202: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7374 "src/prebuilt/wast-lexer-gen.cc" +yy1295: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 344 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64DivS); } -#line 6639 "src/prebuilt/wast-lexer-gen.cc" -yy1204: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7382 "src/prebuilt/wast-lexer-gen.cc" +yy1297: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 346 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64DivU); } -#line 6647 "src/prebuilt/wast-lexer-gen.cc" -yy1206: - yych = *++cursor_; - if (yych == 'd') goto yy1378; - goto yy11; -yy1207: +#line 7390 "src/prebuilt/wast-lexer-gen.cc" +yy1299: yych = *++cursor_; - if (yych == '6') goto yy1379; - goto yy11; -yy1208: + if (yych == 'd') goto yy1482; + goto yy87; +yy1300: yych = *++cursor_; - if (yych == '2') goto yy1380; - goto yy11; -yy1209: + if (yych == '6') goto yy1483; + goto yy87; +yy1301: yych = *++cursor_; - if (yych == '_') goto yy1381; - goto yy11; -yy1210: + if (yych == '2') goto yy1484; + goto yy87; +yy1302: yych = *++cursor_; - if (yych == 't') goto yy1382; - goto yy11; -yy1211: + if (yych == '_') goto yy1485; + goto yy87; +yy1303: yych = *++cursor_; - if (yych == 'e') goto yy1384; - goto yy11; -yy1212: + if (yych == 't') goto yy1486; + goto yy87; +yy1304: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy1488; + goto yy87; +yy1305: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 348 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64RemS); } -#line 6679 "src/prebuilt/wast-lexer-gen.cc" -yy1214: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7422 "src/prebuilt/wast-lexer-gen.cc" +yy1307: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 350 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64RemU); } -#line 6687 "src/prebuilt/wast-lexer-gen.cc" -yy1216: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7430 "src/prebuilt/wast-lexer-gen.cc" +yy1309: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 360 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64ShrS); } -#line 6695 "src/prebuilt/wast-lexer-gen.cc" -yy1218: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7438 "src/prebuilt/wast-lexer-gen.cc" +yy1311: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 362 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64ShrU); } -#line 6703 "src/prebuilt/wast-lexer-gen.cc" -yy1220: - yych = *++cursor_; - if (yych <= '1') { +#line 7446 "src/prebuilt/wast-lexer-gen.cc" +yy1313: + ++cursor_; + if ((yych = *cursor_) <= '1') { if (yych <= '"') { - if (yych == '!') goto yy10; + if (yych == '!') goto yy86; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1221; - if (yych <= '0') goto yy10; - goto yy1385; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy1314; + if (yych <= '0') goto yy86; + goto yy1489; } } else { if (yych <= '8') { - if (yych == '3') goto yy1386; - if (yych <= '7') goto yy10; - goto yy1387; + if (yych == '3') goto yy1490; + if (yych <= '7') goto yy86; + goto yy1491; } else { - if (yych == ';') goto yy1221; - if (yych <= '~') goto yy10; + if (yych == ';') goto yy1314; + if (yych <= '~') goto yy86; } } -yy1221: +yy1314: #line 286 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store); } -#line 6728 "src/prebuilt/wast-lexer-gen.cc" -yy1222: - yych = *++cursor_; - if (yych == '_') goto yy1389; - goto yy11; -yy1223: +#line 7471 "src/prebuilt/wast-lexer-gen.cc" +yy1315: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy1493; + goto yy87; +yy1316: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 553 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2Add); } -#line 6740 "src/prebuilt/wast-lexer-gen.cc" -yy1225: - yych = *++cursor_; - if (yych == '_') goto yy1390; - goto yy11; -yy1226: +#line 7483 "src/prebuilt/wast-lexer-gen.cc" +yy1318: yych = *++cursor_; - if (yych == '_') goto yy1391; - goto yy11; -yy1227: + if (yych == '_') goto yy1494; + goto yy87; +yy1319: yych = *++cursor_; - if (yych == 'r') goto yy1392; - goto yy11; -yy1228: + if (yych == '_') goto yy1495; + goto yy87; +yy1320: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1496; + goto yy87; +yy1321: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 564 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2Neg); } -#line 6760 "src/prebuilt/wast-lexer-gen.cc" -yy1230: +#line 7503 "src/prebuilt/wast-lexer-gen.cc" +yy1323: yych = *++cursor_; - if (yych == 'l') goto yy1393; - goto yy11; -yy1231: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1497; + goto yy87; +yy1324: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 576 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2Shl); } -#line 6772 "src/prebuilt/wast-lexer-gen.cc" -yy1233: +#line 7515 "src/prebuilt/wast-lexer-gen.cc" +yy1326: yych = *++cursor_; - if (yych == '_') goto yy1394; - goto yy11; -yy1234: + if (yych == '_') goto yy1498; + goto yy87; +yy1327: yych = *++cursor_; - if (yych == 'a') goto yy1395; - goto yy11; -yy1235: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1499; + goto yy87; +yy1328: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 557 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2Sub); } -#line 6788 "src/prebuilt/wast-lexer-gen.cc" -yy1237: - yych = *++cursor_; - if (yych == 'n') goto yy1396; - goto yy11; -yy1238: +#line 7531 "src/prebuilt/wast-lexer-gen.cc" +yy1330: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'n') goto yy1500; + goto yy87; +yy1331: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1239; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1332; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1397; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy1501; + if (yych <= '~') goto yy86; } } -yy1239: +yy1332: #line 550 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Add); } -#line 6813 "src/prebuilt/wast-lexer-gen.cc" -yy1240: +#line 7556 "src/prebuilt/wast-lexer-gen.cc" +yy1333: yych = *++cursor_; - if (yych == '_') goto yy1398; - goto yy11; -yy1241: + if (yych == '_') goto yy1502; + goto yy87; +yy1334: yych = *++cursor_; - if (yych == '_') goto yy1399; - goto yy11; -yy1242: + if (yych == '_') goto yy1503; + goto yy87; +yy1335: yych = *++cursor_; - if (yych == 'r') goto yy1400; - goto yy11; -yy1243: + if (yych == 'r') goto yy1504; + goto yy87; +yy1336: yych = *++cursor_; - if (yych == 's') goto yy1401; - if (yych == 'u') goto yy1403; - goto yy11; -yy1244: + if (yych == 's') goto yy1505; + if (yych == 'u') goto yy1507; + goto yy87; +yy1337: yych = *++cursor_; - if (yych == 's') goto yy1405; - if (yych == 'u') goto yy1407; - goto yy11; -yy1245: - yych = *++cursor_; - if (yych == 's') goto yy1409; - if (yych == 'u') goto yy1411; - goto yy11; -yy1246: + if (yych == 's') goto yy1509; + if (yych == 'u') goto yy1511; + goto yy87; +yy1338: yych = *++cursor_; - if (yych == 's') goto yy1413; - if (yych == 'u') goto yy1415; - goto yy11; -yy1247: + if (yych == 's') goto yy1513; + if (yych == 'u') goto yy1515; + goto yy87; +yy1339: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1517; + if (yych == 'u') goto yy1519; + goto yy87; +yy1340: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 558 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Mul); } -#line 6853 "src/prebuilt/wast-lexer-gen.cc" -yy1249: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7596 "src/prebuilt/wast-lexer-gen.cc" +yy1342: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 561 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I8X16Neg); } -#line 6861 "src/prebuilt/wast-lexer-gen.cc" -yy1251: - yych = *++cursor_; - if (yych == 'l') goto yy1417; - goto yy11; -yy1252: +#line 7604 "src/prebuilt/wast-lexer-gen.cc" +yy1344: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1521; + goto yy87; +yy1345: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 573 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Shl); } -#line 6873 "src/prebuilt/wast-lexer-gen.cc" -yy1254: - yych = *++cursor_; - if (yych == '_') goto yy1418; - goto yy11; -yy1255: +#line 7616 "src/prebuilt/wast-lexer-gen.cc" +yy1347: yych = *++cursor_; - if (yych == 'a') goto yy1419; - goto yy11; -yy1256: + if (yych == '_') goto yy1522; + goto yy87; +yy1348: yych = *++cursor_; - if (yych <= ')') { + if (yych == 'a') goto yy1523; + goto yy87; +yy1349: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1257; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1350; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1420; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy1524; + if (yych <= '~') goto yy86; } } -yy1257: +yy1350: #line 554 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16Sub); } -#line 6902 "src/prebuilt/wast-lexer-gen.cc" -yy1258: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7645 "src/prebuilt/wast-lexer-gen.cc" +yy1351: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 703 "src/wast-lexer.cc" +#line 744 "src/wast-lexer.cc" { RETURN_OPCODE0(IfExcept); } -#line 6910 "src/prebuilt/wast-lexer-gen.cc" -yy1260: +#line 7653 "src/prebuilt/wast-lexer-gen.cc" +yy1353: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 276 "src/wast-lexer.cc" + { RETURN_OPCODE0(LocalGet); } +#line 7661 "src/prebuilt/wast-lexer-gen.cc" +yy1355: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 277 "src/wast-lexer.cc" + { RETURN_OPCODE0(LocalSet); } +#line 7669 "src/prebuilt/wast-lexer-gen.cc" +yy1357: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 278 "src/wast-lexer.cc" + { RETURN_OPCODE0(LocalTee); } +#line 7677 "src/prebuilt/wast-lexer-gen.cc" +yy1359: yych = *++cursor_; - if (yych == 'p') goto yy1421; - goto yy11; -yy1261: + if (yych == 'p') goto yy1525; + goto yy87; +yy1360: yych = *++cursor_; - if (yych == 'o') goto yy1422; - goto yy11; -yy1262: + if (yych == 'o') goto yy1526; + goto yy87; +yy1361: yych = *++cursor_; - if (yych == 'l') goto yy1423; - goto yy11; -yy1263: + if (yych == 'l') goto yy1527; + goto yy87; +yy1362: yych = *++cursor_; - if (yych == 'o') goto yy1424; - goto yy11; -yy1264: + if (yych == 'o') goto yy1528; + goto yy87; +yy1363: yych = *++cursor_; - if (yych == 'i') goto yy1425; - goto yy11; -yy1265: + if (yych == 'i') goto yy1529; + goto yy87; +yy1364: yych = *++cursor_; - if (yych == 'z') goto yy1426; - goto yy11; -yy1266: + if (yych == 'z') goto yy1530; + goto yy87; +yy1365: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy12; - goto yy10; + if (yych <= ' ') goto yy88; + goto yy86; } else { - if (yych <= '"') goto yy12; - if (yych <= '\'') goto yy10; - goto yy12; + if (yych <= '"') goto yy88; + if (yych <= '\'') goto yy86; + goto yy88; } } else { if (yych <= ':') { - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy1028; - goto yy10; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy1118; + goto yy86; } else { - if (yych <= ';') goto yy12; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= ';') goto yy88; + if (yych <= '~') goto yy86; + goto yy88; } } -yy1267: +yy1366: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { - if (yych == '!') goto yy10; - goto yy12; + if (yych == '!') goto yy86; + goto yy88; } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy12; - if (yych <= '/') goto yy10; - goto yy1427; + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy88; + if (yych <= '/') goto yy86; + goto yy1531; } } else { if (yych <= 'F') { - if (yych == ';') goto yy12; - if (yych <= '@') goto yy10; - goto yy1427; + if (yych == ';') goto yy88; + if (yych <= '@') goto yy86; + goto yy1531; } else { - if (yych <= '`') goto yy10; - if (yych <= 'f') goto yy1427; - if (yych <= '~') goto yy10; - goto yy12; + if (yych <= '`') goto yy86; + if (yych <= 'f') goto yy1531; + if (yych <= '~') goto yy86; + goto yy88; } } -yy1268: - yych = *++cursor_; - if (yych == 'l') goto yy1429; - goto yy11; -yy1269: +yy1367: yych = *++cursor_; - if (yych == 'l') goto yy1430; - goto yy11; -yy1270: + if (yych == 'l') goto yy1533; + goto yy87; +yy1368: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1534; + goto yy87; +yy1369: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 277 "src/wast-lexer.cc" - { RETURN_OPCODE0(SetLocal); } -#line 7000 "src/prebuilt/wast-lexer-gen.cc" -yy1272: - yych = *++cursor_; - if (yych == 'y') goto yy1432; - goto yy11; -yy1273: +#line 672 "src/wast-lexer.cc" + { RETURN_OPCODE0(LocalSet); } +#line 7767 "src/prebuilt/wast-lexer-gen.cc" +yy1371: yych = *++cursor_; - if (yych == 'p') goto yy1434; - goto yy11; -yy1274: + if (yych == 'y') goto yy1536; + goto yy87; +yy1372: yych = *++cursor_; - if (yych == 't') goto yy1436; - goto yy11; -yy1275: + if (yych == 'p') goto yy1538; + goto yy87; +yy1373: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1540; + goto yy87; +yy1374: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 278 "src/wast-lexer.cc" - { RETURN_OPCODE0(TeeLocal); } -#line 7020 "src/prebuilt/wast-lexer-gen.cc" -yy1277: - yych = *++cursor_; - if (yych == 'l') goto yy1438; - goto yy11; -yy1278: +#line 673 "src/wast-lexer.cc" + { RETURN_OPCODE0(LocalTee); } +#line 7787 "src/prebuilt/wast-lexer-gen.cc" +yy1376: yych = *++cursor_; - if (yych == 'e') goto yy1439; - goto yy11; -yy1279: + if (yych == 'l') goto yy1542; + goto yy87; +yy1377: yych = *++cursor_; - if (yych == 't') goto yy1440; - goto yy11; -yy1280: + if (yych == 'e') goto yy1543; + goto yy87; +yy1378: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1544; + goto yy87; +yy1379: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 527 "src/wast-lexer.cc" { RETURN_OPCODE(Load, V128Load); } -#line 7040 "src/prebuilt/wast-lexer-gen.cc" -yy1282: - yych = *++cursor_; - if (yych == 'e') goto yy1442; - goto yy11; -yy1283: +#line 7807 "src/prebuilt/wast-lexer-gen.cc" +yy1381: yych = *++cursor_; - if (yych == 'f') goto yy1444; - goto yy11; -yy1284: + if (yych == 'e') goto yy1546; + goto yy87; +yy1382: yych = *++cursor_; - if (yych == 'a') goto yy1445; - goto yy11; -yy1285: + if (yych == 'f') goto yy1548; + goto yy87; +yy1383: yych = *++cursor_; - if (yych == 'a') goto yy1446; - goto yy11; -yy1286: + if (yych == 'a') goto yy1549; + goto yy87; +yy1384: yych = *++cursor_; - if (yych == 'f') goto yy1447; - goto yy11; -yy1287: + if (yych == 'a') goto yy1550; + goto yy87; +yy1385: yych = *++cursor_; - if (yych == 'u') goto yy1448; - goto yy11; -yy1288: + if (yych == 'f') goto yy1551; + goto yy87; +yy1386: yych = *++cursor_; - if (yych == 'p') goto yy1449; - goto yy11; -yy1289: + if (yych == 'u') goto yy1552; + goto yy87; +yy1387: yych = *++cursor_; - if (yych == 'i') goto yy1451; - goto yy11; -yy1290: + if (yych == 'p') goto yy1553; + goto yy87; +yy1388: yych = *++cursor_; - if (yych == 'e') goto yy1452; - goto yy11; -yy1291: + if (yych == 'i') goto yy1555; + goto yy87; +yy1389: yych = *++cursor_; - if (yych == 'e') goto yy1454; - goto yy11; -yy1292: + if (yych == 'i') goto yy1556; + goto yy87; +yy1390: yych = *++cursor_; - if (yych == 'm') goto yy1455; - goto yy11; -yy1293: + if (yych == 'e') goto yy1557; + goto yy87; +yy1391: yych = *++cursor_; - if (yych == 't') goto yy1456; - goto yy11; -yy1294: + if (yych == 'm') goto yy1558; + goto yy87; +yy1392: yych = *++cursor_; - if (yych == 'g') goto yy1457; - goto yy11; -yy1295: + if (yych == 't') goto yy1559; + goto yy87; +yy1393: yych = *++cursor_; - if (yych == '/') goto yy1458; - goto yy11; -yy1296: + if (yych == 'g') goto yy1560; + goto yy87; +yy1394: yych = *++cursor_; - if (yych == 't') goto yy1459; - goto yy11; -yy1297: + if (yych == '/') goto yy1561; + if (yych == '_') goto yy1562; + goto yy87; +yy1395: yych = *++cursor_; - if (yych == 'r') goto yy1461; - goto yy11; -yy1298: + if (yych == 't') goto yy1563; + goto yy87; +yy1396: yych = *++cursor_; - if (yych == 'e') goto yy1462; - goto yy11; -yy1299: + if (yych == 'r') goto yy1565; + goto yy87; +yy1397: yych = *++cursor_; - if (yych == 'a') goto yy1463; - goto yy11; -yy1300: + if (yych == 'e') goto yy1566; + goto yy87; +yy1398: yych = *++cursor_; - if (yych == 'a') goto yy1464; - goto yy11; -yy1301: + if (yych == 'a') goto yy1567; + goto yy87; +yy1399: yych = *++cursor_; - if (yych == 't') goto yy1465; - goto yy11; -yy1302: + if (yych == 'a') goto yy1568; + goto yy87; +yy1400: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1569; + goto yy87; +yy1401: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 656 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Sqrt); } -#line 7128 "src/prebuilt/wast-lexer-gen.cc" -yy1304: - yych = *++cursor_; - if (yych == 't') goto yy1467; - goto yy11; -yy1305: +#line 7896 "src/prebuilt/wast-lexer-gen.cc" +yy1403: yych = *++cursor_; - if (yych == 'g') goto yy1468; - goto yy11; -yy1306: + if (yych == 't') goto yy1571; + goto yy87; +yy1404: yych = *++cursor_; - if (yych == 't') goto yy1469; - goto yy11; -yy1307: + if (yych == 'g') goto yy1572; + goto yy87; +yy1405: yych = *++cursor_; - if (yych == 'e') goto yy1471; - goto yy11; -yy1308: + if (yych == 't') goto yy1573; + goto yy87; +yy1406: yych = *++cursor_; - if (yych == 'r') goto yy1472; - goto yy11; -yy1309: + if (yych == 'e') goto yy1575; + goto yy87; +yy1407: yych = *++cursor_; - if (yych == 'e') goto yy1473; - goto yy11; -yy1310: + if (yych == 'r') goto yy1576; + goto yy87; +yy1408: yych = *++cursor_; - if (yych == 'a') goto yy1474; - goto yy11; -yy1311: + if (yych == 'e') goto yy1577; + goto yy87; +yy1409: yych = *++cursor_; - if (yych == 'a') goto yy1475; - goto yy11; -yy1312: + if (yych == 'a') goto yy1578; + goto yy87; +yy1410: yych = *++cursor_; - if (yych == 't') goto yy1476; - goto yy11; -yy1313: + if (yych == 'a') goto yy1579; + goto yy87; +yy1411: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1580; + goto yy87; +yy1412: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 657 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Sqrt); } -#line 7172 "src/prebuilt/wast-lexer-gen.cc" -yy1315: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7940 "src/prebuilt/wast-lexer-gen.cc" +yy1414: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 674 "src/wast-lexer.cc" + { RETURN_OPCODE0(GlobalGet); } +#line 7948 "src/prebuilt/wast-lexer-gen.cc" +yy1416: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 279 "src/wast-lexer.cc" - { RETURN_OPCODE0(GetGlobal); } -#line 7180 "src/prebuilt/wast-lexer-gen.cc" -yy1317: - yych = *++cursor_; - if (yych == 'y') goto yy1478; - goto yy11; -yy1318: + { RETURN_OPCODE0(GlobalGet); } +#line 7956 "src/prebuilt/wast-lexer-gen.cc" +yy1418: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 280 "src/wast-lexer.cc" + { RETURN_OPCODE0(GlobalSet); } +#line 7964 "src/prebuilt/wast-lexer-gen.cc" +yy1420: yych = *++cursor_; - if (yych == 's') goto yy1480; - goto yy11; -yy1319: + if (yych == 'y') goto yy1582; + goto yy87; +yy1421: yych = *++cursor_; - if (yych == 't') goto yy1481; - goto yy11; -yy1320: + if (yych == 's') goto yy1584; + goto yy87; +yy1422: yych = *++cursor_; - if (yych == 't') goto yy1482; - goto yy11; -yy1321: + if (yych == 't') goto yy1585; + goto yy87; +yy1423: yych = *++cursor_; - if (yych == 'a') goto yy1483; - goto yy11; -yy1322: + if (yych == 't') goto yy1586; + goto yy87; +yy1424: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1587; + goto yy87; +yy1425: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 634 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GeS); } -#line 7208 "src/prebuilt/wast-lexer-gen.cc" -yy1324: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 7992 "src/prebuilt/wast-lexer-gen.cc" +yy1427: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 635 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GeU); } -#line 7216 "src/prebuilt/wast-lexer-gen.cc" -yy1326: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8000 "src/prebuilt/wast-lexer-gen.cc" +yy1429: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 626 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GtS); } -#line 7224 "src/prebuilt/wast-lexer-gen.cc" -yy1328: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8008 "src/prebuilt/wast-lexer-gen.cc" +yy1431: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 627 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8GtU); } -#line 7232 "src/prebuilt/wast-lexer-gen.cc" -yy1330: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8016 "src/prebuilt/wast-lexer-gen.cc" +yy1433: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 618 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LeS); } -#line 7240 "src/prebuilt/wast-lexer-gen.cc" -yy1332: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8024 "src/prebuilt/wast-lexer-gen.cc" +yy1435: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 619 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LeU); } -#line 7248 "src/prebuilt/wast-lexer-gen.cc" -yy1334: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8032 "src/prebuilt/wast-lexer-gen.cc" +yy1437: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 610 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LtS); } -#line 7256 "src/prebuilt/wast-lexer-gen.cc" -yy1336: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8040 "src/prebuilt/wast-lexer-gen.cc" +yy1439: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 611 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I16X8LtU); } -#line 7264 "src/prebuilt/wast-lexer-gen.cc" -yy1338: - yych = *++cursor_; - if (yych == 'a') goto yy1484; - goto yy11; -yy1339: +#line 8048 "src/prebuilt/wast-lexer-gen.cc" +yy1441: yych = *++cursor_; - if (yych == 's') goto yy1485; - if (yych == 'u') goto yy1487; - goto yy11; -yy1340: + if (yych == 'a') goto yy1588; + goto yy87; +yy1442: yych = *++cursor_; - if (yych == 't') goto yy1489; - goto yy11; -yy1341: + if (yych == 's') goto yy1589; + if (yych == 'u') goto yy1591; + goto yy87; +yy1443: yych = *++cursor_; - if (yych == 's') goto yy1491; - goto yy11; -yy1342: + if (yych == 't') goto yy1593; + goto yy87; +yy1444: yych = *++cursor_; - if (yych == '.') goto yy1492; - goto yy11; -yy1343: + if (yych == 's') goto yy1595; + goto yy87; +yy1445: yych = *++cursor_; - if (yych == '1') goto yy1493; - if (yych == '8') goto yy1494; - goto yy11; -yy1344: + if (yych == '.') goto yy1596; + goto yy87; +yy1446: yych = *++cursor_; - if (yych == '_') goto yy1495; - goto yy11; -yy1345: + if (yych == '1') goto yy1597; + if (yych == '8') goto yy1598; + goto yy87; +yy1447: yych = *++cursor_; - if (yych == 's') goto yy1496; - if (yych == 'u') goto yy1498; - goto yy11; -yy1346: + if (yych == '_') goto yy1599; + goto yy87; +yy1448: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1600; + if (yych == 'u') goto yy1602; + goto yy87; +yy1449: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 316 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Popcnt); } -#line 7307 "src/prebuilt/wast-lexer-gen.cc" -yy1348: - yych = *++cursor_; - if (yych == 'r') goto yy1500; - goto yy11; -yy1349: +#line 8091 "src/prebuilt/wast-lexer-gen.cc" +yy1451: yych = *++cursor_; - if (yych == '6') goto yy1501; - goto yy11; -yy1350: + if (yych == 'r') goto yy1604; + goto yy87; +yy1452: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '6') goto yy1605; + goto yy87; +yy1453: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 299 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store8); } -#line 7323 "src/prebuilt/wast-lexer-gen.cc" -yy1352: +#line 8107 "src/prebuilt/wast-lexer-gen.cc" +yy1455: yych = *++cursor_; - if (yych == 's') goto yy1503; - if (yych == 'u') goto yy1504; - goto yy11; -yy1353: + if (yych <= 'r') { + if (yych == 'f') goto yy1607; + goto yy87; + } else { + if (yych <= 's') goto yy1608; + if (yych == 'u') goto yy1609; + goto yy87; + } +yy1456: yych = *++cursor_; - if (yych == '6') goto yy1505; - goto yy11; -yy1354: + if (yych == '6') goto yy1610; + goto yy87; +yy1457: yych = *++cursor_; - if (yych == 't') goto yy1506; - goto yy11; -yy1355: + if (yych == '6') goto yy1611; + goto yy87; +yy1458: yych = *++cursor_; - if (yych == 't') goto yy1507; - goto yy11; -yy1356: + if (yych == 't') goto yy1612; + goto yy87; +yy1459: yych = *++cursor_; - if (yych == 'a') goto yy1508; - goto yy11; -yy1357: + if (yych == 't') goto yy1613; + goto yy87; +yy1460: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1614; + goto yy87; +yy1461: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 636 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GeS); } -#line 7352 "src/prebuilt/wast-lexer-gen.cc" -yy1359: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8145 "src/prebuilt/wast-lexer-gen.cc" +yy1463: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 637 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GeU); } -#line 7360 "src/prebuilt/wast-lexer-gen.cc" -yy1361: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8153 "src/prebuilt/wast-lexer-gen.cc" +yy1465: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 628 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GtS); } -#line 7368 "src/prebuilt/wast-lexer-gen.cc" -yy1363: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8161 "src/prebuilt/wast-lexer-gen.cc" +yy1467: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 629 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4GtU); } -#line 7376 "src/prebuilt/wast-lexer-gen.cc" -yy1365: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8169 "src/prebuilt/wast-lexer-gen.cc" +yy1469: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 620 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LeS); } -#line 7384 "src/prebuilt/wast-lexer-gen.cc" -yy1367: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8177 "src/prebuilt/wast-lexer-gen.cc" +yy1471: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 621 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LeU); } -#line 7392 "src/prebuilt/wast-lexer-gen.cc" -yy1369: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8185 "src/prebuilt/wast-lexer-gen.cc" +yy1473: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 612 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LtS); } -#line 7400 "src/prebuilt/wast-lexer-gen.cc" -yy1371: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8193 "src/prebuilt/wast-lexer-gen.cc" +yy1475: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 613 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32X4LtU); } -#line 7408 "src/prebuilt/wast-lexer-gen.cc" -yy1373: +#line 8201 "src/prebuilt/wast-lexer-gen.cc" +yy1477: yych = *++cursor_; - if (yych == 'a') goto yy1509; - goto yy11; -yy1374: + if (yych == 'a') goto yy1615; + goto yy87; +yy1478: yych = *++cursor_; - if (yych == 's') goto yy1510; - if (yych == 'u') goto yy1512; - goto yy11; -yy1375: + if (yych == 's') goto yy1616; + if (yych == 'u') goto yy1618; + goto yy87; +yy1479: yych = *++cursor_; - if (yych == 't') goto yy1514; - goto yy11; -yy1376: + if (yych == 't') goto yy1620; + goto yy87; +yy1480: yych = *++cursor_; - if (yych == 'c') goto yy1516; - goto yy11; -yy1377: + if (yych == 'c') goto yy1622; + goto yy87; +yy1481: yych = *++cursor_; - if (yych == '.') goto yy1517; - goto yy11; -yy1378: + if (yych == '.') goto yy1623; + goto yy87; +yy1482: yych = *++cursor_; if (yych <= '3') { - if (yych == '1') goto yy1518; - if (yych <= '2') goto yy11; - goto yy1519; + if (yych == '1') goto yy1624; + if (yych <= '2') goto yy87; + goto yy1625; } else { if (yych <= '8') { - if (yych <= '7') goto yy11; - goto yy1520; + if (yych <= '7') goto yy87; + goto yy1626; } else { - if (yych == '_') goto yy1521; - goto yy11; + if (yych == '_') goto yy1627; + goto yy87; } } -yy1379: - yych = *++cursor_; - if (yych == '_') goto yy1522; - goto yy11; -yy1380: +yy1483: yych = *++cursor_; - if (yych == '_') goto yy1523; - goto yy11; -yy1381: + if (yych == '_') goto yy1628; + goto yy87; +yy1484: yych = *++cursor_; - if (yych == 's') goto yy1524; - if (yych == 'u') goto yy1526; - goto yy11; -yy1382: + if (yych == '_') goto yy1629; + goto yy87; +yy1485: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1630; + if (yych == 'u') goto yy1632; + goto yy87; +yy1486: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 317 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Popcnt); } -#line 7465 "src/prebuilt/wast-lexer-gen.cc" -yy1384: - yych = *++cursor_; - if (yych == 'r') goto yy1528; - goto yy11; -yy1385: +#line 8258 "src/prebuilt/wast-lexer-gen.cc" +yy1488: yych = *++cursor_; - if (yych == '6') goto yy1529; - goto yy11; -yy1386: + if (yych == 'r') goto yy1634; + goto yy87; +yy1489: yych = *++cursor_; - if (yych == '2') goto yy1531; - goto yy11; -yy1387: + if (yych == '6') goto yy1635; + goto yy87; +yy1490: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '2') goto yy1637; + goto yy87; +yy1491: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 300 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store8); } -#line 7485 "src/prebuilt/wast-lexer-gen.cc" -yy1389: - yych = *++cursor_; - if (yych == 's') goto yy1533; - if (yych == 'u') goto yy1534; - goto yy11; -yy1390: +#line 8278 "src/prebuilt/wast-lexer-gen.cc" +yy1493: yych = *++cursor_; - if (yych == 't') goto yy1535; - goto yy11; -yy1391: + if (yych <= 'r') { + if (yych == 'f') goto yy1639; + goto yy87; + } else { + if (yych <= 's') goto yy1640; + if (yych == 'u') goto yy1641; + goto yy87; + } +yy1494: yych = *++cursor_; - if (yych == 't') goto yy1536; - goto yy11; -yy1392: + if (yych == 't') goto yy1642; + goto yy87; +yy1495: yych = *++cursor_; - if (yych == 'a') goto yy1537; - goto yy11; -yy1393: + if (yych == 't') goto yy1643; + goto yy87; +yy1496: yych = *++cursor_; - if (yych == 'a') goto yy1538; - goto yy11; -yy1394: + if (yych == 'a') goto yy1644; + goto yy87; +yy1497: yych = *++cursor_; - if (yych == 's') goto yy1539; - if (yych == 'u') goto yy1541; - goto yy11; -yy1395: + if (yych == 'a') goto yy1645; + goto yy87; +yy1498: yych = *++cursor_; - if (yych == 't') goto yy1543; - goto yy11; -yy1396: + if (yych == 's') goto yy1646; + if (yych == 'u') goto yy1648; + goto yy87; +yy1499: yych = *++cursor_; - if (yych == 'c') goto yy1545; - goto yy11; -yy1397: + if (yych == 't') goto yy1650; + goto yy87; +yy1500: yych = *++cursor_; - if (yych == 's') goto yy1546; - goto yy11; -yy1398: + if (yych == 'c') goto yy1652; + goto yy87; +yy1501: yych = *++cursor_; - if (yych == 't') goto yy1547; - goto yy11; -yy1399: + if (yych == 's') goto yy1653; + goto yy87; +yy1502: yych = *++cursor_; - if (yych == 't') goto yy1548; - goto yy11; -yy1400: + if (yych == 't') goto yy1654; + goto yy87; +yy1503: yych = *++cursor_; - if (yych == 'a') goto yy1549; - goto yy11; -yy1401: + if (yych == 't') goto yy1655; + goto yy87; +yy1504: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1656; + goto yy87; +yy1505: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 632 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GeS); } -#line 7543 "src/prebuilt/wast-lexer-gen.cc" -yy1403: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8341 "src/prebuilt/wast-lexer-gen.cc" +yy1507: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 633 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GeU); } -#line 7551 "src/prebuilt/wast-lexer-gen.cc" -yy1405: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8349 "src/prebuilt/wast-lexer-gen.cc" +yy1509: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 624 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GtS); } -#line 7559 "src/prebuilt/wast-lexer-gen.cc" -yy1407: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8357 "src/prebuilt/wast-lexer-gen.cc" +yy1511: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 625 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16GtU); } -#line 7567 "src/prebuilt/wast-lexer-gen.cc" -yy1409: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8365 "src/prebuilt/wast-lexer-gen.cc" +yy1513: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 616 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LeS); } -#line 7575 "src/prebuilt/wast-lexer-gen.cc" -yy1411: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8373 "src/prebuilt/wast-lexer-gen.cc" +yy1515: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 617 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LeU); } -#line 7583 "src/prebuilt/wast-lexer-gen.cc" -yy1413: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8381 "src/prebuilt/wast-lexer-gen.cc" +yy1517: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 608 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LtS); } -#line 7591 "src/prebuilt/wast-lexer-gen.cc" -yy1415: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8389 "src/prebuilt/wast-lexer-gen.cc" +yy1519: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 609 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I8X16LtU); } -#line 7599 "src/prebuilt/wast-lexer-gen.cc" -yy1417: +#line 8397 "src/prebuilt/wast-lexer-gen.cc" +yy1521: yych = *++cursor_; - if (yych == 'a') goto yy1550; - goto yy11; -yy1418: + if (yych == 'a') goto yy1657; + goto yy87; +yy1522: yych = *++cursor_; - if (yych == 's') goto yy1551; - if (yych == 'u') goto yy1553; - goto yy11; -yy1419: + if (yych == 's') goto yy1658; + if (yych == 'u') goto yy1660; + goto yy87; +yy1523: yych = *++cursor_; - if (yych == 't') goto yy1555; - goto yy11; -yy1420: + if (yych == 't') goto yy1662; + goto yy87; +yy1524: yych = *++cursor_; - if (yych == 's') goto yy1557; - goto yy11; -yy1421: + if (yych == 's') goto yy1664; + goto yy87; +yy1525: yych = *++cursor_; - if (yych == 'y') goto yy1558; - goto yy11; -yy1422: + if (yych == 'y') goto yy1665; + goto yy87; +yy1526: yych = *++cursor_; - if (yych == 'p') goto yy1560; - goto yy11; -yy1423: + if (yych == 'p') goto yy1667; + goto yy87; +yy1527: yych = *++cursor_; - if (yych == 'l') goto yy1562; - goto yy11; -yy1424: + if (yych == 'l') goto yy1669; + goto yy87; +yy1528: yych = *++cursor_; - if (yych == 'w') goto yy1564; - goto yy11; -yy1425: + if (yych == 'w') goto yy1671; + goto yy87; +yy1529: yych = *++cursor_; - if (yych == 't') goto yy1566; - goto yy11; -yy1426: + if (yych == 't') goto yy1673; + goto yy87; +yy1530: yych = *++cursor_; - if (yych == 'e') goto yy1568; - goto yy11; -yy1427: + if (yych == 'e') goto yy1675; + goto yy87; +yy1531: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { - if (yych == '!') goto yy10; - if (yych <= '"') goto yy1027; - goto yy10; + if (yych == '!') goto yy86; + if (yych <= '"') goto yy1117; + goto yy86; } else { - if (yych <= ')') goto yy1027; - if (yych <= '/') goto yy10; - if (yych <= '9') goto yy1427; - goto yy10; + if (yych <= ')') goto yy1117; + if (yych <= '/') goto yy86; + if (yych <= '9') goto yy1531; + goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy1027; - if (yych <= '@') goto yy10; - if (yych <= 'F') goto yy1427; - goto yy10; + if (yych <= ';') goto yy1117; + if (yych <= '@') goto yy86; + if (yych <= 'F') goto yy1531; + goto yy86; } else { if (yych <= '`') { - if (yych <= '_') goto yy1267; - goto yy10; + if (yych <= '_') goto yy1366; + goto yy86; } else { - if (yych <= 'f') goto yy1427; - if (yych <= '~') goto yy10; - goto yy1027; + if (yych <= 'f') goto yy1531; + if (yych <= '~') goto yy86; + goto yy1117; } } } -yy1429: - yych = *++cursor_; - if (yych == 'l') goto yy1570; - goto yy11; -yy1430: +yy1533: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1677; + goto yy87; +yy1534: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 280 "src/wast-lexer.cc" - { RETURN_OPCODE0(SetGlobal); } -#line 7684 "src/prebuilt/wast-lexer-gen.cc" -yy1432: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 675 "src/wast-lexer.cc" + { RETURN_OPCODE0(GlobalSet); } +#line 8482 "src/prebuilt/wast-lexer-gen.cc" +yy1536: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 458 "src/wast-lexer.cc" { RETURN_OPCODE0(TableCopy); } -#line 7692 "src/prebuilt/wast-lexer-gen.cc" -yy1434: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8490 "src/prebuilt/wast-lexer-gen.cc" +yy1538: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #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 8498 "src/prebuilt/wast-lexer-gen.cc" +yy1540: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #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; -yy1439: +#line 8506 "src/prebuilt/wast-lexer-gen.cc" +yy1542: yych = *++cursor_; - if (yych == 'l') goto yy1574; - goto yy11; -yy1440: + if (yych == 'e') goto yy1679; + goto yy87; +yy1543: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'l') goto yy1681; + goto yy87; +yy1544: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 526 "src/wast-lexer.cc" { RETURN_OPCODE(Const, V128Const); } -#line 7724 "src/prebuilt/wast-lexer-gen.cc" -yy1442: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8522 "src/prebuilt/wast-lexer-gen.cc" +yy1546: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 528 "src/wast-lexer.cc" { RETURN_OPCODE(Store, V128Store); } -#line 7732 "src/prebuilt/wast-lexer-gen.cc" -yy1444: - yych = *++cursor_; - if (yych == 'f') goto yy1575; - goto yy11; -yy1445: +#line 8530 "src/prebuilt/wast-lexer-gen.cc" +yy1548: yych = *++cursor_; - if (yych == 'u') goto yy1576; - goto yy11; -yy1446: + if (yych == 'f') goto yy1682; + goto yy87; +yy1549: yych = *++cursor_; - if (yych == 'l') goto yy1577; - goto yy11; -yy1447: + if (yych == 'u') goto yy1683; + goto yy87; +yy1550: yych = *++cursor_; - if (yych == 'o') goto yy1578; - goto yy11; -yy1448: + if (yych == 'l') goto yy1684; + goto yy87; +yy1551: yych = *++cursor_; - if (yych == 'r') goto yy1579; - goto yy11; -yy1449: + if (yych == 'o') goto yy1685; + goto yy87; +yy1552: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy1686; + goto yy87; +yy1553: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 697 "src/wast-lexer.cc" +#line 738 "src/wast-lexer.cc" { RETURN(AssertTrap); } -#line 7760 "src/prebuilt/wast-lexer-gen.cc" -yy1451: +#line 8558 "src/prebuilt/wast-lexer-gen.cc" +yy1555: yych = *++cursor_; - if (yych == 'n') goto yy1580; - goto yy11; -yy1452: + if (yych == 'n') goto yy1687; + goto yy87; +yy1556: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 462 "src/wast-lexer.cc" - { RETURN_OPCODE0(AtomicWake); } -#line 7772 "src/prebuilt/wast-lexer-gen.cc" -yy1454: + if (yych == 'f') goto yy1688; + goto yy87; +yy1557: yych = *++cursor_; - if (yych == 'c') goto yy1581; - goto yy11; -yy1455: + if (yych == 'c') goto yy1689; + goto yy87; +yy1558: yych = *++cursor_; - if (yych == 'o') goto yy1582; - goto yy11; -yy1456: + if (yych == 'o') goto yy1690; + goto yy87; +yy1559: yych = *++cursor_; - if (yych == '_') goto yy1583; - goto yy11; -yy1457: + if (yych == '_') goto yy1691; + goto yy87; +yy1560: yych = *++cursor_; - if (yych == 'n') goto yy1584; - goto yy11; -yy1458: + if (yych == 'n') goto yy1692; + goto yy87; +yy1561: yych = *++cursor_; - if (yych == 'f') goto yy1586; - goto yy11; -yy1459: + if (yych == 'f') goto yy1694; + goto yy87; +yy1562: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'f') goto yy1695; + goto yy87; +yy1563: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 330 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Nearest); } -#line 7800 "src/prebuilt/wast-lexer-gen.cc" -yy1461: +#line 8598 "src/prebuilt/wast-lexer-gen.cc" +yy1565: yych = *++cursor_; - if (yych == 'p') goto yy1587; - goto yy11; -yy1462: - yych = *++cursor_; - if (yych == 'r') goto yy1588; - goto yy11; -yy1463: + if (yych == 'p') goto yy1696; + goto yy87; +yy1566: yych = *++cursor_; - if (yych == 'c') goto yy1589; - goto yy11; -yy1464: + if (yych == 'r') goto yy1697; + goto yy87; +yy1567: yych = *++cursor_; - if (yych == 'c') goto yy1590; - goto yy11; -yy1465: + if (yych == 'c') goto yy1698; + goto yy87; +yy1568: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1699; + goto yy87; +yy1569: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 533 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32X4Splat); } -#line 7824 "src/prebuilt/wast-lexer-gen.cc" -yy1467: - yych = *++cursor_; - if (yych == '_') goto yy1591; - goto yy11; -yy1468: +#line 8622 "src/prebuilt/wast-lexer-gen.cc" +yy1571: yych = *++cursor_; - if (yych == 'n') goto yy1592; - goto yy11; -yy1469: + if (yych == '_') goto yy1700; + goto yy87; +yy1572: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'n') goto yy1701; + goto yy87; +yy1573: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 331 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Nearest); } -#line 7840 "src/prebuilt/wast-lexer-gen.cc" -yy1471: - yych = *++cursor_; - if (yych == '/') goto yy1594; - goto yy11; -yy1472: +#line 8638 "src/prebuilt/wast-lexer-gen.cc" +yy1575: yych = *++cursor_; - if (yych == 'p') goto yy1595; - goto yy11; -yy1473: + if (yych == '/') goto yy1703; + if (yych == '_') goto yy1704; + goto yy87; +yy1576: yych = *++cursor_; - if (yych == 'r') goto yy1596; - goto yy11; -yy1474: + if (yych == 'p') goto yy1705; + goto yy87; +yy1577: yych = *++cursor_; - if (yych == 'c') goto yy1597; - goto yy11; -yy1475: + if (yych == 'r') goto yy1706; + goto yy87; +yy1578: yych = *++cursor_; - if (yych == 'c') goto yy1598; - goto yy11; -yy1476: + if (yych == 'c') goto yy1707; + goto yy87; +yy1579: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1708; + goto yy87; +yy1580: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 534 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64X2Splat); } -#line 7868 "src/prebuilt/wast-lexer-gen.cc" -yy1478: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8667 "src/prebuilt/wast-lexer-gen.cc" +yy1582: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 455 "src/wast-lexer.cc" { RETURN_OPCODE0(MemoryGrow); } -#line 7876 "src/prebuilt/wast-lexer-gen.cc" -yy1480: - yych = *++cursor_; - if (yych == 'a') goto yy1599; - goto yy11; -yy1481: +#line 8675 "src/prebuilt/wast-lexer-gen.cc" +yy1584: yych = *++cursor_; - if (yych == 'r') goto yy1600; - goto yy11; -yy1482: + if (yych == 'a') goto yy1709; + goto yy87; +yy1585: yych = *++cursor_; - if (yych == 'r') goto yy1601; - goto yy11; -yy1483: + if (yych == 'r') goto yy1710; + goto yy87; +yy1586: yych = *++cursor_; - if (yych == 'c') goto yy1602; - goto yy11; -yy1484: + if (yych == 'r') goto yy1711; + goto yy87; +yy1587: yych = *++cursor_; - if (yych == 'c') goto yy1603; - goto yy11; -yy1485: + if (yych == 'c') goto yy1712; + goto yy87; +yy1588: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1713; + goto yy87; +yy1589: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 579 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8ShrS); } -#line 7904 "src/prebuilt/wast-lexer-gen.cc" -yy1487: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8703 "src/prebuilt/wast-lexer-gen.cc" +yy1591: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 580 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I16X8ShrU); } -#line 7912 "src/prebuilt/wast-lexer-gen.cc" -yy1489: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8711 "src/prebuilt/wast-lexer-gen.cc" +yy1593: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 530 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I16X8Splat); } -#line 7920 "src/prebuilt/wast-lexer-gen.cc" -yy1491: +#line 8719 "src/prebuilt/wast-lexer-gen.cc" +yy1595: yych = *++cursor_; - if (yych == 'a') goto yy1604; - goto yy11; -yy1492: + if (yych == 'a') goto yy1714; + goto yy87; +yy1596: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'l') goto yy1605; - if (yych <= 'q') goto yy11; - goto yy1606; + if (yych == 'l') goto yy1715; + if (yych <= 'q') goto yy87; + goto yy1716; } else { - if (yych <= 's') goto yy1607; - if (yych == 'w') goto yy1608; - goto yy11; + if (yych <= 's') goto yy1717; + if (yych == 'w') goto yy1718; + goto yy87; } -yy1493: - yych = *++cursor_; - if (yych == '6') goto yy1609; - goto yy11; -yy1494: +yy1597: yych = *++cursor_; - if (yych == '_') goto yy1610; - goto yy11; -yy1495: + if (yych == '6') goto yy1719; + goto yy87; +yy1598: yych = *++cursor_; - if (yych == 's') goto yy1611; - if (yych == 'u') goto yy1613; - goto yy11; -yy1496: + if (yych == '_') goto yy1720; + goto yy87; +yy1599: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1721; + if (yych == 'u') goto yy1723; + goto yy87; +yy1600: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 289 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load8S); } -#line 7956 "src/prebuilt/wast-lexer-gen.cc" -yy1498: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8755 "src/prebuilt/wast-lexer-gen.cc" +yy1602: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 291 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load8U); } -#line 7964 "src/prebuilt/wast-lexer-gen.cc" -yy1500: - yych = *++cursor_; - if (yych == 'p') goto yy1615; - goto yy11; -yy1501: +#line 8763 "src/prebuilt/wast-lexer-gen.cc" +yy1604: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'p') goto yy1725; + goto yy87; +yy1605: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 301 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store16); } -#line 7976 "src/prebuilt/wast-lexer-gen.cc" -yy1503: +#line 8775 "src/prebuilt/wast-lexer-gen.cc" +yy1607: yych = *++cursor_; - if (yych == '/') goto yy1616; - if (yych == ':') goto yy1617; - goto yy11; -yy1504: + if (yych == '3') goto yy1726; + if (yych == '6') goto yy1727; + goto yy87; +yy1608: yych = *++cursor_; - if (yych == '/') goto yy1618; - if (yych == ':') goto yy1619; - goto yy11; -yy1505: + if (yych <= '9') { + if (yych == '/') goto yy1728; + goto yy87; + } else { + if (yych <= ':') goto yy1729; + if (yych == 'a') goto yy1730; + goto yy87; + } +yy1609: yych = *++cursor_; - if (yych == '4') goto yy1620; - goto yy11; -yy1506: + if (yych == '/') goto yy1731; + if (yych == ':') goto yy1732; + goto yy87; +yy1610: yych = *++cursor_; - if (yych == 'r') goto yy1622; - goto yy11; -yy1507: + if (yych == '4') goto yy1733; + goto yy87; +yy1611: yych = *++cursor_; - if (yych == 'r') goto yy1623; - goto yy11; -yy1508: + if (yych == '4') goto yy1735; + goto yy87; +yy1612: yych = *++cursor_; - if (yych == 'c') goto yy1624; - goto yy11; -yy1509: + if (yych == 'r') goto yy1737; + goto yy87; +yy1613: yych = *++cursor_; - if (yych == 'c') goto yy1625; - goto yy11; -yy1510: + if (yych == 'r') goto yy1738; + goto yy87; +yy1614: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1739; + goto yy87; +yy1615: + yych = *++cursor_; + if (yych == 'c') goto yy1740; + goto yy87; +yy1616: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 581 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4ShrS); } -#line 8014 "src/prebuilt/wast-lexer-gen.cc" -yy1512: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8827 "src/prebuilt/wast-lexer-gen.cc" +yy1618: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 582 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32X4ShrU); } -#line 8022 "src/prebuilt/wast-lexer-gen.cc" -yy1514: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8835 "src/prebuilt/wast-lexer-gen.cc" +yy1620: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 531 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32X4Splat); } -#line 8030 "src/prebuilt/wast-lexer-gen.cc" -yy1516: +#line 8843 "src/prebuilt/wast-lexer-gen.cc" +yy1622: yych = *++cursor_; - if (yych == '_') goto yy1626; - goto yy11; -yy1517: + if (yych == '_') goto yy1741; + goto yy87; +yy1623: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'l') goto yy1627; - if (yych <= 'q') goto yy11; - goto yy1628; + if (yych == 'l') goto yy1742; + if (yych <= 'q') goto yy87; + goto yy1743; } else { - if (yych <= 's') goto yy1629; - if (yych == 'w') goto yy1630; - goto yy11; + if (yych <= 's') goto yy1744; + if (yych == 'w') goto yy1745; + goto yy87; } -yy1518: - yych = *++cursor_; - if (yych == '6') goto yy1631; - goto yy11; -yy1519: +yy1624: yych = *++cursor_; - if (yych == '2') goto yy1632; - goto yy11; -yy1520: + if (yych == '6') goto yy1746; + goto yy87; +yy1625: yych = *++cursor_; - if (yych == '_') goto yy1633; - goto yy11; -yy1521: + if (yych == '2') goto yy1747; + goto yy87; +yy1626: yych = *++cursor_; - if (yych == 's') goto yy1634; - if (yych == 'u') goto yy1635; - goto yy11; -yy1522: + if (yych == '_') goto yy1748; + goto yy87; +yy1627: yych = *++cursor_; - if (yych == 's') goto yy1636; - if (yych == 'u') goto yy1638; - goto yy11; -yy1523: + if (yych <= 'r') { + if (yych == 'i') goto yy1749; + goto yy87; + } else { + if (yych <= 's') goto yy1750; + if (yych == 'u') goto yy1751; + goto yy87; + } +yy1628: yych = *++cursor_; - if (yych == 's') goto yy1640; - if (yych == 'u') goto yy1642; - goto yy11; -yy1524: + if (yych == 's') goto yy1752; + if (yych == 'u') goto yy1754; + goto yy87; +yy1629: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1756; + if (yych == 'u') goto yy1758; + goto yy87; +yy1630: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 290 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load8S); } -#line 8080 "src/prebuilt/wast-lexer-gen.cc" -yy1526: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8898 "src/prebuilt/wast-lexer-gen.cc" +yy1632: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 292 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load8U); } -#line 8088 "src/prebuilt/wast-lexer-gen.cc" -yy1528: - yych = *++cursor_; - if (yych == 'p') goto yy1644; - goto yy11; -yy1529: +#line 8906 "src/prebuilt/wast-lexer-gen.cc" +yy1634: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'p') goto yy1760; + goto yy87; +yy1635: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 302 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store16); } -#line 8100 "src/prebuilt/wast-lexer-gen.cc" -yy1531: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8918 "src/prebuilt/wast-lexer-gen.cc" +yy1637: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 303 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store32); } -#line 8108 "src/prebuilt/wast-lexer-gen.cc" -yy1533: +#line 8926 "src/prebuilt/wast-lexer-gen.cc" +yy1639: yych = *++cursor_; - if (yych == '/') goto yy1645; - if (yych == ':') goto yy1646; - goto yy11; -yy1534: + if (yych == '3') goto yy1761; + if (yych == '6') goto yy1762; + goto yy87; +yy1640: yych = *++cursor_; - if (yych == '/') goto yy1647; - if (yych == ':') goto yy1648; - goto yy11; -yy1535: + if (yych <= '9') { + if (yych == '/') goto yy1763; + goto yy87; + } else { + if (yych <= ':') goto yy1764; + if (yych == 'a') goto yy1765; + goto yy87; + } +yy1641: yych = *++cursor_; - if (yych == 'r') goto yy1649; - goto yy11; -yy1536: + if (yych == '/') goto yy1766; + if (yych == ':') goto yy1767; + goto yy87; +yy1642: yych = *++cursor_; - if (yych == 'r') goto yy1650; - goto yy11; -yy1537: + if (yych == 'r') goto yy1768; + goto yy87; +yy1643: yych = *++cursor_; - if (yych == 'c') goto yy1651; - goto yy11; -yy1538: + if (yych == 'r') goto yy1769; + goto yy87; +yy1644: yych = *++cursor_; - if (yych == 'c') goto yy1652; - goto yy11; -yy1539: + if (yych == 'c') goto yy1770; + goto yy87; +yy1645: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1771; + goto yy87; +yy1646: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 583 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2ShrS); } -#line 8142 "src/prebuilt/wast-lexer-gen.cc" -yy1541: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8970 "src/prebuilt/wast-lexer-gen.cc" +yy1648: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 584 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64X2ShrU); } -#line 8150 "src/prebuilt/wast-lexer-gen.cc" -yy1543: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 8978 "src/prebuilt/wast-lexer-gen.cc" +yy1650: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 532 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64X2Splat); } -#line 8158 "src/prebuilt/wast-lexer-gen.cc" -yy1545: - yych = *++cursor_; - if (yych == '_') goto yy1653; - goto yy11; -yy1546: +#line 8986 "src/prebuilt/wast-lexer-gen.cc" +yy1652: yych = *++cursor_; - if (yych == 'a') goto yy1654; - goto yy11; -yy1547: + if (yych == '_') goto yy1772; + goto yy87; +yy1653: yych = *++cursor_; - if (yych == 'r') goto yy1655; - goto yy11; -yy1548: + if (yych == 'a') goto yy1773; + goto yy87; +yy1654: yych = *++cursor_; - if (yych == 'r') goto yy1656; - goto yy11; -yy1549: + if (yych == 'r') goto yy1774; + goto yy87; +yy1655: yych = *++cursor_; - if (yych == 'c') goto yy1657; - goto yy11; -yy1550: + if (yych == 'r') goto yy1775; + goto yy87; +yy1656: yych = *++cursor_; - if (yych == 'c') goto yy1658; - goto yy11; -yy1551: + if (yych == 'c') goto yy1776; + goto yy87; +yy1657: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy1777; + goto yy87; +yy1658: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 577 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16ShrS); } -#line 8190 "src/prebuilt/wast-lexer-gen.cc" -yy1553: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 9018 "src/prebuilt/wast-lexer-gen.cc" +yy1660: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 578 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I8X16ShrU); } -#line 8198 "src/prebuilt/wast-lexer-gen.cc" -yy1555: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 9026 "src/prebuilt/wast-lexer-gen.cc" +yy1662: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 529 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I8X16Splat); } -#line 8206 "src/prebuilt/wast-lexer-gen.cc" -yy1557: - yych = *++cursor_; - if (yych == 'a') goto yy1659; - goto yy11; -yy1558: +#line 9034 "src/prebuilt/wast-lexer-gen.cc" +yy1664: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1778; + goto yy87; +yy1665: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #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 9046 "src/prebuilt/wast-lexer-gen.cc" +yy1667: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #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 9054 "src/prebuilt/wast-lexer-gen.cc" +yy1669: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #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 9062 "src/prebuilt/wast-lexer-gen.cc" +yy1671: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 449 "src/wast-lexer.cc" { RETURN_OPCODE0(MemoryGrow); } -#line 8242 "src/prebuilt/wast-lexer-gen.cc" -yy1566: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 9070 "src/prebuilt/wast-lexer-gen.cc" +yy1673: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #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 9078 "src/prebuilt/wast-lexer-gen.cc" +yy1675: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 448 "src/wast-lexer.cc" { RETURN_OPCODE0(MemorySize); } -#line 8258 "src/prebuilt/wast-lexer-gen.cc" -yy1570: - yych = *++cursor_; - if (yych <= ')') { +#line 9086 "src/prebuilt/wast-lexer-gen.cc" +yy1677: + ++cursor_; + if ((yych = *cursor_) <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy10; + if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1571; - if (yych <= '\'') goto yy10; + if (yych <= '"') goto yy1678; + if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { - if (yych != ';') goto yy10; + if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1660; - if (yych <= '~') goto yy10; + if (yych <= '_') goto yy1779; + if (yych <= '~') goto yy86; } } -yy1571: +yy1678: #line 666 "src/wast-lexer.cc" { RETURN_OPCODE0(ReturnCall); } -#line 8279 "src/prebuilt/wast-lexer-gen.cc" -yy1572: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 9107 "src/prebuilt/wast-lexer-gen.cc" +yy1679: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } #line 447 "src/wast-lexer.cc" { RETURN_OPCODE0(Unreachable); } -#line 8287 "src/prebuilt/wast-lexer-gen.cc" -yy1574: - yych = *++cursor_; - if (yych == 'e') goto yy1661; - goto yy11; -yy1575: - yych = *++cursor_; - if (yych == 'l') goto yy1662; - goto yy11; -yy1576: - yych = *++cursor_; - if (yych == 's') goto yy1663; - goto yy11; -yy1577: - yych = *++cursor_; - if (yych == 'i') goto yy1664; - goto yy11; -yy1578: - yych = *++cursor_; - if (yych == 'r') goto yy1665; - goto yy11; -yy1579: - yych = *++cursor_; - if (yych == 'n') goto yy1666; - goto yy11; -yy1580: - yych = *++cursor_; - if (yych == 'k') goto yy1668; - goto yy11; -yy1581: - yych = *++cursor_; - if (yych == 't') goto yy1669; - goto yy11; -yy1582: - yych = *++cursor_; - if (yych == 'r') goto yy1671; - goto yy11; -yy1583: - yych = *++cursor_; - if (yych == 's') goto yy1672; - if (yych == 'u') goto yy1673; - goto yy11; -yy1584: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 379 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, F32Copysign); } -#line 8336 "src/prebuilt/wast-lexer-gen.cc" -yy1586: - yych = *++cursor_; - if (yych == '6') goto yy1674; - goto yy11; -yy1587: - yych = *++cursor_; - if (yych == 'r') goto yy1675; - goto yy11; -yy1588: - yych = *++cursor_; - if (yych == 't') goto yy1676; - goto yy11; -yy1589: - yych = *++cursor_; - if (yych == 't') goto yy1677; - goto yy11; -yy1590: - yych = *++cursor_; - if (yych == 'e') goto yy1678; - goto yy11; -yy1591: - yych = *++cursor_; - if (yych == 's') goto yy1679; - if (yych == 'u') goto yy1680; - goto yy11; -yy1592: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 380 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, F64Copysign); } -#line 8369 "src/prebuilt/wast-lexer-gen.cc" -yy1594: - yych = *++cursor_; - if (yych == 'f') goto yy1681; - goto yy11; -yy1595: - yych = *++cursor_; - if (yych == 'r') goto yy1682; - goto yy11; -yy1596: - yych = *++cursor_; - if (yych == 't') goto yy1683; - goto yy11; -yy1597: - yych = *++cursor_; - if (yych == 't') goto yy1684; - goto yy11; -yy1598: - yych = *++cursor_; - if (yych == 'e') goto yy1685; - goto yy11; -yy1599: - yych = *++cursor_; - if (yych == 't') goto yy1686; - goto yy11; -yy1600: - yych = *++cursor_; - if (yych == 'u') goto yy1687; - goto yy11; -yy1601: - yych = *++cursor_; - if (yych == 'u') goto yy1688; - goto yy11; -yy1602: - yych = *++cursor_; - if (yych == 't') goto yy1689; - goto yy11; -yy1603: - yych = *++cursor_; - if (yych == 'e') goto yy1690; - goto yy11; -yy1604: - yych = *++cursor_; - if (yych == 't') goto yy1691; - goto yy11; -yy1605: - yych = *++cursor_; - if (yych == 'o') goto yy1692; - goto yy11; -yy1606: - yych = *++cursor_; - if (yych == 'm') goto yy1693; - goto yy11; -yy1607: - yych = *++cursor_; - if (yych == 't') goto yy1694; - goto yy11; -yy1608: - yych = *++cursor_; - if (yych == 'a') goto yy1695; - goto yy11; -yy1609: - yych = *++cursor_; - if (yych == '_') goto yy1696; - goto yy11; -yy1610: - yych = *++cursor_; - if (yych == 's') goto yy1697; - goto yy11; -yy1611: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 293 "src/wast-lexer.cc" - { RETURN_OPCODE(Load, I32Load16S); } -#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 8453 "src/prebuilt/wast-lexer-gen.cc" -yy1615: - yych = *++cursor_; - if (yych == 'r') goto yy1699; - goto yy11; -yy1616: - yych = *++cursor_; - if (yych == 'f') goto yy1700; - goto yy11; -yy1617: - yych = *++cursor_; - if (yych == 's') goto yy1701; - goto yy11; -yy1618: - yych = *++cursor_; - if (yych == 'f') goto yy1702; - goto yy11; -yy1619: - yych = *++cursor_; - if (yych == 's') goto yy1703; - goto yy11; -yy1620: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 415 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32WrapI64); } -#line 8481 "src/prebuilt/wast-lexer-gen.cc" -yy1622: - yych = *++cursor_; - if (yych == 'u') goto yy1704; - goto yy11; -yy1623: - yych = *++cursor_; - if (yych == 'u') goto yy1705; - goto yy11; -yy1624: - yych = *++cursor_; - if (yych == 't') goto yy1706; - goto yy11; -yy1625: - yych = *++cursor_; - if (yych == 'e') goto yy1707; - goto yy11; -yy1626: - yych = *++cursor_; - if (yych == 's') goto yy1708; - if (yych == 'u') goto yy1709; - goto yy11; -yy1627: - yych = *++cursor_; - if (yych == 'o') goto yy1710; - goto yy11; -yy1628: - yych = *++cursor_; - if (yych == 'm') goto yy1711; - goto yy11; -yy1629: - yych = *++cursor_; - if (yych == 't') goto yy1712; - goto yy11; -yy1630: - yych = *++cursor_; - if (yych == 'a') goto yy1713; - goto yy11; -yy1631: - yych = *++cursor_; - if (yych == '_') goto yy1714; - goto yy11; -yy1632: - yych = *++cursor_; - if (yych == '_') goto yy1715; - goto yy11; -yy1633: - yych = *++cursor_; - if (yych == 's') goto yy1716; - goto yy11; -yy1634: - yych = *++cursor_; - if (yych == '/') goto yy1718; - goto yy11; -yy1635: - yych = *++cursor_; - if (yych == '/') goto yy1719; - goto yy11; -yy1636: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 294 "src/wast-lexer.cc" - { RETURN_OPCODE(Load, I64Load16S); } -#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 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 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 8570 "src/prebuilt/wast-lexer-gen.cc" -yy1644: - yych = *++cursor_; - if (yych == 'r') goto yy1720; - goto yy11; -yy1645: - yych = *++cursor_; - if (yych == 'f') goto yy1721; - goto yy11; -yy1646: - yych = *++cursor_; - if (yych == 's') goto yy1722; - goto yy11; -yy1647: - yych = *++cursor_; - if (yych == 'f') goto yy1723; - goto yy11; -yy1648: - yych = *++cursor_; - if (yych == 's') goto yy1724; - goto yy11; -yy1649: - yych = *++cursor_; - if (yych == 'u') goto yy1725; - goto yy11; -yy1650: - yych = *++cursor_; - if (yych == 'u') goto yy1726; - goto yy11; -yy1651: - yych = *++cursor_; - if (yych == 't') goto yy1727; - goto yy11; -yy1652: - yych = *++cursor_; - if (yych == 'e') goto yy1728; - goto yy11; -yy1653: - yych = *++cursor_; - if (yych == 's') goto yy1729; - if (yych == 'u') goto yy1730; - goto yy11; -yy1654: - yych = *++cursor_; - if (yych == 't') goto yy1731; - goto yy11; -yy1655: - yych = *++cursor_; - if (yych == 'u') goto yy1732; - goto yy11; -yy1656: - yych = *++cursor_; - if (yych == 'u') goto yy1733; - goto yy11; -yy1657: - yych = *++cursor_; - if (yych == 't') goto yy1734; - goto yy11; -yy1658: - yych = *++cursor_; - if (yych == 'e') goto yy1735; - goto yy11; -yy1659: - yych = *++cursor_; - if (yych == 't') goto yy1736; - goto yy11; -yy1660: - yych = *++cursor_; - if (yych == 'i') goto yy1737; - goto yy11; -yy1661: - yych = *++cursor_; - if (yych == 'c') goto yy1738; - goto yy11; -yy1662: - yych = *++cursor_; - if (yych == 'e') goto yy1739; - goto yy11; -yy1663: - yych = *++cursor_; - if (yych == 't') goto yy1741; - goto yy11; -yy1664: - yych = *++cursor_; - if (yych == 'd') goto yy1742; - goto yy11; -yy1665: - yych = *++cursor_; - if (yych == 'm') goto yy1744; - goto yy11; -yy1666: - yych = *++cursor_; - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy10; - } else { - if (yych <= '"') goto yy1667; - if (yych <= '\'') goto yy10; - } - } else { - if (yych <= '^') { - if (yych != ';') goto yy10; - } else { - if (yych <= '_') goto yy1745; - if (yych <= '~') goto yy10; - } - } -yy1667: -#line 694 "src/wast-lexer.cc" - { RETURN(AssertReturn); } -#line 8680 "src/prebuilt/wast-lexer-gen.cc" -yy1668: - yych = *++cursor_; - if (yych == 'a') goto yy1746; - goto yy11; -yy1669: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 272 "src/wast-lexer.cc" - { RETURN_OPCODE0(CallIndirect); } -#line 8692 "src/prebuilt/wast-lexer-gen.cc" -yy1671: - yych = *++cursor_; - if (yych == 'y') goto yy1747; - goto yy11; -yy1672: - yych = *++cursor_; - if (yych == '/') goto yy1749; - goto yy11; -yy1673: - yych = *++cursor_; - if (yych == '/') goto yy1750; - goto yy11; -yy1674: - yych = *++cursor_; - if (yych == '4') goto yy1751; - goto yy11; -yy1675: - yych = *++cursor_; - if (yych == 'e') goto yy1753; - goto yy11; -yy1676: - yych = *++cursor_; - if (yych == '_') goto yy1754; - goto yy11; -yy1677: - yych = *++cursor_; - if (yych == '_') goto yy1755; - goto yy11; -yy1678: - yych = *++cursor_; - if (yych == '_') goto yy1756; - goto yy11; -yy1679: - yych = *++cursor_; - if (yych == '/') goto yy1757; - goto yy11; -yy1680: - yych = *++cursor_; - if (yych == '/') goto yy1758; - goto yy11; +#line 9115 "src/prebuilt/wast-lexer-gen.cc" yy1681: yych = *++cursor_; - if (yych == '3') goto yy1759; - goto yy11; + if (yych == 'e') goto yy1780; + goto yy87; yy1682: yych = *++cursor_; - if (yych == 'e') goto yy1760; - goto yy11; + if (yych == 'l') goto yy1781; + goto yy87; yy1683: yych = *++cursor_; - if (yych == '_') goto yy1761; - goto yy11; + if (yych == 's') goto yy1782; + goto yy87; yy1684: yych = *++cursor_; - if (yych == '_') goto yy1762; - goto yy11; + if (yych == 'i') goto yy1783; + goto yy87; yy1685: yych = *++cursor_; - if (yych == '_') goto yy1763; - goto yy11; + if (yych == 'r') goto yy1784; + goto yy87; yy1686: yych = *++cursor_; - if (yych == 'u') goto yy1764; - goto yy11; + if (yych == 'n') goto yy1785; + goto yy87; yy1687: yych = *++cursor_; - if (yych == 'e') goto yy1765; - goto yy11; + if (yych == 'k') goto yy1787; + goto yy87; yy1688: yych = *++cursor_; - if (yych == 'e') goto yy1767; - goto yy11; + if (yych == 'y') goto yy1788; + goto yy87; yy1689: yych = *++cursor_; - if (yych == '_') goto yy1769; - goto yy11; + if (yych == 't') goto yy1790; + goto yy87; yy1690: yych = *++cursor_; - if (yych == '_') goto yy1770; - goto yy11; + if (yych == 'r') goto yy1792; + goto yy87; yy1691: yych = *++cursor_; - if (yych == 'u') goto yy1771; - goto yy11; + if (yych <= 'r') { + if (yych == 'i') goto yy1793; + goto yy87; + } else { + if (yych <= 's') goto yy1794; + if (yych == 'u') goto yy1795; + goto yy87; + } yy1692: - yych = *++cursor_; - if (yych == 'a') goto yy1772; - goto yy11; -yy1693: - yych = *++cursor_; - if (yych == 'w') goto yy1773; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 379 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, F32Copysign); } +#line 9173 "src/prebuilt/wast-lexer-gen.cc" yy1694: yych = *++cursor_; - if (yych == 'o') goto yy1774; - goto yy11; + if (yych == '6') goto yy1796; + goto yy87; yy1695: yych = *++cursor_; - if (yych == 'i') goto yy1775; - goto yy11; + if (yych == '6') goto yy1797; + goto yy87; yy1696: yych = *++cursor_; - if (yych == 's') goto yy1776; - goto yy11; + if (yych == 'r') goto yy1798; + goto yy87; yy1697: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 332 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32Extend8S); } -#line 8804 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 't') goto yy1799; + goto yy87; +yy1698: + yych = *++cursor_; + if (yych == 't') goto yy1800; + goto yy87; yy1699: yych = *++cursor_; - if (yych == 'e') goto yy1778; - goto yy11; + if (yych == 'e') goto yy1801; + goto yy87; yy1700: yych = *++cursor_; - if (yych == '3') goto yy1779; - if (yych == '6') goto yy1780; - goto yy11; + if (yych <= 'r') { + if (yych == 'i') goto yy1802; + goto yy87; + } else { + if (yych <= 's') goto yy1803; + if (yych == 'u') goto yy1804; + goto yy87; + } yy1701: - yych = *++cursor_; - if (yych == 'a') goto yy1781; - goto yy11; -yy1702: - yych = *++cursor_; - if (yych == '3') goto yy1782; - if (yych == '6') goto yy1783; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 380 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, F64Copysign); } +#line 9215 "src/prebuilt/wast-lexer-gen.cc" yy1703: yych = *++cursor_; - if (yych == 'a') goto yy1784; - goto yy11; + if (yych == 'f') goto yy1805; + goto yy87; yy1704: yych = *++cursor_; - if (yych == 'e') goto yy1785; - goto yy11; + if (yych == 'f') goto yy1806; + goto yy87; yy1705: yych = *++cursor_; - if (yych == 'e') goto yy1787; - goto yy11; + if (yych == 'r') goto yy1807; + goto yy87; yy1706: yych = *++cursor_; - if (yych == '_') goto yy1789; - goto yy11; + if (yych == 't') goto yy1808; + goto yy87; yy1707: yych = *++cursor_; - if (yych == '_') goto yy1790; - goto yy11; + if (yych == 't') goto yy1809; + goto yy87; yy1708: yych = *++cursor_; - if (yych == '/') goto yy1791; - goto yy11; + if (yych == 'e') goto yy1810; + goto yy87; yy1709: yych = *++cursor_; - if (yych == '/') goto yy1792; - goto yy11; + if (yych == 't') goto yy1811; + goto yy87; yy1710: yych = *++cursor_; - if (yych == 'a') goto yy1793; - goto yy11; + if (yych == 'u') goto yy1812; + goto yy87; yy1711: yych = *++cursor_; - if (yych == 'w') goto yy1794; - goto yy11; + if (yych == 'u') goto yy1813; + goto yy87; yy1712: yych = *++cursor_; - if (yych == 'o') goto yy1795; - goto yy11; + if (yych == 't') goto yy1814; + goto yy87; yy1713: yych = *++cursor_; - if (yych == 'i') goto yy1796; - goto yy11; + if (yych == 'e') goto yy1815; + goto yy87; yy1714: yych = *++cursor_; - if (yych == 's') goto yy1797; - goto yy11; + if (yych == 't') goto yy1816; + goto yy87; yy1715: yych = *++cursor_; - if (yych == 's') goto yy1799; - goto yy11; + if (yych == 'o') goto yy1817; + goto yy87; yy1716: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 334 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64Extend8S); } -#line 8882 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'm') goto yy1818; + goto yy87; +yy1717: + yych = *++cursor_; + if (yych == 't') goto yy1819; + goto yy87; yy1718: yych = *++cursor_; - if (yych == 'i') goto yy1801; - goto yy11; + if (yych == 'a') goto yy1820; + goto yy87; yy1719: yych = *++cursor_; - if (yych == 'i') goto yy1802; - goto yy11; + if (yych == '_') goto yy1821; + goto yy87; yy1720: yych = *++cursor_; - if (yych == 'e') goto yy1803; - goto yy11; + if (yych == 's') goto yy1822; + goto yy87; yy1721: - yych = *++cursor_; - if (yych == '3') goto yy1804; - if (yych == '6') goto yy1805; - goto yy11; -yy1722: - yych = *++cursor_; - if (yych == 'a') goto yy1806; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 293 "src/wast-lexer.cc" + { RETURN_OPCODE(Load, I32Load16S); } +#line 9295 "src/prebuilt/wast-lexer-gen.cc" yy1723: - yych = *++cursor_; - if (yych == '3') goto yy1807; - if (yych == '6') goto yy1808; - goto yy11; -yy1724: - yych = *++cursor_; - if (yych == 'a') goto yy1809; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 295 "src/wast-lexer.cc" + { RETURN_OPCODE(Load, I32Load16U); } +#line 9303 "src/prebuilt/wast-lexer-gen.cc" yy1725: yych = *++cursor_; - if (yych == 'e') goto yy1810; - goto yy11; + if (yych == 'r') goto yy1824; + goto yy87; yy1726: yych = *++cursor_; - if (yych == 'e') goto yy1812; - goto yy11; + if (yych == '2') goto yy1825; + goto yy87; yy1727: yych = *++cursor_; - if (yych == '_') goto yy1814; - goto yy11; + if (yych == '4') goto yy1826; + goto yy87; yy1728: yych = *++cursor_; - if (yych == '_') goto yy1815; - goto yy11; + if (yych == 'f') goto yy1827; + goto yy87; yy1729: yych = *++cursor_; - if (yych == '/') goto yy1816; - goto yy11; + if (yych == 's') goto yy1828; + goto yy87; yy1730: yych = *++cursor_; - if (yych == '/') goto yy1817; - goto yy11; + if (yych == 't') goto yy1829; + goto yy87; yy1731: yych = *++cursor_; - if (yych == 'u') goto yy1818; - goto yy11; + if (yych == 'f') goto yy1830; + goto yy87; yy1732: yych = *++cursor_; - if (yych == 'e') goto yy1819; - goto yy11; + if (yych == 's') goto yy1831; + goto yy87; yy1733: - yych = *++cursor_; - if (yych == 'e') goto yy1821; - goto yy11; -yy1734: - yych = *++cursor_; - if (yych == '_') goto yy1823; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 678 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32WrapI64); } +#line 9343 "src/prebuilt/wast-lexer-gen.cc" yy1735: - yych = *++cursor_; - if (yych == '_') goto yy1824; - goto yy11; -yy1736: - yych = *++cursor_; - if (yych == 'u') goto yy1825; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 415 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32WrapI64); } +#line 9351 "src/prebuilt/wast-lexer-gen.cc" yy1737: yych = *++cursor_; - if (yych == 'n') goto yy1826; - goto yy11; + if (yych == 'u') goto yy1832; + goto yy87; yy1738: yych = *++cursor_; - if (yych == 't') goto yy1827; - goto yy11; + if (yych == 'u') goto yy1833; + goto yy87; yy1739: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 549 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdShuffleOp, V8X16Shuffle); } -#line 8976 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 't') goto yy1834; + goto yy87; +yy1740: + yych = *++cursor_; + if (yych == 'e') goto yy1835; + goto yy87; yy1741: yych = *++cursor_; - if (yych == 'i') goto yy1829; - goto yy11; + if (yych == 's') goto yy1836; + goto yy87; yy1742: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 692 "src/wast-lexer.cc" - { RETURN(AssertInvalid); } -#line 8988 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'o') goto yy1837; + goto yy87; +yy1743: + yych = *++cursor_; + if (yych == 'm') goto yy1838; + goto yy87; yy1744: yych = *++cursor_; - if (yych == 'e') goto yy1830; - goto yy11; + if (yych == 't') goto yy1839; + goto yy87; yy1745: yych = *++cursor_; - if (yych == 'a') goto yy1831; - if (yych == 'c') goto yy1832; - goto yy11; + if (yych == 'a') goto yy1840; + goto yy87; yy1746: yych = *++cursor_; - if (yych == 'b') goto yy1833; - goto yy11; + if (yych == '_') goto yy1841; + goto yy87; yy1747: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 454 "src/wast-lexer.cc" - { RETURN_OPCODE0(MemorySize); } -#line 9009 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy1842; + goto yy87; +yy1748: + yych = *++cursor_; + if (yych == 's') goto yy1843; + goto yy87; yy1749: yych = *++cursor_; - if (yych == 'i') goto yy1834; - goto yy11; + if (yych == '3') goto yy1845; + goto yy87; yy1750: yych = *++cursor_; - if (yych == 'i') goto yy1835; - goto yy11; + if (yych == '/') goto yy1846; + goto yy87; yy1751: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '/') goto yy1847; + goto yy87; +yy1752: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 441 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F32DemoteF64); } -#line 9025 "src/prebuilt/wast-lexer-gen.cc" -yy1753: - yych = *++cursor_; - if (yych == 't') goto yy1836; - goto yy11; +#line 294 "src/wast-lexer.cc" + { RETURN_OPCODE(Load, I64Load16S); } +#line 9419 "src/prebuilt/wast-lexer-gen.cc" yy1754: - yych = *++cursor_; - if (yych == 's') goto yy1837; - if (yych == 'u') goto yy1838; - goto yy11; -yy1755: - yych = *++cursor_; - if (yych == 'l') goto yy1839; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 296 "src/wast-lexer.cc" + { RETURN_OPCODE(Load, I64Load16U); } +#line 9427 "src/prebuilt/wast-lexer-gen.cc" yy1756: - yych = *++cursor_; - if (yych == 'l') goto yy1840; - goto yy11; -yy1757: - yych = *++cursor_; - if (yych == 'i') goto yy1841; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 297 "src/wast-lexer.cc" + { RETURN_OPCODE(Load, I64Load32S); } +#line 9435 "src/prebuilt/wast-lexer-gen.cc" yy1758: - yych = *++cursor_; - if (yych == 'i') goto yy1842; - goto yy11; -yy1759: - yych = *++cursor_; - if (yych == '2') goto yy1843; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 298 "src/wast-lexer.cc" + { RETURN_OPCODE(Load, I64Load32U); } +#line 9443 "src/prebuilt/wast-lexer-gen.cc" yy1760: yych = *++cursor_; - if (yych == 't') goto yy1845; - goto yy11; + if (yych == 'r') goto yy1848; + goto yy87; yy1761: yych = *++cursor_; - if (yych == 's') goto yy1846; - if (yych == 'u') goto yy1847; - goto yy11; + if (yych == '2') goto yy1849; + goto yy87; yy1762: yych = *++cursor_; - if (yych == 'l') goto yy1848; - goto yy11; + if (yych == '4') goto yy1850; + goto yy87; yy1763: yych = *++cursor_; - if (yych == 'l') goto yy1849; - goto yy11; + if (yych == 'f') goto yy1851; + goto yy87; yy1764: yych = *++cursor_; - if (yych == 'r') goto yy1850; - goto yy11; + if (yych == 's') goto yy1852; + goto yy87; yy1765: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 595 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I16X8AllTrue); } -#line 9083 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 't') goto yy1853; + goto yy87; +yy1766: + yych = *++cursor_; + if (yych == 'f') goto yy1854; + goto yy87; yy1767: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 591 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I16X8AnyTrue); } -#line 9091 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 's') goto yy1855; + goto yy87; +yy1768: + yych = *++cursor_; + if (yych == 'u') goto yy1856; + goto yy87; yy1769: yych = *++cursor_; - if (yych == 'l') goto yy1851; - goto yy11; + if (yych == 'u') goto yy1857; + goto yy87; yy1770: yych = *++cursor_; - if (yych == 'l') goto yy1852; - goto yy11; + if (yych == 't') goto yy1858; + goto yy87; yy1771: yych = *++cursor_; - if (yych == 'r') goto yy1853; - goto yy11; + if (yych == 'e') goto yy1859; + goto yy87; yy1772: yych = *++cursor_; - if (yych == 'd') goto yy1854; - goto yy11; + if (yych == 's') goto yy1860; + goto yy87; yy1773: yych = *++cursor_; - if (yych <= '0') { - if (yych == '.') goto yy1856; - goto yy11; - } else { - if (yych <= '1') goto yy1857; - if (yych == '8') goto yy1858; - goto yy11; - } + if (yych == 't') goto yy1861; + goto yy87; yy1774: yych = *++cursor_; - if (yych == 'r') goto yy1859; - goto yy11; + if (yych == 'u') goto yy1862; + goto yy87; yy1775: yych = *++cursor_; - if (yych == 't') goto yy1860; - goto yy11; + if (yych == 'u') goto yy1863; + goto yy87; yy1776: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 333 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32Extend16S); } -#line 9133 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 't') goto yy1864; + goto yy87; +yy1777: + yych = *++cursor_; + if (yych == 'e') goto yy1865; + goto yy87; yy1778: yych = *++cursor_; - if (yych == 't') goto yy1862; - goto yy11; + if (yych == 't') goto yy1866; + goto yy87; yy1779: yych = *++cursor_; - if (yych == '2') goto yy1863; - goto yy11; + if (yych == 'i') goto yy1867; + goto yy87; yy1780: yych = *++cursor_; - if (yych == '4') goto yy1865; - goto yy11; + if (yych == 'c') goto yy1868; + goto yy87; yy1781: yych = *++cursor_; - if (yych == 't') goto yy1867; - goto yy11; + if (yych == 'e') goto yy1869; + goto yy87; yy1782: yych = *++cursor_; - if (yych == '2') goto yy1868; - goto yy11; + if (yych == 't') goto yy1871; + goto yy87; yy1783: yych = *++cursor_; - if (yych == '4') goto yy1870; - goto yy11; + if (yych == 'd') goto yy1872; + goto yy87; yy1784: yych = *++cursor_; - if (yych == 't') goto yy1872; - goto yy11; + if (yych == 'm') goto yy1874; + goto yy87; yy1785: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if ((yych = *cursor_) <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy86; + } else { + if (yych <= '"') goto yy1786; + if (yych <= '\'') goto yy86; + } + } else { + if (yych <= '^') { + if (yych != ';') goto yy86; + } else { + if (yych <= '_') goto yy1875; + if (yych <= '~') goto yy86; + } } -#line 596 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32X4AllTrue); } -#line 9169 "src/prebuilt/wast-lexer-gen.cc" +yy1786: +#line 735 "src/wast-lexer.cc" + { RETURN(AssertReturn); } +#line 9564 "src/prebuilt/wast-lexer-gen.cc" yy1787: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'a') goto yy1876; + goto yy87; +yy1788: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 592 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32X4AnyTrue); } -#line 9177 "src/prebuilt/wast-lexer-gen.cc" -yy1789: - yych = *++cursor_; - if (yych == 'l') goto yy1873; - goto yy11; +#line 462 "src/wast-lexer.cc" + { RETURN_OPCODE0(AtomicNotify); } +#line 9576 "src/prebuilt/wast-lexer-gen.cc" yy1790: - yych = *++cursor_; - if (yych == 'l') goto yy1874; - goto yy11; -yy1791: - yych = *++cursor_; - if (yych == 'f') goto yy1875; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 272 "src/wast-lexer.cc" + { RETURN_OPCODE0(CallIndirect); } +#line 9584 "src/prebuilt/wast-lexer-gen.cc" yy1792: yych = *++cursor_; - if (yych == 'f') goto yy1876; - goto yy11; + if (yych == 'y') goto yy1877; + goto yy87; yy1793: yych = *++cursor_; - if (yych == 'd') goto yy1877; - goto yy11; + if (yych == '3') goto yy1879; + if (yych == '6') goto yy1880; + goto yy87; yy1794: yych = *++cursor_; - switch (yych) { - case '.': goto yy1879; - case '1': goto yy1880; - case '3': goto yy1881; - case '8': goto yy1882; - default: goto yy11; - } + if (yych == '/') goto yy1881; + goto yy87; yy1795: yych = *++cursor_; - if (yych == 'r') goto yy1883; - goto yy11; + if (yych == '/') goto yy1882; + goto yy87; yy1796: yych = *++cursor_; - if (yych == 't') goto yy1884; - goto yy11; + if (yych == '4') goto yy1883; + goto yy87; yy1797: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 335 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64Extend16S); } -#line 9222 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '4') goto yy1885; + goto yy87; +yy1798: + yych = *++cursor_; + if (yych == 'e') goto yy1887; + goto yy87; yy1799: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 336 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64Extend32S); } -#line 9230 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy1888; + goto yy87; +yy1800: + yych = *++cursor_; + if (yych == '_') goto yy1889; + goto yy87; yy1801: yych = *++cursor_; - if (yych == '3') goto yy1886; - goto yy11; + if (yych == '_') goto yy1890; + goto yy87; yy1802: yych = *++cursor_; - if (yych == '3') goto yy1887; - goto yy11; + if (yych == '3') goto yy1891; + if (yych == '6') goto yy1892; + goto yy87; yy1803: yych = *++cursor_; - if (yych == 't') goto yy1888; - goto yy11; + if (yych == '/') goto yy1893; + goto yy87; yy1804: yych = *++cursor_; - if (yych == '2') goto yy1889; - goto yy11; + if (yych == '/') goto yy1894; + goto yy87; yy1805: yych = *++cursor_; - if (yych == '4') goto yy1891; - goto yy11; + if (yych == '3') goto yy1895; + goto yy87; yy1806: yych = *++cursor_; - if (yych == 't') goto yy1893; - goto yy11; + if (yych == '3') goto yy1896; + goto yy87; yy1807: yych = *++cursor_; - if (yych == '2') goto yy1894; - goto yy11; + if (yych == 'e') goto yy1897; + goto yy87; yy1808: yych = *++cursor_; - if (yych == '4') goto yy1896; - goto yy11; + if (yych == '_') goto yy1898; + goto yy87; yy1809: yych = *++cursor_; - if (yych == 't') goto yy1898; - goto yy11; + if (yych == '_') goto yy1899; + goto yy87; yy1810: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 597 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64X2AllTrue); } -#line 9274 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy1900; + goto yy87; +yy1811: + yych = *++cursor_; + if (yych == 'u') goto yy1901; + goto yy87; yy1812: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 593 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64X2AnyTrue); } -#line 9282 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'e') goto yy1902; + goto yy87; +yy1813: + yych = *++cursor_; + if (yych == 'e') goto yy1904; + goto yy87; yy1814: yych = *++cursor_; - if (yych == 'l') goto yy1899; - goto yy11; + if (yych == '_') goto yy1906; + goto yy87; yy1815: yych = *++cursor_; - if (yych == 'l') goto yy1900; - goto yy11; + if (yych == '_') goto yy1907; + goto yy87; yy1816: yych = *++cursor_; - if (yych == 'f') goto yy1901; - goto yy11; + if (yych == 'u') goto yy1908; + goto yy87; yy1817: yych = *++cursor_; - if (yych == 'f') goto yy1902; - goto yy11; + if (yych == 'a') goto yy1909; + goto yy87; yy1818: yych = *++cursor_; - if (yych == 'r') goto yy1903; - goto yy11; + if (yych == 'w') goto yy1910; + goto yy87; yy1819: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 594 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I8X16AllTrue); } -#line 9310 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'o') goto yy1911; + goto yy87; +yy1820: + yych = *++cursor_; + if (yych == 'i') goto yy1912; + goto yy87; yy1821: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy1913; + goto yy87; +yy1822: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 590 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I8X16AnyTrue); } -#line 9318 "src/prebuilt/wast-lexer-gen.cc" -yy1823: - yych = *++cursor_; - if (yych == 'l') goto yy1904; - goto yy11; +#line 332 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32Extend8S); } +#line 9714 "src/prebuilt/wast-lexer-gen.cc" yy1824: yych = *++cursor_; - if (yych == 'l') goto yy1905; - goto yy11; + if (yych == 'e') goto yy1915; + goto yy87; yy1825: yych = *++cursor_; - if (yych == 'r') goto yy1906; - goto yy11; + if (yych == '_') goto yy1916; + goto yy87; yy1826: yych = *++cursor_; - if (yych == 'd') goto yy1907; - goto yy11; + if (yych == '_') goto yy1917; + goto yy87; yy1827: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 589 "src/wast-lexer.cc" - { RETURN_OPCODE(Ternary, V128BitSelect); } -#line 9342 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '3') goto yy1918; + if (yych == '6') goto yy1919; + goto yy87; +yy1828: + yych = *++cursor_; + if (yych == 'a') goto yy1920; + goto yy87; yy1829: yych = *++cursor_; - if (yych == 'o') goto yy1908; - goto yy11; + if (yych == '_') goto yy1921; + goto yy87; yy1830: yych = *++cursor_; - if (yych == 'd') goto yy1909; - goto yy11; + if (yych == '3') goto yy1922; + if (yych == '6') goto yy1923; + goto yy87; yy1831: yych = *++cursor_; - if (yych == 'r') goto yy1911; - goto yy11; + if (yych == 'a') goto yy1924; + goto yy87; yy1832: yych = *++cursor_; - if (yych == 'a') goto yy1912; - goto yy11; + if (yych == 'e') goto yy1925; + goto yy87; yy1833: yych = *++cursor_; - if (yych == 'l') goto yy1913; - goto yy11; + if (yych == 'e') goto yy1927; + goto yy87; yy1834: yych = *++cursor_; - if (yych == '3') goto yy1914; - if (yych == '6') goto yy1915; - goto yy11; + if (yych == '_') goto yy1929; + goto yy87; yy1835: yych = *++cursor_; - if (yych == '3') goto yy1916; - if (yych == '6') goto yy1917; - goto yy11; + if (yych == '_') goto yy1930; + goto yy87; yy1836: yych = *++cursor_; - if (yych == '/') goto yy1918; - goto yy11; + if (yych == 'a') goto yy1931; + goto yy87; yy1837: yych = *++cursor_; - if (yych == '/') goto yy1919; - goto yy11; + if (yych == 'a') goto yy1932; + goto yy87; yy1838: yych = *++cursor_; - if (yych == '/') goto yy1920; - goto yy11; + if (yych == 'w') goto yy1933; + goto yy87; yy1839: yych = *++cursor_; - if (yych == 'a') goto yy1921; - goto yy11; + if (yych == 'o') goto yy1934; + goto yy87; yy1840: yych = *++cursor_; - if (yych == 'a') goto yy1922; - goto yy11; + if (yych == 'i') goto yy1935; + goto yy87; yy1841: yych = *++cursor_; - if (yych == '3') goto yy1923; - if (yych == '6') goto yy1924; - goto yy11; + if (yych == 's') goto yy1936; + goto yy87; yy1842: yych = *++cursor_; - if (yych == '3') goto yy1925; - if (yych == '6') goto yy1926; - goto yy11; + if (yych == 's') goto yy1938; + goto yy87; yy1843: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 440 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F64PromoteF32); } -#line 9410 "src/prebuilt/wast-lexer-gen.cc" +#line 334 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64Extend8S); } +#line 9800 "src/prebuilt/wast-lexer-gen.cc" yy1845: yych = *++cursor_; - if (yych == '/') goto yy1927; - goto yy11; + if (yych == '2') goto yy1940; + goto yy87; yy1846: yych = *++cursor_; - if (yych == '/') goto yy1928; - goto yy11; + if (yych == 'i') goto yy1941; + goto yy87; yy1847: yych = *++cursor_; - if (yych == '/') goto yy1929; - goto yy11; + if (yych == 'i') goto yy1942; + goto yy87; yy1848: yych = *++cursor_; - if (yych == 'a') goto yy1930; - goto yy11; + if (yych == 'e') goto yy1943; + goto yy87; yy1849: yych = *++cursor_; - if (yych == 'a') goto yy1931; - goto yy11; + if (yych == '_') goto yy1944; + goto yy87; yy1850: yych = *++cursor_; - if (yych == 'a') goto yy1932; - goto yy11; + if (yych == '_') goto yy1945; + goto yy87; yy1851: yych = *++cursor_; - if (yych == 'a') goto yy1933; - goto yy11; + if (yych == '3') goto yy1946; + if (yych == '6') goto yy1947; + goto yy87; yy1852: yych = *++cursor_; - if (yych == 'a') goto yy1934; - goto yy11; + if (yych == 'a') goto yy1948; + goto yy87; yy1853: yych = *++cursor_; - if (yych == 'a') goto yy1935; - goto yy11; + if (yych == '_') goto yy1949; + goto yy87; yy1854: yych = *++cursor_; - if (yych <= '0') { - if (yych <= '"') { - if (yych == '!') goto yy10; - } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; - } - } else { - if (yych <= '8') { - if (yych <= '1') goto yy1936; - if (yych <= '7') goto yy10; - goto yy1937; - } else { - if (yych == ';') goto yy1855; - if (yych <= '~') goto yy10; - } - } + if (yych == '3') goto yy1950; + if (yych == '6') goto yy1951; + goto yy87; yy1855: -#line 463 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I32AtomicLoad); } -#line 9469 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'a') goto yy1952; + goto yy87; yy1856: yych = *++cursor_; - switch (yych) { - case 'a': goto yy1938; - case 'c': goto yy1939; - case 'o': goto yy1940; - case 's': goto yy1941; - case 'x': goto yy1942; - default: goto yy11; - } + if (yych == 'e') goto yy1953; + goto yy87; yy1857: yych = *++cursor_; - if (yych == '6') goto yy1943; - goto yy11; + if (yych == 'e') goto yy1955; + goto yy87; yy1858: yych = *++cursor_; - if (yych == '_') goto yy1944; - goto yy11; + if (yych == '_') goto yy1957; + goto yy87; yy1859: yych = *++cursor_; - if (yych == 'e') goto yy1945; - goto yy11; + if (yych == '_') goto yy1958; + goto yy87; yy1860: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 460 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicWait, I32AtomicWait); } -#line 9499 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'a') goto yy1959; + goto yy87; +yy1861: + yych = *++cursor_; + if (yych == 'u') goto yy1960; + goto yy87; yy1862: yych = *++cursor_; - if (yych == '/') goto yy1947; - goto yy11; + if (yych == 'e') goto yy1961; + goto yy87; yy1863: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 416 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncSF32); } -#line 9511 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'e') goto yy1963; + goto yy87; +yy1864: + yych = *++cursor_; + if (yych == '_') goto yy1965; + goto yy87; yy1865: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 418 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncSF64); } -#line 9519 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy1966; + goto yy87; +yy1866: + yych = *++cursor_; + if (yych == 'u') goto yy1967; + goto yy87; yy1867: yych = *++cursor_; - if (yych == '/') goto yy1948; - goto yy11; + if (yych == 'n') goto yy1968; + goto yy87; yy1868: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 't') goto yy1969; + goto yy87; +yy1869: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 420 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncUF32); } -#line 9531 "src/prebuilt/wast-lexer-gen.cc" -yy1870: +#line 549 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdShuffleOp, V8X16Shuffle); } +#line 9906 "src/prebuilt/wast-lexer-gen.cc" +yy1871: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 422 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncUF64); } -#line 9539 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'i') goto yy1971; + goto yy87; yy1872: - yych = *++cursor_; - if (yych == '/') goto yy1949; - goto yy11; -yy1873: - yych = *++cursor_; - if (yych == 'a') goto yy1950; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 733 "src/wast-lexer.cc" + { RETURN(AssertInvalid); } +#line 9918 "src/prebuilt/wast-lexer-gen.cc" yy1874: yych = *++cursor_; - if (yych == 'a') goto yy1951; - goto yy11; + if (yych == 'e') goto yy1972; + goto yy87; yy1875: yych = *++cursor_; - if (yych == '3') goto yy1952; - goto yy11; + if (yych == 'a') goto yy1973; + if (yych == 'c') goto yy1974; + goto yy87; yy1876: yych = *++cursor_; - if (yych == '3') goto yy1953; - goto yy11; + if (yych == 'b') goto yy1975; + goto yy87; yy1877: - yych = *++cursor_; - if (yych <= '1') { - if (yych <= '"') { - if (yych == '!') goto yy10; - } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1878; - if (yych <= '0') goto yy10; - goto yy1954; - } - } else { - if (yych <= '8') { - if (yych == '3') goto yy1955; - if (yych <= '7') goto yy10; - goto yy1956; - } else { - if (yych == ';') goto yy1878; - if (yych <= '~') goto yy10; - } + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -yy1878: -#line 464 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I64AtomicLoad); } -#line 9584 "src/prebuilt/wast-lexer-gen.cc" +#line 454 "src/wast-lexer.cc" + { RETURN_OPCODE0(MemorySize); } +#line 9939 "src/prebuilt/wast-lexer-gen.cc" yy1879: yych = *++cursor_; - switch (yych) { - case 'a': goto yy1957; - case 'c': goto yy1958; - case 'o': goto yy1959; - case 's': goto yy1960; - case 'x': goto yy1961; - default: goto yy11; - } + if (yych == '2') goto yy1976; + goto yy87; yy1880: yych = *++cursor_; - if (yych == '6') goto yy1962; - goto yy11; + if (yych == '4') goto yy1977; + goto yy87; yy1881: yych = *++cursor_; - if (yych == '2') goto yy1963; - goto yy11; + if (yych == 'i') goto yy1978; + goto yy87; yy1882: yych = *++cursor_; - if (yych == '_') goto yy1964; - goto yy11; + if (yych == 'i') goto yy1979; + goto yy87; yy1883: - yych = *++cursor_; - if (yych == 'e') goto yy1965; - goto yy11; -yy1884: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 461 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicWait, I64AtomicWait); } -#line 9618 "src/prebuilt/wast-lexer-gen.cc" -yy1886: - yych = *++cursor_; - if (yych == '2') goto yy1967; - goto yy11; +#line 696 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32DemoteF64); } +#line 9963 "src/prebuilt/wast-lexer-gen.cc" +yy1885: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 441 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32DemoteF64); } +#line 9971 "src/prebuilt/wast-lexer-gen.cc" yy1887: yych = *++cursor_; - if (yych == '2') goto yy1969; - goto yy11; + if (yych == 't') goto yy1980; + goto yy87; yy1888: yych = *++cursor_; - if (yych == '/') goto yy1971; - goto yy11; + if (yych == 'i') goto yy1981; + goto yy87; yy1889: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 417 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncSF32); } -#line 9638 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'l') goto yy1982; + goto yy87; +yy1890: + yych = *++cursor_; + if (yych == 'l') goto yy1983; + goto yy87; yy1891: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 419 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncSF64); } -#line 9646 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '2') goto yy1984; + goto yy87; +yy1892: + yych = *++cursor_; + if (yych == '4') goto yy1985; + goto yy87; yy1893: yych = *++cursor_; - if (yych == '/') goto yy1972; - goto yy11; + if (yych == 'i') goto yy1986; + goto yy87; yy1894: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 421 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncUF32); } -#line 9658 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'i') goto yy1987; + goto yy87; +yy1895: + yych = *++cursor_; + if (yych == '2') goto yy1988; + goto yy87; yy1896: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 423 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncUF64); } -#line 9666 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '2') goto yy1990; + goto yy87; +yy1897: + yych = *++cursor_; + if (yych == 't') goto yy1992; + goto yy87; yy1898: yych = *++cursor_; - if (yych == '/') goto yy1973; - goto yy11; + if (yych == 'i') goto yy1993; + goto yy87; yy1899: yych = *++cursor_; - if (yych == 'a') goto yy1974; - goto yy11; + if (yych == 'l') goto yy1994; + goto yy87; yy1900: yych = *++cursor_; - if (yych == 'a') goto yy1975; - goto yy11; + if (yych == 'l') goto yy1995; + goto yy87; yy1901: yych = *++cursor_; - if (yych == '6') goto yy1976; - goto yy11; + if (yych == 'r') goto yy1996; + goto yy87; yy1902: - yych = *++cursor_; - if (yych == '6') goto yy1977; - goto yy11; -yy1903: - yych = *++cursor_; - if (yych == 'a') goto yy1978; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 595 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I16X8AllTrue); } +#line 10039 "src/prebuilt/wast-lexer-gen.cc" yy1904: - yych = *++cursor_; - if (yych == 'a') goto yy1979; - goto yy11; -yy1905: - yych = *++cursor_; - if (yych == 'a') goto yy1980; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 591 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I16X8AnyTrue); } +#line 10047 "src/prebuilt/wast-lexer-gen.cc" yy1906: yych = *++cursor_; - if (yych == 'a') goto yy1981; - goto yy11; + if (yych == 'l') goto yy1997; + goto yy87; yy1907: yych = *++cursor_; - if (yych == 'i') goto yy1982; - goto yy11; + if (yych == 'l') goto yy1998; + goto yy87; yy1908: yych = *++cursor_; - if (yych == 'n') goto yy1983; - goto yy11; + if (yych == 'r') goto yy1999; + goto yy87; yy1909: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'd') goto yy2000; + goto yy87; +yy1910: + yych = *++cursor_; + if (yych <= '0') { + if (yych == '.') goto yy2002; + goto yy87; + } else { + if (yych <= '1') goto yy2003; + if (yych == '8') goto yy2004; + goto yy87; } -#line 691 "src/wast-lexer.cc" - { RETURN(AssertMalformed); } -#line 9718 "src/prebuilt/wast-lexer-gen.cc" yy1911: yych = *++cursor_; - if (yych == 'i') goto yy1985; - goto yy11; + if (yych == 'r') goto yy2005; + goto yy87; yy1912: yych = *++cursor_; - if (yych == 'n') goto yy1986; - goto yy11; + if (yych == 't') goto yy2006; + goto yy87; yy1913: - yych = *++cursor_; - if (yych == 'e') goto yy1987; - goto yy11; -yy1914: - yych = *++cursor_; - if (yych == '2') goto yy1989; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 333 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32Extend16S); } +#line 10089 "src/prebuilt/wast-lexer-gen.cc" yy1915: yych = *++cursor_; - if (yych == '4') goto yy1991; - goto yy11; + if (yych == 't') goto yy2008; + goto yy87; yy1916: yych = *++cursor_; - if (yych == '2') goto yy1993; - goto yy11; + if (yych == 's') goto yy2009; + if (yych == 'u') goto yy2011; + goto yy87; yy1917: yych = *++cursor_; - if (yych == '4') goto yy1995; - goto yy11; + if (yych == 's') goto yy2013; + if (yych == 'u') goto yy2015; + goto yy87; yy1918: yych = *++cursor_; - if (yych == 'i') goto yy1997; - goto yy11; + if (yych == '2') goto yy2017; + goto yy87; yy1919: yych = *++cursor_; - if (yych == 'i') goto yy1998; - goto yy11; + if (yych == '4') goto yy2019; + goto yy87; yy1920: yych = *++cursor_; - if (yych == 'i') goto yy1999; - goto yy11; + if (yych == 't') goto yy2021; + goto yy87; yy1921: yych = *++cursor_; - if (yych == 'n') goto yy2000; - goto yy11; + if (yych == 'f') goto yy2022; + goto yy87; yy1922: yych = *++cursor_; - if (yych == 'n') goto yy2001; - goto yy11; + if (yych == '2') goto yy2023; + goto yy87; yy1923: yych = *++cursor_; - if (yych == '2') goto yy2002; - goto yy11; + if (yych == '4') goto yy2025; + goto yy87; yy1924: yych = *++cursor_; - if (yych == '4') goto yy2004; - goto yy11; + if (yych == 't') goto yy2027; + goto yy87; yy1925: - yych = *++cursor_; - if (yych == '2') goto yy2006; - goto yy11; -yy1926: - yych = *++cursor_; - if (yych == '4') goto yy2008; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 596 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32X4AllTrue); } +#line 10139 "src/prebuilt/wast-lexer-gen.cc" yy1927: - yych = *++cursor_; - if (yych == 'i') goto yy2010; - goto yy11; -yy1928: - yych = *++cursor_; - if (yych == 'i') goto yy2011; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 592 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32X4AnyTrue); } +#line 10147 "src/prebuilt/wast-lexer-gen.cc" yy1929: yych = *++cursor_; - if (yych == 'i') goto yy2012; - goto yy11; + if (yych == 'l') goto yy2028; + goto yy87; yy1930: yych = *++cursor_; - if (yych == 'n') goto yy2013; - goto yy11; + if (yych == 'l') goto yy2029; + goto yy87; yy1931: yych = *++cursor_; - if (yych == 'n') goto yy2014; - goto yy11; + if (yych == 't') goto yy2030; + goto yy87; yy1932: yych = *++cursor_; - if (yych == 't') goto yy2015; - goto yy11; + if (yych == 'd') goto yy2031; + goto yy87; yy1933: yych = *++cursor_; - if (yych == 'n') goto yy2016; - goto yy11; + switch (yych) { + case '.': goto yy2033; + case '1': goto yy2034; + case '3': goto yy2035; + case '8': goto yy2036; + default: goto yy87; + } yy1934: yych = *++cursor_; - if (yych == 'n') goto yy2017; - goto yy11; + if (yych == 'r') goto yy2037; + goto yy87; yy1935: yych = *++cursor_; - if (yych == 't') goto yy2018; - goto yy11; + if (yych == 't') goto yy2038; + goto yy87; yy1936: - yych = *++cursor_; - if (yych == '6') goto yy2019; - goto yy11; -yy1937: - yych = *++cursor_; - if (yych == '_') goto yy2020; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 335 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64Extend16S); } +#line 10188 "src/prebuilt/wast-lexer-gen.cc" yy1938: - yych = *++cursor_; - if (yych == 'd') goto yy2021; - if (yych == 'n') goto yy2022; - goto yy11; -yy1939: - yych = *++cursor_; - if (yych == 'm') goto yy2023; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 336 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64Extend32S); } +#line 10196 "src/prebuilt/wast-lexer-gen.cc" yy1940: yych = *++cursor_; - if (yych == 'r') goto yy2024; - goto yy11; + if (yych == '_') goto yy2040; + goto yy87; yy1941: yych = *++cursor_; - if (yych == 'u') goto yy2026; - goto yy11; + if (yych == '3') goto yy2041; + goto yy87; yy1942: yych = *++cursor_; - if (yych == 'c') goto yy2027; - if (yych == 'o') goto yy2028; - goto yy11; + if (yych == '3') goto yy2042; + goto yy87; yy1943: yych = *++cursor_; - if (yych == '_') goto yy2029; - goto yy11; + if (yych == 't') goto yy2043; + goto yy87; yy1944: yych = *++cursor_; - if (yych == 'u') goto yy2030; - goto yy11; + if (yych == 's') goto yy2044; + if (yych == 'u') goto yy2046; + goto yy87; yy1945: yych = *++cursor_; - if (yych <= '0') { - if (yych <= '"') { - if (yych == '!') goto yy10; - } else { - if (yych <= '\'') goto yy10; - if (yych >= '*') goto yy10; - } - } else { - if (yych <= '8') { - if (yych <= '1') goto yy2031; - if (yych <= '7') goto yy10; - goto yy2032; - } else { - if (yych == ';') goto yy1946; - if (yych <= '~') goto yy10; - } - } + if (yych == 's') goto yy2048; + if (yych == 'u') goto yy2050; + goto yy87; yy1946: -#line 470 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I32AtomicStore); } -#line 9879 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == '2') goto yy2052; + goto yy87; yy1947: yych = *++cursor_; - if (yych == 'f') goto yy2034; - goto yy11; + if (yych == '4') goto yy2054; + goto yy87; yy1948: yych = *++cursor_; - if (yych == 'f') goto yy2035; - goto yy11; + if (yych == 't') goto yy2056; + goto yy87; yy1949: yych = *++cursor_; - if (yych == 'f') goto yy2036; - goto yy11; + if (yych == 'f') goto yy2057; + goto yy87; yy1950: yych = *++cursor_; - if (yych == 'n') goto yy2037; - goto yy11; + if (yych == '2') goto yy2058; + goto yy87; yy1951: yych = *++cursor_; - if (yych == 'n') goto yy2038; - goto yy11; + if (yych == '4') goto yy2060; + goto yy87; yy1952: yych = *++cursor_; - if (yych == '2') goto yy2039; - goto yy11; + if (yych == 't') goto yy2062; + goto yy87; yy1953: - yych = *++cursor_; - if (yych == '2') goto yy2040; - goto yy11; -yy1954: - yych = *++cursor_; - if (yych == '6') goto yy2041; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 597 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64X2AllTrue); } +#line 10258 "src/prebuilt/wast-lexer-gen.cc" yy1955: - yych = *++cursor_; - if (yych == '2') goto yy2042; - goto yy11; -yy1956: - yych = *++cursor_; - if (yych == '_') goto yy2043; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 593 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64X2AnyTrue); } +#line 10266 "src/prebuilt/wast-lexer-gen.cc" yy1957: yych = *++cursor_; - if (yych == 'd') goto yy2044; - if (yych == 'n') goto yy2045; - goto yy11; + if (yych == 'l') goto yy2063; + goto yy87; yy1958: yych = *++cursor_; - if (yych == 'm') goto yy2046; - goto yy11; + if (yych == 'l') goto yy2064; + goto yy87; yy1959: yych = *++cursor_; - if (yych == 'r') goto yy2047; - goto yy11; + if (yych == 't') goto yy2065; + goto yy87; yy1960: yych = *++cursor_; - if (yych == 'u') goto yy2049; - goto yy11; + if (yych == 'r') goto yy2066; + goto yy87; yy1961: - yych = *++cursor_; - if (yych == 'c') goto yy2050; - if (yych == 'o') goto yy2051; - goto yy11; -yy1962: - yych = *++cursor_; - if (yych == '_') goto yy2052; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 594 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I8X16AllTrue); } +#line 10290 "src/prebuilt/wast-lexer-gen.cc" yy1963: - yych = *++cursor_; - if (yych == '_') goto yy2053; - goto yy11; -yy1964: - yych = *++cursor_; - if (yych == 'u') goto yy2054; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 590 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I8X16AnyTrue); } +#line 10298 "src/prebuilt/wast-lexer-gen.cc" yy1965: yych = *++cursor_; - if (yych <= '1') { - if (yych <= '"') { - if (yych == '!') goto yy10; - } else { - if (yych <= '\'') goto yy10; - if (yych <= ')') goto yy1966; - if (yych <= '0') goto yy10; - goto yy2055; - } - } else { - if (yych <= '8') { - if (yych == '3') goto yy2056; - if (yych <= '7') goto yy10; - goto yy2057; - } else { - if (yych == ';') goto yy1966; - if (yych <= '~') goto yy10; - } - } + if (yych == 'l') goto yy2067; + goto yy87; yy1966: -#line 471 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I64AtomicStore); } -#line 9978 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'l') goto yy2068; + goto yy87; yy1967: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 413 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64ExtendSI32); } -#line 9986 "src/prebuilt/wast-lexer-gen.cc" -yy1969: + if (yych == 'r') goto yy2069; + goto yy87; +yy1968: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'd') goto yy2070; + goto yy87; +yy1969: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 414 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64ExtendUI32); } -#line 9994 "src/prebuilt/wast-lexer-gen.cc" +#line 589 "src/wast-lexer.cc" + { RETURN_OPCODE(Ternary, V128BitSelect); } +#line 10322 "src/prebuilt/wast-lexer-gen.cc" yy1971: yych = *++cursor_; - if (yych == 'f') goto yy2059; - goto yy11; + if (yych == 'o') goto yy2071; + goto yy87; yy1972: yych = *++cursor_; - if (yych == 'f') goto yy2060; - goto yy11; + if (yych == 'd') goto yy2072; + goto yy87; yy1973: yych = *++cursor_; - if (yych == 'f') goto yy2061; - goto yy11; + if (yych == 'r') goto yy2074; + goto yy87; yy1974: yych = *++cursor_; - if (yych == 'n') goto yy2062; - goto yy11; + if (yych == 'a') goto yy2075; + goto yy87; yy1975: yych = *++cursor_; - if (yych == 'n') goto yy2063; - goto yy11; + if (yych == 'l') goto yy2076; + goto yy87; yy1976: yych = *++cursor_; - if (yych == '4') goto yy2064; - goto yy11; + if (yych == '_') goto yy2077; + goto yy87; yy1977: yych = *++cursor_; - if (yych == '4') goto yy2065; - goto yy11; + if (yych == '_') goto yy2078; + goto yy87; yy1978: yych = *++cursor_; - if (yych == 't') goto yy2066; - goto yy11; + if (yych == '3') goto yy2079; + if (yych == '6') goto yy2080; + goto yy87; yy1979: yych = *++cursor_; - if (yych == 'n') goto yy2067; - goto yy11; + if (yych == '3') goto yy2081; + if (yych == '6') goto yy2082; + goto yy87; yy1980: yych = *++cursor_; - if (yych == 'n') goto yy2068; - goto yy11; + if (yych == '/') goto yy2083; + if (yych == '_') goto yy2084; + goto yy87; yy1981: yych = *++cursor_; - if (yych == 't') goto yy2069; - goto yy11; + if (yych == '3') goto yy2085; + goto yy87; yy1982: yych = *++cursor_; - if (yych == 'r') goto yy2070; - goto yy11; + if (yych == 'a') goto yy2086; + goto yy87; yy1983: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 698 "src/wast-lexer.cc" - { RETURN(AssertExhaustion); } -#line 10050 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'a') goto yy2087; + goto yy87; +yy1984: + yych = *++cursor_; + if (yych == '_') goto yy2088; + goto yy87; yy1985: yych = *++cursor_; - if (yych == 't') goto yy2071; - goto yy11; + if (yych == '_') goto yy2089; + goto yy87; yy1986: yych = *++cursor_; - if (yych == 'o') goto yy2072; - goto yy11; + if (yych == '3') goto yy2090; + if (yych == '6') goto yy2091; + goto yy87; yy1987: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '3') goto yy2092; + if (yych == '6') goto yy2093; + goto yy87; +yy1988: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 693 "src/wast-lexer.cc" - { RETURN(AssertUnlinkable); } -#line 10066 "src/prebuilt/wast-lexer-gen.cc" -yy1989: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 695 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64PromoteF32); } +#line 10403 "src/prebuilt/wast-lexer-gen.cc" +yy1990: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 432 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F32ConvertSI32); } -#line 10074 "src/prebuilt/wast-lexer-gen.cc" -yy1991: +#line 440 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64PromoteF32); } +#line 10411 "src/prebuilt/wast-lexer-gen.cc" +yy1992: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 434 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F32ConvertSI64); } -#line 10082 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '/') goto yy2094; + if (yych == '_') goto yy2095; + goto yy87; yy1993: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 436 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F32ConvertUI32); } -#line 10090 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '6') goto yy2096; + goto yy87; +yy1994: + yych = *++cursor_; + if (yych == 'a') goto yy2097; + goto yy87; yy1995: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 438 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F32ConvertUI64); } -#line 10098 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'a') goto yy2098; + goto yy87; +yy1996: + yych = *++cursor_; + if (yych == 'a') goto yy2099; + goto yy87; yy1997: yych = *++cursor_; - if (yych == '3') goto yy2073; - goto yy11; + if (yych == 'a') goto yy2100; + goto yy87; yy1998: yych = *++cursor_; - if (yych == '3') goto yy2074; - goto yy11; + if (yych == 'a') goto yy2101; + goto yy87; yy1999: yych = *++cursor_; - if (yych == '3') goto yy2075; - goto yy11; + if (yych == 'a') goto yy2102; + goto yy87; yy2000: - yych = *++cursor_; - if (yych == 'e') goto yy2076; - goto yy11; + ++cursor_; + if ((yych = *cursor_) <= '0') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; + } + } else { + if (yych <= '8') { + if (yych <= '1') goto yy2103; + if (yych <= '7') goto yy86; + goto yy2104; + } else { + if (yych == ';') goto yy2001; + if (yych <= '~') goto yy86; + } + } yy2001: - yych = *++cursor_; - if (yych == 'e') goto yy2078; - goto yy11; +#line 463 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I32AtomicLoad); } +#line 10467 "src/prebuilt/wast-lexer-gen.cc" yy2002: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + switch (yych) { + case 'a': goto yy2105; + case 'c': goto yy2106; + case 'o': goto yy2107; + case 's': goto yy2108; + case 'x': goto yy2109; + default: goto yy87; } -#line 433 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F64ConvertSI32); } -#line 10126 "src/prebuilt/wast-lexer-gen.cc" +yy2003: + yych = *++cursor_; + if (yych == '6') goto yy2110; + goto yy87; yy2004: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 435 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F64ConvertSI64); } -#line 10134 "src/prebuilt/wast-lexer-gen.cc" -yy2006: + if (yych == '.') goto yy2111; + goto yy87; +yy2005: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy2112; + goto yy87; +yy2006: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 437 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F64ConvertUI32); } -#line 10142 "src/prebuilt/wast-lexer-gen.cc" +#line 460 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicWait, I32AtomicWait); } +#line 10497 "src/prebuilt/wast-lexer-gen.cc" yy2008: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '/') goto yy2114; + if (yych == '_') goto yy2115; + goto yy87; +yy2009: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 439 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F64ConvertUI64); } -#line 10150 "src/prebuilt/wast-lexer-gen.cc" -yy2010: - yych = *++cursor_; - if (yych == '6') goto yy2080; - goto yy11; +#line 416 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF32S); } +#line 10510 "src/prebuilt/wast-lexer-gen.cc" yy2011: - yych = *++cursor_; - if (yych == '6') goto yy2081; - goto yy11; -yy2012: - yych = *++cursor_; - if (yych == '6') goto yy2082; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 420 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF32U); } +#line 10518 "src/prebuilt/wast-lexer-gen.cc" yy2013: - yych = *++cursor_; - if (yych == 'e') goto yy2083; - goto yy11; -yy2014: - yych = *++cursor_; - if (yych == 'e') goto yy2085; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 418 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF64S); } +#line 10526 "src/prebuilt/wast-lexer-gen.cc" yy2015: - yych = *++cursor_; - if (yych == 'e') goto yy2087; - goto yy11; -yy2016: - yych = *++cursor_; - if (yych == 'e') goto yy2088; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 422 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF64U); } +#line 10534 "src/prebuilt/wast-lexer-gen.cc" yy2017: - yych = *++cursor_; - if (yych == 'e') goto yy2089; - goto yy11; -yy2018: - yych = *++cursor_; - if (yych == 'e') goto yy2091; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 679 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF32S); } +#line 10542 "src/prebuilt/wast-lexer-gen.cc" yy2019: - yych = *++cursor_; - if (yych == '_') goto yy2092; - goto yy11; -yy2020: - yych = *++cursor_; - if (yych == 'u') goto yy2093; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 681 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF64S); } +#line 10550 "src/prebuilt/wast-lexer-gen.cc" yy2021: yych = *++cursor_; - if (yych == 'd') goto yy2095; - goto yy11; + if (yych == '/') goto yy2116; + goto yy87; yy2022: yych = *++cursor_; - if (yych == 'd') goto yy2097; - goto yy11; + if (yych == '3') goto yy2117; + if (yych == '6') goto yy2118; + goto yy87; yy2023: - yych = *++cursor_; - if (yych == 'p') goto yy2099; - goto yy11; -yy2024: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 498 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmwOr); } -#line 10214 "src/prebuilt/wast-lexer-gen.cc" -yy2026: - yych = *++cursor_; - if (yych == 'b') goto yy2100; - goto yy11; +#line 683 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF32U); } +#line 10567 "src/prebuilt/wast-lexer-gen.cc" +yy2025: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 685 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncF64U); } +#line 10575 "src/prebuilt/wast-lexer-gen.cc" yy2027: yych = *++cursor_; - if (yych == 'h') goto yy2102; - goto yy11; + if (yych == '/') goto yy2119; + goto yy87; yy2028: yych = *++cursor_; - if (yych == 'r') goto yy2103; - goto yy11; + if (yych == 'a') goto yy2120; + goto yy87; yy2029: yych = *++cursor_; - if (yych == 'u') goto yy2105; - goto yy11; + if (yych == 'a') goto yy2121; + goto yy87; yy2030: yych = *++cursor_; - if (yych == '.') goto yy2106; - goto yy11; + if (yych == '_') goto yy2122; + goto yy87; yy2031: - yych = *++cursor_; - if (yych == '6') goto yy2107; - goto yy11; + ++cursor_; + if ((yych = *cursor_) <= '1') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy2032; + if (yych <= '0') goto yy86; + goto yy2123; + } + } else { + if (yych <= '8') { + if (yych == '3') goto yy2124; + if (yych <= '7') goto yy86; + goto yy2125; + } else { + if (yych == ';') goto yy2032; + if (yych <= '~') goto yy86; + } + } yy2032: +#line 464 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I64AtomicLoad); } +#line 10616 "src/prebuilt/wast-lexer-gen.cc" +yy2033: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + switch (yych) { + case 'a': goto yy2126; + case 'c': goto yy2127; + case 'o': goto yy2128; + case 's': goto yy2129; + case 'x': goto yy2130; + default: goto yy87; } -#line 472 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I32AtomicStore8); } -#line 10246 "src/prebuilt/wast-lexer-gen.cc" yy2034: yych = *++cursor_; - if (yych == '3') goto yy2109; - goto yy11; + if (yych == '6') goto yy2131; + goto yy87; yy2035: yych = *++cursor_; - if (yych == '3') goto yy2110; - if (yych == '6') goto yy2111; - goto yy11; + if (yych == '2') goto yy2132; + goto yy87; yy2036: yych = *++cursor_; - if (yych == '3') goto yy2112; - if (yych == '6') goto yy2113; - goto yy11; + if (yych == '.') goto yy2133; + goto yy87; yy2037: yych = *++cursor_; - if (yych == 'e') goto yy2114; - goto yy11; + if (yych == 'e') goto yy2134; + goto yy87; yy2038: - yych = *++cursor_; - if (yych == 'e') goto yy2116; - goto yy11; -yy2039: - yych = *++cursor_; - if (yych == 'x') goto yy2118; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 461 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicWait, I64AtomicWait); } +#line 10650 "src/prebuilt/wast-lexer-gen.cc" yy2040: yych = *++cursor_; - if (yych == 'x') goto yy2119; - goto yy11; + if (yych == 's') goto yy2136; + if (yych == 'u') goto yy2138; + goto yy87; yy2041: yych = *++cursor_; - if (yych == '_') goto yy2120; - goto yy11; + if (yych == '2') goto yy2140; + goto yy87; yy2042: yych = *++cursor_; - if (yych == '_') goto yy2121; - goto yy11; + if (yych == '2') goto yy2142; + goto yy87; yy2043: yych = *++cursor_; - if (yych == 'u') goto yy2122; - goto yy11; + if (yych == '/') goto yy2144; + if (yych == '_') goto yy2145; + goto yy87; yy2044: - yych = *++cursor_; - if (yych == 'd') goto yy2124; - goto yy11; -yy2045: - yych = *++cursor_; - if (yych == 'd') goto yy2126; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 417 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF32S); } +#line 10676 "src/prebuilt/wast-lexer-gen.cc" yy2046: - yych = *++cursor_; - if (yych == 'p') goto yy2128; - goto yy11; -yy2047: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 499 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmwOr); } -#line 10308 "src/prebuilt/wast-lexer-gen.cc" -yy2049: - yych = *++cursor_; - if (yych == 'b') goto yy2129; - goto yy11; +#line 421 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF32U); } +#line 10684 "src/prebuilt/wast-lexer-gen.cc" +yy2048: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 419 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF64S); } +#line 10692 "src/prebuilt/wast-lexer-gen.cc" yy2050: - yych = *++cursor_; - if (yych == 'h') goto yy2131; - goto yy11; -yy2051: - yych = *++cursor_; - if (yych == 'r') goto yy2132; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 423 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF64U); } +#line 10700 "src/prebuilt/wast-lexer-gen.cc" yy2052: - yych = *++cursor_; - if (yych == 'u') goto yy2134; - goto yy11; -yy2053: - yych = *++cursor_; - if (yych == 'u') goto yy2135; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 680 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF32S); } +#line 10708 "src/prebuilt/wast-lexer-gen.cc" yy2054: - yych = *++cursor_; - if (yych == '.') goto yy2136; - goto yy11; -yy2055: - yych = *++cursor_; - if (yych == '6') goto yy2137; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 682 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF64S); } +#line 10716 "src/prebuilt/wast-lexer-gen.cc" yy2056: yych = *++cursor_; - if (yych == '2') goto yy2139; - goto yy11; + if (yych == '/') goto yy2146; + goto yy87; yy2057: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '3') goto yy2147; + if (yych == '6') goto yy2148; + goto yy87; +yy2058: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 474 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I64AtomicStore8); } -#line 10348 "src/prebuilt/wast-lexer-gen.cc" -yy2059: - yych = *++cursor_; - if (yych == '6') goto yy2141; - goto yy11; +#line 684 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF32U); } +#line 10733 "src/prebuilt/wast-lexer-gen.cc" yy2060: - yych = *++cursor_; - if (yych == '3') goto yy2142; - if (yych == '6') goto yy2143; - goto yy11; -yy2061: - yych = *++cursor_; - if (yych == '3') goto yy2144; - if (yych == '6') goto yy2145; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 686 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncF64U); } +#line 10741 "src/prebuilt/wast-lexer-gen.cc" yy2062: yych = *++cursor_; - if (yych == 'e') goto yy2146; - goto yy11; + if (yych == '/') goto yy2149; + goto yy87; yy2063: yych = *++cursor_; - if (yych == 'e') goto yy2148; - goto yy11; + if (yych == 'a') goto yy2150; + goto yy87; yy2064: yych = *++cursor_; - if (yych == 'x') goto yy2150; - goto yy11; + if (yych == 'a') goto yy2151; + goto yy87; yy2065: yych = *++cursor_; - if (yych == 'x') goto yy2151; - goto yy11; + if (yych == '_') goto yy2152; + goto yy87; yy2066: yych = *++cursor_; - if (yych == 'e') goto yy2152; - goto yy11; + if (yych == 'a') goto yy2153; + goto yy87; yy2067: yych = *++cursor_; - if (yych == 'e') goto yy2153; - goto yy11; + if (yych == 'a') goto yy2154; + goto yy87; yy2068: yych = *++cursor_; - if (yych == 'e') goto yy2154; - goto yy11; + if (yych == 'a') goto yy2155; + goto yy87; yy2069: yych = *++cursor_; - if (yych == 'e') goto yy2156; - goto yy11; + if (yych == 'a') goto yy2156; + goto yy87; yy2070: yych = *++cursor_; - if (yych == 'e') goto yy2157; - goto yy11; + if (yych == 'i') goto yy2157; + goto yy87; yy2071: yych = *++cursor_; - if (yych == 'h') goto yy2158; - goto yy11; + if (yych == 'n') goto yy2158; + goto yy87; yy2072: - yych = *++cursor_; - if (yych == 'n') goto yy2159; - goto yy11; -yy2073: - yych = *++cursor_; - if (yych == '2') goto yy2160; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 732 "src/wast-lexer.cc" + { RETURN(AssertMalformed); } +#line 10789 "src/prebuilt/wast-lexer-gen.cc" yy2074: yych = *++cursor_; - if (yych == '2') goto yy2162; - goto yy11; + if (yych == 'i') goto yy2160; + goto yy87; yy2075: yych = *++cursor_; - if (yych == '2') goto yy2163; - goto yy11; + if (yych == 'n') goto yy2161; + goto yy87; yy2076: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 541 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, F32X4ExtractLane); } -#line 10426 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'e') goto yy2162; + goto yy87; +yy2077: + yych = *++cursor_; + if (yych == 's') goto yy2164; + if (yych == 'u') goto yy2166; + goto yy87; yy2078: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 547 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, F32X4ReplaceLane); } -#line 10434 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 's') goto yy2168; + if (yych == 'u') goto yy2170; + goto yy87; +yy2079: + yych = *++cursor_; + if (yych == '2') goto yy2172; + goto yy87; yy2080: yych = *++cursor_; - if (yych == '4') goto yy2164; - goto yy11; + if (yych == '4') goto yy2174; + goto yy87; yy2081: yych = *++cursor_; - if (yych == '4') goto yy2166; - goto yy11; + if (yych == '2') goto yy2176; + goto yy87; yy2082: yych = *++cursor_; - if (yych == '4') goto yy2167; - goto yy11; + if (yych == '4') goto yy2178; + goto yy87; yy2083: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 542 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, F64X2ExtractLane); } -#line 10454 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'i') goto yy2180; + goto yy87; +yy2084: + yych = *++cursor_; + if (yych == 'i') goto yy2181; + goto yy87; yy2085: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 548 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, F64X2ReplaceLane); } -#line 10462 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '2') goto yy2182; + goto yy87; +yy2086: + yych = *++cursor_; + if (yych == 'n') goto yy2183; + goto yy87; yy2087: yych = *++cursor_; - if (yych == '_') goto yy2168; - goto yy11; + if (yych == 'n') goto yy2184; + goto yy87; yy2088: yych = *++cursor_; - if (yych == '_') goto yy2169; - goto yy11; + if (yych == 's') goto yy2185; + if (yych == 'u') goto yy2187; + goto yy87; yy2089: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 544 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I16X8ReplaceLane); } -#line 10478 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 's') goto yy2189; + if (yych == 'u') goto yy2191; + goto yy87; +yy2090: + yych = *++cursor_; + if (yych == '2') goto yy2193; + goto yy87; yy2091: yych = *++cursor_; - if (yych == '_') goto yy2170; - goto yy11; + if (yych == '4') goto yy2195; + goto yy87; yy2092: yych = *++cursor_; - if (yych == 'u') goto yy2171; - goto yy11; + if (yych == '2') goto yy2197; + goto yy87; yy2093: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 465 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I32AtomicLoad8U); } -#line 10494 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '4') goto yy2199; + goto yy87; +yy2094: + yych = *++cursor_; + if (yych == 'i') goto yy2201; + goto yy87; yy2095: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 477 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAdd); } -#line 10502 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'i') goto yy2202; + goto yy87; +yy2096: + yych = *++cursor_; + if (yych == '4') goto yy2203; + goto yy87; yy2097: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 491 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAnd); } -#line 10510 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'n') goto yy2204; + goto yy87; +yy2098: + yych = *++cursor_; + if (yych == 'n') goto yy2205; + goto yy87; yy2099: yych = *++cursor_; - if (yych == 'x') goto yy2173; - goto yy11; + if (yych == 't') goto yy2206; + goto yy87; yy2100: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 484 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmwSub); } -#line 10522 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'n') goto yy2207; + goto yy87; +yy2101: + yych = *++cursor_; + if (yych == 'n') goto yy2208; + goto yy87; yy2102: yych = *++cursor_; - if (yych == 'g') goto yy2174; - goto yy11; + if (yych == 't') goto yy2209; + goto yy87; yy2103: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 505 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXor); } -#line 10534 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '6') goto yy2210; + goto yy87; +yy2104: + yych = *++cursor_; + if (yych == '_') goto yy2211; + goto yy87; yy2105: yych = *++cursor_; - if (yych == '.') goto yy2176; - goto yy11; + if (yych == 'd') goto yy2212; + if (yych == 'n') goto yy2213; + goto yy87; yy2106: yych = *++cursor_; - switch (yych) { - case 'a': goto yy2177; - case 'c': goto yy2178; - case 'o': goto yy2179; - case 's': goto yy2180; - case 'x': goto yy2181; - default: goto yy11; - } + if (yych == 'm') goto yy2214; + goto yy87; yy2107: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 473 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I32AtomicStore16); } -#line 10556 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'r') goto yy2215; + goto yy87; +yy2108: + yych = *++cursor_; + if (yych == 'u') goto yy2217; + goto yy87; yy2109: yych = *++cursor_; - if (yych == '2') goto yy2182; - goto yy11; + if (yych == 'c') goto yy2218; + if (yych == 'o') goto yy2219; + goto yy87; yy2110: yych = *++cursor_; - if (yych == '2') goto yy2184; - goto yy11; + if (yych == '.') goto yy2220; + goto yy87; yy2111: yych = *++cursor_; - if (yych == '4') goto yy2186; - goto yy11; + switch (yych) { + case 'a': goto yy2221; + case 'c': goto yy2222; + case 'o': goto yy2223; + case 's': goto yy2224; + case 'x': goto yy2225; + default: goto yy87; + } yy2112: - yych = *++cursor_; - if (yych == '2') goto yy2188; - goto yy11; + ++cursor_; + if ((yych = *cursor_) <= '0') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych >= '*') goto yy86; + } + } else { + if (yych <= '8') { + if (yych <= '1') goto yy2226; + if (yych <= '7') goto yy86; + goto yy2227; + } else { + if (yych == ';') goto yy2113; + if (yych <= '~') goto yy86; + } + } yy2113: - yych = *++cursor_; - if (yych == '4') goto yy2190; - goto yy11; +#line 470 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I32AtomicStore); } +#line 10976 "src/prebuilt/wast-lexer-gen.cc" yy2114: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 539 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I32X4ExtractLane); } -#line 10584 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'f') goto yy2229; + goto yy87; +yy2115: + yych = *++cursor_; + if (yych == 'f') goto yy2230; + goto yy87; yy2116: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 545 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I32X4ReplaceLane); } -#line 10592 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'f') goto yy2231; + goto yy87; +yy2117: + yych = *++cursor_; + if (yych == '2') goto yy2232; + goto yy87; yy2118: yych = *++cursor_; - if (yych == '4') goto yy2192; - goto yy11; + if (yych == '4') goto yy2233; + goto yy87; yy2119: yych = *++cursor_; - if (yych == '4') goto yy2193; - goto yy11; + if (yych == 'f') goto yy2234; + goto yy87; yy2120: yych = *++cursor_; - if (yych == 'u') goto yy2194; - goto yy11; + if (yych == 'n') goto yy2235; + goto yy87; yy2121: yych = *++cursor_; - if (yych == 'u') goto yy2196; - goto yy11; + if (yych == 'n') goto yy2236; + goto yy87; yy2122: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 467 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I64AtomicLoad8U); } -#line 10616 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'f') goto yy2237; + goto yy87; +yy2123: + yych = *++cursor_; + if (yych == '6') goto yy2238; + goto yy87; yy2124: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 478 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAdd); } -#line 10624 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '2') goto yy2239; + goto yy87; +yy2125: + yych = *++cursor_; + if (yych == '_') goto yy2240; + goto yy87; yy2126: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 492 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAnd); } -#line 10632 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2241; + if (yych == 'n') goto yy2242; + goto yy87; +yy2127: + yych = *++cursor_; + if (yych == 'm') goto yy2243; + goto yy87; yy2128: yych = *++cursor_; - if (yych == 'x') goto yy2198; - goto yy11; + if (yych == 'r') goto yy2244; + goto yy87; yy2129: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 485 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmwSub); } -#line 10644 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'u') goto yy2246; + goto yy87; +yy2130: + yych = *++cursor_; + if (yych == 'c') goto yy2247; + if (yych == 'o') goto yy2248; + goto yy87; yy2131: yych = *++cursor_; - if (yych == 'g') goto yy2199; - goto yy11; + if (yych == '.') goto yy2249; + goto yy87; yy2132: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '.') goto yy2250; + goto yy87; +yy2133: + yych = *++cursor_; + switch (yych) { + case 'a': goto yy2251; + case 'c': goto yy2252; + case 'o': goto yy2253; + case 's': goto yy2254; + case 'x': goto yy2255; + default: goto yy87; } -#line 506 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXor); } -#line 10656 "src/prebuilt/wast-lexer-gen.cc" yy2134: - yych = *++cursor_; - if (yych == '.') goto yy2201; - goto yy11; + ++cursor_; + if ((yych = *cursor_) <= '1') { + if (yych <= '"') { + if (yych == '!') goto yy86; + } else { + if (yych <= '\'') goto yy86; + if (yych <= ')') goto yy2135; + if (yych <= '0') goto yy86; + goto yy2256; + } + } else { + if (yych <= '8') { + if (yych == '3') goto yy2257; + if (yych <= '7') goto yy86; + goto yy2258; + } else { + if (yych == ';') goto yy2135; + if (yych <= '~') goto yy86; + } + } yy2135: - yych = *++cursor_; - if (yych == '.') goto yy2202; - goto yy11; +#line 471 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I64AtomicStore); } +#line 11089 "src/prebuilt/wast-lexer-gen.cc" yy2136: - yych = *++cursor_; - switch (yych) { - case 'a': goto yy2203; - case 'c': goto yy2204; - case 'o': goto yy2205; - case 's': goto yy2206; - case 'x': goto yy2207; - default: goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -yy2137: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 413 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64ExtendI32S); } +#line 11097 "src/prebuilt/wast-lexer-gen.cc" +yy2138: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 475 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I64AtomicStore16); } -#line 10682 "src/prebuilt/wast-lexer-gen.cc" -yy2139: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 414 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64ExtendI32U); } +#line 11105 "src/prebuilt/wast-lexer-gen.cc" +yy2140: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 476 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicStore, I64AtomicStore32); } -#line 10690 "src/prebuilt/wast-lexer-gen.cc" -yy2141: - yych = *++cursor_; - if (yych == '4') goto yy2208; - goto yy11; +#line 676 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64ExtendI32S); } +#line 11113 "src/prebuilt/wast-lexer-gen.cc" yy2142: - yych = *++cursor_; - if (yych == '2') goto yy2210; - goto yy11; -yy2143: - yych = *++cursor_; - if (yych == '4') goto yy2212; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 677 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64ExtendI32U); } +#line 11121 "src/prebuilt/wast-lexer-gen.cc" yy2144: yych = *++cursor_; - if (yych == '2') goto yy2214; - goto yy11; + if (yych == 'f') goto yy2260; + goto yy87; yy2145: yych = *++cursor_; - if (yych == '4') goto yy2216; - goto yy11; + if (yych == 'f') goto yy2261; + goto yy87; yy2146: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 540 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I64X2ExtractLane); } -#line 10718 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'f') goto yy2262; + goto yy87; +yy2147: + yych = *++cursor_; + if (yych == '2') goto yy2263; + goto yy87; yy2148: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 546 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I64X2ReplaceLane); } -#line 10726 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '4') goto yy2264; + goto yy87; +yy2149: + yych = *++cursor_; + if (yych == 'f') goto yy2265; + goto yy87; yy2150: yych = *++cursor_; - if (yych == '2') goto yy2218; - goto yy11; + if (yych == 'n') goto yy2266; + goto yy87; yy2151: yych = *++cursor_; - if (yych == '2') goto yy2219; - goto yy11; + if (yych == 'n') goto yy2267; + goto yy87; yy2152: yych = *++cursor_; - if (yych == '_') goto yy2220; - goto yy11; + if (yych == 'f') goto yy2268; + goto yy87; yy2153: yych = *++cursor_; - if (yych == '_') goto yy2221; - goto yy11; + if (yych == 't') goto yy2269; + goto yy87; yy2154: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 543 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I8X16ReplaceLane); } -#line 10750 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'n') goto yy2270; + goto yy87; +yy2155: + yych = *++cursor_; + if (yych == 'n') goto yy2271; + goto yy87; yy2156: yych = *++cursor_; - if (yych == '_') goto yy2222; - goto yy11; + if (yych == 't') goto yy2272; + goto yy87; yy2157: yych = *++cursor_; - if (yych == 'c') goto yy2223; - goto yy11; + if (yych == 'r') goto yy2273; + goto yy87; yy2158: - yych = *++cursor_; - if (yych == 'm') goto yy2224; - goto yy11; -yy2159: - yych = *++cursor_; - if (yych == 'i') goto yy2225; - goto yy11; -yy2160: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 442 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F32ReinterpretI32); } -#line 10774 "src/prebuilt/wast-lexer-gen.cc" -yy2162: +#line 739 "src/wast-lexer.cc" + { RETURN(AssertExhaustion); } +#line 11185 "src/prebuilt/wast-lexer-gen.cc" +yy2160: yych = *++cursor_; - if (yych == 'x') goto yy2226; - goto yy11; -yy2163: + if (yych == 't') goto yy2274; + goto yy87; +yy2161: yych = *++cursor_; - if (yych == 'x') goto yy2227; - goto yy11; + if (yych == 'o') goto yy2275; + goto yy87; +yy2162: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 734 "src/wast-lexer.cc" + { RETURN(AssertUnlinkable); } +#line 11201 "src/prebuilt/wast-lexer-gen.cc" yy2164: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 444 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, F64ReinterpretI64); } -#line 10790 "src/prebuilt/wast-lexer-gen.cc" +#line 432 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI32S); } +#line 11209 "src/prebuilt/wast-lexer-gen.cc" yy2166: - yych = *++cursor_; - if (yych == 'x') goto yy2228; - goto yy11; -yy2167: - yych = *++cursor_; - if (yych == 'x') goto yy2229; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 436 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI32U); } +#line 11217 "src/prebuilt/wast-lexer-gen.cc" yy2168: - yych = *++cursor_; - if (yych == 's') goto yy2230; - if (yych == 'u') goto yy2232; - goto yy11; -yy2169: - yych = *++cursor_; - if (yych == 's') goto yy2234; - if (yych == 'u') goto yy2236; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 434 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI64S); } +#line 11225 "src/prebuilt/wast-lexer-gen.cc" yy2170: - yych = *++cursor_; - if (yych == 's') goto yy2238; - if (yych == 'u') goto yy2240; - goto yy11; -yy2171: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 466 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I32AtomicLoad16U); } -#line 10821 "src/prebuilt/wast-lexer-gen.cc" -yy2173: - yych = *++cursor_; - if (yych == 'c') goto yy2242; - goto yy11; +#line 438 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI64U); } +#line 11233 "src/prebuilt/wast-lexer-gen.cc" +yy2172: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 687 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI32S); } +#line 11241 "src/prebuilt/wast-lexer-gen.cc" yy2174: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 512 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXchg); } -#line 10833 "src/prebuilt/wast-lexer-gen.cc" +#line 689 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI64S); } +#line 11249 "src/prebuilt/wast-lexer-gen.cc" yy2176: - yych = *++cursor_; - switch (yych) { - case 'a': goto yy2243; - case 'c': goto yy2244; - case 'o': goto yy2245; - case 's': goto yy2246; - case 'x': goto yy2247; - default: goto yy11; - } -yy2177: - yych = *++cursor_; - if (yych == 'd') goto yy2248; - if (yych == 'n') goto yy2249; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 691 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI32U); } +#line 11257 "src/prebuilt/wast-lexer-gen.cc" yy2178: - yych = *++cursor_; - if (yych == 'm') goto yy2250; - goto yy11; -yy2179: - yych = *++cursor_; - if (yych == 'r') goto yy2251; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 693 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ConvertI64U); } +#line 11265 "src/prebuilt/wast-lexer-gen.cc" yy2180: yych = *++cursor_; - if (yych == 'u') goto yy2253; - goto yy11; + if (yych == '3') goto yy2276; + goto yy87; yy2181: yych = *++cursor_; - if (yych == 'c') goto yy2254; - if (yych == 'o') goto yy2255; - goto yy11; + if (yych == '3') goto yy2277; + goto yy87; yy2182: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 443 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32ReinterpretF32); } -#line 10873 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'x') goto yy2278; + goto yy87; +yy2183: + yych = *++cursor_; + if (yych == 'e') goto yy2279; + goto yy87; yy2184: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'e') goto yy2281; + goto yy87; +yy2185: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 424 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncSSatF32); } -#line 10881 "src/prebuilt/wast-lexer-gen.cc" -yy2186: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 433 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI32S); } +#line 11293 "src/prebuilt/wast-lexer-gen.cc" +yy2187: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 426 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncSSatF64); } -#line 10889 "src/prebuilt/wast-lexer-gen.cc" -yy2188: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 437 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI32U); } +#line 11301 "src/prebuilt/wast-lexer-gen.cc" +yy2189: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 428 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncUSatF32); } -#line 10897 "src/prebuilt/wast-lexer-gen.cc" -yy2190: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 435 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI64S); } +#line 11309 "src/prebuilt/wast-lexer-gen.cc" +yy2191: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 430 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I32TruncUSatF64); } -#line 10905 "src/prebuilt/wast-lexer-gen.cc" -yy2192: - yych = *++cursor_; - if (yych == ':') goto yy2256; - goto yy11; +#line 439 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI64U); } +#line 11317 "src/prebuilt/wast-lexer-gen.cc" yy2193: - yych = *++cursor_; - if (yych == ':') goto yy2257; - goto yy11; -yy2194: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 468 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I64AtomicLoad16U); } -#line 10921 "src/prebuilt/wast-lexer-gen.cc" -yy2196: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 688 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI32S); } +#line 11325 "src/prebuilt/wast-lexer-gen.cc" +yy2195: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 469 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicLoad, I64AtomicLoad32U); } -#line 10929 "src/prebuilt/wast-lexer-gen.cc" -yy2198: - yych = *++cursor_; - if (yych == 'c') goto yy2258; - goto yy11; +#line 690 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI64S); } +#line 11333 "src/prebuilt/wast-lexer-gen.cc" +yy2197: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 692 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI32U); } +#line 11341 "src/prebuilt/wast-lexer-gen.cc" yy2199: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 513 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXchg); } -#line 10941 "src/prebuilt/wast-lexer-gen.cc" +#line 694 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ConvertI64U); } +#line 11349 "src/prebuilt/wast-lexer-gen.cc" yy2201: yych = *++cursor_; - switch (yych) { - case 'a': goto yy2259; - case 'c': goto yy2260; - case 'o': goto yy2261; - case 's': goto yy2262; - case 'x': goto yy2263; - default: goto yy11; - } + if (yych == '6') goto yy2283; + goto yy87; yy2202: yych = *++cursor_; - switch (yych) { - case 'a': goto yy2264; - case 'c': goto yy2265; - case 'o': goto yy2266; - case 's': goto yy2267; - case 'x': goto yy2268; - default: goto yy11; - } + if (yych == '6') goto yy2284; + goto yy87; yy2203: yych = *++cursor_; - if (yych == 'd') goto yy2269; - if (yych == 'n') goto yy2270; - goto yy11; + if (yych == 'x') goto yy2285; + goto yy87; yy2204: yych = *++cursor_; - if (yych == 'm') goto yy2271; - goto yy11; + if (yych == 'e') goto yy2286; + goto yy87; yy2205: yych = *++cursor_; - if (yych == 'r') goto yy2272; - goto yy11; + if (yych == 'e') goto yy2288; + goto yy87; yy2206: yych = *++cursor_; - if (yych == 'u') goto yy2274; - goto yy11; + if (yych == 'e') goto yy2290; + goto yy87; yy2207: yych = *++cursor_; - if (yych == 'c') goto yy2275; - if (yych == 'o') goto yy2276; - goto yy11; + if (yych == 'e') goto yy2291; + goto yy87; yy2208: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 445 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64ReinterpretF64); } -#line 10991 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'e') goto yy2292; + goto yy87; +yy2209: + yych = *++cursor_; + if (yych == 'e') goto yy2294; + goto yy87; yy2210: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 425 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncSSatF32); } -#line 10999 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2295; + goto yy87; +yy2211: + yych = *++cursor_; + if (yych == 'u') goto yy2296; + goto yy87; yy2212: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 427 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncSSatF64); } -#line 11007 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2298; + goto yy87; +yy2213: + yych = *++cursor_; + if (yych == 'd') goto yy2300; + goto yy87; yy2214: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'p') goto yy2302; + goto yy87; +yy2215: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 429 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncUSatF32); } -#line 11015 "src/prebuilt/wast-lexer-gen.cc" -yy2216: +#line 498 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmwOr); } +#line 11413 "src/prebuilt/wast-lexer-gen.cc" +yy2217: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 431 "src/wast-lexer.cc" - { RETURN_OPCODE(Convert, I64TruncUSatF64); } -#line 11023 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'b') goto yy2303; + goto yy87; yy2218: yych = *++cursor_; - if (yych == ':') goto yy2277; - goto yy11; + if (yych == 'h') goto yy2305; + goto yy87; yy2219: yych = *++cursor_; - if (yych == ':') goto yy2278; - goto yy11; + if (yych == 'r') goto yy2306; + goto yy87; yy2220: yych = *++cursor_; - if (yych == 's') goto yy2279; - if (yych == 'u') goto yy2281; - goto yy11; + switch (yych) { + case 'a': goto yy2308; + case 'c': goto yy2309; + case 'o': goto yy2310; + case 's': goto yy2311; + case 'x': goto yy2312; + default: goto yy87; + } yy2221: yych = *++cursor_; - if (yych == 's') goto yy2283; - if (yych == 'u') goto yy2285; - goto yy11; + if (yych == 'd') goto yy2313; + if (yych == 'n') goto yy2314; + goto yy87; yy2222: yych = *++cursor_; - if (yych == 's') goto yy2287; - if (yych == 'u') goto yy2289; - goto yy11; + if (yych == 'm') goto yy2315; + goto yy87; yy2223: yych = *++cursor_; - if (yych == 't') goto yy2291; - goto yy11; + if (yych == 'r') goto yy2316; + goto yy87; yy2224: yych = *++cursor_; - if (yych == 'e') goto yy2293; - goto yy11; + if (yych == 'u') goto yy2317; + goto yy87; yy2225: yych = *++cursor_; - if (yych == 'c') goto yy2294; - goto yy11; + if (yych == 'c') goto yy2318; + if (yych == 'o') goto yy2319; + goto yy87; yy2226: yych = *++cursor_; - if (yych == '4') goto yy2295; - goto yy11; + if (yych == '6') goto yy2320; + goto yy87; yy2227: - yych = *++cursor_; - if (yych == '4') goto yy2297; - goto yy11; -yy2228: - yych = *++cursor_; - if (yych == '2') goto yy2299; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 472 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I32AtomicStore8); } +#line 11469 "src/prebuilt/wast-lexer-gen.cc" yy2229: yych = *++cursor_; - if (yych == '2') goto yy2301; - goto yy11; + if (yych == '3') goto yy2322; + goto yy87; yy2230: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 567 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I16X8AddSaturateS); } -#line 11082 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '3') goto yy2323; + goto yy87; +yy2231: + yych = *++cursor_; + if (yych == '3') goto yy2324; + if (yych == '6') goto yy2325; + goto yy87; yy2232: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 568 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I16X8AddSaturateU); } -#line 11090 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2326; + goto yy87; +yy2233: + yych = *++cursor_; + if (yych == '_') goto yy2327; + goto yy87; yy2234: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 537 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I16X8ExtractLaneS); } -#line 11098 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '3') goto yy2328; + if (yych == '6') goto yy2329; + goto yy87; +yy2235: + yych = *++cursor_; + if (yych == 'e') goto yy2330; + goto yy87; yy2236: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 538 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I16X8ExtractLaneU); } -#line 11106 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'e') goto yy2332; + goto yy87; +yy2237: + yych = *++cursor_; + if (yych == '3') goto yy2334; + goto yy87; yy2238: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 571 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I16X8SubSaturateS); } -#line 11114 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2335; + goto yy87; +yy2239: + yych = *++cursor_; + if (yych == '_') goto yy2336; + goto yy87; yy2240: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 572 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I16X8SubSaturateU); } -#line 11122 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'u') goto yy2337; + goto yy87; +yy2241: + yych = *++cursor_; + if (yych == 'd') goto yy2339; + goto yy87; yy2242: yych = *++cursor_; - if (yych == 'h') goto yy2303; - goto yy11; + if (yych == 'd') goto yy2341; + goto yy87; yy2243: yych = *++cursor_; - if (yych == 'd') goto yy2304; - if (yych == 'n') goto yy2305; - goto yy11; + if (yych == 'p') goto yy2343; + goto yy87; yy2244: - yych = *++cursor_; - if (yych == 'm') goto yy2306; - goto yy11; -yy2245: - yych = *++cursor_; - if (yych == 'r') goto yy2307; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 499 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmwOr); } +#line 11539 "src/prebuilt/wast-lexer-gen.cc" yy2246: yych = *++cursor_; - if (yych == 'u') goto yy2309; - goto yy11; + if (yych == 'b') goto yy2344; + goto yy87; yy2247: yych = *++cursor_; - if (yych == 'c') goto yy2310; - if (yych == 'o') goto yy2311; - goto yy11; + if (yych == 'h') goto yy2346; + goto yy87; yy2248: yych = *++cursor_; - if (yych == 'd') goto yy2312; - goto yy11; + if (yych == 'r') goto yy2347; + goto yy87; yy2249: yych = *++cursor_; - if (yych == 'd') goto yy2314; - goto yy11; + switch (yych) { + case 'a': goto yy2349; + case 'c': goto yy2350; + case 'o': goto yy2351; + case 's': goto yy2352; + case 'x': goto yy2353; + default: goto yy87; + } yy2250: yych = *++cursor_; - if (yych == 'p') goto yy2316; - goto yy11; + switch (yych) { + case 'a': goto yy2354; + case 'c': goto yy2355; + case 'o': goto yy2356; + case 's': goto yy2357; + case 'x': goto yy2358; + default: goto yy87; + } yy2251: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 500 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UOr); } -#line 11168 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2359; + if (yych == 'n') goto yy2360; + goto yy87; +yy2252: + yych = *++cursor_; + if (yych == 'm') goto yy2361; + goto yy87; yy2253: yych = *++cursor_; - if (yych == 'b') goto yy2317; - goto yy11; + if (yych == 'r') goto yy2362; + goto yy87; yy2254: yych = *++cursor_; - if (yych == 'h') goto yy2319; - goto yy11; + if (yych == 'u') goto yy2363; + goto yy87; yy2255: yych = *++cursor_; - if (yych == 'r') goto yy2320; - goto yy11; + if (yych == 'c') goto yy2364; + if (yych == 'o') goto yy2365; + goto yy87; yy2256: yych = *++cursor_; - if (yych == 's') goto yy2322; - goto yy11; + if (yych == '6') goto yy2366; + goto yy87; yy2257: yych = *++cursor_; - if (yych == 's') goto yy2323; - goto yy11; + if (yych == '2') goto yy2368; + goto yy87; yy2258: - yych = *++cursor_; - if (yych == 'h') goto yy2324; - goto yy11; -yy2259: - yych = *++cursor_; - if (yych == 'd') goto yy2325; - if (yych == 'n') goto yy2326; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 474 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I64AtomicStore8); } +#line 11609 "src/prebuilt/wast-lexer-gen.cc" yy2260: yych = *++cursor_; - if (yych == 'm') goto yy2327; - goto yy11; + if (yych == '6') goto yy2370; + goto yy87; yy2261: yych = *++cursor_; - if (yych == 'r') goto yy2328; - goto yy11; + if (yych == '6') goto yy2371; + goto yy87; yy2262: yych = *++cursor_; - if (yych == 'u') goto yy2330; - goto yy11; + if (yych == '3') goto yy2372; + if (yych == '6') goto yy2373; + goto yy87; yy2263: yych = *++cursor_; - if (yych == 'c') goto yy2331; - if (yych == 'o') goto yy2332; - goto yy11; + if (yych == '_') goto yy2374; + goto yy87; yy2264: yych = *++cursor_; - if (yych == 'd') goto yy2333; - if (yych == 'n') goto yy2334; - goto yy11; + if (yych == '_') goto yy2375; + goto yy87; yy2265: yych = *++cursor_; - if (yych == 'm') goto yy2335; - goto yy11; + if (yych == '3') goto yy2376; + if (yych == '6') goto yy2377; + goto yy87; yy2266: yych = *++cursor_; - if (yych == 'r') goto yy2336; - goto yy11; + if (yych == 'e') goto yy2378; + goto yy87; yy2267: yych = *++cursor_; - if (yych == 'u') goto yy2338; - goto yy11; + if (yych == 'e') goto yy2380; + goto yy87; yy2268: yych = *++cursor_; - if (yych == 'c') goto yy2339; - if (yych == 'o') goto yy2340; - goto yy11; + if (yych == '6') goto yy2382; + goto yy87; yy2269: yych = *++cursor_; - if (yych == 'd') goto yy2341; - goto yy11; + if (yych == 'e') goto yy2383; + goto yy87; yy2270: yych = *++cursor_; - if (yych == 'd') goto yy2343; - goto yy11; + if (yych == 'e') goto yy2384; + goto yy87; yy2271: yych = *++cursor_; - if (yych == 'p') goto yy2345; - goto yy11; + if (yych == 'e') goto yy2385; + goto yy87; yy2272: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 502 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UOr); } -#line 11256 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'e') goto yy2387; + goto yy87; +yy2273: + yych = *++cursor_; + if (yych == 'e') goto yy2388; + goto yy87; yy2274: yych = *++cursor_; - if (yych == 'b') goto yy2346; - goto yy11; + if (yych == 'h') goto yy2389; + goto yy87; yy2275: yych = *++cursor_; - if (yych == 'h') goto yy2348; - goto yy11; + if (yych == 'n') goto yy2390; + goto yy87; yy2276: yych = *++cursor_; - if (yych == 'r') goto yy2349; - goto yy11; + if (yych == '2') goto yy2391; + goto yy87; yy2277: yych = *++cursor_; - if (yych == 's') goto yy2351; - goto yy11; + if (yych == '2') goto yy2393; + goto yy87; yy2278: yych = *++cursor_; - if (yych == 's') goto yy2352; - goto yy11; + if (yych == '4') goto yy2395; + goto yy87; yy2279: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 565 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I8X16AddSaturateS); } -#line 11284 "src/prebuilt/wast-lexer-gen.cc" +#line 541 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, F32X4ExtractLane); } +#line 11695 "src/prebuilt/wast-lexer-gen.cc" yy2281: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 566 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I8X16AddSaturateU); } -#line 11292 "src/prebuilt/wast-lexer-gen.cc" +#line 547 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, F32X4ReplaceLane); } +#line 11703 "src/prebuilt/wast-lexer-gen.cc" yy2283: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 535 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I8X16ExtractLaneS); } -#line 11300 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '4') goto yy2396; + goto yy87; +yy2284: + yych = *++cursor_; + if (yych == '4') goto yy2398; + goto yy87; yy2285: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '2') goto yy2400; + goto yy87; +yy2286: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 536 "src/wast-lexer.cc" - { RETURN_OPCODE(SimdLaneOp, I8X16ExtractLaneU); } -#line 11308 "src/prebuilt/wast-lexer-gen.cc" -yy2287: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 542 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, F64X2ExtractLane); } +#line 11723 "src/prebuilt/wast-lexer-gen.cc" +yy2288: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 569 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I8X16SubSaturateS); } -#line 11316 "src/prebuilt/wast-lexer-gen.cc" -yy2289: +#line 548 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, F64X2ReplaceLane); } +#line 11731 "src/prebuilt/wast-lexer-gen.cc" +yy2290: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 570 "src/wast-lexer.cc" - { RETURN_OPCODE(Binary, I8X16SubSaturateU); } -#line 11324 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2401; + goto yy87; yy2291: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy2402; + goto yy87; +yy2292: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 667 "src/wast-lexer.cc" - { RETURN_OPCODE0(ReturnCallIndirect); } -#line 11332 "src/prebuilt/wast-lexer-gen.cc" -yy2293: - yych = *++cursor_; - if (yych == 't') goto yy2353; - goto yy11; +#line 544 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I16X8ReplaceLane); } +#line 11747 "src/prebuilt/wast-lexer-gen.cc" yy2294: yych = *++cursor_; - if (yych == 'a') goto yy2354; - goto yy11; + if (yych == '_') goto yy2403; + goto yy87; yy2295: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'u') goto yy2404; + goto yy87; +yy2296: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 658 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, F32X4ConvertSI32X4); } -#line 11348 "src/prebuilt/wast-lexer-gen.cc" -yy2297: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 465 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I32AtomicLoad8U); } +#line 11763 "src/prebuilt/wast-lexer-gen.cc" +yy2298: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 659 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, F32X4ConvertUI32X4); } -#line 11356 "src/prebuilt/wast-lexer-gen.cc" -yy2299: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 477 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAdd); } +#line 11771 "src/prebuilt/wast-lexer-gen.cc" +yy2300: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 660 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, F64X2ConvertSI64X2); } -#line 11364 "src/prebuilt/wast-lexer-gen.cc" -yy2301: +#line 491 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAnd); } +#line 11779 "src/prebuilt/wast-lexer-gen.cc" +yy2302: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 661 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, F64X2ConvertUI64X2); } -#line 11372 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'x') goto yy2406; + goto yy87; yy2303: - yych = *++cursor_; - if (yych == 'g') goto yy2355; - goto yy11; -yy2304: - yych = *++cursor_; - if (yych == 'd') goto yy2357; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 484 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmwSub); } +#line 11791 "src/prebuilt/wast-lexer-gen.cc" yy2305: yych = *++cursor_; - if (yych == 'd') goto yy2359; - goto yy11; + if (yych == 'g') goto yy2407; + goto yy87; yy2306: - yych = *++cursor_; - if (yych == 'p') goto yy2361; - goto yy11; -yy2307: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 501 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UOr); } -#line 11396 "src/prebuilt/wast-lexer-gen.cc" +#line 505 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXor); } +#line 11803 "src/prebuilt/wast-lexer-gen.cc" +yy2308: + yych = *++cursor_; + if (yych == 'd') goto yy2409; + if (yych == 'n') goto yy2410; + goto yy87; yy2309: yych = *++cursor_; - if (yych == 'b') goto yy2362; - goto yy11; + if (yych == 'm') goto yy2411; + goto yy87; yy2310: yych = *++cursor_; - if (yych == 'h') goto yy2364; - goto yy11; + if (yych == 'r') goto yy2412; + goto yy87; yy2311: yych = *++cursor_; - if (yych == 'r') goto yy2365; - goto yy11; + if (yych == 'u') goto yy2413; + goto yy87; yy2312: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 479 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAdd); } -#line 11416 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'c') goto yy2414; + if (yych == 'o') goto yy2415; + goto yy87; +yy2313: + yych = *++cursor_; + if (yych == 'd') goto yy2416; + goto yy87; yy2314: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 493 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAnd); } -#line 11424 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2417; + goto yy87; +yy2315: + yych = *++cursor_; + if (yych == 'p') goto yy2418; + goto yy87; yy2316: yych = *++cursor_; - if (yych == 'x') goto yy2367; - goto yy11; + if (yych == '_') goto yy2419; + goto yy87; yy2317: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 486 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8USub); } -#line 11436 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'b') goto yy2420; + goto yy87; +yy2318: + yych = *++cursor_; + if (yych == 'h') goto yy2421; + goto yy87; yy2319: yych = *++cursor_; - if (yych == 'g') goto yy2368; - goto yy11; + if (yych == 'r') goto yy2422; + goto yy87; yy2320: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 507 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXor); } -#line 11448 "src/prebuilt/wast-lexer-gen.cc" +#line 473 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I32AtomicStore16); } +#line 11861 "src/prebuilt/wast-lexer-gen.cc" yy2322: yych = *++cursor_; - if (yych == 'a') goto yy2370; - goto yy11; + if (yych == '2') goto yy2423; + goto yy87; yy2323: yych = *++cursor_; - if (yych == 'a') goto yy2371; - goto yy11; + if (yych == '2') goto yy2425; + goto yy87; yy2324: yych = *++cursor_; - if (yych == 'g') goto yy2372; - goto yy11; + if (yych == '2') goto yy2427; + goto yy87; yy2325: yych = *++cursor_; - if (yych == 'd') goto yy2374; - goto yy11; + if (yych == '4') goto yy2429; + goto yy87; yy2326: yych = *++cursor_; - if (yych == 'd') goto yy2376; - goto yy11; + if (yych == 's') goto yy2431; + if (yych == 'u') goto yy2433; + goto yy87; yy2327: yych = *++cursor_; - if (yych == 'p') goto yy2378; - goto yy11; + if (yych == 's') goto yy2435; + if (yych == 'u') goto yy2437; + goto yy87; yy2328: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 503 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UOr); } -#line 11480 "src/prebuilt/wast-lexer-gen.cc" -yy2330: + if (yych == '2') goto yy2439; + goto yy87; +yy2329: yych = *++cursor_; - if (yych == 'b') goto yy2379; - goto yy11; -yy2331: - yych = *++cursor_; - if (yych == 'h') goto yy2381; - goto yy11; + if (yych == '4') goto yy2441; + goto yy87; +yy2330: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 539 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I32X4ExtractLane); } +#line 11903 "src/prebuilt/wast-lexer-gen.cc" yy2332: - yych = *++cursor_; - if (yych == 'r') goto yy2382; - goto yy11; -yy2333: - yych = *++cursor_; - if (yych == 'd') goto yy2384; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 545 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I32X4ReplaceLane); } +#line 11911 "src/prebuilt/wast-lexer-gen.cc" yy2334: yych = *++cursor_; - if (yych == 'd') goto yy2386; - goto yy11; + if (yych == '2') goto yy2443; + goto yy87; yy2335: yych = *++cursor_; - if (yych == 'p') goto yy2388; - goto yy11; + if (yych == 'u') goto yy2444; + goto yy87; yy2336: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'u') goto yy2446; + goto yy87; +yy2337: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 504 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UOr); } -#line 11512 "src/prebuilt/wast-lexer-gen.cc" -yy2338: - yych = *++cursor_; - if (yych == 'b') goto yy2389; - goto yy11; +#line 467 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I64AtomicLoad8U); } +#line 11931 "src/prebuilt/wast-lexer-gen.cc" yy2339: - yych = *++cursor_; - if (yych == 'h') goto yy2391; - goto yy11; -yy2340: - yych = *++cursor_; - if (yych == 'r') goto yy2392; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 478 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAdd); } +#line 11939 "src/prebuilt/wast-lexer-gen.cc" yy2341: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 481 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAdd); } -#line 11532 "src/prebuilt/wast-lexer-gen.cc" +#line 492 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAnd); } +#line 11947 "src/prebuilt/wast-lexer-gen.cc" yy2343: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'x') goto yy2448; + goto yy87; +yy2344: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 495 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAnd); } -#line 11540 "src/prebuilt/wast-lexer-gen.cc" -yy2345: - yych = *++cursor_; - if (yych == 'x') goto yy2394; - goto yy11; +#line 485 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmwSub); } +#line 11959 "src/prebuilt/wast-lexer-gen.cc" yy2346: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'g') goto yy2449; + goto yy87; +yy2347: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 488 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8USub); } -#line 11552 "src/prebuilt/wast-lexer-gen.cc" -yy2348: - yych = *++cursor_; - if (yych == 'g') goto yy2395; - goto yy11; +#line 506 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXor); } +#line 11971 "src/prebuilt/wast-lexer-gen.cc" yy2349: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 509 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXor); } -#line 11564 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2451; + if (yych == 'n') goto yy2452; + goto yy87; +yy2350: + yych = *++cursor_; + if (yych == 'm') goto yy2453; + goto yy87; yy2351: yych = *++cursor_; - if (yych == 'a') goto yy2397; - goto yy11; + if (yych == 'r') goto yy2454; + goto yy87; yy2352: yych = *++cursor_; - if (yych == 'a') goto yy2398; - goto yy11; + if (yych == 'u') goto yy2455; + goto yy87; yy2353: yych = *++cursor_; - if (yych == 'i') goto yy2399; - goto yy11; + if (yych == 'c') goto yy2456; + if (yych == 'o') goto yy2457; + goto yy87; yy2354: yych = *++cursor_; - if (yych == 'l') goto yy2400; - goto yy11; + if (yych == 'd') goto yy2458; + if (yych == 'n') goto yy2459; + goto yy87; yy2355: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 519 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmwCmpxchg); } -#line 11588 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'm') goto yy2460; + goto yy87; +yy2356: + yych = *++cursor_; + if (yych == 'r') goto yy2461; + goto yy87; yy2357: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 480 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAdd); } -#line 11596 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'u') goto yy2462; + goto yy87; +yy2358: + yych = *++cursor_; + if (yych == 'c') goto yy2463; + if (yych == 'o') goto yy2464; + goto yy87; yy2359: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 494 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAnd); } -#line 11604 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2465; + goto yy87; +yy2360: + yych = *++cursor_; + if (yych == 'd') goto yy2466; + goto yy87; yy2361: yych = *++cursor_; - if (yych == 'x') goto yy2401; - goto yy11; + if (yych == 'p') goto yy2467; + goto yy87; yy2362: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 487 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16USub); } -#line 11616 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2468; + goto yy87; +yy2363: + yych = *++cursor_; + if (yych == 'b') goto yy2469; + goto yy87; yy2364: yych = *++cursor_; - if (yych == 'g') goto yy2402; - goto yy11; + if (yych == 'h') goto yy2470; + goto yy87; yy2365: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'r') goto yy2471; + goto yy87; +yy2366: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 508 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXor); } -#line 11628 "src/prebuilt/wast-lexer-gen.cc" -yy2367: - yych = *++cursor_; - if (yych == 'c') goto yy2404; - goto yy11; +#line 475 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I64AtomicStore16); } +#line 12051 "src/prebuilt/wast-lexer-gen.cc" yy2368: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 514 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXchg); } -#line 11640 "src/prebuilt/wast-lexer-gen.cc" +#line 476 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicStore, I64AtomicStore32); } +#line 12059 "src/prebuilt/wast-lexer-gen.cc" yy2370: yych = *++cursor_; - if (yych == 't') goto yy2405; - goto yy11; + if (yych == '4') goto yy2472; + goto yy87; yy2371: yych = *++cursor_; - if (yych == 't') goto yy2407; - goto yy11; + if (yych == '4') goto yy2474; + goto yy87; yy2372: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 520 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmwCmpxchg); } -#line 11656 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '2') goto yy2476; + goto yy87; +yy2373: + yych = *++cursor_; + if (yych == '4') goto yy2478; + goto yy87; yy2374: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 482 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAdd); } -#line 11664 "src/prebuilt/wast-lexer-gen.cc" -yy2376: + if (yych == 's') goto yy2480; + if (yych == 'u') goto yy2482; + goto yy87; +yy2375: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 496 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAnd); } -#line 11672 "src/prebuilt/wast-lexer-gen.cc" -yy2378: + if (yych == 's') goto yy2484; + if (yych == 'u') goto yy2486; + goto yy87; +yy2376: yych = *++cursor_; - if (yych == 'x') goto yy2409; - goto yy11; -yy2379: + if (yych == '2') goto yy2488; + goto yy87; +yy2377: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '4') goto yy2490; + goto yy87; +yy2378: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 489 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16USub); } -#line 11684 "src/prebuilt/wast-lexer-gen.cc" -yy2381: - yych = *++cursor_; - if (yych == 'g') goto yy2410; - goto yy11; +#line 540 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I64X2ExtractLane); } +#line 12101 "src/prebuilt/wast-lexer-gen.cc" +yy2380: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 546 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I64X2ReplaceLane); } +#line 12109 "src/prebuilt/wast-lexer-gen.cc" yy2382: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 510 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXor); } -#line 11696 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '4') goto yy2492; + goto yy87; +yy2383: + yych = *++cursor_; + if (yych == '_') goto yy2493; + goto yy87; yy2384: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy2494; + goto yy87; +yy2385: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 483 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAdd); } -#line 11704 "src/prebuilt/wast-lexer-gen.cc" -yy2386: +#line 543 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I8X16ReplaceLane); } +#line 12129 "src/prebuilt/wast-lexer-gen.cc" +yy2387: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 497 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAnd); } -#line 11712 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2495; + goto yy87; yy2388: yych = *++cursor_; - if (yych == 'x') goto yy2412; - goto yy11; + if (yych == 'c') goto yy2496; + goto yy87; yy2389: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 490 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32USub); } -#line 11724 "src/prebuilt/wast-lexer-gen.cc" -yy2391: - yych = *++cursor_; - if (yych == 'g') goto yy2413; - goto yy11; -yy2392: + if (yych == 'm') goto yy2497; + goto yy87; +yy2390: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'i') goto yy2498; + goto yy87; +yy2391: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 511 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXor); } -#line 11736 "src/prebuilt/wast-lexer-gen.cc" -yy2394: - yych = *++cursor_; - if (yych == 'c') goto yy2415; - goto yy11; +#line 697 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ReinterpretI32); } +#line 12153 "src/prebuilt/wast-lexer-gen.cc" +yy2393: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 442 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F32ReinterpretI32); } +#line 12161 "src/prebuilt/wast-lexer-gen.cc" yy2395: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == '_') goto yy2499; + goto yy87; +yy2396: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 516 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXchg); } -#line 11748 "src/prebuilt/wast-lexer-gen.cc" -yy2397: - yych = *++cursor_; - if (yych == 't') goto yy2416; - goto yy11; +#line 699 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ReinterpretI64); } +#line 12173 "src/prebuilt/wast-lexer-gen.cc" yy2398: - yych = *++cursor_; - if (yych == 't') goto yy2418; - goto yy11; -yy2399: - yych = *++cursor_; - if (yych == 'c') goto yy2420; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 444 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, F64ReinterpretI64); } +#line 12181 "src/prebuilt/wast-lexer-gen.cc" yy2400: yych = *++cursor_; - if (yych == '_') goto yy2421; - goto yy11; + if (yych == '_') goto yy2500; + goto yy87; yy2401: yych = *++cursor_; - if (yych == 'c') goto yy2422; - goto yy11; + if (yych == 's') goto yy2501; + if (yych == 'u') goto yy2503; + goto yy87; yy2402: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 515 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXchg); } -#line 11776 "src/prebuilt/wast-lexer-gen.cc" -yy2404: - yych = *++cursor_; - if (yych == 'h') goto yy2423; - goto yy11; -yy2405: + if (yych == 's') goto yy2505; + if (yych == 'u') goto yy2507; + goto yy87; +yy2403: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 's') goto yy2509; + if (yych == 'u') goto yy2511; + goto yy87; +yy2404: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 662 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32X4TruncSF32X4Sat); } -#line 11788 "src/prebuilt/wast-lexer-gen.cc" -yy2407: +#line 466 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I32AtomicLoad16U); } +#line 12208 "src/prebuilt/wast-lexer-gen.cc" +yy2406: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'c') goto yy2513; + goto yy87; +yy2407: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 663 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32X4TruncUF32X4Sat); } -#line 11796 "src/prebuilt/wast-lexer-gen.cc" +#line 512 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXchg); } +#line 12220 "src/prebuilt/wast-lexer-gen.cc" yy2409: yych = *++cursor_; - if (yych == 'c') goto yy2424; - goto yy11; + if (yych == 'd') goto yy2514; + goto yy87; yy2410: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 517 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXchg); } -#line 11808 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'd') goto yy2515; + goto yy87; +yy2411: + yych = *++cursor_; + if (yych == 'p') goto yy2516; + goto yy87; yy2412: yych = *++cursor_; - if (yych == 'c') goto yy2425; - goto yy11; + if (yych == '_') goto yy2517; + goto yy87; yy2413: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 518 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXchg); } -#line 11820 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'b') goto yy2518; + goto yy87; +yy2414: + yych = *++cursor_; + if (yych == 'h') goto yy2519; + goto yy87; yy2415: yych = *++cursor_; - if (yych == 'h') goto yy2426; - goto yy11; + if (yych == 'r') goto yy2520; + goto yy87; yy2416: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 664 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64X2TruncSF64X2Sat); } -#line 11832 "src/prebuilt/wast-lexer-gen.cc" + if (yych == '_') goto yy2521; + goto yy87; +yy2417: + yych = *++cursor_; + if (yych == '_') goto yy2522; + goto yy87; yy2418: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; - } -#line 665 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I64X2TruncUF64X2Sat); } -#line 11840 "src/prebuilt/wast-lexer-gen.cc" + if (yych == 'x') goto yy2523; + goto yy87; +yy2419: + yych = *++cursor_; + if (yych == 'u') goto yy2524; + goto yy87; yy2420: yych = *++cursor_; - if (yych == '_') goto yy2427; - goto yy11; + if (yych == '_') goto yy2526; + goto yy87; yy2421: yych = *++cursor_; - if (yych == 'n') goto yy2428; - goto yy11; + if (yych == 'g') goto yy2527; + goto yy87; yy2422: yych = *++cursor_; - if (yych == 'h') goto yy2429; - goto yy11; + if (yych == '_') goto yy2528; + goto yy87; yy2423: - yych = *++cursor_; - if (yych == 'g') goto yy2430; - goto yy11; -yy2424: - yych = *++cursor_; - if (yych == 'h') goto yy2432; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 698 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32ReinterpretF32); } +#line 12284 "src/prebuilt/wast-lexer-gen.cc" yy2425: - yych = *++cursor_; - if (yych == 'h') goto yy2433; - goto yy11; -yy2426: - yych = *++cursor_; - if (yych == 'g') goto yy2434; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 443 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32ReinterpretF32); } +#line 12292 "src/prebuilt/wast-lexer-gen.cc" yy2427: - yych = *++cursor_; - if (yych == 'n') goto yy2436; - goto yy11; -yy2428: - yych = *++cursor_; - if (yych == 'a') goto yy2437; - goto yy11; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 701 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF32S); } +#line 12300 "src/prebuilt/wast-lexer-gen.cc" yy2429: - yych = *++cursor_; - if (yych == 'g') goto yy2438; - goto yy11; -yy2430: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 521 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8UCmpxchg); } -#line 11888 "src/prebuilt/wast-lexer-gen.cc" -yy2432: - yych = *++cursor_; - if (yych == 'g') goto yy2440; - goto yy11; +#line 703 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF64S); } +#line 12308 "src/prebuilt/wast-lexer-gen.cc" +yy2431: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 424 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF32S); } +#line 12316 "src/prebuilt/wast-lexer-gen.cc" yy2433: - yych = *++cursor_; - if (yych == 'g') goto yy2442; - goto yy11; -yy2434: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 523 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8UCmpxchg); } -#line 11904 "src/prebuilt/wast-lexer-gen.cc" -yy2436: - yych = *++cursor_; - if (yych == 'a') goto yy2444; - goto yy11; -yy2437: - yych = *++cursor_; - if (yych == 'n') goto yy2445; - goto yy11; -yy2438: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 428 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF32U); } +#line 12324 "src/prebuilt/wast-lexer-gen.cc" +yy2435: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 522 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16UCmpxchg); } -#line 11920 "src/prebuilt/wast-lexer-gen.cc" -yy2440: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 426 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF64S); } +#line 12332 "src/prebuilt/wast-lexer-gen.cc" +yy2437: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 524 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16UCmpxchg); } -#line 11928 "src/prebuilt/wast-lexer-gen.cc" -yy2442: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 430 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF64U); } +#line 12340 "src/prebuilt/wast-lexer-gen.cc" +yy2439: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 525 "src/wast-lexer.cc" - { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32UCmpxchg); } -#line 11936 "src/prebuilt/wast-lexer-gen.cc" -yy2444: - yych = *++cursor_; - if (yych == 'n') goto yy2447; - goto yy11; -yy2445: - yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; +#line 705 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF32U); } +#line 12348 "src/prebuilt/wast-lexer-gen.cc" +yy2441: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 695 "src/wast-lexer.cc" - { RETURN(AssertReturnCanonicalNan); } -#line 11948 "src/prebuilt/wast-lexer-gen.cc" -yy2447: +#line 707 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I32TruncSatF64U); } +#line 12356 "src/prebuilt/wast-lexer-gen.cc" +yy2443: yych = *++cursor_; - if (yybm[0+yych] & 8) { - goto yy10; + if (yych == 'x') goto yy2529; + goto yy87; +yy2444: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } -#line 696 "src/wast-lexer.cc" - { RETURN(AssertReturnArithmeticNan); } -#line 11956 "src/prebuilt/wast-lexer-gen.cc" - } -/* *********************************** */ -YYCOND_BAD_TEXT: - if ((limit_ - cursor_) < 5) FILL(5); - yych = *cursor_; - if (yych <= 0x7F) { - if (yych <= '!') { - if (yych == '\n') goto yy2453; - if (yych >= ' ') goto yy2455; - } else { - if (yych <= '"') goto yy2457; - if (yych == '\\') goto yy2459; - goto yy2455; +#line 468 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I64AtomicLoad16U); } +#line 12368 "src/prebuilt/wast-lexer-gen.cc" +yy2446: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } - } else { - if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2460; - if (yych <= 0xDF) goto yy2462; - if (yych <= 0xE0) goto yy2463; - goto yy2464; - } else { - if (yych <= 0xF0) goto yy2465; - if (yych <= 0xF3) goto yy2466; - if (yych <= 0xF4) goto yy2467; - goto yy2460; +#line 469 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicLoad, I64AtomicLoad32U); } +#line 12376 "src/prebuilt/wast-lexer-gen.cc" +yy2448: + yych = *++cursor_; + if (yych == 'c') goto yy2530; + goto yy87; +yy2449: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } - } - ++cursor_; +#line 513 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXchg); } +#line 12388 "src/prebuilt/wast-lexer-gen.cc" +yy2451: + yych = *++cursor_; + if (yych == 'd') goto yy2531; + goto yy87; yy2452: -#line 252 "src/wast-lexer.cc" - { ERROR("illegal character in string"); - continue; } -#line 11989 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'd') goto yy2532; + goto yy87; yy2453: - ++cursor_; - BEGIN(YYCOND_i); -#line 245 "src/wast-lexer.cc" - { ERROR("newline in string"); - NEWLINE; - continue; } -#line 11997 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'p') goto yy2533; + goto yy87; +yy2454: + yych = *++cursor_; + if (yych == '_') goto yy2534; + goto yy87; yy2455: - ++cursor_; -#line 244 "src/wast-lexer.cc" - { continue; } -#line 12002 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'b') goto yy2535; + goto yy87; +yy2456: + yych = *++cursor_; + if (yych == 'h') goto yy2536; + goto yy87; yy2457: - ++cursor_; - BEGIN(YYCOND_i); -#line 251 "src/wast-lexer.cc" - { RETURN_TEXT(Text); } -#line 12008 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'r') goto yy2537; + goto yy87; +yy2458: + yych = *++cursor_; + if (yych == 'd') goto yy2538; + goto yy87; yy2459: - yyaccept = 0; - yych = *(marker_ = ++cursor_); - if (yych <= 'f') { - if (yych <= '/') { - if (yych <= '!') { - if (yych == '\n') goto yy2452; - goto yy2468; - } else { - if (yych <= '"') goto yy2455; - if (yych == '\'') goto yy2455; - goto yy2468; - } - } else { - if (yych <= 'F') { - if (yych <= '9') goto yy2470; - if (yych <= '@') goto yy2468; - goto yy2470; - } else { - if (yych == '\\') goto yy2455; - if (yych <= '`') goto yy2468; - goto yy2470; - } - } - } else { - if (yych <= 0x7F) { - if (yych <= 'q') { - if (yych == 'n') goto yy2455; - goto yy2468; - } else { - if (yych == 's') goto yy2468; - if (yych <= 't') goto yy2455; - goto yy2468; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2452; - if (yych <= 0xDF) goto yy2471; - if (yych <= 0xE0) goto yy2473; - goto yy2474; - } else { - if (yych <= 0xF0) goto yy2475; - if (yych <= 0xF3) goto yy2476; - if (yych <= 0xF4) goto yy2477; - goto yy2452; - } - } - } + yych = *++cursor_; + if (yych == 'd') goto yy2539; + goto yy87; yy2460: - ++cursor_; + yych = *++cursor_; + if (yych == 'p') goto yy2540; + goto yy87; yy2461: -#line 254 "src/wast-lexer.cc" - { MAYBE_MALFORMED_UTF8(" in string"); } -#line 12062 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == '_') goto yy2541; + goto yy87; yy2462: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2461; - if (yych <= 0xBF) goto yy2455; - goto yy2461; + yych = *++cursor_; + if (yych == 'b') goto yy2542; + goto yy87; yy2463: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy2461; - if (yych <= 0xBF) goto yy2478; - goto yy2461; + yych = *++cursor_; + if (yych == 'h') goto yy2543; + goto yy87; yy2464: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2461; - if (yych <= 0xBF) goto yy2478; - goto yy2461; + yych = *++cursor_; + if (yych == 'r') goto yy2544; + goto yy87; yy2465: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy2461; - if (yych <= 0xBF) goto yy2479; - goto yy2461; + yych = *++cursor_; + if (yych == '_') goto yy2545; + goto yy87; yy2466: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2461; - if (yych <= 0xBF) goto yy2479; - goto yy2461; + yych = *++cursor_; + if (yych == '_') goto yy2546; + goto yy87; yy2467: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2461; - if (yych <= 0x8F) goto yy2479; - goto yy2461; + yych = *++cursor_; + if (yych == 'x') goto yy2547; + goto yy87; yy2468: - ++cursor_; + yych = *++cursor_; + if (yych == 'u') goto yy2548; + goto yy87; yy2469: -#line 248 "src/wast-lexer.cc" - { ERROR("bad escape \"%.*s\"", - static_cast<int>(yyleng), yytext); - continue; } -#line 12105 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == '_') goto yy2550; + goto yy87; yy2470: - yych = *++cursor_; - if (yych <= '@') { - if (yych <= '/') goto yy2469; - if (yych <= '9') goto yy2455; - goto yy2469; - } else { - if (yych <= 'F') goto yy2455; - if (yych <= '`') goto yy2469; - if (yych <= 'f') goto yy2455; - goto yy2469; - } + yych = *++cursor_; + if (yych == 'g') goto yy2551; + goto yy87; yy2471: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2472; - if (yych <= 0xBF) goto yy2468; + yych = *++cursor_; + if (yych == '_') goto yy2552; + goto yy87; yy2472: - cursor_ = marker_; - if (yyaccept == 0) { - goto yy2452; - } else { - goto yy2461; - } -yy2473: - yych = *++cursor_; - if (yych <= 0x9F) goto yy2472; - if (yych <= 0xBF) goto yy2471; - goto yy2472; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 700 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64ReinterpretF64); } +#line 12480 "src/prebuilt/wast-lexer-gen.cc" yy2474: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2472; - if (yych <= 0xBF) goto yy2471; - goto yy2472; -yy2475: - yych = *++cursor_; - if (yych <= 0x8F) goto yy2472; - if (yych <= 0xBF) goto yy2474; - goto yy2472; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 445 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64ReinterpretF64); } +#line 12488 "src/prebuilt/wast-lexer-gen.cc" yy2476: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2472; - if (yych <= 0xBF) goto yy2474; - goto yy2472; -yy2477: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2472; - if (yych <= 0x8F) goto yy2474; - goto yy2472; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 702 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF32S); } +#line 12496 "src/prebuilt/wast-lexer-gen.cc" yy2478: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2472; - if (yych <= 0xBF) goto yy2455; - goto yy2472; -yy2479: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2472; - if (yych <= 0xBF) goto yy2478; - goto yy2472; -/* *********************************** */ -YYCOND_LINE_COMMENT: - { - static const unsigned char yybm[] = { - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - if ((limit_ - cursor_) < 2) FILL(2); - yych = *cursor_; - if (yybm[0+yych] & 128) { - goto yy2482; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } - if (yych <= 0xE0) { - 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 yy2491; - goto yy2492; - } else { - if (yych <= 0xF3) goto yy2493; - if (yych <= 0xF4) goto yy2494; - goto yy2487; - } +#line 704 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF64S); } +#line 12504 "src/prebuilt/wast-lexer-gen.cc" +yy2480: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } +#line 425 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF32S); } +#line 12512 "src/prebuilt/wast-lexer-gen.cc" yy2482: - yyaccept = 0; - marker_ = ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yybm[0+yych] & 128) { - goto yy2482; - } - if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2484; - if (yych <= 0xDF) goto yy2495; - if (yych <= 0xE0) goto yy2497; - goto yy2498; - } else { - if (yych <= 0xF0) goto yy2499; - if (yych <= 0xF3) goto yy2500; - if (yych <= 0xF4) goto yy2501; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } +#line 429 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF32U); } +#line 12520 "src/prebuilt/wast-lexer-gen.cc" yy2484: -#line 709 "src/wast-lexer.cc" - { continue; } -#line 12242 "src/prebuilt/wast-lexer-gen.cc" -yy2485: ++cursor_; - BEGIN(YYCOND_i); -#line 708 "src/wast-lexer.cc" - { NEWLINE; continue; } -#line 12248 "src/prebuilt/wast-lexer-gen.cc" -yy2487: + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 427 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF64S); } +#line 12528 "src/prebuilt/wast-lexer-gen.cc" +yy2486: ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 431 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF64U); } +#line 12536 "src/prebuilt/wast-lexer-gen.cc" yy2488: -#line 723 "src/wast-lexer.cc" - { MAYBE_MALFORMED_UTF8(""); } -#line 12254 "src/prebuilt/wast-lexer-gen.cc" -yy2489: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2488; - if (yych <= 0xBF) goto yy2482; - goto yy2488; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 706 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF32U); } +#line 12544 "src/prebuilt/wast-lexer-gen.cc" yy2490: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy2488; - if (yych <= 0xBF) goto yy2495; - goto yy2488; -yy2491: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2488; - if (yych <= 0xBF) goto yy2495; - goto yy2488; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 708 "src/wast-lexer.cc" + { RETURN_OPCODE(Convert, I64TruncSatF64U); } +#line 12552 "src/prebuilt/wast-lexer-gen.cc" yy2492: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy2488; - if (yych <= 0xBF) goto yy2498; - goto yy2488; + yych = *++cursor_; + if (yych == 'x') goto yy2553; + goto yy87; yy2493: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2488; - if (yych <= 0xBF) goto yy2498; - goto yy2488; + yych = *++cursor_; + if (yych == 's') goto yy2554; + if (yych == 'u') goto yy2556; + goto yy87; yy2494: - yyaccept = 1; - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2488; - if (yych <= 0x8F) goto yy2498; - goto yy2488; + yych = *++cursor_; + if (yych == 's') goto yy2558; + if (yych == 'u') goto yy2560; + goto yy87; yy2495: - ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yych <= 0x7F) goto yy2496; - if (yych <= 0xBF) goto yy2482; + yych = *++cursor_; + if (yych == 's') goto yy2562; + if (yych == 'u') goto yy2564; + goto yy87; yy2496: - cursor_ = marker_; - if (yyaccept == 0) { - goto yy2484; - } else { - goto yy2488; - } + yych = *++cursor_; + if (yych == 't') goto yy2566; + goto yy87; yy2497: - ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yych <= 0x9F) goto yy2496; - if (yych <= 0xBF) goto yy2495; - goto yy2496; + yych = *++cursor_; + if (yych == 'e') goto yy2568; + goto yy87; yy2498: - ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yych <= 0x7F) goto yy2496; - if (yych <= 0xBF) goto yy2495; - goto yy2496; + yych = *++cursor_; + if (yych == 'c') goto yy2569; + goto yy87; yy2499: - ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yych <= 0x8F) goto yy2496; - if (yych <= 0xBF) goto yy2498; - goto yy2496; + yych = *++cursor_; + if (yych == 's') goto yy2570; + if (yych == 'u') goto yy2572; + goto yy87; yy2500: - ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yych <= 0x7F) goto yy2496; - if (yych <= 0xBF) goto yy2498; - goto yy2496; + yych = *++cursor_; + if (yych == 's') goto yy2574; + if (yych == 'u') goto yy2576; + goto yy87; yy2501: ++cursor_; - if (limit_ <= cursor_) FILL(1); - yych = *cursor_; - if (yych <= 0x7F) goto yy2496; - if (yych <= 0x8F) goto yy2498; - goto yy2496; - } -/* *********************************** */ -YYCOND_BLOCK_COMMENT: - if ((limit_ - cursor_) < 4) FILL(4); - yych = *cursor_; - if (yych <= 0x7F) { - if (yych <= '\'') { - if (yych == '\n') goto yy2506; - } else { - if (yych <= '(') goto yy2508; - if (yych == ';') goto yy2509; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } - } else { - if (yych <= 0xEF) { - if (yych <= 0xC1) goto yy2510; - if (yych <= 0xDF) goto yy2512; - if (yych <= 0xE0) goto yy2513; - goto yy2514; - } else { - if (yych <= 0xF0) goto yy2515; - if (yych <= 0xF3) goto yy2516; - if (yych <= 0xF4) goto yy2517; - goto yy2510; +#line 567 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I16X8AddSaturateS); } +#line 12601 "src/prebuilt/wast-lexer-gen.cc" +yy2503: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; } - } -yy2504: - ++cursor_; +#line 568 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I16X8AddSaturateU); } +#line 12609 "src/prebuilt/wast-lexer-gen.cc" yy2505: -#line 717 "src/wast-lexer.cc" - { continue; } -#line 12368 "src/prebuilt/wast-lexer-gen.cc" -yy2506: - ++cursor_; -#line 716 "src/wast-lexer.cc" - { NEWLINE; continue; } -#line 12373 "src/prebuilt/wast-lexer-gen.cc" -yy2508: - yych = *++cursor_; - if (yych == ';') goto yy2518; - goto yy2505; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 537 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I16X8ExtractLaneS); } +#line 12617 "src/prebuilt/wast-lexer-gen.cc" +yy2507: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 538 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I16X8ExtractLaneU); } +#line 12625 "src/prebuilt/wast-lexer-gen.cc" yy2509: - yych = *++cursor_; - if (yych == ')') goto yy2520; - goto yy2505; -yy2510: - ++cursor_; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 571 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I16X8SubSaturateS); } +#line 12633 "src/prebuilt/wast-lexer-gen.cc" yy2511: -#line 718 "src/wast-lexer.cc" - { MAYBE_MALFORMED_UTF8(" in block comment"); } -#line 12387 "src/prebuilt/wast-lexer-gen.cc" -yy2512: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2511; - if (yych <= 0xBF) goto yy2504; - goto yy2511; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 572 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I16X8SubSaturateU); } +#line 12641 "src/prebuilt/wast-lexer-gen.cc" yy2513: - yych = *(marker_ = ++cursor_); - if (yych <= 0x9F) goto yy2511; - if (yych <= 0xBF) goto yy2522; - goto yy2511; + yych = *++cursor_; + if (yych == 'h') goto yy2578; + goto yy87; yy2514: - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2511; - if (yych <= 0xBF) goto yy2522; - goto yy2511; + yych = *++cursor_; + if (yych == '_') goto yy2579; + goto yy87; yy2515: - yych = *(marker_ = ++cursor_); - if (yych <= 0x8F) goto yy2511; - if (yych <= 0xBF) goto yy2524; - goto yy2511; + yych = *++cursor_; + if (yych == '_') goto yy2580; + goto yy87; yy2516: - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2511; - if (yych <= 0xBF) goto yy2524; - goto yy2511; + yych = *++cursor_; + if (yych == 'x') goto yy2581; + goto yy87; yy2517: - yych = *(marker_ = ++cursor_); - if (yych <= 0x7F) goto yy2511; - if (yych <= 0x8F) goto yy2524; - goto yy2511; + yych = *++cursor_; + if (yych == 'u') goto yy2582; + goto yy87; yy2518: - ++cursor_; -#line 711 "src/wast-lexer.cc" - { COMMENT_NESTING++; continue; } -#line 12422 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == '_') goto yy2584; + goto yy87; +yy2519: + yych = *++cursor_; + if (yych == 'g') goto yy2585; + goto yy87; yy2520: - ++cursor_; -#line 712 "src/wast-lexer.cc" - { if (--COMMENT_NESTING == 0) { - BEGIN(YYCOND_i); - } - continue; } -#line 12430 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == '_') goto yy2586; + goto yy87; +yy2521: + yych = *++cursor_; + if (yych == 'u') goto yy2587; + goto yy87; yy2522: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2523; - if (yych <= 0xBF) goto yy2504; + yych = *++cursor_; + if (yych == 'u') goto yy2589; + goto yy87; yy2523: - cursor_ = marker_; - goto yy2511; + yych = *++cursor_; + if (yych == 'c') goto yy2591; + goto yy87; yy2524: - yych = *++cursor_; - if (yych <= 0x7F) goto yy2523; - if (yych <= 0xBF) goto yy2522; - goto yy2523; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 500 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8OrU); } +#line 12693 "src/prebuilt/wast-lexer-gen.cc" +yy2526: + yych = *++cursor_; + if (yych == 'u') goto yy2592; + goto yy87; +yy2527: + yych = *++cursor_; + if (yych == '_') goto yy2594; + goto yy87; +yy2528: + yych = *++cursor_; + if (yych == 'u') goto yy2595; + goto yy87; +yy2529: + yych = *++cursor_; + if (yych == '4') goto yy2597; + goto yy87; +yy2530: + yych = *++cursor_; + if (yych == 'h') goto yy2598; + goto yy87; +yy2531: + yych = *++cursor_; + if (yych == '_') goto yy2599; + goto yy87; +yy2532: + yych = *++cursor_; + if (yych == '_') goto yy2600; + goto yy87; +yy2533: + yych = *++cursor_; + if (yych == 'x') goto yy2601; + goto yy87; +yy2534: + yych = *++cursor_; + if (yych == 'u') goto yy2602; + goto yy87; +yy2535: + yych = *++cursor_; + if (yych == '_') goto yy2604; + goto yy87; +yy2536: + yych = *++cursor_; + if (yych == 'g') goto yy2605; + goto yy87; +yy2537: + yych = *++cursor_; + if (yych == '_') goto yy2606; + goto yy87; +yy2538: + yych = *++cursor_; + if (yych == '_') goto yy2607; + goto yy87; +yy2539: + yych = *++cursor_; + if (yych == '_') goto yy2608; + goto yy87; +yy2540: + yych = *++cursor_; + if (yych == 'x') goto yy2609; + goto yy87; +yy2541: + yych = *++cursor_; + if (yych == 'u') goto yy2610; + goto yy87; +yy2542: + yych = *++cursor_; + if (yych == '_') goto yy2612; + goto yy87; +yy2543: + yych = *++cursor_; + if (yych == 'g') goto yy2613; + goto yy87; +yy2544: + yych = *++cursor_; + if (yych == '_') goto yy2614; + goto yy87; +yy2545: + yych = *++cursor_; + if (yych == 'u') goto yy2615; + goto yy87; +yy2546: + yych = *++cursor_; + if (yych == 'u') goto yy2617; + goto yy87; +yy2547: + yych = *++cursor_; + if (yych == 'c') goto yy2619; + goto yy87; +yy2548: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 502 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8OrU); } +#line 12789 "src/prebuilt/wast-lexer-gen.cc" +yy2550: + yych = *++cursor_; + if (yych == 'u') goto yy2620; + goto yy87; +yy2551: + yych = *++cursor_; + if (yych == '_') goto yy2622; + goto yy87; +yy2552: + yych = *++cursor_; + if (yych == 'u') goto yy2623; + goto yy87; +yy2553: + yych = *++cursor_; + if (yych == '2') goto yy2625; + goto yy87; +yy2554: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 565 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I8X16AddSaturateS); } +#line 12813 "src/prebuilt/wast-lexer-gen.cc" +yy2556: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 566 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I8X16AddSaturateU); } +#line 12821 "src/prebuilt/wast-lexer-gen.cc" +yy2558: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 535 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I8X16ExtractLaneS); } +#line 12829 "src/prebuilt/wast-lexer-gen.cc" +yy2560: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 536 "src/wast-lexer.cc" + { RETURN_OPCODE(SimdLaneOp, I8X16ExtractLaneU); } +#line 12837 "src/prebuilt/wast-lexer-gen.cc" +yy2562: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 569 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I8X16SubSaturateS); } +#line 12845 "src/prebuilt/wast-lexer-gen.cc" +yy2564: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 570 "src/wast-lexer.cc" + { RETURN_OPCODE(Binary, I8X16SubSaturateU); } +#line 12853 "src/prebuilt/wast-lexer-gen.cc" +yy2566: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 667 "src/wast-lexer.cc" + { RETURN_OPCODE0(ReturnCallIndirect); } +#line 12861 "src/prebuilt/wast-lexer-gen.cc" +yy2568: + yych = *++cursor_; + if (yych == 't') goto yy2626; + goto yy87; +yy2569: + yych = *++cursor_; + if (yych == 'a') goto yy2627; + goto yy87; +yy2570: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 658 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, F32X4ConvertI32X4S); } +#line 12877 "src/prebuilt/wast-lexer-gen.cc" +yy2572: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 659 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, F32X4ConvertI32X4U); } +#line 12885 "src/prebuilt/wast-lexer-gen.cc" +yy2574: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 660 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, F64X2ConvertI64X2S); } +#line 12893 "src/prebuilt/wast-lexer-gen.cc" +yy2576: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 661 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, F64X2ConvertI64X2U); } +#line 12901 "src/prebuilt/wast-lexer-gen.cc" +yy2578: + yych = *++cursor_; + if (yych == 'g') goto yy2628; + goto yy87; +yy2579: + yych = *++cursor_; + if (yych == 'u') goto yy2630; + goto yy87; +yy2580: + yych = *++cursor_; + if (yych == 'u') goto yy2632; + goto yy87; +yy2581: + yych = *++cursor_; + if (yych == 'c') goto yy2634; + goto yy87; +yy2582: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 501 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16OrU); } +#line 12925 "src/prebuilt/wast-lexer-gen.cc" +yy2584: + yych = *++cursor_; + if (yych == 'u') goto yy2635; + goto yy87; +yy2585: + yych = *++cursor_; + if (yych == '_') goto yy2637; + goto yy87; +yy2586: + yych = *++cursor_; + if (yych == 'u') goto yy2638; + goto yy87; +yy2587: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 479 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8AddU); } +#line 12945 "src/prebuilt/wast-lexer-gen.cc" +yy2589: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 493 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8AndU); } +#line 12953 "src/prebuilt/wast-lexer-gen.cc" +yy2591: + yych = *++cursor_; + if (yych == 'h') goto yy2640; + goto yy87; +yy2592: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 486 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8SubU); } +#line 12965 "src/prebuilt/wast-lexer-gen.cc" +yy2594: + yych = *++cursor_; + if (yych == 'u') goto yy2641; + goto yy87; +yy2595: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 507 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8XorU); } +#line 12977 "src/prebuilt/wast-lexer-gen.cc" +yy2597: + yych = *++cursor_; + if (yych == '_') goto yy2643; + goto yy87; +yy2598: + yych = *++cursor_; + if (yych == 'g') goto yy2644; + goto yy87; +yy2599: + yych = *++cursor_; + if (yych == 'u') goto yy2646; + goto yy87; +yy2600: + yych = *++cursor_; + if (yych == 'u') goto yy2648; + goto yy87; +yy2601: + yych = *++cursor_; + if (yych == 'c') goto yy2650; + goto yy87; +yy2602: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 503 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16OrU); } +#line 13005 "src/prebuilt/wast-lexer-gen.cc" +yy2604: + yych = *++cursor_; + if (yych == 'u') goto yy2651; + goto yy87; +yy2605: + yych = *++cursor_; + if (yych == '_') goto yy2653; + goto yy87; +yy2606: + yych = *++cursor_; + if (yych == 'u') goto yy2654; + goto yy87; +yy2607: + yych = *++cursor_; + if (yych == 'u') goto yy2656; + goto yy87; +yy2608: + yych = *++cursor_; + if (yych == 'u') goto yy2658; + goto yy87; +yy2609: + yych = *++cursor_; + if (yych == 'c') goto yy2660; + goto yy87; +yy2610: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 504 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32OrU); } +#line 13037 "src/prebuilt/wast-lexer-gen.cc" +yy2612: + yych = *++cursor_; + if (yych == 'u') goto yy2661; + goto yy87; +yy2613: + yych = *++cursor_; + if (yych == '_') goto yy2663; + goto yy87; +yy2614: + yych = *++cursor_; + if (yych == 'u') goto yy2664; + goto yy87; +yy2615: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 481 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8AddU); } +#line 13057 "src/prebuilt/wast-lexer-gen.cc" +yy2617: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 495 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8AndU); } +#line 13065 "src/prebuilt/wast-lexer-gen.cc" +yy2619: + yych = *++cursor_; + if (yych == 'h') goto yy2666; + goto yy87; +yy2620: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 488 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8SubU); } +#line 13077 "src/prebuilt/wast-lexer-gen.cc" +yy2622: + yych = *++cursor_; + if (yych == 'u') goto yy2667; + goto yy87; +yy2623: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 509 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8XorU); } +#line 13089 "src/prebuilt/wast-lexer-gen.cc" +yy2625: + yych = *++cursor_; + if (yych == '_') goto yy2669; + goto yy87; +yy2626: + yych = *++cursor_; + if (yych == 'i') goto yy2670; + goto yy87; +yy2627: + yych = *++cursor_; + if (yych == 'l') goto yy2671; + goto yy87; +yy2628: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 519 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmwCmpxchg); } +#line 13109 "src/prebuilt/wast-lexer-gen.cc" +yy2630: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 480 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16AddU); } +#line 13117 "src/prebuilt/wast-lexer-gen.cc" +yy2632: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 494 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16AndU); } +#line 13125 "src/prebuilt/wast-lexer-gen.cc" +yy2634: + yych = *++cursor_; + if (yych == 'h') goto yy2672; + goto yy87; +yy2635: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 487 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16SubU); } +#line 13137 "src/prebuilt/wast-lexer-gen.cc" +yy2637: + yych = *++cursor_; + if (yych == 'u') goto yy2673; + goto yy87; +yy2638: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 508 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16XorU); } +#line 13149 "src/prebuilt/wast-lexer-gen.cc" +yy2640: + yych = *++cursor_; + if (yych == 'g') goto yy2675; + goto yy87; +yy2641: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 514 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8XchgU); } +#line 13161 "src/prebuilt/wast-lexer-gen.cc" +yy2643: + yych = *++cursor_; + if (yych == 's') goto yy2676; + if (yych == 'u') goto yy2678; + goto yy87; +yy2644: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 520 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmwCmpxchg); } +#line 13174 "src/prebuilt/wast-lexer-gen.cc" +yy2646: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 482 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16AddU); } +#line 13182 "src/prebuilt/wast-lexer-gen.cc" +yy2648: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 496 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16AndU); } +#line 13190 "src/prebuilt/wast-lexer-gen.cc" +yy2650: + yych = *++cursor_; + if (yych == 'h') goto yy2680; + goto yy87; +yy2651: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 489 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16SubU); } +#line 13202 "src/prebuilt/wast-lexer-gen.cc" +yy2653: + yych = *++cursor_; + if (yych == 'u') goto yy2681; + goto yy87; +yy2654: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 510 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16XorU); } +#line 13214 "src/prebuilt/wast-lexer-gen.cc" +yy2656: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 483 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32AddU); } +#line 13222 "src/prebuilt/wast-lexer-gen.cc" +yy2658: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 497 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32AndU); } +#line 13230 "src/prebuilt/wast-lexer-gen.cc" +yy2660: + yych = *++cursor_; + if (yych == 'h') goto yy2683; + goto yy87; +yy2661: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 490 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32SubU); } +#line 13242 "src/prebuilt/wast-lexer-gen.cc" +yy2663: + yych = *++cursor_; + if (yych == 'u') goto yy2684; + goto yy87; +yy2664: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 511 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32XorU); } +#line 13254 "src/prebuilt/wast-lexer-gen.cc" +yy2666: + yych = *++cursor_; + if (yych == 'g') goto yy2686; + goto yy87; +yy2667: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 516 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8XchgU); } +#line 13266 "src/prebuilt/wast-lexer-gen.cc" +yy2669: + yych = *++cursor_; + if (yych == 's') goto yy2687; + if (yych == 'u') goto yy2689; + goto yy87; +yy2670: + yych = *++cursor_; + if (yych == 'c') goto yy2691; + goto yy87; +yy2671: + yych = *++cursor_; + if (yych == '_') goto yy2692; + goto yy87; +yy2672: + yych = *++cursor_; + if (yych == 'g') goto yy2693; + goto yy87; +yy2673: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 515 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16XchgU); } +#line 13291 "src/prebuilt/wast-lexer-gen.cc" +yy2675: + yych = *++cursor_; + if (yych == '_') goto yy2694; + goto yy87; +yy2676: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 662 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32X4TruncSatF32X4S); } +#line 13303 "src/prebuilt/wast-lexer-gen.cc" +yy2678: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 663 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32X4TruncSatF32X4U); } +#line 13311 "src/prebuilt/wast-lexer-gen.cc" +yy2680: + yych = *++cursor_; + if (yych == 'g') goto yy2695; + goto yy87; +yy2681: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 517 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16XchgU); } +#line 13323 "src/prebuilt/wast-lexer-gen.cc" +yy2683: + yych = *++cursor_; + if (yych == 'g') goto yy2696; + goto yy87; +yy2684: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 518 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32XchgU); } +#line 13335 "src/prebuilt/wast-lexer-gen.cc" +yy2686: + yych = *++cursor_; + if (yych == '_') goto yy2697; + goto yy87; +yy2687: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 664 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64X2TruncSatF64X2S); } +#line 13347 "src/prebuilt/wast-lexer-gen.cc" +yy2689: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 665 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I64X2TruncSatF64X2U); } +#line 13355 "src/prebuilt/wast-lexer-gen.cc" +yy2691: + yych = *++cursor_; + if (yych == '_') goto yy2698; + goto yy87; +yy2692: + yych = *++cursor_; + if (yych == 'n') goto yy2699; + goto yy87; +yy2693: + yych = *++cursor_; + if (yych == '_') goto yy2700; + goto yy87; +yy2694: + yych = *++cursor_; + if (yych == 'u') goto yy2701; + goto yy87; +yy2695: + yych = *++cursor_; + if (yych == '_') goto yy2703; + goto yy87; +yy2696: + yych = *++cursor_; + if (yych == '_') goto yy2704; + goto yy87; +yy2697: + yych = *++cursor_; + if (yych == 'u') goto yy2705; + goto yy87; +yy2698: + yych = *++cursor_; + if (yych == 'n') goto yy2707; + goto yy87; +yy2699: + yych = *++cursor_; + if (yych == 'a') goto yy2708; + goto yy87; +yy2700: + yych = *++cursor_; + if (yych == 'u') goto yy2709; + goto yy87; +yy2701: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 521 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8CmpxchgU); } +#line 13403 "src/prebuilt/wast-lexer-gen.cc" +yy2703: + yych = *++cursor_; + if (yych == 'u') goto yy2711; + goto yy87; +yy2704: + yych = *++cursor_; + if (yych == 'u') goto yy2713; + goto yy87; +yy2705: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 523 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8CmpxchgU); } +#line 13419 "src/prebuilt/wast-lexer-gen.cc" +yy2707: + yych = *++cursor_; + if (yych == 'a') goto yy2715; + goto yy87; +yy2708: + yych = *++cursor_; + if (yych == 'n') goto yy2716; + goto yy87; +yy2709: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 522 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16CmpxchgU); } +#line 13435 "src/prebuilt/wast-lexer-gen.cc" +yy2711: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 524 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16CmpxchgU); } +#line 13443 "src/prebuilt/wast-lexer-gen.cc" +yy2713: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 525 "src/wast-lexer.cc" + { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32CmpxchgU); } +#line 13451 "src/prebuilt/wast-lexer-gen.cc" +yy2715: + yych = *++cursor_; + if (yych == 'n') goto yy2718; + goto yy87; +yy2716: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 736 "src/wast-lexer.cc" + { RETURN(AssertReturnCanonicalNan); } +#line 13463 "src/prebuilt/wast-lexer-gen.cc" +yy2718: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 737 "src/wast-lexer.cc" + { RETURN(AssertReturnArithmeticNan); } +#line 13471 "src/prebuilt/wast-lexer-gen.cc" + } } -#line 724 "src/wast-lexer.cc" +#line 765 "src/wast-lexer.cc" } } diff --git a/src/resolve-names.cc b/src/resolve-names.cc index 1a6ec79f..05750319 100644 --- a/src/resolve-names.cc +++ b/src/resolve-names.cc @@ -45,21 +45,21 @@ class NameResolver : public ExprVisitor::DelegateNop { Result OnCallIndirectExpr(CallIndirectExpr*) override; Result OnReturnCallExpr(ReturnCallExpr *) override; Result OnReturnCallIndirectExpr(ReturnCallIndirectExpr*) override; - Result OnGetGlobalExpr(GetGlobalExpr*) override; - Result OnGetLocalExpr(GetLocalExpr*) override; + Result OnGlobalGetExpr(GlobalGetExpr*) override; + Result OnGlobalSetExpr(GlobalSetExpr*) override; Result BeginIfExpr(IfExpr*) override; Result EndIfExpr(IfExpr*) override; Result BeginIfExceptExpr(IfExceptExpr*) override; Result EndIfExceptExpr(IfExceptExpr*) override; + Result OnLocalGetExpr(LocalGetExpr*) override; + Result OnLocalSetExpr(LocalSetExpr*) override; + Result OnLocalTeeExpr(LocalTeeExpr*) override; Result BeginLoopExpr(LoopExpr*) override; Result EndLoopExpr(LoopExpr*) override; Result OnMemoryDropExpr(MemoryDropExpr*) override; Result OnMemoryInitExpr(MemoryInitExpr*) override; - Result OnSetGlobalExpr(SetGlobalExpr*) override; - Result OnSetLocalExpr(SetLocalExpr*) override; Result OnTableDropExpr(TableDropExpr*) override; Result OnTableInitExpr(TableInitExpr*) override; - Result OnTeeLocalExpr(TeeLocalExpr*) override; Result BeginTryExpr(TryExpr*) override; Result EndTryExpr(TryExpr*) override; Result OnThrowExpr(ThrowExpr*) override; @@ -289,13 +289,13 @@ Result NameResolver::OnReturnCallIndirectExpr(ReturnCallIndirectExpr* expr) { return Result::Ok; } -Result NameResolver::OnGetGlobalExpr(GetGlobalExpr* expr) { +Result NameResolver::OnGlobalGetExpr(GlobalGetExpr* expr) { ResolveGlobalVar(&expr->var); return Result::Ok; } -Result NameResolver::OnGetLocalExpr(GetLocalExpr* expr) { - ResolveLocalVar(&expr->var); +Result NameResolver::OnGlobalSetExpr(GlobalSetExpr* expr) { + ResolveGlobalVar(&expr->var); return Result::Ok; } @@ -322,38 +322,38 @@ Result NameResolver::EndIfExceptExpr(IfExceptExpr* expr) { return Result::Ok; } -Result NameResolver::OnMemoryDropExpr(MemoryDropExpr* expr) { - ResolveDataSegmentVar(&expr->var); +Result NameResolver::OnLocalGetExpr(LocalGetExpr* expr) { + ResolveLocalVar(&expr->var); return Result::Ok; } -Result NameResolver::OnMemoryInitExpr(MemoryInitExpr* expr) { - ResolveDataSegmentVar(&expr->var); +Result NameResolver::OnLocalSetExpr(LocalSetExpr* expr) { + ResolveLocalVar(&expr->var); return Result::Ok; } -Result NameResolver::OnSetGlobalExpr(SetGlobalExpr* expr) { - ResolveGlobalVar(&expr->var); +Result NameResolver::OnLocalTeeExpr(LocalTeeExpr* expr) { + ResolveLocalVar(&expr->var); return Result::Ok; } -Result NameResolver::OnSetLocalExpr(SetLocalExpr* expr) { - ResolveLocalVar(&expr->var); +Result NameResolver::OnMemoryDropExpr(MemoryDropExpr* expr) { + ResolveDataSegmentVar(&expr->var); return Result::Ok; } -Result NameResolver::OnTableDropExpr(TableDropExpr* expr) { - ResolveElemSegmentVar(&expr->var); +Result NameResolver::OnMemoryInitExpr(MemoryInitExpr* expr) { + ResolveDataSegmentVar(&expr->var); return Result::Ok; } -Result NameResolver::OnTableInitExpr(TableInitExpr* expr) { +Result NameResolver::OnTableDropExpr(TableDropExpr* expr) { ResolveElemSegmentVar(&expr->var); return Result::Ok; } -Result NameResolver::OnTeeLocalExpr(TeeLocalExpr* expr) { - ResolveLocalVar(&expr->var); +Result NameResolver::OnTableInitExpr(TableInitExpr* expr) { + ResolveElemSegmentVar(&expr->var); return Result::Ok; } diff --git a/src/token.def b/src/token.def index 109fd8da..3a3ae8cb 100644 --- a/src/token.def +++ b/src/token.def @@ -20,7 +20,6 @@ /* Tokens with no additional data (i.e. bare). */ WABT_TOKEN(Invalid, "Invalid") -WABT_TOKEN(Anyfunc, "anyfunc") WABT_TOKEN(AssertExhaustion, "assert_exhaustion") WABT_TOKEN(AssertInvalid, "assert_invalid") WABT_TOKEN(AssertMalformed, "assert_malformed") @@ -36,6 +35,7 @@ WABT_TOKEN(Eof, "EOF") WABT_TOKEN(Except, "except") WABT_TOKEN(Export, "export") WABT_TOKEN(Func, "func") +WABT_TOKEN(Funcref, "funcref") WABT_TOKEN(Get, "get") WABT_TOKEN(Global, "global") WABT_TOKEN(Import, "import") @@ -73,7 +73,7 @@ WABT_TOKEN(AtomicRmw, "ATOMIC_RMW") WABT_TOKEN(AtomicRmwCmpxchg, "ATOMIC_RMW_CMPXCHG") WABT_TOKEN(AtomicStore, "ATOMIC_STORE") WABT_TOKEN(AtomicWait, "ATOMIC_WAIT") -WABT_TOKEN(AtomicWake, "ATOMIC_WAKE") +WABT_TOKEN(AtomicNotify, "ATOMIC_NOTIFY") WABT_TOKEN(Binary, "BINARY") WABT_TOKEN(Block, "block") WABT_TOKEN(Br, "br") @@ -88,8 +88,8 @@ WABT_TOKEN(Convert, "CONVERT") WABT_TOKEN(Drop, "drop") WABT_TOKEN(Else, "else") WABT_TOKEN(End, "end") -WABT_TOKEN(GetGlobal, "get_global") -WABT_TOKEN(GetLocal, "get_local") +WABT_TOKEN(GlobalGet, "global.get") +WABT_TOKEN(LocalGet, "local.get") WABT_TOKEN(IfExcept, "if_except") WABT_TOKEN(If, "if") WABT_TOKEN(Load, "LOAD") @@ -109,12 +109,12 @@ WABT_TOKEN(Return, "return") WABT_TOKEN(ReturnCall, "return_call") WABT_TOKEN(ReturnCallIndirect, "return_call_indirect") WABT_TOKEN(Select, "select") -WABT_TOKEN(SetGlobal, "set_global") -WABT_TOKEN(SetLocal, "set_local") +WABT_TOKEN(GlobalSet, "global.set") +WABT_TOKEN(LocalSet, "local.set") WABT_TOKEN(SimdLaneOp, "SIMDLANEOP") WABT_TOKEN(SimdShuffleOp, "SIMDSHUFFLEOP") WABT_TOKEN(Store, "STORE") -WABT_TOKEN(TeeLocal, "tee_local") +WABT_TOKEN(LocalTee, "local.tee") WABT_TOKEN(Ternary, "TERNARY") WABT_TOKEN(Throw, "throw") WABT_TOKEN(Try, "try") diff --git a/src/type-checker.cc b/src/type-checker.cc index 88c4c776..e7006ed0 100644 --- a/src/type-checker.cc +++ b/src/type-checker.cc @@ -350,7 +350,7 @@ Result TypeChecker::OnAtomicWait(Opcode opcode) { return CheckOpcode3(opcode); } -Result TypeChecker::OnAtomicWake(Opcode opcode) { +Result TypeChecker::OnAtomicNotify(Opcode opcode) { return CheckOpcode2(opcode); } @@ -562,20 +562,35 @@ Result TypeChecker::OnIfExcept(const TypeVector& param_types, return result; } -Result TypeChecker::OnGetGlobal(Type type) { +Result TypeChecker::OnGlobalGet(Type type) { PushType(type); return Result::Ok; } -Result TypeChecker::OnGetLocal(Type type) { - PushType(type); - return Result::Ok; +Result TypeChecker::OnGlobalSet(Type type) { + return PopAndCheck1Type(type, "global.set"); } Result TypeChecker::OnLoad(Opcode opcode) { return CheckOpcode1(opcode); } +Result TypeChecker::OnLocalGet(Type type) { + PushType(type); + return Result::Ok; +} + +Result TypeChecker::OnLocalSet(Type type) { + return PopAndCheck1Type(type, "local.set"); +} + +Result TypeChecker::OnLocalTee(Type type) { + Result result = Result::Ok; + result |= PopAndCheck1Type(type, "local.tee"); + PushType(type); + return result; +} + Result TypeChecker::OnLoop(const TypeVector& param_types, const TypeVector& result_types) { Result result = PopAndCheckSignature(param_types, "loop"); @@ -655,14 +670,6 @@ Result TypeChecker::OnSelect() { return result; } -Result TypeChecker::OnSetGlobal(Type type) { - return PopAndCheck1Type(type, "set_global"); -} - -Result TypeChecker::OnSetLocal(Type type) { - return PopAndCheck1Type(type, "set_local"); -} - Result TypeChecker::OnStore(Opcode opcode) { return CheckOpcode2(opcode); } @@ -675,13 +682,6 @@ Result TypeChecker::OnTry(const TypeVector& param_types, return result; } -Result TypeChecker::OnTeeLocal(Type type) { - Result result = Result::Ok; - result |= PopAndCheck1Type(type, "tee_local"); - PushType(type); - return result; -} - Result TypeChecker::OnUnary(Opcode opcode) { return CheckOpcode1(opcode); } diff --git a/src/type-checker.h b/src/type-checker.h index 0ac794af..4688e29f 100644 --- a/src/type-checker.h +++ b/src/type-checker.h @@ -60,11 +60,11 @@ class TypeChecker { Result BeginFunction(const TypeVector& sig); Result OnAtomicLoad(Opcode); + Result OnAtomicNotify(Opcode); Result OnAtomicStore(Opcode); Result OnAtomicRmw(Opcode); Result OnAtomicRmwCmpxchg(Opcode); Result OnAtomicWait(Opcode); - Result OnAtomicWake(Opcode); Result OnBinary(Opcode); Result OnBlock(const TypeVector& param_types, const TypeVector& result_types); Result OnBr(Index depth); @@ -84,13 +84,16 @@ class TypeChecker { Result OnDrop(); Result OnElse(); Result OnEnd(); - Result OnGetGlobal(Type); - Result OnGetLocal(Type); + Result OnGlobalGet(Type); + Result OnGlobalSet(Type); Result OnIf(const TypeVector& param_types, const TypeVector& result_types); Result OnIfExcept(const TypeVector& param_types, const TypeVector& result_types, const TypeVector& except_sig); Result OnLoad(Opcode); + Result OnLocalGet(Type); + Result OnLocalSet(Type); + Result OnLocalTee(Type); Result OnLoop(const TypeVector& param_types, const TypeVector& result_types); Result OnMemoryCopy(); Result OnMemoryDrop(Index); @@ -104,12 +107,9 @@ class TypeChecker { Result OnRethrow(); Result OnReturn(); Result OnSelect(); - Result OnSetGlobal(Type); - Result OnSetLocal(Type); Result OnSimdLaneOp(Opcode, uint64_t); Result OnSimdShuffleOp(Opcode, v128); Result OnStore(Opcode); - Result OnTeeLocal(Type); Result OnTernary(Opcode); Result OnThrow(const TypeVector& sig); Result OnTry(const TypeVector& param_types, const TypeVector& result_types); diff --git a/src/validator.cc b/src/validator.cc index 08976f2a..b410bee8 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -55,8 +55,8 @@ class Validator : public ExprVisitor::Delegate { Result OnConstExpr(ConstExpr*) override; Result OnConvertExpr(ConvertExpr*) override; Result OnDropExpr(DropExpr*) override; - Result OnGetGlobalExpr(GetGlobalExpr*) override; - Result OnGetLocalExpr(GetLocalExpr*) override; + Result OnGlobalGetExpr(GlobalGetExpr*) override; + Result OnGlobalSetExpr(GlobalSetExpr*) override; Result BeginIfExpr(IfExpr*) override; Result AfterIfTrueExpr(IfExpr*) override; Result EndIfExpr(IfExpr*) override; @@ -64,6 +64,9 @@ class Validator : public ExprVisitor::Delegate { Result AfterIfExceptTrueExpr(IfExceptExpr*) override; Result EndIfExceptExpr(IfExceptExpr*) override; Result OnLoadExpr(LoadExpr*) override; + Result OnLocalGetExpr(LocalGetExpr*) override; + Result OnLocalSetExpr(LocalSetExpr*) override; + Result OnLocalTeeExpr(LocalTeeExpr*) override; Result BeginLoopExpr(LoopExpr*) override; Result EndLoopExpr(LoopExpr*) override; Result OnMemoryCopyExpr(MemoryCopyExpr*) override; @@ -80,10 +83,7 @@ class Validator : public ExprVisitor::Delegate { Result OnReturnCallExpr(ReturnCallExpr*) override; Result OnReturnCallIndirectExpr(ReturnCallIndirectExpr*) override; Result OnSelectExpr(SelectExpr*) override; - Result OnSetGlobalExpr(SetGlobalExpr*) override; - Result OnSetLocalExpr(SetLocalExpr*) override; Result OnStoreExpr(StoreExpr*) override; - Result OnTeeLocalExpr(TeeLocalExpr*) override; Result OnUnaryExpr(UnaryExpr*) override; Result OnUnreachableExpr(UnreachableExpr*) override; Result BeginTryExpr(TryExpr*) override; @@ -92,7 +92,7 @@ class Validator : public ExprVisitor::Delegate { Result OnThrowExpr(ThrowExpr*) override; Result OnRethrowExpr(RethrowExpr*) override; Result OnAtomicWaitExpr(AtomicWaitExpr*) override; - Result OnAtomicWakeExpr(AtomicWakeExpr*) override; + Result OnAtomicNotifyExpr(AtomicNotifyExpr*) override; Result OnAtomicLoadExpr(AtomicLoadExpr*) override; Result OnAtomicStoreExpr(AtomicStoreExpr*) override; Result OnAtomicRmwExpr(AtomicRmwExpr*) override; @@ -632,15 +632,26 @@ Result Validator::OnDropExpr(DropExpr* expr) { return Result::Ok; } -Result Validator::OnGetGlobalExpr(GetGlobalExpr* expr) { +Result Validator::OnGlobalGetExpr(GlobalGetExpr* expr) { expr_loc_ = &expr->loc; - typechecker_.OnGetGlobal(GetGlobalVarTypeOrAny(&expr->var)); + typechecker_.OnGlobalGet(GetGlobalVarTypeOrAny(&expr->var)); return Result::Ok; } -Result Validator::OnGetLocalExpr(GetLocalExpr* expr) { +Result Validator::OnGlobalSetExpr(GlobalSetExpr* expr) { expr_loc_ = &expr->loc; - typechecker_.OnGetLocal(GetLocalVarTypeOrAny(&expr->var)); + Type type = Type::Any; + const Global* global; + Index global_index; + if (Succeeded(CheckGlobalVar(&expr->var, &global, &global_index))) { + if (!global->mutable_) { + PrintError(&expr->loc, + "can't global.set on immutable global at index %" PRIindex ".", + global_index); + } + type = global->type; + } + typechecker_.OnGlobalSet(type); return Result::Ok; } @@ -702,6 +713,24 @@ Result Validator::OnLoadExpr(LoadExpr* expr) { return Result::Ok; } +Result Validator::OnLocalGetExpr(LocalGetExpr* expr) { + expr_loc_ = &expr->loc; + typechecker_.OnLocalGet(GetLocalVarTypeOrAny(&expr->var)); + return Result::Ok; +} + +Result Validator::OnLocalSetExpr(LocalSetExpr* expr) { + expr_loc_ = &expr->loc; + typechecker_.OnLocalSet(GetLocalVarTypeOrAny(&expr->var)); + return Result::Ok; +} + +Result Validator::OnLocalTeeExpr(LocalTeeExpr* expr) { + expr_loc_ = &expr->loc; + typechecker_.OnLocalTee(GetLocalVarTypeOrAny(&expr->var)); + return Result::Ok; +} + Result Validator::BeginLoopExpr(LoopExpr* expr) { expr_loc_ = &expr->loc; CheckBlockDeclaration(&expr->loc, Opcode::Loop, &expr->block.decl); @@ -821,29 +850,6 @@ Result Validator::OnSelectExpr(SelectExpr* expr) { return Result::Ok; } -Result Validator::OnSetGlobalExpr(SetGlobalExpr* expr) { - expr_loc_ = &expr->loc; - Type type = Type::Any; - const Global* global; - Index global_index; - if (Succeeded(CheckGlobalVar(&expr->var, &global, &global_index))) { - if (!global->mutable_) { - PrintError(&expr->loc, - "can't set_global on immutable global at index %" PRIindex ".", - global_index); - } - type = global->type; - } - typechecker_.OnSetGlobal(type); - return Result::Ok; -} - -Result Validator::OnSetLocalExpr(SetLocalExpr* expr) { - expr_loc_ = &expr->loc; - typechecker_.OnSetLocal(GetLocalVarTypeOrAny(&expr->var)); - return Result::Ok; -} - Result Validator::OnStoreExpr(StoreExpr* expr) { expr_loc_ = &expr->loc; CheckHasMemory(&expr->loc, expr->opcode); @@ -853,12 +859,6 @@ Result Validator::OnStoreExpr(StoreExpr* expr) { return Result::Ok; } -Result Validator::OnTeeLocalExpr(TeeLocalExpr* expr) { - expr_loc_ = &expr->loc; - typechecker_.OnTeeLocal(GetLocalVarTypeOrAny(&expr->var)); - return Result::Ok; -} - Result Validator::OnUnaryExpr(UnaryExpr* expr) { expr_loc_ = &expr->loc; typechecker_.OnUnary(expr->opcode); @@ -911,9 +911,9 @@ Result Validator::OnAtomicWaitExpr(AtomicWaitExpr* expr) { return Result::Ok; } -Result Validator::OnAtomicWakeExpr(AtomicWakeExpr* expr) { +Result Validator::OnAtomicNotifyExpr(AtomicNotifyExpr* expr) { expr_loc_ = &expr->loc; - CheckAtomicExpr(expr, &TypeChecker::OnAtomicWake); + CheckAtomicExpr(expr, &TypeChecker::OnAtomicNotify); return Result::Ok; } @@ -991,7 +991,7 @@ void Validator::CheckFunc(const Location* loc, const Func* func) { void Validator::PrintConstExprError(const Location* loc, const char* desc) { PrintError(loc, "invalid %s, must be a constant expression; either *.const or " - "get_global.", + "global.get.", desc); } @@ -1014,10 +1014,10 @@ void Validator::CheckConstInitExpr(const Location* loc, type = cast<ConstExpr>(expr)->const_.type; break; - case ExprType::GetGlobal: { + case ExprType::GlobalGet: { const Global* ref_global = nullptr; Index ref_global_index; - if (Failed(CheckGlobalVar(&cast<GetGlobalExpr>(expr)->var, &ref_global, + if (Failed(CheckGlobalVar(&cast<GlobalGetExpr>(expr)->var, &ref_global, &ref_global_index))) { return; } diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc index 4c3a79f5..362fb7ed 100644 --- a/src/wast-lexer.cc +++ b/src/wast-lexer.cc @@ -257,7 +257,7 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "f32" { RETURN_TYPE(ValueType, F32); } <i> "f64" { RETURN_TYPE(ValueType, F64); } <i> "v128" { RETURN_TYPE(ValueType, V128); } - <i> "anyfunc" { RETURN(Anyfunc); } + <i> "funcref" { RETURN(Funcref); } <i> "mut" { RETURN(Mut); } <i> "nop" { RETURN_OPCODE0(Nop); } <i> "block" { RETURN_OPCODE0(Block); } @@ -273,11 +273,11 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "drop" { RETURN_OPCODE0(Drop); } <i> "end" { RETURN_OPCODE0(End); } <i> "return" { RETURN_OPCODE0(Return); } - <i> "get_local" { RETURN_OPCODE0(GetLocal); } - <i> "set_local" { RETURN_OPCODE0(SetLocal); } - <i> "tee_local" { RETURN_OPCODE0(TeeLocal); } - <i> "get_global" { RETURN_OPCODE0(GetGlobal); } - <i> "set_global" { RETURN_OPCODE0(SetGlobal); } + <i> "local.get" { RETURN_OPCODE0(LocalGet); } + <i> "local.set" { RETURN_OPCODE0(LocalSet); } + <i> "local.tee" { RETURN_OPCODE0(LocalTee); } + <i> "global.get" { RETURN_OPCODE0(GlobalGet); } + <i> "global.set" { RETURN_OPCODE0(GlobalSet); } <i> "i32.load" { RETURN_OPCODE(Load, I32Load); } <i> "i64.load" { RETURN_OPCODE(Load, I64Load); } <i> "f32.load" { RETURN_OPCODE(Load, F32Load); } @@ -410,39 +410,39 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "f64.gt" { RETURN_OPCODE(Compare, F64Gt); } <i> "f32.ge" { RETURN_OPCODE(Compare, F32Ge); } <i> "f64.ge" { RETURN_OPCODE(Compare, F64Ge); } - <i> "i64.extend_s/i32" { RETURN_OPCODE(Convert, I64ExtendSI32); } - <i> "i64.extend_u/i32" { RETURN_OPCODE(Convert, I64ExtendUI32); } - <i> "i32.wrap/i64" { RETURN_OPCODE(Convert, I32WrapI64); } - <i> "i32.trunc_s/f32" { RETURN_OPCODE(Convert, I32TruncSF32); } - <i> "i64.trunc_s/f32" { RETURN_OPCODE(Convert, I64TruncSF32); } - <i> "i32.trunc_s/f64" { RETURN_OPCODE(Convert, I32TruncSF64); } - <i> "i64.trunc_s/f64" { RETURN_OPCODE(Convert, I64TruncSF64); } - <i> "i32.trunc_u/f32" { RETURN_OPCODE(Convert, I32TruncUF32); } - <i> "i64.trunc_u/f32" { RETURN_OPCODE(Convert, I64TruncUF32); } - <i> "i32.trunc_u/f64" { RETURN_OPCODE(Convert, I32TruncUF64); } - <i> "i64.trunc_u/f64" { RETURN_OPCODE(Convert, I64TruncUF64); } - <i> "i32.trunc_s:sat/f32" { RETURN_OPCODE(Convert, I32TruncSSatF32); } - <i> "i64.trunc_s:sat/f32" { RETURN_OPCODE(Convert, I64TruncSSatF32); } - <i> "i32.trunc_s:sat/f64" { RETURN_OPCODE(Convert, I32TruncSSatF64); } - <i> "i64.trunc_s:sat/f64" { RETURN_OPCODE(Convert, I64TruncSSatF64); } - <i> "i32.trunc_u:sat/f32" { RETURN_OPCODE(Convert, I32TruncUSatF32); } - <i> "i64.trunc_u:sat/f32" { RETURN_OPCODE(Convert, I64TruncUSatF32); } - <i> "i32.trunc_u:sat/f64" { RETURN_OPCODE(Convert, I32TruncUSatF64); } - <i> "i64.trunc_u:sat/f64" { RETURN_OPCODE(Convert, I64TruncUSatF64); } - <i> "f32.convert_s/i32" { RETURN_OPCODE(Convert, F32ConvertSI32); } - <i> "f64.convert_s/i32" { RETURN_OPCODE(Convert, F64ConvertSI32); } - <i> "f32.convert_s/i64" { RETURN_OPCODE(Convert, F32ConvertSI64); } - <i> "f64.convert_s/i64" { RETURN_OPCODE(Convert, F64ConvertSI64); } - <i> "f32.convert_u/i32" { RETURN_OPCODE(Convert, F32ConvertUI32); } - <i> "f64.convert_u/i32" { RETURN_OPCODE(Convert, F64ConvertUI32); } - <i> "f32.convert_u/i64" { RETURN_OPCODE(Convert, F32ConvertUI64); } - <i> "f64.convert_u/i64" { RETURN_OPCODE(Convert, F64ConvertUI64); } - <i> "f64.promote/f32" { RETURN_OPCODE(Convert, F64PromoteF32); } - <i> "f32.demote/f64" { RETURN_OPCODE(Convert, F32DemoteF64); } - <i> "f32.reinterpret/i32" { RETURN_OPCODE(Convert, F32ReinterpretI32); } - <i> "i32.reinterpret/f32" { RETURN_OPCODE(Convert, I32ReinterpretF32); } - <i> "f64.reinterpret/i64" { RETURN_OPCODE(Convert, F64ReinterpretI64); } - <i> "i64.reinterpret/f64" { RETURN_OPCODE(Convert, I64ReinterpretF64); } + <i> "i64.extend_i32_s" { RETURN_OPCODE(Convert, I64ExtendI32S); } + <i> "i64.extend_i32_u" { RETURN_OPCODE(Convert, I64ExtendI32U); } + <i> "i32.wrap_i64" { RETURN_OPCODE(Convert, I32WrapI64); } + <i> "i32.trunc_f32_s" { RETURN_OPCODE(Convert, I32TruncF32S); } + <i> "i64.trunc_f32_s" { RETURN_OPCODE(Convert, I64TruncF32S); } + <i> "i32.trunc_f64_s" { RETURN_OPCODE(Convert, I32TruncF64S); } + <i> "i64.trunc_f64_s" { RETURN_OPCODE(Convert, I64TruncF64S); } + <i> "i32.trunc_f32_u" { RETURN_OPCODE(Convert, I32TruncF32U); } + <i> "i64.trunc_f32_u" { RETURN_OPCODE(Convert, I64TruncF32U); } + <i> "i32.trunc_f64_u" { RETURN_OPCODE(Convert, I32TruncF64U); } + <i> "i64.trunc_f64_u" { RETURN_OPCODE(Convert, I64TruncF64U); } + <i> "i32.trunc_sat_f32_s" { RETURN_OPCODE(Convert, I32TruncSatF32S); } + <i> "i64.trunc_sat_f32_s" { RETURN_OPCODE(Convert, I64TruncSatF32S); } + <i> "i32.trunc_sat_f64_s" { RETURN_OPCODE(Convert, I32TruncSatF64S); } + <i> "i64.trunc_sat_f64_s" { RETURN_OPCODE(Convert, I64TruncSatF64S); } + <i> "i32.trunc_sat_f32_u" { RETURN_OPCODE(Convert, I32TruncSatF32U); } + <i> "i64.trunc_sat_f32_u" { RETURN_OPCODE(Convert, I64TruncSatF32U); } + <i> "i32.trunc_sat_f64_u" { RETURN_OPCODE(Convert, I32TruncSatF64U); } + <i> "i64.trunc_sat_f64_u" { RETURN_OPCODE(Convert, I64TruncSatF64U); } + <i> "f32.convert_i32_s" { RETURN_OPCODE(Convert, F32ConvertI32S); } + <i> "f64.convert_i32_s" { RETURN_OPCODE(Convert, F64ConvertI32S); } + <i> "f32.convert_i64_s" { RETURN_OPCODE(Convert, F32ConvertI64S); } + <i> "f64.convert_i64_s" { RETURN_OPCODE(Convert, F64ConvertI64S); } + <i> "f32.convert_i32_u" { RETURN_OPCODE(Convert, F32ConvertI32U); } + <i> "f64.convert_i32_u" { RETURN_OPCODE(Convert, F64ConvertI32U); } + <i> "f32.convert_i64_u" { RETURN_OPCODE(Convert, F32ConvertI64U); } + <i> "f64.convert_i64_u" { RETURN_OPCODE(Convert, F64ConvertI64U); } + <i> "f64.promote_f32" { RETURN_OPCODE(Convert, F64PromoteF32); } + <i> "f32.demote_f64" { RETURN_OPCODE(Convert, F32DemoteF64); } + <i> "f32.reinterpret_i32" { RETURN_OPCODE(Convert, F32ReinterpretI32); } + <i> "i32.reinterpret_f32" { RETURN_OPCODE(Convert, I32ReinterpretF32); } + <i> "f64.reinterpret_i64" { RETURN_OPCODE(Convert, F64ReinterpretI64); } + <i> "i64.reinterpret_f64" { RETURN_OPCODE(Convert, I64ReinterpretF64); } <i> "select" { RETURN_OPCODE0(Select); } <i> "unreachable" { RETURN_OPCODE0(Unreachable); } <i> "memory.size" { RETURN_OPCODE0(MemorySize); } @@ -459,7 +459,7 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "i32.atomic.wait" { RETURN_OPCODE(AtomicWait, I32AtomicWait); } <i> "i64.atomic.wait" { RETURN_OPCODE(AtomicWait, I64AtomicWait); } - <i> "atomic.wake" { RETURN_OPCODE0(AtomicWake); } + <i> "atomic.notify" { RETURN_OPCODE0(AtomicNotify); } <i> "i32.atomic.load" { RETURN_OPCODE(AtomicLoad, I32AtomicLoad); } <i> "i64.atomic.load" { RETURN_OPCODE(AtomicLoad, I64AtomicLoad); } <i> "i32.atomic.load8_u" { RETURN_OPCODE(AtomicLoad, I32AtomicLoad8U); } @@ -476,53 +476,53 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "i64.atomic.store32" { RETURN_OPCODE(AtomicStore, I64AtomicStore32); } <i> "i32.atomic.rmw.add" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAdd); } <i> "i64.atomic.rmw.add" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAdd); } - <i> "i32.atomic.rmw8_u.add" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAdd); } - <i> "i32.atomic.rmw16_u.add" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAdd); } - <i> "i64.atomic.rmw8_u.add" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAdd); } - <i> "i64.atomic.rmw16_u.add" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAdd); } - <i> "i64.atomic.rmw32_u.add" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAdd); } + <i> "i32.atomic.rmw8.add_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8AddU); } + <i> "i32.atomic.rmw16.add_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16AddU); } + <i> "i64.atomic.rmw8.add_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8AddU); } + <i> "i64.atomic.rmw16.add_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16AddU); } + <i> "i64.atomic.rmw32.add_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32AddU); } <i> "i32.atomic.rmw.sub" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwSub); } <i> "i64.atomic.rmw.sub" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwSub); } - <i> "i32.atomic.rmw8_u.sub" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8USub); } - <i> "i32.atomic.rmw16_u.sub" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16USub); } - <i> "i64.atomic.rmw8_u.sub" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8USub); } - <i> "i64.atomic.rmw16_u.sub" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16USub); } - <i> "i64.atomic.rmw32_u.sub" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32USub); } + <i> "i32.atomic.rmw8.sub_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8SubU); } + <i> "i32.atomic.rmw16.sub_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16SubU); } + <i> "i64.atomic.rmw8.sub_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8SubU); } + <i> "i64.atomic.rmw16.sub_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16SubU); } + <i> "i64.atomic.rmw32.sub_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32SubU); } <i> "i32.atomic.rmw.and" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwAnd); } <i> "i64.atomic.rmw.and" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwAnd); } - <i> "i32.atomic.rmw8_u.and" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAnd); } - <i> "i32.atomic.rmw16_u.and" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAnd); } - <i> "i64.atomic.rmw8_u.and" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAnd); } - <i> "i64.atomic.rmw16_u.and" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAnd); } - <i> "i64.atomic.rmw32_u.and" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAnd); } + <i> "i32.atomic.rmw8.and_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8AndU); } + <i> "i32.atomic.rmw16.and_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16AndU); } + <i> "i64.atomic.rmw8.and_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8AndU); } + <i> "i64.atomic.rmw16.and_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16AndU); } + <i> "i64.atomic.rmw32.and_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32AndU); } <i> "i32.atomic.rmw.or" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwOr); } <i> "i64.atomic.rmw.or" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwOr); } - <i> "i32.atomic.rmw8_u.or" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UOr); } - <i> "i32.atomic.rmw16_u.or" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UOr); } - <i> "i64.atomic.rmw8_u.or" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UOr); } - <i> "i64.atomic.rmw16_u.or" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UOr); } - <i> "i64.atomic.rmw32_u.or" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UOr); } + <i> "i32.atomic.rmw8.or_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8OrU); } + <i> "i32.atomic.rmw16.or_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16OrU); } + <i> "i64.atomic.rmw8.or_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8OrU); } + <i> "i64.atomic.rmw16.or_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16OrU); } + <i> "i64.atomic.rmw32.or_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32OrU); } <i> "i32.atomic.rmw.xor" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXor); } <i> "i64.atomic.rmw.xor" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXor); } - <i> "i32.atomic.rmw8_u.xor" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXor); } - <i> "i32.atomic.rmw16_u.xor" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXor); } - <i> "i64.atomic.rmw8_u.xor" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXor); } - <i> "i64.atomic.rmw16_u.xor" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXor); } - <i> "i64.atomic.rmw32_u.xor" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXor); } + <i> "i32.atomic.rmw8.xor_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8XorU); } + <i> "i32.atomic.rmw16.xor_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16XorU); } + <i> "i64.atomic.rmw8.xor_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8XorU); } + <i> "i64.atomic.rmw16.xor_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16XorU); } + <i> "i64.atomic.rmw32.xor_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32XorU); } <i> "i32.atomic.rmw.xchg" { RETURN_OPCODE(AtomicRmw, I32AtomicRmwXchg); } <i> "i64.atomic.rmw.xchg" { RETURN_OPCODE(AtomicRmw, I64AtomicRmwXchg); } - <i> "i32.atomic.rmw8_u.xchg" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXchg); } - <i> "i32.atomic.rmw16_u.xchg" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXchg); } - <i> "i64.atomic.rmw8_u.xchg" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXchg); } - <i> "i64.atomic.rmw16_u.xchg" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXchg); } - <i> "i64.atomic.rmw32_u.xchg" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXchg); } + <i> "i32.atomic.rmw8.xchg_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw8XchgU); } + <i> "i32.atomic.rmw16.xchg_u" { RETURN_OPCODE(AtomicRmw, I32AtomicRmw16XchgU); } + <i> "i64.atomic.rmw8.xchg_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw8XchgU); } + <i> "i64.atomic.rmw16.xchg_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw16XchgU); } + <i> "i64.atomic.rmw32.xchg_u" { RETURN_OPCODE(AtomicRmw, I64AtomicRmw32XchgU); } <i> "i32.atomic.rmw.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmwCmpxchg); } <i> "i64.atomic.rmw.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmwCmpxchg); } - <i> "i32.atomic.rmw8_u.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8UCmpxchg); } - <i> "i32.atomic.rmw16_u.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16UCmpxchg); } - <i> "i64.atomic.rmw8_u.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8UCmpxchg); } - <i> "i64.atomic.rmw16_u.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16UCmpxchg); } - <i> "i64.atomic.rmw32_u.cmpxchg" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32UCmpxchg); } + <i> "i32.atomic.rmw8.cmpxchg_u" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8CmpxchgU); } + <i> "i32.atomic.rmw16.cmpxchg_u" { RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16CmpxchgU); } + <i> "i64.atomic.rmw8.cmpxchg_u" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8CmpxchgU); } + <i> "i64.atomic.rmw16.cmpxchg_u" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16CmpxchgU); } + <i> "i64.atomic.rmw32.cmpxchg_u" { RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32CmpxchgU); } <i> "v128.const" { RETURN_OPCODE(Const, V128Const); } <i> "v128.load" { RETURN_OPCODE(Load, V128Load); } <i> "v128.store" { RETURN_OPCODE(Store, V128Store); } @@ -653,19 +653,60 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "f64x2.div" { RETURN_OPCODE(Binary, F64X2Div); } <i> "f32x4.mul" { RETURN_OPCODE(Binary, F32X4Mul); } <i> "f64x2.mul" { RETURN_OPCODE(Binary, F64X2Mul); } - <i> "f32x4.sqrt" { RETURN_OPCODE(Unary, F32X4Sqrt); } - <i> "f64x2.sqrt" { RETURN_OPCODE(Unary, F64X2Sqrt); } - <i> "f32x4.convert_s/i32x4" { RETURN_OPCODE(Unary, F32X4ConvertSI32X4); } - <i> "f32x4.convert_u/i32x4" { RETURN_OPCODE(Unary, F32X4ConvertUI32X4); } - <i> "f64x2.convert_s/i64x2" { RETURN_OPCODE(Unary, F64X2ConvertSI64X2); } - <i> "f64x2.convert_u/i64x2" { RETURN_OPCODE(Unary, F64X2ConvertUI64X2); } - <i> "i32x4.trunc_s/f32x4:sat" { RETURN_OPCODE(Unary, I32X4TruncSF32X4Sat); } - <i> "i32x4.trunc_u/f32x4:sat" { RETURN_OPCODE(Unary, I32X4TruncUF32X4Sat); } - <i> "i64x2.trunc_s/f64x2:sat" { RETURN_OPCODE(Unary, I64X2TruncSF64X2Sat); } - <i> "i64x2.trunc_u/f64x2:sat" { RETURN_OPCODE(Unary, I64X2TruncUF64X2Sat); } + <i> "f32x4.sqrt" { RETURN_OPCODE(Unary, F32X4Sqrt); } + <i> "f64x2.sqrt" { RETURN_OPCODE(Unary, F64X2Sqrt); } + <i> "f32x4.convert_i32x4_s" { RETURN_OPCODE(Unary, F32X4ConvertI32X4S); } + <i> "f32x4.convert_i32x4_u" { RETURN_OPCODE(Unary, F32X4ConvertI32X4U); } + <i> "f64x2.convert_i64x2_s" { RETURN_OPCODE(Unary, F64X2ConvertI64X2S); } + <i> "f64x2.convert_i64x2_u" { RETURN_OPCODE(Unary, F64X2ConvertI64X2U); } + <i> "i32x4.trunc_sat_f32x4_s" { RETURN_OPCODE(Unary, I32X4TruncSatF32X4S); } + <i> "i32x4.trunc_sat_f32x4_u" { RETURN_OPCODE(Unary, I32X4TruncSatF32X4U); } + <i> "i64x2.trunc_sat_f64x2_s" { RETURN_OPCODE(Unary, I64X2TruncSatF64X2S); } + <i> "i64x2.trunc_sat_f64x2_u" { RETURN_OPCODE(Unary, I64X2TruncSatF64X2U); } <i> "return_call" { RETURN_OPCODE0(ReturnCall); } <i> "return_call_indirect" { RETURN_OPCODE0(ReturnCallIndirect); } + // Deprecated names. + <i> "anyfunc" { RETURN(Funcref); } + <i> "get_local" { RETURN_OPCODE0(LocalGet); } + <i> "set_local" { RETURN_OPCODE0(LocalSet); } + <i> "tee_local" { RETURN_OPCODE0(LocalTee); } + <i> "get_global" { RETURN_OPCODE0(GlobalGet); } + <i> "set_global" { RETURN_OPCODE0(GlobalSet); } + <i> "i64.extend_s/i32" { RETURN_OPCODE(Convert, I64ExtendI32S); } + <i> "i64.extend_u/i32" { RETURN_OPCODE(Convert, I64ExtendI32U); } + <i> "i32.wrap/i64" { RETURN_OPCODE(Convert, I32WrapI64); } + <i> "i32.trunc_s/f32" { RETURN_OPCODE(Convert, I32TruncF32S); } + <i> "i64.trunc_s/f32" { RETURN_OPCODE(Convert, I64TruncF32S); } + <i> "i32.trunc_s/f64" { RETURN_OPCODE(Convert, I32TruncF64S); } + <i> "i64.trunc_s/f64" { RETURN_OPCODE(Convert, I64TruncF64S); } + <i> "i32.trunc_u/f32" { RETURN_OPCODE(Convert, I32TruncF32U); } + <i> "i64.trunc_u/f32" { RETURN_OPCODE(Convert, I64TruncF32U); } + <i> "i32.trunc_u/f64" { RETURN_OPCODE(Convert, I32TruncF64U); } + <i> "i64.trunc_u/f64" { RETURN_OPCODE(Convert, I64TruncF64U); } + <i> "f32.convert_s/i32" { RETURN_OPCODE(Convert, F32ConvertI32S); } + <i> "f64.convert_s/i32" { RETURN_OPCODE(Convert, F64ConvertI32S); } + <i> "f32.convert_s/i64" { RETURN_OPCODE(Convert, F32ConvertI64S); } + <i> "f64.convert_s/i64" { RETURN_OPCODE(Convert, F64ConvertI64S); } + <i> "f32.convert_u/i32" { RETURN_OPCODE(Convert, F32ConvertI32U); } + <i> "f64.convert_u/i32" { RETURN_OPCODE(Convert, F64ConvertI32U); } + <i> "f32.convert_u/i64" { RETURN_OPCODE(Convert, F32ConvertI64U); } + <i> "f64.convert_u/i64" { RETURN_OPCODE(Convert, F64ConvertI64U); } + <i> "f64.promote/f32" { RETURN_OPCODE(Convert, F64PromoteF32); } + <i> "f32.demote/f64" { RETURN_OPCODE(Convert, F32DemoteF64); } + <i> "f32.reinterpret/i32" { RETURN_OPCODE(Convert, F32ReinterpretI32); } + <i> "i32.reinterpret/f32" { RETURN_OPCODE(Convert, I32ReinterpretF32); } + <i> "f64.reinterpret/i64" { RETURN_OPCODE(Convert, F64ReinterpretI64); } + <i> "i64.reinterpret/f64" { RETURN_OPCODE(Convert, I64ReinterpretF64); } + <i> "i32.trunc_s:sat/f32" { RETURN_OPCODE(Convert, I32TruncSatF32S); } + <i> "i64.trunc_s:sat/f32" { RETURN_OPCODE(Convert, I64TruncSatF32S); } + <i> "i32.trunc_s:sat/f64" { RETURN_OPCODE(Convert, I32TruncSatF64S); } + <i> "i64.trunc_s:sat/f64" { RETURN_OPCODE(Convert, I64TruncSatF64S); } + <i> "i32.trunc_u:sat/f32" { RETURN_OPCODE(Convert, I32TruncSatF32U); } + <i> "i64.trunc_u:sat/f32" { RETURN_OPCODE(Convert, I64TruncSatF32U); } + <i> "i32.trunc_u:sat/f64" { RETURN_OPCODE(Convert, I32TruncSatF64U); } + <i> "i64.trunc_u:sat/f64" { RETURN_OPCODE(Convert, I64TruncSatF64U); } + <i> "type" { RETURN(Type); } <i> "func" { RETURN(Func); } <i> "param" { RETURN(Param); } diff --git a/src/wast-parser.cc b/src/wast-parser.cc index f9e89151..55fa0d0d 100644 --- a/src/wast-parser.cc +++ b/src/wast-parser.cc @@ -117,11 +117,11 @@ bool IsPlainInstr(TokenType token_type) { case TokenType::ReturnCallIndirect: case TokenType::Call: case TokenType::CallIndirect: - case TokenType::GetLocal: - case TokenType::SetLocal: - case TokenType::TeeLocal: - case TokenType::GetGlobal: - case TokenType::SetGlobal: + case TokenType::LocalGet: + case TokenType::LocalSet: + case TokenType::LocalTee: + case TokenType::GlobalGet: + case TokenType::GlobalSet: case TokenType::Load: case TokenType::Store: case TokenType::Const: @@ -144,7 +144,7 @@ bool IsPlainInstr(TokenType token_type) { case TokenType::AtomicStore: case TokenType::AtomicRmw: case TokenType::AtomicRmwCmpxchg: - case TokenType::AtomicWake: + case TokenType::AtomicNotify: case TokenType::AtomicWait: case TokenType::Ternary: case TokenType::SimdLaneOp: @@ -999,7 +999,7 @@ Result WastParser::ParseImportModuleField(Module* module) { ParseBindVarOpt(&name); auto import = MakeUnique<TableImport>(name); CHECK_RESULT(ParseLimits(&import->table.elem_limits)); - EXPECT(Anyfunc); + EXPECT(Funcref); EXPECT(Rpar); field = MakeUnique<ImportModuleField>(std::move(import), loc); break; @@ -1124,11 +1124,11 @@ Result WastParser::ParseTableModuleField(Module* module) { auto import = MakeUnique<TableImport>(name); CHECK_RESULT(ParseInlineImport(import.get())); CHECK_RESULT(ParseLimits(&import->table.elem_limits)); - EXPECT(Anyfunc); + EXPECT(Funcref); auto field = MakeUnique<ImportModuleField>(std::move(import), GetLocation()); module->AppendField(std::move(field)); - } else if (Match(TokenType::Anyfunc)) { + } else if (Match(TokenType::Funcref)) { EXPECT(Lpar); EXPECT(Elem); @@ -1149,7 +1149,7 @@ Result WastParser::ParseTableModuleField(Module* module) { } else { auto field = MakeUnique<TableModuleField>(loc, name); CHECK_RESULT(ParseLimits(&field->table.elem_limits)); - EXPECT(Anyfunc); + EXPECT(Funcref); module->AppendField(std::move(field)); } @@ -1410,29 +1410,29 @@ Result WastParser::ParsePlainInstr(std::unique_ptr<Expr>* out_expr) { break; } - case TokenType::GetLocal: + case TokenType::LocalGet: Consume(); - CHECK_RESULT(ParsePlainInstrVar<GetLocalExpr>(loc, out_expr)); + CHECK_RESULT(ParsePlainInstrVar<LocalGetExpr>(loc, out_expr)); break; - case TokenType::SetLocal: + case TokenType::LocalSet: Consume(); - CHECK_RESULT(ParsePlainInstrVar<SetLocalExpr>(loc, out_expr)); + CHECK_RESULT(ParsePlainInstrVar<LocalSetExpr>(loc, out_expr)); break; - case TokenType::TeeLocal: + case TokenType::LocalTee: Consume(); - CHECK_RESULT(ParsePlainInstrVar<TeeLocalExpr>(loc, out_expr)); + CHECK_RESULT(ParsePlainInstrVar<LocalTeeExpr>(loc, out_expr)); break; - case TokenType::GetGlobal: + case TokenType::GlobalGet: Consume(); - CHECK_RESULT(ParsePlainInstrVar<GetGlobalExpr>(loc, out_expr)); + CHECK_RESULT(ParsePlainInstrVar<GlobalGetExpr>(loc, out_expr)); break; - case TokenType::SetGlobal: + case TokenType::GlobalSet: Consume(); - CHECK_RESULT(ParsePlainInstrVar<SetGlobalExpr>(loc, out_expr)); + CHECK_RESULT(ParsePlainInstrVar<GlobalSetExpr>(loc, out_expr)); break; case TokenType::Load: @@ -1529,11 +1529,11 @@ Result WastParser::ParsePlainInstr(std::unique_ptr<Expr>* out_expr) { out_expr->reset(new RethrowExpr(loc)); break; - case TokenType::AtomicWake: { + case TokenType::AtomicNotify: { Token token = Consume(); ErrorUnlessOpcodeEnabled(token); CHECK_RESULT( - ParsePlainLoadStoreInstr<AtomicWakeExpr>(loc, token, out_expr)); + ParsePlainLoadStoreInstr<AtomicNotifyExpr>(loc, token, out_expr)); break; } diff --git a/src/wat-writer.cc b/src/wat-writer.cc index 58e30249..60efe761 100644 --- a/src/wat-writer.cc +++ b/src/wat-writer.cc @@ -551,8 +551,8 @@ class WatWriter::ExprVisitorDelegate : public ExprVisitor::Delegate { Result OnConstExpr(ConstExpr*) override; Result OnConvertExpr(ConvertExpr*) override; Result OnDropExpr(DropExpr*) override; - Result OnGetGlobalExpr(GetGlobalExpr*) override; - Result OnGetLocalExpr(GetLocalExpr*) override; + Result OnGlobalGetExpr(GlobalGetExpr*) override; + Result OnGlobalSetExpr(GlobalSetExpr*) override; Result BeginIfExpr(IfExpr*) override; Result AfterIfTrueExpr(IfExpr*) override; Result EndIfExpr(IfExpr*) override; @@ -560,6 +560,9 @@ class WatWriter::ExprVisitorDelegate : public ExprVisitor::Delegate { Result AfterIfExceptTrueExpr(IfExceptExpr*) override; Result EndIfExceptExpr(IfExceptExpr*) override; Result OnLoadExpr(LoadExpr*) override; + Result OnLocalGetExpr(LocalGetExpr*) override; + Result OnLocalSetExpr(LocalSetExpr*) override; + Result OnLocalTeeExpr(LocalTeeExpr*) override; Result BeginLoopExpr(LoopExpr*) override; Result EndLoopExpr(LoopExpr*) override; Result OnMemoryCopyExpr(MemoryCopyExpr*) override; @@ -576,10 +579,7 @@ class WatWriter::ExprVisitorDelegate : public ExprVisitor::Delegate { Result OnReturnCallExpr(ReturnCallExpr*) override; Result OnReturnCallIndirectExpr(ReturnCallIndirectExpr*) override; Result OnSelectExpr(SelectExpr*) override; - Result OnSetGlobalExpr(SetGlobalExpr*) override; - Result OnSetLocalExpr(SetLocalExpr*) override; Result OnStoreExpr(StoreExpr*) override; - Result OnTeeLocalExpr(TeeLocalExpr*) override; Result OnUnaryExpr(UnaryExpr*) override; Result OnUnreachableExpr(UnreachableExpr*) override; Result BeginTryExpr(TryExpr*) override; @@ -588,7 +588,7 @@ class WatWriter::ExprVisitorDelegate : public ExprVisitor::Delegate { Result OnThrowExpr(ThrowExpr*) override; Result OnRethrowExpr(RethrowExpr*) override; Result OnAtomicWaitExpr(AtomicWaitExpr*) override; - Result OnAtomicWakeExpr(AtomicWakeExpr*) override; + Result OnAtomicNotifyExpr(AtomicNotifyExpr*) override; Result OnAtomicLoadExpr(AtomicLoadExpr*) override; Result OnAtomicStoreExpr(AtomicStoreExpr*) override; Result OnAtomicRmwExpr(AtomicRmwExpr*) override; @@ -673,14 +673,14 @@ Result WatWriter::ExprVisitorDelegate::OnDropExpr(DropExpr* expr) { return Result::Ok; } -Result WatWriter::ExprVisitorDelegate::OnGetGlobalExpr(GetGlobalExpr* expr) { - writer_->WritePutsSpace(Opcode::GetGlobal_Opcode.GetName()); +Result WatWriter::ExprVisitorDelegate::OnGlobalGetExpr(GlobalGetExpr* expr) { + writer_->WritePutsSpace(Opcode::GlobalGet_Opcode.GetName()); writer_->WriteVar(expr->var, NextChar::Newline); return Result::Ok; } -Result WatWriter::ExprVisitorDelegate::OnGetLocalExpr(GetLocalExpr* expr) { - writer_->WritePutsSpace(Opcode::GetLocal_Opcode.GetName()); +Result WatWriter::ExprVisitorDelegate::OnGlobalSetExpr(GlobalSetExpr* expr) { + writer_->WritePutsSpace(Opcode::GlobalSet_Opcode.GetName()); writer_->WriteVar(expr->var, NextChar::Newline); return Result::Ok; } @@ -734,6 +734,24 @@ Result WatWriter::ExprVisitorDelegate::OnLoadExpr(LoadExpr* expr) { return Result::Ok; } +Result WatWriter::ExprVisitorDelegate::OnLocalGetExpr(LocalGetExpr* expr) { + writer_->WritePutsSpace(Opcode::LocalGet_Opcode.GetName()); + writer_->WriteVar(expr->var, NextChar::Newline); + return Result::Ok; +} + +Result WatWriter::ExprVisitorDelegate::OnLocalSetExpr(LocalSetExpr* expr) { + writer_->WritePutsSpace(Opcode::LocalSet_Opcode.GetName()); + writer_->WriteVar(expr->var, NextChar::Newline); + return Result::Ok; +} + +Result WatWriter::ExprVisitorDelegate::OnLocalTeeExpr(LocalTeeExpr* expr) { + writer_->WritePutsSpace(Opcode::LocalTee_Opcode.GetName()); + writer_->WriteVar(expr->var, NextChar::Newline); + return Result::Ok; +} + Result WatWriter::ExprVisitorDelegate::BeginLoopExpr(LoopExpr* expr) { writer_->WriteBeginBlock(LabelType::Loop, expr->block, Opcode::Loop_Opcode.GetName()); @@ -824,29 +842,11 @@ Result WatWriter::ExprVisitorDelegate::OnSelectExpr(SelectExpr* expr) { return Result::Ok; } -Result WatWriter::ExprVisitorDelegate::OnSetGlobalExpr(SetGlobalExpr* expr) { - writer_->WritePutsSpace(Opcode::SetGlobal_Opcode.GetName()); - writer_->WriteVar(expr->var, NextChar::Newline); - return Result::Ok; -} - -Result WatWriter::ExprVisitorDelegate::OnSetLocalExpr(SetLocalExpr* expr) { - writer_->WritePutsSpace(Opcode::SetLocal_Opcode.GetName()); - writer_->WriteVar(expr->var, NextChar::Newline); - return Result::Ok; -} - Result WatWriter::ExprVisitorDelegate::OnStoreExpr(StoreExpr* expr) { writer_->WriteLoadStoreExpr<StoreExpr>(expr); return Result::Ok; } -Result WatWriter::ExprVisitorDelegate::OnTeeLocalExpr(TeeLocalExpr* expr) { - writer_->WritePutsSpace(Opcode::TeeLocal_Opcode.GetName()); - writer_->WriteVar(expr->var, NextChar::Newline); - return Result::Ok; -} - Result WatWriter::ExprVisitorDelegate::OnUnaryExpr(UnaryExpr* expr) { writer_->WritePutsNewline(expr->opcode.GetName()); return Result::Ok; @@ -894,8 +894,9 @@ Result WatWriter::ExprVisitorDelegate::OnAtomicWaitExpr(AtomicWaitExpr* expr) { return Result::Ok; } -Result WatWriter::ExprVisitorDelegate::OnAtomicWakeExpr(AtomicWakeExpr* expr) { - writer_->WriteLoadStoreExpr<AtomicWakeExpr>(expr); +Result WatWriter::ExprVisitorDelegate::OnAtomicNotifyExpr( + AtomicNotifyExpr* expr) { + writer_->WriteLoadStoreExpr<AtomicNotifyExpr>(expr); return Result::Ok; } @@ -994,8 +995,8 @@ Index WatWriter::GetFuncResultCount(const Var& var) { void WatWriter::WriteFoldedExpr(const Expr* expr) { WABT_TRACE_ARGS(WriteFoldedExpr, "%s", GetExprTypeName(*expr)); switch (expr->type()) { + case ExprType::AtomicNotify: case ExprType::AtomicRmw: - case ExprType::AtomicWake: case ExprType::Binary: case ExprType::Compare: PushExpr(expr, 2, 1); @@ -1052,9 +1053,9 @@ void WatWriter::WriteFoldedExpr(const Expr* expr) { } case ExprType::Const: + case ExprType::GlobalGet: + case ExprType::LocalGet: case ExprType::MemorySize: - case ExprType::GetGlobal: - case ExprType::GetLocal: case ExprType::Unreachable: PushExpr(expr, 0, 1); break; @@ -1074,16 +1075,16 @@ void WatWriter::WriteFoldedExpr(const Expr* expr) { case ExprType::AtomicLoad: case ExprType::Convert: - case ExprType::MemoryGrow: case ExprType::Load: - case ExprType::TeeLocal: + case ExprType::LocalTee: + case ExprType::MemoryGrow: case ExprType::Unary: PushExpr(expr, 1, 1); break; case ExprType::Drop: - case ExprType::SetGlobal: - case ExprType::SetLocal: + case ExprType::GlobalSet: + case ExprType::LocalSet: PushExpr(expr, 1, 0); break; |