diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binary-reader.cc | 7 | ||||
-rw-r--r-- | src/binary-writer.cc | 1 | ||||
-rw-r--r-- | src/binary.h | 1 | ||||
-rw-r--r-- | src/common.h | 2 | ||||
-rw-r--r-- | src/prebuilt/wast-lexer-gen.cc | 4305 | ||||
-rw-r--r-- | src/token.cc | 1 | ||||
-rw-r--r-- | src/token.h | 1 | ||||
-rw-r--r-- | src/validator.cc | 29 | ||||
-rw-r--r-- | src/wast-lexer.cc | 1 | ||||
-rw-r--r-- | src/wast-parser.cc | 10 | ||||
-rw-r--r-- | src/wat-writer.cc | 6 |
11 files changed, 2214 insertions, 2150 deletions
diff --git a/src/binary-reader.cc b/src/binary-reader.cc index d69b617a..f1049466 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -567,6 +567,8 @@ Result BinaryReader::ReadTable(Type* out_elem_type, Limits* out_elem_limits) { CHECK_RESULT(ReadU32Leb128(&flags, "table flags")); CHECK_RESULT(ReadU32Leb128(&initial, "table initial elem count")); bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG; + bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG; + ERROR_UNLESS(!is_shared, "tables may not be shared"); if (has_max) { CHECK_RESULT(ReadU32Leb128(&max, "table max elem count")); ERROR_UNLESS(initial <= max, @@ -585,8 +587,10 @@ Result BinaryReader::ReadMemory(Limits* out_page_limits) { uint32_t max = 0; CHECK_RESULT(ReadU32Leb128(&flags, "memory flags")); CHECK_RESULT(ReadU32Leb128(&initial, "memory initial page count")); - bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG; ERROR_UNLESS(initial <= WABT_MAX_PAGES, "invalid memory initial size"); + bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG; + bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG; + ERROR_UNLESS(!is_shared || has_max, "shared memory must have a max size"); if (has_max) { CHECK_RESULT(ReadU32Leb128(&max, "memory max page count")); ERROR_UNLESS(max <= WABT_MAX_PAGES, "invalid memory max size"); @@ -594,6 +598,7 @@ Result BinaryReader::ReadMemory(Limits* out_page_limits) { } out_page_limits->has_max = has_max; + out_page_limits->is_shared = is_shared; out_page_limits->initial = initial; out_page_limits->max = max; return Result::Ok; diff --git a/src/binary-writer.cc b/src/binary-writer.cc index 6fc94893..ed2b4f38 100644 --- a/src/binary-writer.cc +++ b/src/binary-writer.cc @@ -60,6 +60,7 @@ void WriteType(Stream* stream, Type type) { void WriteLimits(Stream* stream, const Limits* limits) { uint32_t flags = limits->has_max ? WABT_BINARY_LIMITS_HAS_MAX_FLAG : 0; + flags |= limits->is_shared ? WABT_BINARY_LIMITS_IS_SHARED_FLAG : 0; WriteU32Leb128(stream, flags, "limits: flags"); WriteU32Leb128(stream, limits->initial, "limits: initial"); if (limits->has_max) diff --git a/src/binary.h b/src/binary.h index cab44d33..9150ae8c 100644 --- a/src/binary.h +++ b/src/binary.h @@ -22,6 +22,7 @@ #define WABT_BINARY_MAGIC 0x6d736100 #define WABT_BINARY_VERSION 1 #define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1 +#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2 #define WABT_BINARY_SECTION_NAME "name" #define WABT_BINARY_SECTION_RELOC "reloc" diff --git a/src/common.h b/src/common.h index d489d05d..666e1b88 100644 --- a/src/common.h +++ b/src/common.h @@ -260,7 +260,9 @@ struct Limits { uint64_t initial = 0; uint64_t max = 0; bool has_max = false; + bool is_shared = false; }; +enum class LimitsShareable { Allowed, NotAllowed }; enum { WABT_USE_NATURAL_ALIGNMENT = 0xFFFFFFFF }; diff --git a/src/prebuilt/wast-lexer-gen.cc b/src/prebuilt/wast-lexer-gen.cc index 0e9f293e..dcc92359 100644 --- a/src/prebuilt/wast-lexer-gen.cc +++ b/src/prebuilt/wast-lexer-gen.cc @@ -450,12 +450,12 @@ YYCOND_BLOCK_COMMENT: yy34: ++cursor_; yy35: -#line 490 "src/wast-lexer.cc" +#line 491 "src/wast-lexer.cc" { continue; } #line 456 "src/prebuilt/wast-lexer-gen.cc" yy36: ++cursor_; -#line 489 "src/wast-lexer.cc" +#line 490 "src/wast-lexer.cc" { NEWLINE; continue; } #line 461 "src/prebuilt/wast-lexer-gen.cc" yy38: @@ -469,7 +469,7 @@ yy39: yy40: ++cursor_; yy41: -#line 491 "src/wast-lexer.cc" +#line 492 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(" in block comment"); } #line 475 "src/prebuilt/wast-lexer-gen.cc" yy42: @@ -504,12 +504,12 @@ yy47: goto yy41; yy48: ++cursor_; -#line 485 "src/wast-lexer.cc" +#line 486 "src/wast-lexer.cc" { COMMENT_NESTING++; continue; } #line 510 "src/prebuilt/wast-lexer-gen.cc" yy50: ++cursor_; -#line 486 "src/wast-lexer.cc" +#line 487 "src/wast-lexer.cc" { if (--COMMENT_NESTING == 0) BEGIN(YYCOND_i); continue; } @@ -602,19 +602,19 @@ yy57: if (yych <= 0xF4) goto yy76; } yy59: -#line 483 "src/wast-lexer.cc" +#line 484 "src/wast-lexer.cc" { continue; } #line 608 "src/prebuilt/wast-lexer-gen.cc" yy60: ++cursor_; BEGIN(YYCOND_i); -#line 482 "src/wast-lexer.cc" +#line 483 "src/wast-lexer.cc" { NEWLINE; continue; } #line 614 "src/prebuilt/wast-lexer-gen.cc" yy62: ++cursor_; yy63: -#line 496 "src/wast-lexer.cc" +#line 497 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } #line 620 "src/prebuilt/wast-lexer-gen.cc" yy64: @@ -837,7 +837,7 @@ YYCOND_i: yy79: ++cursor_; yy80: -#line 495 "src/wast-lexer.cc" +#line 496 "src/wast-lexer.cc" { ERROR("unexpected char"); continue; } #line 843 "src/prebuilt/wast-lexer-gen.cc" yy81: @@ -847,12 +847,12 @@ yy81: if (yybm[0+yych] & 4) { goto yy81; } -#line 493 "src/wast-lexer.cc" +#line 494 "src/wast-lexer.cc" { continue; } #line 853 "src/prebuilt/wast-lexer-gen.cc" yy84: ++cursor_; -#line 492 "src/wast-lexer.cc" +#line 493 "src/wast-lexer.cc" { NEWLINE; continue; } #line 858 "src/prebuilt/wast-lexer-gen.cc" yy86: @@ -864,7 +864,7 @@ yy87: goto yy86; } yy88: -#line 494 "src/wast-lexer.cc" +#line 495 "src/wast-lexer.cc" { RETURN_TEXT(Reserved); } #line 870 "src/prebuilt/wast-lexer-gen.cc" yy89: @@ -1112,29 +1112,34 @@ yy116: goto yy87; yy117: yych = *++cursor_; - if (yych == 'e') goto yy194; - if (yych == 't') goto yy195; - goto yy87; + if (yych <= 'g') { + if (yych == 'e') goto yy194; + goto yy87; + } else { + if (yych <= 'h') goto yy195; + if (yych == 't') goto yy196; + goto yy87; + } yy118: yych = *++cursor_; switch (yych) { - case 'a': goto yy196; - case 'e': goto yy197; - case 'h': goto yy198; - case 'r': goto yy199; - case 'y': goto yy200; + case 'a': goto yy197; + case 'e': goto yy198; + case 'h': goto yy199; + case 'r': goto yy200; + case 'y': goto yy201; default: goto yy87; } yy119: yych = *++cursor_; - if (yych == 'n') goto yy201; + if (yych == 'n') goto yy202; goto yy87; yy120: ++cursor_; yy121: -#line 496 "src/wast-lexer.cc" +#line 497 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } -#line 1138 "src/prebuilt/wast-lexer-gen.cc" +#line 1143 "src/prebuilt/wast-lexer-gen.cc" yy122: yych = *++cursor_; if (yych <= 0x7F) goto yy121; @@ -1144,31 +1149,31 @@ yy123: yyaccept = 1; yych = *(marker_ = ++cursor_); if (yych <= 0x9F) goto yy121; - if (yych <= 0xBF) goto yy202; + if (yych <= 0xBF) goto yy203; goto yy121; yy124: yyaccept = 1; yych = *(marker_ = ++cursor_); if (yych <= 0x7F) goto yy121; - if (yych <= 0xBF) goto yy202; + if (yych <= 0xBF) goto yy203; goto yy121; yy125: yyaccept = 1; yych = *(marker_ = ++cursor_); if (yych <= 0x8F) goto yy121; - if (yych <= 0xBF) goto yy203; + if (yych <= 0xBF) goto yy204; goto yy121; yy126: yyaccept = 1; yych = *(marker_ = ++cursor_); if (yych <= 0x7F) goto yy121; - if (yych <= 0xBF) goto yy203; + if (yych <= 0xBF) goto yy204; goto yy121; yy127: yyaccept = 1; yych = *(marker_ = ++cursor_); if (yych <= 0x7F) goto yy121; - if (yych <= 0x8F) goto yy203; + if (yych <= 0x8F) goto yy204; goto yy121; yy128: ++cursor_; @@ -1206,7 +1211,7 @@ yy131: ++cursor_; #line 238 "src/wast-lexer.cc" { RETURN_TEXT(Text); } -#line 1210 "src/prebuilt/wast-lexer-gen.cc" +#line 1215 "src/prebuilt/wast-lexer-gen.cc" yy133: ++cursor_; if (limit_ <= cursor_) FILL(1); @@ -1219,10 +1224,10 @@ yy133: } else { if (yych <= '9') { if (yych <= '/') goto yy130; - goto yy204; + goto yy205; } else { if (yych <= '@') goto yy130; - if (yych <= 'F') goto yy204; + if (yych <= 'F') goto yy205; goto yy130; } } @@ -1232,7 +1237,7 @@ yy133: if (yych <= '\\') goto yy128; goto yy130; } else { - if (yych <= 'f') goto yy204; + if (yych <= 'f') goto yy205; if (yych <= 'm') goto yy130; goto yy128; } @@ -1303,13 +1308,13 @@ yy141: yy142: #line 479 "src/wast-lexer.cc" { RETURN_TEXT(Var); } -#line 1307 "src/prebuilt/wast-lexer-gen.cc" +#line 1312 "src/prebuilt/wast-lexer-gen.cc" yy143: ++cursor_; BEGIN(YYCOND_BLOCK_COMMENT); -#line 484 "src/wast-lexer.cc" +#line 485 "src/wast-lexer.cc" { COMMENT_NESTING = 1; continue; } -#line 1313 "src/prebuilt/wast-lexer-gen.cc" +#line 1318 "src/prebuilt/wast-lexer-gen.cc" yy145: ++cursor_; if ((yych = *cursor_) <= ':') { @@ -1337,14 +1342,14 @@ yy145: } else { if (yych <= 'E') goto yy153; if (yych <= '^') goto yy86; - goto yy205; + goto yy206; } } else { if (yych <= 'w') { if (yych == 'e') goto yy153; goto yy86; } else { - if (yych <= 'x') goto yy206; + if (yych <= 'x') goto yy207; if (yych <= '~') goto yy86; } } @@ -1352,7 +1357,7 @@ yy145: yy146: #line 233 "src/wast-lexer.cc" { RETURN_LITERAL(Int, Int); } -#line 1356 "src/prebuilt/wast-lexer-gen.cc" +#line 1361 "src/prebuilt/wast-lexer-gen.cc" yy147: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); @@ -1383,7 +1388,7 @@ yy147: } } else { if (yych <= 'd') { - if (yych <= '_') goto yy205; + if (yych <= '_') goto yy206; goto yy86; } else { if (yych <= 'e') goto yy153; @@ -1394,7 +1399,7 @@ yy147: } yy149: yych = *++cursor_; - if (yych == 'n') goto yy207; + if (yych == 'n') goto yy208; goto yy87; yy150: yych = *++cursor_; @@ -1409,7 +1414,7 @@ yy151: if (yych <= '\'') goto yy86; if (yych <= ')') goto yy152; if (yych <= '/') goto yy86; - goto yy208; + goto yy209; } } else { if (yych <= 'E') { @@ -1424,16 +1429,16 @@ yy151: yy152: #line 234 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Float); } -#line 1428 "src/prebuilt/wast-lexer-gen.cc" +#line 1433 "src/prebuilt/wast-lexer-gen.cc" yy153: yych = *++cursor_; if (yych <= ',') { - if (yych == '+') goto yy210; + if (yych == '+') goto yy211; goto yy87; } else { - if (yych <= '-') goto yy210; + if (yych <= '-') goto yy211; if (yych <= '/') goto yy87; - if (yych <= '9') goto yy211; + if (yych <= '9') goto yy212; goto yy87; } yy154: @@ -1462,7 +1467,7 @@ yy155: if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yybm[0+yych] & 128) { - goto yy213; + goto yy214; } if (yych <= '\'') { if (yych == '!') goto yy86; @@ -1481,28 +1486,28 @@ yy155: yy156: ++cursor_; BEGIN(YYCOND_LINE_COMMENT); -#line 481 "src/wast-lexer.cc" +#line 482 "src/wast-lexer.cc" { continue; } -#line 1487 "src/prebuilt/wast-lexer-gen.cc" +#line 1492 "src/prebuilt/wast-lexer-gen.cc" yy158: yych = *++cursor_; - if (yych == 'i') goto yy215; + if (yych == 'i') goto yy216; goto yy87; yy159: yych = *++cursor_; - if (yych == 'y') goto yy216; + if (yych == 'y') goto yy217; goto yy87; yy160: yych = *++cursor_; - if (yych == 's') goto yy217; + if (yych == 's') goto yy218; goto yy87; yy161: yych = *++cursor_; - if (yych == 'n') goto yy218; + if (yych == 'n') goto yy219; goto yy87; yy162: yych = *++cursor_; - if (yych == 'o') goto yy219; + if (yych == 'o') goto yy220; goto yy87; yy163: ++cursor_; @@ -1517,76 +1522,76 @@ yy163: if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy220; + if (yych <= '_') goto yy221; if (yych <= '~') goto yy86; } } yy164: #line 263 "src/wast-lexer.cc" { RETURN_OPCODE0(Br); } -#line 1528 "src/prebuilt/wast-lexer-gen.cc" +#line 1533 "src/prebuilt/wast-lexer-gen.cc" yy165: yych = *++cursor_; - if (yych == 'l') goto yy221; - if (yych == 't') goto yy222; + if (yych == 'l') goto yy222; + if (yych == 't') goto yy223; goto yy87; yy166: yych = *++cursor_; - if (yych == 'r') goto yy223; + if (yych == 'r') goto yy224; goto yy87; yy167: yych = *++cursor_; - if (yych == 't') goto yy224; + if (yych == 't') goto yy225; goto yy87; yy168: yych = *++cursor_; - if (yych == 'o') goto yy225; + if (yych == 'o') goto yy226; goto yy87; yy169: yych = *++cursor_; - if (yych == 'e') goto yy226; - if (yych == 's') goto yy227; + if (yych == 'e') goto yy227; + if (yych == 's') goto yy228; goto yy87; yy170: yych = *++cursor_; - if (yych == 'd') goto yy228; + if (yych == 'd') goto yy229; goto yy87; yy171: yych = *++cursor_; - if (yych == 'c') goto yy230; - if (yych == 'p') goto yy231; + if (yych == 'c') goto yy231; + if (yych == 'p') goto yy232; goto yy87; yy172: yych = *++cursor_; - if (yych == '2') goto yy232; + if (yych == '2') goto yy233; goto yy87; yy173: yych = *++cursor_; - if (yych == '4') goto yy234; + if (yych == '4') goto yy235; goto yy87; yy174: yych = *++cursor_; - if (yych == 'n') goto yy236; + if (yych == 'n') goto yy237; goto yy87; yy175: yych = *++cursor_; - if (yych == 't') goto yy237; + if (yych == 't') goto yy238; goto yy87; yy176: yych = *++cursor_; - if (yych == 'o') goto yy239; + if (yych == 'o') goto yy240; goto yy87; yy177: yych = *++cursor_; - if (yych == 'o') goto yy240; + if (yych == 'o') goto yy241; goto yy87; yy178: yych = *++cursor_; - if (yych == '2') goto yy241; + if (yych == '2') goto yy242; goto yy87; yy179: yych = *++cursor_; - if (yych == '4') goto yy243; + if (yych == '4') goto yy244; goto yy87; yy180: ++cursor_; @@ -1595,108 +1600,112 @@ yy180: } #line 259 "src/wast-lexer.cc" { RETURN_OPCODE0(If); } -#line 1599 "src/prebuilt/wast-lexer-gen.cc" +#line 1604 "src/prebuilt/wast-lexer-gen.cc" yy182: yych = *++cursor_; - if (yych == 'p') goto yy245; + if (yych == 'p') goto yy246; goto yy87; yy183: yych = *++cursor_; - if (yych == 'f') goto yy246; - if (yych == 'v') goto yy248; + if (yych == 'f') goto yy247; + if (yych == 'v') goto yy249; goto yy87; yy184: yych = *++cursor_; - if (yych == 'c') goto yy249; - if (yych == 'o') goto yy250; + if (yych == 'c') goto yy250; + if (yych == 'o') goto yy251; goto yy87; yy185: yych = *++cursor_; - if (yych == 'm') goto yy251; + if (yych == 'm') goto yy252; goto yy87; yy186: yych = *++cursor_; - if (yych == 'd') goto yy252; + if (yych == 'd') goto yy253; goto yy87; yy187: yych = *++cursor_; - if (yych == 't') goto yy253; + if (yych == 't') goto yy254; goto yy87; yy188: yych = *++cursor_; - if (yych == 'n') goto yy255; + if (yych == 'n') goto yy256; goto yy87; yy189: yych = *++cursor_; - if (yych == 'p') goto yy257; + if (yych == 'p') goto yy258; goto yy87; yy190: yych = *++cursor_; - if (yych == 'f') goto yy259; + if (yych == 'f') goto yy260; goto yy87; yy191: yych = *++cursor_; - if (yych == 'r') goto yy260; + if (yych == 'r') goto yy261; goto yy87; yy192: yych = *++cursor_; - if (yych == 'o') goto yy261; + if (yych == 'o') goto yy262; goto yy87; yy193: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'g') goto yy262; + if (yych == 'g') goto yy263; goto yy87; } else { - if (yych <= 's') goto yy263; - if (yych <= 't') goto yy264; + if (yych <= 's') goto yy264; + if (yych <= 't') goto yy265; goto yy87; } yy194: yych = *++cursor_; - if (yych == 'l') goto yy265; - if (yych == 't') goto yy266; + if (yych == 'l') goto yy266; + if (yych == 't') goto yy267; goto yy87; yy195: yych = *++cursor_; - if (yych == 'a') goto yy267; + if (yych == 'a') goto yy268; goto yy87; yy196: yych = *++cursor_; - if (yych == 'b') goto yy268; + if (yych == 'a') goto yy269; goto yy87; yy197: yych = *++cursor_; - if (yych == 'e') goto yy269; + if (yych == 'b') goto yy270; goto yy87; yy198: yych = *++cursor_; - if (yych == 'e') goto yy270; - if (yych == 'r') goto yy271; + if (yych == 'e') goto yy271; goto yy87; yy199: yych = *++cursor_; - if (yych == 'y') goto yy272; + if (yych == 'e') goto yy272; + if (yych == 'r') goto yy273; goto yy87; yy200: yych = *++cursor_; - if (yych == 'p') goto yy274; + if (yych == 'y') goto yy274; goto yy87; yy201: yych = *++cursor_; - if (yych == 'r') goto yy275; + if (yych == 'p') goto yy276; goto yy87; yy202: yych = *++cursor_; + if (yych == 'r') goto yy277; + goto yy87; +yy203: + yych = *++cursor_; if (yych <= 0x7F) goto yy130; if (yych <= 0xBF) goto yy79; goto yy130; -yy203: +yy204: yych = *++cursor_; if (yych <= 0x7F) goto yy130; - if (yych <= 0xBF) goto yy202; + if (yych <= 0xBF) goto yy203; goto yy130; -yy204: +yy205: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -1710,7 +1719,7 @@ yy204: if (yych <= 'f') goto yy128; goto yy130; } -yy205: +yy206: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -1734,7 +1743,7 @@ yy205: goto yy88; } } -yy206: +yy207: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -1746,25 +1755,25 @@ yy206: if (yych <= '\'') goto yy86; if (yych <= ')') goto yy88; if (yych <= '/') goto yy86; - goto yy276; + goto yy278; } } else { if (yych <= 'F') { if (yych == ';') goto yy88; if (yych <= '@') goto yy86; - goto yy276; + goto yy278; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy276; + if (yych <= 'f') goto yy278; if (yych <= '~') goto yy86; goto yy88; } } -yy207: +yy208: yych = *++cursor_; - if (yych == 'f') goto yy246; + if (yych == 'f') goto yy247; goto yy87; -yy208: +yy209: ++cursor_; if ((limit_ - cursor_) < 2) FILL(2); yych = *cursor_; @@ -1776,7 +1785,7 @@ yy208: } else { if (yych <= ')') goto yy152; if (yych <= '/') goto yy86; - if (yych <= '9') goto yy208; + if (yych <= '9') goto yy209; goto yy86; } } else { @@ -1786,7 +1795,7 @@ yy208: goto yy86; } else { if (yych <= 'd') { - if (yych <= '_') goto yy278; + if (yych <= '_') goto yy280; goto yy86; } else { if (yych <= 'e') goto yy153; @@ -1795,7 +1804,7 @@ yy208: } } } -yy210: +yy211: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -1818,7 +1827,7 @@ yy210: goto yy88; } } -yy211: +yy212: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -1833,21 +1842,21 @@ yy211: } } else { if (yych <= ';') { - if (yych <= '9') goto yy211; + if (yych <= '9') goto yy212; if (yych <= ':') goto yy86; goto yy152; } else { - if (yych == '_') goto yy210; + if (yych == '_') goto yy211; if (yych <= '~') goto yy86; goto yy152; } } -yy213: +yy214: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; if (yybm[0+yych] & 128) { - goto yy213; + goto yy214; } if (yych <= ':') { if (yych <= '\'') { @@ -1856,355 +1865,359 @@ yy213: goto yy86; } else { if (yych <= ')') goto yy98; - if (yych == '.') goto yy279; + if (yych == '.') goto yy281; goto yy86; } } else { if (yych <= '^') { if (yych <= ';') goto yy98; - if (yych == 'P') goto yy281; + if (yych == 'P') goto yy283; goto yy86; } else { if (yych <= 'o') { if (yych <= '_') goto yy155; goto yy86; } else { - if (yych <= 'p') goto yy281; + if (yych <= 'p') goto yy283; if (yych <= '~') goto yy86; goto yy98; } } } -yy215: - yych = *++cursor_; - if (yych == 'g') goto yy282; - goto yy87; yy216: yych = *++cursor_; - if (yych == 'f') goto yy283; + if (yych == 'g') goto yy284; goto yy87; yy217: yych = *++cursor_; - if (yych == 'e') goto yy284; + if (yych == 'f') goto yy285; goto yy87; yy218: yych = *++cursor_; - if (yych == 'a') goto yy285; + if (yych == 'e') goto yy286; goto yy87; yy219: yych = *++cursor_; - if (yych == 'c') goto yy286; + if (yych == 'a') goto yy287; goto yy87; yy220: yych = *++cursor_; - if (yych == 'i') goto yy287; - if (yych == 't') goto yy288; + if (yych == 'c') goto yy288; goto yy87; yy221: yych = *++cursor_; - if (yych == 'l') goto yy289; + if (yych == 'i') goto yy289; + if (yych == 't') goto yy290; goto yy87; yy222: yych = *++cursor_; - if (yych == 'c') goto yy291; + if (yych == 'l') goto yy291; goto yy87; yy223: yych = *++cursor_; - if (yych == 'r') goto yy292; + if (yych == 'c') goto yy293; goto yy87; yy224: yych = *++cursor_; - if (yych == 'a') goto yy293; + if (yych == 'r') goto yy294; goto yy87; yy225: yych = *++cursor_; - if (yych == 'p') goto yy295; + if (yych == 'a') goto yy295; goto yy87; yy226: yych = *++cursor_; - if (yych == 'm') goto yy297; + if (yych == 'p') goto yy297; goto yy87; yy227: yych = *++cursor_; - if (yych == 'e') goto yy299; + if (yych == 'm') goto yy299; goto yy87; yy228: + yych = *++cursor_; + if (yych == 'e') goto yy301; + goto yy87; +yy229: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 269 "src/wast-lexer.cc" { RETURN_OPCODE0(End); } -#line 1939 "src/prebuilt/wast-lexer-gen.cc" -yy230: - yych = *++cursor_; - if (yych == 'e') goto yy301; - goto yy87; +#line 1948 "src/prebuilt/wast-lexer-gen.cc" yy231: yych = *++cursor_; - if (yych == 'o') goto yy302; + if (yych == 'e') goto yy303; goto yy87; yy232: + yych = *++cursor_; + if (yych == 'o') goto yy304; + goto yy87; +yy233: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy233; + if (yych <= '"') goto yy234; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy303; + if (yych == '.') goto yy305; goto yy86; } else { - if (yych <= ';') goto yy233; + if (yych <= ';') goto yy234; if (yych <= '~') goto yy86; } } -yy233: +yy234: #line 253 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, F32); } -#line 1969 "src/prebuilt/wast-lexer-gen.cc" -yy234: +#line 1978 "src/prebuilt/wast-lexer-gen.cc" +yy235: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy235; + if (yych <= '"') goto yy236; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy304; + if (yych == '.') goto yy306; goto yy86; } else { - if (yych <= ';') goto yy235; + if (yych <= ';') goto yy236; if (yych <= '~') goto yy86; } } -yy235: +yy236: #line 254 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, F64); } -#line 1991 "src/prebuilt/wast-lexer-gen.cc" -yy236: +#line 2000 "src/prebuilt/wast-lexer-gen.cc" +yy237: yych = *++cursor_; - if (yych == 'c') goto yy305; + if (yych == 'c') goto yy307; goto yy87; -yy237: +yy238: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy238; + if (yych <= '"') goto yy239; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy307; + if (yych <= '_') goto yy309; if (yych <= '~') goto yy86; } } -yy238: +yy239: #line 465 "src/wast-lexer.cc" { RETURN(Get); } -#line 2016 "src/prebuilt/wast-lexer-gen.cc" -yy239: - yych = *++cursor_; - if (yych == 'b') goto yy308; - goto yy87; +#line 2025 "src/prebuilt/wast-lexer-gen.cc" yy240: yych = *++cursor_; - if (yych == 'w') goto yy309; + if (yych == 'b') goto yy310; goto yy87; yy241: + yych = *++cursor_; + if (yych == 'w') goto yy311; + goto yy87; +yy242: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy242; + if (yych <= '"') goto yy243; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy310; + if (yych == '.') goto yy312; goto yy86; } else { - if (yych <= ';') goto yy242; + if (yych <= ';') goto yy243; if (yych <= '~') goto yy86; } } -yy242: +yy243: #line 251 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, I32); } -#line 2046 "src/prebuilt/wast-lexer-gen.cc" -yy243: +#line 2055 "src/prebuilt/wast-lexer-gen.cc" +yy244: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy244; + if (yych <= '"') goto yy245; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy311; + if (yych == '.') goto yy313; goto yy86; } else { - if (yych <= ';') goto yy244; + if (yych <= ';') goto yy245; if (yych <= '~') goto yy86; } } -yy244: +yy245: #line 252 "src/wast-lexer.cc" { RETURN_TYPE(ValueType, I64); } -#line 2068 "src/prebuilt/wast-lexer-gen.cc" -yy245: +#line 2077 "src/prebuilt/wast-lexer-gen.cc" +yy246: yych = *++cursor_; - if (yych == 'o') goto yy312; + if (yych == 'o') goto yy314; goto yy87; -yy246: +yy247: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 236 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Infinity); } -#line 2080 "src/prebuilt/wast-lexer-gen.cc" -yy248: - yych = *++cursor_; - if (yych == 'o') goto yy313; - goto yy87; +#line 2089 "src/prebuilt/wast-lexer-gen.cc" yy249: yych = *++cursor_; - if (yych == 'a') goto yy314; + if (yych == 'o') goto yy315; goto yy87; yy250: yych = *++cursor_; - if (yych == 'p') goto yy315; + if (yych == 'a') goto yy316; goto yy87; yy251: yych = *++cursor_; - if (yych == 'o') goto yy317; + if (yych == 'p') goto yy317; goto yy87; yy252: yych = *++cursor_; - if (yych == 'u') goto yy318; + if (yych == 'o') goto yy319; goto yy87; yy253: + yych = *++cursor_; + if (yych == 'u') goto yy320; + goto yy87; +yy254: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 256 "src/wast-lexer.cc" { RETURN(Mut); } -#line 2108 "src/prebuilt/wast-lexer-gen.cc" -yy255: +#line 2117 "src/prebuilt/wast-lexer-gen.cc" +yy256: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy256; + if (yych <= '"') goto yy257; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { if (yych <= '9') goto yy86; - goto yy319; + goto yy321; } else { - if (yych <= ';') goto yy256; + if (yych <= ';') goto yy257; if (yych <= '~') goto yy86; } } -yy256: +yy257: #line 237 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Nan); } -#line 2130 "src/prebuilt/wast-lexer-gen.cc" -yy257: +#line 2139 "src/prebuilt/wast-lexer-gen.cc" +yy258: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 257 "src/wast-lexer.cc" { RETURN_OPCODE0(Nop); } -#line 2138 "src/prebuilt/wast-lexer-gen.cc" -yy259: - yych = *++cursor_; - if (yych == 's') goto yy320; - goto yy87; +#line 2147 "src/prebuilt/wast-lexer-gen.cc" yy260: yych = *++cursor_; - if (yych == 'a') goto yy321; + if (yych == 's') goto yy322; goto yy87; yy261: yych = *++cursor_; - if (yych == 't') goto yy322; + if (yych == 'a') goto yy323; goto yy87; yy262: yych = *++cursor_; - if (yych == 'i') goto yy323; + if (yych == 't') goto yy324; goto yy87; yy263: yych = *++cursor_; - if (yych == 'u') goto yy324; + if (yych == 'i') goto yy325; goto yy87; yy264: yych = *++cursor_; - if (yych == 'h') goto yy325; if (yych == 'u') goto yy326; goto yy87; yy265: yych = *++cursor_; - if (yych == 'e') goto yy327; + if (yych == 'h') goto yy327; + if (yych == 'u') goto yy328; goto yy87; yy266: yych = *++cursor_; - if (yych == '_') goto yy328; + if (yych == 'e') goto yy329; goto yy87; yy267: yych = *++cursor_; - if (yych == 'r') goto yy329; + if (yych == '_') goto yy330; goto yy87; yy268: yych = *++cursor_; - if (yych == 'l') goto yy330; + if (yych == 'r') goto yy331; goto yy87; yy269: yych = *++cursor_; - if (yych == '_') goto yy331; + if (yych == 'r') goto yy332; goto yy87; yy270: yych = *++cursor_; - if (yych == 'n') goto yy332; + if (yych == 'l') goto yy333; goto yy87; yy271: yych = *++cursor_; - if (yych == 'o') goto yy334; + if (yych == '_') goto yy334; goto yy87; yy272: + yych = *++cursor_; + if (yych == 'n') goto yy335; + goto yy87; +yy273: + yych = *++cursor_; + if (yych == 'o') goto yy337; + goto yy87; +yy274: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 474 "src/wast-lexer.cc" { RETURN_OPCODE0(Try); } -#line 2199 "src/prebuilt/wast-lexer-gen.cc" -yy274: +#line 2212 "src/prebuilt/wast-lexer-gen.cc" +yy276: yych = *++cursor_; - if (yych == 'e') goto yy335; + if (yych == 'e') goto yy338; goto yy87; -yy275: +yy277: yych = *++cursor_; - if (yych == 'e') goto yy337; + if (yych == 'e') goto yy340; goto yy87; -yy276: +yy278: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; @@ -2220,10 +2233,10 @@ yy276: } } else { if (yych <= '/') { - if (yych == '.') goto yy279; + if (yych == '.') goto yy281; goto yy86; } else { - if (yych <= '9') goto yy276; + if (yych <= '9') goto yy278; if (yych <= ':') goto yy86; goto yy146; } @@ -2232,26 +2245,26 @@ yy276: if (yych <= '_') { if (yych <= 'O') { if (yych <= '@') goto yy86; - if (yych <= 'F') goto yy276; + if (yych <= 'F') goto yy278; goto yy86; } else { - if (yych <= 'P') goto yy281; + if (yych <= 'P') goto yy283; if (yych <= '^') goto yy86; - goto yy206; + goto yy207; } } else { if (yych <= 'o') { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy276; + if (yych <= 'f') goto yy278; goto yy86; } else { - if (yych <= 'p') goto yy281; + if (yych <= 'p') goto yy283; if (yych <= '~') goto yy86; goto yy146; } } } -yy278: +yy280: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -2267,7 +2280,7 @@ yy278: } else { if (yych <= ':') { if (yych <= '/') goto yy86; - if (yych <= '9') goto yy208; + if (yych <= '9') goto yy209; goto yy86; } else { if (yych <= ';') goto yy88; @@ -2275,7 +2288,7 @@ yy278: goto yy88; } } -yy279: +yy281: ++cursor_; if ((yych = *cursor_) <= ';') { if (yych <= '\'') { @@ -2285,7 +2298,7 @@ yy279: if (yych <= '/') { if (yych >= '*') goto yy86; } else { - if (yych <= '9') goto yy338; + if (yych <= '9') goto yy341; if (yych <= ':') goto yy86; } } @@ -2293,267 +2306,259 @@ yy279: if (yych <= '`') { if (yych <= 'F') { if (yych <= '@') goto yy86; - goto yy338; + goto yy341; } else { - if (yych == 'P') goto yy281; + if (yych == 'P') goto yy283; goto yy86; } } else { if (yych <= 'o') { - if (yych <= 'f') goto yy338; + if (yych <= 'f') goto yy341; goto yy86; } else { - if (yych <= 'p') goto yy281; + if (yych <= 'p') goto yy283; if (yych <= '~') goto yy86; } } } -yy280: +yy282: #line 235 "src/wast-lexer.cc" { RETURN_LITERAL(Float, Hexfloat); } -#line 2315 "src/prebuilt/wast-lexer-gen.cc" -yy281: +#line 2328 "src/prebuilt/wast-lexer-gen.cc" +yy283: yych = *++cursor_; if (yych <= ',') { - if (yych == '+') goto yy340; + if (yych == '+') goto yy343; goto yy87; } else { - if (yych <= '-') goto yy340; + if (yych <= '-') goto yy343; if (yych <= '/') goto yy87; - if (yych <= '9') goto yy341; + if (yych <= '9') goto yy344; goto yy87; } -yy282: - yych = *++cursor_; - if (yych == 'n') goto yy343; - goto yy87; -yy283: - yych = *++cursor_; - if (yych == 'u') goto yy344; - goto yy87; yy284: yych = *++cursor_; - if (yych == 'r') goto yy345; + if (yych == 'n') goto yy346; goto yy87; yy285: yych = *++cursor_; - if (yych == 'r') goto yy346; + if (yych == 'u') goto yy347; goto yy87; yy286: yych = *++cursor_; - if (yych == 'k') goto yy347; + if (yych == 'r') goto yy348; goto yy87; yy287: yych = *++cursor_; - if (yych == 'f') goto yy349; + if (yych == 'r') goto yy349; goto yy87; yy288: yych = *++cursor_; - if (yych == 'a') goto yy351; + if (yych == 'k') goto yy350; goto yy87; yy289: + yych = *++cursor_; + if (yych == 'f') goto yy352; + goto yy87; +yy290: + yych = *++cursor_; + if (yych == 'a') goto yy354; + goto yy87; +yy291: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy290; + if (yych <= '"') goto yy292; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy352; + if (yych <= '_') goto yy355; if (yych <= '~') goto yy86; } } -yy290: +yy292: #line 266 "src/wast-lexer.cc" { RETURN_OPCODE0(Call); } -#line 2375 "src/prebuilt/wast-lexer-gen.cc" -yy291: +#line 2388 "src/prebuilt/wast-lexer-gen.cc" +yy293: yych = *++cursor_; - if (yych == 'h') goto yy353; + if (yych == 'h') goto yy356; goto yy87; -yy292: +yy294: yych = *++cursor_; - if (yych == 'e') goto yy355; + if (yych == 'e') goto yy358; goto yy87; -yy293: +yy295: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 458 "src/wast-lexer.cc" { RETURN(Data); } -#line 2391 "src/prebuilt/wast-lexer-gen.cc" -yy295: +#line 2404 "src/prebuilt/wast-lexer-gen.cc" +yy297: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 268 "src/wast-lexer.cc" { RETURN_OPCODE0(Drop); } -#line 2399 "src/prebuilt/wast-lexer-gen.cc" -yy297: +#line 2412 "src/prebuilt/wast-lexer-gen.cc" +yy299: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 457 "src/wast-lexer.cc" { RETURN(Elem); } -#line 2407 "src/prebuilt/wast-lexer-gen.cc" -yy299: +#line 2420 "src/prebuilt/wast-lexer-gen.cc" +yy301: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 261 "src/wast-lexer.cc" { RETURN_OPCODE0(Else); } -#line 2415 "src/prebuilt/wast-lexer-gen.cc" -yy301: +#line 2428 "src/prebuilt/wast-lexer-gen.cc" +yy303: yych = *++cursor_; - if (yych == 'p') goto yy356; + if (yych == 'p') goto yy359; goto yy87; -yy302: +yy304: yych = *++cursor_; - if (yych == 'r') goto yy357; + if (yych == 'r') goto yy360; goto yy87; -yy303: +yy305: yych = *++cursor_; switch (yych) { - case 'a': goto yy358; - case 'c': goto yy359; - case 'd': goto yy360; - case 'e': goto yy361; - case 'f': goto yy362; - case 'g': goto yy363; - case 'l': goto yy364; - case 'm': goto yy365; - case 'n': goto yy366; - case 'r': goto yy367; - case 's': goto yy368; - case 't': goto yy369; + case 'a': goto yy361; + case 'c': goto yy362; + case 'd': goto yy363; + case 'e': goto yy364; + case 'f': goto yy365; + case 'g': goto yy366; + case 'l': goto yy367; + case 'm': goto yy368; + case 'n': goto yy369; + case 'r': goto yy370; + case 's': goto yy371; + case 't': goto yy372; default: goto yy87; } -yy304: +yy306: yych = *++cursor_; switch (yych) { - case 'a': goto yy370; - case 'c': goto yy371; - case 'd': goto yy372; - case 'e': goto yy373; - case 'f': goto yy374; - case 'g': goto yy375; - case 'l': goto yy376; - case 'm': goto yy377; - case 'n': goto yy378; - case 'p': goto yy379; - case 'r': goto yy380; - case 's': goto yy381; - case 't': goto yy382; + case 'a': goto yy373; + case 'c': goto yy374; + case 'd': goto yy375; + case 'e': goto yy376; + case 'f': goto yy377; + case 'g': goto yy378; + case 'l': goto yy379; + case 'm': goto yy380; + case 'n': goto yy381; + case 'p': goto yy382; + case 'r': goto yy383; + case 's': goto yy384; + case 't': goto yy385; default: goto yy87; } -yy305: +yy307: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 446 "src/wast-lexer.cc" { RETURN(Func); } -#line 2466 "src/prebuilt/wast-lexer-gen.cc" -yy307: +#line 2479 "src/prebuilt/wast-lexer-gen.cc" +yy309: yych = *++cursor_; - if (yych == 'g') goto yy383; - if (yych == 'l') goto yy384; + if (yych == 'g') goto yy386; + if (yych == 'l') goto yy387; goto yy87; -yy308: +yy310: yych = *++cursor_; - if (yych == 'a') goto yy385; + if (yych == 'a') goto yy388; goto yy87; -yy309: +yy311: yych = *++cursor_; - if (yych == '_') goto yy386; + if (yych == '_') goto yy389; goto yy87; -yy310: +yy312: yych = *++cursor_; switch (yych) { - case 'a': goto yy387; - case 'c': goto yy388; - case 'd': goto yy389; - case 'e': goto yy390; - case 'g': goto yy391; - case 'l': goto yy392; - case 'm': goto yy393; - case 'n': goto yy394; - case 'o': goto yy395; - case 'p': goto yy396; - case 'r': goto yy397; - case 's': goto yy398; - case 't': goto yy399; - case 'w': goto yy400; - case 'x': goto yy401; + case 'a': goto yy390; + case 'c': goto yy391; + case 'd': goto yy392; + case 'e': goto yy393; + case 'g': goto yy394; + case 'l': goto yy395; + case 'm': goto yy396; + case 'n': goto yy397; + case 'o': goto yy398; + case 'p': goto yy399; + case 'r': goto yy400; + case 's': goto yy401; + case 't': goto yy402; + case 'w': goto yy403; + case 'x': goto yy404; default: goto yy87; } -yy311: +yy313: yych = *++cursor_; switch (yych) { - case 'a': goto yy402; - case 'c': goto yy403; - case 'd': goto yy404; - case 'e': goto yy405; - case 'g': goto yy406; - case 'l': goto yy407; - case 'm': goto yy408; - case 'n': goto yy409; - case 'o': goto yy410; - case 'p': goto yy411; - case 'r': goto yy412; - case 's': goto yy413; - case 't': goto yy414; - case 'x': goto yy415; + case 'a': goto yy405; + case 'c': goto yy406; + case 'd': goto yy407; + case 'e': goto yy408; + case 'g': goto yy409; + case 'l': goto yy410; + case 'm': goto yy411; + case 'n': goto yy412; + case 'o': goto yy413; + case 'p': goto yy414; + case 'r': goto yy415; + case 's': goto yy416; + case 't': goto yy417; + case 'x': goto yy418; default: goto yy87; } -yy312: +yy314: yych = *++cursor_; - if (yych == 'r') goto yy416; + if (yych == 'r') goto yy419; goto yy87; -yy313: +yy315: yych = *++cursor_; - if (yych == 'k') goto yy417; + if (yych == 'k') goto yy420; goto yy87; -yy314: +yy316: yych = *++cursor_; - if (yych == 'l') goto yy418; + if (yych == 'l') goto yy421; goto yy87; -yy315: +yy317: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 262 "src/wast-lexer.cc" { RETURN_OPCODE0(Loop); } -#line 2538 "src/prebuilt/wast-lexer-gen.cc" -yy317: - yych = *++cursor_; - if (yych == 'r') goto yy420; - goto yy87; -yy318: - yych = *++cursor_; - if (yych == 'l') goto yy421; - goto yy87; +#line 2551 "src/prebuilt/wast-lexer-gen.cc" yy319: yych = *++cursor_; - if (yych == '0') goto yy422; + if (yych == 'r') goto yy423; goto yy87; yy320: yych = *++cursor_; - if (yych == 'e') goto yy423; + if (yych == 'l') goto yy424; goto yy87; yy321: yych = *++cursor_; - if (yych == 'm') goto yy424; + if (yych == '0') goto yy425; goto yy87; yy322: yych = *++cursor_; @@ -2561,111 +2566,123 @@ yy322: goto yy87; yy323: yych = *++cursor_; - if (yych == 's') goto yy428; + if (yych == 'm') goto yy427; goto yy87; yy324: yych = *++cursor_; - if (yych == 'l') goto yy429; + if (yych == 'e') goto yy429; goto yy87; yy325: yych = *++cursor_; - if (yych == 'r') goto yy430; + if (yych == 's') goto yy431; goto yy87; yy326: yych = *++cursor_; - if (yych == 'r') goto yy431; + if (yych == 'l') goto yy432; goto yy87; yy327: yych = *++cursor_; - if (yych == 'c') goto yy432; + if (yych == 'r') goto yy433; goto yy87; yy328: yych = *++cursor_; - if (yych == 'g') goto yy433; - if (yych == 'l') goto yy434; + if (yych == 'r') goto yy434; goto yy87; yy329: yych = *++cursor_; - if (yych == 't') goto yy435; + if (yych == 'c') goto yy435; goto yy87; yy330: yych = *++cursor_; - if (yych == 'e') goto yy437; + if (yych == 'g') goto yy436; + if (yych == 'l') goto yy437; goto yy87; yy331: yych = *++cursor_; - if (yych == 'l') goto yy439; + if (yych == 'e') goto yy438; goto yy87; yy332: + yych = *++cursor_; + if (yych == 't') goto yy439; + goto yy87; +yy333: + yych = *++cursor_; + if (yych == 'e') goto yy441; + goto yy87; +yy334: + yych = *++cursor_; + if (yych == 'l') goto yy443; + goto yy87; +yy335: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 260 "src/wast-lexer.cc" { RETURN(Then); } -#line 2607 "src/prebuilt/wast-lexer-gen.cc" -yy334: +#line 2624 "src/prebuilt/wast-lexer-gen.cc" +yy337: yych = *++cursor_; - if (yych == 'w') goto yy440; + if (yych == 'w') goto yy444; goto yy87; -yy335: +yy338: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 445 "src/wast-lexer.cc" { RETURN(Type); } -#line 2619 "src/prebuilt/wast-lexer-gen.cc" -yy337: +#line 2636 "src/prebuilt/wast-lexer-gen.cc" +yy340: yych = *++cursor_; - if (yych == 'a') goto yy442; + if (yych == 'a') goto yy446; goto yy87; -yy338: +yy341: ++cursor_; if ((limit_ - cursor_) < 2) FILL(2); yych = *cursor_; if (yych <= '@') { if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy280; + if (yych <= ' ') goto yy282; goto yy86; } else { - if (yych <= '"') goto yy280; + if (yych <= '"') goto yy282; if (yych <= '\'') goto yy86; - goto yy280; + goto yy282; } } else { if (yych <= '9') { if (yych <= '/') goto yy86; - goto yy338; + goto yy341; } else { - if (yych == ';') goto yy280; + if (yych == ';') goto yy282; goto yy86; } } } else { if (yych <= '_') { if (yych <= 'O') { - if (yych <= 'F') goto yy338; + if (yych <= 'F') goto yy341; goto yy86; } else { - if (yych <= 'P') goto yy281; + if (yych <= 'P') goto yy283; if (yych <= '^') goto yy86; - goto yy443; + goto yy447; } } else { if (yych <= 'o') { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy338; + if (yych <= 'f') goto yy341; goto yy86; } else { - if (yych <= 'p') goto yy281; + if (yych <= 'p') goto yy283; if (yych <= '~') goto yy86; - goto yy280; + goto yy282; } } } -yy340: +yy343: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -2688,531 +2705,535 @@ yy340: goto yy88; } } -yy341: +yy344: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '/') { if (yych <= '"') { if (yych == '!') goto yy86; - goto yy280; + goto yy282; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy280; + if (yych <= ')') goto yy282; goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy341; + if (yych <= '9') goto yy344; if (yych <= ':') goto yy86; - goto yy280; + goto yy282; } else { - if (yych == '_') goto yy340; + if (yych == '_') goto yy343; if (yych <= '~') goto yy86; - goto yy280; + goto yy282; } } -yy343: +yy346: yych = *++cursor_; - if (yych == '=') goto yy444; + if (yych == '=') goto yy448; goto yy87; -yy344: +yy347: yych = *++cursor_; - if (yych == 'n') goto yy445; + if (yych == 'n') goto yy449; goto yy87; -yy345: +yy348: yych = *++cursor_; - if (yych == 't') goto yy446; + if (yych == 't') goto yy450; goto yy87; -yy346: +yy349: yych = *++cursor_; - if (yych == 'y') goto yy447; + if (yych == 'y') goto yy451; goto yy87; -yy347: +yy350: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 258 "src/wast-lexer.cc" { RETURN_OPCODE0(Block); } -#line 2739 "src/prebuilt/wast-lexer-gen.cc" -yy349: +#line 2756 "src/prebuilt/wast-lexer-gen.cc" +yy352: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 264 "src/wast-lexer.cc" { RETURN_OPCODE0(BrIf); } -#line 2747 "src/prebuilt/wast-lexer-gen.cc" -yy351: +#line 2764 "src/prebuilt/wast-lexer-gen.cc" +yy354: yych = *++cursor_; - if (yych == 'b') goto yy449; + if (yych == 'b') goto yy453; goto yy87; -yy352: +yy355: yych = *++cursor_; - if (yych == 'i') goto yy450; + if (yych == 'i') goto yy454; goto yy87; -yy353: +yy356: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy354; + if (yych <= '"') goto yy357; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy451; + if (yych <= '_') goto yy455; if (yych <= '~') goto yy86; } } -yy354: +yy357: #line 475 "src/wast-lexer.cc" { RETURN_OPCODE0(Catch); } -#line 2776 "src/prebuilt/wast-lexer-gen.cc" -yy355: - yych = *++cursor_; - if (yych == 'n') goto yy452; - goto yy87; -yy356: - yych = *++cursor_; - if (yych == 't') goto yy453; - goto yy87; -yy357: - yych = *++cursor_; - if (yych == 't') goto yy455; - goto yy87; +#line 2793 "src/prebuilt/wast-lexer-gen.cc" yy358: yych = *++cursor_; - if (yych == 'b') goto yy457; - if (yych == 'd') goto yy458; + if (yych == 'n') goto yy456; goto yy87; yy359: yych = *++cursor_; - if (yych == 'e') goto yy459; - if (yych == 'o') goto yy460; + if (yych == 't') goto yy457; goto yy87; yy360: yych = *++cursor_; - if (yych == 'e') goto yy461; - if (yych == 'i') goto yy462; + if (yych == 't') goto yy459; goto yy87; yy361: yych = *++cursor_; - if (yych == 'q') goto yy463; + if (yych == 'b') goto yy461; + if (yych == 'd') goto yy462; goto yy87; yy362: yych = *++cursor_; - if (yych == 'l') goto yy465; + if (yych == 'e') goto yy463; + if (yych == 'o') goto yy464; goto yy87; yy363: yych = *++cursor_; - if (yych == 'e') goto yy466; - if (yych == 't') goto yy468; + if (yych == 'e') goto yy465; + if (yych == 'i') goto yy466; goto yy87; yy364: yych = *++cursor_; + if (yych == 'q') goto yy467; + goto yy87; +yy365: + yych = *++cursor_; + if (yych == 'l') goto yy469; + goto yy87; +yy366: + yych = *++cursor_; + if (yych == 'e') goto yy470; + if (yych == 't') goto yy472; + goto yy87; +yy367: + yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy470; + if (yych == 'e') goto yy474; goto yy87; } else { - if (yych <= 'o') goto yy472; - if (yych == 't') goto yy473; + if (yych <= 'o') goto yy476; + if (yych == 't') goto yy477; goto yy87; } -yy365: +yy368: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy475; + if (yych == 'a') goto yy479; goto yy87; } else { - if (yych <= 'i') goto yy476; - if (yych == 'u') goto yy477; + if (yych <= 'i') goto yy480; + if (yych == 'u') goto yy481; goto yy87; } -yy366: +yy369: yych = *++cursor_; - if (yych == 'e') goto yy478; + if (yych == 'e') goto yy482; goto yy87; -yy367: +yy370: yych = *++cursor_; - if (yych == 'e') goto yy480; + if (yych == 'e') goto yy484; goto yy87; -yy368: +yy371: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy481; + if (yych == 'q') goto yy485; goto yy87; } else { - if (yych <= 't') goto yy482; - if (yych <= 'u') goto yy483; + if (yych <= 't') goto yy486; + if (yych <= 'u') goto yy487; goto yy87; } -yy369: +yy372: yych = *++cursor_; - if (yych == 'r') goto yy484; + if (yych == 'r') goto yy488; goto yy87; -yy370: +yy373: yych = *++cursor_; - if (yych == 'b') goto yy485; - if (yych == 'd') goto yy486; + if (yych == 'b') goto yy489; + if (yych == 'd') goto yy490; goto yy87; -yy371: +yy374: yych = *++cursor_; - if (yych == 'e') goto yy487; - if (yych == 'o') goto yy488; + if (yych == 'e') goto yy491; + if (yych == 'o') goto yy492; goto yy87; -yy372: +yy375: yych = *++cursor_; - if (yych == 'i') goto yy489; + if (yych == 'i') goto yy493; goto yy87; -yy373: +yy376: yych = *++cursor_; - if (yych == 'q') goto yy490; + if (yych == 'q') goto yy494; goto yy87; -yy374: +yy377: yych = *++cursor_; - if (yych == 'l') goto yy492; + if (yych == 'l') goto yy496; goto yy87; -yy375: +yy378: yych = *++cursor_; - if (yych == 'e') goto yy493; - if (yych == 't') goto yy495; + if (yych == 'e') goto yy497; + if (yych == 't') goto yy499; goto yy87; -yy376: +yy379: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy497; + if (yych == 'e') goto yy501; goto yy87; } else { - if (yych <= 'o') goto yy499; - if (yych == 't') goto yy500; + if (yych <= 'o') goto yy503; + if (yych == 't') goto yy504; goto yy87; } -yy377: +yy380: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy502; + if (yych == 'a') goto yy506; goto yy87; } else { - if (yych <= 'i') goto yy503; - if (yych == 'u') goto yy504; + if (yych <= 'i') goto yy507; + if (yych == 'u') goto yy508; goto yy87; } -yy378: +yy381: yych = *++cursor_; - if (yych == 'e') goto yy505; + if (yych == 'e') goto yy509; goto yy87; -yy379: +yy382: yych = *++cursor_; - if (yych == 'r') goto yy507; + if (yych == 'r') goto yy511; goto yy87; -yy380: +yy383: yych = *++cursor_; - if (yych == 'e') goto yy508; + if (yych == 'e') goto yy512; goto yy87; -yy381: +yy384: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy509; + if (yych == 'q') goto yy513; goto yy87; } else { - if (yych <= 't') goto yy510; - if (yych <= 'u') goto yy511; + if (yych <= 't') goto yy514; + if (yych <= 'u') goto yy515; goto yy87; } -yy382: +yy385: yych = *++cursor_; - if (yych == 'r') goto yy512; + if (yych == 'r') goto yy516; goto yy87; -yy383: +yy386: yych = *++cursor_; - if (yych == 'l') goto yy513; + if (yych == 'l') goto yy517; goto yy87; -yy384: +yy387: yych = *++cursor_; - if (yych == 'o') goto yy514; + if (yych == 'o') goto yy518; goto yy87; -yy385: +yy388: yych = *++cursor_; - if (yych == 'l') goto yy515; + if (yych == 'l') goto yy519; goto yy87; -yy386: +yy389: yych = *++cursor_; - if (yych == 'm') goto yy517; + if (yych == 'm') goto yy521; goto yy87; -yy387: +yy390: yych = *++cursor_; - if (yych == 'd') goto yy518; - if (yych == 'n') goto yy519; + if (yych == 'd') goto yy522; + if (yych == 'n') goto yy523; goto yy87; -yy388: +yy391: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy520; + if (yych == 'l') goto yy524; goto yy87; } else { - if (yych <= 'o') goto yy521; - if (yych == 't') goto yy522; + if (yych <= 'o') goto yy525; + if (yych == 't') goto yy526; goto yy87; } -yy389: +yy392: yych = *++cursor_; - if (yych == 'i') goto yy523; + if (yych == 'i') goto yy527; goto yy87; -yy390: +yy393: yych = *++cursor_; - if (yych == 'q') goto yy524; - if (yych == 'x') goto yy526; + if (yych == 'q') goto yy528; + if (yych == 'x') goto yy530; goto yy87; -yy391: +yy394: yych = *++cursor_; - if (yych == 'e') goto yy527; - if (yych == 't') goto yy528; + if (yych == 'e') goto yy531; + if (yych == 't') goto yy532; goto yy87; -yy392: +yy395: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy529; + if (yych == 'e') goto yy533; goto yy87; } else { - if (yych <= 'o') goto yy530; - if (yych == 't') goto yy531; + if (yych <= 'o') goto yy534; + if (yych == 't') goto yy535; goto yy87; } -yy393: +yy396: yych = *++cursor_; - if (yych == 'u') goto yy532; + if (yych == 'u') goto yy536; goto yy87; -yy394: +yy397: yych = *++cursor_; - if (yych == 'e') goto yy533; + if (yych == 'e') goto yy537; goto yy87; -yy395: +yy398: yych = *++cursor_; - if (yych == 'r') goto yy535; + if (yych == 'r') goto yy539; goto yy87; -yy396: +yy399: yych = *++cursor_; - if (yych == 'o') goto yy537; + if (yych == 'o') goto yy541; goto yy87; -yy397: +yy400: yych = *++cursor_; - if (yych == 'e') goto yy538; - if (yych == 'o') goto yy539; + if (yych == 'e') goto yy542; + if (yych == 'o') goto yy543; goto yy87; -yy398: +yy401: yych = *++cursor_; if (yych <= 's') { - if (yych == 'h') goto yy540; + if (yych == 'h') goto yy544; goto yy87; } else { - if (yych <= 't') goto yy541; - if (yych <= 'u') goto yy542; + if (yych <= 't') goto yy545; + if (yych <= 'u') goto yy546; goto yy87; } -yy399: +yy402: yych = *++cursor_; - if (yych == 'r') goto yy543; + if (yych == 'r') goto yy547; goto yy87; -yy400: +yy403: yych = *++cursor_; - if (yych == 'r') goto yy544; + if (yych == 'r') goto yy548; goto yy87; -yy401: +yy404: yych = *++cursor_; - if (yych == 'o') goto yy545; + if (yych == 'o') goto yy549; goto yy87; -yy402: +yy405: yych = *++cursor_; - if (yych == 'd') goto yy546; - if (yych == 'n') goto yy547; + if (yych == 'd') goto yy550; + if (yych == 'n') goto yy551; goto yy87; -yy403: +yy406: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'l') goto yy548; + if (yych == 'l') goto yy552; goto yy87; } else { - if (yych <= 'o') goto yy549; - if (yych == 't') goto yy550; + if (yych <= 'o') goto yy553; + if (yych == 't') goto yy554; goto yy87; } -yy404: +yy407: yych = *++cursor_; - if (yych == 'i') goto yy551; + if (yych == 'i') goto yy555; goto yy87; -yy405: +yy408: yych = *++cursor_; - if (yych == 'q') goto yy552; - if (yych == 'x') goto yy554; + if (yych == 'q') goto yy556; + if (yych == 'x') goto yy558; goto yy87; -yy406: +yy409: yych = *++cursor_; - if (yych == 'e') goto yy555; - if (yych == 't') goto yy556; + if (yych == 'e') goto yy559; + if (yych == 't') goto yy560; goto yy87; -yy407: +yy410: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy557; + if (yych == 'e') goto yy561; goto yy87; } else { - if (yych <= 'o') goto yy558; - if (yych == 't') goto yy559; + if (yych <= 'o') goto yy562; + if (yych == 't') goto yy563; goto yy87; } -yy408: +yy411: yych = *++cursor_; - if (yych == 'u') goto yy560; + if (yych == 'u') goto yy564; goto yy87; -yy409: +yy412: yych = *++cursor_; - if (yych == 'e') goto yy561; + if (yych == 'e') goto yy565; goto yy87; -yy410: +yy413: yych = *++cursor_; - if (yych == 'r') goto yy563; + if (yych == 'r') goto yy567; goto yy87; -yy411: +yy414: yych = *++cursor_; - if (yych == 'o') goto yy565; + if (yych == 'o') goto yy569; goto yy87; -yy412: +yy415: yych = *++cursor_; - if (yych == 'e') goto yy566; - if (yych == 'o') goto yy567; + if (yych == 'e') goto yy570; + if (yych == 'o') goto yy571; goto yy87; -yy413: +yy416: yych = *++cursor_; if (yych <= 's') { - if (yych == 'h') goto yy568; + if (yych == 'h') goto yy572; goto yy87; } else { - if (yych <= 't') goto yy569; - if (yych <= 'u') goto yy570; + if (yych <= 't') goto yy573; + if (yych <= 'u') goto yy574; goto yy87; } -yy414: +yy417: yych = *++cursor_; - if (yych == 'r') goto yy571; + if (yych == 'r') goto yy575; goto yy87; -yy415: +yy418: yych = *++cursor_; - if (yych == 'o') goto yy572; + if (yych == 'o') goto yy576; goto yy87; -yy416: +yy419: yych = *++cursor_; - if (yych == 't') goto yy573; + if (yych == 't') goto yy577; goto yy87; -yy417: +yy420: yych = *++cursor_; - if (yych == 'e') goto yy575; + if (yych == 'e') goto yy579; goto yy87; -yy418: +yy421: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 449 "src/wast-lexer.cc" { RETURN(Local); } -#line 3123 "src/prebuilt/wast-lexer-gen.cc" -yy420: +#line 3140 "src/prebuilt/wast-lexer-gen.cc" +yy423: yych = *++cursor_; - if (yych == 'y') goto yy577; + if (yych == 'y') goto yy581; goto yy87; -yy421: +yy424: yych = *++cursor_; - if (yych == 'e') goto yy579; + if (yych == 'e') goto yy583; goto yy87; -yy422: +yy425: yych = *++cursor_; - if (yych == 'x') goto yy581; + if (yych == 'x') goto yy585; goto yy87; -yy423: +yy426: yych = *++cursor_; - if (yych == 't') goto yy582; + if (yych == 't') goto yy586; goto yy87; -yy424: +yy427: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 447 "src/wast-lexer.cc" { RETURN(Param); } -#line 3147 "src/prebuilt/wast-lexer-gen.cc" -yy426: +#line 3164 "src/prebuilt/wast-lexer-gen.cc" +yy429: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 453 "src/wast-lexer.cc" { RETURN(Quote); } -#line 3155 "src/prebuilt/wast-lexer-gen.cc" -yy428: +#line 3172 "src/prebuilt/wast-lexer-gen.cc" +yy431: yych = *++cursor_; - if (yych == 't') goto yy584; + if (yych == 't') goto yy588; goto yy87; -yy429: +yy432: yych = *++cursor_; - if (yych == 't') goto yy585; + if (yych == 't') goto yy589; goto yy87; -yy430: +yy433: yych = *++cursor_; - if (yych == 'o') goto yy587; + if (yych == 'o') goto yy591; goto yy87; -yy431: +yy434: yych = *++cursor_; - if (yych == 'n') goto yy588; + if (yych == 'n') goto yy592; goto yy87; -yy432: +yy435: yych = *++cursor_; - if (yych == 't') goto yy590; + if (yych == 't') goto yy594; goto yy87; -yy433: +yy436: yych = *++cursor_; - if (yych == 'l') goto yy592; + if (yych == 'l') goto yy596; goto yy87; -yy434: +yy437: yych = *++cursor_; - if (yych == 'o') goto yy593; + if (yych == 'o') goto yy597; goto yy87; -yy435: +yy438: + yych = *++cursor_; + if (yych == 'd') goto yy598; + goto yy87; +yy439: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 456 "src/wast-lexer.cc" { RETURN(Start); } -#line 3191 "src/prebuilt/wast-lexer-gen.cc" -yy437: +#line 3212 "src/prebuilt/wast-lexer-gen.cc" +yy441: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 454 "src/wast-lexer.cc" { RETURN(Table); } -#line 3199 "src/prebuilt/wast-lexer-gen.cc" -yy439: +#line 3220 "src/prebuilt/wast-lexer-gen.cc" +yy443: yych = *++cursor_; - if (yych == 'o') goto yy594; + if (yych == 'o') goto yy600; goto yy87; -yy440: +yy444: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 477 "src/wast-lexer.cc" { RETURN_OPCODE0(Throw); } -#line 3211 "src/prebuilt/wast-lexer-gen.cc" -yy442: +#line 3232 "src/prebuilt/wast-lexer-gen.cc" +yy446: yych = *++cursor_; - if (yych == 'c') goto yy595; + if (yych == 'c') goto yy601; goto yy87; -yy443: +yy447: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -3224,160 +3245,160 @@ yy443: if (yych <= '\'') goto yy86; if (yych <= ')') goto yy88; if (yych <= '/') goto yy86; - goto yy338; + goto yy341; } } else { if (yych <= 'F') { if (yych == ';') goto yy88; if (yych <= '@') goto yy86; - goto yy338; + goto yy341; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy338; + if (yych <= 'f') goto yy341; if (yych <= '~') goto yy86; goto yy88; } } -yy444: +yy448: yych = *++cursor_; if (yych <= '/') goto yy87; - if (yych <= '0') goto yy596; - if (yych <= '9') goto yy598; + if (yych <= '0') goto yy602; + if (yych <= '9') goto yy604; goto yy87; -yy445: +yy449: yych = *++cursor_; - if (yych == 'c') goto yy600; + if (yych == 'c') goto yy606; goto yy87; -yy446: +yy450: yych = *++cursor_; - if (yych == '_') goto yy602; + if (yych == '_') goto yy608; goto yy87; -yy447: +yy451: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 452 "src/wast-lexer.cc" { RETURN(Bin); } -#line 3263 "src/prebuilt/wast-lexer-gen.cc" -yy449: +#line 3284 "src/prebuilt/wast-lexer-gen.cc" +yy453: yych = *++cursor_; - if (yych == 'l') goto yy603; + if (yych == 'l') goto yy609; goto yy87; -yy450: +yy454: yych = *++cursor_; - if (yych == 'n') goto yy604; + if (yych == 'n') goto yy610; goto yy87; -yy451: +yy455: yych = *++cursor_; - if (yych == 'a') goto yy605; + if (yych == 'a') goto yy611; goto yy87; -yy452: +yy456: yych = *++cursor_; - if (yych == 't') goto yy606; + if (yych == 't') goto yy612; goto yy87; -yy453: +yy457: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 462 "src/wast-lexer.cc" { RETURN(Except); } -#line 3287 "src/prebuilt/wast-lexer-gen.cc" -yy455: +#line 3308 "src/prebuilt/wast-lexer-gen.cc" +yy459: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 461 "src/wast-lexer.cc" { RETURN(Export); } -#line 3295 "src/prebuilt/wast-lexer-gen.cc" -yy457: +#line 3316 "src/prebuilt/wast-lexer-gen.cc" +yy461: yych = *++cursor_; - if (yych == 's') goto yy607; + if (yych == 's') goto yy613; goto yy87; -yy458: +yy462: yych = *++cursor_; - if (yych == 'd') goto yy609; + if (yych == 'd') goto yy615; goto yy87; -yy459: +yy463: yych = *++cursor_; - if (yych == 'i') goto yy611; + if (yych == 'i') goto yy617; goto yy87; -yy460: +yy464: yych = *++cursor_; - if (yych == 'n') goto yy612; - if (yych == 'p') goto yy613; + if (yych == 'n') goto yy618; + if (yych == 'p') goto yy619; goto yy87; -yy461: +yy465: yych = *++cursor_; - if (yych == 'm') goto yy614; + if (yych == 'm') goto yy620; goto yy87; -yy462: +yy466: yych = *++cursor_; - if (yych == 'v') goto yy615; + if (yych == 'v') goto yy621; goto yy87; -yy463: +yy467: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 396 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Eq); } -#line 3328 "src/prebuilt/wast-lexer-gen.cc" -yy465: +#line 3349 "src/prebuilt/wast-lexer-gen.cc" +yy469: yych = *++cursor_; - if (yych == 'o') goto yy617; + if (yych == 'o') goto yy623; goto yy87; -yy466: +yy470: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 406 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Ge); } -#line 3340 "src/prebuilt/wast-lexer-gen.cc" -yy468: +#line 3361 "src/prebuilt/wast-lexer-gen.cc" +yy472: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 404 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Gt); } -#line 3348 "src/prebuilt/wast-lexer-gen.cc" -yy470: +#line 3369 "src/prebuilt/wast-lexer-gen.cc" +yy474: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 402 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Le); } -#line 3356 "src/prebuilt/wast-lexer-gen.cc" -yy472: +#line 3377 "src/prebuilt/wast-lexer-gen.cc" +yy476: yych = *++cursor_; - if (yych == 'a') goto yy618; + if (yych == 'a') goto yy624; goto yy87; -yy473: +yy477: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 400 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Lt); } -#line 3368 "src/prebuilt/wast-lexer-gen.cc" -yy475: +#line 3389 "src/prebuilt/wast-lexer-gen.cc" +yy479: yych = *++cursor_; - if (yych == 'x') goto yy619; + if (yych == 'x') goto yy625; goto yy87; -yy476: +yy480: yych = *++cursor_; - if (yych == 'n') goto yy621; + if (yych == 'n') goto yy627; goto yy87; -yy477: +yy481: yych = *++cursor_; - if (yych == 'l') goto yy623; + if (yych == 'l') goto yy629; goto yy87; -yy478: +yy482: ++cursor_; if ((yych = *cursor_) <= ':') { if (yych <= '"') { @@ -3388,120 +3409,120 @@ yy478: } } else { if (yych <= 'a') { - if (yych <= ';') goto yy479; + if (yych <= ';') goto yy483; if (yych <= '`') goto yy86; - goto yy625; + goto yy631; } else { - if (yych == 'g') goto yy626; + if (yych == 'g') goto yy632; if (yych <= '~') goto yy86; } } -yy479: +yy483: #line 398 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F32Ne); } -#line 3403 "src/prebuilt/wast-lexer-gen.cc" -yy480: +#line 3424 "src/prebuilt/wast-lexer-gen.cc" +yy484: yych = *++cursor_; - if (yych == 'i') goto yy628; + if (yych == 'i') goto yy634; goto yy87; -yy481: +yy485: yych = *++cursor_; - if (yych == 'r') goto yy629; + if (yych == 'r') goto yy635; goto yy87; -yy482: +yy486: yych = *++cursor_; - if (yych == 'o') goto yy630; + if (yych == 'o') goto yy636; goto yy87; -yy483: +yy487: yych = *++cursor_; - if (yych == 'b') goto yy631; + if (yych == 'b') goto yy637; goto yy87; -yy484: +yy488: yych = *++cursor_; - if (yych == 'u') goto yy633; + if (yych == 'u') goto yy639; goto yy87; -yy485: +yy489: yych = *++cursor_; - if (yych == 's') goto yy634; + if (yych == 's') goto yy640; goto yy87; -yy486: +yy490: yych = *++cursor_; - if (yych == 'd') goto yy636; + if (yych == 'd') goto yy642; goto yy87; -yy487: +yy491: yych = *++cursor_; - if (yych == 'i') goto yy638; + if (yych == 'i') goto yy644; goto yy87; -yy488: +yy492: yych = *++cursor_; - if (yych == 'n') goto yy639; - if (yych == 'p') goto yy640; + if (yych == 'n') goto yy645; + if (yych == 'p') goto yy646; goto yy87; -yy489: +yy493: yych = *++cursor_; - if (yych == 'v') goto yy641; + if (yych == 'v') goto yy647; goto yy87; -yy490: +yy494: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 397 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Eq); } -#line 3452 "src/prebuilt/wast-lexer-gen.cc" -yy492: +#line 3473 "src/prebuilt/wast-lexer-gen.cc" +yy496: yych = *++cursor_; - if (yych == 'o') goto yy643; + if (yych == 'o') goto yy649; goto yy87; -yy493: +yy497: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 407 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Ge); } -#line 3464 "src/prebuilt/wast-lexer-gen.cc" -yy495: +#line 3485 "src/prebuilt/wast-lexer-gen.cc" +yy499: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 405 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Gt); } -#line 3472 "src/prebuilt/wast-lexer-gen.cc" -yy497: +#line 3493 "src/prebuilt/wast-lexer-gen.cc" +yy501: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 403 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Le); } -#line 3480 "src/prebuilt/wast-lexer-gen.cc" -yy499: +#line 3501 "src/prebuilt/wast-lexer-gen.cc" +yy503: yych = *++cursor_; - if (yych == 'a') goto yy644; + if (yych == 'a') goto yy650; goto yy87; -yy500: +yy504: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 401 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Lt); } -#line 3492 "src/prebuilt/wast-lexer-gen.cc" -yy502: +#line 3513 "src/prebuilt/wast-lexer-gen.cc" +yy506: yych = *++cursor_; - if (yych == 'x') goto yy645; + if (yych == 'x') goto yy651; goto yy87; -yy503: +yy507: yych = *++cursor_; - if (yych == 'n') goto yy647; + if (yych == 'n') goto yy653; goto yy87; -yy504: +yy508: yych = *++cursor_; - if (yych == 'l') goto yy649; + if (yych == 'l') goto yy655; goto yy87; -yy505: +yy509: ++cursor_; if ((yych = *cursor_) <= ':') { if (yych <= '"') { @@ -3512,345 +3533,345 @@ yy505: } } else { if (yych <= 'a') { - if (yych <= ';') goto yy506; + if (yych <= ';') goto yy510; if (yych <= '`') goto yy86; - goto yy651; + goto yy657; } else { - if (yych == 'g') goto yy652; + if (yych == 'g') goto yy658; if (yych <= '~') goto yy86; } } -yy506: +yy510: #line 399 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, F64Ne); } -#line 3527 "src/prebuilt/wast-lexer-gen.cc" -yy507: +#line 3548 "src/prebuilt/wast-lexer-gen.cc" +yy511: yych = *++cursor_; - if (yych == 'o') goto yy654; + if (yych == 'o') goto yy660; goto yy87; -yy508: +yy512: yych = *++cursor_; - if (yych == 'i') goto yy655; + if (yych == 'i') goto yy661; goto yy87; -yy509: +yy513: yych = *++cursor_; - if (yych == 'r') goto yy656; + if (yych == 'r') goto yy662; goto yy87; -yy510: +yy514: yych = *++cursor_; - if (yych == 'o') goto yy657; + if (yych == 'o') goto yy663; goto yy87; -yy511: +yy515: yych = *++cursor_; - if (yych == 'b') goto yy658; + if (yych == 'b') goto yy664; goto yy87; -yy512: +yy516: yych = *++cursor_; - if (yych == 'u') goto yy660; + if (yych == 'u') goto yy666; goto yy87; -yy513: +yy517: yych = *++cursor_; - if (yych == 'o') goto yy661; + if (yych == 'o') goto yy667; goto yy87; -yy514: +yy518: yych = *++cursor_; - if (yych == 'c') goto yy662; + if (yych == 'c') goto yy668; goto yy87; -yy515: +yy519: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 450 "src/wast-lexer.cc" { RETURN(Global); } -#line 3567 "src/prebuilt/wast-lexer-gen.cc" -yy517: +#line 3588 "src/prebuilt/wast-lexer-gen.cc" +yy521: yych = *++cursor_; - if (yych == 'e') goto yy663; + if (yych == 'e') goto yy669; goto yy87; -yy518: +yy522: yych = *++cursor_; - if (yych == 'd') goto yy664; + if (yych == 'd') goto yy670; goto yy87; -yy519: +yy523: yych = *++cursor_; - if (yych == 'd') goto yy666; + if (yych == 'd') goto yy672; goto yy87; -yy520: +yy524: yych = *++cursor_; - if (yych == 'z') goto yy668; + if (yych == 'z') goto yy674; goto yy87; -yy521: +yy525: yych = *++cursor_; - if (yych == 'n') goto yy670; + if (yych == 'n') goto yy676; goto yy87; -yy522: +yy526: yych = *++cursor_; - if (yych == 'z') goto yy671; + if (yych == 'z') goto yy677; goto yy87; -yy523: +yy527: yych = *++cursor_; - if (yych == 'v') goto yy673; + if (yych == 'v') goto yy679; goto yy87; -yy524: +yy528: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy525; + if (yych <= '"') goto yy529; if (yych <= '\'') goto yy86; } } else { if (yych <= 'y') { if (yych != ';') goto yy86; } else { - if (yych <= 'z') goto yy674; + if (yych <= 'z') goto yy680; if (yych <= '~') goto yy86; } } -yy525: +yy529: #line 376 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32Eq); } -#line 3616 "src/prebuilt/wast-lexer-gen.cc" -yy526: +#line 3637 "src/prebuilt/wast-lexer-gen.cc" +yy530: yych = *++cursor_; - if (yych == 't') goto yy676; + if (yych == 't') goto yy682; goto yy87; -yy527: +yy531: yych = *++cursor_; - if (yych == '_') goto yy677; + if (yych == '_') goto yy683; goto yy87; -yy528: +yy532: yych = *++cursor_; - if (yych == '_') goto yy678; + if (yych == '_') goto yy684; goto yy87; -yy529: +yy533: yych = *++cursor_; - if (yych == '_') goto yy679; + if (yych == '_') goto yy685; goto yy87; -yy530: +yy534: yych = *++cursor_; - if (yych == 'a') goto yy680; + if (yych == 'a') goto yy686; goto yy87; -yy531: +yy535: yych = *++cursor_; - if (yych == '_') goto yy681; + if (yych == '_') goto yy687; goto yy87; -yy532: +yy536: yych = *++cursor_; - if (yych == 'l') goto yy682; + if (yych == 'l') goto yy688; goto yy87; -yy533: +yy537: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 378 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32Ne); } -#line 3652 "src/prebuilt/wast-lexer-gen.cc" -yy535: +#line 3673 "src/prebuilt/wast-lexer-gen.cc" +yy539: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 348 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Or); } -#line 3660 "src/prebuilt/wast-lexer-gen.cc" -yy537: - yych = *++cursor_; - if (yych == 'p') goto yy684; - goto yy87; -yy538: - yych = *++cursor_; - if (yych == 'i') goto yy685; - if (yych == 'm') goto yy686; - goto yy87; -yy539: - yych = *++cursor_; - if (yych == 't') goto yy687; - goto yy87; -yy540: - yych = *++cursor_; - if (yych == 'l') goto yy688; - if (yych == 'r') goto yy690; - goto yy87; +#line 3681 "src/prebuilt/wast-lexer-gen.cc" yy541: yych = *++cursor_; - if (yych == 'o') goto yy691; + if (yych == 'p') goto yy690; goto yy87; yy542: yych = *++cursor_; - if (yych == 'b') goto yy692; + if (yych == 'i') goto yy691; + if (yych == 'm') goto yy692; goto yy87; yy543: yych = *++cursor_; - if (yych == 'u') goto yy694; + if (yych == 't') goto yy693; goto yy87; yy544: yych = *++cursor_; - if (yych == 'a') goto yy695; + if (yych == 'l') goto yy694; + if (yych == 'r') goto yy696; goto yy87; yy545: yych = *++cursor_; - if (yych == 'r') goto yy696; + if (yych == 'o') goto yy697; goto yy87; yy546: yych = *++cursor_; - if (yych == 'd') goto yy698; + if (yych == 'b') goto yy698; goto yy87; yy547: yych = *++cursor_; - if (yych == 'd') goto yy700; + if (yych == 'u') goto yy700; goto yy87; yy548: yych = *++cursor_; - if (yych == 'z') goto yy702; + if (yych == 'a') goto yy701; goto yy87; yy549: yych = *++cursor_; - if (yych == 'n') goto yy704; + if (yych == 'r') goto yy702; goto yy87; yy550: yych = *++cursor_; - if (yych == 'z') goto yy705; + if (yych == 'd') goto yy704; goto yy87; yy551: yych = *++cursor_; - if (yych == 'v') goto yy707; + if (yych == 'd') goto yy706; goto yy87; yy552: + yych = *++cursor_; + if (yych == 'z') goto yy708; + goto yy87; +yy553: + yych = *++cursor_; + if (yych == 'n') goto yy710; + goto yy87; +yy554: + yych = *++cursor_; + if (yych == 'z') goto yy711; + goto yy87; +yy555: + yych = *++cursor_; + if (yych == 'v') goto yy713; + goto yy87; +yy556: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy553; + if (yych <= '"') goto yy557; if (yych <= '\'') goto yy86; } } else { if (yych <= 'y') { if (yych != ';') goto yy86; } else { - if (yych <= 'z') goto yy708; + if (yych <= 'z') goto yy714; if (yych <= '~') goto yy86; } } -yy553: +yy557: #line 377 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64Eq); } -#line 3743 "src/prebuilt/wast-lexer-gen.cc" -yy554: +#line 3764 "src/prebuilt/wast-lexer-gen.cc" +yy558: yych = *++cursor_; - if (yych == 't') goto yy710; + if (yych == 't') goto yy716; goto yy87; -yy555: +yy559: yych = *++cursor_; - if (yych == '_') goto yy711; + if (yych == '_') goto yy717; goto yy87; -yy556: +yy560: yych = *++cursor_; - if (yych == '_') goto yy712; + if (yych == '_') goto yy718; goto yy87; -yy557: +yy561: yych = *++cursor_; - if (yych == '_') goto yy713; + if (yych == '_') goto yy719; goto yy87; -yy558: +yy562: yych = *++cursor_; - if (yych == 'a') goto yy714; + if (yych == 'a') goto yy720; goto yy87; -yy559: +yy563: yych = *++cursor_; - if (yych == '_') goto yy715; + if (yych == '_') goto yy721; goto yy87; -yy560: +yy564: yych = *++cursor_; - if (yych == 'l') goto yy716; + if (yych == 'l') goto yy722; goto yy87; -yy561: +yy565: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 379 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64Ne); } -#line 3779 "src/prebuilt/wast-lexer-gen.cc" -yy563: +#line 3800 "src/prebuilt/wast-lexer-gen.cc" +yy567: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 349 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Or); } -#line 3787 "src/prebuilt/wast-lexer-gen.cc" -yy565: +#line 3808 "src/prebuilt/wast-lexer-gen.cc" +yy569: yych = *++cursor_; - if (yych == 'p') goto yy718; + if (yych == 'p') goto yy724; goto yy87; -yy566: +yy570: yych = *++cursor_; - if (yych == 'i') goto yy719; - if (yych == 'm') goto yy720; + if (yych == 'i') goto yy725; + if (yych == 'm') goto yy726; goto yy87; -yy567: +yy571: yych = *++cursor_; - if (yych == 't') goto yy721; + if (yych == 't') goto yy727; goto yy87; -yy568: +yy572: yych = *++cursor_; - if (yych == 'l') goto yy722; - if (yych == 'r') goto yy724; + if (yych == 'l') goto yy728; + if (yych == 'r') goto yy730; goto yy87; -yy569: +yy573: yych = *++cursor_; - if (yych == 'o') goto yy725; + if (yych == 'o') goto yy731; goto yy87; -yy570: +yy574: yych = *++cursor_; - if (yych == 'b') goto yy726; + if (yych == 'b') goto yy732; goto yy87; -yy571: +yy575: yych = *++cursor_; - if (yych == 'u') goto yy728; + if (yych == 'u') goto yy734; goto yy87; -yy572: +yy576: yych = *++cursor_; - if (yych == 'r') goto yy729; + if (yych == 'r') goto yy735; goto yy87; -yy573: +yy577: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 460 "src/wast-lexer.cc" { RETURN(Import); } -#line 3829 "src/prebuilt/wast-lexer-gen.cc" -yy575: +#line 3850 "src/prebuilt/wast-lexer-gen.cc" +yy579: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 464 "src/wast-lexer.cc" { RETURN(Invoke); } -#line 3837 "src/prebuilt/wast-lexer-gen.cc" -yy577: +#line 3858 "src/prebuilt/wast-lexer-gen.cc" +yy581: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 455 "src/wast-lexer.cc" { RETURN(Memory); } -#line 3845 "src/prebuilt/wast-lexer-gen.cc" -yy579: +#line 3866 "src/prebuilt/wast-lexer-gen.cc" +yy583: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 451 "src/wast-lexer.cc" { RETURN(Module); } -#line 3853 "src/prebuilt/wast-lexer-gen.cc" -yy581: +#line 3874 "src/prebuilt/wast-lexer-gen.cc" +yy585: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -3862,748 +3883,756 @@ yy581: if (yych <= '\'') goto yy86; if (yych <= ')') goto yy88; if (yych <= '/') goto yy86; - goto yy731; + goto yy737; } } else { if (yych <= 'F') { if (yych == ';') goto yy88; if (yych <= '@') goto yy86; - goto yy731; + goto yy737; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy731; + if (yych <= 'f') goto yy737; if (yych <= '~') goto yy86; goto yy88; } } -yy582: +yy586: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy583; + if (yych <= '"') goto yy587; if (yych <= '\'') goto yy86; } } else { if (yych <= '<') { if (yych != ';') goto yy86; } else { - if (yych <= '=') goto yy733; + if (yych <= '=') goto yy739; if (yych <= '~') goto yy86; } } -yy583: +yy587: #line 459 "src/wast-lexer.cc" { RETURN(Offset); } -#line 3900 "src/prebuilt/wast-lexer-gen.cc" -yy584: +#line 3921 "src/prebuilt/wast-lexer-gen.cc" +yy588: yych = *++cursor_; - if (yych == 'e') goto yy734; + if (yych == 'e') goto yy740; goto yy87; -yy585: +yy589: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 448 "src/wast-lexer.cc" { RETURN(Result); } -#line 3912 "src/prebuilt/wast-lexer-gen.cc" -yy587: +#line 3933 "src/prebuilt/wast-lexer-gen.cc" +yy591: yych = *++cursor_; - if (yych == 'w') goto yy735; + if (yych == 'w') goto yy741; goto yy87; -yy588: +yy592: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 270 "src/wast-lexer.cc" { RETURN_OPCODE0(Return); } -#line 3924 "src/prebuilt/wast-lexer-gen.cc" -yy590: +#line 3945 "src/prebuilt/wast-lexer-gen.cc" +yy594: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 441 "src/wast-lexer.cc" { RETURN_OPCODE0(Select); } -#line 3932 "src/prebuilt/wast-lexer-gen.cc" -yy592: +#line 3953 "src/prebuilt/wast-lexer-gen.cc" +yy596: yych = *++cursor_; - if (yych == 'o') goto yy737; + if (yych == 'o') goto yy743; goto yy87; -yy593: +yy597: yych = *++cursor_; - if (yych == 'c') goto yy738; + if (yych == 'c') goto yy744; goto yy87; -yy594: +yy598: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 480 "src/wast-lexer.cc" + { RETURN(Shared); } +#line 3969 "src/prebuilt/wast-lexer-gen.cc" +yy600: yych = *++cursor_; - if (yych == 'c') goto yy739; + if (yych == 'c') goto yy745; goto yy87; -yy595: +yy601: yych = *++cursor_; - if (yych == 'h') goto yy740; + if (yych == 'h') goto yy746; goto yy87; -yy596: +yy602: ++cursor_; if ((yych = *cursor_) <= '9') { if (yych <= '"') { if (yych == '!') goto yy86; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy597; + if (yych <= ')') goto yy603; if (yych <= '/') goto yy86; - goto yy598; + goto yy604; } } else { if (yych <= '_') { - if (yych == ';') goto yy597; + if (yych == ';') goto yy603; if (yych <= '^') goto yy86; - goto yy741; + goto yy747; } else { - if (yych == 'x') goto yy742; + if (yych == 'x') goto yy748; if (yych <= '~') goto yy86; } } -yy597: +yy603: #line 300 "src/wast-lexer.cc" { RETURN_TEXT_AT(AlignEqNat, 6); } -#line 3973 "src/prebuilt/wast-lexer-gen.cc" -yy598: +#line 4002 "src/prebuilt/wast-lexer-gen.cc" +yy604: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '/') { if (yych <= '"') { if (yych == '!') goto yy86; - goto yy597; + goto yy603; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy597; + if (yych <= ')') goto yy603; goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy598; + if (yych <= '9') goto yy604; if (yych <= ':') goto yy86; - goto yy597; + goto yy603; } else { - if (yych == '_') goto yy741; + if (yych == '_') goto yy747; if (yych <= '~') goto yy86; - goto yy597; + goto yy603; } } -yy600: +yy606: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 255 "src/wast-lexer.cc" { RETURN(Anyfunc); } -#line 4005 "src/prebuilt/wast-lexer-gen.cc" -yy602: +#line 4034 "src/prebuilt/wast-lexer-gen.cc" +yy608: yych = *++cursor_; switch (yych) { - case 'e': goto yy743; - case 'i': goto yy744; - case 'm': goto yy745; - case 'r': goto yy746; - case 't': goto yy747; - case 'u': goto yy748; + case 'e': goto yy749; + case 'i': goto yy750; + case 'm': goto yy751; + case 'r': goto yy752; + case 't': goto yy753; + case 'u': goto yy754; default: goto yy87; } -yy603: +yy609: yych = *++cursor_; - if (yych == 'e') goto yy749; + if (yych == 'e') goto yy755; goto yy87; -yy604: +yy610: yych = *++cursor_; - if (yych == 'd') goto yy751; + if (yych == 'd') goto yy757; goto yy87; -yy605: +yy611: yych = *++cursor_; - if (yych == 'l') goto yy752; + if (yych == 'l') goto yy758; goto yy87; -yy606: +yy612: yych = *++cursor_; - if (yych == '_') goto yy753; + if (yych == '_') goto yy759; goto yy87; -yy607: +yy613: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 315 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Abs); } -#line 4040 "src/prebuilt/wast-lexer-gen.cc" -yy609: +#line 4069 "src/prebuilt/wast-lexer-gen.cc" +yy615: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 362 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Add); } -#line 4048 "src/prebuilt/wast-lexer-gen.cc" -yy611: +#line 4077 "src/prebuilt/wast-lexer-gen.cc" +yy617: yych = *++cursor_; - if (yych == 'l') goto yy754; + if (yych == 'l') goto yy760; goto yy87; -yy612: +yy618: yych = *++cursor_; - if (yych == 's') goto yy756; - if (yych == 'v') goto yy757; + if (yych == 's') goto yy762; + if (yych == 'v') goto yy763; goto yy87; -yy613: +yy619: yych = *++cursor_; - if (yych == 'y') goto yy758; + if (yych == 'y') goto yy764; goto yy87; -yy614: +yy620: yych = *++cursor_; - if (yych == 'o') goto yy759; + if (yych == 'o') goto yy765; goto yy87; -yy615: +yy621: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 368 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Div); } -#line 4073 "src/prebuilt/wast-lexer-gen.cc" -yy617: +#line 4102 "src/prebuilt/wast-lexer-gen.cc" +yy623: yych = *++cursor_; - if (yych == 'o') goto yy760; + if (yych == 'o') goto yy766; goto yy87; -yy618: +yy624: yych = *++cursor_; - if (yych == 'd') goto yy761; + if (yych == 'd') goto yy767; goto yy87; -yy619: +yy625: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 372 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Max); } -#line 4089 "src/prebuilt/wast-lexer-gen.cc" -yy621: +#line 4118 "src/prebuilt/wast-lexer-gen.cc" +yy627: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 370 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Min); } -#line 4097 "src/prebuilt/wast-lexer-gen.cc" -yy623: +#line 4126 "src/prebuilt/wast-lexer-gen.cc" +yy629: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 366 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Mul); } -#line 4105 "src/prebuilt/wast-lexer-gen.cc" -yy625: +#line 4134 "src/prebuilt/wast-lexer-gen.cc" +yy631: yych = *++cursor_; - if (yych == 'r') goto yy763; + if (yych == 'r') goto yy769; goto yy87; -yy626: +yy632: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 313 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Neg); } -#line 4117 "src/prebuilt/wast-lexer-gen.cc" -yy628: +#line 4146 "src/prebuilt/wast-lexer-gen.cc" +yy634: yych = *++cursor_; - if (yych == 'n') goto yy764; + if (yych == 'n') goto yy770; goto yy87; -yy629: +yy635: yych = *++cursor_; - if (yych == 't') goto yy765; + if (yych == 't') goto yy771; goto yy87; -yy630: +yy636: yych = *++cursor_; - if (yych == 'r') goto yy767; + if (yych == 'r') goto yy773; goto yy87; -yy631: +yy637: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 364 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Sub); } -#line 4137 "src/prebuilt/wast-lexer-gen.cc" -yy633: +#line 4166 "src/prebuilt/wast-lexer-gen.cc" +yy639: yych = *++cursor_; - if (yych == 'n') goto yy768; + if (yych == 'n') goto yy774; goto yy87; -yy634: +yy640: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 316 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Abs); } -#line 4149 "src/prebuilt/wast-lexer-gen.cc" -yy636: +#line 4178 "src/prebuilt/wast-lexer-gen.cc" +yy642: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 363 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Add); } -#line 4157 "src/prebuilt/wast-lexer-gen.cc" -yy638: +#line 4186 "src/prebuilt/wast-lexer-gen.cc" +yy644: yych = *++cursor_; - if (yych == 'l') goto yy769; + if (yych == 'l') goto yy775; goto yy87; -yy639: +yy645: yych = *++cursor_; - if (yych == 's') goto yy771; - if (yych == 'v') goto yy772; + if (yych == 's') goto yy777; + if (yych == 'v') goto yy778; goto yy87; -yy640: +yy646: yych = *++cursor_; - if (yych == 'y') goto yy773; + if (yych == 'y') goto yy779; goto yy87; -yy641: +yy647: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 369 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Div); } -#line 4178 "src/prebuilt/wast-lexer-gen.cc" -yy643: +#line 4207 "src/prebuilt/wast-lexer-gen.cc" +yy649: yych = *++cursor_; - if (yych == 'o') goto yy774; + if (yych == 'o') goto yy780; goto yy87; -yy644: +yy650: yych = *++cursor_; - if (yych == 'd') goto yy775; + if (yych == 'd') goto yy781; goto yy87; -yy645: +yy651: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 373 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Max); } -#line 4194 "src/prebuilt/wast-lexer-gen.cc" -yy647: +#line 4223 "src/prebuilt/wast-lexer-gen.cc" +yy653: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 371 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Min); } -#line 4202 "src/prebuilt/wast-lexer-gen.cc" -yy649: +#line 4231 "src/prebuilt/wast-lexer-gen.cc" +yy655: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 367 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Mul); } -#line 4210 "src/prebuilt/wast-lexer-gen.cc" -yy651: +#line 4239 "src/prebuilt/wast-lexer-gen.cc" +yy657: yych = *++cursor_; - if (yych == 'r') goto yy777; + if (yych == 'r') goto yy783; goto yy87; -yy652: +yy658: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 314 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Neg); } -#line 4222 "src/prebuilt/wast-lexer-gen.cc" -yy654: +#line 4251 "src/prebuilt/wast-lexer-gen.cc" +yy660: yych = *++cursor_; - if (yych == 'm') goto yy778; + if (yych == 'm') goto yy784; goto yy87; -yy655: +yy661: yych = *++cursor_; - if (yych == 'n') goto yy779; + if (yych == 'n') goto yy785; goto yy87; -yy656: +yy662: yych = *++cursor_; - if (yych == 't') goto yy780; + if (yych == 't') goto yy786; goto yy87; -yy657: +yy663: yych = *++cursor_; - if (yych == 'r') goto yy782; + if (yych == 'r') goto yy788; goto yy87; -yy658: +yy664: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 365 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Sub); } -#line 4246 "src/prebuilt/wast-lexer-gen.cc" -yy660: +#line 4275 "src/prebuilt/wast-lexer-gen.cc" +yy666: yych = *++cursor_; - if (yych == 'n') goto yy783; + if (yych == 'n') goto yy789; goto yy87; -yy661: +yy667: yych = *++cursor_; - if (yych == 'b') goto yy784; + if (yych == 'b') goto yy790; goto yy87; -yy662: +yy668: yych = *++cursor_; - if (yych == 'a') goto yy785; + if (yych == 'a') goto yy791; goto yy87; -yy663: +yy669: yych = *++cursor_; - if (yych == 'm') goto yy786; + if (yych == 'm') goto yy792; goto yy87; -yy664: +yy670: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 332 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Add); } -#line 4270 "src/prebuilt/wast-lexer-gen.cc" -yy666: +#line 4299 "src/prebuilt/wast-lexer-gen.cc" +yy672: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 346 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32And); } -#line 4278 "src/prebuilt/wast-lexer-gen.cc" -yy668: +#line 4307 "src/prebuilt/wast-lexer-gen.cc" +yy674: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 307 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Clz); } -#line 4286 "src/prebuilt/wast-lexer-gen.cc" -yy670: +#line 4315 "src/prebuilt/wast-lexer-gen.cc" +yy676: yych = *++cursor_; - if (yych == 's') goto yy787; + if (yych == 's') goto yy793; goto yy87; -yy671: +yy677: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 309 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Ctz); } -#line 4298 "src/prebuilt/wast-lexer-gen.cc" -yy673: +#line 4327 "src/prebuilt/wast-lexer-gen.cc" +yy679: yych = *++cursor_; - if (yych == '_') goto yy788; + if (yych == '_') goto yy794; goto yy87; -yy674: +yy680: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 305 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32Eqz); } -#line 4310 "src/prebuilt/wast-lexer-gen.cc" -yy676: +#line 4339 "src/prebuilt/wast-lexer-gen.cc" +yy682: yych = *++cursor_; - if (yych == 'e') goto yy789; + if (yych == 'e') goto yy795; goto yy87; -yy677: +yy683: yych = *++cursor_; - if (yych == 's') goto yy790; - if (yych == 'u') goto yy792; + if (yych == 's') goto yy796; + if (yych == 'u') goto yy798; goto yy87; -yy678: +yy684: yych = *++cursor_; - if (yych == 's') goto yy794; - if (yych == 'u') goto yy796; + if (yych == 's') goto yy800; + if (yych == 'u') goto yy802; goto yy87; -yy679: +yy685: yych = *++cursor_; - if (yych == 's') goto yy798; - if (yych == 'u') goto yy800; + if (yych == 's') goto yy804; + if (yych == 'u') goto yy806; goto yy87; -yy680: +yy686: yych = *++cursor_; - if (yych == 'd') goto yy802; + if (yych == 'd') goto yy808; goto yy87; -yy681: +yy687: yych = *++cursor_; - if (yych == 's') goto yy804; - if (yych == 'u') goto yy806; + if (yych == 's') goto yy810; + if (yych == 'u') goto yy812; goto yy87; -yy682: +yy688: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 336 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Mul); } -#line 4346 "src/prebuilt/wast-lexer-gen.cc" -yy684: +#line 4375 "src/prebuilt/wast-lexer-gen.cc" +yy690: yych = *++cursor_; - if (yych == 'c') goto yy808; + if (yych == 'c') goto yy814; goto yy87; -yy685: +yy691: yych = *++cursor_; - if (yych == 'n') goto yy809; + if (yych == 'n') goto yy815; goto yy87; -yy686: +yy692: yych = *++cursor_; - if (yych == '_') goto yy810; + if (yych == '_') goto yy816; goto yy87; -yy687: +yy693: yych = *++cursor_; - if (yych == 'l') goto yy811; - if (yych == 'r') goto yy813; + if (yych == 'l') goto yy817; + if (yych == 'r') goto yy819; goto yy87; -yy688: +yy694: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 352 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Shl); } -#line 4371 "src/prebuilt/wast-lexer-gen.cc" -yy690: +#line 4400 "src/prebuilt/wast-lexer-gen.cc" +yy696: yych = *++cursor_; - if (yych == '_') goto yy815; + if (yych == '_') goto yy821; goto yy87; -yy691: +yy697: yych = *++cursor_; - if (yych == 'r') goto yy816; + if (yych == 'r') goto yy822; goto yy87; -yy692: +yy698: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 334 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Sub); } -#line 4387 "src/prebuilt/wast-lexer-gen.cc" -yy694: +#line 4416 "src/prebuilt/wast-lexer-gen.cc" +yy700: yych = *++cursor_; - if (yych == 'n') goto yy817; + if (yych == 'n') goto yy823; goto yy87; -yy695: +yy701: yych = *++cursor_; - if (yych == 'p') goto yy818; + if (yych == 'p') goto yy824; goto yy87; -yy696: +yy702: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 350 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Xor); } -#line 4403 "src/prebuilt/wast-lexer-gen.cc" -yy698: +#line 4432 "src/prebuilt/wast-lexer-gen.cc" +yy704: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 333 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Add); } -#line 4411 "src/prebuilt/wast-lexer-gen.cc" -yy700: +#line 4440 "src/prebuilt/wast-lexer-gen.cc" +yy706: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 347 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64And); } -#line 4419 "src/prebuilt/wast-lexer-gen.cc" -yy702: +#line 4448 "src/prebuilt/wast-lexer-gen.cc" +yy708: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 308 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Clz); } -#line 4427 "src/prebuilt/wast-lexer-gen.cc" -yy704: +#line 4456 "src/prebuilt/wast-lexer-gen.cc" +yy710: yych = *++cursor_; - if (yych == 's') goto yy819; + if (yych == 's') goto yy825; goto yy87; -yy705: +yy711: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 310 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Ctz); } -#line 4439 "src/prebuilt/wast-lexer-gen.cc" -yy707: +#line 4468 "src/prebuilt/wast-lexer-gen.cc" +yy713: yych = *++cursor_; - if (yych == '_') goto yy820; + if (yych == '_') goto yy826; goto yy87; -yy708: +yy714: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 306 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64Eqz); } -#line 4451 "src/prebuilt/wast-lexer-gen.cc" -yy710: +#line 4480 "src/prebuilt/wast-lexer-gen.cc" +yy716: yych = *++cursor_; - if (yych == 'e') goto yy821; + if (yych == 'e') goto yy827; goto yy87; -yy711: +yy717: yych = *++cursor_; - if (yych == 's') goto yy822; - if (yych == 'u') goto yy824; + if (yych == 's') goto yy828; + if (yych == 'u') goto yy830; goto yy87; -yy712: +yy718: yych = *++cursor_; - if (yych == 's') goto yy826; - if (yych == 'u') goto yy828; + if (yych == 's') goto yy832; + if (yych == 'u') goto yy834; goto yy87; -yy713: +yy719: yych = *++cursor_; - if (yych == 's') goto yy830; - if (yych == 'u') goto yy832; + if (yych == 's') goto yy836; + if (yych == 'u') goto yy838; goto yy87; -yy714: +yy720: yych = *++cursor_; - if (yych == 'd') goto yy834; + if (yych == 'd') goto yy840; goto yy87; -yy715: +yy721: yych = *++cursor_; - if (yych == 's') goto yy836; - if (yych == 'u') goto yy838; + if (yych == 's') goto yy842; + if (yych == 'u') goto yy844; goto yy87; -yy716: +yy722: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 337 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Mul); } -#line 4487 "src/prebuilt/wast-lexer-gen.cc" -yy718: +#line 4516 "src/prebuilt/wast-lexer-gen.cc" +yy724: yych = *++cursor_; - if (yych == 'c') goto yy840; + if (yych == 'c') goto yy846; goto yy87; -yy719: +yy725: yych = *++cursor_; - if (yych == 'n') goto yy841; + if (yych == 'n') goto yy847; goto yy87; -yy720: +yy726: yych = *++cursor_; - if (yych == '_') goto yy842; + if (yych == '_') goto yy848; goto yy87; -yy721: +yy727: yych = *++cursor_; - if (yych == 'l') goto yy843; - if (yych == 'r') goto yy845; + if (yych == 'l') goto yy849; + if (yych == 'r') goto yy851; goto yy87; -yy722: +yy728: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 353 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Shl); } -#line 4512 "src/prebuilt/wast-lexer-gen.cc" -yy724: +#line 4541 "src/prebuilt/wast-lexer-gen.cc" +yy730: yych = *++cursor_; - if (yych == '_') goto yy847; + if (yych == '_') goto yy853; goto yy87; -yy725: +yy731: yych = *++cursor_; - if (yych == 'r') goto yy848; + if (yych == 'r') goto yy854; goto yy87; -yy726: +yy732: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 335 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Sub); } -#line 4528 "src/prebuilt/wast-lexer-gen.cc" -yy728: +#line 4557 "src/prebuilt/wast-lexer-gen.cc" +yy734: yych = *++cursor_; - if (yych == 'n') goto yy849; + if (yych == 'n') goto yy855; goto yy87; -yy729: +yy735: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 351 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Xor); } -#line 4540 "src/prebuilt/wast-lexer-gen.cc" -yy731: +#line 4569 "src/prebuilt/wast-lexer-gen.cc" +yy737: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { if (yych == '!') goto yy86; - if (yych <= '"') goto yy256; + if (yych <= '"') goto yy257; goto yy86; } else { - if (yych <= ')') goto yy256; + if (yych <= ')') goto yy257; if (yych <= '/') goto yy86; - if (yych <= '9') goto yy731; + if (yych <= '9') goto yy737; goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy256; + if (yych <= ';') goto yy257; if (yych <= '@') goto yy86; - if (yych <= 'F') goto yy731; + if (yych <= 'F') goto yy737; goto yy86; } else { if (yych <= '`') { - if (yych <= '_') goto yy581; + if (yych <= '_') goto yy585; goto yy86; } else { - if (yych <= 'f') goto yy731; + if (yych <= 'f') goto yy737; if (yych <= '~') goto yy86; - goto yy256; + goto yy257; } } } -yy733: +yy739: yych = *++cursor_; if (yych <= '/') goto yy87; - if (yych <= '0') goto yy850; - if (yych <= '9') goto yy852; + if (yych <= '0') goto yy856; + if (yych <= '9') goto yy858; goto yy87; -yy734: +yy740: yych = *++cursor_; - if (yych == 'r') goto yy854; + if (yych == 'r') goto yy860; goto yy87; -yy735: +yy741: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 478 "src/wast-lexer.cc" { RETURN_OPCODE0(Rethrow); } -#line 4590 "src/prebuilt/wast-lexer-gen.cc" -yy737: +#line 4619 "src/prebuilt/wast-lexer-gen.cc" +yy743: yych = *++cursor_; - if (yych == 'b') goto yy856; + if (yych == 'b') goto yy862; goto yy87; -yy738: +yy744: yych = *++cursor_; - if (yych == 'a') goto yy857; + if (yych == 'a') goto yy863; goto yy87; -yy739: +yy745: yych = *++cursor_; - if (yych == 'a') goto yy858; + if (yych == 'a') goto yy864; goto yy87; -yy740: +yy746: yych = *++cursor_; - if (yych == 'a') goto yy859; + if (yych == 'a') goto yy865; goto yy87; -yy741: +yy747: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -4619,7 +4648,7 @@ yy741: } else { if (yych <= ':') { if (yych <= '/') goto yy86; - if (yych <= '9') goto yy598; + if (yych <= '9') goto yy604; goto yy86; } else { if (yych <= ';') goto yy88; @@ -4627,7 +4656,7 @@ yy741: goto yy88; } } -yy742: +yy748: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -4639,258 +4668,258 @@ yy742: if (yych <= '\'') goto yy86; if (yych <= ')') goto yy88; if (yych <= '/') goto yy86; - goto yy860; + goto yy866; } } else { if (yych <= 'F') { if (yych == ';') goto yy88; if (yych <= '@') goto yy86; - goto yy860; + goto yy866; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy860; + if (yych <= 'f') goto yy866; if (yych <= '~') goto yy86; goto yy88; } } -yy743: +yy749: yych = *++cursor_; - if (yych == 'x') goto yy862; + if (yych == 'x') goto yy868; goto yy87; -yy744: +yy750: yych = *++cursor_; - if (yych == 'n') goto yy863; + if (yych == 'n') goto yy869; goto yy87; -yy745: +yy751: yych = *++cursor_; - if (yych == 'a') goto yy864; + if (yych == 'a') goto yy870; goto yy87; -yy746: +yy752: yych = *++cursor_; - if (yych == 'e') goto yy865; + if (yych == 'e') goto yy871; goto yy87; -yy747: +yy753: yych = *++cursor_; - if (yych == 'r') goto yy866; + if (yych == 'r') goto yy872; goto yy87; -yy748: +yy754: yych = *++cursor_; - if (yych == 'n') goto yy867; + if (yych == 'n') goto yy873; goto yy87; -yy749: +yy755: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 265 "src/wast-lexer.cc" { RETURN_OPCODE0(BrTable); } -#line 4688 "src/prebuilt/wast-lexer-gen.cc" -yy751: +#line 4717 "src/prebuilt/wast-lexer-gen.cc" +yy757: yych = *++cursor_; - if (yych == 'i') goto yy868; + if (yych == 'i') goto yy874; goto yy87; -yy752: +yy758: yych = *++cursor_; - if (yych == 'l') goto yy869; + if (yych == 'l') goto yy875; goto yy87; -yy753: +yy759: yych = *++cursor_; - if (yych == 'm') goto yy871; + if (yych == 'm') goto yy877; goto yy87; -yy754: +yy760: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 319 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Ceil); } -#line 4708 "src/prebuilt/wast-lexer-gen.cc" -yy756: +#line 4737 "src/prebuilt/wast-lexer-gen.cc" +yy762: yych = *++cursor_; - if (yych == 't') goto yy872; + if (yych == 't') goto yy878; goto yy87; -yy757: +yy763: yych = *++cursor_; - if (yych == 'e') goto yy874; + if (yych == 'e') goto yy880; goto yy87; -yy758: +yy764: yych = *++cursor_; - if (yych == 's') goto yy875; + if (yych == 's') goto yy881; goto yy87; -yy759: +yy765: yych = *++cursor_; - if (yych == 't') goto yy876; + if (yych == 't') goto yy882; goto yy87; -yy760: +yy766: yych = *++cursor_; - if (yych == 'r') goto yy877; + if (yych == 'r') goto yy883; goto yy87; -yy761: +yy767: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 278 "src/wast-lexer.cc" { RETURN_OPCODE(Load, F32Load); } -#line 4736 "src/prebuilt/wast-lexer-gen.cc" -yy763: +#line 4765 "src/prebuilt/wast-lexer-gen.cc" +yy769: yych = *++cursor_; - if (yych == 'e') goto yy879; + if (yych == 'e') goto yy885; goto yy87; -yy764: +yy770: yych = *++cursor_; - if (yych == 't') goto yy880; + if (yych == 't') goto yy886; goto yy87; -yy765: +yy771: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 317 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Sqrt); } -#line 4752 "src/prebuilt/wast-lexer-gen.cc" -yy767: +#line 4781 "src/prebuilt/wast-lexer-gen.cc" +yy773: yych = *++cursor_; - if (yych == 'e') goto yy881; + if (yych == 'e') goto yy887; goto yy87; -yy768: +yy774: yych = *++cursor_; - if (yych == 'c') goto yy883; + if (yych == 'c') goto yy889; goto yy87; -yy769: +yy775: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 320 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Ceil); } -#line 4768 "src/prebuilt/wast-lexer-gen.cc" -yy771: +#line 4797 "src/prebuilt/wast-lexer-gen.cc" +yy777: yych = *++cursor_; - if (yych == 't') goto yy885; + if (yych == 't') goto yy891; goto yy87; -yy772: +yy778: yych = *++cursor_; - if (yych == 'e') goto yy887; + if (yych == 'e') goto yy893; goto yy87; -yy773: +yy779: yych = *++cursor_; - if (yych == 's') goto yy888; + if (yych == 's') goto yy894; goto yy87; -yy774: +yy780: yych = *++cursor_; - if (yych == 'r') goto yy889; + if (yych == 'r') goto yy895; goto yy87; -yy775: +yy781: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 279 "src/wast-lexer.cc" { RETURN_OPCODE(Load, F64Load); } -#line 4792 "src/prebuilt/wast-lexer-gen.cc" -yy777: +#line 4821 "src/prebuilt/wast-lexer-gen.cc" +yy783: yych = *++cursor_; - if (yych == 'e') goto yy891; + if (yych == 'e') goto yy897; goto yy87; -yy778: +yy784: yych = *++cursor_; - if (yych == 'o') goto yy892; + if (yych == 'o') goto yy898; goto yy87; -yy779: +yy785: yych = *++cursor_; - if (yych == 't') goto yy893; + if (yych == 't') goto yy899; goto yy87; -yy780: +yy786: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 318 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Sqrt); } -#line 4812 "src/prebuilt/wast-lexer-gen.cc" -yy782: +#line 4841 "src/prebuilt/wast-lexer-gen.cc" +yy788: yych = *++cursor_; - if (yych == 'e') goto yy894; + if (yych == 'e') goto yy900; goto yy87; -yy783: +yy789: yych = *++cursor_; - if (yych == 'c') goto yy896; + if (yych == 'c') goto yy902; goto yy87; -yy784: +yy790: yych = *++cursor_; - if (yych == 'a') goto yy898; + if (yych == 'a') goto yy904; goto yy87; -yy785: +yy791: yych = *++cursor_; - if (yych == 'l') goto yy899; + if (yych == 'l') goto yy905; goto yy87; -yy786: +yy792: yych = *++cursor_; - if (yych == 'o') goto yy901; + if (yych == 'o') goto yy907; goto yy87; -yy787: +yy793: yych = *++cursor_; - if (yych == 't') goto yy902; + if (yych == 't') goto yy908; goto yy87; -yy788: +yy794: yych = *++cursor_; - if (yych == 's') goto yy904; - if (yych == 'u') goto yy906; + if (yych == 's') goto yy910; + if (yych == 'u') goto yy912; goto yy87; -yy789: +yy795: yych = *++cursor_; - if (yych == 'n') goto yy908; + if (yych == 'n') goto yy914; goto yy87; -yy790: +yy796: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 392 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GeS); } -#line 4853 "src/prebuilt/wast-lexer-gen.cc" -yy792: +#line 4882 "src/prebuilt/wast-lexer-gen.cc" +yy798: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 394 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GeU); } -#line 4861 "src/prebuilt/wast-lexer-gen.cc" -yy794: +#line 4890 "src/prebuilt/wast-lexer-gen.cc" +yy800: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 388 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GtS); } -#line 4869 "src/prebuilt/wast-lexer-gen.cc" -yy796: +#line 4898 "src/prebuilt/wast-lexer-gen.cc" +yy802: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 390 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32GtU); } -#line 4877 "src/prebuilt/wast-lexer-gen.cc" -yy798: +#line 4906 "src/prebuilt/wast-lexer-gen.cc" +yy804: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 384 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LeS); } -#line 4885 "src/prebuilt/wast-lexer-gen.cc" -yy800: +#line 4914 "src/prebuilt/wast-lexer-gen.cc" +yy806: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 386 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LeU); } -#line 4893 "src/prebuilt/wast-lexer-gen.cc" -yy802: +#line 4922 "src/prebuilt/wast-lexer-gen.cc" +yy808: ++cursor_; if ((yych = *cursor_) <= '0') { if (yych <= '"') { @@ -4901,566 +4930,566 @@ yy802: } } else { if (yych <= '8') { - if (yych <= '1') goto yy909; + if (yych <= '1') goto yy915; if (yych <= '7') goto yy86; - goto yy910; + goto yy916; } else { - if (yych == ';') goto yy803; + if (yych == ';') goto yy809; if (yych <= '~') goto yy86; } } -yy803: +yy809: #line 276 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load); } -#line 4916 "src/prebuilt/wast-lexer-gen.cc" -yy804: +#line 4945 "src/prebuilt/wast-lexer-gen.cc" +yy810: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 380 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LtS); } -#line 4924 "src/prebuilt/wast-lexer-gen.cc" -yy806: +#line 4953 "src/prebuilt/wast-lexer-gen.cc" +yy812: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 382 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I32LtU); } -#line 4932 "src/prebuilt/wast-lexer-gen.cc" -yy808: +#line 4961 "src/prebuilt/wast-lexer-gen.cc" +yy814: yych = *++cursor_; - if (yych == 'n') goto yy911; + if (yych == 'n') goto yy917; goto yy87; -yy809: +yy815: yych = *++cursor_; - if (yych == 't') goto yy912; + if (yych == 't') goto yy918; goto yy87; -yy810: +yy816: yych = *++cursor_; - if (yych == 's') goto yy913; - if (yych == 'u') goto yy915; + if (yych == 's') goto yy919; + if (yych == 'u') goto yy921; goto yy87; -yy811: +yy817: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 358 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Rotl); } -#line 4953 "src/prebuilt/wast-lexer-gen.cc" -yy813: +#line 4982 "src/prebuilt/wast-lexer-gen.cc" +yy819: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 360 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32Rotr); } -#line 4961 "src/prebuilt/wast-lexer-gen.cc" -yy815: +#line 4990 "src/prebuilt/wast-lexer-gen.cc" +yy821: yych = *++cursor_; - if (yych == 's') goto yy917; - if (yych == 'u') goto yy919; + if (yych == 's') goto yy923; + if (yych == 'u') goto yy925; goto yy87; -yy816: +yy822: yych = *++cursor_; - if (yych == 'e') goto yy921; + if (yych == 'e') goto yy927; goto yy87; -yy817: +yy823: yych = *++cursor_; - if (yych == 'c') goto yy923; + if (yych == 'c') goto yy929; goto yy87; -yy818: +yy824: yych = *++cursor_; - if (yych == '/') goto yy924; + if (yych == '/') goto yy930; goto yy87; -yy819: +yy825: yych = *++cursor_; - if (yych == 't') goto yy925; + if (yych == 't') goto yy931; goto yy87; -yy820: +yy826: yych = *++cursor_; - if (yych == 's') goto yy927; - if (yych == 'u') goto yy929; + if (yych == 's') goto yy933; + if (yych == 'u') goto yy935; goto yy87; -yy821: +yy827: yych = *++cursor_; - if (yych == 'n') goto yy931; + if (yych == 'n') goto yy937; goto yy87; -yy822: +yy828: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 393 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GeS); } -#line 4999 "src/prebuilt/wast-lexer-gen.cc" -yy824: +#line 5028 "src/prebuilt/wast-lexer-gen.cc" +yy830: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 395 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GeU); } -#line 5007 "src/prebuilt/wast-lexer-gen.cc" -yy826: +#line 5036 "src/prebuilt/wast-lexer-gen.cc" +yy832: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 389 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GtS); } -#line 5015 "src/prebuilt/wast-lexer-gen.cc" -yy828: +#line 5044 "src/prebuilt/wast-lexer-gen.cc" +yy834: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 391 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64GtU); } -#line 5023 "src/prebuilt/wast-lexer-gen.cc" -yy830: +#line 5052 "src/prebuilt/wast-lexer-gen.cc" +yy836: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 385 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LeS); } -#line 5031 "src/prebuilt/wast-lexer-gen.cc" -yy832: +#line 5060 "src/prebuilt/wast-lexer-gen.cc" +yy838: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 387 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LeU); } -#line 5039 "src/prebuilt/wast-lexer-gen.cc" -yy834: +#line 5068 "src/prebuilt/wast-lexer-gen.cc" +yy840: ++cursor_; if ((yych = *cursor_) <= '1') { if (yych <= '"') { if (yych == '!') goto yy86; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy835; + if (yych <= ')') goto yy841; if (yych <= '0') goto yy86; - goto yy932; + goto yy938; } } else { if (yych <= '8') { - if (yych == '3') goto yy933; + if (yych == '3') goto yy939; if (yych <= '7') goto yy86; - goto yy934; + goto yy940; } else { - if (yych == ';') goto yy835; + if (yych == ';') goto yy841; if (yych <= '~') goto yy86; } } -yy835: +yy841: #line 277 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load); } -#line 5064 "src/prebuilt/wast-lexer-gen.cc" -yy836: +#line 5093 "src/prebuilt/wast-lexer-gen.cc" +yy842: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 381 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LtS); } -#line 5072 "src/prebuilt/wast-lexer-gen.cc" -yy838: +#line 5101 "src/prebuilt/wast-lexer-gen.cc" +yy844: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 383 "src/wast-lexer.cc" { RETURN_OPCODE(Compare, I64LtU); } -#line 5080 "src/prebuilt/wast-lexer-gen.cc" -yy840: +#line 5109 "src/prebuilt/wast-lexer-gen.cc" +yy846: yych = *++cursor_; - if (yych == 'n') goto yy935; + if (yych == 'n') goto yy941; goto yy87; -yy841: +yy847: yych = *++cursor_; - if (yych == 't') goto yy936; + if (yych == 't') goto yy942; goto yy87; -yy842: +yy848: yych = *++cursor_; - if (yych == 's') goto yy937; - if (yych == 'u') goto yy939; + if (yych == 's') goto yy943; + if (yych == 'u') goto yy945; goto yy87; -yy843: +yy849: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 359 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Rotl); } -#line 5101 "src/prebuilt/wast-lexer-gen.cc" -yy845: +#line 5130 "src/prebuilt/wast-lexer-gen.cc" +yy851: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 361 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64Rotr); } -#line 5109 "src/prebuilt/wast-lexer-gen.cc" -yy847: +#line 5138 "src/prebuilt/wast-lexer-gen.cc" +yy853: yych = *++cursor_; - if (yych == 's') goto yy941; - if (yych == 'u') goto yy943; + if (yych == 's') goto yy947; + if (yych == 'u') goto yy949; goto yy87; -yy848: +yy854: yych = *++cursor_; - if (yych == 'e') goto yy945; + if (yych == 'e') goto yy951; goto yy87; -yy849: +yy855: yych = *++cursor_; - if (yych == 'c') goto yy947; + if (yych == 'c') goto yy953; goto yy87; -yy850: +yy856: ++cursor_; if ((yych = *cursor_) <= '9') { if (yych <= '"') { if (yych == '!') goto yy86; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy851; + if (yych <= ')') goto yy857; if (yych <= '/') goto yy86; - goto yy852; + goto yy858; } } else { if (yych <= '_') { - if (yych == ';') goto yy851; + if (yych == ';') goto yy857; if (yych <= '^') goto yy86; - goto yy948; + goto yy954; } else { - if (yych == 'x') goto yy949; + if (yych == 'x') goto yy955; if (yych <= '~') goto yy86; } } -yy851: +yy857: #line 299 "src/wast-lexer.cc" { RETURN_TEXT_AT(OffsetEqNat, 7); } -#line 5147 "src/prebuilt/wast-lexer-gen.cc" -yy852: +#line 5176 "src/prebuilt/wast-lexer-gen.cc" +yy858: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '/') { if (yych <= '"') { if (yych == '!') goto yy86; - goto yy851; + goto yy857; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy851; + if (yych <= ')') goto yy857; goto yy86; } } else { if (yych <= ';') { - if (yych <= '9') goto yy852; + if (yych <= '9') goto yy858; if (yych <= ':') goto yy86; - goto yy851; + goto yy857; } else { - if (yych == '_') goto yy948; + if (yych == '_') goto yy954; if (yych <= '~') goto yy86; - goto yy851; + goto yy857; } } -yy854: +yy860: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 463 "src/wast-lexer.cc" { RETURN(Register); } -#line 5179 "src/prebuilt/wast-lexer-gen.cc" -yy856: +#line 5208 "src/prebuilt/wast-lexer-gen.cc" +yy862: yych = *++cursor_; - if (yych == 'a') goto yy950; + if (yych == 'a') goto yy956; goto yy87; -yy857: +yy863: yych = *++cursor_; - if (yych == 'l') goto yy951; + if (yych == 'l') goto yy957; goto yy87; -yy858: +yy864: yych = *++cursor_; - if (yych == 'l') goto yy953; + if (yych == 'l') goto yy959; goto yy87; -yy859: +yy865: yych = *++cursor_; - if (yych == 'b') goto yy955; + if (yych == 'b') goto yy961; goto yy87; -yy860: +yy866: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { if (yych == '!') goto yy86; - if (yych <= '"') goto yy597; + if (yych <= '"') goto yy603; goto yy86; } else { - if (yych <= ')') goto yy597; + if (yych <= ')') goto yy603; if (yych <= '/') goto yy86; - if (yych <= '9') goto yy860; + if (yych <= '9') goto yy866; goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy597; + if (yych <= ';') goto yy603; if (yych <= '@') goto yy86; - if (yych <= 'F') goto yy860; + if (yych <= 'F') goto yy866; goto yy86; } else { if (yych <= '`') { - if (yych <= '_') goto yy742; + if (yych <= '_') goto yy748; goto yy86; } else { - if (yych <= 'f') goto yy860; + if (yych <= 'f') goto yy866; if (yych <= '~') goto yy86; - goto yy597; + goto yy603; } } } -yy862: +yy868: yych = *++cursor_; - if (yych == 'h') goto yy956; + if (yych == 'h') goto yy962; goto yy87; -yy863: +yy869: yych = *++cursor_; - if (yych == 'v') goto yy957; + if (yych == 'v') goto yy963; goto yy87; -yy864: +yy870: yych = *++cursor_; - if (yych == 'l') goto yy958; + if (yych == 'l') goto yy964; goto yy87; -yy865: +yy871: yych = *++cursor_; - if (yych == 't') goto yy959; + if (yych == 't') goto yy965; goto yy87; -yy866: +yy872: yych = *++cursor_; - if (yych == 'a') goto yy960; + if (yych == 'a') goto yy966; goto yy87; -yy867: +yy873: yych = *++cursor_; - if (yych == 'l') goto yy961; + if (yych == 'l') goto yy967; goto yy87; -yy868: +yy874: yych = *++cursor_; - if (yych == 'r') goto yy962; + if (yych == 'r') goto yy968; goto yy87; -yy869: +yy875: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 476 "src/wast-lexer.cc" { RETURN_OPCODE0(CatchAll); } -#line 5263 "src/prebuilt/wast-lexer-gen.cc" -yy871: +#line 5292 "src/prebuilt/wast-lexer-gen.cc" +yy877: yych = *++cursor_; - if (yych == 'e') goto yy963; + if (yych == 'e') goto yy969; goto yy87; -yy872: +yy878: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 303 "src/wast-lexer.cc" { RETURN_OPCODE(Const, F32Const); } -#line 5275 "src/prebuilt/wast-lexer-gen.cc" -yy874: +#line 5304 "src/prebuilt/wast-lexer-gen.cc" +yy880: yych = *++cursor_; - if (yych == 'r') goto yy964; + if (yych == 'r') goto yy970; goto yy87; -yy875: +yy881: yych = *++cursor_; - if (yych == 'i') goto yy965; + if (yych == 'i') goto yy971; goto yy87; -yy876: +yy882: yych = *++cursor_; - if (yych == 'e') goto yy966; + if (yych == 'e') goto yy972; goto yy87; -yy877: +yy883: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 321 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Floor); } -#line 5295 "src/prebuilt/wast-lexer-gen.cc" -yy879: +#line 5324 "src/prebuilt/wast-lexer-gen.cc" +yy885: yych = *++cursor_; - if (yych == 's') goto yy967; + if (yych == 's') goto yy973; goto yy87; -yy880: +yy886: yych = *++cursor_; - if (yych == 'e') goto yy968; + if (yych == 'e') goto yy974; goto yy87; -yy881: +yy887: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 282 "src/wast-lexer.cc" { RETURN_OPCODE(Store, F32Store); } -#line 5311 "src/prebuilt/wast-lexer-gen.cc" -yy883: +#line 5340 "src/prebuilt/wast-lexer-gen.cc" +yy889: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 323 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Trunc); } -#line 5319 "src/prebuilt/wast-lexer-gen.cc" -yy885: +#line 5348 "src/prebuilt/wast-lexer-gen.cc" +yy891: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 304 "src/wast-lexer.cc" { RETURN_OPCODE(Const, F64Const); } -#line 5327 "src/prebuilt/wast-lexer-gen.cc" -yy887: +#line 5356 "src/prebuilt/wast-lexer-gen.cc" +yy893: yych = *++cursor_; - if (yych == 'r') goto yy969; + if (yych == 'r') goto yy975; goto yy87; -yy888: +yy894: yych = *++cursor_; - if (yych == 'i') goto yy970; + if (yych == 'i') goto yy976; goto yy87; -yy889: +yy895: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 322 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Floor); } -#line 5343 "src/prebuilt/wast-lexer-gen.cc" -yy891: +#line 5372 "src/prebuilt/wast-lexer-gen.cc" +yy897: yych = *++cursor_; - if (yych == 's') goto yy971; + if (yych == 's') goto yy977; goto yy87; -yy892: +yy898: yych = *++cursor_; - if (yych == 't') goto yy972; + if (yych == 't') goto yy978; goto yy87; -yy893: +yy899: yych = *++cursor_; - if (yych == 'e') goto yy973; + if (yych == 'e') goto yy979; goto yy87; -yy894: +yy900: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 283 "src/wast-lexer.cc" { RETURN_OPCODE(Store, F64Store); } -#line 5363 "src/prebuilt/wast-lexer-gen.cc" -yy896: +#line 5392 "src/prebuilt/wast-lexer-gen.cc" +yy902: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 324 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Trunc); } -#line 5371 "src/prebuilt/wast-lexer-gen.cc" -yy898: +#line 5400 "src/prebuilt/wast-lexer-gen.cc" +yy904: yych = *++cursor_; - if (yych == 'l') goto yy974; + if (yych == 'l') goto yy980; goto yy87; -yy899: +yy905: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 271 "src/wast-lexer.cc" { RETURN_OPCODE0(GetLocal); } -#line 5383 "src/prebuilt/wast-lexer-gen.cc" -yy901: +#line 5412 "src/prebuilt/wast-lexer-gen.cc" +yy907: yych = *++cursor_; - if (yych == 'r') goto yy976; + if (yych == 'r') goto yy982; goto yy87; -yy902: +yy908: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 301 "src/wast-lexer.cc" { RETURN_OPCODE(Const, I32Const); } -#line 5395 "src/prebuilt/wast-lexer-gen.cc" -yy904: +#line 5424 "src/prebuilt/wast-lexer-gen.cc" +yy910: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 338 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32DivS); } -#line 5403 "src/prebuilt/wast-lexer-gen.cc" -yy906: +#line 5432 "src/prebuilt/wast-lexer-gen.cc" +yy912: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 340 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32DivU); } -#line 5411 "src/prebuilt/wast-lexer-gen.cc" -yy908: +#line 5440 "src/prebuilt/wast-lexer-gen.cc" +yy914: yych = *++cursor_; - if (yych == 'd') goto yy977; + if (yych == 'd') goto yy983; goto yy87; -yy909: +yy915: yych = *++cursor_; - if (yych == '6') goto yy978; + if (yych == '6') goto yy984; goto yy87; -yy910: +yy916: yych = *++cursor_; - if (yych == '_') goto yy979; + if (yych == '_') goto yy985; goto yy87; -yy911: +yy917: yych = *++cursor_; - if (yych == 't') goto yy980; + if (yych == 't') goto yy986; goto yy87; -yy912: +yy918: yych = *++cursor_; - if (yych == 'e') goto yy982; + if (yych == 'e') goto yy988; goto yy87; -yy913: +yy919: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 342 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32RemS); } -#line 5439 "src/prebuilt/wast-lexer-gen.cc" -yy915: +#line 5468 "src/prebuilt/wast-lexer-gen.cc" +yy921: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 344 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32RemU); } -#line 5447 "src/prebuilt/wast-lexer-gen.cc" -yy917: +#line 5476 "src/prebuilt/wast-lexer-gen.cc" +yy923: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 354 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32ShrS); } -#line 5455 "src/prebuilt/wast-lexer-gen.cc" -yy919: +#line 5484 "src/prebuilt/wast-lexer-gen.cc" +yy925: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 356 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I32ShrU); } -#line 5463 "src/prebuilt/wast-lexer-gen.cc" -yy921: +#line 5492 "src/prebuilt/wast-lexer-gen.cc" +yy927: ++cursor_; if ((yych = *cursor_) <= '0') { if (yych <= '"') { @@ -5471,136 +5500,136 @@ yy921: } } else { if (yych <= '8') { - if (yych <= '1') goto yy983; + if (yych <= '1') goto yy989; if (yych <= '7') goto yy86; - goto yy984; + goto yy990; } else { - if (yych == ';') goto yy922; + if (yych == ';') goto yy928; if (yych <= '~') goto yy86; } } -yy922: +yy928: #line 280 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store); } -#line 5486 "src/prebuilt/wast-lexer-gen.cc" -yy923: +#line 5515 "src/prebuilt/wast-lexer-gen.cc" +yy929: yych = *++cursor_; - if (yych == '_') goto yy986; + if (yych == '_') goto yy992; goto yy87; -yy924: +yy930: yych = *++cursor_; - if (yych == 'i') goto yy987; + if (yych == 'i') goto yy993; goto yy87; -yy925: +yy931: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 302 "src/wast-lexer.cc" { RETURN_OPCODE(Const, I64Const); } -#line 5502 "src/prebuilt/wast-lexer-gen.cc" -yy927: +#line 5531 "src/prebuilt/wast-lexer-gen.cc" +yy933: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 339 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64DivS); } -#line 5510 "src/prebuilt/wast-lexer-gen.cc" -yy929: +#line 5539 "src/prebuilt/wast-lexer-gen.cc" +yy935: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 341 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64DivU); } -#line 5518 "src/prebuilt/wast-lexer-gen.cc" -yy931: +#line 5547 "src/prebuilt/wast-lexer-gen.cc" +yy937: yych = *++cursor_; - if (yych == 'd') goto yy988; + if (yych == 'd') goto yy994; goto yy87; -yy932: +yy938: yych = *++cursor_; - if (yych == '6') goto yy989; + if (yych == '6') goto yy995; goto yy87; -yy933: +yy939: yych = *++cursor_; - if (yych == '2') goto yy990; + if (yych == '2') goto yy996; goto yy87; -yy934: +yy940: yych = *++cursor_; - if (yych == '_') goto yy991; + if (yych == '_') goto yy997; goto yy87; -yy935: +yy941: yych = *++cursor_; - if (yych == 't') goto yy992; + if (yych == 't') goto yy998; goto yy87; -yy936: +yy942: yych = *++cursor_; - if (yych == 'e') goto yy994; + if (yych == 'e') goto yy1000; goto yy87; -yy937: +yy943: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 343 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64RemS); } -#line 5550 "src/prebuilt/wast-lexer-gen.cc" -yy939: +#line 5579 "src/prebuilt/wast-lexer-gen.cc" +yy945: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 345 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64RemU); } -#line 5558 "src/prebuilt/wast-lexer-gen.cc" -yy941: +#line 5587 "src/prebuilt/wast-lexer-gen.cc" +yy947: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 355 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64ShrS); } -#line 5566 "src/prebuilt/wast-lexer-gen.cc" -yy943: +#line 5595 "src/prebuilt/wast-lexer-gen.cc" +yy949: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 357 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, I64ShrU); } -#line 5574 "src/prebuilt/wast-lexer-gen.cc" -yy945: +#line 5603 "src/prebuilt/wast-lexer-gen.cc" +yy951: ++cursor_; if ((yych = *cursor_) <= '1') { if (yych <= '"') { if (yych == '!') goto yy86; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy946; + if (yych <= ')') goto yy952; if (yych <= '0') goto yy86; - goto yy995; + goto yy1001; } } else { if (yych <= '8') { - if (yych == '3') goto yy996; + if (yych == '3') goto yy1002; if (yych <= '7') goto yy86; - goto yy997; + goto yy1003; } else { - if (yych == ';') goto yy946; + if (yych == ';') goto yy952; if (yych <= '~') goto yy86; } } -yy946: +yy952: #line 281 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store); } -#line 5599 "src/prebuilt/wast-lexer-gen.cc" -yy947: +#line 5628 "src/prebuilt/wast-lexer-gen.cc" +yy953: yych = *++cursor_; - if (yych == '_') goto yy999; + if (yych == '_') goto yy1005; goto yy87; -yy948: +yy954: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -5616,7 +5645,7 @@ yy948: } else { if (yych <= ':') { if (yych <= '/') goto yy86; - if (yych <= '9') goto yy852; + if (yych <= '9') goto yy858; goto yy86; } else { if (yych <= ';') goto yy88; @@ -5624,7 +5653,7 @@ yy948: goto yy88; } } -yy949: +yy955: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -5636,1639 +5665,1639 @@ yy949: if (yych <= '\'') goto yy86; if (yych <= ')') goto yy88; if (yych <= '/') goto yy86; - goto yy1000; + goto yy1006; } } else { if (yych <= 'F') { if (yych == ';') goto yy88; if (yych <= '@') goto yy86; - goto yy1000; + goto yy1006; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy1000; + if (yych <= 'f') goto yy1006; if (yych <= '~') goto yy86; goto yy88; } } -yy950: +yy956: yych = *++cursor_; - if (yych == 'l') goto yy1002; + if (yych == 'l') goto yy1008; goto yy87; -yy951: +yy957: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 272 "src/wast-lexer.cc" { RETURN_OPCODE0(SetLocal); } -#line 5665 "src/prebuilt/wast-lexer-gen.cc" -yy953: +#line 5694 "src/prebuilt/wast-lexer-gen.cc" +yy959: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 273 "src/wast-lexer.cc" { RETURN_OPCODE0(TeeLocal); } -#line 5673 "src/prebuilt/wast-lexer-gen.cc" -yy955: - yych = *++cursor_; - if (yych == 'l') goto yy1004; - goto yy87; -yy956: - yych = *++cursor_; - if (yych == 'a') goto yy1005; - goto yy87; -yy957: - yych = *++cursor_; - if (yych == 'a') goto yy1006; - goto yy87; -yy958: - yych = *++cursor_; - if (yych == 'f') goto yy1007; - goto yy87; -yy959: - yych = *++cursor_; - if (yych == 'u') goto yy1008; - goto yy87; -yy960: - yych = *++cursor_; - if (yych == 'p') goto yy1009; - goto yy87; +#line 5702 "src/prebuilt/wast-lexer-gen.cc" yy961: yych = *++cursor_; - if (yych == 'i') goto yy1011; + if (yych == 'l') goto yy1010; goto yy87; yy962: yych = *++cursor_; - if (yych == 'e') goto yy1012; + if (yych == 'a') goto yy1011; goto yy87; yy963: yych = *++cursor_; - if (yych == 'm') goto yy1013; + if (yych == 'a') goto yy1012; goto yy87; yy964: yych = *++cursor_; - if (yych == 't') goto yy1014; + if (yych == 'f') goto yy1013; goto yy87; yy965: yych = *++cursor_; - if (yych == 'g') goto yy1015; + if (yych == 'u') goto yy1014; goto yy87; yy966: yych = *++cursor_; - if (yych == '/') goto yy1016; + if (yych == 'p') goto yy1015; goto yy87; yy967: yych = *++cursor_; - if (yych == 't') goto yy1017; + if (yych == 'i') goto yy1017; goto yy87; yy968: yych = *++cursor_; - if (yych == 'r') goto yy1019; + if (yych == 'e') goto yy1018; goto yy87; yy969: yych = *++cursor_; - if (yych == 't') goto yy1020; + if (yych == 'm') goto yy1019; goto yy87; yy970: yych = *++cursor_; - if (yych == 'g') goto yy1021; + if (yych == 't') goto yy1020; goto yy87; yy971: yych = *++cursor_; - if (yych == 't') goto yy1022; + if (yych == 'g') goto yy1021; goto yy87; yy972: yych = *++cursor_; - if (yych == 'e') goto yy1024; + if (yych == '/') goto yy1022; goto yy87; yy973: yych = *++cursor_; - if (yych == 'r') goto yy1025; + if (yych == 't') goto yy1023; goto yy87; yy974: - ++cursor_; - if (yybm[0+(yych = *cursor_)] & 8) { - goto yy86; - } -#line 274 "src/wast-lexer.cc" - { RETURN_OPCODE0(GetGlobal); } -#line 5757 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'r') goto yy1025; + goto yy87; +yy975: + yych = *++cursor_; + if (yych == 't') goto yy1026; + goto yy87; yy976: yych = *++cursor_; - if (yych == 'y') goto yy1026; + if (yych == 'g') goto yy1027; goto yy87; yy977: yych = *++cursor_; - if (yych == '1') goto yy1028; - if (yych == '8') goto yy1029; + if (yych == 't') goto yy1028; goto yy87; yy978: yych = *++cursor_; - if (yych == '_') goto yy1030; + if (yych == 'e') goto yy1030; goto yy87; yy979: yych = *++cursor_; - if (yych == 's') goto yy1031; - if (yych == 'u') goto yy1033; + if (yych == 'r') goto yy1031; goto yy87; yy980: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 311 "src/wast-lexer.cc" - { RETURN_OPCODE(Unary, I32Popcnt); } -#line 5783 "src/prebuilt/wast-lexer-gen.cc" +#line 274 "src/wast-lexer.cc" + { RETURN_OPCODE0(GetGlobal); } +#line 5786 "src/prebuilt/wast-lexer-gen.cc" yy982: yych = *++cursor_; - if (yych == 'r') goto yy1035; + if (yych == 'y') goto yy1032; goto yy87; yy983: yych = *++cursor_; - if (yych == '6') goto yy1036; + if (yych == '1') goto yy1034; + if (yych == '8') goto yy1035; goto yy87; yy984: + yych = *++cursor_; + if (yych == '_') goto yy1036; + goto yy87; +yy985: + yych = *++cursor_; + if (yych == 's') goto yy1037; + if (yych == 'u') goto yy1039; + goto yy87; +yy986: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 311 "src/wast-lexer.cc" + { RETURN_OPCODE(Unary, I32Popcnt); } +#line 5812 "src/prebuilt/wast-lexer-gen.cc" +yy988: + yych = *++cursor_; + if (yych == 'r') goto yy1041; + goto yy87; +yy989: + yych = *++cursor_; + if (yych == '6') goto yy1042; + goto yy87; +yy990: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 294 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store8); } -#line 5799 "src/prebuilt/wast-lexer-gen.cc" -yy986: +#line 5828 "src/prebuilt/wast-lexer-gen.cc" +yy992: yych = *++cursor_; - if (yych == 's') goto yy1038; - if (yych == 'u') goto yy1039; + if (yych == 's') goto yy1044; + if (yych == 'u') goto yy1045; goto yy87; -yy987: +yy993: yych = *++cursor_; - if (yych == '6') goto yy1040; + if (yych == '6') goto yy1046; goto yy87; -yy988: +yy994: yych = *++cursor_; if (yych <= '3') { - if (yych == '1') goto yy1041; + if (yych == '1') goto yy1047; if (yych <= '2') goto yy87; - goto yy1042; + goto yy1048; } else { if (yych <= '8') { if (yych <= '7') goto yy87; - goto yy1043; + goto yy1049; } else { - if (yych == '_') goto yy1044; + if (yych == '_') goto yy1050; goto yy87; } } -yy989: +yy995: yych = *++cursor_; - if (yych == '_') goto yy1045; + if (yych == '_') goto yy1051; goto yy87; -yy990: +yy996: yych = *++cursor_; - if (yych == '_') goto yy1046; + if (yych == '_') goto yy1052; goto yy87; -yy991: +yy997: yych = *++cursor_; - if (yych == 's') goto yy1047; - if (yych == 'u') goto yy1049; + if (yych == 's') goto yy1053; + if (yych == 'u') goto yy1055; goto yy87; -yy992: +yy998: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 312 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Popcnt); } -#line 5844 "src/prebuilt/wast-lexer-gen.cc" -yy994: +#line 5873 "src/prebuilt/wast-lexer-gen.cc" +yy1000: yych = *++cursor_; - if (yych == 'r') goto yy1051; + if (yych == 'r') goto yy1057; goto yy87; -yy995: +yy1001: yych = *++cursor_; - if (yych == '6') goto yy1052; + if (yych == '6') goto yy1058; goto yy87; -yy996: +yy1002: yych = *++cursor_; - if (yych == '2') goto yy1054; + if (yych == '2') goto yy1060; goto yy87; -yy997: +yy1003: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 295 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store8); } -#line 5864 "src/prebuilt/wast-lexer-gen.cc" -yy999: +#line 5893 "src/prebuilt/wast-lexer-gen.cc" +yy1005: yych = *++cursor_; - if (yych == 's') goto yy1056; - if (yych == 'u') goto yy1057; + if (yych == 's') goto yy1062; + if (yych == 'u') goto yy1063; goto yy87; -yy1000: +yy1006: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ':') { if (yych <= '\'') { if (yych == '!') goto yy86; - if (yych <= '"') goto yy851; + if (yych <= '"') goto yy857; goto yy86; } else { - if (yych <= ')') goto yy851; + if (yych <= ')') goto yy857; if (yych <= '/') goto yy86; - if (yych <= '9') goto yy1000; + if (yych <= '9') goto yy1006; goto yy86; } } else { if (yych <= '^') { - if (yych <= ';') goto yy851; + if (yych <= ';') goto yy857; if (yych <= '@') goto yy86; - if (yych <= 'F') goto yy1000; + if (yych <= 'F') goto yy1006; goto yy86; } else { if (yych <= '`') { - if (yych <= '_') goto yy949; + if (yych <= '_') goto yy955; goto yy86; } else { - if (yych <= 'f') goto yy1000; + if (yych <= 'f') goto yy1006; if (yych <= '~') goto yy86; - goto yy851; + goto yy857; } } } -yy1002: +yy1008: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 275 "src/wast-lexer.cc" { RETURN_OPCODE0(SetGlobal); } -#line 5909 "src/prebuilt/wast-lexer-gen.cc" -yy1004: +#line 5938 "src/prebuilt/wast-lexer-gen.cc" +yy1010: yych = *++cursor_; - if (yych == 'e') goto yy1058; + if (yych == 'e') goto yy1064; goto yy87; -yy1005: +yy1011: yych = *++cursor_; - if (yych == 'u') goto yy1060; + if (yych == 'u') goto yy1066; goto yy87; -yy1006: +yy1012: yych = *++cursor_; - if (yych == 'l') goto yy1061; + if (yych == 'l') goto yy1067; goto yy87; -yy1007: +yy1013: yych = *++cursor_; - if (yych == 'o') goto yy1062; + if (yych == 'o') goto yy1068; goto yy87; -yy1008: +yy1014: yych = *++cursor_; - if (yych == 'r') goto yy1063; + if (yych == 'r') goto yy1069; goto yy87; -yy1009: +yy1015: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 472 "src/wast-lexer.cc" { RETURN(AssertTrap); } -#line 5937 "src/prebuilt/wast-lexer-gen.cc" -yy1011: +#line 5966 "src/prebuilt/wast-lexer-gen.cc" +yy1017: yych = *++cursor_; - if (yych == 'n') goto yy1064; + if (yych == 'n') goto yy1070; goto yy87; -yy1012: +yy1018: yych = *++cursor_; - if (yych == 'c') goto yy1065; + if (yych == 'c') goto yy1071; goto yy87; -yy1013: +yy1019: yych = *++cursor_; - if (yych == 'o') goto yy1066; + if (yych == 'o') goto yy1072; goto yy87; -yy1014: +yy1020: yych = *++cursor_; - if (yych == '_') goto yy1067; + if (yych == '_') goto yy1073; goto yy87; -yy1015: +yy1021: yych = *++cursor_; - if (yych == 'n') goto yy1068; + if (yych == 'n') goto yy1074; goto yy87; -yy1016: +yy1022: yych = *++cursor_; - if (yych == 'f') goto yy1070; + if (yych == 'f') goto yy1076; goto yy87; -yy1017: +yy1023: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 325 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F32Nearest); } -#line 5969 "src/prebuilt/wast-lexer-gen.cc" -yy1019: +#line 5998 "src/prebuilt/wast-lexer-gen.cc" +yy1025: yych = *++cursor_; - if (yych == 'p') goto yy1071; + if (yych == 'p') goto yy1077; goto yy87; -yy1020: +yy1026: yych = *++cursor_; - if (yych == '_') goto yy1072; + if (yych == '_') goto yy1078; goto yy87; -yy1021: +yy1027: yych = *++cursor_; - if (yych == 'n') goto yy1073; + if (yych == 'n') goto yy1079; goto yy87; -yy1022: +yy1028: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 326 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, F64Nearest); } -#line 5989 "src/prebuilt/wast-lexer-gen.cc" -yy1024: +#line 6018 "src/prebuilt/wast-lexer-gen.cc" +yy1030: yych = *++cursor_; - if (yych == '/') goto yy1075; + if (yych == '/') goto yy1081; goto yy87; -yy1025: +yy1031: yych = *++cursor_; - if (yych == 'p') goto yy1076; + if (yych == 'p') goto yy1082; goto yy87; -yy1026: +yy1032: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 444 "src/wast-lexer.cc" { RETURN_OPCODE0(GrowMemory); } -#line 6005 "src/prebuilt/wast-lexer-gen.cc" -yy1028: +#line 6034 "src/prebuilt/wast-lexer-gen.cc" +yy1034: yych = *++cursor_; - if (yych == '6') goto yy1077; + if (yych == '6') goto yy1083; goto yy87; -yy1029: +yy1035: yych = *++cursor_; - if (yych == '_') goto yy1078; + if (yych == '_') goto yy1084; goto yy87; -yy1030: +yy1036: yych = *++cursor_; - if (yych == 's') goto yy1079; - if (yych == 'u') goto yy1081; + if (yych == 's') goto yy1085; + if (yych == 'u') goto yy1087; goto yy87; -yy1031: +yy1037: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 284 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load8S); } -#line 6026 "src/prebuilt/wast-lexer-gen.cc" -yy1033: +#line 6055 "src/prebuilt/wast-lexer-gen.cc" +yy1039: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 286 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load8U); } -#line 6034 "src/prebuilt/wast-lexer-gen.cc" -yy1035: +#line 6063 "src/prebuilt/wast-lexer-gen.cc" +yy1041: yych = *++cursor_; - if (yych == 'p') goto yy1083; + if (yych == 'p') goto yy1089; goto yy87; -yy1036: +yy1042: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 296 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I32Store16); } -#line 6046 "src/prebuilt/wast-lexer-gen.cc" -yy1038: +#line 6075 "src/prebuilt/wast-lexer-gen.cc" +yy1044: yych = *++cursor_; - if (yych == '/') goto yy1084; - if (yych == ':') goto yy1085; + if (yych == '/') goto yy1090; + if (yych == ':') goto yy1091; goto yy87; -yy1039: +yy1045: yych = *++cursor_; - if (yych == '/') goto yy1086; - if (yych == ':') goto yy1087; + if (yych == '/') goto yy1092; + if (yych == ':') goto yy1093; goto yy87; -yy1040: +yy1046: yych = *++cursor_; - if (yych == '4') goto yy1088; + if (yych == '4') goto yy1094; goto yy87; -yy1041: +yy1047: yych = *++cursor_; - if (yych == '6') goto yy1090; + if (yych == '6') goto yy1096; goto yy87; -yy1042: +yy1048: yych = *++cursor_; - if (yych == '2') goto yy1091; + if (yych == '2') goto yy1097; goto yy87; -yy1043: +yy1049: yych = *++cursor_; - if (yych == '_') goto yy1092; + if (yych == '_') goto yy1098; goto yy87; -yy1044: +yy1050: yych = *++cursor_; - if (yych == 's') goto yy1093; - if (yych == 'u') goto yy1094; + if (yych == 's') goto yy1099; + if (yych == 'u') goto yy1100; goto yy87; -yy1045: +yy1051: yych = *++cursor_; - if (yych == 's') goto yy1095; - if (yych == 'u') goto yy1097; + if (yych == 's') goto yy1101; + if (yych == 'u') goto yy1103; goto yy87; -yy1046: +yy1052: yych = *++cursor_; - if (yych == 's') goto yy1099; - if (yych == 'u') goto yy1101; + if (yych == 's') goto yy1105; + if (yych == 'u') goto yy1107; goto yy87; -yy1047: +yy1053: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 285 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load8S); } -#line 6095 "src/prebuilt/wast-lexer-gen.cc" -yy1049: +#line 6124 "src/prebuilt/wast-lexer-gen.cc" +yy1055: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 287 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load8U); } -#line 6103 "src/prebuilt/wast-lexer-gen.cc" -yy1051: +#line 6132 "src/prebuilt/wast-lexer-gen.cc" +yy1057: yych = *++cursor_; - if (yych == 'p') goto yy1103; + if (yych == 'p') goto yy1109; goto yy87; -yy1052: +yy1058: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 297 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store16); } -#line 6115 "src/prebuilt/wast-lexer-gen.cc" -yy1054: +#line 6144 "src/prebuilt/wast-lexer-gen.cc" +yy1060: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 298 "src/wast-lexer.cc" { RETURN_OPCODE(Store, I64Store32); } -#line 6123 "src/prebuilt/wast-lexer-gen.cc" -yy1056: +#line 6152 "src/prebuilt/wast-lexer-gen.cc" +yy1062: yych = *++cursor_; - if (yych == '/') goto yy1104; - if (yych == ':') goto yy1105; + if (yych == '/') goto yy1110; + if (yych == ':') goto yy1111; goto yy87; -yy1057: +yy1063: yych = *++cursor_; - if (yych == '/') goto yy1106; - if (yych == ':') goto yy1107; + if (yych == '/') goto yy1112; + if (yych == ':') goto yy1113; goto yy87; -yy1058: +yy1064: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 442 "src/wast-lexer.cc" { RETURN_OPCODE0(Unreachable); } -#line 6141 "src/prebuilt/wast-lexer-gen.cc" -yy1060: +#line 6170 "src/prebuilt/wast-lexer-gen.cc" +yy1066: yych = *++cursor_; - if (yych == 's') goto yy1108; + if (yych == 's') goto yy1114; goto yy87; -yy1061: +yy1067: yych = *++cursor_; - if (yych == 'i') goto yy1109; + if (yych == 'i') goto yy1115; goto yy87; -yy1062: +yy1068: yych = *++cursor_; - if (yych == 'r') goto yy1110; + if (yych == 'r') goto yy1116; goto yy87; -yy1063: +yy1069: yych = *++cursor_; - if (yych == 'n') goto yy1111; + if (yych == 'n') goto yy1117; goto yy87; -yy1064: +yy1070: yych = *++cursor_; - if (yych == 'k') goto yy1113; + if (yych == 'k') goto yy1119; goto yy87; -yy1065: +yy1071: yych = *++cursor_; - if (yych == 't') goto yy1114; + if (yych == 't') goto yy1120; goto yy87; -yy1066: +yy1072: yych = *++cursor_; - if (yych == 'r') goto yy1116; + if (yych == 'r') goto yy1122; goto yy87; -yy1067: +yy1073: yych = *++cursor_; - if (yych == 's') goto yy1117; - if (yych == 'u') goto yy1118; + if (yych == 's') goto yy1123; + if (yych == 'u') goto yy1124; goto yy87; -yy1068: +yy1074: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 374 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F32Copysign); } -#line 6182 "src/prebuilt/wast-lexer-gen.cc" -yy1070: +#line 6211 "src/prebuilt/wast-lexer-gen.cc" +yy1076: yych = *++cursor_; - if (yych == '6') goto yy1119; + if (yych == '6') goto yy1125; goto yy87; -yy1071: +yy1077: yych = *++cursor_; - if (yych == 'r') goto yy1120; + if (yych == 'r') goto yy1126; goto yy87; -yy1072: +yy1078: yych = *++cursor_; - if (yych == 's') goto yy1121; - if (yych == 'u') goto yy1122; + if (yych == 's') goto yy1127; + if (yych == 'u') goto yy1128; goto yy87; -yy1073: +yy1079: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 375 "src/wast-lexer.cc" { RETURN_OPCODE(Binary, F64Copysign); } -#line 6203 "src/prebuilt/wast-lexer-gen.cc" -yy1075: +#line 6232 "src/prebuilt/wast-lexer-gen.cc" +yy1081: yych = *++cursor_; - if (yych == 'f') goto yy1123; + if (yych == 'f') goto yy1129; goto yy87; -yy1076: +yy1082: yych = *++cursor_; - if (yych == 'r') goto yy1124; + if (yych == 'r') goto yy1130; goto yy87; -yy1077: +yy1083: yych = *++cursor_; - if (yych == '_') goto yy1125; + if (yych == '_') goto yy1131; goto yy87; -yy1078: +yy1084: yych = *++cursor_; - if (yych == 's') goto yy1126; + if (yych == 's') goto yy1132; goto yy87; -yy1079: +yy1085: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 288 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load16S); } -#line 6227 "src/prebuilt/wast-lexer-gen.cc" -yy1081: +#line 6256 "src/prebuilt/wast-lexer-gen.cc" +yy1087: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 290 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I32Load16U); } -#line 6235 "src/prebuilt/wast-lexer-gen.cc" -yy1083: +#line 6264 "src/prebuilt/wast-lexer-gen.cc" +yy1089: yych = *++cursor_; - if (yych == 'r') goto yy1128; + if (yych == 'r') goto yy1134; goto yy87; -yy1084: +yy1090: yych = *++cursor_; - if (yych == 'f') goto yy1129; + if (yych == 'f') goto yy1135; goto yy87; -yy1085: +yy1091: yych = *++cursor_; - if (yych == 's') goto yy1130; + if (yych == 's') goto yy1136; goto yy87; -yy1086: +yy1092: yych = *++cursor_; - if (yych == 'f') goto yy1131; + if (yych == 'f') goto yy1137; goto yy87; -yy1087: +yy1093: yych = *++cursor_; - if (yych == 's') goto yy1132; + if (yych == 's') goto yy1138; goto yy87; -yy1088: +yy1094: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 410 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32WrapI64); } -#line 6263 "src/prebuilt/wast-lexer-gen.cc" -yy1090: +#line 6292 "src/prebuilt/wast-lexer-gen.cc" +yy1096: yych = *++cursor_; - if (yych == '_') goto yy1133; + if (yych == '_') goto yy1139; goto yy87; -yy1091: +yy1097: yych = *++cursor_; - if (yych == '_') goto yy1134; + if (yych == '_') goto yy1140; goto yy87; -yy1092: +yy1098: yych = *++cursor_; - if (yych == 's') goto yy1135; + if (yych == 's') goto yy1141; goto yy87; -yy1093: +yy1099: yych = *++cursor_; - if (yych == '/') goto yy1137; + if (yych == '/') goto yy1143; goto yy87; -yy1094: +yy1100: yych = *++cursor_; - if (yych == '/') goto yy1138; + if (yych == '/') goto yy1144; goto yy87; -yy1095: +yy1101: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 289 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load16S); } -#line 6291 "src/prebuilt/wast-lexer-gen.cc" -yy1097: +#line 6320 "src/prebuilt/wast-lexer-gen.cc" +yy1103: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 291 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load16U); } -#line 6299 "src/prebuilt/wast-lexer-gen.cc" -yy1099: +#line 6328 "src/prebuilt/wast-lexer-gen.cc" +yy1105: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 292 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load32S); } -#line 6307 "src/prebuilt/wast-lexer-gen.cc" -yy1101: +#line 6336 "src/prebuilt/wast-lexer-gen.cc" +yy1107: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 293 "src/wast-lexer.cc" { RETURN_OPCODE(Load, I64Load32U); } -#line 6315 "src/prebuilt/wast-lexer-gen.cc" -yy1103: +#line 6344 "src/prebuilt/wast-lexer-gen.cc" +yy1109: yych = *++cursor_; - if (yych == 'r') goto yy1139; + if (yych == 'r') goto yy1145; goto yy87; -yy1104: +yy1110: yych = *++cursor_; - if (yych == 'f') goto yy1140; + if (yych == 'f') goto yy1146; goto yy87; -yy1105: +yy1111: yych = *++cursor_; - if (yych == 's') goto yy1141; + if (yych == 's') goto yy1147; goto yy87; -yy1106: +yy1112: yych = *++cursor_; - if (yych == 'f') goto yy1142; + if (yych == 'f') goto yy1148; goto yy87; -yy1107: +yy1113: yych = *++cursor_; - if (yych == 's') goto yy1143; + if (yych == 's') goto yy1149; goto yy87; -yy1108: +yy1114: yych = *++cursor_; - if (yych == 't') goto yy1144; + if (yych == 't') goto yy1150; goto yy87; -yy1109: +yy1115: yych = *++cursor_; - if (yych == 'd') goto yy1145; + if (yych == 'd') goto yy1151; goto yy87; -yy1110: +yy1116: yych = *++cursor_; - if (yych == 'm') goto yy1147; + if (yych == 'm') goto yy1153; goto yy87; -yy1111: +yy1117: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1112; + if (yych <= '"') goto yy1118; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1148; + if (yych <= '_') goto yy1154; if (yych <= '~') goto yy86; } } -yy1112: +yy1118: #line 469 "src/wast-lexer.cc" { RETURN(AssertReturn); } -#line 6368 "src/prebuilt/wast-lexer-gen.cc" -yy1113: +#line 6397 "src/prebuilt/wast-lexer-gen.cc" +yy1119: yych = *++cursor_; - if (yych == 'a') goto yy1149; + if (yych == 'a') goto yy1155; goto yy87; -yy1114: +yy1120: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 267 "src/wast-lexer.cc" { RETURN_OPCODE0(CallIndirect); } -#line 6380 "src/prebuilt/wast-lexer-gen.cc" -yy1116: +#line 6409 "src/prebuilt/wast-lexer-gen.cc" +yy1122: yych = *++cursor_; - if (yych == 'y') goto yy1150; + if (yych == 'y') goto yy1156; goto yy87; -yy1117: +yy1123: yych = *++cursor_; - if (yych == '/') goto yy1152; + if (yych == '/') goto yy1158; goto yy87; -yy1118: +yy1124: yych = *++cursor_; - if (yych == '/') goto yy1153; + if (yych == '/') goto yy1159; goto yy87; -yy1119: +yy1125: yych = *++cursor_; - if (yych == '4') goto yy1154; + if (yych == '4') goto yy1160; goto yy87; -yy1120: +yy1126: yych = *++cursor_; - if (yych == 'e') goto yy1156; + if (yych == 'e') goto yy1162; goto yy87; -yy1121: +yy1127: yych = *++cursor_; - if (yych == '/') goto yy1157; + if (yych == '/') goto yy1163; goto yy87; -yy1122: +yy1128: yych = *++cursor_; - if (yych == '/') goto yy1158; + if (yych == '/') goto yy1164; goto yy87; -yy1123: +yy1129: yych = *++cursor_; - if (yych == '3') goto yy1159; + if (yych == '3') goto yy1165; goto yy87; -yy1124: +yy1130: yych = *++cursor_; - if (yych == 'e') goto yy1160; + if (yych == 'e') goto yy1166; goto yy87; -yy1125: +yy1131: yych = *++cursor_; - if (yych == 's') goto yy1161; + if (yych == 's') goto yy1167; goto yy87; -yy1126: +yy1132: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 327 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Extend8S); } -#line 6428 "src/prebuilt/wast-lexer-gen.cc" -yy1128: +#line 6457 "src/prebuilt/wast-lexer-gen.cc" +yy1134: yych = *++cursor_; - if (yych == 'e') goto yy1163; + if (yych == 'e') goto yy1169; goto yy87; -yy1129: +yy1135: yych = *++cursor_; - if (yych == '3') goto yy1164; - if (yych == '6') goto yy1165; + if (yych == '3') goto yy1170; + if (yych == '6') goto yy1171; goto yy87; -yy1130: +yy1136: yych = *++cursor_; - if (yych == 'a') goto yy1166; + if (yych == 'a') goto yy1172; goto yy87; -yy1131: +yy1137: yych = *++cursor_; - if (yych == '3') goto yy1167; - if (yych == '6') goto yy1168; + if (yych == '3') goto yy1173; + if (yych == '6') goto yy1174; goto yy87; -yy1132: +yy1138: yych = *++cursor_; - if (yych == 'a') goto yy1169; + if (yych == 'a') goto yy1175; goto yy87; -yy1133: +yy1139: yych = *++cursor_; - if (yych == 's') goto yy1170; + if (yych == 's') goto yy1176; goto yy87; -yy1134: +yy1140: yych = *++cursor_; - if (yych == 's') goto yy1172; + if (yych == 's') goto yy1178; goto yy87; -yy1135: +yy1141: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 329 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Extend8S); } -#line 6466 "src/prebuilt/wast-lexer-gen.cc" -yy1137: +#line 6495 "src/prebuilt/wast-lexer-gen.cc" +yy1143: yych = *++cursor_; - if (yych == 'i') goto yy1174; + if (yych == 'i') goto yy1180; goto yy87; -yy1138: +yy1144: yych = *++cursor_; - if (yych == 'i') goto yy1175; + if (yych == 'i') goto yy1181; goto yy87; -yy1139: +yy1145: yych = *++cursor_; - if (yych == 'e') goto yy1176; + if (yych == 'e') goto yy1182; goto yy87; -yy1140: +yy1146: yych = *++cursor_; - if (yych == '3') goto yy1177; - if (yych == '6') goto yy1178; + if (yych == '3') goto yy1183; + if (yych == '6') goto yy1184; goto yy87; -yy1141: +yy1147: yych = *++cursor_; - if (yych == 'a') goto yy1179; + if (yych == 'a') goto yy1185; goto yy87; -yy1142: +yy1148: yych = *++cursor_; - if (yych == '3') goto yy1180; - if (yych == '6') goto yy1181; + if (yych == '3') goto yy1186; + if (yych == '6') goto yy1187; goto yy87; -yy1143: +yy1149: yych = *++cursor_; - if (yych == 'a') goto yy1182; + if (yych == 'a') goto yy1188; goto yy87; -yy1144: +yy1150: yych = *++cursor_; - if (yych == 'i') goto yy1183; + if (yych == 'i') goto yy1189; goto yy87; -yy1145: +yy1151: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 467 "src/wast-lexer.cc" { RETURN(AssertInvalid); } -#line 6508 "src/prebuilt/wast-lexer-gen.cc" -yy1147: +#line 6537 "src/prebuilt/wast-lexer-gen.cc" +yy1153: yych = *++cursor_; - if (yych == 'e') goto yy1184; + if (yych == 'e') goto yy1190; goto yy87; -yy1148: +yy1154: yych = *++cursor_; - if (yych == 'a') goto yy1185; - if (yych == 'c') goto yy1186; + if (yych == 'a') goto yy1191; + if (yych == 'c') goto yy1192; goto yy87; -yy1149: +yy1155: yych = *++cursor_; - if (yych == 'b') goto yy1187; + if (yych == 'b') goto yy1193; goto yy87; -yy1150: +yy1156: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 443 "src/wast-lexer.cc" { RETURN_OPCODE0(CurrentMemory); } -#line 6529 "src/prebuilt/wast-lexer-gen.cc" -yy1152: +#line 6558 "src/prebuilt/wast-lexer-gen.cc" +yy1158: yych = *++cursor_; - if (yych == 'i') goto yy1188; + if (yych == 'i') goto yy1194; goto yy87; -yy1153: +yy1159: yych = *++cursor_; - if (yych == 'i') goto yy1189; + if (yych == 'i') goto yy1195; goto yy87; -yy1154: +yy1160: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 436 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32DemoteF64); } -#line 6545 "src/prebuilt/wast-lexer-gen.cc" -yy1156: +#line 6574 "src/prebuilt/wast-lexer-gen.cc" +yy1162: yych = *++cursor_; - if (yych == 't') goto yy1190; + if (yych == 't') goto yy1196; goto yy87; -yy1157: +yy1163: yych = *++cursor_; - if (yych == 'i') goto yy1191; + if (yych == 'i') goto yy1197; goto yy87; -yy1158: +yy1164: yych = *++cursor_; - if (yych == 'i') goto yy1192; + if (yych == 'i') goto yy1198; goto yy87; -yy1159: +yy1165: yych = *++cursor_; - if (yych == '2') goto yy1193; + if (yych == '2') goto yy1199; goto yy87; -yy1160: +yy1166: yych = *++cursor_; - if (yych == 't') goto yy1195; + if (yych == 't') goto yy1201; goto yy87; -yy1161: +yy1167: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 328 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I32Extend16S); } -#line 6573 "src/prebuilt/wast-lexer-gen.cc" -yy1163: +#line 6602 "src/prebuilt/wast-lexer-gen.cc" +yy1169: yych = *++cursor_; - if (yych == 't') goto yy1196; + if (yych == 't') goto yy1202; goto yy87; -yy1164: +yy1170: yych = *++cursor_; - if (yych == '2') goto yy1197; + if (yych == '2') goto yy1203; goto yy87; -yy1165: +yy1171: yych = *++cursor_; - if (yych == '4') goto yy1199; + if (yych == '4') goto yy1205; goto yy87; -yy1166: +yy1172: yych = *++cursor_; - if (yych == 't') goto yy1201; + if (yych == 't') goto yy1207; goto yy87; -yy1167: +yy1173: yych = *++cursor_; - if (yych == '2') goto yy1202; + if (yych == '2') goto yy1208; goto yy87; -yy1168: +yy1174: yych = *++cursor_; - if (yych == '4') goto yy1204; + if (yych == '4') goto yy1210; goto yy87; -yy1169: +yy1175: yych = *++cursor_; - if (yych == 't') goto yy1206; + if (yych == 't') goto yy1212; goto yy87; -yy1170: +yy1176: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 330 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Extend16S); } -#line 6609 "src/prebuilt/wast-lexer-gen.cc" -yy1172: +#line 6638 "src/prebuilt/wast-lexer-gen.cc" +yy1178: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 331 "src/wast-lexer.cc" { RETURN_OPCODE(Unary, I64Extend32S); } -#line 6617 "src/prebuilt/wast-lexer-gen.cc" -yy1174: - yych = *++cursor_; - if (yych == '3') goto yy1207; - goto yy87; -yy1175: - yych = *++cursor_; - if (yych == '3') goto yy1208; - goto yy87; -yy1176: - yych = *++cursor_; - if (yych == 't') goto yy1209; - goto yy87; -yy1177: - yych = *++cursor_; - if (yych == '2') goto yy1210; - goto yy87; -yy1178: - yych = *++cursor_; - if (yych == '4') goto yy1212; - goto yy87; -yy1179: - yych = *++cursor_; - if (yych == 't') goto yy1214; - goto yy87; +#line 6646 "src/prebuilt/wast-lexer-gen.cc" yy1180: yych = *++cursor_; - if (yych == '2') goto yy1215; + if (yych == '3') goto yy1213; goto yy87; yy1181: yych = *++cursor_; - if (yych == '4') goto yy1217; + if (yych == '3') goto yy1214; goto yy87; yy1182: yych = *++cursor_; - if (yych == 't') goto yy1219; + if (yych == 't') goto yy1215; goto yy87; yy1183: yych = *++cursor_; - if (yych == 'o') goto yy1220; + if (yych == '2') goto yy1216; goto yy87; yy1184: yych = *++cursor_; - if (yych == 'd') goto yy1221; + if (yych == '4') goto yy1218; goto yy87; yy1185: yych = *++cursor_; - if (yych == 'r') goto yy1223; + if (yych == 't') goto yy1220; goto yy87; yy1186: yych = *++cursor_; - if (yych == 'a') goto yy1224; + if (yych == '2') goto yy1221; goto yy87; yy1187: yych = *++cursor_; - if (yych == 'l') goto yy1225; + if (yych == '4') goto yy1223; goto yy87; yy1188: yych = *++cursor_; - if (yych == '3') goto yy1226; - if (yych == '6') goto yy1227; + if (yych == 't') goto yy1225; goto yy87; yy1189: yych = *++cursor_; - if (yych == '3') goto yy1228; - if (yych == '6') goto yy1229; + if (yych == 'o') goto yy1226; goto yy87; yy1190: yych = *++cursor_; - if (yych == '/') goto yy1230; + if (yych == 'd') goto yy1227; goto yy87; yy1191: yych = *++cursor_; - if (yych == '3') goto yy1231; - if (yych == '6') goto yy1232; + if (yych == 'r') goto yy1229; goto yy87; yy1192: yych = *++cursor_; - if (yych == '3') goto yy1233; - if (yych == '6') goto yy1234; + if (yych == 'a') goto yy1230; goto yy87; yy1193: + yych = *++cursor_; + if (yych == 'l') goto yy1231; + goto yy87; +yy1194: + yych = *++cursor_; + if (yych == '3') goto yy1232; + if (yych == '6') goto yy1233; + goto yy87; +yy1195: + yych = *++cursor_; + if (yych == '3') goto yy1234; + if (yych == '6') goto yy1235; + goto yy87; +yy1196: + yych = *++cursor_; + if (yych == '/') goto yy1236; + goto yy87; +yy1197: + yych = *++cursor_; + if (yych == '3') goto yy1237; + if (yych == '6') goto yy1238; + goto yy87; +yy1198: + yych = *++cursor_; + if (yych == '3') goto yy1239; + if (yych == '6') goto yy1240; + goto yy87; +yy1199: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 435 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64PromoteF32); } -#line 6705 "src/prebuilt/wast-lexer-gen.cc" -yy1195: +#line 6734 "src/prebuilt/wast-lexer-gen.cc" +yy1201: yych = *++cursor_; - if (yych == '/') goto yy1235; + if (yych == '/') goto yy1241; goto yy87; -yy1196: +yy1202: yych = *++cursor_; - if (yych == '/') goto yy1236; + if (yych == '/') goto yy1242; goto yy87; -yy1197: +yy1203: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 411 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSF32); } -#line 6721 "src/prebuilt/wast-lexer-gen.cc" -yy1199: +#line 6750 "src/prebuilt/wast-lexer-gen.cc" +yy1205: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 413 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSF64); } -#line 6729 "src/prebuilt/wast-lexer-gen.cc" -yy1201: +#line 6758 "src/prebuilt/wast-lexer-gen.cc" +yy1207: yych = *++cursor_; - if (yych == '/') goto yy1237; + if (yych == '/') goto yy1243; goto yy87; -yy1202: +yy1208: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 415 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUF32); } -#line 6741 "src/prebuilt/wast-lexer-gen.cc" -yy1204: +#line 6770 "src/prebuilt/wast-lexer-gen.cc" +yy1210: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 417 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUF64); } -#line 6749 "src/prebuilt/wast-lexer-gen.cc" -yy1206: +#line 6778 "src/prebuilt/wast-lexer-gen.cc" +yy1212: yych = *++cursor_; - if (yych == '/') goto yy1238; + if (yych == '/') goto yy1244; goto yy87; -yy1207: +yy1213: yych = *++cursor_; - if (yych == '2') goto yy1239; + if (yych == '2') goto yy1245; goto yy87; -yy1208: +yy1214: yych = *++cursor_; - if (yych == '2') goto yy1241; + if (yych == '2') goto yy1247; goto yy87; -yy1209: +yy1215: yych = *++cursor_; - if (yych == '/') goto yy1243; + if (yych == '/') goto yy1249; goto yy87; -yy1210: +yy1216: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 412 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSF32); } -#line 6773 "src/prebuilt/wast-lexer-gen.cc" -yy1212: +#line 6802 "src/prebuilt/wast-lexer-gen.cc" +yy1218: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 414 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSF64); } -#line 6781 "src/prebuilt/wast-lexer-gen.cc" -yy1214: +#line 6810 "src/prebuilt/wast-lexer-gen.cc" +yy1220: yych = *++cursor_; - if (yych == '/') goto yy1244; + if (yych == '/') goto yy1250; goto yy87; -yy1215: +yy1221: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 416 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUF32); } -#line 6793 "src/prebuilt/wast-lexer-gen.cc" -yy1217: +#line 6822 "src/prebuilt/wast-lexer-gen.cc" +yy1223: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 418 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUF64); } -#line 6801 "src/prebuilt/wast-lexer-gen.cc" -yy1219: +#line 6830 "src/prebuilt/wast-lexer-gen.cc" +yy1225: yych = *++cursor_; - if (yych == '/') goto yy1245; + if (yych == '/') goto yy1251; goto yy87; -yy1220: +yy1226: yych = *++cursor_; - if (yych == 'n') goto yy1246; + if (yych == 'n') goto yy1252; goto yy87; -yy1221: +yy1227: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 466 "src/wast-lexer.cc" { RETURN(AssertMalformed); } -#line 6817 "src/prebuilt/wast-lexer-gen.cc" -yy1223: +#line 6846 "src/prebuilt/wast-lexer-gen.cc" +yy1229: yych = *++cursor_; - if (yych == 'i') goto yy1248; + if (yych == 'i') goto yy1254; goto yy87; -yy1224: +yy1230: yych = *++cursor_; - if (yych == 'n') goto yy1249; + if (yych == 'n') goto yy1255; goto yy87; -yy1225: +yy1231: yych = *++cursor_; - if (yych == 'e') goto yy1250; + if (yych == 'e') goto yy1256; goto yy87; -yy1226: +yy1232: yych = *++cursor_; - if (yych == '2') goto yy1252; + if (yych == '2') goto yy1258; goto yy87; -yy1227: +yy1233: yych = *++cursor_; - if (yych == '4') goto yy1254; + if (yych == '4') goto yy1260; goto yy87; -yy1228: +yy1234: yych = *++cursor_; - if (yych == '2') goto yy1256; + if (yych == '2') goto yy1262; goto yy87; -yy1229: +yy1235: yych = *++cursor_; - if (yych == '4') goto yy1258; + if (yych == '4') goto yy1264; goto yy87; -yy1230: +yy1236: yych = *++cursor_; - if (yych == 'i') goto yy1260; + if (yych == 'i') goto yy1266; goto yy87; -yy1231: +yy1237: yych = *++cursor_; - if (yych == '2') goto yy1261; + if (yych == '2') goto yy1267; goto yy87; -yy1232: +yy1238: yych = *++cursor_; - if (yych == '4') goto yy1263; + if (yych == '4') goto yy1269; goto yy87; -yy1233: +yy1239: yych = *++cursor_; - if (yych == '2') goto yy1265; + if (yych == '2') goto yy1271; goto yy87; -yy1234: +yy1240: yych = *++cursor_; - if (yych == '4') goto yy1267; + if (yych == '4') goto yy1273; goto yy87; -yy1235: +yy1241: yych = *++cursor_; - if (yych == 'i') goto yy1269; + if (yych == 'i') goto yy1275; goto yy87; -yy1236: +yy1242: yych = *++cursor_; - if (yych == 'f') goto yy1270; + if (yych == 'f') goto yy1276; goto yy87; -yy1237: +yy1243: yych = *++cursor_; - if (yych == 'f') goto yy1271; + if (yych == 'f') goto yy1277; goto yy87; -yy1238: +yy1244: yych = *++cursor_; - if (yych == 'f') goto yy1272; + if (yych == 'f') goto yy1278; goto yy87; -yy1239: +yy1245: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 408 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64ExtendSI32); } -#line 6889 "src/prebuilt/wast-lexer-gen.cc" -yy1241: +#line 6918 "src/prebuilt/wast-lexer-gen.cc" +yy1247: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 409 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64ExtendUI32); } -#line 6897 "src/prebuilt/wast-lexer-gen.cc" -yy1243: +#line 6926 "src/prebuilt/wast-lexer-gen.cc" +yy1249: yych = *++cursor_; - if (yych == 'f') goto yy1273; + if (yych == 'f') goto yy1279; goto yy87; -yy1244: +yy1250: yych = *++cursor_; - if (yych == 'f') goto yy1274; + if (yych == 'f') goto yy1280; goto yy87; -yy1245: +yy1251: yych = *++cursor_; - if (yych == 'f') goto yy1275; + if (yych == 'f') goto yy1281; goto yy87; -yy1246: +yy1252: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 473 "src/wast-lexer.cc" { RETURN(AssertExhaustion); } -#line 6917 "src/prebuilt/wast-lexer-gen.cc" -yy1248: +#line 6946 "src/prebuilt/wast-lexer-gen.cc" +yy1254: yych = *++cursor_; - if (yych == 't') goto yy1276; + if (yych == 't') goto yy1282; goto yy87; -yy1249: +yy1255: yych = *++cursor_; - if (yych == 'o') goto yy1277; + if (yych == 'o') goto yy1283; goto yy87; -yy1250: +yy1256: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 468 "src/wast-lexer.cc" { RETURN(AssertUnlinkable); } -#line 6933 "src/prebuilt/wast-lexer-gen.cc" -yy1252: +#line 6962 "src/prebuilt/wast-lexer-gen.cc" +yy1258: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 427 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertSI32); } -#line 6941 "src/prebuilt/wast-lexer-gen.cc" -yy1254: +#line 6970 "src/prebuilt/wast-lexer-gen.cc" +yy1260: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 429 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertSI64); } -#line 6949 "src/prebuilt/wast-lexer-gen.cc" -yy1256: +#line 6978 "src/prebuilt/wast-lexer-gen.cc" +yy1262: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 431 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertUI32); } -#line 6957 "src/prebuilt/wast-lexer-gen.cc" -yy1258: +#line 6986 "src/prebuilt/wast-lexer-gen.cc" +yy1264: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 433 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ConvertUI64); } -#line 6965 "src/prebuilt/wast-lexer-gen.cc" -yy1260: +#line 6994 "src/prebuilt/wast-lexer-gen.cc" +yy1266: yych = *++cursor_; - if (yych == '3') goto yy1278; + if (yych == '3') goto yy1284; goto yy87; -yy1261: +yy1267: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 428 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertSI32); } -#line 6977 "src/prebuilt/wast-lexer-gen.cc" -yy1263: +#line 7006 "src/prebuilt/wast-lexer-gen.cc" +yy1269: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 430 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertSI64); } -#line 6985 "src/prebuilt/wast-lexer-gen.cc" -yy1265: +#line 7014 "src/prebuilt/wast-lexer-gen.cc" +yy1271: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 432 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertUI32); } -#line 6993 "src/prebuilt/wast-lexer-gen.cc" -yy1267: +#line 7022 "src/prebuilt/wast-lexer-gen.cc" +yy1273: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 434 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ConvertUI64); } -#line 7001 "src/prebuilt/wast-lexer-gen.cc" -yy1269: - yych = *++cursor_; - if (yych == '6') goto yy1279; - goto yy87; -yy1270: - yych = *++cursor_; - if (yych == '3') goto yy1280; - goto yy87; -yy1271: - yych = *++cursor_; - if (yych == '3') goto yy1281; - if (yych == '6') goto yy1282; - goto yy87; -yy1272: - yych = *++cursor_; - if (yych == '3') goto yy1283; - if (yych == '6') goto yy1284; - goto yy87; -yy1273: - yych = *++cursor_; - if (yych == '6') goto yy1285; - goto yy87; -yy1274: - yych = *++cursor_; - if (yych == '3') goto yy1286; - if (yych == '6') goto yy1287; - goto yy87; +#line 7030 "src/prebuilt/wast-lexer-gen.cc" yy1275: yych = *++cursor_; - if (yych == '3') goto yy1288; - if (yych == '6') goto yy1289; + if (yych == '6') goto yy1285; goto yy87; yy1276: yych = *++cursor_; - if (yych == 'h') goto yy1290; + if (yych == '3') goto yy1286; goto yy87; yy1277: yych = *++cursor_; - if (yych == 'n') goto yy1291; + if (yych == '3') goto yy1287; + if (yych == '6') goto yy1288; goto yy87; yy1278: yych = *++cursor_; - if (yych == '2') goto yy1292; + if (yych == '3') goto yy1289; + if (yych == '6') goto yy1290; goto yy87; yy1279: yych = *++cursor_; - if (yych == '4') goto yy1294; + if (yych == '6') goto yy1291; goto yy87; yy1280: yych = *++cursor_; - if (yych == '2') goto yy1296; + if (yych == '3') goto yy1292; + if (yych == '6') goto yy1293; goto yy87; yy1281: yych = *++cursor_; - if (yych == '2') goto yy1298; + if (yych == '3') goto yy1294; + if (yych == '6') goto yy1295; goto yy87; yy1282: yych = *++cursor_; - if (yych == '4') goto yy1300; + if (yych == 'h') goto yy1296; goto yy87; yy1283: yych = *++cursor_; - if (yych == '2') goto yy1302; + if (yych == 'n') goto yy1297; goto yy87; yy1284: yych = *++cursor_; - if (yych == '4') goto yy1304; + if (yych == '2') goto yy1298; goto yy87; yy1285: yych = *++cursor_; - if (yych == '4') goto yy1306; + if (yych == '4') goto yy1300; goto yy87; yy1286: yych = *++cursor_; - if (yych == '2') goto yy1308; + if (yych == '2') goto yy1302; goto yy87; yy1287: yych = *++cursor_; - if (yych == '4') goto yy1310; + if (yych == '2') goto yy1304; goto yy87; yy1288: yych = *++cursor_; - if (yych == '2') goto yy1312; + if (yych == '4') goto yy1306; goto yy87; yy1289: yych = *++cursor_; - if (yych == '4') goto yy1314; + if (yych == '2') goto yy1308; goto yy87; yy1290: yych = *++cursor_; - if (yych == 'm') goto yy1316; + if (yych == '4') goto yy1310; goto yy87; yy1291: yych = *++cursor_; - if (yych == 'i') goto yy1317; + if (yych == '4') goto yy1312; goto yy87; yy1292: + yych = *++cursor_; + if (yych == '2') goto yy1314; + goto yy87; +yy1293: + yych = *++cursor_; + if (yych == '4') goto yy1316; + goto yy87; +yy1294: + yych = *++cursor_; + if (yych == '2') goto yy1318; + goto yy87; +yy1295: + yych = *++cursor_; + if (yych == '4') goto yy1320; + goto yy87; +yy1296: + yych = *++cursor_; + if (yych == 'm') goto yy1322; + goto yy87; +yy1297: + yych = *++cursor_; + if (yych == 'i') goto yy1323; + goto yy87; +yy1298: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 437 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F32ReinterpretI32); } -#line 7105 "src/prebuilt/wast-lexer-gen.cc" -yy1294: +#line 7134 "src/prebuilt/wast-lexer-gen.cc" +yy1300: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 439 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, F64ReinterpretI64); } -#line 7113 "src/prebuilt/wast-lexer-gen.cc" -yy1296: +#line 7142 "src/prebuilt/wast-lexer-gen.cc" +yy1302: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 438 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32ReinterpretF32); } -#line 7121 "src/prebuilt/wast-lexer-gen.cc" -yy1298: +#line 7150 "src/prebuilt/wast-lexer-gen.cc" +yy1304: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 419 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSSatF32); } -#line 7129 "src/prebuilt/wast-lexer-gen.cc" -yy1300: +#line 7158 "src/prebuilt/wast-lexer-gen.cc" +yy1306: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 421 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncSSatF64); } -#line 7137 "src/prebuilt/wast-lexer-gen.cc" -yy1302: +#line 7166 "src/prebuilt/wast-lexer-gen.cc" +yy1308: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 423 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUSatF32); } -#line 7145 "src/prebuilt/wast-lexer-gen.cc" -yy1304: +#line 7174 "src/prebuilt/wast-lexer-gen.cc" +yy1310: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 425 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I32TruncUSatF64); } -#line 7153 "src/prebuilt/wast-lexer-gen.cc" -yy1306: +#line 7182 "src/prebuilt/wast-lexer-gen.cc" +yy1312: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 440 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64ReinterpretF64); } -#line 7161 "src/prebuilt/wast-lexer-gen.cc" -yy1308: +#line 7190 "src/prebuilt/wast-lexer-gen.cc" +yy1314: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 420 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSSatF32); } -#line 7169 "src/prebuilt/wast-lexer-gen.cc" -yy1310: +#line 7198 "src/prebuilt/wast-lexer-gen.cc" +yy1316: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 422 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncSSatF64); } -#line 7177 "src/prebuilt/wast-lexer-gen.cc" -yy1312: +#line 7206 "src/prebuilt/wast-lexer-gen.cc" +yy1318: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 424 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUSatF32); } -#line 7185 "src/prebuilt/wast-lexer-gen.cc" -yy1314: +#line 7214 "src/prebuilt/wast-lexer-gen.cc" +yy1320: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 426 "src/wast-lexer.cc" { RETURN_OPCODE(Convert, I64TruncUSatF64); } -#line 7193 "src/prebuilt/wast-lexer-gen.cc" -yy1316: +#line 7222 "src/prebuilt/wast-lexer-gen.cc" +yy1322: yych = *++cursor_; - if (yych == 'e') goto yy1318; + if (yych == 'e') goto yy1324; goto yy87; -yy1317: +yy1323: yych = *++cursor_; - if (yych == 'c') goto yy1319; + if (yych == 'c') goto yy1325; goto yy87; -yy1318: +yy1324: yych = *++cursor_; - if (yych == 't') goto yy1320; + if (yych == 't') goto yy1326; goto yy87; -yy1319: +yy1325: yych = *++cursor_; - if (yych == 'a') goto yy1321; + if (yych == 'a') goto yy1327; goto yy87; -yy1320: +yy1326: yych = *++cursor_; - if (yych == 'i') goto yy1322; + if (yych == 'i') goto yy1328; goto yy87; -yy1321: +yy1327: yych = *++cursor_; - if (yych == 'l') goto yy1323; + if (yych == 'l') goto yy1329; goto yy87; -yy1322: +yy1328: yych = *++cursor_; - if (yych == 'c') goto yy1324; + if (yych == 'c') goto yy1330; goto yy87; -yy1323: +yy1329: yych = *++cursor_; - if (yych == '_') goto yy1325; + if (yych == '_') goto yy1331; goto yy87; -yy1324: +yy1330: yych = *++cursor_; - if (yych == '_') goto yy1326; + if (yych == '_') goto yy1332; goto yy87; -yy1325: +yy1331: yych = *++cursor_; - if (yych == 'n') goto yy1327; + if (yych == 'n') goto yy1333; goto yy87; -yy1326: +yy1332: yych = *++cursor_; - if (yych == 'n') goto yy1328; + if (yych == 'n') goto yy1334; goto yy87; -yy1327: +yy1333: yych = *++cursor_; - if (yych == 'a') goto yy1329; + if (yych == 'a') goto yy1335; goto yy87; -yy1328: +yy1334: yych = *++cursor_; - if (yych == 'a') goto yy1330; + if (yych == 'a') goto yy1336; goto yy87; -yy1329: +yy1335: yych = *++cursor_; - if (yych == 'n') goto yy1331; + if (yych == 'n') goto yy1337; goto yy87; -yy1330: +yy1336: yych = *++cursor_; - if (yych == 'n') goto yy1333; + if (yych == 'n') goto yy1339; goto yy87; -yy1331: +yy1337: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 470 "src/wast-lexer.cc" { RETURN(AssertReturnCanonicalNan); } -#line 7261 "src/prebuilt/wast-lexer-gen.cc" -yy1333: +#line 7290 "src/prebuilt/wast-lexer-gen.cc" +yy1339: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 471 "src/wast-lexer.cc" { RETURN(AssertReturnArithmeticNan); } -#line 7269 "src/prebuilt/wast-lexer-gen.cc" +#line 7298 "src/prebuilt/wast-lexer-gen.cc" } } -#line 497 "src/wast-lexer.cc" +#line 498 "src/wast-lexer.cc" } } diff --git a/src/token.cc b/src/token.cc index 71fb047d..267bd283 100644 --- a/src/token.cc +++ b/src/token.cc @@ -53,6 +53,7 @@ const char* GetTokenTypeName(TokenType token_type) { "register", "result", ")", + "shared", "start", "table", "then", diff --git a/src/token.h b/src/token.h index 9475284b..8ead1075 100644 --- a/src/token.h +++ b/src/token.h @@ -66,6 +66,7 @@ enum class TokenType { Register, Result, Rpar, + Shared, Start, Table, Then, diff --git a/src/validator.cc b/src/validator.cc index 4602466a..5683199a 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -117,10 +117,9 @@ class Validator { Type expected_type, const char* desc); void CheckGlobal(const Location* loc, const Global* global); - void CheckLimits(const Location* loc, - const Limits* limits, - uint64_t absolute_max, - const char* desc); + void CheckLimits(const Location* loc, const Limits* limits, + uint64_t absolute_max, const char* desc, + LimitsShareable sharing); void CheckTable(const Location* loc, const Table* table); void CheckElemSegments(const Module* module); void CheckMemory(const Location* loc, const Memory* memory); @@ -693,10 +692,9 @@ void Validator::CheckGlobal(const Location* loc, const Global* global) { "global initializer expression"); } -void Validator::CheckLimits(const Location* loc, - const Limits* limits, - uint64_t absolute_max, - const char* desc) { +void Validator::CheckLimits(const Location* loc, const Limits* limits, + uint64_t absolute_max, const char* desc, + LimitsShareable sharing) { if (limits->initial > absolute_max) { PrintError(loc, "initial %s (%" PRIu64 ") must be <= (%" PRIu64 ")", desc, limits->initial, absolute_max); @@ -714,12 +712,22 @@ void Validator::CheckLimits(const Location* loc, desc, limits->max, desc, limits->initial); } } + if (limits->is_shared) { + if (sharing == LimitsShareable::NotAllowed) { + PrintError(loc, "tables may not be shared"); + return; + } + if (!limits->has_max) { + PrintError(loc, "shared memories must have max sizes"); + } + } } void Validator::CheckTable(const Location* loc, const Table* table) { if (current_table_index_ == 1) PrintError(loc, "only one table allowed"); - CheckLimits(loc, &table->elem_limits, UINT32_MAX, "elems"); + CheckLimits(loc, &table->elem_limits, UINT32_MAX, "elems", + LimitsShareable::NotAllowed); } void Validator::CheckElemSegments(const Module* module) { @@ -743,7 +751,8 @@ void Validator::CheckElemSegments(const Module* module) { void Validator::CheckMemory(const Location* loc, const Memory* memory) { if (current_memory_index_ == 1) PrintError(loc, "only one memory block allowed"); - CheckLimits(loc, &memory->page_limits, WABT_MAX_PAGES, "pages"); + CheckLimits(loc, &memory->page_limits, WABT_MAX_PAGES, "pages", + LimitsShareable::Allowed); } void Validator::CheckDataSegments(const Module* module) { diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc index 9aa4f113..cb0a5a2e 100644 --- a/src/wast-lexer.cc +++ b/src/wast-lexer.cc @@ -477,6 +477,7 @@ Token WastLexer::GetToken(WastParser* parser) { <i> "throw" { RETURN_OPCODE0(Throw); } <i> "rethrow" { RETURN_OPCODE0(Rethrow); } <i> name { RETURN_TEXT(Var); } + <i> "shared" { RETURN(Shared); } <i> ";;" => LINE_COMMENT { continue; } <LINE_COMMENT> "\n" => i { NEWLINE; continue; } diff --git a/src/wast-parser.cc b/src/wast-parser.cc index 82074da9..5748e812 100644 --- a/src/wast-parser.cc +++ b/src/wast-parser.cc @@ -608,14 +608,22 @@ bool WastParser::ParseAlignOpt(uint32_t* out_align) { Result WastParser::ParseLimits(Limits* out_limits) { WABT_TRACE(ParseLimits); - CHECK_RESULT(ParseNat(&out_limits->initial)); + if (PeekMatch(TokenType::Lpar)) { + Consume(); + EXPECT(Shared); + out_limits->is_shared = true; + } + CHECK_RESULT(ParseNat(&out_limits->initial)); if (PeekMatch(TokenType::Nat)) { CHECK_RESULT(ParseNat(&out_limits->max)); out_limits->has_max = true; } else { out_limits->has_max = false; } + if (out_limits->is_shared) { + EXPECT(Rpar); + } return Result::Ok; } diff --git a/src/wat-writer.cc b/src/wat-writer.cc index 6bdb611e..7ce9811e 100644 --- a/src/wat-writer.cc +++ b/src/wat-writer.cc @@ -1024,9 +1024,15 @@ void WatWriter::WriteException(const Exception& except) { } void WatWriter::WriteLimits(const Limits& limits) { + if (limits.is_shared) { + WriteOpenSpace("shared"); + } Writef("%" PRIu64, limits.initial); if (limits.has_max) Writef("%" PRIu64, limits.max); + if (limits.is_shared) { + WriteCloseSpace(); + } } void WatWriter::WriteTable(const Table& table) { |