summaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64win.h')
-rw-r--r--src/buildvm_x64win.h1337
1 files changed, 671 insertions, 666 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 797acba3..d4db201c 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,61 +12,62 @@
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[13481] = { 15static const unsigned char build_actionlist[13496] = {
16 254,1,248,10,137,202,139,173,233,137,114,252,252,15,182,141,233,141,181,233, 16 254,1,248,10,137,202,137,114,252,252,139,181,233,15,182,142,233,139,190,233,
17 139,189,233,139,108,36,96,141,12,202,141,68,194,252,252,59,141,233,15,135, 17 139,108,36,96,141,12,202,59,141,233,15,135,244,11,15,182,142,233,57,200,15,
18 244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130,244, 18 134,244,249,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
19 1,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 19 255,36,252,235,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,
20 248,12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,252,248, 20 252,233,244,2,248,12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,
21 139,173,233,137,114,252,252,15,182,181,233,141,60,252,242,139,116,36,96,141, 21 106,252,248,137,114,252,252,139,181,233,15,182,174,233,141,60,252,234,139,
22 66,4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248, 22 108,36,96,59,189,233,15,135,244,13,137,208,15,182,174,233,133,252,237,15,
23 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121, 23 132,244,248,248,1,131,193,8,57,209,15,131,244,249,255,139,121,252,248,137,
24 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248, 24 56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,
25 2,15,182,141,233,141,181,233,255,139,189,233,141,12,202,252,233,244,9,248, 25 133,244,1,248,2,139,190,233,255,139,6,15,182,204,15,182,232,131,198,4,193,
26 14,137,113,252,252,72,139,189,233,139,108,36,96,141,68,193,252,248,137,141, 26 232,16,252,255,36,252,235,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,
27 233,141,136,233,137,133,233,59,141,233,72,137,252,250,137,252,233,15,135, 27 244,3,252,233,244,2,248,14,137,113,252,252,72,139,189,233,139,108,36,96,141,
28 244,15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12, 28 68,193,252,248,137,141,233,141,136,233,137,133,233,59,141,233,72,137,252,
29 194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,84,252,247,198,237,255, 29 250,137,252,233,15,135,244,15,199,131,233,237,252,255,147,233,199,131,233,
30 15,132,244,17,252,233,244,18,248,19,137,113,252,252,72,139,189,233,139,108, 30 237,139,149,233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,
31 36,96,141,68,193,252,248,137,141,233,141,136,233,137,133,233,59,141,233,137, 31 68,36,84,252,247,198,237,15,132,244,17,252,233,244,18,248,19,137,113,252,
32 252,233,15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,149, 32 252,72,139,189,233,139,108,36,96,141,68,193,252,248,137,141,233,141,136,233,
33 233,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,84,252,247, 33 137,133,233,59,141,233,137,252,233,15,135,244,15,199,131,233,237,252,255,
34 198,237,255,15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233, 34 215,199,131,233,237,139,149,233,255,141,12,194,252,247,217,3,141,233,248,
35 237,131,230,252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,139, 35 16,131,192,1,137,68,36,84,252,247,198,237,15,132,244,17,248,18,252,247,198,
36 44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15, 36 237,15,132,244,20,199,131,233,237,131,230,252,248,41,214,252,247,222,131,
37 133,244,1,248,2,139,108,36,96,137,181,233,248,3,139,68,36,84,139,76,36,88, 37 232,1,15,132,244,248,248,1,139,44,10,137,106,252,248,139,108,10,4,137,106,
38 248,4,57,193,15,133,244,252,248,5,255,131,252,234,8,137,149,233,248,21,72, 38 252,252,131,194,8,131,232,1,15,133,244,1,248,2,139,108,36,96,137,181,233,
39 139,76,36,104,72,137,141,233,49,192,248,22,72,131,196,40,91,94,95,93,195, 39 248,3,139,68,36,84,139,76,36,88,248,4,255,57,193,15,133,244,252,248,5,131,
40 248,6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131,194, 40 252,234,8,137,149,233,248,21,72,139,76,36,104,72,137,141,233,49,192,248,22,
41 8,131,192,1,252,233,244,4,248,7,133,201,15,132,244,5,41,193,141,20,202,252, 41 72,131,196,40,91,94,95,93,195,248,6,15,130,244,253,59,149,233,15,135,244,
42 233,244,5,248,8,137,149,233,255,137,68,36,84,137,202,137,252,233,232,251, 42 254,199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7,133,201,15,
43 1,0,139,149,233,252,233,244,3,248,23,137,208,72,137,204,248,24,139,108,36, 43 132,244,5,41,193,141,20,202,252,233,244,5,248,8,255,137,149,233,137,68,36,
44 96,139,173,233,199,133,233,237,252,233,244,22,248,25,72,129,225,239,72,137, 44 84,137,202,137,252,233,232,251,1,0,139,149,233,252,233,244,3,248,23,137,208,
45 204,248,26,139,108,36,96,72,199,193,252,248,252,255,252,255,252,255,184,237, 45 72,137,204,248,24,139,108,36,96,139,173,233,199,133,233,237,252,233,244,22,
46 139,149,233,139,157,233,129,195,239,139,114,252,252,199,66,252,252,237,199, 46 248,25,72,129,225,239,72,137,204,248,26,139,108,36,96,72,199,193,252,248,
47 131,233,237,255,252,233,244,16,248,20,252,247,198,237,15,132,244,27,131,230, 47 252,255,252,255,252,255,184,237,139,149,233,139,157,233,129,195,239,139,114,
48 252,248,41,252,242,72,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252, 48 252,252,199,66,252,252,237,199,131,233,237,255,252,233,244,16,248,20,252,
49 233,244,16,248,15,186,237,252,233,244,247,248,13,131,232,8,137,202,137,252, 49 247,198,237,15,132,244,27,131,230,252,248,41,252,242,72,141,76,49,252,248,
50 249,141,181,233,139,108,36,96,248,11,131,232,4,41,209,193,252,233,3,131,198, 50 139,114,252,252,199,68,10,4,237,252,233,244,16,248,15,186,237,252,233,244,
51 4,137,149,233,137,133,233,137,116,36,100,137,202,248,1,137,252,233,232,251, 51 247,248,13,137,202,248,11,141,68,194,252,248,15,182,142,233,131,198,4,137,
52 1,0,139,141,233,255,139,133,233,139,105,252,248,139,113,252,252,41,200,193, 52 149,233,137,133,233,137,116,36,100,137,202,248,1,137,252,233,232,251,1,0,
53 232,3,131,192,1,252,255,165,233,248,28,85,87,86,83,72,131,252,236,40,137, 53 139,141,233,255,139,133,233,139,105,252,248,139,113,252,252,41,200,193,232,
54 205,137,76,36,96,137,209,190,237,49,192,72,141,188,253,36,233,139,157,233, 54 3,131,192,1,252,255,165,233,248,28,85,87,86,83,72,131,252,236,40,137,205,
55 129,195,239,72,137,189,233,137,68,36,100,72,137,68,36,104,137,68,36,88,137, 55 137,76,36,96,137,209,190,237,49,192,72,141,188,253,36,233,139,157,233,129,
56 68,36,92,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233, 56 195,239,72,137,189,233,137,68,36,100,72,137,68,36,104,137,68,36,88,137,68,
57 139,133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,84, 57 36,92,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233,139,
58 252,247,198,237,15,132,244,17,252,233,244,18,248,29,255,85,87,86,83,72,131, 58 133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,84,252,
59 252,236,40,190,237,68,137,76,36,92,252,233,244,247,248,30,85,87,86,83,72, 59 247,198,237,15,132,244,17,252,233,244,18,248,29,255,85,87,86,83,72,131,252,
60 131,252,236,40,190,237,248,1,68,137,68,36,88,137,205,137,76,36,96,137,209, 60 236,40,190,237,68,137,76,36,92,252,233,244,247,248,30,85,87,86,83,72,131,
61 248,2,72,139,189,233,72,137,124,36,104,137,108,36,100,72,137,165,233,139, 61 252,236,40,190,237,248,1,68,137,68,36,88,137,205,137,76,36,96,137,209,248,
62 157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133, 62 2,72,139,189,233,72,137,124,36,104,137,108,36,100,72,137,165,233,139,157,
63 233,41,200,193,232,3,131,192,1,139,105,252,248,129,121,253,252,252,239,15, 63 233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133,233,
64 133,244,31,252,255,165,233,248,32,255,85,87,86,83,72,131,252,236,40,137,205, 64 41,200,193,232,3,131,192,1,139,105,252,248,129,121,253,252,252,239,15,133,
65 137,76,36,96,137,108,36,100,139,189,233,43,189,233,199,68,36,92,0,0,0,0,137, 65 244,31,252,255,165,233,248,32,255,85,87,86,83,72,131,252,236,40,137,205,137,
66 124,36,88,72,139,189,233,72,137,124,36,104,72,137,165,233,65,252,255,209, 66 76,36,96,137,108,36,100,139,189,233,43,189,233,199,68,36,92,0,0,0,0,137,124,
67 133,192,15,132,244,21,137,193,190,237,252,233,244,2,248,27,1,209,131,230, 67 36,88,72,139,189,233,72,137,124,36,104,72,137,165,233,65,252,255,209,133,
68 252,248,137,213,41,252,242,199,68,193,252,252,237,137,200,139,117,252,244, 68 192,15,132,244,21,137,193,190,237,252,233,244,2,248,27,1,209,131,230,252,
69 72,99,77,252,240,72,141,61,245,72,1,252,249,139,122,252,248,139,191,233,139, 69 248,137,213,41,252,242,199,68,193,252,252,237,137,200,139,117,252,244,72,
70 99,77,252,240,72,141,61,245,72,1,252,249,139,122,252,248,139,191,233,139,
70 191,233,252,255,225,248,33,15,182,78,252,255,131,252,237,16,141,12,202,41, 71 191,233,252,255,225,248,33,15,182,78,252,255,131,252,237,16,141,12,202,41,
71 252,233,15,132,244,34,252,247,217,193,252,233,3,65,137,200,139,76,36,96,137, 72 252,233,15,132,244,34,252,247,217,193,252,233,3,65,137,200,139,76,36,96,137,
72 145,233,139,80,4,139,0,137,85,4,137,69,0,137,252,234,252,233,244,35,248,36, 73 145,233,139,80,4,139,0,137,85,4,137,69,0,137,252,234,252,233,244,35,248,36,
@@ -468,170 +469,170 @@ static const unsigned char build_actionlist[13481] = {
468 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221, 469 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,
469 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248, 470 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,
470 155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91, 471 155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,
471 94,195,255,249,255,129,124,253,202,4,239,15,135,244,43,129,124,253,194,4, 472 94,195,255,129,124,253,202,4,239,15,135,244,43,129,124,253,194,4,239,15,135,
472 239,15,135,244,43,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221, 473 244,43,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,
473 4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224, 474 4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,
474 158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141, 475 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,
475 180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 476 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
476 255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251, 477 235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,
477 129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4, 478 202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,
478 202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138, 479 4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,
479 244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248, 480 244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,
480 2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108, 481 183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,
481 202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193, 482 2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
482 15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132, 483 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
483 244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255, 484 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,
484 252,233,244,47,255,72,252,247,208,131,198,4,129,124,253,202,4,239,15,133, 485 72,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,
485 244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244, 486 59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,
486 248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72, 487 15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,
487 252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253, 488 198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,
488 239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137, 489 244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,
489 44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15, 490 183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,
490 182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,139,4,194, 491 198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,139,4,194,137,108,202,
491 137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 492 4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
492 252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108, 493 235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,
493 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 494 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,129,124,
494 255,129,124,253,194,4,239,15,135,244,50,255,252,242,15,16,4,194,72,184,237, 495 253,194,4,239,15,135,244,50,255,252,242,15,16,4,194,72,184,237,237,102,72,
495 237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224, 496 15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,
496 221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192, 497 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,
497 252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221, 498 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,
498 28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 499 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,
499 235,248,2,129,124,253,194,4,239,15,133,244,52,139,12,194,137,213,232,251, 500 2,129,124,253,194,4,239,15,133,244,52,139,12,194,137,213,232,251,1,18,255,
500 1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244, 501 252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,
501 1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244, 502 182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,48,255,252,
502 48,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220, 503 242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,
503 4,199,255,129,124,253,252,234,4,239,15,135,244,49,255,252,242,15,16,4,199, 504 124,253,252,234,4,239,15,135,244,49,255,252,242,15,16,4,199,252,242,15,88,
504 252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234, 505 4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,
505 4,239,15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252,242,15,16, 506 244,51,129,124,253,194,4,239,15,135,244,51,255,252,242,15,16,4,252,234,252,
506 4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15, 507 242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,
507 16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242, 508 242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,
508 15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252, 509 242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,
509 242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255, 510 234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,
510 252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199, 511 252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,
511 255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252, 512 4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,
512 234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220, 513 16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,
513 12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234, 514 15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,
514 220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199, 515 242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,
515 220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4, 516 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,
516 252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221, 517 255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,
517 4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255, 518 199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,
518 221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194, 519 252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,
519 255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255, 520 221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,108,255,
520 232,244,108,255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20, 521 15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,192,
521 194,65,137,192,65,41,232,248,35,137,205,137,116,36,100,232,251,1,21,139,149, 522 65,41,232,248,35,137,205,137,116,36,100,232,251,1,21,139,149,233,133,192,
522 233,133,192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,139,68,252, 523 15,133,244,44,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,
523 234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232, 524 252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,
524 131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199, 525 232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,
525 68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 526 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
526 255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223, 527 255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,
527 70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221, 528 28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,
528 4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204,15,182, 529 255,72,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,
529 232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,141,68,194, 530 232,16,252,255,36,252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,
530 4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139, 531 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,
531 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,106, 532 232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,
532 252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137, 533 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,
533 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 534 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,
534 255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12, 535 139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,
535 194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15, 536 77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,
536 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 537 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,
537 36,252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 538 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,
538 235,15,132,244,1,135,213,141,139,233,255,232,251,1,22,137,252,234,252,233, 539 213,141,139,233,255,232,251,1,22,137,252,234,252,233,244,1,255,72,252,247,
539 244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 540 208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,
540 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 541 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,
541 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246, 542 232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,129,233,235,15,
542 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139, 543 132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,
543 233,232,251,1,22,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, 544 1,22,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,
544 15,16,4,199,255,139,172,253,141,233,139,141,233,255,72,252,247,208,139,106, 545 255,139,172,253,141,233,139,141,233,255,72,252,247,208,139,106,252,248,139,
545 252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182, 546 172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,
546 232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108, 547 4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,
547 36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232, 548 189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,23,
548 251,1,23,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 549 139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
549 16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139, 550 36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,
550 66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,1,24,139,149,233, 551 139,20,135,137,252,233,137,116,36,100,232,251,1,24,139,149,233,15,182,78,
551 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232, 552 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
552 131,198,4,193,232,16,252,255,36,252,235,255,139,76,36,96,137,145,233,248, 553 193,232,16,252,255,36,252,235,255,139,76,36,96,137,145,233,248,1,65,137,192,
553 1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249, 554 37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249,248,2,137,
554 248,2,137,194,139,131,233,137,205,59,131,233,137,116,36,100,15,131,244,251, 555 194,139,131,233,137,205,59,131,233,137,116,36,100,15,131,244,251,232,251,
555 232,251,1,25,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 556 1,25,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
556 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184, 557 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,
557 1,8,0,0,252,233,244,2,248,5,232,251,1,26,15,183,70,252,254,137,252,233,252, 558 252,233,244,2,248,5,232,251,1,26,15,183,70,252,254,137,252,233,252,233,244,
558 233,244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59, 559 1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,
559 139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1, 560 137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,27,139,
560 27,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182, 561 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,
561 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233, 562 182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,
562 232,251,1,26,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247, 563 1,26,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,
563 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247, 564 106,252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247,208,139,
564 208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252, 565 106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,
565 236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,129, 566 192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,129,124,253,194,
566 124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192, 567 4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,
567 252,242,15,42,200,102,15,46,193,255,15,133,244,38,59,133,233,15,131,244,38, 568 42,200,102,15,46,193,255,15,133,244,38,59,133,233,15,131,244,38,193,224,3,
568 193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64, 569 3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,
569 4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 570 137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
570 252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 571 252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,
571 233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,5,255,129,124,253, 572 15,132,244,38,15,182,78,252,253,252,233,244,1,248,5,255,129,124,253,194,4,
572 194,4,239,15,133,244,38,139,4,194,252,233,244,157,255,15,182,252,236,15,182, 573 239,15,133,244,38,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,
573 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,36,139, 574 72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,
574 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129, 575 234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,
575 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15, 576 239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,
576 132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76, 577 251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,
577 194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 578 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,
578 248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15, 579 182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,
579 133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133, 580 1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,
580 244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 581 252,233,244,36,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
581 239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133, 582 133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,
582 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, 583 120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,
583 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 584 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,
584 235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132, 585 2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,37,
585 244,37,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, 586 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,139,
586 41,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,41, 587 44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,41,59,133,
587 59,133,233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244, 588 233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
588 249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202, 589 1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
589 137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 590 4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
590 36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233, 591 248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,
591 235,15,132,244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4, 592 244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,
592 239,15,133,244,41,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139, 593 244,41,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,233,137,171,
593 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252, 594 233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,
594 236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 595 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139,
595 244,39,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133, 596 44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,
596 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244, 597 233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,
597 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133, 598 253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,
598 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139, 599 3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,
599 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131, 600 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,
600 189,233,0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132, 601 0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,39,
601 244,39,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1, 602 139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,
602 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39, 603 141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39,248,6,137,
603 248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233, 604 68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,
604 76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,28,139,149,233, 605 36,80,137,252,234,137,205,137,116,36,100,232,251,1,28,139,149,233,139,108,
605 139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137, 606 36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
606 171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253, 607 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
607 252,234,4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224, 608 4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,
608 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15, 609 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
609 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204, 610 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
610 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15, 611 232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,
611 132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,78,252, 612 1,255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,78,252,253,252,
612 253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233, 613 233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,
613 15,182,78,252,253,252,233,244,2,255,137,124,36,80,255,248,1,141,12,202,139, 614 78,252,253,252,233,244,2,255,137,124,36,80,255,248,1,141,12,202,139,105,252,
614 105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,84,255,252, 615 248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,84,255,252,242,15,
615 242,15,45,252,248,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131, 616 45,252,248,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,
616 244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131, 617 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,
617 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139, 618 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,182,204,
618 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139, 619 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,96,137,
619 76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251, 620 145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,29,139,149,
620 1,29,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139, 621 233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,131,233,137,
621 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,84,255,141, 622 171,233,255,137,133,233,252,233,244,2,255,3,68,36,84,255,141,76,202,8,139,
622 76,202,8,139,105,252,248,129,121,253,252,252,239,15,133,244,31,252,255,165, 623 105,252,248,129,121,253,252,252,239,15,133,244,31,252,255,165,233,255,141,
623 233,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133, 624 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,31,248,
624 244,31,248,53,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106, 625 53,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
625 252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105, 626 68,36,84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,
626 4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248, 627 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,137,209,
627 3,137,209,128,189,233,1,15,135,244,251,248,4,139,68,36,84,252,255,165,233, 628 128,189,233,1,15,135,244,251,248,4,139,68,36,84,252,255,165,233,248,5,255,
628 248,5,255,252,247,198,237,15,133,244,4,15,182,70,252,253,72,252,247,208,141, 629 252,247,198,237,15,133,244,4,15,182,70,252,253,72,252,247,208,141,20,194,
629 20,194,139,122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139, 630 139,122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,244,1,
630 244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255, 631 131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,141,
631 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139, 632 76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,
632 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137, 633 252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,
633 65,252,252,129,252,248,239,184,3,0,0,0,15,133,244,31,252,255,165,233,255, 634 252,252,129,252,248,239,184,3,0,0,0,15,133,244,31,252,255,165,233,255,15,
634 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124, 635 182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,
635 36,80,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108, 636 36,80,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,
636 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252, 637 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,
637 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130, 638 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,
@@ -1022,395 +1023,399 @@ static const char *const extnames[] = {
1022#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V) 1023#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V)
1023#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) 1024#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field))
1024#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) 1025#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field))
1026#define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto))
1025 1027
1026/* Generate subroutines used by opcodes and other parts of the VM. */ 1028/* Generate subroutines used by opcodes and other parts of the VM. */
1027/* The .code_sub section should be last to help static branch prediction. */ 1029/* The .code_sub section should be last to help static branch prediction. */
1028static void build_subroutines(BuildCtx *ctx, int cmov, int sse) 1030static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1029{ 1031{
1030 dasm_put(Dst, 0); 1032 dasm_put(Dst, 0);
1031 dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), sizeof(GCproto), Dt9(->k), Dt1(->maxstack), LJ_TNIL); 1033 dasm_put(Dst, 2, Dt7(->pc), PC2PROTO(framesize), PC2PROTO(k), Dt1(->maxstack), PC2PROTO(numparams));
1032#if LJ_HASJIT 1034#if LJ_HASJIT
1033#endif 1035#endif
1034 dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), sizeof(GCproto)); 1036 dasm_put(Dst, 47, LJ_TNIL, FRAME_VARG, -FRAME_VARG, Dt7(->pc), PC2PROTO(framesize), Dt1(->maxstack), PC2PROTO(numparams));
1035 dasm_put(Dst, 192, Dt9(->k), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE); 1037 dasm_put(Dst, 157, LJ_TNIL, PC2PROTO(k));
1036 dasm_put(Dst, 282, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE); 1038#if LJ_HASJIT
1037 dasm_put(Dst, 365, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base)); 1039#endif
1038 dasm_put(Dst, 456, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL, Dt1(->top)); 1040 dasm_put(Dst, 192, LJ_TNIL, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1039 dasm_put(Dst, 538, Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1041 dasm_put(Dst, 290, Dt1(->top), FRAME_TYPE, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1040 dasm_put(Dst, 633, FRAME_P, LJ_TTRUE, LUA_MINSTACK, sizeof(GCproto), Dt1(->base), Dt1(->top), Dt1(->base)); 1042 dasm_put(Dst, 373, Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base));
1041 dasm_put(Dst, 737, Dt1(->top), Dt7(->gate), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE); 1043 dasm_put(Dst, 478, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL);
1042 dasm_put(Dst, 869, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate)); 1044 dasm_put(Dst, 565, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1043 dasm_put(Dst, 987, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pt), Dt9(->k), Dt1(->base)); 1045 dasm_put(Dst, 663, FRAME_P, LJ_TTRUE, LUA_MINSTACK, PC2PROTO(framesize), Dt1(->base), Dt1(->top), Dt1(->base));
1044 dasm_put(Dst, 1165, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1046 dasm_put(Dst, 754, Dt1(->top), Dt7(->gate), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE);
1047 dasm_put(Dst, 886, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate));
1048 dasm_put(Dst, 1004, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc), PC2PROTO(k), Dt1(->base));
1049 dasm_put(Dst, 1182, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1045 if (sse) { 1050 if (sse) {
1046 dasm_put(Dst, 1211); 1051 dasm_put(Dst, 1228);
1047 } else { 1052 } else {
1048 } 1053 }
1049 dasm_put(Dst, 1224, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv)); 1054 dasm_put(Dst, 1241, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv));
1050 dasm_put(Dst, 1382, LJ_TTAB); 1055 dasm_put(Dst, 1399, LJ_TTAB);
1051 if (sse) { 1056 if (sse) {
1052 dasm_put(Dst, 1211); 1057 dasm_put(Dst, 1228);
1053 } else { 1058 } else {
1054 } 1059 }
1055 dasm_put(Dst, 1402, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base)); 1060 dasm_put(Dst, 1419, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base));
1056 dasm_put(Dst, 1598, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1061 dasm_put(Dst, 1615, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1057 dasm_put(Dst, 1707, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC); 1062 dasm_put(Dst, 1724, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC);
1058 dasm_put(Dst, 1832, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*8, 1+1); 1063 dasm_put(Dst, 1849, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*8, 1+1);
1059 dasm_put(Dst, 1988, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1064 dasm_put(Dst, 2005, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX);
1060 if (cmov) { 1065 if (cmov) {
1061 dasm_put(Dst, 2084); 1066 dasm_put(Dst, 2101);
1062 } else { 1067 } else {
1063 dasm_put(Dst, 2088); 1068 dasm_put(Dst, 2105);
1064 } 1069 }
1065 dasm_put(Dst, 2097, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1070 dasm_put(Dst, 2114, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask));
1066 dasm_put(Dst, 2185, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1071 dasm_put(Dst, 2202, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1067 dasm_put(Dst, 2240, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1072 dasm_put(Dst, 2257, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB);
1068 dasm_put(Dst, 2312, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1073 dasm_put(Dst, 2329, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1069 dasm_put(Dst, 2377, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1074 dasm_put(Dst, 2394, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1070 if (sse) { 1075 if (sse) {
1071 dasm_put(Dst, 2458); 1076 dasm_put(Dst, 2475);
1072 } else { 1077 } else {
1073 dasm_put(Dst, 2468); 1078 dasm_put(Dst, 2485);
1074 } 1079 }
1075 dasm_put(Dst, 2475, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1080 dasm_put(Dst, 2492, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1076 dasm_put(Dst, 2537, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1081 dasm_put(Dst, 2554, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1077 dasm_put(Dst, 2624, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1082 dasm_put(Dst, 2641, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1078 dasm_put(Dst, 2726, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1083 dasm_put(Dst, 2743, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1079 if (sse) { 1084 if (sse) {
1080 dasm_put(Dst, 2781, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1085 dasm_put(Dst, 2798, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1081 } else { 1086 } else {
1082 } 1087 }
1083 dasm_put(Dst, 2814, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1088 dasm_put(Dst, 2831, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1084 dasm_put(Dst, 2900, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1089 dasm_put(Dst, 2917, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1085 if (sse) { 1090 if (sse) {
1086 dasm_put(Dst, 2930); 1091 dasm_put(Dst, 2947);
1087 } else { 1092 } else {
1088 dasm_put(Dst, 2940); 1093 dasm_put(Dst, 2957);
1089 } 1094 }
1090 dasm_put(Dst, 2947, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate)); 1095 dasm_put(Dst, 2964, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate));
1091 dasm_put(Dst, 3020, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD); 1096 dasm_put(Dst, 3037, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD);
1092 dasm_put(Dst, 3119, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1097 dasm_put(Dst, 3136, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1093 dasm_put(Dst, 3185, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top)); 1098 dasm_put(Dst, 3202, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top));
1094 dasm_put(Dst, 3289, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2); 1099 dasm_put(Dst, 3306, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2);
1095 dasm_put(Dst, 3411, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base)); 1100 dasm_put(Dst, 3428, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base));
1096 dasm_put(Dst, 3494, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 1101 dasm_put(Dst, 3511, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1097 dasm_put(Dst, 3602, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); 1102 dasm_put(Dst, 3619, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE);
1098 dasm_put(Dst, 3699, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1103 dasm_put(Dst, 3716, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1099 if (sse) { 1104 if (sse) {
1100 dasm_put(Dst, 3788, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1105 dasm_put(Dst, 3805, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1101 } else { 1106 } else {
1102 dasm_put(Dst, 3844, 1+1, LJ_TISNUM); 1107 dasm_put(Dst, 3861, 1+1, LJ_TISNUM);
1103 } 1108 }
1104 dasm_put(Dst, 3876, 1+1, FRAME_TYPE, LJ_TNIL); 1109 dasm_put(Dst, 3893, 1+1, FRAME_TYPE, LJ_TNIL);
1105 if (sse) { 1110 if (sse) {
1106 dasm_put(Dst, 3960, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1111 dasm_put(Dst, 3977, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1107 dasm_put(Dst, 4022, 1+1, LJ_TISNUM); 1112 dasm_put(Dst, 4039, 1+1, LJ_TISNUM);
1108 } else { 1113 } else {
1109 dasm_put(Dst, 4052, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1114 dasm_put(Dst, 4069, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1110 dasm_put(Dst, 4111, 1+1, LJ_TISNUM); 1115 dasm_put(Dst, 4128, 1+1, LJ_TISNUM);
1111 } 1116 }
1112 dasm_put(Dst, 4138, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1117 dasm_put(Dst, 4155, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1113 dasm_put(Dst, 4207, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1118 dasm_put(Dst, 4224, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1114 dasm_put(Dst, 4264, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1119 dasm_put(Dst, 4281, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1115 dasm_put(Dst, 4327, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1120 dasm_put(Dst, 4344, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1116 dasm_put(Dst, 4417); 1121 dasm_put(Dst, 4434);
1117 if (sse) { 1122 if (sse) {
1118 dasm_put(Dst, 4429, 1+1, LJ_TISNUM); 1123 dasm_put(Dst, 4446, 1+1, LJ_TISNUM);
1119 } else { 1124 } else {
1120 } 1125 }
1121 dasm_put(Dst, 4454); 1126 dasm_put(Dst, 4471);
1122 if (sse) { 1127 if (sse) {
1123 dasm_put(Dst, 4476, 1+1, LJ_TISNUM); 1128 dasm_put(Dst, 4493, 1+1, LJ_TISNUM);
1124 } else { 1129 } else {
1125 } 1130 }
1126 dasm_put(Dst, 4501); 1131 dasm_put(Dst, 4518);
1127 if (sse) { 1132 if (sse) {
1128 dasm_put(Dst, 4523, 1+1, LJ_TISNUM); 1133 dasm_put(Dst, 4540, 1+1, LJ_TISNUM);
1129 } else { 1134 } else {
1130 } 1135 }
1131 dasm_put(Dst, 4548); 1136 dasm_put(Dst, 4565);
1132 if (sse) { 1137 if (sse) {
1133 dasm_put(Dst, 4572, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1138 dasm_put(Dst, 4589, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1134 } else { 1139 } else {
1135 dasm_put(Dst, 4607, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1140 dasm_put(Dst, 4624, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1136 } 1141 }
1137 dasm_put(Dst, 4636, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1142 dasm_put(Dst, 4653, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1138 dasm_put(Dst, 4701, 1+1, LJ_TISNUM); 1143 dasm_put(Dst, 4718, 1+1, LJ_TISNUM);
1139 if (sse) { 1144 if (sse) {
1140 dasm_put(Dst, 4796); 1145 dasm_put(Dst, 4813);
1141 } else { 1146 } else {
1142 dasm_put(Dst, 4802); 1147 dasm_put(Dst, 4819);
1143 } 1148 }
1144 dasm_put(Dst, 4811); 1149 dasm_put(Dst, 4828);
1145 if (sse) { 1150 if (sse) {
1146 dasm_put(Dst, 4836); 1151 dasm_put(Dst, 4853);
1147 } else { 1152 } else {
1148 dasm_put(Dst, 4842); 1153 dasm_put(Dst, 4859);
1149 } 1154 }
1150 dasm_put(Dst, 4845, 1+2); 1155 dasm_put(Dst, 4862, 1+2);
1151 if (sse) { 1156 if (sse) {
1152 dasm_put(Dst, 4854); 1157 dasm_put(Dst, 4871);
1153 } else { 1158 } else {
1154 dasm_put(Dst, 4862); 1159 dasm_put(Dst, 4879);
1155 } 1160 }
1156 dasm_put(Dst, 1595); 1161 dasm_put(Dst, 475);
1157 if (sse) { 1162 if (sse) {
1158 dasm_put(Dst, 4870, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1163 dasm_put(Dst, 4887, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1159 } else { 1164 } else {
1160 dasm_put(Dst, 4897); 1165 dasm_put(Dst, 4914);
1161 } 1166 }
1162 dasm_put(Dst, 4916); 1167 dasm_put(Dst, 4933);
1163 if (sse) { 1168 if (sse) {
1164 dasm_put(Dst, 4932, 1+1, LJ_TISNUM); 1169 dasm_put(Dst, 4949, 1+1, LJ_TISNUM);
1165 } else { 1170 } else {
1166 dasm_put(Dst, 4957, 1+1, LJ_TISNUM); 1171 dasm_put(Dst, 4974, 1+1, LJ_TISNUM);
1167 } 1172 }
1168 dasm_put(Dst, 4979); 1173 dasm_put(Dst, 4996);
1169 if (sse) { 1174 if (sse) {
1170 dasm_put(Dst, 4997); 1175 dasm_put(Dst, 5014);
1171 } else { 1176 } else {
1172 dasm_put(Dst, 5023); 1177 dasm_put(Dst, 5040);
1173 } 1178 }
1174 dasm_put(Dst, 5040, 1+2); 1179 dasm_put(Dst, 5057, 1+2);
1175 if (sse) { 1180 if (sse) {
1176 dasm_put(Dst, 5080); 1181 dasm_put(Dst, 5097);
1177 } else { 1182 } else {
1178 dasm_put(Dst, 5088); 1183 dasm_put(Dst, 5105);
1179 } 1184 }
1180 dasm_put(Dst, 5098, 2+1, LJ_TISNUM, LJ_TISNUM); 1185 dasm_put(Dst, 5115, 2+1, LJ_TISNUM, LJ_TISNUM);
1181 if (sse) { 1186 if (sse) {
1182 dasm_put(Dst, 5150, 1+1, LJ_TISNUM, LJ_TISNUM); 1187 dasm_put(Dst, 5167, 1+1, LJ_TISNUM, LJ_TISNUM);
1183 } else { 1188 } else {
1184 dasm_put(Dst, 5197, 2+1, LJ_TISNUM, LJ_TISNUM); 1189 dasm_put(Dst, 5214, 2+1, LJ_TISNUM, LJ_TISNUM);
1185 } 1190 }
1186 if (sse) { 1191 if (sse) {
1187 dasm_put(Dst, 5238, 1+1, LJ_TISNUM, LJ_TISNUM); 1192 dasm_put(Dst, 5255, 1+1, LJ_TISNUM, LJ_TISNUM);
1188 } else { 1193 } else {
1189 } 1194 }
1190 if (sse) { 1195 if (sse) {
1191 dasm_put(Dst, 5309, 1+1, LJ_TISNUM, LJ_TISNUM); 1196 dasm_put(Dst, 5326, 1+1, LJ_TISNUM, LJ_TISNUM);
1192 } else { 1197 } else {
1193 } 1198 }
1194 if (!sse) { 1199 if (!sse) {
1195 dasm_put(Dst, 5380); 1200 dasm_put(Dst, 5397);
1196 } 1201 }
1197 dasm_put(Dst, 5389, 1+1, LJ_TSTR); 1202 dasm_put(Dst, 5406, 1+1, LJ_TSTR);
1198 if (sse) { 1203 if (sse) {
1199 dasm_put(Dst, 5411, Dt5(->len)); 1204 dasm_put(Dst, 5428, Dt5(->len));
1200 } else { 1205 } else {
1201 dasm_put(Dst, 5422, Dt5(->len)); 1206 dasm_put(Dst, 5439, Dt5(->len));
1202 } 1207 }
1203 dasm_put(Dst, 5430, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1208 dasm_put(Dst, 5447, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1204 if (sse) { 1209 if (sse) {
1205 dasm_put(Dst, 5464); 1210 dasm_put(Dst, 5481);
1206 } else { 1211 } else {
1207 dasm_put(Dst, 5474); 1212 dasm_put(Dst, 5491);
1208 } 1213 }
1209 dasm_put(Dst, 5487, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1214 dasm_put(Dst, 5504, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1210 if (sse) { 1215 if (sse) {
1211 dasm_put(Dst, 5522); 1216 dasm_put(Dst, 5539);
1212 } else { 1217 } else {
1213 dasm_put(Dst, 5542); 1218 dasm_put(Dst, 5559);
1214 } 1219 }
1215 dasm_put(Dst, 5562, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1220 dasm_put(Dst, 5579, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1216 dasm_put(Dst, 2453); 1221 dasm_put(Dst, 2470);
1217 if (sse) { 1222 if (sse) {
1218 dasm_put(Dst, 5678); 1223 dasm_put(Dst, 5695);
1219 } else { 1224 } else {
1220 dasm_put(Dst, 5689); 1225 dasm_put(Dst, 5706);
1221 } 1226 }
1222 dasm_put(Dst, 5697, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1227 dasm_put(Dst, 5714, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1223 if (sse) { 1228 if (sse) {
1224 dasm_put(Dst, 5727); 1229 dasm_put(Dst, 5744);
1225 } else { 1230 } else {
1226 } 1231 }
1227 dasm_put(Dst, 5734, sizeof(GCstr)-1); 1232 dasm_put(Dst, 5751, sizeof(GCstr)-1);
1228 dasm_put(Dst, 5809, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1233 dasm_put(Dst, 5826, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1229 dasm_put(Dst, 5868, LJ_TSTR, LJ_TISNUM); 1234 dasm_put(Dst, 5885, LJ_TSTR, LJ_TISNUM);
1230 if (sse) { 1235 if (sse) {
1231 dasm_put(Dst, 5893); 1236 dasm_put(Dst, 5910);
1232 } else { 1237 } else {
1233 dasm_put(Dst, 5900); 1238 dasm_put(Dst, 5917);
1234 } 1239 }
1235 dasm_put(Dst, 5912, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1240 dasm_put(Dst, 5929, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1236 dasm_put(Dst, 5977, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1241 dasm_put(Dst, 5994, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1237 dasm_put(Dst, 6044, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1242 dasm_put(Dst, 6061, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1238 dasm_put(Dst, 6119, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1243 dasm_put(Dst, 6136, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1239 dasm_put(Dst, 6204, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1244 dasm_put(Dst, 6221, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1240 dasm_put(Dst, 6278, 1+1, LJ_TTAB); 1245 dasm_put(Dst, 6295, 1+1, LJ_TTAB);
1241 if (sse) { 1246 if (sse) {
1242 dasm_put(Dst, 6354); 1247 dasm_put(Dst, 6371);
1243 } else { 1248 } else {
1244 } 1249 }
1245 if (sse) { 1250 if (sse) {
1246 dasm_put(Dst, 6364, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1251 dasm_put(Dst, 6381, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1247 } else { 1252 } else {
1248 } 1253 }
1249 if (sse) { 1254 if (sse) {
1250 dasm_put(Dst, 6416, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1255 dasm_put(Dst, 6433, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1251 } else { 1256 } else {
1252 } 1257 }
1253 dasm_put(Dst, 6459); 1258 dasm_put(Dst, 6476);
1254 if (sse) { 1259 if (sse) {
1255 dasm_put(Dst, 6469); 1260 dasm_put(Dst, 6486);
1256 } 1261 }
1257 dasm_put(Dst, 6474, LJ_TISNUM); 1262 dasm_put(Dst, 6491, LJ_TISNUM);
1258 if (sse) { 1263 if (sse) {
1259 dasm_put(Dst, 6492); 1264 dasm_put(Dst, 6509);
1260 } else { 1265 } else {
1261 } 1266 }
1262 dasm_put(Dst, 6509); 1267 dasm_put(Dst, 6526);
1263 if (sse) { 1268 if (sse) {
1264 dasm_put(Dst, 6517, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1269 dasm_put(Dst, 6534, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1265 } else { 1270 } else {
1266 } 1271 }
1267 dasm_put(Dst, 6459); 1272 dasm_put(Dst, 6476);
1268 if (sse) { 1273 if (sse) {
1269 dasm_put(Dst, 6469); 1274 dasm_put(Dst, 6486);
1270 } 1275 }
1271 dasm_put(Dst, 6474, LJ_TISNUM); 1276 dasm_put(Dst, 6491, LJ_TISNUM);
1272 if (sse) { 1277 if (sse) {
1273 dasm_put(Dst, 6560); 1278 dasm_put(Dst, 6577);
1274 } else { 1279 } else {
1275 } 1280 }
1276 dasm_put(Dst, 6509); 1281 dasm_put(Dst, 6526);
1277 if (sse) { 1282 if (sse) {
1278 dasm_put(Dst, 6577, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1283 dasm_put(Dst, 6594, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1279 } else { 1284 } else {
1280 } 1285 }
1281 dasm_put(Dst, 6459); 1286 dasm_put(Dst, 6476);
1282 if (sse) { 1287 if (sse) {
1283 dasm_put(Dst, 6469); 1288 dasm_put(Dst, 6486);
1284 } 1289 }
1285 dasm_put(Dst, 6474, LJ_TISNUM); 1290 dasm_put(Dst, 6491, LJ_TISNUM);
1286 if (sse) { 1291 if (sse) {
1287 dasm_put(Dst, 6620); 1292 dasm_put(Dst, 6637);
1288 } else { 1293 } else {
1289 } 1294 }
1290 dasm_put(Dst, 6509); 1295 dasm_put(Dst, 6526);
1291 if (sse) { 1296 if (sse) {
1292 dasm_put(Dst, 6637, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1297 dasm_put(Dst, 6654, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1293 } else { 1298 } else {
1294 } 1299 }
1295 dasm_put(Dst, 6680); 1300 dasm_put(Dst, 6697);
1296 if (sse) { 1301 if (sse) {
1297 dasm_put(Dst, 6687, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1302 dasm_put(Dst, 6704, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1298 } else { 1303 } else {
1299 } 1304 }
1300 dasm_put(Dst, 6730); 1305 dasm_put(Dst, 6747);
1301 if (sse) { 1306 if (sse) {
1302 dasm_put(Dst, 6734); 1307 dasm_put(Dst, 6751);
1303 } else { 1308 } else {
1304 } 1309 }
1305 dasm_put(Dst, 6761); 1310 dasm_put(Dst, 6778);
1306 if (sse) { 1311 if (sse) {
1307 dasm_put(Dst, 6349); 1312 dasm_put(Dst, 6366);
1308 } 1313 }
1309 dasm_put(Dst, 6764); 1314 dasm_put(Dst, 6781);
1310 if (sse) { 1315 if (sse) {
1311 dasm_put(Dst, 6773, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1316 dasm_put(Dst, 6790, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1312 } else { 1317 } else {
1313 } 1318 }
1314 dasm_put(Dst, 6842); 1319 dasm_put(Dst, 6859);
1315 if (sse) { 1320 if (sse) {
1316 dasm_put(Dst, 6851, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1321 dasm_put(Dst, 6868, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1317 } else { 1322 } else {
1318 } 1323 }
1319 dasm_put(Dst, 6920); 1324 dasm_put(Dst, 6937);
1320 if (sse) { 1325 if (sse) {
1321 dasm_put(Dst, 6930, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1326 dasm_put(Dst, 6947, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1322 } else { 1327 } else {
1323 } 1328 }
1324 dasm_put(Dst, 6999); 1329 dasm_put(Dst, 7016);
1325 if (sse) { 1330 if (sse) {
1326 dasm_put(Dst, 7009, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1331 dasm_put(Dst, 7026, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1327 } else { 1332 } else {
1328 } 1333 }
1329 dasm_put(Dst, 7078); 1334 dasm_put(Dst, 7095);
1330 if (sse) { 1335 if (sse) {
1331 dasm_put(Dst, 7087, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1336 dasm_put(Dst, 7104, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1332 } else { 1337 } else {
1333 } 1338 }
1334 dasm_put(Dst, 7156, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1339 dasm_put(Dst, 7173, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1335 dasm_put(Dst, 7240, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top)); 1340 dasm_put(Dst, 7257, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top));
1336 dasm_put(Dst, 7360, Dt1(->base), Dt1(->top)); 1341 dasm_put(Dst, 7377, Dt1(->base), Dt1(->top));
1337#if LJ_HASJIT 1342#if LJ_HASJIT
1338 dasm_put(Dst, 7402, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1343 dasm_put(Dst, 7419, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1339#endif 1344#endif
1340 dasm_put(Dst, 7433, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); 1345 dasm_put(Dst, 7450, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base));
1341 dasm_put(Dst, 7499, GG_DISP_STATIC*8); 1346 dasm_put(Dst, 7516, GG_DISP_STATIC*8);
1342#if LJ_HASJIT 1347#if LJ_HASJIT
1343 dasm_put(Dst, 7535); 1348 dasm_put(Dst, 7552);
1344#endif 1349#endif
1345 dasm_put(Dst, 7537); 1350 dasm_put(Dst, 7554);
1346#if LJ_HASJIT 1351#if LJ_HASJIT
1347 dasm_put(Dst, 7535); 1352 dasm_put(Dst, 7552);
1348#endif 1353#endif
1349 dasm_put(Dst, 7540); 1354 dasm_put(Dst, 7557);
1350#if LJ_HASJIT 1355#if LJ_HASJIT
1351 dasm_put(Dst, 7535); 1356 dasm_put(Dst, 7552);
1352#endif 1357#endif
1353 dasm_put(Dst, 7543); 1358 dasm_put(Dst, 7560);
1354#if LJ_HASJIT 1359#if LJ_HASJIT
1355 dasm_put(Dst, 7546, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1360 dasm_put(Dst, 7563, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1356#endif 1361#endif
1357 dasm_put(Dst, 7587); 1362 dasm_put(Dst, 7604);
1358 if (!sse) { 1363 if (!sse) {
1359 dasm_put(Dst, 7590); 1364 dasm_put(Dst, 7607);
1360 } 1365 }
1361 dasm_put(Dst, 7635, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1366 dasm_put(Dst, 7652, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1362 if (!sse) { 1367 if (!sse) {
1363 dasm_put(Dst, 7721); 1368 dasm_put(Dst, 7738);
1364 } 1369 }
1365 dasm_put(Dst, 7766, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1370 dasm_put(Dst, 7783, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1366 if (!sse) { 1371 if (!sse) {
1367 dasm_put(Dst, 7852); 1372 dasm_put(Dst, 7869);
1368 } 1373 }
1369 dasm_put(Dst, 7891, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1374 dasm_put(Dst, 7908, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1370 if (sse) { 1375 if (sse) {
1371 dasm_put(Dst, 7980, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1376 dasm_put(Dst, 7997, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1372 } else { 1377 } else {
1373 dasm_put(Dst, 8094); 1378 dasm_put(Dst, 8111);
1374 } 1379 }
1375 dasm_put(Dst, 8141); 1380 dasm_put(Dst, 8158);
1376 if (!sse) { 1381 if (!sse) {
1377 } else { 1382 } else {
1378 dasm_put(Dst, 8215); 1383 dasm_put(Dst, 8232);
1379 } 1384 }
1380 dasm_put(Dst, 8218); 1385 dasm_put(Dst, 8235);
1381 dasm_put(Dst, 8303, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1386 dasm_put(Dst, 8320, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1382 dasm_put(Dst, 8404, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1387 dasm_put(Dst, 8421, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1383 dasm_put(Dst, 8572); 1388 dasm_put(Dst, 8589);
1384 if (sse) { 1389 if (sse) {
1385 dasm_put(Dst, 8613); 1390 dasm_put(Dst, 8630);
1386 dasm_put(Dst, 8683); 1391 dasm_put(Dst, 8700);
1387 dasm_put(Dst, 8756); 1392 dasm_put(Dst, 8773);
1388 } else { 1393 } else {
1389 dasm_put(Dst, 8806); 1394 dasm_put(Dst, 8823);
1390 dasm_put(Dst, 8898); 1395 dasm_put(Dst, 8915);
1391 } 1396 }
1392 dasm_put(Dst, 8944); 1397 dasm_put(Dst, 8961);
1393 if (sse) { 1398 if (sse) {
1394 dasm_put(Dst, 8950, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1399 dasm_put(Dst, 8967, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1395 dasm_put(Dst, 9039, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1400 dasm_put(Dst, 9056, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1396 } else { 1401 } else {
1397 dasm_put(Dst, 9163); 1402 dasm_put(Dst, 9180);
1398 dasm_put(Dst, 9246); 1403 dasm_put(Dst, 9263);
1399 if (cmov) { 1404 if (cmov) {
1400 dasm_put(Dst, 9301); 1405 dasm_put(Dst, 9318);
1401 } else { 1406 } else {
1402 dasm_put(Dst, 9320); 1407 dasm_put(Dst, 9337);
1403 } 1408 }
1404 dasm_put(Dst, 9159); 1409 dasm_put(Dst, 9176);
1405 } 1410 }
1406 dasm_put(Dst, 9361); 1411 dasm_put(Dst, 9378);
1407} 1412}
1408 1413
1409/* Generate the code for a single instruction. */ 1414/* Generate the code for a single instruction. */
1410static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1415static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1411{ 1416{
1412 int vk = 0; 1417 int vk = 0;
1413 dasm_put(Dst, 9387, defop); 1418 dasm_put(Dst, 155, defop);
1414 1419
1415 switch (op) { 1420 switch (op) {
1416 1421
@@ -1419,602 +1424,602 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1419 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1424 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1420 1425
1421 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1426 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1422 dasm_put(Dst, 9389, LJ_TISNUM, LJ_TISNUM); 1427 dasm_put(Dst, 9404, LJ_TISNUM, LJ_TISNUM);
1423 if (sse) { 1428 if (sse) {
1424 dasm_put(Dst, 9410);
1425 } else {
1426 dasm_put(Dst, 9425); 1429 dasm_put(Dst, 9425);
1430 } else {
1431 dasm_put(Dst, 9440);
1427 if (cmov) { 1432 if (cmov) {
1428 dasm_put(Dst, 9435); 1433 dasm_put(Dst, 9450);
1429 } else { 1434 } else {
1430 dasm_put(Dst, 9441); 1435 dasm_put(Dst, 9456);
1431 } 1436 }
1432 } 1437 }
1433 switch (op) { 1438 switch (op) {
1434 case BC_ISLT: 1439 case BC_ISLT:
1435 dasm_put(Dst, 9448); 1440 dasm_put(Dst, 9463);
1436 break; 1441 break;
1437 case BC_ISGE: 1442 case BC_ISGE:
1438 dasm_put(Dst, 9241); 1443 dasm_put(Dst, 9258);
1439 break; 1444 break;
1440 case BC_ISLE: 1445 case BC_ISLE:
1441 dasm_put(Dst, 6273); 1446 dasm_put(Dst, 6290);
1442 break; 1447 break;
1443 case BC_ISGT: 1448 case BC_ISGT:
1444 dasm_put(Dst, 9453); 1449 dasm_put(Dst, 9468);
1445 break; 1450 break;
1446 default: break; /* Shut up GCC. */ 1451 default: break; /* Shut up GCC. */
1447 } 1452 }
1448 dasm_put(Dst, 9458, -BCBIAS_J*4); 1453 dasm_put(Dst, 9473, -BCBIAS_J*4);
1449 break; 1454 break;
1450 1455
1451 case BC_ISEQV: case BC_ISNEV: 1456 case BC_ISEQV: case BC_ISNEV:
1452 vk = op == BC_ISEQV; 1457 vk = op == BC_ISEQV;
1453 dasm_put(Dst, 9492, LJ_TISNUM, LJ_TISNUM); 1458 dasm_put(Dst, 9507, LJ_TISNUM, LJ_TISNUM);
1454 if (sse) { 1459 if (sse) {
1455 dasm_put(Dst, 9518); 1460 dasm_put(Dst, 9533);
1456 } else { 1461 } else {
1457 dasm_put(Dst, 9530); 1462 dasm_put(Dst, 9545);
1458 if (cmov) { 1463 if (cmov) {
1459 dasm_put(Dst, 9435); 1464 dasm_put(Dst, 9450);
1460 } else { 1465 } else {
1461 dasm_put(Dst, 9441); 1466 dasm_put(Dst, 9456);
1462 } 1467 }
1463 } 1468 }
1464 iseqne_fp: 1469 iseqne_fp:
1465 if (vk) { 1470 if (vk) {
1466 dasm_put(Dst, 9537); 1471 dasm_put(Dst, 9552);
1467 } else { 1472 } else {
1468 dasm_put(Dst, 9546); 1473 dasm_put(Dst, 9561);
1469 } 1474 }
1470 iseqne_end: 1475 iseqne_end:
1471 if (vk) { 1476 if (vk) {
1472 dasm_put(Dst, 9555, -BCBIAS_J*4);
1473 } else {
1474 dasm_put(Dst, 9570, -BCBIAS_J*4); 1477 dasm_put(Dst, 9570, -BCBIAS_J*4);
1478 } else {
1479 dasm_put(Dst, 9585, -BCBIAS_J*4);
1475 } 1480 }
1476 dasm_put(Dst, 7567); 1481 dasm_put(Dst, 7584);
1477 if (op == BC_ISEQV || op == BC_ISNEV) { 1482 if (op == BC_ISEQV || op == BC_ISNEV) {
1478 dasm_put(Dst, 9585, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1483 dasm_put(Dst, 9600, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1479 if (vk) { 1484 if (vk) {
1480 dasm_put(Dst, 9643); 1485 dasm_put(Dst, 9658);
1481 } else { 1486 } else {
1482 dasm_put(Dst, 9647); 1487 dasm_put(Dst, 9662);
1483 } 1488 }
1484 dasm_put(Dst, 9653); 1489 dasm_put(Dst, 9668);
1485 } 1490 }
1486 break; 1491 break;
1487 case BC_ISEQS: case BC_ISNES: 1492 case BC_ISEQS: case BC_ISNES:
1488 vk = op == BC_ISEQS; 1493 vk = op == BC_ISEQS;
1489 dasm_put(Dst, 9658, LJ_TSTR); 1494 dasm_put(Dst, 9673, LJ_TSTR);
1490 iseqne_test: 1495 iseqne_test:
1491 if (vk) { 1496 if (vk) {
1492 dasm_put(Dst, 9541); 1497 dasm_put(Dst, 9556);
1493 } else { 1498 } else {
1494 dasm_put(Dst, 8893); 1499 dasm_put(Dst, 8910);
1495 } 1500 }
1496 goto iseqne_end; 1501 goto iseqne_end;
1497 case BC_ISEQN: case BC_ISNEN: 1502 case BC_ISEQN: case BC_ISNEN:
1498 vk = op == BC_ISEQN; 1503 vk = op == BC_ISEQN;
1499 dasm_put(Dst, 9682, LJ_TISNUM); 1504 dasm_put(Dst, 9697, LJ_TISNUM);
1500 if (sse) { 1505 if (sse) {
1501 dasm_put(Dst, 9696); 1506 dasm_put(Dst, 9711);
1502 } else { 1507 } else {
1503 dasm_put(Dst, 9708); 1508 dasm_put(Dst, 9723);
1504 if (cmov) { 1509 if (cmov) {
1505 dasm_put(Dst, 9435); 1510 dasm_put(Dst, 9450);
1506 } else { 1511 } else {
1507 dasm_put(Dst, 9441); 1512 dasm_put(Dst, 9456);
1508 } 1513 }
1509 } 1514 }
1510 goto iseqne_fp; 1515 goto iseqne_fp;
1511 case BC_ISEQP: case BC_ISNEP: 1516 case BC_ISEQP: case BC_ISNEP:
1512 vk = op == BC_ISEQP; 1517 vk = op == BC_ISEQP;
1513 dasm_put(Dst, 9715); 1518 dasm_put(Dst, 9730);
1514 goto iseqne_test; 1519 goto iseqne_test;
1515 1520
1516 /* -- Unary test and copy ops ------------------------------------------- */ 1521 /* -- Unary test and copy ops ------------------------------------------- */
1517 1522
1518 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1523 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1519 dasm_put(Dst, 9727, LJ_TISTRUECOND); 1524 dasm_put(Dst, 9742, LJ_TISTRUECOND);
1520 if (op == BC_IST || op == BC_ISTC) { 1525 if (op == BC_IST || op == BC_ISTC) {
1521 dasm_put(Dst, 9739); 1526 dasm_put(Dst, 9754);
1522 } else { 1527 } else {
1523 dasm_put(Dst, 9744); 1528 dasm_put(Dst, 9759);
1524 } 1529 }
1525 if (op == BC_ISTC || op == BC_ISFC) { 1530 if (op == BC_ISTC || op == BC_ISFC) {
1526 dasm_put(Dst, 9749); 1531 dasm_put(Dst, 9764);
1527 } 1532 }
1528 dasm_put(Dst, 9760, -BCBIAS_J*4); 1533 dasm_put(Dst, 9775, -BCBIAS_J*4);
1529 break; 1534 break;
1530 1535
1531 /* -- Unary ops --------------------------------------------------------- */ 1536 /* -- Unary ops --------------------------------------------------------- */
1532 1537
1533 case BC_MOV: 1538 case BC_MOV:
1534 dasm_put(Dst, 9792); 1539 dasm_put(Dst, 9807);
1535 break; 1540 break;
1536 case BC_NOT: 1541 case BC_NOT:
1537 dasm_put(Dst, 9826, LJ_TISTRUECOND, LJ_TTRUE); 1542 dasm_put(Dst, 9841, LJ_TISTRUECOND, LJ_TTRUE);
1538 break; 1543 break;
1539 case BC_UNM: 1544 case BC_UNM:
1540 dasm_put(Dst, 9862, LJ_TISNUM); 1545 dasm_put(Dst, 9877, LJ_TISNUM);
1541 if (sse) { 1546 if (sse) {
1542 dasm_put(Dst, 9873, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1547 dasm_put(Dst, 9888, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1543 } else { 1548 } else {
1544 dasm_put(Dst, 9898); 1549 dasm_put(Dst, 9913);
1545 } 1550 }
1546 dasm_put(Dst, 7567); 1551 dasm_put(Dst, 7584);
1547 break; 1552 break;
1548 case BC_LEN: 1553 case BC_LEN:
1549 dasm_put(Dst, 9907, LJ_TSTR); 1554 dasm_put(Dst, 9922, LJ_TSTR);
1550 if (sse) { 1555 if (sse) {
1551 dasm_put(Dst, 9921, Dt5(->len)); 1556 dasm_put(Dst, 9936, Dt5(->len));
1552 } else { 1557 } else {
1553 dasm_put(Dst, 9939, Dt5(->len)); 1558 dasm_put(Dst, 9954, Dt5(->len));
1554 } 1559 }
1555 dasm_put(Dst, 9948, LJ_TTAB); 1560 dasm_put(Dst, 9963, LJ_TTAB);
1556 if (sse) { 1561 if (sse) {
1557 dasm_put(Dst, 9989); 1562 dasm_put(Dst, 10004);
1558 } else { 1563 } else {
1559 } 1564 }
1560 dasm_put(Dst, 9998); 1565 dasm_put(Dst, 10013);
1561 break; 1566 break;
1562 1567
1563 /* -- Binary ops -------------------------------------------------------- */ 1568 /* -- Binary ops -------------------------------------------------------- */
1564 1569
1565 1570
1566 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1571 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1567 dasm_put(Dst, 10008); 1572 dasm_put(Dst, 10023);
1568 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1573 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1569 switch (vk) { 1574 switch (vk) {
1570 case 0: 1575 case 0:
1571 dasm_put(Dst, 10016, LJ_TISNUM); 1576 dasm_put(Dst, 10031, LJ_TISNUM);
1572 if (sse) { 1577 if (sse) {
1573 dasm_put(Dst, 10028); 1578 dasm_put(Dst, 10043);
1574 } else { 1579 } else {
1575 dasm_put(Dst, 10042); 1580 dasm_put(Dst, 10057);
1576 } 1581 }
1577 break; 1582 break;
1578 case 1: 1583 case 1:
1579 dasm_put(Dst, 10050, LJ_TISNUM); 1584 dasm_put(Dst, 10065, LJ_TISNUM);
1580 if (sse) { 1585 if (sse) {
1581 dasm_put(Dst, 10062); 1586 dasm_put(Dst, 10077);
1582 } else { 1587 } else {
1583 dasm_put(Dst, 10076); 1588 dasm_put(Dst, 10091);
1584 } 1589 }
1585 break; 1590 break;
1586 default: 1591 default:
1587 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1592 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1588 if (sse) { 1593 if (sse) {
1589 dasm_put(Dst, 10106); 1594 dasm_put(Dst, 10121);
1590 } else { 1595 } else {
1591 dasm_put(Dst, 10120); 1596 dasm_put(Dst, 10135);
1592 } 1597 }
1593 break; 1598 break;
1594 } 1599 }
1595 if (sse) { 1600 if (sse) {
1596 dasm_put(Dst, 9891); 1601 dasm_put(Dst, 9906);
1597 } else { 1602 } else {
1598 dasm_put(Dst, 9903); 1603 dasm_put(Dst, 9918);
1599 } 1604 }
1600 dasm_put(Dst, 7567); 1605 dasm_put(Dst, 7584);
1601 break; 1606 break;
1602 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1607 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1603 dasm_put(Dst, 10008); 1608 dasm_put(Dst, 10023);
1604 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1609 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1605 switch (vk) { 1610 switch (vk) {
1606 case 0: 1611 case 0:
1607 dasm_put(Dst, 10016, LJ_TISNUM); 1612 dasm_put(Dst, 10031, LJ_TISNUM);
1608 if (sse) { 1613 if (sse) {
1609 dasm_put(Dst, 10128); 1614 dasm_put(Dst, 10143);
1610 } else { 1615 } else {
1611 dasm_put(Dst, 10142); 1616 dasm_put(Dst, 10157);
1612 } 1617 }
1613 break; 1618 break;
1614 case 1: 1619 case 1:
1615 dasm_put(Dst, 10050, LJ_TISNUM); 1620 dasm_put(Dst, 10065, LJ_TISNUM);
1616 if (sse) { 1621 if (sse) {
1617 dasm_put(Dst, 10150); 1622 dasm_put(Dst, 10165);
1618 } else { 1623 } else {
1619 dasm_put(Dst, 10164); 1624 dasm_put(Dst, 10179);
1620 } 1625 }
1621 break; 1626 break;
1622 default: 1627 default:
1623 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1628 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1624 if (sse) { 1629 if (sse) {
1625 dasm_put(Dst, 10172); 1630 dasm_put(Dst, 10187);
1626 } else { 1631 } else {
1627 dasm_put(Dst, 10186); 1632 dasm_put(Dst, 10201);
1628 } 1633 }
1629 break; 1634 break;
1630 } 1635 }
1631 if (sse) { 1636 if (sse) {
1632 dasm_put(Dst, 9891); 1637 dasm_put(Dst, 9906);
1633 } else { 1638 } else {
1634 dasm_put(Dst, 9903); 1639 dasm_put(Dst, 9918);
1635 } 1640 }
1636 dasm_put(Dst, 7567); 1641 dasm_put(Dst, 7584);
1637 break; 1642 break;
1638 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1643 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1639 dasm_put(Dst, 10008); 1644 dasm_put(Dst, 10023);
1640 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1645 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1641 switch (vk) { 1646 switch (vk) {
1642 case 0: 1647 case 0:
1643 dasm_put(Dst, 10016, LJ_TISNUM); 1648 dasm_put(Dst, 10031, LJ_TISNUM);
1644 if (sse) { 1649 if (sse) {
1645 dasm_put(Dst, 10194); 1650 dasm_put(Dst, 10209);
1646 } else { 1651 } else {
1647 dasm_put(Dst, 10208); 1652 dasm_put(Dst, 10223);
1648 } 1653 }
1649 break; 1654 break;
1650 case 1: 1655 case 1:
1651 dasm_put(Dst, 10050, LJ_TISNUM); 1656 dasm_put(Dst, 10065, LJ_TISNUM);
1652 if (sse) { 1657 if (sse) {
1653 dasm_put(Dst, 10216); 1658 dasm_put(Dst, 10231);
1654 } else { 1659 } else {
1655 dasm_put(Dst, 10230); 1660 dasm_put(Dst, 10245);
1656 } 1661 }
1657 break; 1662 break;
1658 default: 1663 default:
1659 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1664 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1660 if (sse) { 1665 if (sse) {
1661 dasm_put(Dst, 10238); 1666 dasm_put(Dst, 10253);
1662 } else { 1667 } else {
1663 dasm_put(Dst, 10252); 1668 dasm_put(Dst, 10267);
1664 } 1669 }
1665 break; 1670 break;
1666 } 1671 }
1667 if (sse) { 1672 if (sse) {
1668 dasm_put(Dst, 9891); 1673 dasm_put(Dst, 9906);
1669 } else { 1674 } else {
1670 dasm_put(Dst, 9903); 1675 dasm_put(Dst, 9918);
1671 } 1676 }
1672 dasm_put(Dst, 7567); 1677 dasm_put(Dst, 7584);
1673 break; 1678 break;
1674 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1679 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1675 dasm_put(Dst, 10008); 1680 dasm_put(Dst, 10023);
1676 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1681 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1677 switch (vk) { 1682 switch (vk) {
1678 case 0: 1683 case 0:
1679 dasm_put(Dst, 10016, LJ_TISNUM); 1684 dasm_put(Dst, 10031, LJ_TISNUM);
1680 if (sse) { 1685 if (sse) {
1681 dasm_put(Dst, 10260); 1686 dasm_put(Dst, 10275);
1682 } else { 1687 } else {
1683 dasm_put(Dst, 10274); 1688 dasm_put(Dst, 10289);
1684 } 1689 }
1685 break; 1690 break;
1686 case 1: 1691 case 1:
1687 dasm_put(Dst, 10050, LJ_TISNUM); 1692 dasm_put(Dst, 10065, LJ_TISNUM);
1688 if (sse) { 1693 if (sse) {
1689 dasm_put(Dst, 10282); 1694 dasm_put(Dst, 10297);
1690 } else { 1695 } else {
1691 dasm_put(Dst, 10296); 1696 dasm_put(Dst, 10311);
1692 } 1697 }
1693 break; 1698 break;
1694 default: 1699 default:
1695 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1700 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1696 if (sse) { 1701 if (sse) {
1697 dasm_put(Dst, 10304); 1702 dasm_put(Dst, 10319);
1698 } else { 1703 } else {
1699 dasm_put(Dst, 10318); 1704 dasm_put(Dst, 10333);
1700 } 1705 }
1701 break; 1706 break;
1702 } 1707 }
1703 if (sse) { 1708 if (sse) {
1704 dasm_put(Dst, 9891); 1709 dasm_put(Dst, 9906);
1705 } else { 1710 } else {
1706 dasm_put(Dst, 9903); 1711 dasm_put(Dst, 9918);
1707 } 1712 }
1708 dasm_put(Dst, 7567); 1713 dasm_put(Dst, 7584);
1709 break; 1714 break;
1710 case BC_MODVN: 1715 case BC_MODVN:
1711 dasm_put(Dst, 10008); 1716 dasm_put(Dst, 10023);
1712 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1717 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1713 switch (vk) { 1718 switch (vk) {
1714 case 0: 1719 case 0:
1715 dasm_put(Dst, 10016, LJ_TISNUM); 1720 dasm_put(Dst, 10031, LJ_TISNUM);
1716 if (sse) { 1721 if (sse) {
1717 dasm_put(Dst, 10326); 1722 dasm_put(Dst, 10341);
1718 } else { 1723 } else {
1719 dasm_put(Dst, 10340); 1724 dasm_put(Dst, 10355);
1720 } 1725 }
1721 break; 1726 break;
1722 case 1: 1727 case 1:
1723 dasm_put(Dst, 10050, LJ_TISNUM); 1728 dasm_put(Dst, 10065, LJ_TISNUM);
1724 if (sse) { 1729 if (sse) {
1725 dasm_put(Dst, 10348); 1730 dasm_put(Dst, 10363);
1726 } else { 1731 } else {
1727 dasm_put(Dst, 10362); 1732 dasm_put(Dst, 10377);
1728 } 1733 }
1729 break; 1734 break;
1730 default: 1735 default:
1731 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1736 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1732 if (sse) { 1737 if (sse) {
1733 dasm_put(Dst, 10370); 1738 dasm_put(Dst, 10385);
1734 } else { 1739 } else {
1735 dasm_put(Dst, 10384); 1740 dasm_put(Dst, 10399);
1736 } 1741 }
1737 break; 1742 break;
1738 } 1743 }
1739 dasm_put(Dst, 10392); 1744 dasm_put(Dst, 10407);
1740 if (sse) { 1745 if (sse) {
1741 dasm_put(Dst, 9891); 1746 dasm_put(Dst, 9906);
1742 } else { 1747 } else {
1743 dasm_put(Dst, 9903); 1748 dasm_put(Dst, 9918);
1744 } 1749 }
1745 dasm_put(Dst, 7567); 1750 dasm_put(Dst, 7584);
1746 break; 1751 break;
1747 case BC_MODNV: case BC_MODVV: 1752 case BC_MODNV: case BC_MODVV:
1748 dasm_put(Dst, 10008); 1753 dasm_put(Dst, 10023);
1749 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1754 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1750 switch (vk) { 1755 switch (vk) {
1751 case 0: 1756 case 0:
1752 dasm_put(Dst, 10016, LJ_TISNUM); 1757 dasm_put(Dst, 10031, LJ_TISNUM);
1753 if (sse) { 1758 if (sse) {
1754 dasm_put(Dst, 10326); 1759 dasm_put(Dst, 10341);
1755 } else { 1760 } else {
1756 dasm_put(Dst, 10340); 1761 dasm_put(Dst, 10355);
1757 } 1762 }
1758 break; 1763 break;
1759 case 1: 1764 case 1:
1760 dasm_put(Dst, 10050, LJ_TISNUM); 1765 dasm_put(Dst, 10065, LJ_TISNUM);
1761 if (sse) { 1766 if (sse) {
1762 dasm_put(Dst, 10348); 1767 dasm_put(Dst, 10363);
1763 } else { 1768 } else {
1764 dasm_put(Dst, 10362); 1769 dasm_put(Dst, 10377);
1765 } 1770 }
1766 break; 1771 break;
1767 default: 1772 default:
1768 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1773 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1769 if (sse) { 1774 if (sse) {
1770 dasm_put(Dst, 10370); 1775 dasm_put(Dst, 10385);
1771 } else { 1776 } else {
1772 dasm_put(Dst, 10384); 1777 dasm_put(Dst, 10399);
1773 } 1778 }
1774 break; 1779 break;
1775 } 1780 }
1776 dasm_put(Dst, 10398); 1781 dasm_put(Dst, 10413);
1777 break; 1782 break;
1778 case BC_POW: 1783 case BC_POW:
1779 dasm_put(Dst, 10008); 1784 dasm_put(Dst, 10023);
1780 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1785 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1781 switch (vk) { 1786 switch (vk) {
1782 case 0: 1787 case 0:
1783 dasm_put(Dst, 10016, LJ_TISNUM); 1788 dasm_put(Dst, 10031, LJ_TISNUM);
1784 if (sse) { 1789 if (sse) {
1785 dasm_put(Dst, 10326); 1790 dasm_put(Dst, 10341);
1786 } else { 1791 } else {
1787 dasm_put(Dst, 10340); 1792 dasm_put(Dst, 10355);
1788 } 1793 }
1789 break; 1794 break;
1790 case 1: 1795 case 1:
1791 dasm_put(Dst, 10050, LJ_TISNUM); 1796 dasm_put(Dst, 10065, LJ_TISNUM);
1792 if (sse) { 1797 if (sse) {
1793 dasm_put(Dst, 10348); 1798 dasm_put(Dst, 10363);
1794 } else { 1799 } else {
1795 dasm_put(Dst, 10362); 1800 dasm_put(Dst, 10377);
1796 } 1801 }
1797 break; 1802 break;
1798 default: 1803 default:
1799 dasm_put(Dst, 10084, LJ_TISNUM, LJ_TISNUM); 1804 dasm_put(Dst, 10099, LJ_TISNUM, LJ_TISNUM);
1800 if (sse) { 1805 if (sse) {
1801 dasm_put(Dst, 10370); 1806 dasm_put(Dst, 10385);
1802 } else { 1807 } else {
1803 dasm_put(Dst, 10384); 1808 dasm_put(Dst, 10399);
1804 } 1809 }
1805 break; 1810 break;
1806 } 1811 }
1807 dasm_put(Dst, 10403); 1812 dasm_put(Dst, 10418);
1808 if (sse) { 1813 if (sse) {
1809 dasm_put(Dst, 9891); 1814 dasm_put(Dst, 9906);
1810 } else { 1815 } else {
1811 dasm_put(Dst, 9903); 1816 dasm_put(Dst, 9918);
1812 } 1817 }
1813 dasm_put(Dst, 7567); 1818 dasm_put(Dst, 7584);
1814 break; 1819 break;
1815 1820
1816 case BC_CAT: 1821 case BC_CAT:
1817 dasm_put(Dst, 10407, Dt1(->base), Dt1(->base)); 1822 dasm_put(Dst, 10422, Dt1(->base), Dt1(->base));
1818 break; 1823 break;
1819 1824
1820 /* -- Constant ops ------------------------------------------------------ */ 1825 /* -- Constant ops ------------------------------------------------------ */
1821 1826
1822 case BC_KSTR: 1827 case BC_KSTR:
1823 dasm_put(Dst, 10497, LJ_TSTR); 1828 dasm_put(Dst, 10512, LJ_TSTR);
1824 break; 1829 break;
1825 case BC_KSHORT: 1830 case BC_KSHORT:
1826 if (sse) { 1831 if (sse) {
1827 dasm_put(Dst, 10532);
1828 } else {
1829 dasm_put(Dst, 10547); 1832 dasm_put(Dst, 10547);
1833 } else {
1834 dasm_put(Dst, 10562);
1830 } 1835 }
1831 dasm_put(Dst, 7567); 1836 dasm_put(Dst, 7584);
1832 break; 1837 break;
1833 case BC_KNUM: 1838 case BC_KNUM:
1834 if (sse) { 1839 if (sse) {
1835 dasm_put(Dst, 10555); 1840 dasm_put(Dst, 10570);
1836 } else { 1841 } else {
1837 dasm_put(Dst, 10568); 1842 dasm_put(Dst, 10583);
1838 } 1843 }
1839 dasm_put(Dst, 7567); 1844 dasm_put(Dst, 7584);
1840 break; 1845 break;
1841 case BC_KPRI: 1846 case BC_KPRI:
1842 dasm_put(Dst, 10575); 1847 dasm_put(Dst, 10590);
1843 break; 1848 break;
1844 case BC_KNIL: 1849 case BC_KNIL:
1845 dasm_put(Dst, 10603, LJ_TNIL); 1850 dasm_put(Dst, 10618, LJ_TNIL);
1846 break; 1851 break;
1847 1852
1848 /* -- Upvalue and function ops ------------------------------------------ */ 1853 /* -- Upvalue and function ops ------------------------------------------ */
1849 1854
1850 case BC_UGET: 1855 case BC_UGET:
1851 dasm_put(Dst, 10650, offsetof(GCfuncL, uvptr), DtA(->v)); 1856 dasm_put(Dst, 10665, offsetof(GCfuncL, uvptr), DtA(->v));
1852 break; 1857 break;
1853 case BC_USETV: 1858 case BC_USETV:
1854#define TV2MARKOFS \ 1859#define TV2MARKOFS \
1855 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1860 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1856 dasm_put(Dst, 10695, 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); 1861 dasm_put(Dst, 10710, 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);
1857 dasm_put(Dst, 10786); 1862 dasm_put(Dst, 10801);
1858 break; 1863 break;
1859#undef TV2MARKOFS 1864#undef TV2MARKOFS
1860 case BC_USETS: 1865 case BC_USETS:
1861 dasm_put(Dst, 10798, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1866 dasm_put(Dst, 10813, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1862 break; 1867 break;
1863 case BC_USETN: 1868 case BC_USETN:
1864 dasm_put(Dst, 10891); 1869 dasm_put(Dst, 10906);
1865 if (sse) { 1870 if (sse) {
1866 dasm_put(Dst, 10896); 1871 dasm_put(Dst, 10911);
1867 } else { 1872 } else {
1868 dasm_put(Dst, 9711); 1873 dasm_put(Dst, 9726);
1869 } 1874 }
1870 dasm_put(Dst, 10903, offsetof(GCfuncL, uvptr), DtA(->v)); 1875 dasm_put(Dst, 10918, offsetof(GCfuncL, uvptr), DtA(->v));
1871 if (sse) { 1876 if (sse) {
1872 dasm_put(Dst, 4836); 1877 dasm_put(Dst, 4853);
1873 } else { 1878 } else {
1874 dasm_put(Dst, 4842); 1879 dasm_put(Dst, 4859);
1875 } 1880 }
1876 dasm_put(Dst, 7567); 1881 dasm_put(Dst, 7584);
1877 break; 1882 break;
1878 case BC_USETP: 1883 case BC_USETP:
1879 dasm_put(Dst, 10912, offsetof(GCfuncL, uvptr), DtA(->v)); 1884 dasm_put(Dst, 10927, offsetof(GCfuncL, uvptr), DtA(->v));
1880 break; 1885 break;
1881 case BC_UCLO: 1886 case BC_UCLO:
1882 dasm_put(Dst, 10951, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1887 dasm_put(Dst, 10966, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1883 break; 1888 break;
1884 1889
1885 case BC_FNEW: 1890 case BC_FNEW:
1886 dasm_put(Dst, 11006, Dt1(->base), Dt1(->base), LJ_TFUNC); 1891 dasm_put(Dst, 11021, Dt1(->base), Dt1(->base), LJ_TFUNC);
1887 break; 1892 break;
1888 1893
1889 /* -- Table ops --------------------------------------------------------- */ 1894 /* -- Table ops --------------------------------------------------------- */
1890 1895
1891 case BC_TNEW: 1896 case BC_TNEW:
1892 dasm_put(Dst, 11072, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1897 dasm_put(Dst, 11087, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1893 break; 1898 break;
1894 case BC_TDUP: 1899 case BC_TDUP:
1895 dasm_put(Dst, 11193, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1900 dasm_put(Dst, 11208, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1896 break; 1901 break;
1897 1902
1898 case BC_GGET: 1903 case BC_GGET:
1899 dasm_put(Dst, 11288, Dt7(->env)); 1904 dasm_put(Dst, 11303, Dt7(->env));
1900 break; 1905 break;
1901 case BC_GSET: 1906 case BC_GSET:
1902 dasm_put(Dst, 11307, Dt7(->env)); 1907 dasm_put(Dst, 11322, Dt7(->env));
1903 break; 1908 break;
1904 1909
1905 case BC_TGETV: 1910 case BC_TGETV:
1906 dasm_put(Dst, 11326, LJ_TTAB, LJ_TISNUM); 1911 dasm_put(Dst, 11341, LJ_TTAB, LJ_TISNUM);
1907 if (sse) { 1912 if (sse) {
1908 dasm_put(Dst, 11359); 1913 dasm_put(Dst, 11374);
1909 } else { 1914 } else {
1910 } 1915 }
1911 dasm_put(Dst, 11380, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1916 dasm_put(Dst, 11395, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1912 dasm_put(Dst, 11473, LJ_TSTR); 1917 dasm_put(Dst, 11488, LJ_TSTR);
1913 break; 1918 break;
1914 case BC_TGETS: 1919 case BC_TGETS:
1915 dasm_put(Dst, 11491, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1920 dasm_put(Dst, 11506, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1916 dasm_put(Dst, 11576, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1921 dasm_put(Dst, 11591, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1917 break; 1922 break;
1918 case BC_TGETB: 1923 case BC_TGETB:
1919 dasm_put(Dst, 11648, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1924 dasm_put(Dst, 11663, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1920 dasm_put(Dst, 9998); 1925 dasm_put(Dst, 10013);
1921 break; 1926 break;
1922 1927
1923 case BC_TSETV: 1928 case BC_TSETV:
1924 dasm_put(Dst, 11748, LJ_TTAB, LJ_TISNUM); 1929 dasm_put(Dst, 11763, LJ_TTAB, LJ_TISNUM);
1925 if (sse) { 1930 if (sse) {
1926 dasm_put(Dst, 11359); 1931 dasm_put(Dst, 11374);
1927 } else { 1932 } else {
1928 } 1933 }
1929 dasm_put(Dst, 11781, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1934 dasm_put(Dst, 11796, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1930 dasm_put(Dst, 11865, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1935 dasm_put(Dst, 11880, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1931 break; 1936 break;
1932 case BC_TSETS: 1937 case BC_TSETS:
1933 dasm_put(Dst, 11927, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1938 dasm_put(Dst, 11942, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1934 dasm_put(Dst, 12003, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1939 dasm_put(Dst, 12018, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1935 dasm_put(Dst, 12096, 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)); 1940 dasm_put(Dst, 12111, 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));
1936 break; 1941 break;
1937 case BC_TSETB: 1942 case BC_TSETB:
1938 dasm_put(Dst, 12187, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1943 dasm_put(Dst, 12202, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1939 dasm_put(Dst, 12286, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1944 dasm_put(Dst, 12301, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1940 break; 1945 break;
1941 1946
1942 case BC_TSETM: 1947 case BC_TSETM:
1943 dasm_put(Dst, 12332); 1948 dasm_put(Dst, 12347);
1944 if (sse) { 1949 if (sse) {
1945 dasm_put(Dst, 10896); 1950 dasm_put(Dst, 10911);
1946 } else { 1951 } else {
1947 } 1952 }
1948 dasm_put(Dst, 12337, Dt6(->marked), LJ_GC_BLACK); 1953 dasm_put(Dst, 12352, Dt6(->marked), LJ_GC_BLACK);
1949 if (sse) { 1954 if (sse) {
1950 dasm_put(Dst, 12362); 1955 dasm_put(Dst, 12377);
1951 } else { 1956 } else {
1952 } 1957 }
1953 dasm_put(Dst, 12369, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1958 dasm_put(Dst, 12384, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
1954 dasm_put(Dst, 12495, Dt6(->gclist)); 1959 dasm_put(Dst, 12510, Dt6(->gclist));
1955 break; 1960 break;
1956 1961
1957 /* -- Calls and vararg handling ----------------------------------------- */ 1962 /* -- Calls and vararg handling ----------------------------------------- */
1958 1963
1959 case BC_CALL: case BC_CALLM: 1964 case BC_CALL: case BC_CALLM:
1960 dasm_put(Dst, 10012); 1965 dasm_put(Dst, 10027);
1961 if (op == BC_CALLM) { 1966 if (op == BC_CALLM) {
1962 dasm_put(Dst, 12503); 1967 dasm_put(Dst, 12518);
1963 } 1968 }
1964 dasm_put(Dst, 12508, LJ_TFUNC, Dt7(->gate)); 1969 dasm_put(Dst, 12523, LJ_TFUNC, Dt7(->gate));
1965 break; 1970 break;
1966 1971
1967 case BC_CALLMT: 1972 case BC_CALLMT:
1968 dasm_put(Dst, 12503); 1973 dasm_put(Dst, 12518);
1969 break; 1974 break;
1970 case BC_CALLT: 1975 case BC_CALLT:
1971 dasm_put(Dst, 12531, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate)); 1976 dasm_put(Dst, 12546, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate));
1972 dasm_put(Dst, 12636, FRAME_TYPE, Dt7(->pt), Dt9(->k)); 1977 dasm_put(Dst, 12651, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1973 break; 1978 break;
1974 1979
1975 case BC_ITERC: 1980 case BC_ITERC:
1976 dasm_put(Dst, 12694, LJ_TFUNC, Dt7(->gate)); 1981 dasm_put(Dst, 12709, LJ_TFUNC, Dt7(->gate));
1977 break; 1982 break;
1978 1983
1979 case BC_VARG: 1984 case BC_VARG:
1980 dasm_put(Dst, 12756, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL); 1985 dasm_put(Dst, 12771, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1981 dasm_put(Dst, 12901, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1986 dasm_put(Dst, 12916, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1982 break; 1987 break;
1983 1988
1984 /* -- Returns ----------------------------------------------------------- */ 1989 /* -- Returns ----------------------------------------------------------- */
1985 1990
1986 case BC_RETM: 1991 case BC_RETM:
1987 dasm_put(Dst, 12503); 1992 dasm_put(Dst, 12518);
1988 break; 1993 break;
1989 1994
1990 case BC_RET: case BC_RET0: case BC_RET1: 1995 case BC_RET: case BC_RET0: case BC_RET1:
1991 if (op != BC_RET0) { 1996 if (op != BC_RET0) {
1992 dasm_put(Dst, 13000); 1997 dasm_put(Dst, 13015);
1993 } 1998 }
1994 dasm_put(Dst, 13004, FRAME_TYPE); 1999 dasm_put(Dst, 13019, FRAME_TYPE);
1995 switch (op) { 2000 switch (op) {
1996 case BC_RET: 2001 case BC_RET:
1997 dasm_put(Dst, 13023); 2002 dasm_put(Dst, 13038);
1998 break; 2003 break;
1999 case BC_RET1: 2004 case BC_RET1:
2000 dasm_put(Dst, 13081); 2005 dasm_put(Dst, 13096);
2001 /* fallthrough */ 2006 /* fallthrough */
2002 case BC_RET0: 2007 case BC_RET0:
2003 dasm_put(Dst, 13097); 2008 dasm_put(Dst, 13112);
2004 default: 2009 default:
2005 break; 2010 break;
2006 } 2011 }
2007 dasm_put(Dst, 13108, Dt7(->pt), Dt9(->k)); 2012 dasm_put(Dst, 13123, Dt7(->pc), PC2PROTO(k));
2008 if (op == BC_RET) { 2013 if (op == BC_RET) {
2009 dasm_put(Dst, 13152, LJ_TNIL); 2014 dasm_put(Dst, 13167, LJ_TNIL);
2010 } else { 2015 } else {
2011 dasm_put(Dst, 13161, LJ_TNIL); 2016 dasm_put(Dst, 13176, LJ_TNIL);
2012 } 2017 }
2013 dasm_put(Dst, 13168); 2018 dasm_put(Dst, 13183);
2014 if (op != BC_RET0) { 2019 if (op != BC_RET0) {
2015 dasm_put(Dst, 13189); 2020 dasm_put(Dst, 13204);
2016 } 2021 }
2017 dasm_put(Dst, 4927); 2022 dasm_put(Dst, 4944);
2018 break; 2023 break;
2019 2024
2020 /* -- Loops and branches ------------------------------------------------ */ 2025 /* -- Loops and branches ------------------------------------------------ */
@@ -2022,7 +2027,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2022 2027
2023 case BC_FORL: 2028 case BC_FORL:
2024#if LJ_HASJIT 2029#if LJ_HASJIT
2025 dasm_put(Dst, 13193, HOTCOUNT_PCMASK, GG_DISP2HOT); 2030 dasm_put(Dst, 13208, HOTCOUNT_PCMASK, GG_DISP2HOT);
2026#endif 2031#endif
2027 break; 2032 break;
2028 2033
@@ -2034,57 +2039,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2034 case BC_FORI: 2039 case BC_FORI:
2035 case BC_IFORL: 2040 case BC_IFORL:
2036 vk = (op == BC_IFORL || op == BC_JFORL); 2041 vk = (op == BC_IFORL || op == BC_JFORL);
2037 dasm_put(Dst, 13214); 2042 dasm_put(Dst, 13229);
2038 if (!vk) { 2043 if (!vk) {
2039 dasm_put(Dst, 13218, LJ_TISNUM, LJ_TISNUM); 2044 dasm_put(Dst, 13233, LJ_TISNUM, LJ_TISNUM);
2040 } 2045 }
2041 dasm_put(Dst, 13237); 2046 dasm_put(Dst, 13252);
2042 if (!vk) { 2047 if (!vk) {
2043 dasm_put(Dst, 13241, LJ_TISNUM); 2048 dasm_put(Dst, 13256, LJ_TISNUM);
2044 } 2049 }
2045 if (sse) { 2050 if (sse) {
2046 dasm_put(Dst, 13250); 2051 dasm_put(Dst, 13265);
2047 if (vk) { 2052 if (vk) {
2048 dasm_put(Dst, 13262); 2053 dasm_put(Dst, 13277);
2049 } else { 2054 } else {
2050 dasm_put(Dst, 13281); 2055 dasm_put(Dst, 13296);
2051 } 2056 }
2052 dasm_put(Dst, 13286); 2057 dasm_put(Dst, 13301);
2053 } else { 2058 } else {
2054 dasm_put(Dst, 13299); 2059 dasm_put(Dst, 13314);
2055 if (vk) { 2060 if (vk) {
2056 dasm_put(Dst, 13305); 2061 dasm_put(Dst, 13320);
2057 } else { 2062 } else {
2058 dasm_put(Dst, 13321); 2063 dasm_put(Dst, 13336);
2059 } 2064 }
2060 dasm_put(Dst, 13329); 2065 dasm_put(Dst, 13344);
2061 if (cmov) { 2066 if (cmov) {
2062 dasm_put(Dst, 9435); 2067 dasm_put(Dst, 9450);
2063 } else { 2068 } else {
2064 dasm_put(Dst, 9441); 2069 dasm_put(Dst, 9456);
2065 } 2070 }
2066 if (!cmov) { 2071 if (!cmov) {
2067 dasm_put(Dst, 13334); 2072 dasm_put(Dst, 13349);
2068 } 2073 }
2069 } 2074 }
2070 if (op == BC_FORI) { 2075 if (op == BC_FORI) {
2071 dasm_put(Dst, 13340, -BCBIAS_J*4); 2076 dasm_put(Dst, 13355, -BCBIAS_J*4);
2072 } else if (op == BC_JFORI) { 2077 } else if (op == BC_JFORI) {
2073 dasm_put(Dst, 13350, -BCBIAS_J*4, BC_JLOOP); 2078 dasm_put(Dst, 13365, -BCBIAS_J*4, BC_JLOOP);
2074 } else if (op == BC_IFORL) { 2079 } else if (op == BC_IFORL) {
2075 dasm_put(Dst, 13364, -BCBIAS_J*4); 2080 dasm_put(Dst, 13379, -BCBIAS_J*4);
2076 } else { 2081 } else {
2077 dasm_put(Dst, 13360, BC_JLOOP); 2082 dasm_put(Dst, 13375, BC_JLOOP);
2078 } 2083 }
2079 dasm_put(Dst, 9470); 2084 dasm_put(Dst, 9485);
2080 if (sse) { 2085 if (sse) {
2081 dasm_put(Dst, 13374); 2086 dasm_put(Dst, 13389);
2082 } 2087 }
2083 break; 2088 break;
2084 2089
2085 case BC_ITERL: 2090 case BC_ITERL:
2086#if LJ_HASJIT 2091#if LJ_HASJIT
2087 dasm_put(Dst, 13193, HOTCOUNT_PCMASK, GG_DISP2HOT); 2092 dasm_put(Dst, 13208, HOTCOUNT_PCMASK, GG_DISP2HOT);
2088#endif 2093#endif
2089 break; 2094 break;
2090 2095
@@ -2093,33 +2098,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2093 break; 2098 break;
2094#endif 2099#endif
2095 case BC_IITERL: 2100 case BC_IITERL:
2096 dasm_put(Dst, 13385, LJ_TNIL); 2101 dasm_put(Dst, 13400, LJ_TNIL);
2097 if (op == BC_JITERL) { 2102 if (op == BC_JITERL) {
2098 dasm_put(Dst, 13400, BC_JLOOP); 2103 dasm_put(Dst, 13415, BC_JLOOP);
2099 } else { 2104 } else {
2100 dasm_put(Dst, 13414, -BCBIAS_J*4); 2105 dasm_put(Dst, 13429, -BCBIAS_J*4);
2101 } 2106 }
2102 dasm_put(Dst, 9770); 2107 dasm_put(Dst, 9785);
2103 break; 2108 break;
2104 2109
2105 case BC_LOOP: 2110 case BC_LOOP:
2106#if LJ_HASJIT 2111#if LJ_HASJIT
2107 dasm_put(Dst, 13193, HOTCOUNT_PCMASK, GG_DISP2HOT); 2112 dasm_put(Dst, 13208, HOTCOUNT_PCMASK, GG_DISP2HOT);
2108#endif 2113#endif
2109 break; 2114 break;
2110 2115
2111 case BC_ILOOP: 2116 case BC_ILOOP:
2112 dasm_put(Dst, 7567); 2117 dasm_put(Dst, 7584);
2113 break; 2118 break;
2114 2119
2115 case BC_JLOOP: 2120 case BC_JLOOP:
2116#if LJ_HASJIT 2121#if LJ_HASJIT
2117 dasm_put(Dst, 13430, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2122 dasm_put(Dst, 13445, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2118#endif 2123#endif
2119 break; 2124 break;
2120 2125
2121 case BC_JMP: 2126 case BC_JMP:
2122 dasm_put(Dst, 13454, -BCBIAS_J*4); 2127 dasm_put(Dst, 13469, -BCBIAS_J*4);
2123 break; 2128 break;
2124 2129
2125 /* ---------------------------------------------------------------------- */ 2130 /* ---------------------------------------------------------------------- */
@@ -2147,7 +2152,7 @@ static int build_backend(BuildCtx *ctx)
2147 2152
2148 build_subroutines(ctx, cmov, sse); 2153 build_subroutines(ctx, cmov, sse);
2149 2154
2150 dasm_put(Dst, 13479); 2155 dasm_put(Dst, 13494);
2151 for (op = 0; op < BC__MAX; op++) 2156 for (op = 0; op < BC__MAX; op++)
2152 build_ins(ctx, (BCOp)op, op, cmov, sse); 2157 build_ins(ctx, (BCOp)op, op, cmov, sse);
2153 2158