summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h1310
1 files changed, 659 insertions, 651 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index f50d16b8..dc7e64c6 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15137] = { 15static const unsigned char build_actionlist[15151] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -406,343 +406,344 @@ static const unsigned char build_actionlist[15137] = {
406 232,137,76,36,20,252,233,244,4,248,139,255,139,106,252,248,139,173,233,15, 406 232,137,76,36,20,252,233,244,4,248,139,255,139,106,252,248,139,173,233,15,
407 182,133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141, 407 182,133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,
408 139,233,137,171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,140, 408 139,233,137,171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,140,
409 255,199,131,233,0,0,0,0,252,233,244,247,255,248,141,255,137,171,233,248,1,
409 255,141,68,194,252,248,139,108,36,48,137,149,233,137,133,233,137,252,242, 410 255,141,68,194,252,248,139,108,36,48,137,149,233,137,133,233,137,252,242,
410 141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,133,233, 411 137,252,233,137,116,36,24,232,251,1,22,199,68,36,24,0,0,0,0,139,149,233,137,
411 41,208,193,232,3,131,192,1,139,106,252,248,139,181,233,139,14,15,182,252, 412 193,139,133,233,41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,
412 233,15,182,205,131,198,4,252,255,36,171,255,248,141,255,85,141,108,36,12, 413 255,229,248,142,255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,
413 85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,137,117, 414 101,252,248,137,125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,
414 252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,129, 415 233,237,137,131,233,137,139,233,129,252,236,239,252,247,131,233,237,15,132,
415 252,236,239,252,247,131,233,237,15,132,244,247,252,242,15,17,125,216,252, 416 244,247,252,242,15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,
416 242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,15, 417 252,242,15,17,101,192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,
417 17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160, 418 17,77,168,252,242,15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,
418 248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84,36,16,141,139, 419 137,149,233,141,84,36,16,141,139,233,232,251,1,23,137,196,139,149,233,139,
419 233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108,36,48,255,248, 420 116,36,24,137,108,36,48,255,248,143,255,139,122,252,248,139,191,233,139,191,
420 142,255,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131, 421 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,
421 233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 422 4,193,232,16,252,255,36,171,255,248,82,255,217,124,36,4,137,68,36,8,102,184,
422 248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252, 423 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,
423 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68, 424 252,252,217,108,36,4,139,68,36,8,195,255,248,144,102,15,252,239,210,102,15,
424 36,8,195,255,248,143,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
425 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,
426 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
427 15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,
428 194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,
429 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,
430 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,
431 248,144,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,
432 102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,
433 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
434 184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,194,193,6,
435 102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,
436 4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,
437 252,252,217,108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,
438 118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15, 425 118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,
439 40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193, 426 40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,
440 252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,15,110,216,102, 427 88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,
441 15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15, 428 102,15,112,210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,
442 86,202,15,40,193,248,1,195,248,146,255,15,40,232,252,242,15,94,193,102,15, 429 40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,
443 252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216, 430 36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,
444 102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102, 431 108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,
445 15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,0,0,252,240, 432 15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,
446 63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102,15,84,194,252, 433 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,
447 242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252, 434 242,15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,
448 242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217, 435 210,81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,
449 124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36, 436 1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,
450 6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88, 437 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,
451 217,252,234,222,201,248,147,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244, 438 146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
452 247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,148,217,192,217,252,252, 439 15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,
453 220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1, 440 244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,
454 195,248,2,221,216,217,252,238,195,255,248,107,219,84,36,4,219,68,36,4,255, 441 0,252,240,63,102,15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,
455 223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,244,255, 442 84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,147,255,15,
456 221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133, 443 40,232,252,242,15,94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,
457 244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,217,192, 444 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,
458 248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248, 445 102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,
459 4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252, 446 227,102,15,86,226,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,
460 241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217, 447 242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,
461 232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,61,0,0, 448 204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,
462 0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,0,252, 449 193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,
463 255,15,132,244,250,217,252,241,252,233,244,148,248,9,255,217,232,255,223, 450 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
464 252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,221, 451 222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,148,217,84,36,
465 216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,252, 452 4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15,
466 238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,248, 453 132,244,248,248,149,217,192,217,252,252,220,252,233,217,201,217,252,240,217,
467 3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,133, 454 232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,
468 192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,68,36, 455 248,107,219,84,36,4,219,68,36,4,255,223,252,233,255,221,252,233,223,224,158,
469 4,195,255,248,107,255,248,149,252,242,15,45,193,252,242,15,42,208,102,15, 456 255,15,133,244,254,15,138,244,255,221,216,139,68,36,4,131,252,248,1,15,142,
470 46,202,15,133,244,254,15,138,244,255,248,150,131,252,248,1,15,142,244,252, 457 244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233,244,1,248,
471 248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1, 458 2,209,232,15,132,244,251,217,192,248,3,216,200,209,232,15,132,244,250,15,
472 248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15, 459 131,244,3,220,201,252,233,244,3,248,4,255,222,201,248,5,195,248,6,15,132,
473 132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242, 460 244,5,15,130,244,253,217,232,222,252,241,252,247,216,131,252,248,1,15,132,
474 15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252,240, 461 244,5,252,233,244,1,248,7,221,216,217,232,195,248,8,217,84,36,4,217,201,217,
475 63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252,247, 462 84,36,8,139,68,36,4,209,224,61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,
476 216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63,102, 463 224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,217,252,241,252,233,244,
477 15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242,15, 464 149,248,9,255,217,232,255,223,252,234,255,221,252,234,223,224,158,255,15,
478 17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0,224, 465 132,244,247,217,201,248,1,221,216,195,248,2,217,225,217,232,255,15,132,244,
479 252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68,36, 466 249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,
480 8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68,36, 467 15,137,244,249,217,201,248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,
481 12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217,252, 468 141,244,3,221,216,221,216,133,192,15,132,244,251,217,252,238,195,248,5,199,
482 240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68,36,4, 469 68,36,4,0,0,128,127,217,68,36,4,195,255,248,107,255,248,150,252,242,15,45,
483 195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,46,194, 470 193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,151,
484 15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15,118,210, 471 131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,
485 102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208,102,15,112, 472 89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,
486 210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146, 473 252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,
487 208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192,102,15,112, 474 252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,
488 192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87,192,195,248, 475 244,253,80,184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,
489 5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,151,255,139,68,36, 476 94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,
490 12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244,248,232, 477 248,7,184,0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,
491 244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,248,2,131,252,248, 478 15,17,76,36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,
492 3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,244,253,248,1,252, 479 36,16,209,224,61,0,0,224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,
493 242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221,68,36, 480 15,133,244,247,139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,
494 4,131,252,248,5,15,130,244,88,15,132,244,147,248,2,131,252,248,7,15,132,244, 481 244,251,248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,
495 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217, 482 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,
496 201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,255, 483 4,252,242,15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,
497 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248, 484 112,210,81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,
498 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216, 485 252,239,210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,
499 195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,82,15,132,244,84, 486 63,102,15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,
500 131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252, 487 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,
501 248,5,15,130,244,88,15,132,244,147,131,252,248,7,15,132,244,247,15,135,244, 488 127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,
502 248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241, 489 244,3,255,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,
503 195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,236,217, 490 195,248,152,255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,
504 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244, 491 247,15,135,244,248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,
505 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248, 492 253,248,2,131,252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,
506 9,204,248,152,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16,76,36, 493 233,244,253,248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,
507 12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248,7,252, 494 4,195,248,2,221,68,36,4,131,252,248,5,15,130,244,88,15,132,244,148,248,2,
508 242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244,7,248, 495 131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,
509 2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252,233,244, 496 195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,
510 7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132,244,247, 497 247,15,135,244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,
511 255,15,135,244,248,232,244,146,252,233,244,7,248,1,90,232,244,107,82,252, 498 254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,
512 233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0,0,0,128, 499 248,1,217,252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,
513 102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102,15,252, 500 15,130,244,82,15,132,244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,
514 239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248,2,255, 501 252,250,195,248,2,131,252,248,5,15,130,244,88,15,132,244,148,131,252,248,
515 131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247,217, 502 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,
516 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15, 503 217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,
517 132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242, 504 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
518 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36, 505 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
519 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252, 506 252,242,221,216,195,255,248,9,204,248,153,255,139,68,36,20,252,242,15,16,
520 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248, 507 68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,
521 1,222,252,249,195,248,2,131,252,248,5,15,130,244,146,15,132,244,107,131,252, 508 252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,
522 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216, 509 15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
523 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243, 510 252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,
524 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244, 511 2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244,147,252,233,244,
525 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233, 512 7,248,1,90,232,244,107,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,
526 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217, 513 15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,
527 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248, 514 233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,
528 217,201,248,2,221,216,195,255,248,153,156,90,137,209,129,252,242,0,0,32,0, 515 193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,
529 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124, 516 68,36,12,15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,
530 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129,124, 517 195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,
531 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 518 252,233,244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,
532 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255, 519 36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,
533 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 520 222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,
534 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15, 521 244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,
535 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4, 522 147,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,
536 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244, 523 217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,
537 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15, 524 15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,
538 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15, 525 2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,
539 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, 526 217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,
540 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 527 196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,
541 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 528 246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,154,156,90,137,
542 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 529 209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,
543 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131, 530 36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,
544 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198, 531 1,195,255,249,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,
545 4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46, 532 15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,
546 4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139, 533 202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,
547 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247, 534 255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,
548 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253, 535 253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
549 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 536 36,171,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,
550 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 537 253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,
551 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 538 221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,
552 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 539 15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,
553 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,48,255,252, 540 248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,
554 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193, 541 15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,
555 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 542 132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,
556 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 543 2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,
557 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 544 233,244,45,255,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,
558 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239, 545 139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,
559 15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 546 252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,
560 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1, 547 131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,
561 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46, 548 131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,
562 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199, 549 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,
563 255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242, 550 198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,
564 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 551 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
565 15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252, 552 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,
566 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252, 553 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,
567 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4, 554 239,15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,
568 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16, 555 15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,
569 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15, 556 202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,
570 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242, 557 242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,
571 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252, 558 202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
572 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 559 2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,
573 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199, 560 252,242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182,
574 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252, 561 78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,
575 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220, 562 234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,
576 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234, 563 221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,
577 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199, 564 242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,
578 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 565 124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,
579 252,234,221,4,194,255,248,154,232,244,146,255,252,233,244,154,255,232,244, 566 252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,
580 107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36, 567 252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,
581 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,23,139, 568 255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,
582 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68, 569 234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,
583 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 570 36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,
584 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68, 571 220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,
585 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 572 220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,
586 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70, 573 252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,
587 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4, 574 4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,
588 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131, 575 221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,
589 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137, 576 255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,
590 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15, 577 199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,
591 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253, 578 252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,
592 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 579 16,12,194,255,221,4,252,234,221,4,194,255,248,155,232,244,147,255,252,233,
593 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139, 580 244,155,255,232,244,107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,
594 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77, 581 76,36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,
595 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6, 582 24,232,251,1,24,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,
596 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239, 583 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,
597 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141, 584 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,
598 139,233,255,232,251,1,24,137,252,234,252,233,244,1,255,252,247,208,139,106, 585 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,
599 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252, 586 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,
600 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 587 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
601 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189, 588 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,
602 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234,252, 589 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,
603 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 590 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
604 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252, 591 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,
605 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 592 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,
606 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 593 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
607 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 594 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,
608 25,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 595 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,
609 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 596 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
610 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,26,139,149, 597 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,
611 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 598 235,15,132,244,1,135,213,141,139,233,255,232,251,1,25,137,252,234,252,233,
612 232,131,198,4,193,232,16,252,255,36,171,255,137,197,37,252,255,7,0,0,193, 599 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,
613 252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137,108,36,8,139,108,36, 600 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,
614 48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59,131,233,137,149,233, 601 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,
615 15,131,244,251,248,1,232,251,1,27,139,149,233,15,182,78,252,253,137,4,202, 602 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,
616 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 603 232,251,1,25,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,
617 36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,28,252, 604 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
618 233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139, 605 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,
619 233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,29, 606 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,
620 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204, 607 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,
621 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251, 608 20,202,137,252,233,232,251,1,26,139,149,233,248,1,139,6,15,182,204,15,182,
622 1,28,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106, 609 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,
623 252,248,139,173,233,139,4,135,252,233,244,155,255,252,247,208,139,106,252, 610 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,
624 248,139,173,233,139,4,135,252,233,244,156,255,15,182,252,236,15,182,192,129, 611 36,24,232,251,1,27,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
625 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239, 612 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137,197,
626 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200, 613 37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137,
627 102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,36,59,133,233, 614 108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59,
628 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, 615 131,233,137,149,233,15,131,244,251,248,1,232,251,1,28,139,149,233,15,182,
629 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198, 616 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,
630 4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233, 617 4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,
631 252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255, 618 233,232,251,1,29,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,
632 129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,155,255,15,182, 619 137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,
633 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 620 252,233,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,
634 244,34,139,44,252,234,248,155,139,141,233,35,136,233,105,201,239,3,141,233, 621 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,
635 248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253, 622 137,252,233,232,251,1,29,15,183,70,252,254,252,247,208,252,233,244,2,255,
636 4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255, 623 252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,156,255,252,
637 137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 624 247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,15,182,
638 171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201, 625 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,
639 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15, 626 129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,
640 133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234, 627 192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,
641 4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133, 628 15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,
642 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, 629 239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,
643 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 630 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,
644 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244, 631 0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,
645 35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39, 632 253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,
646 139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59, 633 252,233,244,156,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
647 133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249, 634 253,252,234,4,239,15,133,244,34,139,44,252,234,248,156,139,141,233,35,136,
648 248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137, 635 233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,
649 104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 636 15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,
650 248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132, 637 139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,
651 244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133, 638 198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,244,
652 244,39,139,4,194,252,233,244,156,248,7,128,165,233,235,139,139,233,137,171, 639 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,
653 233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182, 640 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,
654 192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44, 641 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,
655 252,234,248,156,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233, 642 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,
656 248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253, 643 1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,
657 4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15, 644 198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,
658 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15, 645 233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,
659 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244, 646 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,
660 2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,16, 647 244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,
661 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133, 648 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,
662 201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,16,199, 649 2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,
663 68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68, 650 198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,
664 36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,139,108, 651 233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,
665 36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233, 652 248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,157,248,7,
666 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234, 653 128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,
667 4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133, 654 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,
668 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 655 252,234,4,239,15,133,244,37,139,44,252,234,248,157,139,141,233,35,136,233,
669 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 656 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,
670 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1, 657 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,
671 255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233, 658 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,
672 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78, 659 4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
673 252,253,252,233,244,2,255,137,124,36,16,255,221,4,199,219,92,36,12,255,248, 660 255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,
674 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139, 661 246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,233,
675 68,36,20,255,252,242,15,45,252,248,255,139,124,36,12,255,131,232,1,15,132, 662 133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,
676 244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,233, 663 235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,
677 248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15, 664 36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,
678 133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232, 665 36,24,232,251,1,31,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,
679 16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68,36, 666 128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
680 8,137,44,36,137,116,36,24,232,251,1,31,139,149,233,15,182,78,252,253,252, 667 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,
681 233,244,1,248,7,128,165,233,235,139,131,233,137,171,233,255,137,133,233,252, 668 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,
682 233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44,202,15,133,244, 669 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
683 51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182, 670 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
684 205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139,105,252,248,129, 671 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
685 121,253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237, 672 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
686 15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15,132,244,249, 673 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
687 248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,15, 674 36,16,255,221,4,199,219,92,36,12,255,248,1,141,12,202,139,105,252,248,252,
688 133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1,15,135,244,251, 675 246,133,233,235,15,133,244,253,248,2,139,68,36,20,255,252,242,15,45,252,248,
689 248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171, 676 255,139,124,36,12,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,
690 248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,252,247,209,141, 677 244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,
691 12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139, 678 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,
692 244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255, 679 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,
693 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139, 680 36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,
694 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137, 681 1,32,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
695 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252, 682 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,20,255,129,
696 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255, 683 124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,
697 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124, 684 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,
698 36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108, 685 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,
699 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252, 686 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
700 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130, 687 68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,
701 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124, 688 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,
702 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 689 20,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,
703 5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252, 690 182,205,131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,
704 237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253, 691 182,78,252,253,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,
705 248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57, 692 233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,
706 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24, 693 114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,
707 41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139, 694 41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,
708 141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68, 695 139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,
709 36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132, 696 244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,
710 244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131, 697 131,198,4,252,255,36,171,255,15,182,252,236,139,66,252,248,141,12,202,139,
711 199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5, 698 128,233,15,182,128,233,137,124,36,16,141,188,253,194,233,43,122,252,252,133,
712 57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106, 699 252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,
713 252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,252, 700 1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,
714 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204, 701 233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,
715 15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237, 702 233,15,130,244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,
716 131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15, 703 4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,
717 139,244,14,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,209,252, 704 15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,
718 237,129,229,239,102,131,172,253,43,233,1,15,132,244,139,255,141,12,202,255, 705 48,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,
719 129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139, 706 252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,
720 105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16, 707 137,149,233,137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,
721 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255, 708 252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,
722 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221, 709 3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,
723 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24, 710 248,13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,
724 15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248, 711 108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,
725 141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245, 712 20,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,
726 255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244, 713 252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,
727 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252, 714 255,15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,
728 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137, 715 139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
729 105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108, 716 248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,
730 36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15, 717 192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,
731 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,190,233,139, 718 252,241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,
732 108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134, 719 15,132,244,139,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,
733 244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252, 720 253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,
734 252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141, 721 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,
735 4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12, 722 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
736 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15, 723 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
737 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56, 724 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
738 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133, 725 15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,
739 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232, 726 134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,
740 16,252,255,36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244, 727 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
741 3,252,233,244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194, 728 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
742 252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255, 729 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,
743 137,124,36,4,137,44,36,255,15,135,244,21,199,131,233,237,255,252,255,215, 730 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,
744 255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217, 731 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
745 3,141,233,139,114,252,252,252,233,244,12,255,254,0 732 252,255,36,171,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,
733 244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,
734 233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,
735 233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,
736 120,252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,
737 194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,
738 244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,
739 252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,
740 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,
741 131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139,
742 189,233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,
743 137,133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,21,199,
744 131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,
745 233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,
746 0
746}; 747};
747 748
748enum { 749enum {
@@ -876,6 +877,7 @@ enum {
876 GLOB_vm_hook, 877 GLOB_vm_hook,
877 GLOB_cont_hook, 878 GLOB_cont_hook,
878 GLOB_vm_hotloop, 879 GLOB_vm_hotloop,
880 GLOB_vm_callhook,
879 GLOB_vm_hotcall, 881 GLOB_vm_hotcall,
880 GLOB_vm_exit_handler, 882 GLOB_vm_exit_handler,
881 GLOB_vm_exit_interp, 883 GLOB_vm_exit_interp,
@@ -1026,6 +1028,7 @@ static const char *const globnames[] = {
1026 "vm_hook", 1028 "vm_hook",
1027 "cont_hook", 1029 "cont_hook",
1028 "vm_hotloop", 1030 "vm_hotloop",
1031 "vm_callhook",
1029 "vm_hotcall", 1032 "vm_hotcall",
1030 "vm_exit_handler", 1033 "vm_exit_handler",
1031 "vm_exit_interp", 1034 "vm_exit_interp",
@@ -1068,6 +1071,7 @@ static const char *const extnames[] = {
1068 "lj_gc_step@4", 1071 "lj_gc_step@4",
1069 "lj_dispatch_ins@8", 1072 "lj_dispatch_ins@8",
1070 "lj_trace_hot@8", 1073 "lj_trace_hot@8",
1074 "lj_dispatch_call@8",
1071 "lj_trace_exit@8", 1075 "lj_trace_exit@8",
1072 "lj_meta_cat", 1076 "lj_meta_cat",
1073 "lj_gc_barrieruv@8", 1077 "lj_gc_barrieruv@8",
@@ -1434,95 +1438,99 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1434#endif 1438#endif
1435 dasm_put(Dst, 8141); 1439 dasm_put(Dst, 8141);
1436#if LJ_HASJIT 1440#if LJ_HASJIT
1437 dasm_put(Dst, 8144, Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L), Dt1(->base), Dt1(->top), Dt7(->pc)); 1441 dasm_put(Dst, 8144, DISPATCH_J(L));
1438#endif 1442#endif
1439 dasm_put(Dst, 8214); 1443 dasm_put(Dst, 8156);
1440#if LJ_HASJIT 1444#if LJ_HASJIT
1441 dasm_put(Dst, 8217, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); 1445 dasm_put(Dst, 8159, DISPATCH_J(L));
1442#endif 1446#endif
1443 dasm_put(Dst, 8360); 1447 dasm_put(Dst, 8165, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1444#if LJ_HASJIT 1448#if LJ_HASJIT
1445 dasm_put(Dst, 8363, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1449 dasm_put(Dst, 8231, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base));
1446#endif 1450#endif
1447 dasm_put(Dst, 8403); 1451 dasm_put(Dst, 8374);
1452#if LJ_HASJIT
1453 dasm_put(Dst, 8377, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1454#endif
1455 dasm_put(Dst, 8417);
1448 if (!sse) { 1456 if (!sse) {
1449 dasm_put(Dst, 8406); 1457 dasm_put(Dst, 8420);
1450 } 1458 }
1451 dasm_put(Dst, 8451); 1459 dasm_put(Dst, 8465);
1452 if (!sse) { 1460 if (!sse) {
1453 dasm_put(Dst, 8553); 1461 dasm_put(Dst, 8567);
1454 } 1462 }
1455 dasm_put(Dst, 8598); 1463 dasm_put(Dst, 8612);
1456 if (!sse) { 1464 if (!sse) {
1457 dasm_put(Dst, 8700); 1465 dasm_put(Dst, 8714);
1458 } 1466 }
1459 dasm_put(Dst, 8739); 1467 dasm_put(Dst, 8753);
1460 if (sse) { 1468 if (sse) {
1461 dasm_put(Dst, 8844); 1469 dasm_put(Dst, 8858);
1462 } else { 1470 } else {
1463 dasm_put(Dst, 8974); 1471 dasm_put(Dst, 8988);
1464 } 1472 }
1465 dasm_put(Dst, 9021); 1473 dasm_put(Dst, 9035);
1466 if (!sse) { 1474 if (!sse) {
1467 dasm_put(Dst, 9095); 1475 dasm_put(Dst, 9109);
1468 if (cmov) { 1476 if (cmov) {
1469 dasm_put(Dst, 9106); 1477 dasm_put(Dst, 9120);
1470 } else { 1478 } else {
1471 dasm_put(Dst, 9110); 1479 dasm_put(Dst, 9124);
1472 } 1480 }
1473 dasm_put(Dst, 9117); 1481 dasm_put(Dst, 9131);
1474 dasm_put(Dst, 9191); 1482 dasm_put(Dst, 9205);
1475 dasm_put(Dst, 9291); 1483 dasm_put(Dst, 9305);
1476 if (cmov) { 1484 if (cmov) {
1477 dasm_put(Dst, 9294); 1485 dasm_put(Dst, 9308);
1478 } else { 1486 } else {
1479 dasm_put(Dst, 9298); 1487 dasm_put(Dst, 9312);
1480 } 1488 }
1481 dasm_put(Dst, 9305); 1489 dasm_put(Dst, 9319);
1482 if (cmov) { 1490 if (cmov) {
1483 dasm_put(Dst, 9106); 1491 dasm_put(Dst, 9120);
1484 } else { 1492 } else {
1485 dasm_put(Dst, 9110); 1493 dasm_put(Dst, 9124);
1486 } 1494 }
1487 dasm_put(Dst, 9323); 1495 dasm_put(Dst, 9337);
1488 } else { 1496 } else {
1489 dasm_put(Dst, 9402); 1497 dasm_put(Dst, 9416);
1490 } 1498 }
1491 dasm_put(Dst, 9405); 1499 dasm_put(Dst, 9419);
1492 dasm_put(Dst, 9490); 1500 dasm_put(Dst, 9504);
1493 dasm_put(Dst, 9621); 1501 dasm_put(Dst, 9635);
1494 dasm_put(Dst, 9820); 1502 dasm_put(Dst, 9834);
1495 if (sse) { 1503 if (sse) {
1496 dasm_put(Dst, 9843); 1504 dasm_put(Dst, 9857);
1497 dasm_put(Dst, 9900); 1505 dasm_put(Dst, 9914);
1498 dasm_put(Dst, 9991); 1506 dasm_put(Dst, 10005);
1499 } else { 1507 } else {
1500 dasm_put(Dst, 10033); 1508 dasm_put(Dst, 10047);
1501 dasm_put(Dst, 10125); 1509 dasm_put(Dst, 10139);
1502 } 1510 }
1503 dasm_put(Dst, 10171); 1511 dasm_put(Dst, 10185);
1504 if (sse) { 1512 if (sse) {
1505 dasm_put(Dst, 10177); 1513 dasm_put(Dst, 10191);
1506 dasm_put(Dst, 10282); 1514 dasm_put(Dst, 10296);
1507 dasm_put(Dst, 10365); 1515 dasm_put(Dst, 10379);
1508 } else { 1516 } else {
1509 dasm_put(Dst, 10437); 1517 dasm_put(Dst, 10451);
1510 dasm_put(Dst, 10520); 1518 dasm_put(Dst, 10534);
1511 if (cmov) { 1519 if (cmov) {
1512 dasm_put(Dst, 10575); 1520 dasm_put(Dst, 10589);
1513 } else { 1521 } else {
1514 dasm_put(Dst, 10594); 1522 dasm_put(Dst, 10608);
1515 } 1523 }
1516 dasm_put(Dst, 10433); 1524 dasm_put(Dst, 10447);
1517 } 1525 }
1518 dasm_put(Dst, 10635); 1526 dasm_put(Dst, 10649);
1519} 1527}
1520 1528
1521/* Generate the code for a single instruction. */ 1529/* Generate the code for a single instruction. */
1522static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1530static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1523{ 1531{
1524 int vk = 0; 1532 int vk = 0;
1525 dasm_put(Dst, 10689, defop); 1533 dasm_put(Dst, 10703, defop);
1526 1534
1527 switch (op) { 1535 switch (op) {
1528 1536
@@ -1531,617 +1539,617 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1531 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1539 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1532 1540
1533 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1541 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1534 dasm_put(Dst, 10691, LJ_TISNUM, LJ_TISNUM); 1542 dasm_put(Dst, 10705, LJ_TISNUM, LJ_TISNUM);
1535 if (sse) { 1543 if (sse) {
1536 dasm_put(Dst, 10712); 1544 dasm_put(Dst, 10726);
1537 } else { 1545 } else {
1538 dasm_put(Dst, 10727); 1546 dasm_put(Dst, 10741);
1539 if (cmov) { 1547 if (cmov) {
1540 dasm_put(Dst, 10737); 1548 dasm_put(Dst, 10751);
1541 } else { 1549 } else {
1542 dasm_put(Dst, 10743); 1550 dasm_put(Dst, 10757);
1543 } 1551 }
1544 } 1552 }
1545 switch (op) { 1553 switch (op) {
1546 case BC_ISLT: 1554 case BC_ISLT:
1547 dasm_put(Dst, 10750); 1555 dasm_put(Dst, 10764);
1548 break; 1556 break;
1549 case BC_ISGE: 1557 case BC_ISGE:
1550 dasm_put(Dst, 9986); 1558 dasm_put(Dst, 10000);
1551 break; 1559 break;
1552 case BC_ISLE: 1560 case BC_ISLE:
1553 dasm_put(Dst, 6179); 1561 dasm_put(Dst, 6179);
1554 break; 1562 break;
1555 case BC_ISGT: 1563 case BC_ISGT:
1556 dasm_put(Dst, 10755); 1564 dasm_put(Dst, 10769);
1557 break; 1565 break;
1558 default: break; /* Shut up GCC. */ 1566 default: break; /* Shut up GCC. */
1559 } 1567 }
1560 dasm_put(Dst, 10760, -BCBIAS_J*4); 1568 dasm_put(Dst, 10774, -BCBIAS_J*4);
1561 break; 1569 break;
1562 1570
1563 case BC_ISEQV: case BC_ISNEV: 1571 case BC_ISEQV: case BC_ISNEV:
1564 vk = op == BC_ISEQV; 1572 vk = op == BC_ISEQV;
1565 dasm_put(Dst, 10793, LJ_TISNUM, LJ_TISNUM); 1573 dasm_put(Dst, 10807, LJ_TISNUM, LJ_TISNUM);
1566 if (sse) { 1574 if (sse) {
1567 dasm_put(Dst, 10819); 1575 dasm_put(Dst, 10833);
1568 } else { 1576 } else {
1569 dasm_put(Dst, 10831); 1577 dasm_put(Dst, 10845);
1570 if (cmov) { 1578 if (cmov) {
1571 dasm_put(Dst, 10737); 1579 dasm_put(Dst, 10751);
1572 } else { 1580 } else {
1573 dasm_put(Dst, 10743); 1581 dasm_put(Dst, 10757);
1574 } 1582 }
1575 } 1583 }
1576 iseqne_fp: 1584 iseqne_fp:
1577 if (vk) { 1585 if (vk) {
1578 dasm_put(Dst, 10838); 1586 dasm_put(Dst, 10852);
1579 } else { 1587 } else {
1580 dasm_put(Dst, 10847); 1588 dasm_put(Dst, 10861);
1581 } 1589 }
1582 iseqne_end: 1590 iseqne_end:
1583 if (vk) { 1591 if (vk) {
1584 dasm_put(Dst, 10856, -BCBIAS_J*4); 1592 dasm_put(Dst, 10870, -BCBIAS_J*4);
1585 } else { 1593 } else {
1586 dasm_put(Dst, 10871, -BCBIAS_J*4); 1594 dasm_put(Dst, 10885, -BCBIAS_J*4);
1587 } 1595 }
1588 dasm_put(Dst, 8384); 1596 dasm_put(Dst, 8398);
1589 if (op == BC_ISEQV || op == BC_ISNEV) { 1597 if (op == BC_ISEQV || op == BC_ISNEV) {
1590 dasm_put(Dst, 10886, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1598 dasm_put(Dst, 10900, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1591 if (vk) { 1599 if (vk) {
1592 dasm_put(Dst, 10944); 1600 dasm_put(Dst, 10958);
1593 } else { 1601 } else {
1594 dasm_put(Dst, 10948); 1602 dasm_put(Dst, 10962);
1595 } 1603 }
1596 dasm_put(Dst, 10954); 1604 dasm_put(Dst, 10968);
1597 } 1605 }
1598 break; 1606 break;
1599 case BC_ISEQS: case BC_ISNES: 1607 case BC_ISEQS: case BC_ISNES:
1600 vk = op == BC_ISEQS; 1608 vk = op == BC_ISEQS;
1601 dasm_put(Dst, 10959, LJ_TSTR); 1609 dasm_put(Dst, 10973, LJ_TSTR);
1602 iseqne_test: 1610 iseqne_test:
1603 if (vk) { 1611 if (vk) {
1604 dasm_put(Dst, 10842); 1612 dasm_put(Dst, 10856);
1605 } else { 1613 } else {
1606 dasm_put(Dst, 2809); 1614 dasm_put(Dst, 2809);
1607 } 1615 }
1608 goto iseqne_end; 1616 goto iseqne_end;
1609 case BC_ISEQN: case BC_ISNEN: 1617 case BC_ISEQN: case BC_ISNEN:
1610 vk = op == BC_ISEQN; 1618 vk = op == BC_ISEQN;
1611 dasm_put(Dst, 10982, LJ_TISNUM); 1619 dasm_put(Dst, 10996, LJ_TISNUM);
1612 if (sse) { 1620 if (sse) {
1613 dasm_put(Dst, 10996); 1621 dasm_put(Dst, 11010);
1614 } else { 1622 } else {
1615 dasm_put(Dst, 11008); 1623 dasm_put(Dst, 11022);
1616 if (cmov) { 1624 if (cmov) {
1617 dasm_put(Dst, 10737); 1625 dasm_put(Dst, 10751);
1618 } else { 1626 } else {
1619 dasm_put(Dst, 10743); 1627 dasm_put(Dst, 10757);
1620 } 1628 }
1621 } 1629 }
1622 goto iseqne_fp; 1630 goto iseqne_fp;
1623 case BC_ISEQP: case BC_ISNEP: 1631 case BC_ISEQP: case BC_ISNEP:
1624 vk = op == BC_ISEQP; 1632 vk = op == BC_ISEQP;
1625 dasm_put(Dst, 11015); 1633 dasm_put(Dst, 11029);
1626 goto iseqne_test; 1634 goto iseqne_test;
1627 1635
1628 /* -- Unary test and copy ops ------------------------------------------- */ 1636 /* -- Unary test and copy ops ------------------------------------------- */
1629 1637
1630 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1638 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1631 dasm_put(Dst, 11026, LJ_TISTRUECOND); 1639 dasm_put(Dst, 11040, LJ_TISTRUECOND);
1632 if (op == BC_IST || op == BC_ISTC) { 1640 if (op == BC_IST || op == BC_ISTC) {
1633 dasm_put(Dst, 11038); 1641 dasm_put(Dst, 11052);
1634 } else { 1642 } else {
1635 dasm_put(Dst, 11043); 1643 dasm_put(Dst, 11057);
1636 } 1644 }
1637 if (op == BC_ISTC || op == BC_ISFC) { 1645 if (op == BC_ISTC || op == BC_ISFC) {
1638 dasm_put(Dst, 11048); 1646 dasm_put(Dst, 11062);
1639 } 1647 }
1640 dasm_put(Dst, 11059, -BCBIAS_J*4); 1648 dasm_put(Dst, 11073, -BCBIAS_J*4);
1641 break; 1649 break;
1642 1650
1643 /* -- Unary ops --------------------------------------------------------- */ 1651 /* -- Unary ops --------------------------------------------------------- */
1644 1652
1645 case BC_MOV: 1653 case BC_MOV:
1646 dasm_put(Dst, 11090); 1654 dasm_put(Dst, 11104);
1647 break; 1655 break;
1648 case BC_NOT: 1656 case BC_NOT:
1649 dasm_put(Dst, 11123, LJ_TISTRUECOND, LJ_TTRUE); 1657 dasm_put(Dst, 11137, LJ_TISTRUECOND, LJ_TTRUE);
1650 break; 1658 break;
1651 case BC_UNM: 1659 case BC_UNM:
1652 dasm_put(Dst, 11158, LJ_TISNUM); 1660 dasm_put(Dst, 11172, LJ_TISNUM);
1653 if (sse) { 1661 if (sse) {
1654 dasm_put(Dst, 11169); 1662 dasm_put(Dst, 11183);
1655 } else { 1663 } else {
1656 dasm_put(Dst, 11199); 1664 dasm_put(Dst, 11213);
1657 } 1665 }
1658 dasm_put(Dst, 8384); 1666 dasm_put(Dst, 8398);
1659 break; 1667 break;
1660 case BC_LEN: 1668 case BC_LEN:
1661 dasm_put(Dst, 11208, LJ_TSTR); 1669 dasm_put(Dst, 11222, LJ_TSTR);
1662 if (sse) { 1670 if (sse) {
1663 dasm_put(Dst, 11222, Dt5(->len)); 1671 dasm_put(Dst, 11236, Dt5(->len));
1664 } else { 1672 } else {
1665 dasm_put(Dst, 11240, Dt5(->len)); 1673 dasm_put(Dst, 11254, Dt5(->len));
1666 } 1674 }
1667 dasm_put(Dst, 11249, LJ_TTAB); 1675 dasm_put(Dst, 11263, LJ_TTAB);
1668 if (sse) { 1676 if (sse) {
1669 dasm_put(Dst, 11289); 1677 dasm_put(Dst, 11303);
1670 } else { 1678 } else {
1671 dasm_put(Dst, 11298); 1679 dasm_put(Dst, 11312);
1672 } 1680 }
1673 dasm_put(Dst, 11308); 1681 dasm_put(Dst, 11322);
1674 break; 1682 break;
1675 1683
1676 /* -- Binary ops -------------------------------------------------------- */ 1684 /* -- Binary ops -------------------------------------------------------- */
1677 1685
1678 1686
1679 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1687 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1680 dasm_put(Dst, 11318); 1688 dasm_put(Dst, 11332);
1681 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1689 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1682 switch (vk) { 1690 switch (vk) {
1683 case 0: 1691 case 0:
1684 dasm_put(Dst, 11326, LJ_TISNUM); 1692 dasm_put(Dst, 11340, LJ_TISNUM);
1685 if (sse) { 1693 if (sse) {
1686 dasm_put(Dst, 11338);
1687 } else {
1688 dasm_put(Dst, 11352); 1694 dasm_put(Dst, 11352);
1695 } else {
1696 dasm_put(Dst, 11366);
1689 } 1697 }
1690 break; 1698 break;
1691 case 1: 1699 case 1:
1692 dasm_put(Dst, 11360, LJ_TISNUM); 1700 dasm_put(Dst, 11374, LJ_TISNUM);
1693 if (sse) { 1701 if (sse) {
1694 dasm_put(Dst, 11372);
1695 } else {
1696 dasm_put(Dst, 11386); 1702 dasm_put(Dst, 11386);
1703 } else {
1704 dasm_put(Dst, 11400);
1697 } 1705 }
1698 break; 1706 break;
1699 default: 1707 default:
1700 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1708 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1701 if (sse) { 1709 if (sse) {
1702 dasm_put(Dst, 11416);
1703 } else {
1704 dasm_put(Dst, 11430); 1710 dasm_put(Dst, 11430);
1711 } else {
1712 dasm_put(Dst, 11444);
1705 } 1713 }
1706 break; 1714 break;
1707 } 1715 }
1708 if (sse) { 1716 if (sse) {
1709 dasm_put(Dst, 11192); 1717 dasm_put(Dst, 11206);
1710 } else { 1718 } else {
1711 dasm_put(Dst, 11204); 1719 dasm_put(Dst, 11218);
1712 } 1720 }
1713 dasm_put(Dst, 8384); 1721 dasm_put(Dst, 8398);
1714 break; 1722 break;
1715 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1723 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1716 dasm_put(Dst, 11318); 1724 dasm_put(Dst, 11332);
1717 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1725 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1718 switch (vk) { 1726 switch (vk) {
1719 case 0: 1727 case 0:
1720 dasm_put(Dst, 11326, LJ_TISNUM); 1728 dasm_put(Dst, 11340, LJ_TISNUM);
1721 if (sse) { 1729 if (sse) {
1722 dasm_put(Dst, 11438);
1723 } else {
1724 dasm_put(Dst, 11452); 1730 dasm_put(Dst, 11452);
1731 } else {
1732 dasm_put(Dst, 11466);
1725 } 1733 }
1726 break; 1734 break;
1727 case 1: 1735 case 1:
1728 dasm_put(Dst, 11360, LJ_TISNUM); 1736 dasm_put(Dst, 11374, LJ_TISNUM);
1729 if (sse) { 1737 if (sse) {
1730 dasm_put(Dst, 11460);
1731 } else {
1732 dasm_put(Dst, 11474); 1738 dasm_put(Dst, 11474);
1739 } else {
1740 dasm_put(Dst, 11488);
1733 } 1741 }
1734 break; 1742 break;
1735 default: 1743 default:
1736 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1744 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1737 if (sse) { 1745 if (sse) {
1738 dasm_put(Dst, 11482);
1739 } else {
1740 dasm_put(Dst, 11496); 1746 dasm_put(Dst, 11496);
1747 } else {
1748 dasm_put(Dst, 11510);
1741 } 1749 }
1742 break; 1750 break;
1743 } 1751 }
1744 if (sse) { 1752 if (sse) {
1745 dasm_put(Dst, 11192); 1753 dasm_put(Dst, 11206);
1746 } else { 1754 } else {
1747 dasm_put(Dst, 11204); 1755 dasm_put(Dst, 11218);
1748 } 1756 }
1749 dasm_put(Dst, 8384); 1757 dasm_put(Dst, 8398);
1750 break; 1758 break;
1751 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1759 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1752 dasm_put(Dst, 11318); 1760 dasm_put(Dst, 11332);
1753 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1761 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1754 switch (vk) { 1762 switch (vk) {
1755 case 0: 1763 case 0:
1756 dasm_put(Dst, 11326, LJ_TISNUM); 1764 dasm_put(Dst, 11340, LJ_TISNUM);
1757 if (sse) { 1765 if (sse) {
1758 dasm_put(Dst, 11504);
1759 } else {
1760 dasm_put(Dst, 11518); 1766 dasm_put(Dst, 11518);
1767 } else {
1768 dasm_put(Dst, 11532);
1761 } 1769 }
1762 break; 1770 break;
1763 case 1: 1771 case 1:
1764 dasm_put(Dst, 11360, LJ_TISNUM); 1772 dasm_put(Dst, 11374, LJ_TISNUM);
1765 if (sse) { 1773 if (sse) {
1766 dasm_put(Dst, 11526);
1767 } else {
1768 dasm_put(Dst, 11540); 1774 dasm_put(Dst, 11540);
1775 } else {
1776 dasm_put(Dst, 11554);
1769 } 1777 }
1770 break; 1778 break;
1771 default: 1779 default:
1772 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1780 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1773 if (sse) { 1781 if (sse) {
1774 dasm_put(Dst, 11548);
1775 } else {
1776 dasm_put(Dst, 11562); 1782 dasm_put(Dst, 11562);
1783 } else {
1784 dasm_put(Dst, 11576);
1777 } 1785 }
1778 break; 1786 break;
1779 } 1787 }
1780 if (sse) { 1788 if (sse) {
1781 dasm_put(Dst, 11192); 1789 dasm_put(Dst, 11206);
1782 } else { 1790 } else {
1783 dasm_put(Dst, 11204); 1791 dasm_put(Dst, 11218);
1784 } 1792 }
1785 dasm_put(Dst, 8384); 1793 dasm_put(Dst, 8398);
1786 break; 1794 break;
1787 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1795 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1788 dasm_put(Dst, 11318); 1796 dasm_put(Dst, 11332);
1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1797 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1790 switch (vk) { 1798 switch (vk) {
1791 case 0: 1799 case 0:
1792 dasm_put(Dst, 11326, LJ_TISNUM); 1800 dasm_put(Dst, 11340, LJ_TISNUM);
1793 if (sse) { 1801 if (sse) {
1794 dasm_put(Dst, 11570);
1795 } else {
1796 dasm_put(Dst, 11584); 1802 dasm_put(Dst, 11584);
1803 } else {
1804 dasm_put(Dst, 11598);
1797 } 1805 }
1798 break; 1806 break;
1799 case 1: 1807 case 1:
1800 dasm_put(Dst, 11360, LJ_TISNUM); 1808 dasm_put(Dst, 11374, LJ_TISNUM);
1801 if (sse) { 1809 if (sse) {
1802 dasm_put(Dst, 11592);
1803 } else {
1804 dasm_put(Dst, 11606); 1810 dasm_put(Dst, 11606);
1811 } else {
1812 dasm_put(Dst, 11620);
1805 } 1813 }
1806 break; 1814 break;
1807 default: 1815 default:
1808 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1816 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1809 if (sse) { 1817 if (sse) {
1810 dasm_put(Dst, 11614);
1811 } else {
1812 dasm_put(Dst, 11628); 1818 dasm_put(Dst, 11628);
1819 } else {
1820 dasm_put(Dst, 11642);
1813 } 1821 }
1814 break; 1822 break;
1815 } 1823 }
1816 if (sse) { 1824 if (sse) {
1817 dasm_put(Dst, 11192); 1825 dasm_put(Dst, 11206);
1818 } else { 1826 } else {
1819 dasm_put(Dst, 11204); 1827 dasm_put(Dst, 11218);
1820 } 1828 }
1821 dasm_put(Dst, 8384); 1829 dasm_put(Dst, 8398);
1822 break; 1830 break;
1823 case BC_MODVN: 1831 case BC_MODVN:
1824 dasm_put(Dst, 11318); 1832 dasm_put(Dst, 11332);
1825 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1833 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1826 switch (vk) { 1834 switch (vk) {
1827 case 0: 1835 case 0:
1828 dasm_put(Dst, 11326, LJ_TISNUM); 1836 dasm_put(Dst, 11340, LJ_TISNUM);
1829 if (sse) { 1837 if (sse) {
1830 dasm_put(Dst, 11636);
1831 } else {
1832 dasm_put(Dst, 11650); 1838 dasm_put(Dst, 11650);
1839 } else {
1840 dasm_put(Dst, 11664);
1833 } 1841 }
1834 break; 1842 break;
1835 case 1: 1843 case 1:
1836 dasm_put(Dst, 11360, LJ_TISNUM); 1844 dasm_put(Dst, 11374, LJ_TISNUM);
1837 if (sse) { 1845 if (sse) {
1838 dasm_put(Dst, 11658);
1839 } else {
1840 dasm_put(Dst, 11672); 1846 dasm_put(Dst, 11672);
1847 } else {
1848 dasm_put(Dst, 11686);
1841 } 1849 }
1842 break; 1850 break;
1843 default: 1851 default:
1844 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1852 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1845 if (sse) { 1853 if (sse) {
1846 dasm_put(Dst, 11680);
1847 } else {
1848 dasm_put(Dst, 11694); 1854 dasm_put(Dst, 11694);
1855 } else {
1856 dasm_put(Dst, 11708);
1849 } 1857 }
1850 break; 1858 break;
1851 } 1859 }
1852 dasm_put(Dst, 11702); 1860 dasm_put(Dst, 11716);
1853 if (sse) { 1861 if (sse) {
1854 dasm_put(Dst, 11192); 1862 dasm_put(Dst, 11206);
1855 } else { 1863 } else {
1856 dasm_put(Dst, 11204); 1864 dasm_put(Dst, 11218);
1857 } 1865 }
1858 dasm_put(Dst, 8384); 1866 dasm_put(Dst, 8398);
1859 break; 1867 break;
1860 case BC_MODNV: case BC_MODVV: 1868 case BC_MODNV: case BC_MODVV:
1861 dasm_put(Dst, 11318); 1869 dasm_put(Dst, 11332);
1862 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1870 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1863 switch (vk) { 1871 switch (vk) {
1864 case 0: 1872 case 0:
1865 dasm_put(Dst, 11326, LJ_TISNUM); 1873 dasm_put(Dst, 11340, LJ_TISNUM);
1866 if (sse) { 1874 if (sse) {
1867 dasm_put(Dst, 11636);
1868 } else {
1869 dasm_put(Dst, 11650); 1875 dasm_put(Dst, 11650);
1876 } else {
1877 dasm_put(Dst, 11664);
1870 } 1878 }
1871 break; 1879 break;
1872 case 1: 1880 case 1:
1873 dasm_put(Dst, 11360, LJ_TISNUM); 1881 dasm_put(Dst, 11374, LJ_TISNUM);
1874 if (sse) { 1882 if (sse) {
1875 dasm_put(Dst, 11658);
1876 } else {
1877 dasm_put(Dst, 11672); 1883 dasm_put(Dst, 11672);
1884 } else {
1885 dasm_put(Dst, 11686);
1878 } 1886 }
1879 break; 1887 break;
1880 default: 1888 default:
1881 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1889 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1882 if (sse) { 1890 if (sse) {
1883 dasm_put(Dst, 11680);
1884 } else {
1885 dasm_put(Dst, 11694); 1891 dasm_put(Dst, 11694);
1892 } else {
1893 dasm_put(Dst, 11708);
1886 } 1894 }
1887 break; 1895 break;
1888 } 1896 }
1889 dasm_put(Dst, 11708); 1897 dasm_put(Dst, 11722);
1890 break; 1898 break;
1891 case BC_POW: 1899 case BC_POW:
1892 dasm_put(Dst, 11318); 1900 dasm_put(Dst, 11332);
1893 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1901 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1894 switch (vk) { 1902 switch (vk) {
1895 case 0: 1903 case 0:
1896 dasm_put(Dst, 11326, LJ_TISNUM); 1904 dasm_put(Dst, 11340, LJ_TISNUM);
1897 if (sse) { 1905 if (sse) {
1898 dasm_put(Dst, 11636);
1899 } else {
1900 dasm_put(Dst, 11650); 1906 dasm_put(Dst, 11650);
1907 } else {
1908 dasm_put(Dst, 11664);
1901 } 1909 }
1902 break; 1910 break;
1903 case 1: 1911 case 1:
1904 dasm_put(Dst, 11360, LJ_TISNUM); 1912 dasm_put(Dst, 11374, LJ_TISNUM);
1905 if (sse) { 1913 if (sse) {
1906 dasm_put(Dst, 11658);
1907 } else {
1908 dasm_put(Dst, 11672); 1914 dasm_put(Dst, 11672);
1915 } else {
1916 dasm_put(Dst, 11686);
1909 } 1917 }
1910 break; 1918 break;
1911 default: 1919 default:
1912 dasm_put(Dst, 11394, LJ_TISNUM, LJ_TISNUM); 1920 dasm_put(Dst, 11408, LJ_TISNUM, LJ_TISNUM);
1913 if (sse) { 1921 if (sse) {
1914 dasm_put(Dst, 11680);
1915 } else {
1916 dasm_put(Dst, 11694); 1922 dasm_put(Dst, 11694);
1923 } else {
1924 dasm_put(Dst, 11708);
1917 } 1925 }
1918 break; 1926 break;
1919 } 1927 }
1920 dasm_put(Dst, 11713); 1928 dasm_put(Dst, 11727);
1921 if (sse) { 1929 if (sse) {
1922 dasm_put(Dst, 11192); 1930 dasm_put(Dst, 11206);
1923 } else { 1931 } else {
1924 dasm_put(Dst, 11204); 1932 dasm_put(Dst, 11218);
1925 } 1933 }
1926 dasm_put(Dst, 8384); 1934 dasm_put(Dst, 8398);
1927 break; 1935 break;
1928 1936
1929 case BC_CAT: 1937 case BC_CAT:
1930 dasm_put(Dst, 11717, Dt1(->base), Dt1(->base)); 1938 dasm_put(Dst, 11731, Dt1(->base), Dt1(->base));
1931 break; 1939 break;
1932 1940
1933 /* -- Constant ops ------------------------------------------------------ */ 1941 /* -- Constant ops ------------------------------------------------------ */
1934 1942
1935 case BC_KSTR: 1943 case BC_KSTR:
1936 dasm_put(Dst, 11811, LJ_TSTR); 1944 dasm_put(Dst, 11825, LJ_TSTR);
1937 break; 1945 break;
1938 case BC_KSHORT: 1946 case BC_KSHORT:
1939 if (sse) { 1947 if (sse) {
1940 dasm_put(Dst, 11844); 1948 dasm_put(Dst, 11858);
1941 } else { 1949 } else {
1942 dasm_put(Dst, 11859); 1950 dasm_put(Dst, 11873);
1943 } 1951 }
1944 dasm_put(Dst, 8384); 1952 dasm_put(Dst, 8398);
1945 break; 1953 break;
1946 case BC_KNUM: 1954 case BC_KNUM:
1947 if (sse) { 1955 if (sse) {
1948 dasm_put(Dst, 11867); 1956 dasm_put(Dst, 11881);
1949 } else { 1957 } else {
1950 dasm_put(Dst, 11880); 1958 dasm_put(Dst, 11894);
1951 } 1959 }
1952 dasm_put(Dst, 8384); 1960 dasm_put(Dst, 8398);
1953 break; 1961 break;
1954 case BC_KPRI: 1962 case BC_KPRI:
1955 dasm_put(Dst, 11887); 1963 dasm_put(Dst, 11901);
1956 break; 1964 break;
1957 case BC_KNIL: 1965 case BC_KNIL:
1958 dasm_put(Dst, 11913, LJ_TNIL); 1966 dasm_put(Dst, 11927, LJ_TNIL);
1959 break; 1967 break;
1960 1968
1961 /* -- Upvalue and function ops ------------------------------------------ */ 1969 /* -- Upvalue and function ops ------------------------------------------ */
1962 1970
1963 case BC_UGET: 1971 case BC_UGET:
1964 dasm_put(Dst, 11959, offsetof(GCfuncL, uvptr), DtA(->v)); 1972 dasm_put(Dst, 11973, offsetof(GCfuncL, uvptr), DtA(->v));
1965 break; 1973 break;
1966 case BC_USETV: 1974 case BC_USETV:
1967#define TV2MARKOFS \ 1975#define TV2MARKOFS \
1968 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1976 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1969 dasm_put(Dst, 12003, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1977 dasm_put(Dst, 12017, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1970 dasm_put(Dst, 12093); 1978 dasm_put(Dst, 12107);
1971 break; 1979 break;
1972#undef TV2MARKOFS 1980#undef TV2MARKOFS
1973 case BC_USETS: 1981 case BC_USETS:
1974 dasm_put(Dst, 12105, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1982 dasm_put(Dst, 12119, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1975 break; 1983 break;
1976 case BC_USETN: 1984 case BC_USETN:
1977 dasm_put(Dst, 12196); 1985 dasm_put(Dst, 12210);
1978 if (sse) { 1986 if (sse) {
1979 dasm_put(Dst, 12201); 1987 dasm_put(Dst, 12215);
1980 } else { 1988 } else {
1981 dasm_put(Dst, 11011); 1989 dasm_put(Dst, 11025);
1982 } 1990 }
1983 dasm_put(Dst, 12208, offsetof(GCfuncL, uvptr), DtA(->v)); 1991 dasm_put(Dst, 12222, offsetof(GCfuncL, uvptr), DtA(->v));
1984 if (sse) { 1992 if (sse) {
1985 dasm_put(Dst, 12217); 1993 dasm_put(Dst, 12231);
1986 } else { 1994 } else {
1987 dasm_put(Dst, 12223); 1995 dasm_put(Dst, 12237);
1988 } 1996 }
1989 dasm_put(Dst, 8384); 1997 dasm_put(Dst, 8398);
1990 break; 1998 break;
1991 case BC_USETP: 1999 case BC_USETP:
1992 dasm_put(Dst, 12226, offsetof(GCfuncL, uvptr), DtA(->v)); 2000 dasm_put(Dst, 12240, offsetof(GCfuncL, uvptr), DtA(->v));
1993 break; 2001 break;
1994 case BC_UCLO: 2002 case BC_UCLO:
1995 dasm_put(Dst, 12263, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2003 dasm_put(Dst, 12277, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1996 break; 2004 break;
1997 2005
1998 case BC_FNEW: 2006 case BC_FNEW:
1999 dasm_put(Dst, 12317, Dt1(->base), Dt1(->base), LJ_TFUNC); 2007 dasm_put(Dst, 12331, Dt1(->base), Dt1(->base), LJ_TFUNC);
2000 break; 2008 break;
2001 2009
2002 /* -- Table ops --------------------------------------------------------- */ 2010 /* -- Table ops --------------------------------------------------------- */
2003 2011
2004 case BC_TNEW: 2012 case BC_TNEW:
2005 dasm_put(Dst, 12388, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2013 dasm_put(Dst, 12402, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2006 break; 2014 break;
2007 case BC_TDUP: 2015 case BC_TDUP:
2008 dasm_put(Dst, 12509, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2016 dasm_put(Dst, 12523, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2009 break; 2017 break;
2010 2018
2011 case BC_GGET: 2019 case BC_GGET:
2012 dasm_put(Dst, 12601, Dt7(->env)); 2020 dasm_put(Dst, 12615, Dt7(->env));
2013 break; 2021 break;
2014 case BC_GSET: 2022 case BC_GSET:
2015 dasm_put(Dst, 12619, Dt7(->env)); 2023 dasm_put(Dst, 12633, Dt7(->env));
2016 break; 2024 break;
2017 2025
2018 case BC_TGETV: 2026 case BC_TGETV:
2019 dasm_put(Dst, 12637, LJ_TTAB, LJ_TISNUM); 2027 dasm_put(Dst, 12651, LJ_TTAB, LJ_TISNUM);
2020 if (sse) { 2028 if (sse) {
2021 dasm_put(Dst, 12670); 2029 dasm_put(Dst, 12684);
2022 } else { 2030 } else {
2023 dasm_put(Dst, 12691); 2031 dasm_put(Dst, 12705);
2024 if (cmov) { 2032 if (cmov) {
2025 dasm_put(Dst, 10737); 2033 dasm_put(Dst, 10751);
2026 } else { 2034 } else {
2027 dasm_put(Dst, 10743); 2035 dasm_put(Dst, 10757);
2028 } 2036 }
2029 dasm_put(Dst, 2522); 2037 dasm_put(Dst, 2522);
2030 } 2038 }
2031 dasm_put(Dst, 12701, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2039 dasm_put(Dst, 12715, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2032 dasm_put(Dst, 12793, LJ_TSTR); 2040 dasm_put(Dst, 12807, LJ_TSTR);
2033 break; 2041 break;
2034 case BC_TGETS: 2042 case BC_TGETS:
2035 dasm_put(Dst, 12811, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2043 dasm_put(Dst, 12825, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2036 dasm_put(Dst, 12895, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2044 dasm_put(Dst, 12909, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2037 break; 2045 break;
2038 case BC_TGETB: 2046 case BC_TGETB:
2039 dasm_put(Dst, 12966, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2047 dasm_put(Dst, 12980, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2040 dasm_put(Dst, 11308); 2048 dasm_put(Dst, 11322);
2041 break; 2049 break;
2042 2050
2043 case BC_TSETV: 2051 case BC_TSETV:
2044 dasm_put(Dst, 13065, LJ_TTAB, LJ_TISNUM); 2052 dasm_put(Dst, 13079, LJ_TTAB, LJ_TISNUM);
2045 if (sse) { 2053 if (sse) {
2046 dasm_put(Dst, 12670); 2054 dasm_put(Dst, 12684);
2047 } else { 2055 } else {
2048 dasm_put(Dst, 12691); 2056 dasm_put(Dst, 12705);
2049 if (cmov) { 2057 if (cmov) {
2050 dasm_put(Dst, 10737); 2058 dasm_put(Dst, 10751);
2051 } else { 2059 } else {
2052 dasm_put(Dst, 10743); 2060 dasm_put(Dst, 10757);
2053 } 2061 }
2054 dasm_put(Dst, 2522); 2062 dasm_put(Dst, 2522);
2055 } 2063 }
2056 dasm_put(Dst, 13098, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2064 dasm_put(Dst, 13112, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2057 dasm_put(Dst, 13181, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2065 dasm_put(Dst, 13195, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2058 break; 2066 break;
2059 case BC_TSETS: 2067 case BC_TSETS:
2060 dasm_put(Dst, 13243, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2068 dasm_put(Dst, 13257, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2061 dasm_put(Dst, 13318, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2069 dasm_put(Dst, 13332, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2062 dasm_put(Dst, 13410, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2070 dasm_put(Dst, 13424, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2063 break; 2071 break;
2064 case BC_TSETB: 2072 case BC_TSETB:
2065 dasm_put(Dst, 13506, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2073 dasm_put(Dst, 13520, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2066 dasm_put(Dst, 13604, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2074 dasm_put(Dst, 13618, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2067 break; 2075 break;
2068 2076
2069 case BC_TSETM: 2077 case BC_TSETM:
2070 dasm_put(Dst, 13650); 2078 dasm_put(Dst, 13664);
2071 if (sse) { 2079 if (sse) {
2072 dasm_put(Dst, 12201); 2080 dasm_put(Dst, 12215);
2073 } else { 2081 } else {
2074 dasm_put(Dst, 13655); 2082 dasm_put(Dst, 13669);
2075 } 2083 }
2076 dasm_put(Dst, 13663, Dt6(->marked), LJ_GC_BLACK); 2084 dasm_put(Dst, 13677, Dt6(->marked), LJ_GC_BLACK);
2077 if (sse) { 2085 if (sse) {
2078 dasm_put(Dst, 13688); 2086 dasm_put(Dst, 13702);
2079 } else { 2087 } else {
2080 dasm_put(Dst, 13695); 2088 dasm_put(Dst, 13709);
2081 } 2089 }
2082 dasm_put(Dst, 13700, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2090 dasm_put(Dst, 13714, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2083 dasm_put(Dst, 13828, Dt6(->gclist)); 2091 dasm_put(Dst, 13842, Dt6(->gclist));
2084 break; 2092 break;
2085 2093
2086 /* -- Calls and vararg handling ----------------------------------------- */ 2094 /* -- Calls and vararg handling ----------------------------------------- */
2087 2095
2088 case BC_CALL: case BC_CALLM: 2096 case BC_CALL: case BC_CALLM:
2089 dasm_put(Dst, 11322); 2097 dasm_put(Dst, 11336);
2090 if (op == BC_CALLM) { 2098 if (op == BC_CALLM) {
2091 dasm_put(Dst, 13836); 2099 dasm_put(Dst, 13850);
2092 } 2100 }
2093 dasm_put(Dst, 13841, LJ_TFUNC, Dt7(->pc)); 2101 dasm_put(Dst, 13855, LJ_TFUNC, Dt7(->pc));
2094 break; 2102 break;
2095 2103
2096 case BC_CALLMT: 2104 case BC_CALLMT:
2097 dasm_put(Dst, 13836); 2105 dasm_put(Dst, 13850);
2098 break; 2106 break;
2099 case BC_CALLT: 2107 case BC_CALLT:
2100 dasm_put(Dst, 13882, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2108 dasm_put(Dst, 13896, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2101 dasm_put(Dst, 14000, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2109 dasm_put(Dst, 14014, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2102 break; 2110 break;
2103 2111
2104 case BC_ITERC: 2112 case BC_ITERC:
2105 dasm_put(Dst, 14057, LJ_TFUNC, 2+1, Dt7(->pc)); 2113 dasm_put(Dst, 14071, LJ_TFUNC, 2+1, Dt7(->pc));
2106 break; 2114 break;
2107 2115
2108 case BC_VARG: 2116 case BC_VARG:
2109 dasm_put(Dst, 14137, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2117 dasm_put(Dst, 14151, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2110 dasm_put(Dst, 14281, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2118 dasm_put(Dst, 14295, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2111 break; 2119 break;
2112 2120
2113 /* -- Returns ----------------------------------------------------------- */ 2121 /* -- Returns ----------------------------------------------------------- */
2114 2122
2115 case BC_RETM: 2123 case BC_RETM:
2116 dasm_put(Dst, 13836); 2124 dasm_put(Dst, 13850);
2117 break; 2125 break;
2118 2126
2119 case BC_RET: case BC_RET0: case BC_RET1: 2127 case BC_RET: case BC_RET0: case BC_RET1:
2120 if (op != BC_RET0) { 2128 if (op != BC_RET0) {
2121 dasm_put(Dst, 14380); 2129 dasm_put(Dst, 14394);
2122 } 2130 }
2123 dasm_put(Dst, 14384, FRAME_TYPE); 2131 dasm_put(Dst, 14398, FRAME_TYPE);
2124 switch (op) { 2132 switch (op) {
2125 case BC_RET: 2133 case BC_RET:
2126 dasm_put(Dst, 14403); 2134 dasm_put(Dst, 14417);
2127 break; 2135 break;
2128 case BC_RET1: 2136 case BC_RET1:
2129 dasm_put(Dst, 14461); 2137 dasm_put(Dst, 14475);
2130 /* fallthrough */ 2138 /* fallthrough */
2131 case BC_RET0: 2139 case BC_RET0:
2132 dasm_put(Dst, 14477); 2140 dasm_put(Dst, 14491);
2133 default: 2141 default:
2134 break; 2142 break;
2135 } 2143 }
2136 dasm_put(Dst, 14488, Dt7(->pc), PC2PROTO(k)); 2144 dasm_put(Dst, 14502, Dt7(->pc), PC2PROTO(k));
2137 if (op == BC_RET) { 2145 if (op == BC_RET) {
2138 dasm_put(Dst, 14530, LJ_TNIL); 2146 dasm_put(Dst, 14544, LJ_TNIL);
2139 } else { 2147 } else {
2140 dasm_put(Dst, 14539, LJ_TNIL); 2148 dasm_put(Dst, 14553, LJ_TNIL);
2141 } 2149 }
2142 dasm_put(Dst, 14546); 2150 dasm_put(Dst, 14560);
2143 if (op != BC_RET0) { 2151 if (op != BC_RET0) {
2144 dasm_put(Dst, 14567); 2152 dasm_put(Dst, 14581);
2145 } 2153 }
2146 dasm_put(Dst, 4678); 2154 dasm_put(Dst, 4678);
2147 break; 2155 break;
@@ -2151,7 +2159,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2151 2159
2152 case BC_FORL: 2160 case BC_FORL:
2153#if LJ_HASJIT 2161#if LJ_HASJIT
2154 dasm_put(Dst, 14571, HOTCOUNT_PCMASK, GG_DISP2HOT); 2162 dasm_put(Dst, 14585, HOTCOUNT_PCMASK, GG_DISP2HOT);
2155#endif 2163#endif
2156 break; 2164 break;
2157 2165
@@ -2163,57 +2171,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2163 case BC_FORI: 2171 case BC_FORI:
2164 case BC_IFORL: 2172 case BC_IFORL:
2165 vk = (op == BC_IFORL || op == BC_JFORL); 2173 vk = (op == BC_IFORL || op == BC_JFORL);
2166 dasm_put(Dst, 14592); 2174 dasm_put(Dst, 14606);
2167 if (!vk) { 2175 if (!vk) {
2168 dasm_put(Dst, 14596, LJ_TISNUM, LJ_TISNUM); 2176 dasm_put(Dst, 14610, LJ_TISNUM, LJ_TISNUM);
2169 } 2177 }
2170 dasm_put(Dst, 14615); 2178 dasm_put(Dst, 14629);
2171 if (!vk) { 2179 if (!vk) {
2172 dasm_put(Dst, 14619, LJ_TISNUM); 2180 dasm_put(Dst, 14633, LJ_TISNUM);
2173 } 2181 }
2174 if (sse) { 2182 if (sse) {
2175 dasm_put(Dst, 14628); 2183 dasm_put(Dst, 14642);
2176 if (vk) { 2184 if (vk) {
2177 dasm_put(Dst, 14640); 2185 dasm_put(Dst, 14654);
2178 } else { 2186 } else {
2179 dasm_put(Dst, 14659); 2187 dasm_put(Dst, 14673);
2180 } 2188 }
2181 dasm_put(Dst, 14664); 2189 dasm_put(Dst, 14678);
2182 } else { 2190 } else {
2183 dasm_put(Dst, 14677); 2191 dasm_put(Dst, 14691);
2184 if (vk) { 2192 if (vk) {
2185 dasm_put(Dst, 14683); 2193 dasm_put(Dst, 14697);
2186 } else { 2194 } else {
2187 dasm_put(Dst, 14699); 2195 dasm_put(Dst, 14713);
2188 } 2196 }
2189 dasm_put(Dst, 14707); 2197 dasm_put(Dst, 14721);
2190 if (cmov) { 2198 if (cmov) {
2191 dasm_put(Dst, 10737); 2199 dasm_put(Dst, 10751);
2192 } else { 2200 } else {
2193 dasm_put(Dst, 10743); 2201 dasm_put(Dst, 10757);
2194 } 2202 }
2195 if (!cmov) { 2203 if (!cmov) {
2196 dasm_put(Dst, 14712); 2204 dasm_put(Dst, 14726);
2197 } 2205 }
2198 } 2206 }
2199 if (op == BC_FORI) { 2207 if (op == BC_FORI) {
2200 dasm_put(Dst, 14718, -BCBIAS_J*4); 2208 dasm_put(Dst, 14732, -BCBIAS_J*4);
2201 } else if (op == BC_JFORI) { 2209 } else if (op == BC_JFORI) {
2202 dasm_put(Dst, 14728, -BCBIAS_J*4, BC_JLOOP); 2210 dasm_put(Dst, 14742, -BCBIAS_J*4, BC_JLOOP);
2203 } else if (op == BC_IFORL) { 2211 } else if (op == BC_IFORL) {
2204 dasm_put(Dst, 14742, -BCBIAS_J*4); 2212 dasm_put(Dst, 14756, -BCBIAS_J*4);
2205 } else { 2213 } else {
2206 dasm_put(Dst, 14738, BC_JLOOP); 2214 dasm_put(Dst, 14752, BC_JLOOP);
2207 } 2215 }
2208 dasm_put(Dst, 10772); 2216 dasm_put(Dst, 10786);
2209 if (sse) { 2217 if (sse) {
2210 dasm_put(Dst, 14752); 2218 dasm_put(Dst, 14766);
2211 } 2219 }
2212 break; 2220 break;
2213 2221
2214 case BC_ITERL: 2222 case BC_ITERL:
2215#if LJ_HASJIT 2223#if LJ_HASJIT
2216 dasm_put(Dst, 14571, HOTCOUNT_PCMASK, GG_DISP2HOT); 2224 dasm_put(Dst, 14585, HOTCOUNT_PCMASK, GG_DISP2HOT);
2217#endif 2225#endif
2218 break; 2226 break;
2219 2227
@@ -2222,33 +2230,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2222 break; 2230 break;
2223#endif 2231#endif
2224 case BC_IITERL: 2232 case BC_IITERL:
2225 dasm_put(Dst, 14763, LJ_TNIL); 2233 dasm_put(Dst, 14777, LJ_TNIL);
2226 if (op == BC_JITERL) { 2234 if (op == BC_JITERL) {
2227 dasm_put(Dst, 14778, BC_JLOOP); 2235 dasm_put(Dst, 14792, BC_JLOOP);
2228 } else { 2236 } else {
2229 dasm_put(Dst, 14792, -BCBIAS_J*4); 2237 dasm_put(Dst, 14806, -BCBIAS_J*4);
2230 } 2238 }
2231 dasm_put(Dst, 11069); 2239 dasm_put(Dst, 11083);
2232 break; 2240 break;
2233 2241
2234 case BC_LOOP: 2242 case BC_LOOP:
2235#if LJ_HASJIT 2243#if LJ_HASJIT
2236 dasm_put(Dst, 14571, HOTCOUNT_PCMASK, GG_DISP2HOT); 2244 dasm_put(Dst, 14585, HOTCOUNT_PCMASK, GG_DISP2HOT);
2237#endif 2245#endif
2238 break; 2246 break;
2239 2247
2240 case BC_ILOOP: 2248 case BC_ILOOP:
2241 dasm_put(Dst, 8384); 2249 dasm_put(Dst, 8398);
2242 break; 2250 break;
2243 2251
2244 case BC_JLOOP: 2252 case BC_JLOOP:
2245#if LJ_HASJIT 2253#if LJ_HASJIT
2246 dasm_put(Dst, 14808, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2254 dasm_put(Dst, 14822, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2247#endif 2255#endif
2248 break; 2256 break;
2249 2257
2250 case BC_JMP: 2258 case BC_JMP:
2251 dasm_put(Dst, 14831, -BCBIAS_J*4); 2259 dasm_put(Dst, 14845, -BCBIAS_J*4);
2252 break; 2260 break;
2253 2261
2254 /* -- Function headers -------------------------------------------------- */ 2262 /* -- Function headers -------------------------------------------------- */
@@ -2271,47 +2279,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2271 break; 2279 break;
2272#endif 2280#endif
2273 case BC_IFUNCF: 2281 case BC_IFUNCF:
2274 dasm_put(Dst, 14855, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2282 dasm_put(Dst, 14869, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2275 if (op == BC_JFUNCF) { 2283 if (op == BC_JFUNCF) {
2276 dasm_put(Dst, 14885, BC_JLOOP); 2284 dasm_put(Dst, 14899, BC_JLOOP);
2277 } else { 2285 } else {
2278 dasm_put(Dst, 8384); 2286 dasm_put(Dst, 8398);
2279 } 2287 }
2280 dasm_put(Dst, 14894, LJ_TNIL); 2288 dasm_put(Dst, 14908, LJ_TNIL);
2281 break; 2289 break;
2282 2290
2283 case BC_JFUNCV: 2291 case BC_JFUNCV:
2284#if !LJ_HASJIT 2292#if !LJ_HASJIT
2285 break; 2293 break;
2286#endif 2294#endif
2287 dasm_put(Dst, 10435); 2295 dasm_put(Dst, 10449);
2288 break; /* NYI: compiled vararg functions. */ 2296 break; /* NYI: compiled vararg functions. */
2289 2297
2290 case BC_IFUNCV: 2298 case BC_IFUNCV:
2291 dasm_put(Dst, 14916, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2299 dasm_put(Dst, 14930, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2292 if (op == BC_JFUNCV) { 2300 if (op == BC_JFUNCV) {
2293 dasm_put(Dst, 14885, BC_JLOOP); 2301 dasm_put(Dst, 14899, BC_JLOOP);
2294 } else { 2302 } else {
2295 dasm_put(Dst, 15007, -4+PC2PROTO(k)); 2303 dasm_put(Dst, 15021, -4+PC2PROTO(k));
2296 } 2304 }
2297 dasm_put(Dst, 15029, LJ_TNIL); 2305 dasm_put(Dst, 15043, LJ_TNIL);
2298 break; 2306 break;
2299 2307
2300 case BC_FUNCC: 2308 case BC_FUNCC:
2301 case BC_FUNCCW: 2309 case BC_FUNCCW:
2302 dasm_put(Dst, 15051, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2310 dasm_put(Dst, 15065, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2303 if (op == BC_FUNCC) { 2311 if (op == BC_FUNCC) {
2304 dasm_put(Dst, 15080); 2312 dasm_put(Dst, 15094);
2305 } else { 2313 } else {
2306 dasm_put(Dst, 15084); 2314 dasm_put(Dst, 15098);
2307 } 2315 }
2308 dasm_put(Dst, 15092, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2316 dasm_put(Dst, 15106, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2309 if (op == BC_FUNCC) { 2317 if (op == BC_FUNCC) {
2310 dasm_put(Dst, 15101); 2318 dasm_put(Dst, 15115);
2311 } else { 2319 } else {
2312 dasm_put(Dst, 15105, DISPATCH_GL(wrapf)); 2320 dasm_put(Dst, 15119, DISPATCH_GL(wrapf));
2313 } 2321 }
2314 dasm_put(Dst, 15110, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2322 dasm_put(Dst, 15124, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2315 break; 2323 break;
2316 2324
2317 /* ---------------------------------------------------------------------- */ 2325 /* ---------------------------------------------------------------------- */
@@ -2339,7 +2347,7 @@ static int build_backend(BuildCtx *ctx)
2339 2347
2340 build_subroutines(ctx, cmov, sse); 2348 build_subroutines(ctx, cmov, sse);
2341 2349
2342 dasm_put(Dst, 15135); 2350 dasm_put(Dst, 15149);
2343 for (op = 0; op < BC__MAX; op++) 2351 for (op = 0; op < BC__MAX; op++)
2344 build_ins(ctx, (BCOp)op, op, cmov, sse); 2352 build_ins(ctx, (BCOp)op, op, cmov, sse);
2345 2353