aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-11 01:21:40 +0100
committerMike Pall <mike>2010-02-11 01:21:40 +0100
commitab90b8fc2b516fa38a194844e31c70c106153cdf (patch)
tree78401446b804b73bcdd0f98161bcc2a7a00e002c /src
parentbb0384c36628c94a2232955e0cac5cf45679039f (diff)
downloadluajit-ab90b8fc2b516fa38a194844e31c70c106153cdf.tar.gz
luajit-ab90b8fc2b516fa38a194844e31c70c106153cdf.tar.bz2
luajit-ab90b8fc2b516fa38a194844e31c70c106153cdf.zip
Switch to pre-initialized stacks. Drop frame clearing in interpreter.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h1460
-rw-r--r--src/buildvm_x64win.h1337
-rw-r--r--src/buildvm_x86.dasc60
-rw-r--r--src/buildvm_x86.h2456
-rw-r--r--src/lj_gc.c33
-rw-r--r--src/lj_gc.h4
-rw-r--r--src/lj_state.c33
7 files changed, 2697 insertions, 2686 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 9ce79dd7..ef507af1 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,84 +12,85 @@
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[13633] = { 15static const unsigned char build_actionlist[13650] = {
16 254,1,248,10,137,202,139,173,233,137,90,252,252,15,182,141,233,141,157,233, 16 254,1,248,10,137,202,137,90,252,252,139,157,233,15,182,139,233,68,139,187,
17 68,139,189,233,139,108,36,16,141,12,202,141,68,194,252,252,59,141,233,15, 17 233,139,108,36,16,141,12,202,59,141,233,15,135,244,11,15,182,139,233,57,200,
18 135,244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130, 18 15,134,244,249,248,2,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
19 244,1,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 19 65,252,255,36,252,238,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,
20 252,238,248,12,137,89,252,252,141,28,197,237,141,148,253,25,233,137,106,252, 20 244,3,252,233,244,2,248,12,137,89,252,252,141,28,197,237,141,148,253,25,233,
21 248,139,173,233,137,90,252,252,15,182,157,233,68,141,60,218,139,92,36,16, 21 137,106,252,248,137,90,252,252,139,157,233,15,182,171,233,68,141,60,252,234,
22 141,66,4,68,59,187,233,15,135,244,13,15,182,157,233,133,219,15,132,244,248, 22 139,108,36,16,68,59,189,233,15,135,244,13,137,208,15,182,171,233,133,252,
23 248,1,131,193,8,57,209,15,131,244,248,68,139,121,252,248,68,137,120,252,252, 23 237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,255,68,139,121,252,
24 68,139,121,252,252,68,137,56,131,192,8,199,65,252,252,237,131,252,235,1,15, 24 248,68,137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,
25 133,244,1,248,2,15,182,141,233,141,157,233,255,68,139,189,233,141,12,202, 25 131,252,237,1,15,133,244,1,248,2,68,139,187,233,255,139,3,15,182,204,15,182,
26 252,233,244,9,248,14,137,89,252,252,76,139,189,233,139,108,36,16,141,68,193, 26 232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,199,64,4,237,131,192,
27 252,248,137,141,233,141,136,233,137,133,233,59,141,233,76,137,252,254,137, 27 8,131,252,237,1,15,133,244,3,252,233,244,2,248,14,137,89,252,252,76,139,189,
28 252,239,15,135,244,15,65,199,134,233,237,65,252,255,150,233,65,199,134,233, 28 233,139,108,36,16,141,68,193,252,248,137,141,233,141,136,233,137,133,233,
29 237,139,149,233,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68, 29 59,141,233,76,137,252,254,137,252,239,15,135,244,15,65,199,134,233,237,65,
30 36,4,252,247,195,237,255,15,132,244,17,252,233,244,18,248,19,137,89,252,252, 30 252,255,150,233,65,199,134,233,237,139,149,233,255,141,12,194,252,247,217,
31 76,139,189,233,139,108,36,16,141,68,193,252,248,137,141,233,141,136,233,137, 31 3,141,233,248,16,131,192,1,137,68,36,4,252,247,195,237,15,132,244,17,252,
32 133,233,59,141,233,137,252,239,15,135,244,15,65,199,134,233,237,65,252,255, 32 233,244,18,248,19,137,89,252,252,76,139,189,233,139,108,36,16,141,68,193,
33 215,65,199,134,233,237,139,149,233,141,12,194,252,247,217,3,141,233,248,16, 33 252,248,137,141,233,141,136,233,137,133,233,59,141,233,137,252,239,15,135,
34 131,192,1,137,68,36,4,252,247,195,237,255,15,132,244,17,248,18,252,247,195, 34 244,15,65,199,134,233,237,65,252,255,215,65,199,134,233,237,139,149,233,255,
35 237,15,132,244,20,65,199,134,233,237,131,227,252,248,41,211,252,247,219,131, 35 141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,4,252,247,195,
36 232,1,15,132,244,248,248,1,139,44,10,137,106,252,248,139,108,10,4,137,106, 36 237,15,132,244,17,248,18,252,247,195,237,15,132,244,20,65,199,134,233,237,
37 252,252,131,194,8,131,232,1,15,133,244,1,248,2,139,108,36,16,137,157,233, 37 131,227,252,248,41,211,252,247,219,131,232,1,15,132,244,248,248,1,139,44,
38 248,3,139,68,36,4,139,76,36,8,248,4,57,193,15,133,244,252,248,5,255,131,252, 38 10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,
39 234,8,137,149,233,248,21,72,139,76,36,32,72,137,141,233,49,192,248,22,72, 39 244,1,248,2,139,108,36,16,137,157,233,248,3,139,68,36,4,139,76,36,8,248,4,
40 131,196,40,65,94,65,95,91,93,195,248,6,15,130,244,253,59,149,233,15,135,244, 40 255,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,21,72,139,76,
41 254,199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7,133,201,15, 41 36,32,72,137,141,233,49,192,248,22,72,131,196,40,65,94,65,95,91,93,195,248,
42 132,244,5,41,193,141,20,202,252,233,244,5,248,8,137,149,233,255,137,68,36, 42 6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,
43 4,137,206,137,252,239,232,251,1,0,139,149,233,252,233,244,3,248,23,137,252, 43 192,1,252,233,244,4,248,7,133,201,15,132,244,5,41,193,141,20,202,252,233,
44 240,72,137,252,252,248,24,139,108,36,16,139,173,233,199,133,233,237,252,233, 44 244,5,248,8,255,137,149,233,137,68,36,4,137,206,137,252,239,232,251,1,0,139,
45 244,22,248,25,72,129,231,239,72,137,252,252,248,26,139,108,36,16,72,199,193, 45 149,233,252,233,244,3,248,23,137,252,240,72,137,252,252,248,24,139,108,36,
46 252,248,252,255,252,255,252,255,184,237,139,149,233,68,139,181,233,65,129, 46 16,139,173,233,199,133,233,237,252,233,244,22,248,25,72,129,231,239,72,137,
47 198,239,139,90,252,252,199,66,252,252,237,65,199,134,233,237,255,252,233, 47 252,252,248,26,139,108,36,16,72,199,193,252,248,252,255,252,255,252,255,184,
48 244,16,248,20,252,247,195,237,15,132,244,27,131,227,252,248,41,218,72,141, 48 237,139,149,233,68,139,181,233,65,129,198,239,139,90,252,252,199,66,252,252,
49 76,25,252,248,139,90,252,252,199,68,10,4,237,252,233,244,16,248,15,190,237, 49 237,65,199,134,233,237,255,252,233,244,16,248,20,252,247,195,237,15,132,244,
50 252,233,244,247,248,13,131,232,8,137,202,68,137,252,249,141,157,233,139,108, 50 27,131,227,252,248,41,218,72,141,76,25,252,248,139,90,252,252,199,68,10,4,
51 36,16,248,11,131,232,4,41,209,193,252,233,3,131,195,4,137,149,233,137,133, 51 237,252,233,244,16,248,15,190,237,252,233,244,247,248,13,137,202,248,11,141,
52 233,137,92,36,20,137,206,248,1,137,252,239,232,251,1,0,139,141,233,255,139, 52 68,194,252,248,15,182,139,233,131,195,4,137,149,233,137,133,233,137,92,36,
53 133,233,139,105,252,248,139,89,252,252,41,200,193,232,3,131,192,1,252,255, 53 20,137,206,248,1,137,252,239,232,251,1,0,139,141,233,255,139,133,233,139,
54 165,233,248,28,85,83,65,87,65,86,72,131,252,236,40,137,252,253,137,124,36, 54 105,252,248,139,89,252,252,41,200,193,232,3,131,192,1,252,255,165,233,248,
55 16,137,252,241,187,237,49,192,76,141,188,253,36,233,68,139,181,233,65,129, 55 28,85,83,65,87,65,86,72,131,252,236,40,137,252,253,137,124,36,16,137,252,
56 198,239,76,137,189,233,137,68,36,20,72,137,68,36,32,137,68,36,8,137,68,36, 56 241,187,237,49,192,76,141,188,253,36,233,68,139,181,233,65,129,198,239,76,
57 12,56,133,233,15,132,244,249,65,199,134,233,237,136,133,233,139,149,233,139, 57 137,189,233,137,68,36,20,72,137,68,36,32,137,68,36,8,137,68,36,12,56,133,
58 133,233,41,200,193,232,3,131,192,1,41,209,139,90,252,252,137,68,36,4,252, 58 233,15,132,244,249,65,199,134,233,237,136,133,233,139,149,233,139,133,233,
59 247,195,237,15,132,244,17,252,233,244,18,248,29,255,85,83,65,87,65,86,72, 59 41,200,193,232,3,131,192,1,41,209,139,90,252,252,137,68,36,4,252,247,195,
60 131,252,236,40,187,237,137,76,36,12,252,233,244,247,248,30,85,83,65,87,65, 60 237,15,132,244,17,252,233,244,18,248,29,255,85,83,65,87,65,86,72,131,252,
61 86,72,131,252,236,40,187,237,248,1,137,84,36,8,137,252,253,137,124,36,16, 61 236,40,187,237,137,76,36,12,252,233,244,247,248,30,85,83,65,87,65,86,72,131,
62 137,252,241,248,2,76,139,189,233,76,137,124,36,32,137,108,36,20,72,137,165, 62 252,236,40,187,237,248,1,137,84,36,8,137,252,253,137,124,36,16,137,252,241,
63 233,68,139,181,233,65,129,198,239,248,3,65,199,134,233,237,139,149,233,1, 63 248,2,76,139,189,233,76,137,124,36,32,137,108,36,20,72,137,165,233,68,139,
64 203,41,211,139,133,233,41,200,193,232,3,131,192,1,139,105,252,248,129,121, 64 181,233,65,129,198,239,248,3,65,199,134,233,237,139,149,233,1,203,41,211,
65 253,252,252,239,15,133,244,31,252,255,165,233,248,32,255,85,83,65,87,65,86, 65 139,133,233,41,200,193,232,3,131,192,1,139,105,252,248,129,121,253,252,252,
66 72,131,252,236,40,137,252,253,137,124,36,16,137,108,36,20,68,139,189,233, 66 239,15,133,244,31,252,255,165,233,248,32,255,85,83,65,87,65,86,72,131,252,
67 68,43,189,233,199,68,36,12,0,0,0,0,68,137,124,36,8,76,139,189,233,76,137, 67 236,40,137,252,253,137,124,36,16,137,108,36,20,68,139,189,233,68,43,189,233,
68 124,36,32,72,137,165,233,252,255,209,133,192,15,132,244,21,137,193,187,237, 68 199,68,36,12,0,0,0,0,68,137,124,36,8,76,139,189,233,76,137,124,36,32,72,137,
69 252,233,244,2,248,27,1,209,131,227,252,248,137,213,41,218,199,68,193,252, 69 165,233,252,255,209,133,192,15,132,244,21,137,193,187,237,252,233,244,2,248,
70 252,237,137,200,139,93,252,244,72,99,77,252,240,76,141,61,245,76,1,252,249, 70 27,1,209,131,227,252,248,137,213,41,218,199,68,193,252,252,237,137,200,139,
71 68,139,122,252,248,69,139,191,233,69,139,191,233,252,255,225,248,33,15,182, 71 93,252,244,72,99,77,252,240,76,141,61,245,76,1,252,249,68,139,122,252,248,
72 75,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,34,252,247,217, 72 69,139,191,233,69,139,191,233,252,255,225,248,33,15,182,75,252,255,131,252,
73 193,252,233,3,139,124,36,16,137,151,233,137,202,139,72,4,139,0,137,77,4,137, 73 237,16,141,12,202,41,252,233,15,132,244,34,252,247,217,193,252,233,3,139,
74 69,0,137,252,238,252,233,244,35,248,36,255,137,4,36,199,68,36,4,237,72,141, 74 124,36,16,137,151,233,137,202,139,72,4,139,0,137,77,4,137,69,0,137,252,238,
75 4,36,128,123,252,252,235,15,133,244,247,65,141,142,233,137,41,199,65,4,237, 75 252,233,244,35,248,36,255,137,4,36,199,68,36,4,237,72,141,4,36,128,123,252,
76 137,205,252,233,244,248,248,37,15,182,67,252,254,255,252,242,15,42,192,252, 76 252,235,15,133,244,247,65,141,142,233,137,41,199,65,4,237,137,205,252,233,
77 242,15,17,4,36,255,72,141,4,36,252,233,244,247,248,38,15,182,67,252,254,141, 77 244,248,248,37,15,182,67,252,254,255,252,242,15,42,192,252,242,15,17,4,36,
78 4,194,248,1,15,182,107,252,255,141,44,252,234,248,2,139,124,36,16,137,151, 78 255,72,141,4,36,252,233,244,247,248,38,15,182,67,252,254,141,4,194,248,1,
79 233,137,252,238,72,137,194,137,252,253,137,92,36,20,232,251,1,1,139,149,233, 79 15,182,107,252,255,141,44,252,234,248,2,139,124,36,16,137,151,233,137,252,
80 133,192,15,132,244,249,248,34,15,182,75,252,253,139,104,4,139,0,137,108,202, 80 238,72,137,194,137,252,253,137,92,36,20,232,251,1,1,139,149,233,133,192,15,
81 4,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 81 132,244,249,248,34,15,182,75,252,253,139,104,4,139,0,137,108,202,4,137,4,
82 252,238,248,3,139,141,233,137,89,252,244,141,153,233,41,211,139,105,252,248, 82 202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
83 184,3,0,0,0,252,255,165,233,248,39,137,4,36,199,68,36,4,237,72,141,4,36,128, 83 248,3,139,141,233,137,89,252,244,141,153,233,41,211,139,105,252,248,184,3,
84 123,252,252,235,15,133,244,247,65,141,142,233,255,137,41,199,65,4,237,137, 84 0,0,0,252,255,165,233,248,39,137,4,36,199,68,36,4,237,72,141,4,36,128,123,
85 205,252,233,244,248,248,40,15,182,67,252,254,255,72,141,4,36,252,233,244, 85 252,252,235,15,133,244,247,65,141,142,233,255,137,41,199,65,4,237,137,205,
86 247,248,41,15,182,67,252,254,141,4,194,248,1,15,182,107,252,255,141,44,252, 86 252,233,244,248,248,40,15,182,67,252,254,255,72,141,4,36,252,233,244,247,
87 234,248,2,139,124,36,16,137,151,233,137,252,238,72,137,194,137,252,253,137, 87 248,41,15,182,67,252,254,141,4,194,248,1,15,182,107,252,255,141,44,252,234,
88 92,36,20,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,75,252,253, 88 248,2,139,124,36,16,137,151,233,137,252,238,72,137,194,137,252,253,137,92,
89 139,108,202,4,139,12,202,137,104,4,137,8,248,42,139,3,15,182,204,15,182,232, 89 36,20,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,75,252,253,139,
90 131,195,4,193,232,16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244, 90 108,202,4,139,12,202,137,104,4,137,8,248,42,139,3,15,182,204,15,182,232,131,
91 15,182,67,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,153,233, 91 195,4,193,232,16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244,15,
92 41,211,139,105,252,248,184,4,0,0,0,252,255,165,233,248,43,139,108,36,16,137, 92 182,67,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,153,233,41,
93 211,139,105,252,248,184,4,0,0,0,252,255,165,233,248,43,139,108,36,16,137,
93 149,233,141,52,202,141,20,194,137,252,239,15,182,75,252,252,137,92,36,20, 94 149,233,141,52,202,141,20,194,137,252,239,15,182,75,252,252,137,92,36,20,
94 232,251,1,3,248,3,139,149,233,131,252,248,1,15,135,244,44,248,4,255,141,91, 95 232,251,1,3,248,3,139,149,233,131,252,248,1,15,135,244,44,248,4,255,141,91,
95 4,15,130,244,252,248,5,15,183,67,252,254,141,156,253,131,233,248,6,139,3, 96 4,15,130,244,252,248,5,15,183,67,252,254,141,156,253,131,233,248,6,139,3,
@@ -467,210 +468,209 @@ static const unsigned char build_actionlist[13633] = {
467 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225, 468 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,
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,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,249, 471 155,137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,129,
471 255,129,124,253,202,4,239,15,135,244,43,129,124,253,194,4,239,15,135,244, 472 124,253,202,4,239,15,135,244,43,129,124,253,194,4,239,15,135,244,43,255,252,
472 43,255,252,242,15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4, 473 242,15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,
473 194,131,195,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15, 474 4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,
474 134,244,248,255,15,131,244,248,255,248,1,15,183,67,252,254,141,156,253,131, 475 255,15,131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,
475 233,248,2,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 476 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
476 252,238,255,139,108,194,4,131,195,4,129,252,253,239,15,135,244,251,129,124, 477 139,108,194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4,
477 253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255, 478 239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,
478 221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248, 479 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,
479 15,132,244,247,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,255, 480 247,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,
480 248,2,15,183,67,252,254,141,156,253,131,233,248,1,255,248,5,57,108,202,4, 481 67,252,254,141,156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2,
481 15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15, 482 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
482 132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244, 483 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
483 2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252, 484 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,
484 233,244,47,255,72,252,247,208,131,195,4,129,124,253,202,4,239,15,133,244, 485 72,252,247,208,131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202,
485 248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,202,4,239,15,135,244, 486 65,59,12,135,255,131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242,
486 248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,4,202,65,221,4,199, 487 65,15,16,4,199,102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247,
487 255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,4,131,195,4,129, 488 208,131,195,4,57,68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255,
488 252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44, 489 15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,
489 194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,248,1,139,3,15,182, 490 255,15,183,67,252,254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232,
490 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,194, 491 131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,139,4,194,137,
491 4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204,15,182,232,131,195,4, 492 108,202,4,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
492 193,232,16,65,252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,129, 493 255,36,252,238,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,
493 213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 494 4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
494 252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,50,255,252,242,15, 495 255,129,124,253,194,4,239,15,135,244,50,255,252,242,15,16,4,194,72,184,237,
495 16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255, 496 237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,
496 221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139, 497 221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,
497 4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219, 498 252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,
498 128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232, 499 28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
499 16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,52,139,60, 500 252,238,248,2,129,124,253,194,4,239,15,133,244,52,139,60,194,137,213,232,
500 194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75, 501 251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75,252,253,252,233,
501 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234, 502 244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,
502 4,239,15,135,244,48,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255, 503 244,48,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,
503 221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,49,255, 504 65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,49,255,252,242,65,15,
504 252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252, 505 16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,234,255,129,124,
505 234,255,129,124,253,252,234,4,239,15,135,244,51,129,124,253,194,4,239,15, 506 253,252,234,4,239,15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252,
506 135,244,51,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252, 507 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
507 234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221, 508 242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,4,252,234,65,220,36,199,
508 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234, 509 255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221,4,199,220,36,
509 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92, 510 252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,
510 4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65, 511 220,36,194,255,252,242,15,16,4,252,234,252,242,65,15,89,4,199,255,221,4,252,
511 15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252, 512 234,65,220,12,199,255,252,242,65,15,16,4,199,252,242,15,89,4,252,234,255,
512 242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252, 513 65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,
513 234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4, 514 255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,65,15,94,
514 252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242, 515 4,199,255,221,4,252,234,65,220,52,199,255,252,242,65,15,16,4,199,252,242,
515 65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255, 516 15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,
516 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194, 517 252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,
517 255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65, 518 234,252,242,65,15,16,12,199,255,221,4,252,234,65,221,4,199,255,252,242,65,
518 221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221, 519 15,16,4,199,252,242,15,16,12,252,234,255,65,221,4,199,221,4,252,234,255,252,
519 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255, 520 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,
520 221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232, 521 248,156,232,244,148,255,252,233,244,156,255,232,244,108,255,15,182,252,236,
521 244,108,255,15,182,252,236,15,182,192,139,124,36,16,137,151,233,141,52,194, 522 15,182,192,139,124,36,16,137,151,233,141,52,194,137,194,41,252,234,248,35,
522 137,194,41,252,234,248,35,137,252,253,137,92,36,20,232,251,1,21,139,149,233, 523 137,252,253,137,92,36,20,232,251,1,21,139,149,233,133,192,15,133,244,44,15,
523 133,192,15,133,244,44,15,182,107,252,255,15,182,75,252,253,139,68,252,234, 524 182,107,252,255,15,182,75,252,253,139,68,252,234,4,139,44,252,234,137,68,
524 4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131, 525 202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
525 195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199, 526 255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,
526 68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 527 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
527 252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255, 528 15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,
528 223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242,15,17,4,202, 529 202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,
529 255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,3,15,182, 530 202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,
530 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,76,202, 531 193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,
531 12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15, 532 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,
532 134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 533 182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,
533 252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139, 534 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,
534 109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232, 535 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,
535 16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,128,189, 536 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,
536 233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247, 537 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,
537 252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131, 538 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
538 195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,248,239, 539 252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,
539 15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,65,141, 540 15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,22,137,252,
540 190,233,255,232,251,1,22,137,252,234,252,233,244,1,255,72,252,247,208,139, 541 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,
541 106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,64,4, 542 65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,
542 237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232, 543 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
543 131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,15,132, 544 252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,
544 244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,251,1, 545 137,213,137,198,65,141,190,233,232,251,1,22,137,252,234,252,233,244,1,255,
545 22,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,16,4,199, 546 139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141,
546 255,139,172,253,141,233,139,141,233,255,72,252,247,208,139,106,252,248,139, 547 233,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
547 172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195, 548 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
548 4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,16, 549 255,141,156,253,131,233,139,108,36,16,131,189,233,0,15,132,244,247,137,149,
549 131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1, 550 233,141,52,202,137,252,239,232,251,1,23,139,149,233,248,1,139,3,15,182,204,
550 23,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 551 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,
551 252,255,36,252,238,255,72,252,247,208,139,108,36,16,137,149,233,139,82,252, 552 139,108,36,16,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,
552 248,65,139,52,135,137,252,239,137,92,36,20,232,251,1,24,139,149,233,15,182, 553 36,20,232,251,1,24,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
553 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, 554 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
554 4,193,232,16,65,252,255,36,252,238,255,139,124,36,16,137,151,233,248,1,137, 555 139,124,36,16,137,151,233,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,
555 194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2, 556 252,255,7,0,0,15,132,244,249,248,2,137,198,65,139,134,233,137,252,253,65,
556 137,198,65,139,134,233,137,252,253,65,59,134,233,137,92,36,20,15,131,244, 557 59,134,233,137,92,36,20,15,131,244,251,232,251,1,25,139,149,233,15,182,75,
557 251,232,251,1,25,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 558 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,
558 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 559 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,232,
559 3,184,1,8,0,0,252,233,244,2,248,5,232,251,1,26,15,183,67,252,254,137,252, 560 251,1,26,15,183,67,252,254,137,252,239,252,233,244,1,255,72,252,247,208,139,
560 239,252,233,244,1,255,72,252,247,208,139,108,36,16,65,139,142,233,137,92, 561 108,36,16,65,139,142,233,137,92,36,20,65,59,142,233,137,149,233,15,131,244,
561 36,20,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252, 562 249,248,2,65,139,52,135,137,252,239,232,251,1,27,139,149,233,15,182,75,252,
562 239,232,251,1,27,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 563 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,
563 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 564 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,26,15,183,67,252,
564 3,137,252,239,232,251,1,26,15,183,67,252,254,72,252,247,208,252,233,244,2, 565 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,
565 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157, 566 233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,
566 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158, 567 233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,
567 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139, 568 252,234,4,239,15,133,244,38,139,44,252,234,129,124,253,194,4,239,15,135,244,
568 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 569 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,
569 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,38,59,133,233, 570 193,255,15,133,244,38,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,
570 15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, 571 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
571 139,40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195, 572 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,
572 4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141, 573 131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,38,
573 233,252,246,129,233,235,15,132,244,38,15,182,75,252,253,252,233,244,1,248, 574 15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,
574 5,255,129,124,253,194,4,239,15,133,244,38,139,4,194,252,233,244,157,255,15, 575 38,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,
575 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4, 576 65,139,4,135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,157,
576 239,15,133,244,36,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239, 577 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,
577 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250, 578 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,
578 129,121,253,4,239,15,132,244,251,15,182,67,252,253,139,41,139,73,4,137,44, 579 67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182,
579 194,248,2,255,137,76,194,4,139,3,15,182,204,15,182,232,131,195,4,193,232, 580 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,
580 16,65,252,255,36,252,238,248,3,15,182,67,252,253,185,237,252,233,244,2,248, 581 252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,
581 4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3, 582 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,
582 252,246,129,233,235,15,133,244,3,252,233,244,36,255,15,182,252,236,15,182, 583 244,36,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
583 192,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,59,133,233,15, 584 37,139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,
584 131,244,37,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139, 585 4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3,
585 40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4, 586 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
586 193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141, 587 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,37,255,
587 233,252,246,129,233,235,15,132,244,37,255,15,182,252,236,15,182,192,129,124, 588 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,139,44,
588 253,252,234,4,239,15,133,244,41,139,44,252,234,129,124,253,194,4,239,15,135, 589 252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,41,59,133,233,
589 244,251,255,15,133,244,41,59,133,233,15,131,244,41,193,224,3,3,133,233,129, 590 15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,
590 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, 591 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
591 2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,15,182,232,131,
592 195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,
593 141,233,255,252,246,129,233,235,15,132,244,41,15,182,75,252,253,252,233,244,
594 1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,244,158,248,
595 7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,
596 253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,
597 129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,248,158,139,141,233,
598 35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,
599 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,
600 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,139,108,194,
601 4,139,4,194,137,105,4,137,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
602 16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,
603 233,252,246,129,233,235,15,132,244,39,139,12,36,252,233,244,2,248,5,139,137,
604 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
605 233,235,15,132,244,39,248,6,137,4,36,199,68,36,4,237,137,108,36,24,139,124,
606 36,16,137,151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,20,232,251,
607 1,28,139,149,233,139,108,36,24,137,193,252,233,244,2,248,7,128,165,233,235,
608 65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,
609 15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252,234,59,133,
610 233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
611 1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
612 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 592 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
613 238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235, 593 238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,
614 15,132,244,40,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139, 594 15,132,244,41,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,
615 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68, 595 15,133,244,41,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142,
616 137,60,36,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133, 596 233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,
617 244,253,248,2,139,68,36,4,255,252,242,68,15,45,252,248,255,131,232,1,15,132, 597 252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,
618 244,250,68,1,252,248,59,133,233,15,131,244,251,68,41,252,248,65,193,231,3, 598 15,133,244,39,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,
619 68,3,189,233,248,3,139,41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131, 599 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
620 199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232, 600 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
621 131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,16,137,151,233, 601 133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137,
622 137,252,238,137,194,137,252,253,137,92,36,20,232,251,1,29,139,149,233,15, 602 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
623 182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139,134,233,65,137, 603 248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,
624 174,233,255,137,133,233,252,233,244,2,255,3,68,36,4,255,141,76,202,8,139, 604 15,132,244,39,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,
625 105,252,248,129,121,253,252,252,239,15,133,244,31,252,255,165,233,255,141, 605 1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39,
626 76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,31, 606 248,6,137,4,36,199,68,36,4,237,137,108,36,24,139,124,36,16,137,151,233,72,
627 248,53,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,248, 607 141,20,36,137,252,238,137,252,253,137,92,36,20,232,251,1,28,139,149,233,139,
628 137,68,36,4,131,232,1,15,132,244,249,248,2,139,41,65,137,47,139,105,4,65, 608 108,36,24,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,
629 137,111,4,65,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248, 609 174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
630 3,137,209,128,189,233,1,15,135,244,251,248,4,139,68,36,4,252,255,165,233, 610 252,234,4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224,
631 248,5,255,252,247,195,237,15,133,244,4,15,182,67,252,253,72,252,247,208,141, 611 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,
632 20,194,68,139,122,252,248,69,139,191,233,69,139,191,233,252,233,244,4,248, 612 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,
633 7,15,139,244,1,131,227,252,248,41,218,65,137,215,139,90,252,252,252,233,244, 613 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
634 1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252, 614 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,75,
635 240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252, 615 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
636 248,137,65,252,252,129,252,248,239,184,3,0,0,0,15,133,244,31,252,255,165, 616 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,255,248,1,141,
637 233,255,15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233, 617 12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,
638 68,137,60,36,68,141,188,253,194,233,68,43,122,252,252,133,252,237,15,132, 618 4,255,252,242,68,15,45,252,248,255,131,232,1,15,132,244,250,68,1,252,248,
639 244,251,141,108,252,233,252,248,65,57,215,15,131,244,248,248,1,65,139,71, 619 59,133,233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,
640 252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,57,252,233, 620 41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,
641 15,131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252, 621 244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
642 233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4, 622 65,252,255,36,252,238,248,5,139,124,36,16,137,151,233,137,252,238,137,194,
643 193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41, 623 137,252,253,137,92,36,20,232,251,1,29,139,149,233,15,182,75,252,253,252,233,
644 252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,4,139, 624 244,1,248,7,128,165,233,235,65,139,134,233,65,137,174,233,255,137,133,233,
645 108,36,16,1,200,59,133,233,15,135,244,253,248,6,65,139,71,252,248,137,1,65, 625 252,233,244,2,255,3,68,36,4,255,141,76,202,8,139,105,252,248,129,121,253,
646 139,71,252,252,65,131,199,8,137,65,4,131,193,8,65,57,215,15,130,244,6,252, 626 252,252,239,15,133,244,31,252,255,165,233,255,141,76,202,8,65,137,215,139,
647 233,244,3,248,7,137,149,233,137,141,233,137,92,36,20,65,41,215,139,116,36, 627 105,252,248,129,121,253,252,252,239,15,133,244,31,248,53,139,90,252,252,252,
648 4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215, 628 247,195,237,15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,
649 252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247, 629 132,244,249,248,2,139,41,65,137,47,139,105,4,65,137,111,4,65,131,199,8,131,
650 195,237,15,133,244,253,255,248,17,65,137,215,131,232,1,15,132,244,249,248, 630 193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,137,209,128,189,233,1,
651 2,65,139,44,15,65,137,111,252,248,65,139,108,15,4,65,137,111,252,252,65,131, 631 15,135,244,251,248,4,139,68,36,4,252,255,165,233,248,5,255,252,247,195,237,
652 199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,255,248,5,57, 632 15,133,244,4,15,182,67,252,253,72,252,247,208,141,20,194,68,139,122,252,248,
653 197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,252, 633 69,139,191,233,69,139,191,233,252,233,244,4,248,7,15,139,244,1,131,227,252,
654 248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252,247, 634 248,41,218,65,137,215,139,90,252,252,252,233,244,1,255,141,76,202,8,139,105,
655 209,141,20,202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3,15, 635 232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,
656 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255,65, 636 8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,
657 199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192,1, 637 248,239,184,3,0,0,0,15,133,244,31,252,255,165,233,255,15,182,252,236,139,
658 252,233,244,5,248,7,15,139,244,18,131,227,252,248,41,218,255,1,217,255,137, 638 66,252,248,141,12,202,139,128,233,15,182,128,233,68,137,60,36,68,141,188,
659 221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,141,255, 639 253,194,233,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,
660 141,12,202,255,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135, 640 252,248,65,57,215,15,131,244,248,248,1,65,139,71,252,248,137,1,65,139,71,
661 244,54,255,139,105,20,255,129,252,253,239,15,135,244,54,255,252,242,15,16, 641 252,252,65,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,65,57,215,
662 1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237, 642 15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,
663 15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65, 643 139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
664 24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244, 644 252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,255,
665 247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,67,252,254, 645 137,197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,16,1,200,59,133,233,
666 255,15,131,244,248,141,156,253,131,233,255,141,156,253,131,233,15,183,67, 646 15,135,244,253,248,6,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,
667 252,254,15,131,245,255,15,130,244,248,141,156,253,131,233,255,248,3,102,15, 647 8,137,65,4,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
668 46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244, 648 137,141,233,137,92,36,20,65,41,215,139,116,36,4,131,252,238,1,137,252,239,
669 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,156,253, 649 232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,
670 131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,233,139,4,129, 650 255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,
671 72,139,128,233,139,108,36,16,65,137,150,233,65,137,174,233,252,255,224,255, 651 17,65,137,215,131,232,1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,
672 141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 652 248,65,139,108,15,4,65,137,111,252,252,65,131,199,8,131,232,1,15,133,244,
673 255,36,252,238,255,254,0 653 2,248,3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,139,
654 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,
655 15,135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,
656 252,248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,
657 4,193,232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,
658 199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,
659 244,18,131,227,252,248,41,218,255,1,217,255,137,221,209,252,237,129,229,239,
660 102,65,131,172,253,46,233,1,15,132,244,141,255,141,12,202,255,129,121,253,
661 4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,255,139,105,20,255,129,
662 252,253,239,15,135,244,54,255,252,242,15,16,1,252,242,15,16,73,8,255,252,
663 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,
664 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,
665 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,
666 247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253,
667 131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244,
668 248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,
669 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,
670 105,252,248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137,
671 65,252,248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,16,65,137,
672 150,233,65,137,174,233,252,255,224,255,141,156,253,131,233,139,3,15,182,204,
673 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,254,0
674}; 674};
675 675
676enum { 676enum {
@@ -1026,395 +1026,399 @@ static const char *const extnames[] = {
1026#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V) 1026#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V)
1027#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) 1027#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field))
1028#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) 1028#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field))
1029#define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto))
1029 1030
1030/* Generate subroutines used by opcodes and other parts of the VM. */ 1031/* Generate subroutines used by opcodes and other parts of the VM. */
1031/* The .code_sub section should be last to help static branch prediction. */ 1032/* The .code_sub section should be last to help static branch prediction. */
1032static void build_subroutines(BuildCtx *ctx, int cmov, int sse) 1033static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1033{ 1034{
1034 dasm_put(Dst, 0); 1035 dasm_put(Dst, 0);
1035 dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), sizeof(GCproto), Dt9(->k), Dt1(->maxstack), LJ_TNIL); 1036 dasm_put(Dst, 2, Dt7(->pc), PC2PROTO(framesize), PC2PROTO(k), Dt1(->maxstack), PC2PROTO(numparams));
1036#if LJ_HASJIT 1037#if LJ_HASJIT
1037#endif 1038#endif
1038 dasm_put(Dst, 64, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), sizeof(GCproto)); 1039 dasm_put(Dst, 48, LJ_TNIL, FRAME_VARG, -FRAME_VARG, Dt7(->pc), PC2PROTO(framesize), Dt1(->maxstack), PC2PROTO(numparams));
1039 dasm_put(Dst, 198, 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); 1040 dasm_put(Dst, 161, LJ_TNIL, PC2PROTO(k));
1040 dasm_put(Dst, 292, 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); 1041#if LJ_HASJIT
1041 dasm_put(Dst, 378, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base)); 1042#endif
1042 dasm_put(Dst, 470, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL, Dt1(->top)); 1043 dasm_put(Dst, 201, 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));
1043 dasm_put(Dst, 554, 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); 1044 dasm_put(Dst, 303, 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));
1044 dasm_put(Dst, 655, FRAME_P, LJ_TTRUE, LUA_MINSTACK, sizeof(GCproto), Dt1(->base), Dt1(->top), Dt1(->base)); 1045 dasm_put(Dst, 389, Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base));
1045 dasm_put(Dst, 759, 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); 1046 dasm_put(Dst, 495, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL);
1046 dasm_put(Dst, 898, 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)); 1047 dasm_put(Dst, 584, 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);
1047 dasm_put(Dst, 1023, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pt), Dt9(->k), Dt1(->base)); 1048 dasm_put(Dst, 688, FRAME_P, LJ_TTRUE, LUA_MINSTACK, PC2PROTO(framesize), Dt1(->base), Dt1(->top), Dt1(->base));
1048 dasm_put(Dst, 1207, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1049 dasm_put(Dst, 778, 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);
1050 dasm_put(Dst, 917, 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));
1051 dasm_put(Dst, 1042, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc), PC2PROTO(k), Dt1(->base));
1052 dasm_put(Dst, 1226, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1049 if (sse) { 1053 if (sse) {
1050 dasm_put(Dst, 1252); 1054 dasm_put(Dst, 1271);
1051 } else { 1055 } else {
1052 } 1056 }
1053 dasm_put(Dst, 1264, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv)); 1057 dasm_put(Dst, 1283, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv));
1054 dasm_put(Dst, 1422, LJ_TTAB); 1058 dasm_put(Dst, 1441, LJ_TTAB);
1055 if (sse) { 1059 if (sse) {
1056 dasm_put(Dst, 1252); 1060 dasm_put(Dst, 1271);
1057 } else { 1061 } else {
1058 } 1062 }
1059 dasm_put(Dst, 1442, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base)); 1063 dasm_put(Dst, 1461, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base));
1060 dasm_put(Dst, 1637, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1064 dasm_put(Dst, 1656, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1061 dasm_put(Dst, 1745, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC); 1065 dasm_put(Dst, 1764, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC);
1062 dasm_put(Dst, 1868, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*8, 1+1); 1066 dasm_put(Dst, 1887, 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, 2023, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1067 dasm_put(Dst, 2042, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX);
1064 if (cmov) { 1068 if (cmov) {
1065 dasm_put(Dst, 2117); 1069 dasm_put(Dst, 2136);
1066 } else { 1070 } else {
1067 dasm_put(Dst, 2121); 1071 dasm_put(Dst, 2140);
1068 } 1072 }
1069 dasm_put(Dst, 2130, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1073 dasm_put(Dst, 2149, ((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, 2218, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1074 dasm_put(Dst, 2237, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1071 dasm_put(Dst, 2273, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1075 dasm_put(Dst, 2292, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB);
1072 dasm_put(Dst, 2345, 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)); 1076 dasm_put(Dst, 2364, 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, 2412, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1077 dasm_put(Dst, 2431, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1074 if (sse) { 1078 if (sse) {
1075 dasm_put(Dst, 2490); 1079 dasm_put(Dst, 2509);
1076 } else { 1080 } else {
1077 dasm_put(Dst, 2500); 1081 dasm_put(Dst, 2519);
1078 } 1082 }
1079 dasm_put(Dst, 2507, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1083 dasm_put(Dst, 2526, 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, 2572, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1084 dasm_put(Dst, 2591, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1081 dasm_put(Dst, 2656, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1085 dasm_put(Dst, 2675, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1082 dasm_put(Dst, 2756, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1086 dasm_put(Dst, 2775, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1083 if (sse) { 1087 if (sse) {
1084 dasm_put(Dst, 2811, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1088 dasm_put(Dst, 2830, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1085 } else { 1089 } else {
1086 } 1090 }
1087 dasm_put(Dst, 2844, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1091 dasm_put(Dst, 2863, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1088 dasm_put(Dst, 2931, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1092 dasm_put(Dst, 2950, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1089 if (sse) { 1093 if (sse) {
1090 dasm_put(Dst, 2961); 1094 dasm_put(Dst, 2980);
1091 } else { 1095 } else {
1092 dasm_put(Dst, 2971); 1096 dasm_put(Dst, 2990);
1093 } 1097 }
1094 dasm_put(Dst, 2978, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate)); 1098 dasm_put(Dst, 2997, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate));
1095 dasm_put(Dst, 3052, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD); 1099 dasm_put(Dst, 3071, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD);
1096 dasm_put(Dst, 3150, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1100 dasm_put(Dst, 3169, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1097 dasm_put(Dst, 3216, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top)); 1101 dasm_put(Dst, 3235, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top));
1098 dasm_put(Dst, 3320, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2); 1102 dasm_put(Dst, 3339, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2);
1099 dasm_put(Dst, 3443, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base)); 1103 dasm_put(Dst, 3462, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base));
1100 dasm_put(Dst, 3524, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 1104 dasm_put(Dst, 3543, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1101 dasm_put(Dst, 3630, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); 1105 dasm_put(Dst, 3649, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE);
1102 dasm_put(Dst, 3730, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1106 dasm_put(Dst, 3749, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1103 if (sse) { 1107 if (sse) {
1104 dasm_put(Dst, 3817, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1108 dasm_put(Dst, 3836, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1105 } else { 1109 } else {
1106 dasm_put(Dst, 3873, 1+1, LJ_TISNUM); 1110 dasm_put(Dst, 3892, 1+1, LJ_TISNUM);
1107 } 1111 }
1108 dasm_put(Dst, 3905, 1+1, FRAME_TYPE, LJ_TNIL); 1112 dasm_put(Dst, 3924, 1+1, FRAME_TYPE, LJ_TNIL);
1109 if (sse) { 1113 if (sse) {
1110 dasm_put(Dst, 3990, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1114 dasm_put(Dst, 4009, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1111 dasm_put(Dst, 4052, 1+1, LJ_TISNUM); 1115 dasm_put(Dst, 4071, 1+1, LJ_TISNUM);
1112 } else { 1116 } else {
1113 dasm_put(Dst, 4082, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1117 dasm_put(Dst, 4101, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1114 dasm_put(Dst, 4141, 1+1, LJ_TISNUM); 1118 dasm_put(Dst, 4160, 1+1, LJ_TISNUM);
1115 } 1119 }
1116 dasm_put(Dst, 4168, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1120 dasm_put(Dst, 4187, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1117 dasm_put(Dst, 4237, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1121 dasm_put(Dst, 4256, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1118 dasm_put(Dst, 4294, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1122 dasm_put(Dst, 4313, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1119 dasm_put(Dst, 4357, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1123 dasm_put(Dst, 4376, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1120 dasm_put(Dst, 4447); 1124 dasm_put(Dst, 4466);
1121 if (sse) { 1125 if (sse) {
1122 dasm_put(Dst, 4459, 1+1, LJ_TISNUM); 1126 dasm_put(Dst, 4478, 1+1, LJ_TISNUM);
1123 } else { 1127 } else {
1124 } 1128 }
1125 dasm_put(Dst, 4484); 1129 dasm_put(Dst, 4503);
1126 if (sse) { 1130 if (sse) {
1127 dasm_put(Dst, 4504, 1+1, LJ_TISNUM); 1131 dasm_put(Dst, 4523, 1+1, LJ_TISNUM);
1128 } else { 1132 } else {
1129 } 1133 }
1130 dasm_put(Dst, 4529); 1134 dasm_put(Dst, 4548);
1131 if (sse) { 1135 if (sse) {
1132 dasm_put(Dst, 4549, 1+1, LJ_TISNUM); 1136 dasm_put(Dst, 4568, 1+1, LJ_TISNUM);
1133 } else { 1137 } else {
1134 } 1138 }
1135 dasm_put(Dst, 4574); 1139 dasm_put(Dst, 4593);
1136 if (sse) { 1140 if (sse) {
1137 dasm_put(Dst, 4596, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1141 dasm_put(Dst, 4615, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1138 } else { 1142 } else {
1139 dasm_put(Dst, 4631, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1143 dasm_put(Dst, 4650, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1140 } 1144 }
1141 dasm_put(Dst, 4660, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1145 dasm_put(Dst, 4679, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1142 dasm_put(Dst, 4725, 1+1, LJ_TISNUM); 1146 dasm_put(Dst, 4744, 1+1, LJ_TISNUM);
1143 if (sse) { 1147 if (sse) {
1144 dasm_put(Dst, 4820); 1148 dasm_put(Dst, 4839);
1145 } else { 1149 } else {
1146 dasm_put(Dst, 4826); 1150 dasm_put(Dst, 4845);
1147 } 1151 }
1148 dasm_put(Dst, 4833); 1152 dasm_put(Dst, 4852);
1149 if (sse) { 1153 if (sse) {
1150 dasm_put(Dst, 4858); 1154 dasm_put(Dst, 4877);
1151 } else { 1155 } else {
1152 dasm_put(Dst, 4864); 1156 dasm_put(Dst, 4883);
1153 } 1157 }
1154 dasm_put(Dst, 4867, 1+2); 1158 dasm_put(Dst, 4886, 1+2);
1155 if (sse) { 1159 if (sse) {
1156 dasm_put(Dst, 4876); 1160 dasm_put(Dst, 4895);
1157 } else { 1161 } else {
1158 dasm_put(Dst, 4884); 1162 dasm_put(Dst, 4903);
1159 } 1163 }
1160 dasm_put(Dst, 1634); 1164 dasm_put(Dst, 492);
1161 if (sse) { 1165 if (sse) {
1162 dasm_put(Dst, 4892, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1166 dasm_put(Dst, 4911, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1163 } else { 1167 } else {
1164 dasm_put(Dst, 4919); 1168 dasm_put(Dst, 4938);
1165 } 1169 }
1166 dasm_put(Dst, 4936); 1170 dasm_put(Dst, 4955);
1167 if (sse) { 1171 if (sse) {
1168 dasm_put(Dst, 4952, 1+1, LJ_TISNUM); 1172 dasm_put(Dst, 4971, 1+1, LJ_TISNUM);
1169 } else { 1173 } else {
1170 dasm_put(Dst, 4977, 1+1, LJ_TISNUM); 1174 dasm_put(Dst, 4996, 1+1, LJ_TISNUM);
1171 } 1175 }
1172 dasm_put(Dst, 4999); 1176 dasm_put(Dst, 5018);
1173 if (sse) { 1177 if (sse) {
1174 dasm_put(Dst, 5017); 1178 dasm_put(Dst, 5036);
1175 } else { 1179 } else {
1176 dasm_put(Dst, 5043); 1180 dasm_put(Dst, 5062);
1177 } 1181 }
1178 dasm_put(Dst, 5060, 1+2); 1182 dasm_put(Dst, 5079, 1+2);
1179 if (sse) { 1183 if (sse) {
1180 dasm_put(Dst, 5100); 1184 dasm_put(Dst, 5119);
1181 } else { 1185 } else {
1182 dasm_put(Dst, 5108); 1186 dasm_put(Dst, 5127);
1183 } 1187 }
1184 dasm_put(Dst, 5118, 2+1, LJ_TISNUM, LJ_TISNUM); 1188 dasm_put(Dst, 5137, 2+1, LJ_TISNUM, LJ_TISNUM);
1185 if (sse) { 1189 if (sse) {
1186 dasm_put(Dst, 5170, 1+1, LJ_TISNUM, LJ_TISNUM); 1190 dasm_put(Dst, 5189, 1+1, LJ_TISNUM, LJ_TISNUM);
1187 } else { 1191 } else {
1188 dasm_put(Dst, 5217, 2+1, LJ_TISNUM, LJ_TISNUM); 1192 dasm_put(Dst, 5236, 2+1, LJ_TISNUM, LJ_TISNUM);
1189 } 1193 }
1190 if (sse) { 1194 if (sse) {
1191 dasm_put(Dst, 5258, 1+1, LJ_TISNUM, LJ_TISNUM); 1195 dasm_put(Dst, 5277, 1+1, LJ_TISNUM, LJ_TISNUM);
1192 } else { 1196 } else {
1193 } 1197 }
1194 if (sse) { 1198 if (sse) {
1195 dasm_put(Dst, 5329, 1+1, LJ_TISNUM, LJ_TISNUM); 1199 dasm_put(Dst, 5348, 1+1, LJ_TISNUM, LJ_TISNUM);
1196 } else { 1200 } else {
1197 } 1201 }
1198 if (!sse) { 1202 if (!sse) {
1199 dasm_put(Dst, 5400); 1203 dasm_put(Dst, 5419);
1200 } 1204 }
1201 dasm_put(Dst, 5409, 1+1, LJ_TSTR); 1205 dasm_put(Dst, 5428, 1+1, LJ_TSTR);
1202 if (sse) { 1206 if (sse) {
1203 dasm_put(Dst, 5431, Dt5(->len)); 1207 dasm_put(Dst, 5450, Dt5(->len));
1204 } else { 1208 } else {
1205 dasm_put(Dst, 5442, Dt5(->len)); 1209 dasm_put(Dst, 5461, Dt5(->len));
1206 } 1210 }
1207 dasm_put(Dst, 5450, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1211 dasm_put(Dst, 5469, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1208 if (sse) { 1212 if (sse) {
1209 dasm_put(Dst, 5484); 1213 dasm_put(Dst, 5503);
1210 } else { 1214 } else {
1211 dasm_put(Dst, 5494); 1215 dasm_put(Dst, 5513);
1212 } 1216 }
1213 dasm_put(Dst, 5505, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1217 dasm_put(Dst, 5524, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1214 if (sse) { 1218 if (sse) {
1215 dasm_put(Dst, 5542); 1219 dasm_put(Dst, 5561);
1216 } else { 1220 } else {
1217 dasm_put(Dst, 5562); 1221 dasm_put(Dst, 5581);
1218 } 1222 }
1219 dasm_put(Dst, 5582, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1223 dasm_put(Dst, 5601, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1220 dasm_put(Dst, 2485); 1224 dasm_put(Dst, 2504);
1221 if (sse) { 1225 if (sse) {
1222 dasm_put(Dst, 5696); 1226 dasm_put(Dst, 5715);
1223 } else { 1227 } else {
1224 dasm_put(Dst, 5707); 1228 dasm_put(Dst, 5726);
1225 } 1229 }
1226 dasm_put(Dst, 5715, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1230 dasm_put(Dst, 5734, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1227 if (sse) { 1231 if (sse) {
1228 dasm_put(Dst, 5745); 1232 dasm_put(Dst, 5764);
1229 } else { 1233 } else {
1230 } 1234 }
1231 dasm_put(Dst, 5752, sizeof(GCstr)-1); 1235 dasm_put(Dst, 5771, sizeof(GCstr)-1);
1232 dasm_put(Dst, 5827, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1236 dasm_put(Dst, 5846, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1233 dasm_put(Dst, 5888, LJ_TSTR, LJ_TISNUM); 1237 dasm_put(Dst, 5907, LJ_TSTR, LJ_TISNUM);
1234 if (sse) { 1238 if (sse) {
1235 dasm_put(Dst, 5912); 1239 dasm_put(Dst, 5931);
1236 } else { 1240 } else {
1237 dasm_put(Dst, 5919); 1241 dasm_put(Dst, 5938);
1238 } 1242 }
1239 dasm_put(Dst, 5931, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1243 dasm_put(Dst, 5950, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1240 dasm_put(Dst, 5999, 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, 6018, 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, 6069, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1245 dasm_put(Dst, 6088, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1242 dasm_put(Dst, 6145, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1246 dasm_put(Dst, 6164, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1243 dasm_put(Dst, 6230, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1247 dasm_put(Dst, 6249, 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, 6307, 1+1, LJ_TTAB); 1248 dasm_put(Dst, 6326, 1+1, LJ_TTAB);
1245 if (sse) { 1249 if (sse) {
1246 dasm_put(Dst, 6380); 1250 dasm_put(Dst, 6399);
1247 } else { 1251 } else {
1248 } 1252 }
1249 if (sse) { 1253 if (sse) {
1250 dasm_put(Dst, 6390, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1254 dasm_put(Dst, 6409, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1251 } else { 1255 } else {
1252 } 1256 }
1253 if (sse) { 1257 if (sse) {
1254 dasm_put(Dst, 6442, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1258 dasm_put(Dst, 6461, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1255 } else { 1259 } else {
1256 } 1260 }
1257 dasm_put(Dst, 6485); 1261 dasm_put(Dst, 6504);
1258 if (sse) { 1262 if (sse) {
1259 dasm_put(Dst, 6495); 1263 dasm_put(Dst, 6514);
1260 } 1264 }
1261 dasm_put(Dst, 6499, LJ_TISNUM); 1265 dasm_put(Dst, 6518, LJ_TISNUM);
1262 if (sse) { 1266 if (sse) {
1263 dasm_put(Dst, 6517); 1267 dasm_put(Dst, 6536);
1264 } else { 1268 } else {
1265 } 1269 }
1266 dasm_put(Dst, 6534); 1270 dasm_put(Dst, 6553);
1267 if (sse) { 1271 if (sse) {
1268 dasm_put(Dst, 6542, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1272 dasm_put(Dst, 6561, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1269 } else { 1273 } else {
1270 } 1274 }
1271 dasm_put(Dst, 6485); 1275 dasm_put(Dst, 6504);
1272 if (sse) { 1276 if (sse) {
1273 dasm_put(Dst, 6495); 1277 dasm_put(Dst, 6514);
1274 } 1278 }
1275 dasm_put(Dst, 6499, LJ_TISNUM); 1279 dasm_put(Dst, 6518, LJ_TISNUM);
1276 if (sse) { 1280 if (sse) {
1277 dasm_put(Dst, 6585); 1281 dasm_put(Dst, 6604);
1278 } else { 1282 } else {
1279 } 1283 }
1280 dasm_put(Dst, 6534); 1284 dasm_put(Dst, 6553);
1281 if (sse) { 1285 if (sse) {
1282 dasm_put(Dst, 6602, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1286 dasm_put(Dst, 6621, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1283 } else { 1287 } else {
1284 } 1288 }
1285 dasm_put(Dst, 6485); 1289 dasm_put(Dst, 6504);
1286 if (sse) { 1290 if (sse) {
1287 dasm_put(Dst, 6495); 1291 dasm_put(Dst, 6514);
1288 } 1292 }
1289 dasm_put(Dst, 6499, LJ_TISNUM); 1293 dasm_put(Dst, 6518, LJ_TISNUM);
1290 if (sse) { 1294 if (sse) {
1291 dasm_put(Dst, 6645); 1295 dasm_put(Dst, 6664);
1292 } else { 1296 } else {
1293 } 1297 }
1294 dasm_put(Dst, 6534); 1298 dasm_put(Dst, 6553);
1295 if (sse) { 1299 if (sse) {
1296 dasm_put(Dst, 6662, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1300 dasm_put(Dst, 6681, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1297 } else { 1301 } else {
1298 } 1302 }
1299 dasm_put(Dst, 6705); 1303 dasm_put(Dst, 6724);
1300 if (sse) { 1304 if (sse) {
1301 dasm_put(Dst, 6712, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1305 dasm_put(Dst, 6731, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1302 } else { 1306 } else {
1303 } 1307 }
1304 dasm_put(Dst, 6755); 1308 dasm_put(Dst, 6774);
1305 if (sse) { 1309 if (sse) {
1306 dasm_put(Dst, 6759); 1310 dasm_put(Dst, 6778);
1307 } else { 1311 } else {
1308 } 1312 }
1309 dasm_put(Dst, 6785); 1313 dasm_put(Dst, 6804);
1310 if (sse) { 1314 if (sse) {
1311 dasm_put(Dst, 6376); 1315 dasm_put(Dst, 6395);
1312 } 1316 }
1313 dasm_put(Dst, 6788); 1317 dasm_put(Dst, 6807);
1314 if (sse) { 1318 if (sse) {
1315 dasm_put(Dst, 6797, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1319 dasm_put(Dst, 6816, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1316 } else { 1320 } else {
1317 } 1321 }
1318 dasm_put(Dst, 6866); 1322 dasm_put(Dst, 6885);
1319 if (sse) { 1323 if (sse) {
1320 dasm_put(Dst, 6875, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1324 dasm_put(Dst, 6894, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1321 } else { 1325 } else {
1322 } 1326 }
1323 dasm_put(Dst, 6944); 1327 dasm_put(Dst, 6963);
1324 if (sse) { 1328 if (sse) {
1325 dasm_put(Dst, 6954, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1329 dasm_put(Dst, 6973, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1326 } else { 1330 } else {
1327 } 1331 }
1328 dasm_put(Dst, 7023); 1332 dasm_put(Dst, 7042);
1329 if (sse) { 1333 if (sse) {
1330 dasm_put(Dst, 7033, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1334 dasm_put(Dst, 7052, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1331 } else { 1335 } else {
1332 } 1336 }
1333 dasm_put(Dst, 7102); 1337 dasm_put(Dst, 7121);
1334 if (sse) { 1338 if (sse) {
1335 dasm_put(Dst, 7111, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1339 dasm_put(Dst, 7130, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1336 } else { 1340 } else {
1337 } 1341 }
1338 dasm_put(Dst, 7180, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1342 dasm_put(Dst, 7199, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1339 dasm_put(Dst, 7263, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top)); 1343 dasm_put(Dst, 7282, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top));
1340 dasm_put(Dst, 7381, Dt1(->base), Dt1(->top)); 1344 dasm_put(Dst, 7400, Dt1(->base), Dt1(->top));
1341#if LJ_HASJIT 1345#if LJ_HASJIT
1342 dasm_put(Dst, 7423, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1346 dasm_put(Dst, 7442, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1343#endif 1347#endif
1344 dasm_put(Dst, 7456, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); 1348 dasm_put(Dst, 7475, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base));
1345 dasm_put(Dst, 7523, GG_DISP_STATIC*8); 1349 dasm_put(Dst, 7542, GG_DISP_STATIC*8);
1346#if LJ_HASJIT 1350#if LJ_HASJIT
1347 dasm_put(Dst, 7560); 1351 dasm_put(Dst, 7579);
1348#endif 1352#endif
1349 dasm_put(Dst, 7562); 1353 dasm_put(Dst, 7581);
1350#if LJ_HASJIT 1354#if LJ_HASJIT
1351 dasm_put(Dst, 7560); 1355 dasm_put(Dst, 7579);
1352#endif 1356#endif
1353 dasm_put(Dst, 7565); 1357 dasm_put(Dst, 7584);
1354#if LJ_HASJIT 1358#if LJ_HASJIT
1355 dasm_put(Dst, 7560); 1359 dasm_put(Dst, 7579);
1356#endif 1360#endif
1357 dasm_put(Dst, 7568); 1361 dasm_put(Dst, 7587);
1358#if LJ_HASJIT 1362#if LJ_HASJIT
1359 dasm_put(Dst, 7571, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1363 dasm_put(Dst, 7590, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1360#endif 1364#endif
1361 dasm_put(Dst, 7618); 1365 dasm_put(Dst, 7637);
1362 if (!sse) { 1366 if (!sse) {
1363 dasm_put(Dst, 7621); 1367 dasm_put(Dst, 7640);
1364 } 1368 }
1365 dasm_put(Dst, 7666, (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)); 1369 dasm_put(Dst, 7685, (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 if (!sse) { 1370 if (!sse) {
1367 dasm_put(Dst, 7752); 1371 dasm_put(Dst, 7771);
1368 } 1372 }
1369 dasm_put(Dst, 7797, (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)); 1373 dasm_put(Dst, 7816, (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 if (!sse) { 1374 if (!sse) {
1371 dasm_put(Dst, 7883); 1375 dasm_put(Dst, 7902);
1372 } 1376 }
1373 dasm_put(Dst, 7922, (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)); 1377 dasm_put(Dst, 7941, (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 if (sse) { 1378 if (sse) {
1375 dasm_put(Dst, 8011, (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)); 1379 dasm_put(Dst, 8030, (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 } else { 1380 } else {
1377 dasm_put(Dst, 8125); 1381 dasm_put(Dst, 8144);
1378 } 1382 }
1379 dasm_put(Dst, 8172); 1383 dasm_put(Dst, 8191);
1380 if (!sse) { 1384 if (!sse) {
1381 } else { 1385 } else {
1382 dasm_put(Dst, 8249); 1386 dasm_put(Dst, 8268);
1383 } 1387 }
1384 dasm_put(Dst, 8252); 1388 dasm_put(Dst, 8271);
1385 dasm_put(Dst, 8337, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1389 dasm_put(Dst, 8356, (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, 8438, (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)); 1390 dasm_put(Dst, 8457, (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, 8612); 1391 dasm_put(Dst, 8631);
1388 if (sse) { 1392 if (sse) {
1389 dasm_put(Dst, 8653); 1393 dasm_put(Dst, 8672);
1390 dasm_put(Dst, 8723); 1394 dasm_put(Dst, 8742);
1391 dasm_put(Dst, 8795); 1395 dasm_put(Dst, 8814);
1392 } else { 1396 } else {
1393 dasm_put(Dst, 8847); 1397 dasm_put(Dst, 8866);
1394 dasm_put(Dst, 8939); 1398 dasm_put(Dst, 8958);
1395 } 1399 }
1396 dasm_put(Dst, 8985); 1400 dasm_put(Dst, 9004);
1397 if (sse) { 1401 if (sse) {
1398 dasm_put(Dst, 8991, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1402 dasm_put(Dst, 9010, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1399 dasm_put(Dst, 9076, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1403 dasm_put(Dst, 9095, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1400 } else { 1404 } else {
1401 dasm_put(Dst, 9204); 1405 dasm_put(Dst, 9223);
1402 dasm_put(Dst, 9287); 1406 dasm_put(Dst, 9306);
1403 if (cmov) { 1407 if (cmov) {
1404 dasm_put(Dst, 9342);
1405 } else {
1406 dasm_put(Dst, 9361); 1408 dasm_put(Dst, 9361);
1409 } else {
1410 dasm_put(Dst, 9380);
1407 } 1411 }
1408 dasm_put(Dst, 9200); 1412 dasm_put(Dst, 9219);
1409 } 1413 }
1410 dasm_put(Dst, 9402); 1414 dasm_put(Dst, 9421);
1411} 1415}
1412 1416
1413/* Generate the code for a single instruction. */ 1417/* Generate the code for a single instruction. */
1414static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1418static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1415{ 1419{
1416 int vk = 0; 1420 int vk = 0;
1417 dasm_put(Dst, 9424, defop); 1421 dasm_put(Dst, 159, defop);
1418 1422
1419 switch (op) { 1423 switch (op) {
1420 1424
@@ -1423,602 +1427,602 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1423 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1427 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1424 1428
1425 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1429 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1426 dasm_put(Dst, 9426, LJ_TISNUM, LJ_TISNUM); 1430 dasm_put(Dst, 9443, LJ_TISNUM, LJ_TISNUM);
1427 if (sse) { 1431 if (sse) {
1428 dasm_put(Dst, 9447); 1432 dasm_put(Dst, 9464);
1429 } else { 1433 } else {
1430 dasm_put(Dst, 9462); 1434 dasm_put(Dst, 9479);
1431 if (cmov) { 1435 if (cmov) {
1432 dasm_put(Dst, 9472); 1436 dasm_put(Dst, 9489);
1433 } else { 1437 } else {
1434 dasm_put(Dst, 9478); 1438 dasm_put(Dst, 9495);
1435 } 1439 }
1436 } 1440 }
1437 switch (op) { 1441 switch (op) {
1438 case BC_ISLT: 1442 case BC_ISLT:
1439 dasm_put(Dst, 9485); 1443 dasm_put(Dst, 9502);
1440 break; 1444 break;
1441 case BC_ISGE: 1445 case BC_ISGE:
1442 dasm_put(Dst, 9282); 1446 dasm_put(Dst, 9301);
1443 break; 1447 break;
1444 case BC_ISLE: 1448 case BC_ISLE:
1445 dasm_put(Dst, 6302); 1449 dasm_put(Dst, 6321);
1446 break; 1450 break;
1447 case BC_ISGT: 1451 case BC_ISGT:
1448 dasm_put(Dst, 9490); 1452 dasm_put(Dst, 9507);
1449 break; 1453 break;
1450 default: break; /* Shut up GCC. */ 1454 default: break; /* Shut up GCC. */
1451 } 1455 }
1452 dasm_put(Dst, 9495, -BCBIAS_J*4); 1456 dasm_put(Dst, 9512, -BCBIAS_J*4);
1453 break; 1457 break;
1454 1458
1455 case BC_ISEQV: case BC_ISNEV: 1459 case BC_ISEQV: case BC_ISNEV:
1456 vk = op == BC_ISEQV; 1460 vk = op == BC_ISEQV;
1457 dasm_put(Dst, 9530, LJ_TISNUM, LJ_TISNUM); 1461 dasm_put(Dst, 9547, LJ_TISNUM, LJ_TISNUM);
1458 if (sse) { 1462 if (sse) {
1459 dasm_put(Dst, 9556); 1463 dasm_put(Dst, 9573);
1460 } else { 1464 } else {
1461 dasm_put(Dst, 9568); 1465 dasm_put(Dst, 9585);
1462 if (cmov) { 1466 if (cmov) {
1463 dasm_put(Dst, 9472); 1467 dasm_put(Dst, 9489);
1464 } else { 1468 } else {
1465 dasm_put(Dst, 9478); 1469 dasm_put(Dst, 9495);
1466 } 1470 }
1467 } 1471 }
1468 iseqne_fp: 1472 iseqne_fp:
1469 if (vk) { 1473 if (vk) {
1470 dasm_put(Dst, 9575); 1474 dasm_put(Dst, 9592);
1471 } else { 1475 } else {
1472 dasm_put(Dst, 9584); 1476 dasm_put(Dst, 9601);
1473 } 1477 }
1474 iseqne_end: 1478 iseqne_end:
1475 if (vk) { 1479 if (vk) {
1476 dasm_put(Dst, 9593, -BCBIAS_J*4); 1480 dasm_put(Dst, 9610, -BCBIAS_J*4);
1477 } else { 1481 } else {
1478 dasm_put(Dst, 9608, -BCBIAS_J*4); 1482 dasm_put(Dst, 9625, -BCBIAS_J*4);
1479 } 1483 }
1480 dasm_put(Dst, 7597); 1484 dasm_put(Dst, 7616);
1481 if (op == BC_ISEQV || op == BC_ISNEV) { 1485 if (op == BC_ISEQV || op == BC_ISNEV) {
1482 dasm_put(Dst, 9623, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1486 dasm_put(Dst, 9640, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1483 if (vk) { 1487 if (vk) {
1484 dasm_put(Dst, 9681); 1488 dasm_put(Dst, 9698);
1485 } else { 1489 } else {
1486 dasm_put(Dst, 9685); 1490 dasm_put(Dst, 9702);
1487 } 1491 }
1488 dasm_put(Dst, 9691); 1492 dasm_put(Dst, 9708);
1489 } 1493 }
1490 break; 1494 break;
1491 case BC_ISEQS: case BC_ISNES: 1495 case BC_ISEQS: case BC_ISNES:
1492 vk = op == BC_ISEQS; 1496 vk = op == BC_ISEQS;
1493 dasm_put(Dst, 9696, LJ_TSTR); 1497 dasm_put(Dst, 9713, LJ_TSTR);
1494 iseqne_test: 1498 iseqne_test:
1495 if (vk) { 1499 if (vk) {
1496 dasm_put(Dst, 9579); 1500 dasm_put(Dst, 9596);
1497 } else { 1501 } else {
1498 dasm_put(Dst, 8934); 1502 dasm_put(Dst, 8953);
1499 } 1503 }
1500 goto iseqne_end; 1504 goto iseqne_end;
1501 case BC_ISEQN: case BC_ISNEN: 1505 case BC_ISEQN: case BC_ISNEN:
1502 vk = op == BC_ISEQN; 1506 vk = op == BC_ISEQN;
1503 dasm_put(Dst, 9721, LJ_TISNUM); 1507 dasm_put(Dst, 9738, LJ_TISNUM);
1504 if (sse) { 1508 if (sse) {
1505 dasm_put(Dst, 9735); 1509 dasm_put(Dst, 9752);
1506 } else { 1510 } else {
1507 dasm_put(Dst, 9748); 1511 dasm_put(Dst, 9765);
1508 if (cmov) { 1512 if (cmov) {
1509 dasm_put(Dst, 9472); 1513 dasm_put(Dst, 9489);
1510 } else { 1514 } else {
1511 dasm_put(Dst, 9478); 1515 dasm_put(Dst, 9495);
1512 } 1516 }
1513 } 1517 }
1514 goto iseqne_fp; 1518 goto iseqne_fp;
1515 case BC_ISEQP: case BC_ISNEP: 1519 case BC_ISEQP: case BC_ISNEP:
1516 vk = op == BC_ISEQP; 1520 vk = op == BC_ISEQP;
1517 dasm_put(Dst, 9756); 1521 dasm_put(Dst, 9773);
1518 goto iseqne_test; 1522 goto iseqne_test;
1519 1523
1520 /* -- Unary test and copy ops ------------------------------------------- */ 1524 /* -- Unary test and copy ops ------------------------------------------- */
1521 1525
1522 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1526 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1523 dasm_put(Dst, 9768, LJ_TISTRUECOND); 1527 dasm_put(Dst, 9785, LJ_TISTRUECOND);
1524 if (op == BC_IST || op == BC_ISTC) { 1528 if (op == BC_IST || op == BC_ISTC) {
1525 dasm_put(Dst, 9780); 1529 dasm_put(Dst, 9797);
1526 } else { 1530 } else {
1527 dasm_put(Dst, 9785); 1531 dasm_put(Dst, 9802);
1528 } 1532 }
1529 if (op == BC_ISTC || op == BC_ISFC) { 1533 if (op == BC_ISTC || op == BC_ISFC) {
1530 dasm_put(Dst, 9790); 1534 dasm_put(Dst, 9807);
1531 } 1535 }
1532 dasm_put(Dst, 9801, -BCBIAS_J*4); 1536 dasm_put(Dst, 9818, -BCBIAS_J*4);
1533 break; 1537 break;
1534 1538
1535 /* -- Unary ops --------------------------------------------------------- */ 1539 /* -- Unary ops --------------------------------------------------------- */
1536 1540
1537 case BC_MOV: 1541 case BC_MOV:
1538 dasm_put(Dst, 9834); 1542 dasm_put(Dst, 9851);
1539 break; 1543 break;
1540 case BC_NOT: 1544 case BC_NOT:
1541 dasm_put(Dst, 9869, LJ_TISTRUECOND, LJ_TTRUE); 1545 dasm_put(Dst, 9886, LJ_TISTRUECOND, LJ_TTRUE);
1542 break; 1546 break;
1543 case BC_UNM: 1547 case BC_UNM:
1544 dasm_put(Dst, 9906, LJ_TISNUM); 1548 dasm_put(Dst, 9923, LJ_TISNUM);
1545 if (sse) { 1549 if (sse) {
1546 dasm_put(Dst, 9917, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1550 dasm_put(Dst, 9934, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1547 } else { 1551 } else {
1548 dasm_put(Dst, 9942); 1552 dasm_put(Dst, 9959);
1549 } 1553 }
1550 dasm_put(Dst, 7597); 1554 dasm_put(Dst, 7616);
1551 break; 1555 break;
1552 case BC_LEN: 1556 case BC_LEN:
1553 dasm_put(Dst, 9951, LJ_TSTR); 1557 dasm_put(Dst, 9968, LJ_TSTR);
1554 if (sse) { 1558 if (sse) {
1555 dasm_put(Dst, 9965, Dt5(->len)); 1559 dasm_put(Dst, 9982, Dt5(->len));
1556 } else { 1560 } else {
1557 dasm_put(Dst, 9983, Dt5(->len)); 1561 dasm_put(Dst, 10000, Dt5(->len));
1558 } 1562 }
1559 dasm_put(Dst, 9992, LJ_TTAB); 1563 dasm_put(Dst, 10009, LJ_TTAB);
1560 if (sse) { 1564 if (sse) {
1561 dasm_put(Dst, 10034); 1565 dasm_put(Dst, 10051);
1562 } else { 1566 } else {
1563 } 1567 }
1564 dasm_put(Dst, 10043); 1568 dasm_put(Dst, 10060);
1565 break; 1569 break;
1566 1570
1567 /* -- Binary ops -------------------------------------------------------- */ 1571 /* -- Binary ops -------------------------------------------------------- */
1568 1572
1569 1573
1570 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1574 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1571 dasm_put(Dst, 10053); 1575 dasm_put(Dst, 10070);
1572 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1576 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1573 switch (vk) { 1577 switch (vk) {
1574 case 0: 1578 case 0:
1575 dasm_put(Dst, 10061, LJ_TISNUM); 1579 dasm_put(Dst, 10078, LJ_TISNUM);
1576 if (sse) { 1580 if (sse) {
1577 dasm_put(Dst, 10073); 1581 dasm_put(Dst, 10090);
1578 } else { 1582 } else {
1579 dasm_put(Dst, 10088); 1583 dasm_put(Dst, 10105);
1580 } 1584 }
1581 break; 1585 break;
1582 case 1: 1586 case 1:
1583 dasm_put(Dst, 10097, LJ_TISNUM); 1587 dasm_put(Dst, 10114, LJ_TISNUM);
1584 if (sse) { 1588 if (sse) {
1585 dasm_put(Dst, 10109); 1589 dasm_put(Dst, 10126);
1586 } else { 1590 } else {
1587 dasm_put(Dst, 10124); 1591 dasm_put(Dst, 10141);
1588 } 1592 }
1589 break; 1593 break;
1590 default: 1594 default:
1591 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1595 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1592 if (sse) { 1596 if (sse) {
1593 dasm_put(Dst, 10155); 1597 dasm_put(Dst, 10172);
1594 } else { 1598 } else {
1595 dasm_put(Dst, 10169); 1599 dasm_put(Dst, 10186);
1596 } 1600 }
1597 break; 1601 break;
1598 } 1602 }
1599 if (sse) { 1603 if (sse) {
1600 dasm_put(Dst, 9935); 1604 dasm_put(Dst, 9952);
1601 } else { 1605 } else {
1602 dasm_put(Dst, 9947); 1606 dasm_put(Dst, 9964);
1603 } 1607 }
1604 dasm_put(Dst, 7597); 1608 dasm_put(Dst, 7616);
1605 break; 1609 break;
1606 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1610 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1607 dasm_put(Dst, 10053); 1611 dasm_put(Dst, 10070);
1608 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1612 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1609 switch (vk) { 1613 switch (vk) {
1610 case 0: 1614 case 0:
1611 dasm_put(Dst, 10061, LJ_TISNUM); 1615 dasm_put(Dst, 10078, LJ_TISNUM);
1612 if (sse) { 1616 if (sse) {
1613 dasm_put(Dst, 10177); 1617 dasm_put(Dst, 10194);
1614 } else { 1618 } else {
1615 dasm_put(Dst, 10192); 1619 dasm_put(Dst, 10209);
1616 } 1620 }
1617 break; 1621 break;
1618 case 1: 1622 case 1:
1619 dasm_put(Dst, 10097, LJ_TISNUM); 1623 dasm_put(Dst, 10114, LJ_TISNUM);
1620 if (sse) { 1624 if (sse) {
1621 dasm_put(Dst, 10201); 1625 dasm_put(Dst, 10218);
1622 } else { 1626 } else {
1623 dasm_put(Dst, 10216); 1627 dasm_put(Dst, 10233);
1624 } 1628 }
1625 break; 1629 break;
1626 default: 1630 default:
1627 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1631 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1628 if (sse) { 1632 if (sse) {
1629 dasm_put(Dst, 10225); 1633 dasm_put(Dst, 10242);
1630 } else { 1634 } else {
1631 dasm_put(Dst, 10239); 1635 dasm_put(Dst, 10256);
1632 } 1636 }
1633 break; 1637 break;
1634 } 1638 }
1635 if (sse) { 1639 if (sse) {
1636 dasm_put(Dst, 9935); 1640 dasm_put(Dst, 9952);
1637 } else { 1641 } else {
1638 dasm_put(Dst, 9947); 1642 dasm_put(Dst, 9964);
1639 } 1643 }
1640 dasm_put(Dst, 7597); 1644 dasm_put(Dst, 7616);
1641 break; 1645 break;
1642 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1646 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1643 dasm_put(Dst, 10053); 1647 dasm_put(Dst, 10070);
1644 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1648 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1645 switch (vk) { 1649 switch (vk) {
1646 case 0: 1650 case 0:
1647 dasm_put(Dst, 10061, LJ_TISNUM); 1651 dasm_put(Dst, 10078, LJ_TISNUM);
1648 if (sse) { 1652 if (sse) {
1649 dasm_put(Dst, 10247); 1653 dasm_put(Dst, 10264);
1650 } else { 1654 } else {
1651 dasm_put(Dst, 10262); 1655 dasm_put(Dst, 10279);
1652 } 1656 }
1653 break; 1657 break;
1654 case 1: 1658 case 1:
1655 dasm_put(Dst, 10097, LJ_TISNUM); 1659 dasm_put(Dst, 10114, LJ_TISNUM);
1656 if (sse) { 1660 if (sse) {
1657 dasm_put(Dst, 10271); 1661 dasm_put(Dst, 10288);
1658 } else { 1662 } else {
1659 dasm_put(Dst, 10286); 1663 dasm_put(Dst, 10303);
1660 } 1664 }
1661 break; 1665 break;
1662 default: 1666 default:
1663 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1667 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1664 if (sse) { 1668 if (sse) {
1665 dasm_put(Dst, 10295); 1669 dasm_put(Dst, 10312);
1666 } else { 1670 } else {
1667 dasm_put(Dst, 10309); 1671 dasm_put(Dst, 10326);
1668 } 1672 }
1669 break; 1673 break;
1670 } 1674 }
1671 if (sse) { 1675 if (sse) {
1672 dasm_put(Dst, 9935); 1676 dasm_put(Dst, 9952);
1673 } else { 1677 } else {
1674 dasm_put(Dst, 9947); 1678 dasm_put(Dst, 9964);
1675 } 1679 }
1676 dasm_put(Dst, 7597); 1680 dasm_put(Dst, 7616);
1677 break; 1681 break;
1678 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1682 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1679 dasm_put(Dst, 10053); 1683 dasm_put(Dst, 10070);
1680 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1684 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1681 switch (vk) { 1685 switch (vk) {
1682 case 0: 1686 case 0:
1683 dasm_put(Dst, 10061, LJ_TISNUM); 1687 dasm_put(Dst, 10078, LJ_TISNUM);
1684 if (sse) { 1688 if (sse) {
1685 dasm_put(Dst, 10317); 1689 dasm_put(Dst, 10334);
1686 } else { 1690 } else {
1687 dasm_put(Dst, 10332); 1691 dasm_put(Dst, 10349);
1688 } 1692 }
1689 break; 1693 break;
1690 case 1: 1694 case 1:
1691 dasm_put(Dst, 10097, LJ_TISNUM); 1695 dasm_put(Dst, 10114, LJ_TISNUM);
1692 if (sse) { 1696 if (sse) {
1693 dasm_put(Dst, 10341); 1697 dasm_put(Dst, 10358);
1694 } else { 1698 } else {
1695 dasm_put(Dst, 10356); 1699 dasm_put(Dst, 10373);
1696 } 1700 }
1697 break; 1701 break;
1698 default: 1702 default:
1699 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1703 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1700 if (sse) { 1704 if (sse) {
1701 dasm_put(Dst, 10365); 1705 dasm_put(Dst, 10382);
1702 } else { 1706 } else {
1703 dasm_put(Dst, 10379); 1707 dasm_put(Dst, 10396);
1704 } 1708 }
1705 break; 1709 break;
1706 } 1710 }
1707 if (sse) { 1711 if (sse) {
1708 dasm_put(Dst, 9935); 1712 dasm_put(Dst, 9952);
1709 } else { 1713 } else {
1710 dasm_put(Dst, 9947); 1714 dasm_put(Dst, 9964);
1711 } 1715 }
1712 dasm_put(Dst, 7597); 1716 dasm_put(Dst, 7616);
1713 break; 1717 break;
1714 case BC_MODVN: 1718 case BC_MODVN:
1715 dasm_put(Dst, 10053); 1719 dasm_put(Dst, 10070);
1716 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1720 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1717 switch (vk) { 1721 switch (vk) {
1718 case 0: 1722 case 0:
1719 dasm_put(Dst, 10061, LJ_TISNUM); 1723 dasm_put(Dst, 10078, LJ_TISNUM);
1720 if (sse) { 1724 if (sse) {
1721 dasm_put(Dst, 10387); 1725 dasm_put(Dst, 10404);
1722 } else { 1726 } else {
1723 dasm_put(Dst, 10402); 1727 dasm_put(Dst, 10419);
1724 } 1728 }
1725 break; 1729 break;
1726 case 1: 1730 case 1:
1727 dasm_put(Dst, 10097, LJ_TISNUM); 1731 dasm_put(Dst, 10114, LJ_TISNUM);
1728 if (sse) { 1732 if (sse) {
1729 dasm_put(Dst, 10411); 1733 dasm_put(Dst, 10428);
1730 } else { 1734 } else {
1731 dasm_put(Dst, 10426); 1735 dasm_put(Dst, 10443);
1732 } 1736 }
1733 break; 1737 break;
1734 default: 1738 default:
1735 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1739 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1736 if (sse) { 1740 if (sse) {
1737 dasm_put(Dst, 10435); 1741 dasm_put(Dst, 10452);
1738 } else { 1742 } else {
1739 dasm_put(Dst, 10449); 1743 dasm_put(Dst, 10466);
1740 } 1744 }
1741 break; 1745 break;
1742 } 1746 }
1743 dasm_put(Dst, 10457); 1747 dasm_put(Dst, 10474);
1744 if (sse) { 1748 if (sse) {
1745 dasm_put(Dst, 9935); 1749 dasm_put(Dst, 9952);
1746 } else { 1750 } else {
1747 dasm_put(Dst, 9947); 1751 dasm_put(Dst, 9964);
1748 } 1752 }
1749 dasm_put(Dst, 7597); 1753 dasm_put(Dst, 7616);
1750 break; 1754 break;
1751 case BC_MODNV: case BC_MODVV: 1755 case BC_MODNV: case BC_MODVV:
1752 dasm_put(Dst, 10053); 1756 dasm_put(Dst, 10070);
1753 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1757 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1754 switch (vk) { 1758 switch (vk) {
1755 case 0: 1759 case 0:
1756 dasm_put(Dst, 10061, LJ_TISNUM); 1760 dasm_put(Dst, 10078, LJ_TISNUM);
1757 if (sse) { 1761 if (sse) {
1758 dasm_put(Dst, 10387); 1762 dasm_put(Dst, 10404);
1759 } else { 1763 } else {
1760 dasm_put(Dst, 10402); 1764 dasm_put(Dst, 10419);
1761 } 1765 }
1762 break; 1766 break;
1763 case 1: 1767 case 1:
1764 dasm_put(Dst, 10097, LJ_TISNUM); 1768 dasm_put(Dst, 10114, LJ_TISNUM);
1765 if (sse) { 1769 if (sse) {
1766 dasm_put(Dst, 10411); 1770 dasm_put(Dst, 10428);
1767 } else { 1771 } else {
1768 dasm_put(Dst, 10426); 1772 dasm_put(Dst, 10443);
1769 } 1773 }
1770 break; 1774 break;
1771 default: 1775 default:
1772 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1776 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1773 if (sse) { 1777 if (sse) {
1774 dasm_put(Dst, 10435); 1778 dasm_put(Dst, 10452);
1775 } else { 1779 } else {
1776 dasm_put(Dst, 10449); 1780 dasm_put(Dst, 10466);
1777 } 1781 }
1778 break; 1782 break;
1779 } 1783 }
1780 dasm_put(Dst, 10463); 1784 dasm_put(Dst, 10480);
1781 break; 1785 break;
1782 case BC_POW: 1786 case BC_POW:
1783 dasm_put(Dst, 10053); 1787 dasm_put(Dst, 10070);
1784 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1788 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1785 switch (vk) { 1789 switch (vk) {
1786 case 0: 1790 case 0:
1787 dasm_put(Dst, 10061, LJ_TISNUM); 1791 dasm_put(Dst, 10078, LJ_TISNUM);
1788 if (sse) { 1792 if (sse) {
1789 dasm_put(Dst, 10387); 1793 dasm_put(Dst, 10404);
1790 } else { 1794 } else {
1791 dasm_put(Dst, 10402); 1795 dasm_put(Dst, 10419);
1792 } 1796 }
1793 break; 1797 break;
1794 case 1: 1798 case 1:
1795 dasm_put(Dst, 10097, LJ_TISNUM); 1799 dasm_put(Dst, 10114, LJ_TISNUM);
1796 if (sse) { 1800 if (sse) {
1797 dasm_put(Dst, 10411); 1801 dasm_put(Dst, 10428);
1798 } else { 1802 } else {
1799 dasm_put(Dst, 10426); 1803 dasm_put(Dst, 10443);
1800 } 1804 }
1801 break; 1805 break;
1802 default: 1806 default:
1803 dasm_put(Dst, 10133, LJ_TISNUM, LJ_TISNUM); 1807 dasm_put(Dst, 10150, LJ_TISNUM, LJ_TISNUM);
1804 if (sse) { 1808 if (sse) {
1805 dasm_put(Dst, 10435); 1809 dasm_put(Dst, 10452);
1806 } else { 1810 } else {
1807 dasm_put(Dst, 10449); 1811 dasm_put(Dst, 10466);
1808 } 1812 }
1809 break; 1813 break;
1810 } 1814 }
1811 dasm_put(Dst, 10468); 1815 dasm_put(Dst, 10485);
1812 if (sse) { 1816 if (sse) {
1813 dasm_put(Dst, 9935); 1817 dasm_put(Dst, 9952);
1814 } else { 1818 } else {
1815 dasm_put(Dst, 9947); 1819 dasm_put(Dst, 9964);
1816 } 1820 }
1817 dasm_put(Dst, 7597); 1821 dasm_put(Dst, 7616);
1818 break; 1822 break;
1819 1823
1820 case BC_CAT: 1824 case BC_CAT:
1821 dasm_put(Dst, 10472, Dt1(->base), Dt1(->base)); 1825 dasm_put(Dst, 10489, Dt1(->base), Dt1(->base));
1822 break; 1826 break;
1823 1827
1824 /* -- Constant ops ------------------------------------------------------ */ 1828 /* -- Constant ops ------------------------------------------------------ */
1825 1829
1826 case BC_KSTR: 1830 case BC_KSTR:
1827 dasm_put(Dst, 10563, LJ_TSTR); 1831 dasm_put(Dst, 10580, LJ_TSTR);
1828 break; 1832 break;
1829 case BC_KSHORT: 1833 case BC_KSHORT:
1830 if (sse) { 1834 if (sse) {
1831 dasm_put(Dst, 10600); 1835 dasm_put(Dst, 10617);
1832 } else { 1836 } else {
1833 dasm_put(Dst, 10615); 1837 dasm_put(Dst, 10632);
1834 } 1838 }
1835 dasm_put(Dst, 7597); 1839 dasm_put(Dst, 7616);
1836 break; 1840 break;
1837 case BC_KNUM: 1841 case BC_KNUM:
1838 if (sse) { 1842 if (sse) {
1839 dasm_put(Dst, 10623); 1843 dasm_put(Dst, 10640);
1840 } else { 1844 } else {
1841 dasm_put(Dst, 10637); 1845 dasm_put(Dst, 10654);
1842 } 1846 }
1843 dasm_put(Dst, 7597); 1847 dasm_put(Dst, 7616);
1844 break; 1848 break;
1845 case BC_KPRI: 1849 case BC_KPRI:
1846 dasm_put(Dst, 10645); 1850 dasm_put(Dst, 10662);
1847 break; 1851 break;
1848 case BC_KNIL: 1852 case BC_KNIL:
1849 dasm_put(Dst, 10674, LJ_TNIL); 1853 dasm_put(Dst, 10691, LJ_TNIL);
1850 break; 1854 break;
1851 1855
1852 /* -- Upvalue and function ops ------------------------------------------ */ 1856 /* -- Upvalue and function ops ------------------------------------------ */
1853 1857
1854 case BC_UGET: 1858 case BC_UGET:
1855 dasm_put(Dst, 10722, offsetof(GCfuncL, uvptr), DtA(->v)); 1859 dasm_put(Dst, 10739, offsetof(GCfuncL, uvptr), DtA(->v));
1856 break; 1860 break;
1857 case BC_USETV: 1861 case BC_USETV:
1858#define TV2MARKOFS \ 1862#define TV2MARKOFS \
1859 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1863 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1860 dasm_put(Dst, 10768, 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); 1864 dasm_put(Dst, 10785, 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, 10864); 1865 dasm_put(Dst, 10881);
1862 break; 1866 break;
1863#undef TV2MARKOFS 1867#undef TV2MARKOFS
1864 case BC_USETS: 1868 case BC_USETS:
1865 dasm_put(Dst, 10876, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1869 dasm_put(Dst, 10893, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1866 break; 1870 break;
1867 case BC_USETN: 1871 case BC_USETN:
1868 dasm_put(Dst, 10972); 1872 dasm_put(Dst, 10989);
1869 if (sse) { 1873 if (sse) {
1870 dasm_put(Dst, 10977); 1874 dasm_put(Dst, 10994);
1871 } else { 1875 } else {
1872 dasm_put(Dst, 9751); 1876 dasm_put(Dst, 9768);
1873 } 1877 }
1874 dasm_put(Dst, 10985, offsetof(GCfuncL, uvptr), DtA(->v)); 1878 dasm_put(Dst, 11002, offsetof(GCfuncL, uvptr), DtA(->v));
1875 if (sse) { 1879 if (sse) {
1876 dasm_put(Dst, 4858); 1880 dasm_put(Dst, 4877);
1877 } else { 1881 } else {
1878 dasm_put(Dst, 4864); 1882 dasm_put(Dst, 4883);
1879 } 1883 }
1880 dasm_put(Dst, 7597); 1884 dasm_put(Dst, 7616);
1881 break; 1885 break;
1882 case BC_USETP: 1886 case BC_USETP:
1883 dasm_put(Dst, 10994, offsetof(GCfuncL, uvptr), DtA(->v)); 1887 dasm_put(Dst, 11011, offsetof(GCfuncL, uvptr), DtA(->v));
1884 break; 1888 break;
1885 case BC_UCLO: 1889 case BC_UCLO:
1886 dasm_put(Dst, 11034, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1890 dasm_put(Dst, 11051, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1887 break; 1891 break;
1888 1892
1889 case BC_FNEW: 1893 case BC_FNEW:
1890 dasm_put(Dst, 11090, Dt1(->base), Dt1(->base), LJ_TFUNC); 1894 dasm_put(Dst, 11107, Dt1(->base), Dt1(->base), LJ_TFUNC);
1891 break; 1895 break;
1892 1896
1893 /* -- Table ops --------------------------------------------------------- */ 1897 /* -- Table ops --------------------------------------------------------- */
1894 1898
1895 case BC_TNEW: 1899 case BC_TNEW:
1896 dasm_put(Dst, 11157, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1900 dasm_put(Dst, 11174, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1897 break; 1901 break;
1898 case BC_TDUP: 1902 case BC_TDUP:
1899 dasm_put(Dst, 11281, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1903 dasm_put(Dst, 11298, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1900 break; 1904 break;
1901 1905
1902 case BC_GGET: 1906 case BC_GGET:
1903 dasm_put(Dst, 11380, Dt7(->env)); 1907 dasm_put(Dst, 11397, Dt7(->env));
1904 break; 1908 break;
1905 case BC_GSET: 1909 case BC_GSET:
1906 dasm_put(Dst, 11400, Dt7(->env)); 1910 dasm_put(Dst, 11417, Dt7(->env));
1907 break; 1911 break;
1908 1912
1909 case BC_TGETV: 1913 case BC_TGETV:
1910 dasm_put(Dst, 11420, LJ_TTAB, LJ_TISNUM); 1914 dasm_put(Dst, 11437, LJ_TTAB, LJ_TISNUM);
1911 if (sse) { 1915 if (sse) {
1912 dasm_put(Dst, 11453); 1916 dasm_put(Dst, 11470);
1913 } else { 1917 } else {
1914 } 1918 }
1915 dasm_put(Dst, 11474, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1919 dasm_put(Dst, 11491, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1916 dasm_put(Dst, 11568, LJ_TSTR); 1920 dasm_put(Dst, 11585, LJ_TSTR);
1917 break; 1921 break;
1918 case BC_TGETS: 1922 case BC_TGETS:
1919 dasm_put(Dst, 11586, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1923 dasm_put(Dst, 11603, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1920 dasm_put(Dst, 11672, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1924 dasm_put(Dst, 11689, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1921 break; 1925 break;
1922 case BC_TGETB: 1926 case BC_TGETB:
1923 dasm_put(Dst, 11745, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1927 dasm_put(Dst, 11762, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1924 dasm_put(Dst, 10043); 1928 dasm_put(Dst, 10060);
1925 break; 1929 break;
1926 1930
1927 case BC_TSETV: 1931 case BC_TSETV:
1928 dasm_put(Dst, 11846, LJ_TTAB, LJ_TISNUM); 1932 dasm_put(Dst, 11863, LJ_TTAB, LJ_TISNUM);
1929 if (sse) { 1933 if (sse) {
1930 dasm_put(Dst, 11453); 1934 dasm_put(Dst, 11470);
1931 } else { 1935 } else {
1932 } 1936 }
1933 dasm_put(Dst, 11879, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1937 dasm_put(Dst, 11896, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1934 dasm_put(Dst, 11964, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1938 dasm_put(Dst, 11981, 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 break; 1939 break;
1936 case BC_TSETS: 1940 case BC_TSETS:
1937 dasm_put(Dst, 12028, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1941 dasm_put(Dst, 12045, 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, 12105, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1942 dasm_put(Dst, 12122, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1939 dasm_put(Dst, 12197, 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)); 1943 dasm_put(Dst, 12214, 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 break; 1944 break;
1941 case BC_TSETB: 1945 case BC_TSETB:
1942 dasm_put(Dst, 12289, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1946 dasm_put(Dst, 12306, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1943 dasm_put(Dst, 12389, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1947 dasm_put(Dst, 12406, 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 break; 1948 break;
1945 1949
1946 case BC_TSETM: 1950 case BC_TSETM:
1947 dasm_put(Dst, 12437); 1951 dasm_put(Dst, 12454);
1948 if (sse) { 1952 if (sse) {
1949 dasm_put(Dst, 10977); 1953 dasm_put(Dst, 10994);
1950 } else { 1954 } else {
1951 } 1955 }
1952 dasm_put(Dst, 12442, Dt6(->marked), LJ_GC_BLACK); 1956 dasm_put(Dst, 12459, Dt6(->marked), LJ_GC_BLACK);
1953 if (sse) { 1957 if (sse) {
1954 dasm_put(Dst, 12467); 1958 dasm_put(Dst, 12484);
1955 } else { 1959 } else {
1956 } 1960 }
1957 dasm_put(Dst, 12475, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1961 dasm_put(Dst, 12492, 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, 12611, Dt6(->gclist)); 1962 dasm_put(Dst, 12628, Dt6(->gclist));
1959 break; 1963 break;
1960 1964
1961 /* -- Calls and vararg handling ----------------------------------------- */ 1965 /* -- Calls and vararg handling ----------------------------------------- */
1962 1966
1963 case BC_CALL: case BC_CALLM: 1967 case BC_CALL: case BC_CALLM:
1964 dasm_put(Dst, 10057); 1968 dasm_put(Dst, 10074);
1965 if (op == BC_CALLM) { 1969 if (op == BC_CALLM) {
1966 dasm_put(Dst, 12619); 1970 dasm_put(Dst, 12636);
1967 } 1971 }
1968 dasm_put(Dst, 12624, LJ_TFUNC, Dt7(->gate)); 1972 dasm_put(Dst, 12641, LJ_TFUNC, Dt7(->gate));
1969 break; 1973 break;
1970 1974
1971 case BC_CALLMT: 1975 case BC_CALLMT:
1972 dasm_put(Dst, 12619); 1976 dasm_put(Dst, 12636);
1973 break; 1977 break;
1974 case BC_CALLT: 1978 case BC_CALLT:
1975 dasm_put(Dst, 12647, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate)); 1979 dasm_put(Dst, 12664, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate));
1976 dasm_put(Dst, 12756, FRAME_TYPE, Dt7(->pt), Dt9(->k)); 1980 dasm_put(Dst, 12773, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1977 break; 1981 break;
1978 1982
1979 case BC_ITERC: 1983 case BC_ITERC:
1980 dasm_put(Dst, 12817, LJ_TFUNC, Dt7(->gate)); 1984 dasm_put(Dst, 12834, LJ_TFUNC, Dt7(->gate));
1981 break; 1985 break;
1982 1986
1983 case BC_VARG: 1987 case BC_VARG:
1984 dasm_put(Dst, 12879, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL); 1988 dasm_put(Dst, 12896, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1985 dasm_put(Dst, 13033, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1989 dasm_put(Dst, 13050, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1986 break; 1990 break;
1987 1991
1988 /* -- Returns ----------------------------------------------------------- */ 1992 /* -- Returns ----------------------------------------------------------- */
1989 1993
1990 case BC_RETM: 1994 case BC_RETM:
1991 dasm_put(Dst, 12619); 1995 dasm_put(Dst, 12636);
1992 break; 1996 break;
1993 1997
1994 case BC_RET: case BC_RET0: case BC_RET1: 1998 case BC_RET: case BC_RET0: case BC_RET1:
1995 if (op != BC_RET0) { 1999 if (op != BC_RET0) {
1996 dasm_put(Dst, 13138); 2000 dasm_put(Dst, 13155);
1997 } 2001 }
1998 dasm_put(Dst, 13142, FRAME_TYPE); 2002 dasm_put(Dst, 13159, FRAME_TYPE);
1999 switch (op) { 2003 switch (op) {
2000 case BC_RET: 2004 case BC_RET:
2001 dasm_put(Dst, 13161); 2005 dasm_put(Dst, 13178);
2002 break; 2006 break;
2003 case BC_RET1: 2007 case BC_RET1:
2004 dasm_put(Dst, 13225); 2008 dasm_put(Dst, 13242);
2005 /* fallthrough */ 2009 /* fallthrough */
2006 case BC_RET0: 2010 case BC_RET0:
2007 dasm_put(Dst, 13241); 2011 dasm_put(Dst, 13258);
2008 default: 2012 default:
2009 break; 2013 break;
2010 } 2014 }
2011 dasm_put(Dst, 13252, Dt7(->pt), Dt9(->k)); 2015 dasm_put(Dst, 13269, Dt7(->pc), PC2PROTO(k));
2012 if (op == BC_RET) { 2016 if (op == BC_RET) {
2013 dasm_put(Dst, 13300, LJ_TNIL); 2017 dasm_put(Dst, 13317, LJ_TNIL);
2014 } else { 2018 } else {
2015 dasm_put(Dst, 13311, LJ_TNIL); 2019 dasm_put(Dst, 13328, LJ_TNIL);
2016 } 2020 }
2017 dasm_put(Dst, 13318); 2021 dasm_put(Dst, 13335);
2018 if (op != BC_RET0) { 2022 if (op != BC_RET0) {
2019 dasm_put(Dst, 13338); 2023 dasm_put(Dst, 13355);
2020 } 2024 }
2021 dasm_put(Dst, 4947); 2025 dasm_put(Dst, 4966);
2022 break; 2026 break;
2023 2027
2024 /* -- Loops and branches ------------------------------------------------ */ 2028 /* -- Loops and branches ------------------------------------------------ */
@@ -2026,7 +2030,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2026 2030
2027 case BC_FORL: 2031 case BC_FORL:
2028#if LJ_HASJIT 2032#if LJ_HASJIT
2029 dasm_put(Dst, 13341, HOTCOUNT_PCMASK, GG_DISP2HOT); 2033 dasm_put(Dst, 13358, HOTCOUNT_PCMASK, GG_DISP2HOT);
2030#endif 2034#endif
2031 break; 2035 break;
2032 2036
@@ -2038,57 +2042,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2038 case BC_FORI: 2042 case BC_FORI:
2039 case BC_IFORL: 2043 case BC_IFORL:
2040 vk = (op == BC_IFORL || op == BC_JFORL); 2044 vk = (op == BC_IFORL || op == BC_JFORL);
2041 dasm_put(Dst, 13362); 2045 dasm_put(Dst, 13379);
2042 if (!vk) { 2046 if (!vk) {
2043 dasm_put(Dst, 13366, LJ_TISNUM, LJ_TISNUM); 2047 dasm_put(Dst, 13383, LJ_TISNUM, LJ_TISNUM);
2044 } 2048 }
2045 dasm_put(Dst, 13385); 2049 dasm_put(Dst, 13402);
2046 if (!vk) { 2050 if (!vk) {
2047 dasm_put(Dst, 13389, LJ_TISNUM); 2051 dasm_put(Dst, 13406, LJ_TISNUM);
2048 } 2052 }
2049 if (sse) { 2053 if (sse) {
2050 dasm_put(Dst, 13398); 2054 dasm_put(Dst, 13415);
2051 if (vk) { 2055 if (vk) {
2052 dasm_put(Dst, 13410); 2056 dasm_put(Dst, 13427);
2053 } else { 2057 } else {
2054 dasm_put(Dst, 13429); 2058 dasm_put(Dst, 13446);
2055 } 2059 }
2056 dasm_put(Dst, 13434); 2060 dasm_put(Dst, 13451);
2057 } else { 2061 } else {
2058 dasm_put(Dst, 13447); 2062 dasm_put(Dst, 13464);
2059 if (vk) { 2063 if (vk) {
2060 dasm_put(Dst, 13453); 2064 dasm_put(Dst, 13470);
2061 } else { 2065 } else {
2062 dasm_put(Dst, 13469); 2066 dasm_put(Dst, 13486);
2063 } 2067 }
2064 dasm_put(Dst, 13477); 2068 dasm_put(Dst, 13494);
2065 if (cmov) { 2069 if (cmov) {
2066 dasm_put(Dst, 9472); 2070 dasm_put(Dst, 9489);
2067 } else { 2071 } else {
2068 dasm_put(Dst, 9478); 2072 dasm_put(Dst, 9495);
2069 } 2073 }
2070 if (!cmov) { 2074 if (!cmov) {
2071 dasm_put(Dst, 13482); 2075 dasm_put(Dst, 13499);
2072 } 2076 }
2073 } 2077 }
2074 if (op == BC_FORI) { 2078 if (op == BC_FORI) {
2075 dasm_put(Dst, 13488, -BCBIAS_J*4); 2079 dasm_put(Dst, 13505, -BCBIAS_J*4);
2076 } else if (op == BC_JFORI) { 2080 } else if (op == BC_JFORI) {
2077 dasm_put(Dst, 13498, -BCBIAS_J*4, BC_JLOOP); 2081 dasm_put(Dst, 13515, -BCBIAS_J*4, BC_JLOOP);
2078 } else if (op == BC_IFORL) { 2082 } else if (op == BC_IFORL) {
2079 dasm_put(Dst, 13512, -BCBIAS_J*4); 2083 dasm_put(Dst, 13529, -BCBIAS_J*4);
2080 } else { 2084 } else {
2081 dasm_put(Dst, 13508, BC_JLOOP); 2085 dasm_put(Dst, 13525, BC_JLOOP);
2082 } 2086 }
2083 dasm_put(Dst, 9507); 2087 dasm_put(Dst, 9524);
2084 if (sse) { 2088 if (sse) {
2085 dasm_put(Dst, 13522); 2089 dasm_put(Dst, 13539);
2086 } 2090 }
2087 break; 2091 break;
2088 2092
2089 case BC_ITERL: 2093 case BC_ITERL:
2090#if LJ_HASJIT 2094#if LJ_HASJIT
2091 dasm_put(Dst, 13341, HOTCOUNT_PCMASK, GG_DISP2HOT); 2095 dasm_put(Dst, 13358, HOTCOUNT_PCMASK, GG_DISP2HOT);
2092#endif 2096#endif
2093 break; 2097 break;
2094 2098
@@ -2097,33 +2101,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2097 break; 2101 break;
2098#endif 2102#endif
2099 case BC_IITERL: 2103 case BC_IITERL:
2100 dasm_put(Dst, 13533, LJ_TNIL); 2104 dasm_put(Dst, 13550, LJ_TNIL);
2101 if (op == BC_JITERL) { 2105 if (op == BC_JITERL) {
2102 dasm_put(Dst, 13548, BC_JLOOP); 2106 dasm_put(Dst, 13565, BC_JLOOP);
2103 } else { 2107 } else {
2104 dasm_put(Dst, 13562, -BCBIAS_J*4); 2108 dasm_put(Dst, 13579, -BCBIAS_J*4);
2105 } 2109 }
2106 dasm_put(Dst, 9811); 2110 dasm_put(Dst, 9828);
2107 break; 2111 break;
2108 2112
2109 case BC_LOOP: 2113 case BC_LOOP:
2110#if LJ_HASJIT 2114#if LJ_HASJIT
2111 dasm_put(Dst, 13341, HOTCOUNT_PCMASK, GG_DISP2HOT); 2115 dasm_put(Dst, 13358, HOTCOUNT_PCMASK, GG_DISP2HOT);
2112#endif 2116#endif
2113 break; 2117 break;
2114 2118
2115 case BC_ILOOP: 2119 case BC_ILOOP:
2116 dasm_put(Dst, 7597); 2120 dasm_put(Dst, 7616);
2117 break; 2121 break;
2118 2122
2119 case BC_JLOOP: 2123 case BC_JLOOP:
2120#if LJ_HASJIT 2124#if LJ_HASJIT
2121 dasm_put(Dst, 13578, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2125 dasm_put(Dst, 13595, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2122#endif 2126#endif
2123 break; 2127 break;
2124 2128
2125 case BC_JMP: 2129 case BC_JMP:
2126 dasm_put(Dst, 13605, -BCBIAS_J*4); 2130 dasm_put(Dst, 13622, -BCBIAS_J*4);
2127 break; 2131 break;
2128 2132
2129 /* ---------------------------------------------------------------------- */ 2133 /* ---------------------------------------------------------------------- */
@@ -2151,7 +2155,7 @@ static int build_backend(BuildCtx *ctx)
2151 2155
2152 build_subroutines(ctx, cmov, sse); 2156 build_subroutines(ctx, cmov, sse);
2153 2157
2154 dasm_put(Dst, 13631); 2158 dasm_put(Dst, 13648);
2155 for (op = 0; op < BC__MAX; op++) 2159 for (op = 0; op < BC__MAX; op++)
2156 build_ins(ctx, (BCOp)op, op, cmov, sse); 2160 build_ins(ctx, (BCOp)op, op, cmov, sse);
2157 2161
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
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 90d80dbf..10899e70 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -414,23 +414,25 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
414 | mov KBASE, [PC+PC2PROTO(k)] 414 | mov KBASE, [PC+PC2PROTO(k)]
415 | mov L:RB, SAVE_L 415 | mov L:RB, SAVE_L
416 | lea RA, [BASE+RA*8] // Top of frame. 416 | lea RA, [BASE+RA*8] // Top of frame.
417 | lea RC, [BASE+NARGS:RC*8-4] // Points to tag of 1st free slot.
418 | cmp RA, L:RB->maxstack 417 | cmp RA, L:RB->maxstack
419 | ja ->gate_lf_growstack 418 | ja ->gate_lf_growstack
420 |9: // Entry point from vararg setup below. 419 | movzx RA, byte [PC+PC2PROTO(numparams)]
421 | mov RB, LJ_TNIL 420 | cmp NARGS:RC, RA // Check for missing parameters.
422 |1: // Clear free slots until top of frame. 421 | jbe >3
423 | mov [RC], RB 422 |2:
424 | mov [RC+8], RB
425 | add RC, 16
426 | cmp RC, RA
427 | jb <1
428#if LJ_HASJIT 423#if LJ_HASJIT
429 | // NYI: Disabled, until the tracer supports recursion/upcalls/leaves. 424 | // NYI: Disabled, until the tracer supports recursion/upcalls/leaves.
430 | // hotcall RB 425 | // hotcall RB
431#endif 426#endif
432 | ins_next 427 | ins_next
433 | 428 |
429 |3: // Clear missing parameters.
430 | mov dword [BASE+NARGS:RC*8-4], LJ_TNIL
431 | add NARGS:RC, 1
432 | cmp NARGS:RC, RA // Check for missing parameters.
433 | jbe <3
434 | jmp <2
435 |
434 |->gate_lv: // Call gate for vararg Lua functions. 436 |->gate_lv: // Call gate for vararg Lua functions.
435 | // RA = new base, RB = LFUNC, RC = nargs+1, (BASE = old base), PC = return 437 | // RA = new base, RB = LFUNC, RC = nargs+1, (BASE = old base), PC = return
436 | // DISPATCH initialized 438 | // DISPATCH initialized
@@ -443,29 +445,38 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
443 | movzx RB, byte [PC+PC2PROTO(framesize)] 445 | movzx RB, byte [PC+PC2PROTO(framesize)]
444 | lea KBASE, [BASE+RB*8] 446 | lea KBASE, [BASE+RB*8]
445 | mov L:RB, SAVE_L 447 | mov L:RB, SAVE_L
446 | lea RC, [BASE+4]
447 | cmp KBASE, L:RB->maxstack 448 | cmp KBASE, L:RB->maxstack
448 | ja ->gate_lv_growstack // Need to grow stack. 449 | ja ->gate_lv_growstack // Need to grow stack.
450 | mov RC, BASE
449 | movzx RB, byte [PC+PC2PROTO(numparams)] 451 | movzx RB, byte [PC+PC2PROTO(numparams)]
450 | test RB, RB 452 | test RB, RB
451 | jz >2 453 | jz >2
452 |1: // Copy fixarg slots up. 454 |1: // Copy fixarg slots up to new frame.
453 | add RA, 8 455 | add RA, 8
454 | cmp RA, BASE 456 | cmp RA, BASE
455 | jnb >2 457 | jnb >3 // Less args than parameters?
456 | mov KBASE, [RA-8] 458 | mov KBASE, [RA-8]
457 | mov [RC-4], KBASE
458 | mov KBASE, [RA-4]
459 | mov [RC], KBASE 459 | mov [RC], KBASE
460 | mov KBASE, [RA-4]
461 | mov [RC+4], KBASE
460 | add RC, 8 462 | add RC, 8
461 | mov dword [RA-4], LJ_TNIL // Clear old fixarg slot (help the GC). 463 | mov dword [RA-4], LJ_TNIL // Clear old fixarg slot (help the GC).
462 | sub RB, 1 464 | sub RB, 1
463 | jnz <1 465 | jnz <1
464 |2: 466 |2:
465 | movzx RA, byte [PC+PC2PROTO(framesize)]
466 | mov KBASE, [PC+PC2PROTO(k)] 467 | mov KBASE, [PC+PC2PROTO(k)]
467 | lea RA, [BASE+RA*8] 468#if LJ_HASJIT
468 | jmp <9 469 | // NYI: Disabled, until the tracer supports recursion/upcalls/leaves.
470 | // hotcall RB
471#endif
472 | ins_next
473 |
474 |3: // Clear missing parameters.
475 | mov dword [RC+4], LJ_TNIL
476 | add RC, 8
477 | sub RB, 1
478 | jnz <3
479 | jmp <2
469 | 480 |
470 |->gate_cwrap: // Call gate for wrapped C functions. 481 |->gate_cwrap: // Call gate for wrapped C functions.
471 | // RA = new base, RB = CFUNC, RC = nargs+1, (BASE = old base), PC = return 482 | // RA = new base, RB = CFUNC, RC = nargs+1, (BASE = old base), PC = return
@@ -663,19 +674,12 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
663 | jmp >1 674 | jmp >1
664 | 675 |
665 |->gate_lv_growstack: // Grow stack for vararg Lua function. 676 |->gate_lv_growstack: // Grow stack for vararg Lua function.
666 //XXX 677 | mov BASE, RA // Drop vararg frame again.
667 | sub RC, 8
668 | mov BASE, RA
669 | mov RA, KBASE
670 | lea PC, [PROTO:RB+sizeof(GCproto)]
671 | mov L:RB, SAVE_L
672 | 678 |
673 |->gate_lf_growstack: // Grow stack for fixarg Lua function. 679 |->gate_lf_growstack: // Grow stack for fixarg Lua function.
674 | // BASE = new base, RA = requested top, RC = top (offset +4 bytes) 680 | // BASE = new base, RC = nargs+1, RB = L, PC = first PC
675 | // RB = L, PC = first PC of called function (or anything if C function) 681 | lea RC, [BASE+NARGS:RC*8-8]
676 | sub RC, 4 // Adjust top. 682 | movzx RA, byte [PC+PC2PROTO(framesize)]
677 | sub RA, BASE
678 | shr RA, 3 // n = pt->framesize - L->top
679 | add PC, 4 // Must point after first instruction. 683 | add PC, 4 // Must point after first instruction.
680 | mov L:RB->base, BASE 684 | mov L:RB->base, BASE
681 | mov L:RB->top, RC 685 | mov L:RB->top, RC
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index a562361c..3741b60b 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,738 +12,738 @@
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[15185] = { 15static const unsigned char build_actionlist[15199] = {
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,48,141,12,202,141,68,194,252,252,59,141,233,15,135, 17 139,108,36,48,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,171,248, 19 255,36,171,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,
20 12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,252,248,139, 20 233,244,2,248,12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,
21 173,233,137,114,252,252,15,182,181,233,141,60,252,242,139,116,36,48,141,66, 21 252,248,137,114,252,252,139,181,233,15,182,174,233,141,60,252,234,139,108,
22 4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248, 22 36,48,59,189,233,15,135,244,13,137,208,15,182,174,233,133,252,237,15,132,
23 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121, 23 244,248,248,1,131,193,8,57,209,15,131,244,249,255,139,121,252,248,137,56,
24 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248, 24 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
25 2,15,182,141,233,141,181,233,255,139,189,233,141,12,202,252,233,244,9,248, 25 244,1,248,2,139,190,233,255,139,6,15,182,204,15,182,232,131,198,4,193,232,
26 14,137,113,252,252,139,189,233,139,108,36,48,141,68,193,252,248,137,141,233, 26 16,252,255,36,171,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,
27 141,136,233,137,133,233,59,141,233,137,124,36,4,137,44,36,15,135,244,15,199, 27 252,233,244,2,248,14,137,113,252,252,139,189,233,139,108,36,48,141,68,193,
28 131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12,194,252,247, 28 252,248,137,141,233,141,136,233,137,133,233,59,141,233,137,124,36,4,137,44,
29 217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,255,15,132,244, 29 36,15,135,244,15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,
30 17,252,233,244,18,248,19,137,113,252,252,139,189,233,139,108,36,48,141,68, 30 233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,
31 193,252,248,137,141,233,141,136,233,137,133,233,59,141,233,137,44,36,15,135, 31 247,198,237,15,132,244,17,252,233,244,18,248,19,137,113,252,252,139,189,233,
32 244,15,199,131,233,237,252,255,215,199,131,233,237,139,149,233,141,12,194, 32 139,108,36,48,141,68,193,252,248,137,141,233,141,136,233,137,133,233,59,141,
33 252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,255,15, 33 233,137,44,36,15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,
34 132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233,237,131,230,252, 34 149,233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,
35 248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,139,44,10,137,106,252, 35 252,247,198,237,15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,
36 248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,244,1,248,2,139, 36 233,237,131,230,252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,
37 108,36,48,137,181,233,248,3,139,68,36,20,139,76,36,56,248,4,57,193,15,133, 37 139,44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,
38 244,252,248,5,255,131,252,234,8,137,149,233,248,21,139,76,36,52,137,141,233, 38 1,15,133,244,1,248,2,139,108,36,48,137,181,233,248,3,139,68,36,20,139,76,
39 49,192,248,22,131,196,28,91,94,95,93,195,248,6,15,130,244,253,59,149,233, 39 36,56,248,4,255,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,
40 15,135,244,254,199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7, 40 21,139,76,36,52,137,141,233,49,192,248,22,131,196,28,91,94,95,93,195,248,
41 133,201,15,132,244,5,41,193,141,20,202,252,233,244,5,248,8,137,149,233,255, 41 6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,
42 137,68,36,20,137,202,137,252,233,232,251,1,0,139,149,233,252,233,244,3,248, 42 192,1,252,233,244,4,248,7,133,201,15,132,244,5,41,193,141,20,202,252,233,
43 23,137,208,137,204,248,24,139,108,36,48,139,173,233,199,133,233,237,252,233, 43 244,5,248,8,255,137,149,233,137,68,36,20,137,202,137,252,233,232,251,1,0,
44 244,22,248,25,129,225,239,137,204,248,26,139,108,36,48,185,252,248,252,255, 44 139,149,233,252,233,244,3,248,23,137,208,137,204,248,24,139,108,36,48,139,
45 252,255,252,255,184,237,139,149,233,139,157,233,129,195,239,139,114,252,252, 45 173,233,199,133,233,237,252,233,244,22,248,25,129,225,239,137,204,248,26,
46 199,66,252,252,237,199,131,233,237,255,252,233,244,16,248,20,252,247,198, 46 139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233,139,
47 237,15,132,244,27,131,230,252,248,41,252,242,141,76,49,252,248,139,114,252, 47 157,233,129,195,239,139,114,252,252,199,66,252,252,237,199,131,233,237,255,
48 252,199,68,10,4,237,252,233,244,16,248,15,186,237,252,233,244,247,248,13, 48 252,233,244,16,248,20,252,247,198,237,15,132,244,27,131,230,252,248,41,252,
49 131,232,8,137,202,137,252,249,141,181,233,139,108,36,48,248,11,131,232,4, 49 242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16,248,
50 41,209,193,252,233,3,131,198,4,137,149,233,137,133,233,137,116,36,24,137, 50 15,186,237,252,233,244,247,248,13,137,202,248,11,141,68,194,252,248,15,182,
51 202,248,1,137,252,233,232,251,1,0,139,141,233,255,139,133,233,139,105,252, 51 142,233,131,198,4,137,149,233,137,133,233,137,116,36,24,137,202,248,1,137,
52 248,139,113,252,252,41,200,193,232,3,131,192,1,252,255,165,233,248,28,85, 52 252,233,232,251,1,0,139,141,233,255,139,133,233,139,105,252,248,139,113,252,
53 87,86,83,131,252,236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,188, 53 252,41,200,193,232,3,131,192,1,252,255,165,233,248,28,85,87,86,83,131,252,
54 253,36,233,139,157,233,129,195,239,137,189,233,137,68,36,24,137,68,36,52, 54 236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,188,253,36,233,139,157,
55 56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233,139,133, 55 233,129,195,239,137,189,233,137,68,36,24,137,68,36,52,56,133,233,15,132,244,
56 233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,20,252,247, 56 249,199,131,233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,
57 198,237,15,132,244,17,252,233,244,18,248,29,255,85,87,86,83,131,252,236,28, 57 131,192,1,41,209,139,114,252,252,137,68,36,20,252,247,198,237,15,132,244,
58 190,237,252,233,244,247,248,30,85,87,86,83,131,252,236,28,190,237,248,1,139, 58 17,252,233,244,18,248,29,255,85,87,86,83,131,252,236,28,190,237,252,233,244,
59 108,36,48,139,76,36,52,248,2,139,189,233,137,124,36,52,137,108,36,24,137, 59 247,248,30,85,87,86,83,131,252,236,28,190,237,248,1,139,108,36,48,139,76,
60 165,233,139,157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,41, 60 36,52,248,2,139,189,233,137,124,36,52,137,108,36,24,137,165,233,139,157,233,
61 214,139,133,233,41,200,193,232,3,131,192,1,139,105,252,248,129,121,253,252, 61 129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133,233,41,
62 252,239,15,133,244,31,252,255,165,233,248,32,255,85,87,86,83,131,252,236, 62 200,193,232,3,131,192,1,139,105,252,248,129,121,253,252,252,239,15,133,244,
63 28,139,108,36,48,139,68,36,56,139,76,36,52,139,84,36,60,137,108,36,24,139, 63 31,252,255,165,233,248,32,255,85,87,86,83,131,252,236,28,139,108,36,48,139,
64 189,233,43,189,233,199,68,36,60,0,0,0,0,137,124,36,56,137,68,36,8,137,76, 64 68,36,56,139,76,36,52,139,84,36,60,137,108,36,24,139,189,233,43,189,233,199,
65 36,4,137,44,36,139,189,233,137,124,36,52,137,165,233,252,255,210,133,192, 65 68,36,60,0,0,0,0,137,124,36,56,137,68,36,8,137,76,36,4,137,44,36,139,189,
66 15,132,244,21,137,193,190,237,252,233,244,2,248,27,1,209,131,230,252,248, 66 233,137,124,36,52,137,165,233,252,255,210,133,192,15,132,244,21,137,193,190,
67 137,213,41,252,242,199,68,193,252,252,237,137,200,139,117,252,244,139,77, 67 237,252,233,244,2,248,27,1,209,131,230,252,248,137,213,41,252,242,199,68,
68 252,240,139,122,252,248,139,191,233,139,191,233,252,255,225,248,33,15,182, 68 193,252,252,237,137,200,139,117,252,244,139,77,252,240,139,122,252,248,139,
69 78,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,34,252,247,217, 69 191,233,139,191,233,252,255,225,248,33,15,182,78,252,255,131,252,237,16,141,
70 193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,137,69,0,137,108,36,4,252, 70 12,202,41,252,233,15,132,244,34,252,247,217,193,252,233,3,137,76,36,8,139,
71 233,244,35,248,36,137,68,36,16,199,68,36,20,237,255,141,68,36,16,128,126, 71 72,4,139,0,137,77,4,137,69,0,137,108,36,4,252,233,244,35,248,36,137,68,36,
72 252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,205,252,233, 72 16,199,68,36,20,237,255,141,68,36,16,128,126,252,252,235,15,133,244,247,141,
73 244,248,248,37,15,182,70,252,254,255,252,242,15,42,192,252,242,15,17,68,36, 73 139,233,137,41,199,65,4,237,137,205,252,233,244,248,248,37,15,182,70,252,
74 16,255,137,68,36,12,219,68,36,12,221,92,36,16,255,141,68,36,16,252,233,244, 74 254,255,252,242,15,42,192,252,242,15,17,68,36,16,255,137,68,36,12,219,68,
75 247,248,38,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252, 75 36,12,221,92,36,16,255,141,68,36,16,252,233,244,247,248,38,15,182,70,252,
76 234,248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137, 76 254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,
77 116,36,24,232,251,1,1,139,149,233,133,192,15,132,244,249,248,34,15,182,78, 77 139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,1,
78 252,253,139,104,4,139,0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232, 78 139,149,233,133,192,15,132,244,249,248,34,15,182,78,252,253,139,104,4,139,
79 131,198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,252,244,141, 79 0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
80 177,233,41,214,139,105,252,248,184,3,0,0,0,252,255,165,233,248,39,137,68, 80 252,255,36,171,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,
81 36,16,199,68,36,20,237,141,68,36,16,128,126,252,252,235,15,133,244,247,141, 81 252,248,184,3,0,0,0,252,255,165,233,248,39,137,68,36,16,199,68,36,20,237,
82 139,233,255,137,41,199,65,4,237,137,205,252,233,244,248,248,40,15,182,70, 82 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,255,137,41,199,
83 252,254,255,141,68,36,16,252,233,244,247,248,41,15,182,70,252,254,141,4,194, 83 65,4,237,137,205,252,233,244,248,248,40,15,182,70,252,254,255,141,68,36,16,
84 248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48, 84 252,233,244,247,248,41,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,
85 137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,2,139,149,233,133, 85 141,44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,
86 192,15,132,244,249,15,182,78,252,253,139,108,202,4,139,12,202,137,104,4,137, 86 149,233,137,116,36,24,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,
87 8,248,42,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 87 78,252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,42,139,6,15,182,204,
88 248,3,139,141,233,137,113,252,244,15,182,70,252,253,139,108,194,4,139,4,194, 88 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,
89 137,105,20,137,65,16,141,177,233,41,214,139,105,252,248,184,4,0,0,0,252,255, 89 252,244,15,182,70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,
90 165,233,248,43,15,182,110,252,252,141,4,194,141,12,202,137,108,36,12,139, 90 177,233,41,214,139,105,252,248,184,4,0,0,0,252,255,165,233,248,43,15,182,
91 108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,137,116,36,24,232, 91 110,252,252,141,4,194,141,12,202,137,108,36,12,139,108,36,48,137,68,36,8,
92 251,1,3,248,3,139,149,233,131,252,248,1,15,135,244,44,248,4,255,141,118,4, 92 137,76,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,3,248,3,139,149,
93 15,130,244,252,248,5,15,183,70,252,254,141,180,253,134,233,248,6,139,6,15, 93 233,131,252,248,1,15,135,244,44,248,4,255,141,118,4,15,130,244,252,248,5,
94 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,45,131,198,4,129, 94 15,183,70,252,254,141,180,253,134,233,248,6,139,6,15,182,204,15,182,232,131,
95 120,253,4,239,15,130,244,5,252,233,244,6,248,46,129,120,253,4,239,252,233, 95 198,4,193,232,16,252,255,36,171,248,45,131,198,4,129,120,253,4,239,15,130,
96 244,4,248,47,131,252,238,4,137,108,36,12,139,108,36,48,137,68,36,8,137,76, 96 244,5,252,233,244,6,248,46,129,120,253,4,239,252,233,244,4,248,47,131,252,
97 36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,4,252,233,244,3,248,48, 97 238,4,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,
98 255,141,4,199,252,233,244,247,248,49,141,4,199,141,44,252,234,149,252,233, 98 233,137,116,36,24,232,251,1,4,252,233,244,3,248,48,255,141,4,199,252,233,
99 244,248,248,50,141,4,194,137,197,252,233,244,248,248,51,141,4,194,248,1,141, 99 244,247,248,49,141,4,199,141,44,252,234,149,252,233,244,248,248,50,141,4,
100 44,252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182, 100 194,137,197,252,233,244,248,248,51,141,4,194,248,1,141,44,252,234,248,2,141,
101 70,252,252,137,76,36,4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232, 101 12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,70,252,252,137,76,36,
102 251,1,5,139,149,233,133,192,15,132,244,42,248,44,137,193,41,208,137,113,252, 102 4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232,251,1,5,139,149,233,
103 244,141,176,233,139,105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133, 103 133,192,15,132,244,42,248,44,137,193,41,208,137,113,252,244,141,176,233,139,
104 244,31,255,252,255,165,233,248,52,139,108,36,48,137,149,233,141,20,194,137, 104 105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133,244,31,255,252,255,
105 252,233,137,116,36,24,232,251,1,6,139,149,233,252,233,244,44,248,31,137,76, 105 165,233,248,52,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36,
106 36,20,137,68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137, 106 24,232,251,1,6,139,149,233,252,233,244,44,248,31,137,76,36,20,137,68,36,16,
107 68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,7,139,149,233,139,76, 107 131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,
108 36,20,139,68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,53,252,255, 108 149,233,137,116,36,24,232,251,1,7,139,149,233,139,76,36,20,139,68,36,16,139,
109 165,233,248,54,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36,24, 109 105,252,248,131,192,1,57,215,15,132,244,53,252,255,165,233,248,54,139,108,
110 232,251,1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252, 110 36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,1,8,139,149,233,
111 255,164,253,171,233,248,55,129,252,248,239,15,130,244,56,255,139,105,4,129, 111 139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,
112 252,253,239,15,131,244,56,137,68,36,20,137,105,252,252,139,41,137,105,252, 112 55,129,252,248,239,15,130,244,56,255,139,105,4,129,252,253,239,15,131,244,
113 248,131,232,2,15,132,244,248,137,76,36,16,248,1,131,193,8,139,105,4,137,105, 113 56,137,68,36,20,137,105,252,252,139,41,137,105,252,248,131,232,2,15,132,244,
114 252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,139,76,36,16,248,2, 114 248,137,76,36,16,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137,105,
115 139,68,36,20,252,233,244,57,248,58,129,252,248,239,15,130,244,56,139,105, 115 252,248,131,232,1,15,133,244,1,139,76,36,16,248,2,139,68,36,20,252,233,244,
116 4,184,237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248, 116 57,248,58,129,252,248,239,15,130,244,56,139,105,4,184,237,252,247,213,57,
117 1,255,139,105,252,248,139,132,253,197,233,199,65,252,252,237,137,65,252,248, 117 232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,139,105,252,248,139,
118 252,233,244,59,248,60,129,252,248,239,15,130,244,56,139,105,4,129,252,253, 118 132,253,197,233,199,65,252,252,237,137,65,252,248,252,233,244,59,248,60,129,
119 239,15,133,244,252,248,1,139,41,139,173,233,248,2,133,252,237,199,65,252, 119 252,248,239,15,130,244,56,139,105,4,129,252,253,239,15,133,244,252,248,1,
120 252,237,15,132,244,59,139,65,252,248,139,131,233,199,65,252,252,237,137,105, 120 139,41,139,173,233,248,2,133,252,237,199,65,252,252,237,15,132,244,59,139,
121 252,248,137,76,36,16,139,141,233,255,35,136,233,105,201,239,3,141,233,248, 121 65,252,248,139,131,233,199,65,252,252,237,137,105,252,248,137,76,36,16,139,
122 3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137, 122 141,233,255,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,133,
123 233,133,201,15,133,244,3,252,233,244,59,248,5,139,105,4,129,252,253,239,15, 123 244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,
124 132,244,59,255,139,1,139,76,36,16,137,105,252,252,137,65,252,248,252,233, 124 252,233,244,59,248,5,139,105,4,129,252,253,239,15,132,244,59,255,139,1,139,
125 244,59,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253, 125 76,36,16,137,105,252,252,137,65,252,248,252,233,244,59,248,6,129,252,253,
126 189,237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248,61,129,252, 126 239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,
127 248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,255,139,41,131,189, 127 139,172,253,171,233,252,233,244,2,248,61,129,252,248,239,15,130,244,56,129,
128 233,0,15,133,244,56,129,121,253,12,239,15,133,244,56,139,65,8,137,133,233, 128 121,253,4,239,15,133,244,56,255,139,41,131,189,233,0,15,133,244,56,129,121,
129 199,65,252,252,237,137,105,252,248,252,246,133,233,235,15,132,244,247,128, 129 253,12,239,15,133,244,56,139,65,8,137,133,233,199,65,252,252,237,137,105,
130 165,233,235,139,131,233,137,171,233,137,133,233,248,1,252,233,244,59,248, 130 252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,233,137,
131 62,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,139, 131 171,233,137,133,233,248,1,252,233,244,59,248,62,255,129,252,248,239,15,130,
132 1,139,108,36,48,137,68,36,4,137,44,36,137,205,137,84,36,16,131,193,8,137, 132 244,56,129,121,253,4,239,15,133,244,56,139,1,139,108,36,48,137,68,36,4,137,
133 76,36,8,232,251,1,9,137,252,233,139,84,36,16,139,40,139,64,4,137,105,252, 133 44,36,137,205,137,84,36,16,131,193,8,137,76,36,8,232,251,1,9,137,252,233,
134 248,137,65,252,252,252,233,244,59,248,63,129,252,248,239,15,133,244,56,129, 134 139,84,36,16,139,40,139,64,4,137,105,252,248,137,65,252,252,252,233,244,59,
135 121,253,4,239,15,135,244,56,255,252,242,15,16,1,252,233,244,64,255,221,1, 135 248,63,129,252,248,239,15,133,244,56,129,121,253,4,239,15,135,244,56,255,
136 252,233,244,65,255,248,66,129,252,248,239,15,130,244,56,129,121,253,4,239, 136 252,242,15,16,1,252,233,244,64,255,221,1,252,233,244,65,255,248,66,129,252,
137 15,133,244,249,139,1,248,2,199,65,252,252,237,137,65,252,248,252,233,244, 137 248,239,15,130,244,56,129,121,253,4,239,15,133,244,249,139,1,248,2,199,65,
138 59,248,3,129,121,253,4,239,15,135,244,56,131,187,233,0,15,133,244,56,139, 138 252,252,237,137,65,252,248,252,233,244,59,248,3,129,121,253,4,239,15,135,
139 171,233,59,171,233,255,15,130,244,247,232,244,67,248,1,139,108,36,48,137, 139 244,56,131,187,233,0,15,133,244,56,139,171,233,59,171,233,255,15,130,244,
140 141,233,137,113,252,252,137,116,36,24,137,84,36,16,137,202,137,252,233,232, 140 247,232,244,67,248,1,139,108,36,48,137,141,233,137,113,252,252,137,116,36,
141 251,1,10,139,141,233,139,84,36,16,252,233,244,2,248,68,129,252,248,239,15, 141 24,137,84,36,16,137,202,137,252,233,232,251,1,10,139,141,233,139,84,36,16,
142 130,244,56,15,132,244,248,248,1,129,121,253,4,239,15,133,244,56,139,41,137, 142 252,233,244,2,248,68,129,252,248,239,15,130,244,56,15,132,244,248,248,1,129,
143 108,36,4,139,108,36,48,137,44,36,137,141,233,255,137,113,252,252,137,84,36, 143 121,253,4,239,15,133,244,56,139,41,137,108,36,4,139,108,36,48,137,44,36,137,
144 16,131,193,8,137,76,36,8,137,116,36,24,232,251,1,11,139,141,233,139,84,36, 144 141,233,255,137,113,252,252,137,84,36,16,131,193,8,137,76,36,8,137,116,36,
145 16,133,192,15,132,244,249,139,105,8,139,65,12,137,105,252,248,137,65,252, 145 24,232,251,1,11,139,141,233,139,84,36,16,133,192,15,132,244,249,139,105,8,
146 252,139,105,16,139,65,20,137,41,137,65,4,248,69,184,237,252,233,244,70,248, 146 139,65,12,137,105,252,248,137,65,252,252,139,105,16,139,65,20,137,41,137,
147 2,199,65,12,237,252,233,244,1,248,3,199,65,252,252,237,252,233,244,59,248, 147 65,4,248,69,184,237,252,233,244,70,248,2,199,65,12,237,252,233,244,1,248,
148 71,129,252,248,239,15,130,244,56,129,121,253,4,239,255,15,133,244,56,139, 148 3,199,65,252,252,237,252,233,244,59,248,71,129,252,248,239,15,130,244,56,
149 133,233,199,65,252,252,237,137,65,252,248,199,65,12,237,184,237,252,233,244, 149 129,121,253,4,239,255,15,133,244,56,139,133,233,199,65,252,252,237,137,65,
150 70,248,72,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,129, 150 252,248,199,65,12,237,184,237,252,233,244,70,248,72,129,252,248,239,15,130,
151 121,253,12,239,15,135,244,56,255,252,242,15,16,65,8,189,0,0,252,240,63,102, 151 244,56,129,121,253,4,239,15,133,244,56,129,121,253,12,239,15,135,244,56,255,
152 15,110,205,102,15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242, 152 252,242,15,16,65,8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,
153 15,17,65,252,248,255,221,65,8,217,232,222,193,219,20,36,221,89,252,248,139, 153 242,15,88,193,252,242,15,45,192,252,242,15,17,65,252,248,255,221,65,8,217,
154 4,36,255,139,41,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120, 154 232,222,193,219,20,36,221,89,252,248,139,4,36,255,139,41,59,133,233,15,131,
155 253,4,239,15,132,244,73,139,40,139,64,4,137,41,137,65,4,252,233,244,69,248, 155 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,73,139,40,
156 2,131,189,233,0,15,132,244,73,137,84,36,16,135,205,137,194,232,251,1,12,137, 156 139,64,4,137,41,137,65,4,252,233,244,69,248,2,131,189,233,0,15,132,244,73,
157 252,233,139,84,36,16,133,192,15,133,244,1,248,73,184,237,252,233,244,70,248, 157 137,84,36,16,135,205,137,194,232,251,1,12,137,252,233,139,84,36,16,133,192,
158 74,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,139, 158 15,133,244,1,248,73,184,237,252,233,244,70,248,74,255,129,252,248,239,15,
159 133,233,199,65,252,252,237,137,65,252,248,255,15,87,192,252,242,15,17,65, 159 130,244,56,129,121,253,4,239,15,133,244,56,139,133,233,199,65,252,252,237,
160 8,255,217,252,238,221,89,8,255,184,237,252,233,244,70,248,75,129,252,248, 160 137,65,252,248,255,15,87,192,252,242,15,17,65,8,255,217,252,238,221,89,8,
161 239,15,130,244,56,137,113,252,252,190,237,137,202,131,193,8,131,232,1,139, 161 255,184,237,252,233,244,70,248,75,129,252,248,239,15,130,244,56,137,113,252,
162 105,252,248,248,1,252,246,131,233,235,15,133,244,249,248,2,129,121,253,252, 162 252,190,237,137,202,131,193,8,131,232,1,139,105,252,248,248,1,252,246,131,
163 252,239,15,133,244,31,252,255,165,233,248,3,131,198,1,252,233,244,2,248,76, 163 233,235,15,133,244,249,248,2,129,121,253,252,252,239,15,133,244,31,252,255,
164 255,129,252,248,239,15,130,244,56,129,121,253,12,239,15,133,244,56,137,113, 164 165,233,248,3,131,198,1,252,233,244,2,248,76,255,129,252,248,239,15,130,244,
165 252,252,139,105,4,137,105,12,199,65,4,237,139,41,139,113,8,137,105,8,137, 165 56,129,121,253,12,239,15,133,244,56,137,113,252,252,139,105,4,137,105,12,
166 49,190,237,137,202,129,193,239,131,232,2,252,233,244,1,248,9,139,116,36,24, 166 199,65,4,237,139,41,139,113,8,137,105,8,137,49,190,237,137,202,129,193,239,
167 252,233,244,56,248,77,129,252,248,239,15,130,244,56,139,41,137,113,252,252, 167 131,232,2,252,233,244,1,248,9,139,116,36,24,252,233,244,56,248,77,129,252,
168 137,116,36,24,137,44,36,129,121,253,4,239,15,133,244,9,255,131,189,233,0, 168 248,239,15,130,244,56,139,41,137,113,252,252,137,116,36,24,137,44,36,129,
169 15,133,244,9,128,189,233,235,15,135,244,9,139,181,233,137,116,36,4,15,132, 169 121,253,4,239,15,133,244,9,255,131,189,233,0,15,133,244,9,128,189,233,235,
170 244,247,59,181,233,15,132,244,9,248,1,141,116,198,252,240,59,181,233,15,135, 170 15,135,244,9,139,181,233,137,116,36,4,15,132,244,247,59,181,233,15,132,244,
171 244,9,137,181,233,139,108,36,48,137,141,233,131,193,8,137,141,233,255,139, 171 9,248,1,141,116,198,252,240,59,181,233,15,135,244,9,137,181,233,139,108,36,
172 108,36,4,141,76,193,232,41,252,241,57,252,238,15,132,244,249,248,2,139,68, 172 48,137,141,233,131,193,8,137,141,233,255,139,108,36,4,141,76,193,232,41,252,
173 14,4,137,70,252,252,139,4,14,137,70,252,248,131,252,238,8,57,252,238,15,133, 173 241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,
174 244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244,28,199,131,233,237,139, 174 70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,
175 108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139, 175 137,76,36,8,232,244,28,199,131,233,237,139,108,36,48,139,52,36,139,149,233,
176 142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,255,141, 176 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,
177 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,205,248,5,139,1,137, 177 137,252,254,41,206,15,132,244,252,255,141,4,50,193,252,238,3,59,133,233,15,
178 4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70, 178 135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,
179 2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20,185,252,248,252,255, 179 193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,
180 252,255,252,255,252,247,198,237,15,132,244,17,252,233,244,18,248,8,199,66, 180 116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,
181 252,252,237,139,142,233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137, 181 15,132,244,17,252,233,244,18,248,8,199,66,252,252,237,139,142,233,131,252,
182 66,4,184,237,252,233,244,7,248,9,255,139,12,36,137,185,233,137,252,242,137, 182 233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,
183 252,233,232,251,1,0,139,149,233,252,233,244,4,248,9,139,116,36,24,252,233, 183 9,255,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,
184 244,56,248,78,139,173,233,137,113,252,252,137,116,36,24,137,44,36,131,189, 184 252,233,244,4,248,9,139,116,36,24,252,233,244,56,248,78,139,173,233,137,113,
185 233,0,15,133,244,9,128,189,233,235,15,135,244,9,139,181,233,137,116,36,4, 185 252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,9,128,189,233,235,
186 15,132,244,247,59,181,233,255,15,132,244,9,248,1,141,116,198,252,248,59,181, 186 15,135,244,9,139,181,233,137,116,36,4,15,132,244,247,59,181,233,255,15,132,
187 233,15,135,244,9,137,181,233,139,108,36,48,137,141,233,137,141,233,139,108, 187 244,9,248,1,141,116,198,252,248,59,181,233,15,135,244,9,137,181,233,139,108,
188 36,4,141,76,193,252,240,41,252,241,57,252,238,15,132,244,249,248,2,139,68, 188 36,48,137,141,233,137,141,233,139,108,36,4,141,76,193,252,240,41,252,241,
189 14,4,137,70,252,252,139,4,14,137,70,252,248,131,252,238,8,57,252,238,15,133, 189 57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70,
190 244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244,28,199,131,233,237,139, 190 252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137,
191 108,36,48,139,52,36,139,149,233,255,129,252,248,239,15,135,244,254,248,4, 191 76,36,8,232,244,28,199,131,233,237,139,108,36,48,139,52,36,139,149,233,255,
192 139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141, 192 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,
193 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,205,248,5,139,1,137, 193 137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,
194 4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70, 194 244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,
195 1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,17,255, 195 8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,
196 252,233,244,18,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,12,36, 196 49,201,252,247,198,237,15,132,244,17,255,252,233,244,18,248,8,137,252,242,
197 137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4, 197 137,252,233,232,251,1,13,248,9,139,12,36,137,185,233,137,252,242,137,252,
198 248,79,139,108,36,48,137,113,252,252,252,247,133,233,237,15,132,244,56,137, 198 233,232,251,1,0,139,149,233,252,233,244,4,248,79,139,108,36,48,137,113,252,
199 141,233,141,68,193,252,248,137,133,233,49,192,137,133,233,176,235,136,133, 199 252,252,247,133,233,237,15,132,244,56,137,141,233,141,68,193,252,248,137,
200 233,252,233,244,22,255,248,65,221,89,252,248,252,233,244,59,248,80,129,252, 200 133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,22,255,248,65,
201 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,102, 201 221,89,252,248,252,233,244,59,248,80,129,252,248,239,15,130,244,56,129,121,
202 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,248,64,252,242,15, 202 253,4,239,15,135,244,56,252,242,15,16,1,102,15,252,239,201,102,15,118,201,
203 17,65,252,248,255,248,80,129,252,248,239,15,130,244,56,129,121,253,4,239, 203 102,15,115,209,1,15,84,193,248,64,252,242,15,17,65,252,248,255,248,80,129,
204 15,135,244,56,221,1,217,225,248,64,248,65,221,89,252,248,255,248,59,184,237, 204 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,225,248,
205 248,70,137,68,36,20,248,57,252,247,198,237,15,133,244,253,248,5,56,70,252, 205 64,248,65,221,89,252,248,255,248,59,184,237,248,70,137,68,36,20,248,57,252,
206 255,15,135,244,252,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 206 247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,139,6,15,182,
207 36,171,248,6,199,68,193,252,244,237,131,192,1,252,233,244,5,248,7,137,202, 207 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,193,252,244,
208 185,252,248,252,255,252,255,252,255,252,233,244,18,255,248,81,129,252,248, 208 237,131,192,1,252,233,244,5,248,7,137,202,185,252,248,252,255,252,255,252,
209 239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,81,1,252,233, 209 255,252,233,244,18,255,248,81,129,252,248,239,15,130,244,56,129,121,253,4,
210 244,64,248,82,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 210 239,15,135,244,56,252,242,15,81,1,252,233,244,64,248,82,129,252,248,239,15,
211 56,252,242,15,16,1,232,244,83,252,233,244,64,248,84,255,129,252,248,239,15, 211 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,232,244,83,252,
212 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,232,244,85,252, 212 233,244,64,248,84,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
213 233,244,64,255,248,81,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 213 135,244,56,252,242,15,16,1,232,244,85,252,233,244,64,255,248,81,129,252,248,
214 135,244,56,221,1,217,252,250,252,233,244,65,248,82,129,252,248,239,15,130, 214 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,250,252,233,
215 244,56,129,121,253,4,239,15,135,244,56,221,1,232,244,83,252,233,244,65,248, 215 244,65,248,82,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
216 84,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221, 216 56,221,1,232,244,83,252,233,244,65,248,84,255,129,252,248,239,15,130,244,
217 1,232,244,85,252,233,244,65,255,248,86,129,252,248,239,15,130,244,56,129, 217 56,129,121,253,4,239,15,135,244,56,221,1,232,244,85,252,233,244,65,255,248,
218 121,253,4,239,15,135,244,56,217,252,237,221,1,217,252,241,252,233,244,65, 218 86,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,217,252,
219 248,87,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,217, 219 237,221,1,217,252,241,252,233,244,65,248,87,129,252,248,239,15,130,244,56,
220 252,236,221,1,217,252,241,252,233,244,65,248,88,129,252,248,239,255,15,130, 220 129,121,253,4,239,15,135,244,56,217,252,236,221,1,217,252,241,252,233,244,
221 244,56,129,121,253,4,239,15,135,244,56,221,1,232,244,89,252,233,244,65,248, 221 65,248,88,129,252,248,239,255,15,130,244,56,129,121,253,4,239,15,135,244,
222 90,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217, 222 56,221,1,232,244,89,252,233,244,65,248,90,129,252,248,239,15,130,244,56,129,
223 252,254,252,233,244,65,248,91,129,252,248,239,255,15,130,244,56,129,121,253, 223 121,253,4,239,15,135,244,56,221,1,217,252,254,252,233,244,65,248,91,129,252,
224 4,239,15,135,244,56,221,1,217,252,255,252,233,244,65,248,92,129,252,248,239, 224 248,239,255,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,255,
225 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,242,221,216,252, 225 252,233,244,65,248,92,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
226 233,244,65,248,93,129,252,248,239,15,130,244,56,255,129,121,253,4,239,15, 226 135,244,56,221,1,217,252,242,221,216,252,233,244,65,248,93,129,252,248,239,
227 135,244,56,221,1,217,192,216,200,217,232,222,225,217,252,250,217,252,243, 227 15,130,244,56,255,129,121,253,4,239,15,135,244,56,221,1,217,192,216,200,217,
228 252,233,244,65,248,94,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 228 232,222,225,217,252,250,217,252,243,252,233,244,65,248,94,129,252,248,239,
229 135,244,56,221,1,217,192,216,200,217,232,222,225,217,252,250,217,201,217, 229 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,192,216,200,217,232,
230 252,243,252,233,244,65,248,95,129,252,248,239,15,130,244,56,129,121,253,4, 230 222,225,217,252,250,217,201,217,252,243,252,233,244,65,248,95,129,252,248,
231 239,15,135,244,56,255,221,1,217,232,217,252,243,252,233,244,65,255,248,96, 231 239,15,130,244,56,129,121,253,4,239,15,135,244,56,255,221,1,217,232,217,252,
232 129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15, 232 243,252,233,244,65,255,248,96,129,252,248,239,15,130,244,56,129,121,253,4,
233 16,1,252,242,15,17,4,36,255,248,96,129,252,248,239,15,130,244,56,129,121, 233 239,15,135,244,56,252,242,15,16,1,252,242,15,17,4,36,255,248,96,129,252,248,
234 253,4,239,15,135,244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,251, 234 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,221,28,36,255,137,
235 1,14,139,76,36,16,137,252,234,252,233,244,65,255,248,97,129,252,248,239,15, 235 76,36,16,137,213,232,251,1,14,139,76,36,16,137,252,234,252,233,244,65,255,
236 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,17, 236 248,97,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,
237 4,36,255,248,97,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 237 242,15,16,1,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,56,129,
238 56,221,1,221,28,36,255,137,76,36,16,137,213,232,251,1,15,139,76,36,16,137, 238 121,253,4,239,15,135,244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,
239 252,234,252,233,244,65,255,248,98,129,252,248,239,15,130,244,56,129,121,253, 239 251,1,15,139,76,36,16,137,252,234,252,233,244,65,255,248,98,129,252,248,239,
240 4,239,15,135,244,56,252,242,15,16,1,252,242,15,17,4,36,255,248,98,129,252, 240 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,
241 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,221,28,36,255, 241 17,4,36,255,248,98,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,
242 137,76,36,16,137,213,232,251,1,16,139,76,36,16,137,252,234,252,233,244,65, 242 244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,251,1,16,139,76,36,16,
243 248,99,255,248,100,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135, 243 137,252,234,252,233,244,65,248,99,255,248,100,129,252,248,239,15,130,244,
244 244,56,252,242,15,16,1,252,242,15,89,133,233,252,233,244,64,255,248,100,129, 244 56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,89,133,233,
245 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,220,141,233, 245 252,233,244,64,255,248,100,129,252,248,239,15,130,244,56,129,121,253,4,239,
246 252,233,244,65,255,248,101,129,252,248,239,15,130,244,56,129,121,253,4,239, 246 15,135,244,56,221,1,220,141,233,252,233,244,65,255,248,101,129,252,248,239,
247 15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,217,252,243,
248 252,233,244,65,248,102,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
249 135,244,56,129,121,253,12,239,255,15,135,244,56,221,65,8,221,1,217,252,253,
250 221,217,252,233,244,65,248,103,129,252,248,239,15,130,244,56,139,105,4,129,
251 252,253,239,15,135,244,56,139,1,137,105,252,252,137,65,252,248,209,229,129,
252 252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,
253 0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,
254 242,15,42,197,255,137,108,36,16,219,68,36,16,255,139,105,252,252,129,229,
255 252,255,252,255,15,128,129,205,0,0,224,63,137,105,252,252,248,2,255,252,242,
256 15,17,1,255,221,25,255,184,237,252,233,244,70,248,3,255,15,87,192,252,233,
257 244,2,255,217,252,238,252,233,244,2,255,252,242,15,16,1,189,0,0,80,67,102,
258 15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,65,252,248,255,
259 221,1,199,68,36,16,0,0,128,90,216,76,36,16,221,89,252,248,255,139,105,252,
260 252,184,52,4,0,0,209,229,252,233,244,1,255,248,104,129,252,248,239,15,130,
261 244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,255,248,104,129,252,
262 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,255,139,105,4,
263 209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,
264 105,252,242,15,92,224,248,1,252,242,15,17,65,252,248,252,242,15,17,33,255,
265 217,192,232,244,105,220,252,233,248,1,221,89,252,248,221,25,255,139,65,252,
266 252,139,105,4,49,232,15,136,244,249,248,2,184,237,252,233,244,70,248,3,129,
267 252,245,0,0,0,128,137,105,4,252,233,244,2,248,4,255,15,87,228,252,233,244,
268 1,255,217,252,238,217,201,252,233,244,1,255,248,106,129,252,248,239,15,130,
269 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,
270 65,8,221,1,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,
271 65,255,248,107,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
272 56,129,121,253,12,239,15,135,244,56,252,242,15,16,1,252,242,15,16,73,8,232,
273 244,108,252,233,244,64,255,248,107,129,252,248,239,15,130,244,56,129,121,
274 253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,232,
275 244,108,252,233,244,65,255,248,109,129,252,248,239,15,130,244,56,129,121,
276 253,4,239,15,135,244,56,252,242,15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,
277 64,129,124,253,252,233,252,252,239,15,135,244,56,252,242,15,16,76,252,233,
278 252,248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,
279 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,
280 57,197,15,131,244,65,129,124,253,252,233,252,252,239,15,135,244,251,221,68,
281 252,233,252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,
282 246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,248,110,129,252,248,
283 239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,2,0,
284 0,0,248,1,57,197,15,131,244,64,129,124,253,252,233,252,252,239,15,135,244,
285 56,252,242,15,16,76,252,233,252,248,252,242,15,95,193,131,197,1,252,233,244,
286 1,255,248,110,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
287 56,221,1,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124,253,252,233,252,252,
288 239,15,135,244,251,221,68,252,233,252,248,255,219,252,233,218,209,221,217,
289 255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,
290 88,255,248,5,221,216,252,233,244,56,255,248,111,129,252,248,239,15,130,244,
291 56,129,121,253,4,239,15,133,244,56,139,41,255,252,242,15,42,133,233,252,233,
292 244,64,255,219,133,233,252,233,244,65,255,248,112,129,252,248,239,15,133,
293 244,56,129,121,253,4,239,15,133,244,56,139,41,131,189,233,1,15,130,244,73,
294 15,182,173,233,255,252,242,15,42,197,252,233,244,64,255,137,108,36,16,219,
295 68,36,16,252,233,244,65,255,248,113,139,171,233,59,171,233,15,130,244,247,
296 232,244,67,248,1,129,252,248,239,15,133,244,56,129,121,253,4,239,15,135,244,
297 56,255,252,242,15,45,1,61,252,255,0,0,0,15,135,244,56,137,68,36,20,255,221,
298 1,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,56,255,199,68,36,8,
299 1,0,0,0,141,68,36,20,137,76,36,16,248,114,139,108,36,48,137,149,233,137,68,
300 36,4,137,44,36,137,116,36,24,232,251,1,17,139,76,36,16,139,149,233,199,65,
301 252,252,237,137,65,252,248,252,233,244,59,248,115,139,171,233,59,171,233,
302 15,130,244,247,232,244,67,248,1,137,76,36,16,199,68,36,20,252,255,252,255,
303 252,255,252,255,129,252,248,239,15,130,244,56,15,134,244,247,129,121,253,
304 20,239,255,252,242,15,45,105,16,137,108,36,20,255,221,65,16,219,92,36,20,
305 255,248,1,129,121,253,4,239,15,133,244,56,129,121,253,12,239,15,135,244,56,
306 139,41,137,108,36,12,139,173,233,255,252,242,15,45,73,8,255,221,65,8,219,
307 92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,
308 15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,116,141,172,253,13,233,
309 131,192,1,248,4,137,68,36,8,137,232,252,233,244,114,248,5,15,140,244,252,
310 141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,
311 254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,
312 116,49,192,252,233,244,4,248,117,129,252,248,239,15,130,244,56,139,171,233,
313 59,171,233,15,130,244,247,232,244,67,248,1,255,137,76,36,16,129,121,253,4,
314 239,15,133,244,56,129,121,253,12,239,15,135,244,56,139,41,255,252,242,15,
315 45,65,8,255,221,65,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,116,
316 131,189,233,1,15,130,244,116,15,133,244,118,57,131,233,15,130,244,118,15,
317 182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,
318 133,244,1,139,131,233,252,233,244,114,248,119,129,252,248,239,255,15,130,
319 244,56,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,137,76,36,16,
320 129,121,253,4,239,15,133,244,56,139,41,139,133,233,133,192,15,132,244,116,
321 57,131,233,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
322 248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,
323 139,116,36,20,252,233,244,114,248,121,129,252,248,239,15,130,244,56,139,171,
324 233,59,171,233,15,130,244,247,232,244,67,248,1,137,76,36,16,129,121,253,4,
325 239,15,133,244,56,139,41,139,133,233,57,131,233,255,15,130,244,120,129,197,
326 239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,
327 5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,
328 32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,
329 252,233,244,114,248,122,129,252,248,239,15,130,244,56,255,139,171,233,59,
330 171,233,15,130,244,247,232,244,67,248,1,137,76,36,16,129,121,253,4,239,15,
331 133,244,56,139,41,139,133,233,57,131,233,15,130,244,120,129,197,239,137,116,
332 36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
333 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
334 2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,
335 244,114,248,123,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,
336 56,137,84,36,16,137,205,139,9,232,251,1,18,137,252,233,139,84,36,16,255,252,
337 242,15,42,192,252,233,244,64,255,137,4,36,219,4,36,252,233,244,65,255,248,
338 124,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,
339 15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,
340 102,15,126,197,252,242,15,42,197,252,233,244,64,255,248,124,129,252,248,239,
341 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,
342 89,216,68,36,16,221,28,36,219,4,36,252,233,244,65,255,248,125,129,252,248,
343 239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,
344 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
345 248,125,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,
346 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,
347 20,141,68,193,252,240,255,137,84,36,16,255,248,1,57,200,15,134,244,126,129,
348 120,253,4,239,15,135,244,127,255,252,242,15,16,0,252,242,15,88,193,102,15,
349 126,194,33,213,255,221,0,216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,
350 233,244,1,255,248,128,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
351 135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
352 252,242,15,88,193,102,15,126,197,255,248,128,129,252,248,239,15,130,244,56,
353 129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,
354 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,194,
355 9,213,255,221,0,216,68,36,16,221,28,36,11,44,36,255,248,129,129,252,248,239,
356 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,
357 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
358 248,129,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,
359 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,
360 16,0,252,242,15,88,193,102,15,126,194,49,213,255,221,0,216,68,36,16,221,28,
361 36,51,44,36,255,248,130,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
362 135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
363 252,242,15,88,193,102,15,126,197,255,248,130,129,252,248,239,15,130,244,56,
364 129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,
365 221,28,36,139,44,36,255,15,205,252,233,244,131,255,248,132,129,252,248,239,
366 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,
367 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
368 248,132,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,
369 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,247,213,
370 255,248,131,252,242,15,42,197,252,233,244,64,248,126,252,242,15,42,197,139,
371 84,36,16,252,233,244,64,255,248,131,248,126,137,44,36,219,4,36,252,233,244,
372 65,255,248,127,255,139,68,36,20,252,233,244,56,255,248,133,129,252,248,239,
373 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,
374 56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,
375 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
376 15,126,201,255,248,133,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
377 135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,
378 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,
379 8,139,44,36,255,211,229,137,193,252,233,244,131,255,248,134,129,252,248,239,
380 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244, 247 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,
381 56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15, 248 56,221,1,221,65,8,217,252,243,252,233,244,65,248,102,129,252,248,239,15,130,
382 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102, 249 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,255,15,135,244,
383 15,126,201,255,248,134,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 250 56,221,65,8,221,1,217,252,253,221,217,252,233,244,65,248,103,129,252,248,
384 135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0, 251 239,15,130,244,56,139,105,4,129,252,253,239,15,135,244,56,139,1,137,105,252,
385 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36, 252 252,137,65,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,
386 8,139,44,36,255,211,252,237,137,193,252,233,244,131,255,248,135,129,252,248, 253 15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,
387 239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135, 254 1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68,36,
388 244,56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102, 255 16,255,139,105,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,
389 15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197, 256 137,105,252,252,248,2,255,252,242,15,17,1,255,221,25,255,184,237,252,233,
390 102,15,126,201,255,248,135,129,252,248,239,15,130,244,56,129,121,253,4,239, 257 244,70,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,
391 15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16, 258 252,242,15,16,1,189,0,0,80,67,102,15,110,205,102,15,112,201,81,252,242,15,
392 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76, 259 89,193,252,242,15,17,65,252,248,255,221,1,199,68,36,16,0,0,128,90,216,76,
393 36,8,139,44,36,255,211,252,253,137,193,252,233,244,131,255,248,136,129,252, 260 36,16,221,89,252,248,255,139,105,252,252,184,52,4,0,0,209,229,252,233,244,
394 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239, 261 1,255,248,104,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
395 15,135,244,56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110, 262 56,252,242,15,16,1,255,248,104,129,252,248,239,15,130,244,56,129,121,253,
396 213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 263 4,239,15,135,244,56,221,1,255,139,105,4,209,229,129,252,253,0,0,224,252,255,
397 126,197,102,15,126,201,255,248,136,129,252,248,239,15,130,244,56,129,121, 264 15,132,244,250,255,15,40,224,232,244,105,252,242,15,92,224,248,1,252,242,
398 253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199, 265 15,17,65,252,248,252,242,15,17,33,255,217,192,232,244,105,220,252,233,248,
399 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, 266 1,221,89,252,248,221,25,255,139,65,252,252,139,105,4,49,232,15,136,244,249,
400 139,76,36,8,139,44,36,255,211,197,137,193,252,233,244,131,255,248,137,129, 267 248,2,184,237,252,233,244,70,248,3,129,252,245,0,0,0,128,137,105,4,252,233,
401 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12, 268 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,
402 239,15,135,244,56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15, 269 1,255,248,106,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
403 110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102, 270 56,129,121,253,12,239,15,135,244,56,221,65,8,221,1,248,1,217,252,248,223,
404 15,126,197,102,15,126,201,255,248,137,129,252,248,239,15,130,244,56,129,121, 271 224,158,15,138,244,1,221,217,252,233,244,65,255,248,107,129,252,248,239,15,
405 253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199, 272 130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,
406 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, 273 56,252,242,15,16,1,252,242,15,16,73,8,232,244,108,252,233,244,64,255,248,
407 139,76,36,8,139,44,36,255,211,205,137,193,252,233,244,131,248,118,184,237, 274 107,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,
408 252,233,244,56,248,120,184,237,248,56,139,108,36,48,41,202,137,113,252,252, 275 253,12,239,15,135,244,56,221,1,221,65,8,232,244,108,252,233,244,65,255,248,
409 137,116,36,24,137,84,36,16,137,141,233,141,68,193,252,248,141,144,233,137, 276 109,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,
410 133,233,139,65,252,248,59,149,233,15,135,244,251,137,44,36,252,255,144,233, 277 15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,233,252,252,
411 133,192,15,133,244,249,248,1,139,141,233,255,139,133,233,41,200,193,232,3, 278 239,15,135,244,56,252,242,15,16,76,252,233,252,248,252,242,15,93,193,131,
412 131,192,1,139,105,252,248,139,84,36,16,1,202,57,113,252,252,15,133,244,248, 279 197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,56,129,121,253,
413 252,255,165,233,248,2,129,121,253,252,252,239,15,133,244,31,252,255,165,233, 280 4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124,
414 248,3,139,141,233,139,84,36,16,1,202,252,233,244,70,248,5,186,237,137,252, 281 253,252,233,252,252,239,15,135,244,251,221,68,252,233,252,248,255,219,252,
415 233,232,251,1,0,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,41,202, 282 233,219,209,221,217,255,80,221,225,223,224,252,246,196,1,15,132,244,248,217,
416 137,84,36,20,137,113,252,252,137,116,36,24,137,141,233,141,68,193,252,248, 283 201,248,2,221,216,88,255,248,110,129,252,248,239,15,130,244,56,129,121,253,
417 137,252,233,137,133,233,255,232,251,1,19,139,141,233,139,133,233,41,200,193, 284 4,239,15,135,244,56,252,242,15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,64,
418 232,3,131,192,1,139,113,252,252,139,84,36,20,1,202,139,108,36,16,85,139,105, 285 129,124,253,252,233,252,252,239,15,135,244,56,252,242,15,16,76,252,233,252,
419 252,248,195,248,138,255,15,182,131,233,168,235,15,133,244,251,168,235,15, 286 248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,110,129,252,248,239,
420 133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248, 287 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,57,
421 139,15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255, 288 197,15,131,244,65,129,124,253,252,233,252,252,239,15,135,244,251,221,68,252,
422 139,233,15,132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,137,149, 289 233,252,248,255,219,252,233,218,209,221,217,255,80,221,225,223,224,252,246,
423 233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78, 290 196,1,15,133,244,248,217,201,248,2,221,216,88,255,248,5,221,216,252,233,244,
424 252,253,248,5,255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,171, 291 56,255,248,111,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,
425 233,248,140,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,141,255,139, 292 56,139,41,255,252,242,15,42,133,233,252,233,244,64,255,219,133,233,252,233,
426 108,36,48,137,149,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232, 293 244,65,255,248,112,129,252,248,239,15,133,244,56,129,121,253,4,239,15,133,
427 251,1,21,252,233,244,3,255,248,142,255,139,108,36,48,137,149,233,137,252, 294 244,56,139,41,131,189,233,1,15,130,244,73,15,182,173,233,255,252,242,15,42,
428 242,141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,6, 295 197,252,233,244,64,255,137,108,36,16,219,68,36,16,252,233,244,65,255,248,
429 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,143,255, 296 113,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,129,252,248,239,
430 85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125, 297 15,133,244,56,129,121,253,4,239,15,135,244,56,255,252,242,15,45,1,61,252,
431 252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233, 298 255,0,0,0,15,135,244,56,137,68,36,20,255,221,1,219,92,36,20,129,124,36,20,
432 137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242,15, 299 252,255,0,0,0,15,135,244,56,255,199,68,36,8,1,0,0,0,141,68,36,20,137,76,36,
433 17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101, 300 16,248,114,139,108,36,48,137,149,233,137,68,36,4,137,44,36,137,116,36,24,
434 192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242, 301 232,251,1,17,139,76,36,16,139,149,233,199,65,252,252,237,137,65,252,248,252,
435 15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84, 302 233,244,59,248,115,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,
436 36,16,141,139,233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108, 303 137,76,36,16,199,68,36,20,252,255,252,255,252,255,252,255,129,252,248,239,
437 36,48,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233, 304 15,130,244,56,15,134,244,247,129,121,253,20,239,255,252,242,15,45,105,16,
438 0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 305 137,108,36,20,255,221,65,16,219,92,36,20,255,248,1,129,121,253,4,239,15,133,
439 252,255,36,171,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11, 306 244,56,129,121,253,12,239,15,135,244,56,139,41,137,108,36,12,139,173,233,
440 68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217, 307 255,252,242,15,45,73,8,255,221,65,8,219,92,36,8,139,76,36,8,255,139,68,36,
441 108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102, 308 20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,12,
442 15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102, 309 41,200,15,140,244,116,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,
443 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252, 310 232,252,233,244,114,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,
444 242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112, 311 137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,
445 210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248, 312 244,3,248,8,185,1,0,0,0,252,233,244,3,248,116,49,192,252,233,244,4,248,117,
446 1,195,248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102, 313 129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232,244,
447 37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 314 67,248,1,255,137,76,36,16,129,121,253,4,239,15,133,244,56,129,121,253,12,
448 139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115, 315 239,15,135,244,56,139,41,255,252,242,15,45,65,8,255,221,65,8,219,92,36,20,
316 139,68,36,20,255,133,192,15,142,244,116,131,189,233,1,15,130,244,116,15,133,
317 244,118,57,131,233,15,130,244,118,15,182,141,233,139,171,233,137,68,36,8,
318 248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,114,
319 248,119,129,252,248,239,255,15,130,244,56,139,171,233,59,171,233,15,130,244,
320 247,232,244,67,248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,
321 139,133,233,133,192,15,132,244,116,57,131,233,15,130,244,120,129,197,239,
322 137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131,
323 232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,114,248,
324 121,129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232,
325 244,67,248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,139,133,
326 233,57,131,233,255,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,
327 179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,
328 131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,
329 1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,114,248,122,129,252,
330 248,239,15,130,244,56,255,139,171,233,59,171,233,15,130,244,247,232,244,67,
331 248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,139,133,233,57,
332 131,233,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
333 252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,
334 252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,
335 15,137,244,1,137,252,240,139,116,36,20,252,233,244,114,248,123,129,252,248,
336 239,15,130,244,56,129,121,253,4,239,15,133,244,56,137,84,36,16,137,205,139,
337 9,232,251,1,18,137,252,233,139,84,36,16,255,252,242,15,42,192,252,233,244,
338 64,255,137,4,36,219,4,36,252,233,244,65,255,248,124,129,252,248,239,15,130,
339 244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,
340 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,252,242,15,
341 42,197,252,233,244,64,255,248,124,129,252,248,239,15,130,244,56,129,121,253,
342 4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,
343 219,4,36,252,233,244,65,255,248,125,129,252,248,239,15,130,244,56,129,121,
344 253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,
345 15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,125,129,252,248,239,
346 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,
347 89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,193,252,240,255,
348 137,84,36,16,255,248,1,57,200,15,134,244,126,129,120,253,4,239,15,135,244,
349 127,255,252,242,15,16,0,252,242,15,88,193,102,15,126,194,33,213,255,221,0,
350 216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,128,129,
351 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,
352 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
353 197,255,248,128,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
354 56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,
355 242,15,16,0,252,242,15,88,193,102,15,126,194,9,213,255,221,0,216,68,36,16,
356 221,28,36,11,44,36,255,248,129,129,252,248,239,15,130,244,56,129,121,253,
357 4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,
358 201,81,252,242,15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,
359 244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,
360 68,36,16,221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,
361 126,194,49,213,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,130,129,
362 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,
363 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
364 197,255,248,130,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
365 56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,
366 205,252,233,244,131,255,248,132,129,252,248,239,15,130,244,56,129,121,253,
367 4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,
368 201,81,252,242,15,88,193,102,15,126,197,255,248,132,129,252,248,239,15,130,
369 244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,
370 68,36,16,221,28,36,139,44,36,255,252,247,213,255,248,131,252,242,15,42,197,
371 252,233,244,64,248,126,252,242,15,42,197,139,84,36,16,252,233,244,64,255,
372 248,131,248,126,137,44,36,219,4,36,252,233,244,65,255,248,127,255,139,68,
373 36,20,252,233,244,56,255,248,133,129,252,248,239,15,130,244,56,129,121,253,
374 4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,15,16,1,252,
375 242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,
376 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,133,
377 129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,
378 12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,
379 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
380 229,137,193,252,233,244,131,255,248,134,129,252,248,239,15,130,244,56,129,
381 121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,15,16,
382 1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,
383 15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,
384 134,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,
385 253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,
386 16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
387 252,237,137,193,252,233,244,131,255,248,135,129,252,248,239,15,130,244,56,
388 129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,
389 15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
390 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,
391 255,248,135,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,
392 129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,
393 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,
394 255,211,252,253,137,193,252,233,244,131,255,248,136,129,252,248,239,15,130,
395 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,
396 242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
397 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
398 201,255,248,136,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
399 56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,
400 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
401 36,255,211,197,137,193,252,233,244,131,255,248,137,129,252,248,239,15,130,
402 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,
403 242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
404 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
405 201,255,248,137,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
406 56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,
407 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
408 36,255,211,205,137,193,252,233,244,131,248,118,184,237,252,233,244,56,248,
409 120,184,237,248,56,139,108,36,48,41,202,137,113,252,252,137,116,36,24,137,
410 84,36,16,137,141,233,141,68,193,252,248,141,144,233,137,133,233,139,65,252,
411 248,59,149,233,15,135,244,251,137,44,36,252,255,144,233,133,192,15,133,244,
412 249,248,1,139,141,233,255,139,133,233,41,200,193,232,3,131,192,1,139,105,
413 252,248,139,84,36,16,1,202,57,113,252,252,15,133,244,248,252,255,165,233,
414 248,2,129,121,253,252,252,239,15,133,244,31,252,255,165,233,248,3,139,141,
415 233,139,84,36,16,1,202,252,233,244,70,248,5,186,237,137,252,233,232,251,1,
416 0,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,41,202,137,84,36,20,
417 137,113,252,252,137,116,36,24,137,141,233,141,68,193,252,248,137,252,233,
418 137,133,233,255,232,251,1,19,139,141,233,139,133,233,41,200,193,232,3,131,
419 192,1,139,113,252,252,139,84,36,20,1,202,139,108,36,16,85,139,105,252,248,
420 195,248,138,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,
421 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,139,15,
422 182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,
423 15,132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,137,149,233,137,
424 252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,
425 248,5,255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,171,233,248,
426 140,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,141,255,139,108,36,
427 48,137,149,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232,251,
428 1,21,252,233,244,3,255,248,142,255,139,108,36,48,137,149,233,137,252,242,
429 141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,6,15,182,
430 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,143,255,85,141,
431 108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,
432 137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,
433 233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242,15,17,125,
434 216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,
435 242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,
436 69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84,36,16,
437 141,139,233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108,36,48,
438 255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,
439 0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
440 36,171,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,
441 102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,
442 4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115,
449 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 443 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,
450 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 444 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
451 15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210, 445 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
452 81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 446 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
453 248,105,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 447 248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,
454 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 448 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
455 102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110, 449 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
456 216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247, 450 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,
457 102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240, 451 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
458 63,102,15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252, 452 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,
459 242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252, 453 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,105,255,
460 242,15,94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0, 454 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,
461 48,67,102,15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46, 455 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252,
462 220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102, 456 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,
463 15,86,226,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15, 457 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
464 194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252, 458 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,
465 242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195, 459 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,
466 255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252, 460 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,
467 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201, 461 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
468 222,252,233,195,255,248,89,217,252,234,222,201,248,149,217,84,36,4,129,124, 462 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,
469 36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248, 463 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,
470 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193, 464 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102,
471 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219, 465 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,
472 84,36,4,219,68,36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133, 466 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,
473 244,254,15,138,244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248, 467 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
474 1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232, 468 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,
475 15,132,244,251,217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3, 469 255,248,89,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127,
476 220,201,252,233,244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130, 470 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192,
477 244,253,217,232,222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233, 471 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
478 244,1,248,7,221,216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139, 472 217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219,84,36,4,219,68,
479 68,36,4,209,224,61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132, 473 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,
480 244,250,61,0,0,0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9, 474 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,
481 255,217,232,255,223,252,234,255,221,252,234,223,224,158,255,15,132,244,247, 475 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
482 217,201,248,1,221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216, 476 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,
483 217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244, 477 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,
484 249,217,201,248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221, 478 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,
485 216,221,216,133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0, 479 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,
486 128,127,217,68,36,4,195,255,248,108,255,248,151,252,242,15,45,193,252,242, 480 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,
487 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248, 481 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255,
488 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232, 482 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,
489 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89, 483 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,
490 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244, 484 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,
491 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80, 485 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,
492 184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88, 486 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,
493 15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184, 487 68,36,4,195,255,248,108,255,248,151,252,242,15,45,193,252,242,15,42,208,102,
494 0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76, 488 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,
495 36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209, 489 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,
496 224,61,0,0,224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244, 490 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,
497 247,139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251, 491 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,
498 248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233, 492 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252,
499 217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242, 493 240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252,
500 15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210, 494 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63,
501 81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239, 495 102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242,
502 210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102, 496 15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0,
503 15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15, 497 224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68,
504 87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102, 498 36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68,
505 15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3, 499 36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217,
506 255,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195, 500 252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68,
507 248,153,255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247, 501 36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,
508 15,135,244,248,232,244,83,252,233,244,253,248,1,232,244,85,252,233,244,253, 502 46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15,
509 248,2,131,252,248,3,15,132,244,247,15,135,244,248,232,244,105,255,252,233, 503 118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208,
510 244,253,248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195, 504 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,
511 248,2,221,68,36,4,131,252,248,5,15,130,244,89,15,132,244,149,248,2,131,252, 505 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192,
512 248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248, 506 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87,
513 1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135, 507 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,
514 244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248, 508 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244,
515 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217, 509 248,232,244,83,252,233,244,253,248,1,232,244,85,252,233,244,253,248,2,131,
516 252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244, 510 252,248,3,15,132,244,247,15,135,244,248,232,244,105,255,252,233,244,253,248,
517 83,15,132,244,85,131,252,248,3,15,130,244,105,15,135,244,248,217,252,250, 511 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221,
518 195,248,2,131,252,248,5,15,130,244,89,15,132,244,149,131,252,248,7,15,132, 512 68,36,4,131,252,248,5,15,130,244,89,15,132,244,149,248,2,131,252,248,7,15,
519 244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232, 513 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,
520 217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244, 514 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244,
521 248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252, 515 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,
522 248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221, 516 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,
523 216,195,255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252, 517 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,83,15,132,
524 242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15, 518 244,85,131,252,248,3,15,130,244,105,15,135,244,248,217,252,250,195,248,2,
525 88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193, 519 131,252,248,5,15,130,244,89,15,132,244,149,131,252,248,7,15,132,244,247,15,
526 252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15, 520 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,
527 89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252, 521 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,
528 248,5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90, 522 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,
529 232,244,108,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244, 523 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,
530 248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244, 524 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16,
531 7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252, 525 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248,
532 233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12, 526 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244,
533 15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248, 527 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252,
534 2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233, 528 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132,
535 244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221, 529 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,108,
536 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193, 530 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0,
537 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 531 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102,
538 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132, 532 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248,
539 244,108,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195, 533 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247,
540 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
541 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 534 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
542 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 535 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242,
543 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 536 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,
544 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 537 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,
545 244,248,217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242, 538 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,
546 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15, 539 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,108,131,252,
547 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249, 540 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,
548 255,129,124,253,202,4,239,15,135,244,43,129,124,253,194,4,239,15,135,244, 541 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,
549 43,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4, 542 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,
550 194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15, 543 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,
551 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134, 544 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,
552 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 545 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,
553 255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202, 546 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0,
554 4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202, 547 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124,
555 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244, 548 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,129,124,253,202,
556 247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183, 549 4,239,15,135,244,43,129,124,253,194,4,239,15,135,244,43,255,252,242,15,16,
557 70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2, 550 4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,
558 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129, 551 252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,
559 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133, 552 244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,
560 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255, 553 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,
561 252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59, 554 198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,
562 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15, 555 255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,
563 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,131,198, 556 244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,
564 4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244, 557 70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,180,
565 247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183, 558 253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,
566 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198, 559 131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,
567 4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,137, 560 244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,
568 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 561 2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,252,247,208,131,198,
569 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204, 562 4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,
570 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239, 563 129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,
571 15,135,244,50,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15, 564 202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139,
572 112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202, 565 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,
573 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242, 566 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,
574 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202, 567 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
575 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2, 568 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,
576 129,124,253,194,4,239,15,133,244,52,139,12,194,137,213,232,251,1,18,255,252, 569 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,
577 242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182,78, 570 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,
578 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234, 571 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,50,255,252,
579 4,239,15,135,244,48,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221, 572 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,
580 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,49,255,252,242, 573 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,
581 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124, 574 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,
582 253,252,234,4,239,15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252, 575 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
583 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252, 576 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,
584 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255, 577 15,133,244,52,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
585 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234, 578 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1,
586 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36, 579 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,48,
587 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220, 580 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,
588 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220, 581 255,129,124,253,252,234,4,239,15,135,244,49,255,252,242,15,16,4,199,252,242,
589 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252, 582 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,
590 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4, 583 15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252,242,15,16,4,252,
591 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221, 584 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,
592 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255, 585 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,
593 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199, 586 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,
594 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252, 587 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,
595 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, 588 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,
596 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244, 589 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,
597 156,255,232,244,108,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76, 590 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
598 36,4,137,68,36,8,248,35,139,108,36,48,137,44,36,137,149,233,137,116,36,24, 591 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,
599 232,251,1,23,139,149,233,133,192,15,133,244,44,15,182,110,252,255,15,182, 592 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,
600 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6, 593 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,
601 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208, 594 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,
602 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198, 595 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,
603 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17, 596 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,
604 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17, 597 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,
605 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182, 598 108,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,
606 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141, 599 8,248,35,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,23,139,
607 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244, 600 149,233,133,192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,139,68,
608 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139, 601 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
609 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202, 602 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,
610 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 603 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
611 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139, 604 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,
612 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235, 605 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,
613 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 606 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,
614 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 607 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137,
615 235,15,132,244,1,135,213,141,139,233,255,232,251,1,24,137,252,234,252,233, 608 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,
616 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 609 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,
617 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 610 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,
618 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129, 611 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,
619 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233, 612 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,
620 232,251,1,24,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15, 613 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,
621 16,4,199,255,139,172,253,141,233,139,141,233,255,252,247,208,139,106,252, 614 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239,
622 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 615 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,
623 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 616 139,233,255,232,251,1,24,137,252,234,252,233,244,1,255,252,247,208,139,106,
624 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 617 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,
625 25,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 618 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,
626 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 619 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,
627 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,26,139,149, 620 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234,252,
621 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,
622 233,139,141,233,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,
623 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
624 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,
625 149,233,141,20,202,137,252,233,232,251,1,25,139,149,233,248,1,139,6,15,182,
626 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,
627 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,
628 233,137,116,36,24,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,
629 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
630 171,255,137,197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,
631 249,248,2,137,108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,
632 137,44,36,59,131,233,137,149,233,15,131,244,251,248,1,232,251,1,27,139,149,
628 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 633 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
629 232,131,198,4,193,232,16,252,255,36,171,255,137,197,37,252,255,7,0,0,193, 634 232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,
630 252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137,108,36,8,139,108,36, 635 5,137,252,233,232,251,1,28,252,233,244,1,255,252,247,208,139,108,36,48,139,
631 48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59,131,233,137,149,233, 636 139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,
632 15,131,244,251,248,1,232,251,1,27,139,149,233,15,182,78,252,253,137,4,202, 637 135,137,252,233,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,
633 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 638 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
634 36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,28,252, 639 171,248,3,137,252,233,232,251,1,28,15,183,70,252,254,252,247,208,252,233,
635 233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139, 640 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,
636 233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,29, 641 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
637 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204, 642 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,
638 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251, 643 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
639 1,28,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106, 644 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,
640 252,248,139,173,233,139,4,135,252,233,244,157,255,252,247,208,139,106,252, 645 4,36,255,15,133,244,38,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,
641 248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129, 646 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
642 124,253,252,234,4,239,15,133,244,38,139,44,252,234,129,124,253,194,4,239, 647 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,
643 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200, 648 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,
644 102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,38,59,133,233, 649 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38,139,4,
645 15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, 650 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,
646 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198, 651 124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,157,139,141,233,35,
647 4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233, 652 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,
648 252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,5,255, 653 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,
649 129,124,253,194,4,239,15,133,244,38,139,4,194,252,233,244,157,255,15,182, 654 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,
650 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 655 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,
651 244,36,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233, 656 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
652 248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253, 657 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,36,255,15,182,252,
653 4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255, 658 236,15,182,192,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,59,
654 137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 659 133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
655 171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201, 660 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,
656 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15, 661 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,
657 133,244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124,253,252,234, 662 141,233,252,246,129,233,235,15,132,244,37,255,15,182,252,236,15,182,192,129,
658 4,239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133, 663 124,253,252,234,4,239,15,133,244,41,139,44,252,234,129,124,253,194,4,239,
659 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, 664 15,135,244,251,255,15,133,244,41,59,133,233,15,131,244,41,193,224,3,3,133,
660 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
661 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,
662 37,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,
663 139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,41,59,
664 133,233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,
665 248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,
666 104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
667 248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,
668 244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,
669 244,41,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,233,137,171,
670 233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,
671 192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139,44,
672 252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,
673 248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,
674 4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,
675 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,
676 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,
677 2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,39,139,76,36,16,
678 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,
679 201,15,132,244,252,252,246,129,233,235,15,132,244,39,248,6,137,68,36,16,199,
680 68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68,
681 36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,139,108,
682 36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
683 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
684 4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,
685 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 665 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
686 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 666 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
687 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1, 667 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
688 255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,78,252,253,252,233, 668 139,141,233,255,252,246,129,233,235,15,132,244,41,15,182,78,252,253,252,233,
689 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78, 669 244,1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,244,158,
690 252,253,252,233,244,2,255,137,124,36,16,255,221,4,199,219,92,36,12,255,248, 670 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,
691 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139, 671 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
692 68,36,20,255,252,242,15,45,252,248,255,139,124,36,12,255,131,232,1,15,132, 672 253,252,234,4,239,15,133,244,39,139,44,252,234,248,158,139,141,233,35,136,
693 244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,233, 673 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,
694 248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15, 674 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,
695 133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232, 675 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,
696 16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68,36, 676 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
697 8,137,44,36,137,116,36,24,232,251,1,31,139,149,233,15,182,78,252,253,252, 677 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,
698 233,244,1,248,7,128,165,233,235,139,131,233,137,171,233,255,137,133,233,252, 678 252,246,129,233,235,15,132,244,39,139,76,36,16,252,233,244,2,248,5,139,137,
699 233,244,2,255,3,68,36,20,255,141,76,202,8,139,105,252,248,129,121,253,252, 679 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
700 252,239,15,133,244,31,252,255,165,233,255,141,76,202,8,137,215,139,105,252, 680 233,235,15,132,244,39,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,
701 248,129,121,253,252,252,239,15,133,244,31,248,53,139,114,252,252,252,247, 681 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,
702 198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15,132, 682 116,36,24,232,251,1,30,139,149,233,139,108,36,12,137,193,252,233,244,2,248,
703 244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232, 683 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
704 1,15,133,244,2,139,106,252,248,248,3,137,209,128,189,233,1,15,135,244,251, 684 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252,
705 248,4,139,68,36,20,252,255,165,233,248,5,255,252,247,198,237,15,133,244,4, 685 234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132,
706 15,182,70,252,253,252,247,208,141,20,194,139,122,252,248,139,191,233,139, 686 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
707 191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215, 687 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
708 139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236, 688 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
709 137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105, 689 235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
710 224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,3,0,0,0, 690 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
711 15,133,244,31,252,255,165,233,255,15,182,252,236,139,66,252,248,141,12,202, 691 36,16,255,221,4,199,219,92,36,12,255,248,1,141,12,202,139,105,252,248,252,
712 139,128,233,15,182,128,233,137,124,36,16,141,188,253,194,233,43,122,252,252, 692 246,133,233,235,15,133,244,253,248,2,139,68,36,20,255,252,242,15,45,252,248,
713 133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248, 693 255,139,124,36,12,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,
714 248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57, 694 244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,
715 252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57, 695 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,
716 252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131, 696 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,
717 198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252, 697 36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,
718 248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,20,139,108, 698 1,31,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
719 36,48,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252, 699 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,20,255,141,
720 252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7, 700 76,202,8,139,105,252,248,129,121,253,252,252,239,15,133,244,31,252,255,165,
721 137,149,233,137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137, 701 233,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
722 252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225, 702 244,31,248,53,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,
723 3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255, 703 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,
724 248,17,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139, 704 4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,
725 108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36, 705 3,137,209,128,189,233,1,15,135,244,251,248,4,139,68,36,20,252,255,165,233,
726 20,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106, 706 248,5,255,252,247,198,237,15,133,244,4,15,182,70,252,253,252,247,208,141,
727 252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252, 707 20,194,139,122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,
728 255,15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233, 708 244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,
729 139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 709 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,
730 248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131, 710 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,
731 192,1,252,233,244,5,248,7,15,139,244,18,131,230,252,248,41,252,242,255,1, 711 65,252,252,129,252,248,239,184,3,0,0,0,15,133,244,31,252,255,165,233,255,
732 252,241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1, 712 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,
733 15,132,244,141,255,141,12,202,255,129,121,253,4,239,15,135,244,54,129,121, 713 36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,
734 253,12,239,15,135,244,54,255,139,105,20,255,129,252,253,239,15,135,244,54, 714 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,
735 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15, 715 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,
736 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248, 716 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,
737 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133, 717 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
738 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255, 718 5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,
739 15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253, 719 237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,
740 134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233, 720 248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,
741 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253, 721 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,
742 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245, 722 41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,
743 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139, 723 141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,
744 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224, 724 36,20,252,247,198,237,15,133,244,253,255,248,17,137,215,131,232,1,15,132,
745 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 725 244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,
746 252,255,36,171,255,254,0 726 199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,
727 57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,
728 252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,252,
729 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,
730 15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,
731 131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,
732 139,244,18,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,209,252,
733 237,129,229,239,102,131,172,253,43,233,1,15,132,244,141,255,141,12,202,255,
734 129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,255,139,
735 105,20,255,129,252,253,239,15,135,244,54,255,252,242,15,16,1,252,242,15,16,
736 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,
737 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,
738 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,
739 15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,
740 141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,
741 255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,
742 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,
743 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,
744 105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,
745 36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,
746 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,254,0
747}; 747};
748 748
749enum { 749enum {
@@ -1101,454 +1101,458 @@ static const char *const extnames[] = {
1101#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V) 1101#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V)
1102#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) 1102#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field))
1103#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) 1103#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field))
1104#define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto))
1104 1105
1105/* Generate subroutines used by opcodes and other parts of the VM. */ 1106/* Generate subroutines used by opcodes and other parts of the VM. */
1106/* The .code_sub section should be last to help static branch prediction. */ 1107/* The .code_sub section should be last to help static branch prediction. */
1107static void build_subroutines(BuildCtx *ctx, int cmov, int sse) 1108static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1108{ 1109{
1109 dasm_put(Dst, 0); 1110 dasm_put(Dst, 0);
1110 dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), sizeof(GCproto), Dt9(->k), Dt1(->maxstack), LJ_TNIL); 1111 dasm_put(Dst, 2, Dt7(->pc), PC2PROTO(framesize), PC2PROTO(k), Dt1(->maxstack), PC2PROTO(numparams));
1111#if LJ_HASJIT 1112#if LJ_HASJIT
1112#endif 1113#endif
1113 dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), sizeof(GCproto)); 1114 dasm_put(Dst, 47, LJ_TNIL, FRAME_VARG, -FRAME_VARG, Dt7(->pc), PC2PROTO(framesize), Dt1(->maxstack), PC2PROTO(numparams));
1114 dasm_put(Dst, 191, 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); 1115 dasm_put(Dst, 156, LJ_TNIL, PC2PROTO(k));
1115 dasm_put(Dst, 280, 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); 1116#if LJ_HASJIT
1116 dasm_put(Dst, 362, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base)); 1117#endif
1117 dasm_put(Dst, 453, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL, Dt1(->top)); 1118 dasm_put(Dst, 191, 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));
1118 dasm_put(Dst, 532, 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); 1119 dasm_put(Dst, 287, 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));
1119 dasm_put(Dst, 622, FRAME_P, LJ_TTRUE, LUA_MINSTACK, sizeof(GCproto), Dt1(->base), Dt1(->top), Dt1(->base)); 1120 dasm_put(Dst, 369, Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base));
1120 dasm_put(Dst, 725, 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); 1121 dasm_put(Dst, 474, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL);
1121 dasm_put(Dst, 845, 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)); 1122 dasm_put(Dst, 558, 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);
1122 dasm_put(Dst, 948, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pt), Dt9(->k), LJ_TSTR); 1123 dasm_put(Dst, 651, FRAME_P, LJ_TTRUE, LUA_MINSTACK, PC2PROTO(framesize), Dt1(->base), Dt1(->top), Dt1(->base));
1123 dasm_put(Dst, 1137, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1124 dasm_put(Dst, 741, 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);
1125 dasm_put(Dst, 861, 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));
1126 dasm_put(Dst, 964, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k), LJ_TSTR);
1127 dasm_put(Dst, 1153, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1124 if (sse) { 1128 if (sse) {
1125 dasm_put(Dst, 1173); 1129 dasm_put(Dst, 1189);
1126 } else { 1130 } else {
1127 dasm_put(Dst, 1186); 1131 dasm_put(Dst, 1202);
1128 } 1132 }
1129 dasm_put(Dst, 1199, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv)); 1133 dasm_put(Dst, 1215, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv));
1130 dasm_put(Dst, 1357, LJ_TTAB); 1134 dasm_put(Dst, 1373, LJ_TTAB);
1131 if (sse) { 1135 if (sse) {
1132 dasm_put(Dst, 1173); 1136 dasm_put(Dst, 1189);
1133 } else { 1137 } else {
1134 dasm_put(Dst, 1186); 1138 dasm_put(Dst, 1202);
1135 } 1139 }
1136 dasm_put(Dst, 1377, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base)); 1140 dasm_put(Dst, 1393, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base));
1137 dasm_put(Dst, 1584, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1141 dasm_put(Dst, 1600, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1138 dasm_put(Dst, 1695, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC); 1142 dasm_put(Dst, 1711, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC);
1139 dasm_put(Dst, 1824, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1); 1143 dasm_put(Dst, 1840, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1);
1140 dasm_put(Dst, 1984, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1144 dasm_put(Dst, 2000, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX);
1141 if (cmov) { 1145 if (cmov) {
1142 dasm_put(Dst, 2080); 1146 dasm_put(Dst, 2096);
1143 } else { 1147 } else {
1144 dasm_put(Dst, 2084); 1148 dasm_put(Dst, 2100);
1145 } 1149 }
1146 dasm_put(Dst, 2093, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1150 dasm_put(Dst, 2109, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask));
1147 dasm_put(Dst, 2181, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1151 dasm_put(Dst, 2197, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1148 dasm_put(Dst, 2236, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1152 dasm_put(Dst, 2252, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB);
1149 dasm_put(Dst, 2308, 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)); 1153 dasm_put(Dst, 2324, 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));
1150 dasm_put(Dst, 2373, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1154 dasm_put(Dst, 2389, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1151 if (sse) { 1155 if (sse) {
1152 dasm_put(Dst, 2464); 1156 dasm_put(Dst, 2480);
1153 } else { 1157 } else {
1154 dasm_put(Dst, 2474); 1158 dasm_put(Dst, 2490);
1155 } 1159 }
1156 dasm_put(Dst, 2481, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1160 dasm_put(Dst, 2497, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1157 dasm_put(Dst, 2543, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1161 dasm_put(Dst, 2559, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1158 dasm_put(Dst, 2633, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1162 dasm_put(Dst, 2649, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1159 dasm_put(Dst, 2739, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1163 dasm_put(Dst, 2755, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1160 if (sse) { 1164 if (sse) {
1161 dasm_put(Dst, 2794); 1165 dasm_put(Dst, 2810);
1162 } else { 1166 } else {
1163 dasm_put(Dst, 2833); 1167 dasm_put(Dst, 2849);
1164 } 1168 }
1165 dasm_put(Dst, 2851, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1169 dasm_put(Dst, 2867, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1166 dasm_put(Dst, 2937, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1170 dasm_put(Dst, 2953, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1167 if (sse) { 1171 if (sse) {
1168 dasm_put(Dst, 2967); 1172 dasm_put(Dst, 2983);
1169 } else { 1173 } else {
1170 dasm_put(Dst, 2977); 1174 dasm_put(Dst, 2993);
1171 } 1175 }
1172 dasm_put(Dst, 2984, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate)); 1176 dasm_put(Dst, 3000, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate));
1173 dasm_put(Dst, 3057, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD); 1177 dasm_put(Dst, 3073, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD);
1174 dasm_put(Dst, 3155, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1178 dasm_put(Dst, 3171, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1175 dasm_put(Dst, 3220, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top)); 1179 dasm_put(Dst, 3236, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top));
1176 dasm_put(Dst, 3324, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2); 1180 dasm_put(Dst, 3340, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2);
1177 dasm_put(Dst, 3443, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base)); 1181 dasm_put(Dst, 3459, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base));
1178 dasm_put(Dst, 3523, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 1182 dasm_put(Dst, 3539, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1179 dasm_put(Dst, 3631, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); 1183 dasm_put(Dst, 3647, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE);
1180 dasm_put(Dst, 3727, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1184 dasm_put(Dst, 3743, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1181 if (sse) { 1185 if (sse) {
1182 dasm_put(Dst, 3813, 1+1, LJ_TISNUM); 1186 dasm_put(Dst, 3829, 1+1, LJ_TISNUM);
1183 } else { 1187 } else {
1184 dasm_put(Dst, 3874, 1+1, LJ_TISNUM); 1188 dasm_put(Dst, 3890, 1+1, LJ_TISNUM);
1185 } 1189 }
1186 dasm_put(Dst, 3906, 1+1, FRAME_TYPE, LJ_TNIL); 1190 dasm_put(Dst, 3922, 1+1, FRAME_TYPE, LJ_TNIL);
1187 if (sse) { 1191 if (sse) {
1188 dasm_put(Dst, 3987, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1192 dasm_put(Dst, 4003, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1189 dasm_put(Dst, 4049, 1+1, LJ_TISNUM); 1193 dasm_put(Dst, 4065, 1+1, LJ_TISNUM);
1190 } else { 1194 } else {
1191 dasm_put(Dst, 4079, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1195 dasm_put(Dst, 4095, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1192 dasm_put(Dst, 4138, 1+1, LJ_TISNUM); 1196 dasm_put(Dst, 4154, 1+1, LJ_TISNUM);
1193 } 1197 }
1194 dasm_put(Dst, 4165, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1198 dasm_put(Dst, 4181, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1195 dasm_put(Dst, 4234, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1199 dasm_put(Dst, 4250, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1196 dasm_put(Dst, 4291, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1200 dasm_put(Dst, 4307, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1197 dasm_put(Dst, 4354, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1201 dasm_put(Dst, 4370, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1198 dasm_put(Dst, 4444); 1202 dasm_put(Dst, 4460);
1199 if (sse) { 1203 if (sse) {
1200 dasm_put(Dst, 4456, 1+1, LJ_TISNUM); 1204 dasm_put(Dst, 4472, 1+1, LJ_TISNUM);
1201 } else { 1205 } else {
1202 dasm_put(Dst, 4487, 1+1, LJ_TISNUM); 1206 dasm_put(Dst, 4503, 1+1, LJ_TISNUM);
1203 } 1207 }
1204 dasm_put(Dst, 4512); 1208 dasm_put(Dst, 4528);
1205 if (sse) { 1209 if (sse) {
1206 dasm_put(Dst, 4534, 1+1, LJ_TISNUM); 1210 dasm_put(Dst, 4550, 1+1, LJ_TISNUM);
1207 } else { 1211 } else {
1208 dasm_put(Dst, 4565, 1+1, LJ_TISNUM); 1212 dasm_put(Dst, 4581, 1+1, LJ_TISNUM);
1209 } 1213 }
1210 dasm_put(Dst, 4590); 1214 dasm_put(Dst, 4606);
1211 if (sse) { 1215 if (sse) {
1212 dasm_put(Dst, 4612, 1+1, LJ_TISNUM); 1216 dasm_put(Dst, 4628, 1+1, LJ_TISNUM);
1213 } else { 1217 } else {
1214 dasm_put(Dst, 4643, 1+1, LJ_TISNUM); 1218 dasm_put(Dst, 4659, 1+1, LJ_TISNUM);
1215 } 1219 }
1216 dasm_put(Dst, 4668); 1220 dasm_put(Dst, 4684);
1217 if (sse) { 1221 if (sse) {
1218 dasm_put(Dst, 4692, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1222 dasm_put(Dst, 4708, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1219 } else { 1223 } else {
1220 dasm_put(Dst, 4727, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1224 dasm_put(Dst, 4743, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1221 } 1225 }
1222 dasm_put(Dst, 4756, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1226 dasm_put(Dst, 4772, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1223 dasm_put(Dst, 4821, 1+1, LJ_TISNUM); 1227 dasm_put(Dst, 4837, 1+1, LJ_TISNUM);
1224 if (sse) { 1228 if (sse) {
1225 dasm_put(Dst, 4916); 1229 dasm_put(Dst, 4932);
1226 } else { 1230 } else {
1227 dasm_put(Dst, 4922); 1231 dasm_put(Dst, 4938);
1228 } 1232 }
1229 dasm_put(Dst, 4931); 1233 dasm_put(Dst, 4947);
1230 if (sse) { 1234 if (sse) {
1231 dasm_put(Dst, 4956); 1235 dasm_put(Dst, 4972);
1232 } else { 1236 } else {
1233 dasm_put(Dst, 4962); 1237 dasm_put(Dst, 4978);
1234 } 1238 }
1235 dasm_put(Dst, 4965, 1+2); 1239 dasm_put(Dst, 4981, 1+2);
1236 if (sse) { 1240 if (sse) {
1237 dasm_put(Dst, 4974); 1241 dasm_put(Dst, 4990);
1238 } else { 1242 } else {
1239 dasm_put(Dst, 4982); 1243 dasm_put(Dst, 4998);
1240 } 1244 }
1241 dasm_put(Dst, 1581); 1245 dasm_put(Dst, 471);
1242 if (sse) { 1246 if (sse) {
1243 dasm_put(Dst, 4990); 1247 dasm_put(Dst, 5006);
1244 } else { 1248 } else {
1245 dasm_put(Dst, 5022); 1249 dasm_put(Dst, 5038);
1246 } 1250 }
1247 dasm_put(Dst, 5041); 1251 dasm_put(Dst, 5057);
1248 if (sse) { 1252 if (sse) {
1249 dasm_put(Dst, 5057, 1+1, LJ_TISNUM); 1253 dasm_put(Dst, 5073, 1+1, LJ_TISNUM);
1250 } else { 1254 } else {
1251 dasm_put(Dst, 5082, 1+1, LJ_TISNUM); 1255 dasm_put(Dst, 5098, 1+1, LJ_TISNUM);
1252 } 1256 }
1253 dasm_put(Dst, 5104); 1257 dasm_put(Dst, 5120);
1254 if (sse) { 1258 if (sse) {
1255 dasm_put(Dst, 5122); 1259 dasm_put(Dst, 5138);
1256 } else { 1260 } else {
1257 dasm_put(Dst, 5148); 1261 dasm_put(Dst, 5164);
1258 } 1262 }
1259 dasm_put(Dst, 5165, 1+2); 1263 dasm_put(Dst, 5181, 1+2);
1260 if (sse) { 1264 if (sse) {
1261 dasm_put(Dst, 5205); 1265 dasm_put(Dst, 5221);
1262 } else { 1266 } else {
1263 dasm_put(Dst, 5213); 1267 dasm_put(Dst, 5229);
1264 } 1268 }
1265 dasm_put(Dst, 5223, 2+1, LJ_TISNUM, LJ_TISNUM); 1269 dasm_put(Dst, 5239, 2+1, LJ_TISNUM, LJ_TISNUM);
1266 if (sse) { 1270 if (sse) {
1267 dasm_put(Dst, 5275, 1+1, LJ_TISNUM, LJ_TISNUM); 1271 dasm_put(Dst, 5291, 1+1, LJ_TISNUM, LJ_TISNUM);
1268 } else { 1272 } else {
1269 dasm_put(Dst, 5322, 2+1, LJ_TISNUM, LJ_TISNUM); 1273 dasm_put(Dst, 5338, 2+1, LJ_TISNUM, LJ_TISNUM);
1270 } 1274 }
1271 if (sse) { 1275 if (sse) {
1272 dasm_put(Dst, 5363, 1+1, LJ_TISNUM, LJ_TISNUM); 1276 dasm_put(Dst, 5379, 1+1, LJ_TISNUM, LJ_TISNUM);
1273 } else { 1277 } else {
1274 dasm_put(Dst, 5434, 1+1, LJ_TISNUM, LJ_TISNUM); 1278 dasm_put(Dst, 5450, 1+1, LJ_TISNUM, LJ_TISNUM);
1275 if (cmov) { 1279 if (cmov) {
1276 dasm_put(Dst, 5487); 1280 dasm_put(Dst, 5503);
1277 } else { 1281 } else {
1278 dasm_put(Dst, 5495); 1282 dasm_put(Dst, 5511);
1279 } 1283 }
1280 dasm_put(Dst, 5426); 1284 dasm_put(Dst, 5442);
1281 } 1285 }
1282 if (sse) { 1286 if (sse) {
1283 dasm_put(Dst, 5516, 1+1, LJ_TISNUM, LJ_TISNUM); 1287 dasm_put(Dst, 5532, 1+1, LJ_TISNUM, LJ_TISNUM);
1284 } else { 1288 } else {
1285 dasm_put(Dst, 5587, 1+1, LJ_TISNUM, LJ_TISNUM); 1289 dasm_put(Dst, 5603, 1+1, LJ_TISNUM, LJ_TISNUM);
1286 if (cmov) { 1290 if (cmov) {
1287 dasm_put(Dst, 5640); 1291 dasm_put(Dst, 5656);
1288 } else { 1292 } else {
1289 dasm_put(Dst, 5648); 1293 dasm_put(Dst, 5664);
1290 } 1294 }
1291 dasm_put(Dst, 5426); 1295 dasm_put(Dst, 5442);
1292 } 1296 }
1293 if (!sse) { 1297 if (!sse) {
1294 dasm_put(Dst, 5669); 1298 dasm_put(Dst, 5685);
1295 } 1299 }
1296 dasm_put(Dst, 5678, 1+1, LJ_TSTR); 1300 dasm_put(Dst, 5694, 1+1, LJ_TSTR);
1297 if (sse) { 1301 if (sse) {
1298 dasm_put(Dst, 5700, Dt5(->len)); 1302 dasm_put(Dst, 5716, Dt5(->len));
1299 } else { 1303 } else {
1300 dasm_put(Dst, 5711, Dt5(->len)); 1304 dasm_put(Dst, 5727, Dt5(->len));
1301 } 1305 }
1302 dasm_put(Dst, 5719, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1306 dasm_put(Dst, 5735, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1303 if (sse) { 1307 if (sse) {
1304 dasm_put(Dst, 5753); 1308 dasm_put(Dst, 5769);
1305 } else { 1309 } else {
1306 dasm_put(Dst, 5763); 1310 dasm_put(Dst, 5779);
1307 } 1311 }
1308 dasm_put(Dst, 5776, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1312 dasm_put(Dst, 5792, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1309 if (sse) { 1313 if (sse) {
1310 dasm_put(Dst, 5811); 1314 dasm_put(Dst, 5827);
1311 } else { 1315 } else {
1312 dasm_put(Dst, 5831); 1316 dasm_put(Dst, 5847);
1313 } 1317 }
1314 dasm_put(Dst, 5851, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1318 dasm_put(Dst, 5867, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1315 dasm_put(Dst, 2459); 1319 dasm_put(Dst, 2475);
1316 if (sse) { 1320 if (sse) {
1317 dasm_put(Dst, 5962); 1321 dasm_put(Dst, 5978);
1318 } else { 1322 } else {
1319 dasm_put(Dst, 5973); 1323 dasm_put(Dst, 5989);
1320 } 1324 }
1321 dasm_put(Dst, 5981, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1325 dasm_put(Dst, 5997, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1322 if (sse) { 1326 if (sse) {
1323 dasm_put(Dst, 6011); 1327 dasm_put(Dst, 6027);
1324 } else { 1328 } else {
1325 dasm_put(Dst, 6018); 1329 dasm_put(Dst, 6034);
1326 } 1330 }
1327 dasm_put(Dst, 6030, sizeof(GCstr)-1); 1331 dasm_put(Dst, 6046, sizeof(GCstr)-1);
1328 dasm_put(Dst, 6105, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1332 dasm_put(Dst, 6121, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1329 dasm_put(Dst, 6164, LJ_TSTR, LJ_TISNUM); 1333 dasm_put(Dst, 6180, LJ_TSTR, LJ_TISNUM);
1330 if (sse) { 1334 if (sse) {
1331 dasm_put(Dst, 6189); 1335 dasm_put(Dst, 6205);
1332 } else { 1336 } else {
1333 dasm_put(Dst, 6196); 1337 dasm_put(Dst, 6212);
1334 } 1338 }
1335 dasm_put(Dst, 6208, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1339 dasm_put(Dst, 6224, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1336 dasm_put(Dst, 6273, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1340 dasm_put(Dst, 6289, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1337 dasm_put(Dst, 6340, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1341 dasm_put(Dst, 6356, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1338 dasm_put(Dst, 6415, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1342 dasm_put(Dst, 6431, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1339 dasm_put(Dst, 6500, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1343 dasm_put(Dst, 6516, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1340 dasm_put(Dst, 6574, 1+1, LJ_TTAB); 1344 dasm_put(Dst, 6590, 1+1, LJ_TTAB);
1341 if (sse) { 1345 if (sse) {
1342 dasm_put(Dst, 6650); 1346 dasm_put(Dst, 6666);
1343 } else { 1347 } else {
1344 dasm_put(Dst, 6660); 1348 dasm_put(Dst, 6676);
1345 } 1349 }
1346 if (sse) { 1350 if (sse) {
1347 dasm_put(Dst, 6671, 1+1, LJ_TISNUM); 1351 dasm_put(Dst, 6687, 1+1, LJ_TISNUM);
1348 } else { 1352 } else {
1349 dasm_put(Dst, 6728, 1+1, LJ_TISNUM); 1353 dasm_put(Dst, 6744, 1+1, LJ_TISNUM);
1350 } 1354 }
1351 if (sse) { 1355 if (sse) {
1352 dasm_put(Dst, 6772, 1+1, LJ_TISNUM); 1356 dasm_put(Dst, 6788, 1+1, LJ_TISNUM);
1353 } else { 1357 } else {
1354 dasm_put(Dst, 6820, 1+1, LJ_TISNUM); 1358 dasm_put(Dst, 6836, 1+1, LJ_TISNUM);
1355 } 1359 }
1356 dasm_put(Dst, 6860); 1360 dasm_put(Dst, 6876);
1357 if (sse) { 1361 if (sse) {
1358 dasm_put(Dst, 6870); 1362 dasm_put(Dst, 6886);
1359 } 1363 }
1360 dasm_put(Dst, 6875, LJ_TISNUM); 1364 dasm_put(Dst, 6891, LJ_TISNUM);
1361 if (sse) { 1365 if (sse) {
1362 dasm_put(Dst, 6893); 1366 dasm_put(Dst, 6909);
1363 } else { 1367 } else {
1364 dasm_put(Dst, 6910); 1368 dasm_put(Dst, 6926);
1365 } 1369 }
1366 dasm_put(Dst, 6923); 1370 dasm_put(Dst, 6939);
1367 if (sse) { 1371 if (sse) {
1368 dasm_put(Dst, 6931, 1+1, LJ_TISNUM); 1372 dasm_put(Dst, 6947, 1+1, LJ_TISNUM);
1369 } else { 1373 } else {
1370 dasm_put(Dst, 6979, 1+1, LJ_TISNUM); 1374 dasm_put(Dst, 6995, 1+1, LJ_TISNUM);
1371 } 1375 }
1372 dasm_put(Dst, 6860); 1376 dasm_put(Dst, 6876);
1373 if (sse) { 1377 if (sse) {
1374 dasm_put(Dst, 6870); 1378 dasm_put(Dst, 6886);
1375 } 1379 }
1376 dasm_put(Dst, 6875, LJ_TISNUM); 1380 dasm_put(Dst, 6891, LJ_TISNUM);
1377 if (sse) { 1381 if (sse) {
1378 dasm_put(Dst, 7019); 1382 dasm_put(Dst, 7035);
1379 } else { 1383 } else {
1380 dasm_put(Dst, 7036); 1384 dasm_put(Dst, 7052);
1381 } 1385 }
1382 dasm_put(Dst, 6923); 1386 dasm_put(Dst, 6939);
1383 if (sse) { 1387 if (sse) {
1384 dasm_put(Dst, 7049, 1+1, LJ_TISNUM); 1388 dasm_put(Dst, 7065, 1+1, LJ_TISNUM);
1385 } else { 1389 } else {
1386 dasm_put(Dst, 7097, 1+1, LJ_TISNUM); 1390 dasm_put(Dst, 7113, 1+1, LJ_TISNUM);
1387 } 1391 }
1388 dasm_put(Dst, 6860); 1392 dasm_put(Dst, 6876);
1389 if (sse) { 1393 if (sse) {
1390 dasm_put(Dst, 6870); 1394 dasm_put(Dst, 6886);
1391 } 1395 }
1392 dasm_put(Dst, 6875, LJ_TISNUM); 1396 dasm_put(Dst, 6891, LJ_TISNUM);
1393 if (sse) { 1397 if (sse) {
1394 dasm_put(Dst, 7137); 1398 dasm_put(Dst, 7153);
1395 } else { 1399 } else {
1396 dasm_put(Dst, 7154); 1400 dasm_put(Dst, 7170);
1397 } 1401 }
1398 dasm_put(Dst, 6923); 1402 dasm_put(Dst, 6939);
1399 if (sse) { 1403 if (sse) {
1400 dasm_put(Dst, 7167, 1+1, LJ_TISNUM); 1404 dasm_put(Dst, 7183, 1+1, LJ_TISNUM);
1401 } else { 1405 } else {
1402 dasm_put(Dst, 7215, 1+1, LJ_TISNUM); 1406 dasm_put(Dst, 7231, 1+1, LJ_TISNUM);
1403 } 1407 }
1404 dasm_put(Dst, 7255); 1408 dasm_put(Dst, 7271);
1405 if (sse) { 1409 if (sse) {
1406 dasm_put(Dst, 7262, 1+1, LJ_TISNUM); 1410 dasm_put(Dst, 7278, 1+1, LJ_TISNUM);
1407 } else { 1411 } else {
1408 dasm_put(Dst, 7310, 1+1, LJ_TISNUM); 1412 dasm_put(Dst, 7326, 1+1, LJ_TISNUM);
1409 } 1413 }
1410 dasm_put(Dst, 7350); 1414 dasm_put(Dst, 7366);
1411 if (sse) { 1415 if (sse) {
1412 dasm_put(Dst, 7354); 1416 dasm_put(Dst, 7370);
1413 } else { 1417 } else {
1414 dasm_put(Dst, 7381); 1418 dasm_put(Dst, 7397);
1415 } 1419 }
1416 dasm_put(Dst, 7396); 1420 dasm_put(Dst, 7412);
1417 if (sse) { 1421 if (sse) {
1418 dasm_put(Dst, 6645); 1422 dasm_put(Dst, 6661);
1419 } 1423 }
1420 dasm_put(Dst, 7399); 1424 dasm_put(Dst, 7415);
1421 if (sse) { 1425 if (sse) {
1422 dasm_put(Dst, 7408, 1+1, LJ_TISNUM, LJ_TISNUM); 1426 dasm_put(Dst, 7424, 1+1, LJ_TISNUM, LJ_TISNUM);
1423 } else { 1427 } else {
1424 dasm_put(Dst, 7482, 2+1, LJ_TISNUM, LJ_TISNUM); 1428 dasm_put(Dst, 7498, 2+1, LJ_TISNUM, LJ_TISNUM);
1425 } 1429 }
1426 dasm_put(Dst, 7548); 1430 dasm_put(Dst, 7564);
1427 if (sse) { 1431 if (sse) {
1428 dasm_put(Dst, 7557, 1+1, LJ_TISNUM, LJ_TISNUM); 1432 dasm_put(Dst, 7573, 1+1, LJ_TISNUM, LJ_TISNUM);
1429 } else { 1433 } else {
1430 dasm_put(Dst, 7631, 2+1, LJ_TISNUM, LJ_TISNUM); 1434 dasm_put(Dst, 7647, 2+1, LJ_TISNUM, LJ_TISNUM);
1431 } 1435 }
1432 dasm_put(Dst, 7697); 1436 dasm_put(Dst, 7713);
1433 if (sse) { 1437 if (sse) {
1434 dasm_put(Dst, 7707, 1+1, LJ_TISNUM, LJ_TISNUM); 1438 dasm_put(Dst, 7723, 1+1, LJ_TISNUM, LJ_TISNUM);
1435 } else { 1439 } else {
1436 dasm_put(Dst, 7781, 2+1, LJ_TISNUM, LJ_TISNUM); 1440 dasm_put(Dst, 7797, 2+1, LJ_TISNUM, LJ_TISNUM);
1437 } 1441 }
1438 dasm_put(Dst, 7847); 1442 dasm_put(Dst, 7863);
1439 if (sse) { 1443 if (sse) {
1440 dasm_put(Dst, 7857, 1+1, LJ_TISNUM, LJ_TISNUM); 1444 dasm_put(Dst, 7873, 1+1, LJ_TISNUM, LJ_TISNUM);
1441 } else { 1445 } else {
1442 dasm_put(Dst, 7931, 2+1, LJ_TISNUM, LJ_TISNUM); 1446 dasm_put(Dst, 7947, 2+1, LJ_TISNUM, LJ_TISNUM);
1443 } 1447 }
1444 dasm_put(Dst, 7997); 1448 dasm_put(Dst, 8013);
1445 if (sse) { 1449 if (sse) {
1446 dasm_put(Dst, 8006, 1+1, LJ_TISNUM, LJ_TISNUM); 1450 dasm_put(Dst, 8022, 1+1, LJ_TISNUM, LJ_TISNUM);
1447 } else { 1451 } else {
1448 dasm_put(Dst, 8080, 2+1, LJ_TISNUM, LJ_TISNUM); 1452 dasm_put(Dst, 8096, 2+1, LJ_TISNUM, LJ_TISNUM);
1449 } 1453 }
1450 dasm_put(Dst, 8146, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1454 dasm_put(Dst, 8162, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1451 dasm_put(Dst, 8230, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top)); 1455 dasm_put(Dst, 8246, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top));
1452 dasm_put(Dst, 8349, Dt1(->base), Dt1(->top)); 1456 dasm_put(Dst, 8365, Dt1(->base), Dt1(->top));
1453#if LJ_HASJIT 1457#if LJ_HASJIT
1454 dasm_put(Dst, 8390, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1458 dasm_put(Dst, 8406, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1455#endif 1459#endif
1456 dasm_put(Dst, 8421, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); 1460 dasm_put(Dst, 8437, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base));
1457 dasm_put(Dst, 8487, GG_DISP_STATIC*4); 1461 dasm_put(Dst, 8503, GG_DISP_STATIC*4);
1458#if LJ_HASJIT 1462#if LJ_HASJIT
1459 dasm_put(Dst, 8522, Dt1(->base), GG_DISP2J, DISPATCH_J(L)); 1463 dasm_put(Dst, 8538, Dt1(->base), GG_DISP2J, DISPATCH_J(L));
1460#endif 1464#endif
1461 dasm_put(Dst, 8551); 1465 dasm_put(Dst, 8567);
1462#if LJ_HASJIT 1466#if LJ_HASJIT
1463 dasm_put(Dst, 8554, Dt1(->base), GG_DISP2J, DISPATCH_J(L), Dt1(->base)); 1467 dasm_put(Dst, 8570, Dt1(->base), GG_DISP2J, DISPATCH_J(L), Dt1(->base));
1464#endif 1468#endif
1465 dasm_put(Dst, 8600); 1469 dasm_put(Dst, 8616);
1466#if LJ_HASJIT 1470#if LJ_HASJIT
1467 dasm_put(Dst, 8603, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); 1471 dasm_put(Dst, 8619, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base));
1468#endif 1472#endif
1469 dasm_put(Dst, 8746); 1473 dasm_put(Dst, 8762);
1470#if LJ_HASJIT 1474#if LJ_HASJIT
1471 dasm_put(Dst, 8749, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1475 dasm_put(Dst, 8765, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1472#endif 1476#endif
1473 dasm_put(Dst, 8789); 1477 dasm_put(Dst, 8805);
1474 if (!sse) { 1478 if (!sse) {
1475 dasm_put(Dst, 8792); 1479 dasm_put(Dst, 8808);
1476 } 1480 }
1477 dasm_put(Dst, 8837); 1481 dasm_put(Dst, 8853);
1478 if (!sse) { 1482 if (!sse) {
1479 dasm_put(Dst, 8939); 1483 dasm_put(Dst, 8955);
1480 } 1484 }
1481 dasm_put(Dst, 8984); 1485 dasm_put(Dst, 9000);
1482 if (!sse) { 1486 if (!sse) {
1483 dasm_put(Dst, 9086); 1487 dasm_put(Dst, 9102);
1484 } 1488 }
1485 dasm_put(Dst, 9125); 1489 dasm_put(Dst, 9141);
1486 if (sse) { 1490 if (sse) {
1487 dasm_put(Dst, 9230); 1491 dasm_put(Dst, 9246);
1488 } else { 1492 } else {
1489 dasm_put(Dst, 9360); 1493 dasm_put(Dst, 9376);
1490 } 1494 }
1491 dasm_put(Dst, 9407); 1495 dasm_put(Dst, 9423);
1492 if (!sse) { 1496 if (!sse) {
1493 dasm_put(Dst, 9481); 1497 dasm_put(Dst, 9497);
1494 if (cmov) { 1498 if (cmov) {
1495 dasm_put(Dst, 9492); 1499 dasm_put(Dst, 9508);
1496 } else { 1500 } else {
1497 dasm_put(Dst, 9496); 1501 dasm_put(Dst, 9512);
1498 } 1502 }
1499 dasm_put(Dst, 9503); 1503 dasm_put(Dst, 9519);
1500 dasm_put(Dst, 9577); 1504 dasm_put(Dst, 9593);
1501 dasm_put(Dst, 9677); 1505 dasm_put(Dst, 9693);
1502 if (cmov) { 1506 if (cmov) {
1503 dasm_put(Dst, 9680); 1507 dasm_put(Dst, 9696);
1504 } else { 1508 } else {
1505 dasm_put(Dst, 9684); 1509 dasm_put(Dst, 9700);
1506 } 1510 }
1507 dasm_put(Dst, 9691); 1511 dasm_put(Dst, 9707);
1508 if (cmov) { 1512 if (cmov) {
1509 dasm_put(Dst, 9492); 1513 dasm_put(Dst, 9508);
1510 } else { 1514 } else {
1511 dasm_put(Dst, 9496); 1515 dasm_put(Dst, 9512);
1512 } 1516 }
1513 dasm_put(Dst, 9709); 1517 dasm_put(Dst, 9725);
1514 } else { 1518 } else {
1515 dasm_put(Dst, 9788); 1519 dasm_put(Dst, 9804);
1516 } 1520 }
1517 dasm_put(Dst, 9791); 1521 dasm_put(Dst, 9807);
1518 dasm_put(Dst, 9876); 1522 dasm_put(Dst, 9892);
1519 dasm_put(Dst, 10007); 1523 dasm_put(Dst, 10023);
1520 dasm_put(Dst, 10206); 1524 dasm_put(Dst, 10222);
1521 if (sse) { 1525 if (sse) {
1522 dasm_put(Dst, 10229); 1526 dasm_put(Dst, 10245);
1523 dasm_put(Dst, 10286); 1527 dasm_put(Dst, 10302);
1524 dasm_put(Dst, 10377); 1528 dasm_put(Dst, 10393);
1525 } else { 1529 } else {
1526 dasm_put(Dst, 10419); 1530 dasm_put(Dst, 10435);
1527 dasm_put(Dst, 10511); 1531 dasm_put(Dst, 10527);
1528 } 1532 }
1529 dasm_put(Dst, 10557); 1533 dasm_put(Dst, 10573);
1530 if (sse) { 1534 if (sse) {
1531 dasm_put(Dst, 10563); 1535 dasm_put(Dst, 10579);
1532 dasm_put(Dst, 10668); 1536 dasm_put(Dst, 10684);
1533 dasm_put(Dst, 10751); 1537 dasm_put(Dst, 10767);
1534 } else { 1538 } else {
1535 dasm_put(Dst, 10823); 1539 dasm_put(Dst, 10839);
1536 dasm_put(Dst, 10906); 1540 dasm_put(Dst, 10922);
1537 if (cmov) { 1541 if (cmov) {
1538 dasm_put(Dst, 10961); 1542 dasm_put(Dst, 10977);
1539 } else { 1543 } else {
1540 dasm_put(Dst, 10980); 1544 dasm_put(Dst, 10996);
1541 } 1545 }
1542 dasm_put(Dst, 10819); 1546 dasm_put(Dst, 10835);
1543 } 1547 }
1544 dasm_put(Dst, 11021); 1548 dasm_put(Dst, 11037);
1545} 1549}
1546 1550
1547/* Generate the code for a single instruction. */ 1551/* Generate the code for a single instruction. */
1548static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1552static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1549{ 1553{
1550 int vk = 0; 1554 int vk = 0;
1551 dasm_put(Dst, 11075, defop); 1555 dasm_put(Dst, 154, defop);
1552 1556
1553 switch (op) { 1557 switch (op) {
1554 1558
@@ -1557,619 +1561,619 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1557 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1561 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1558 1562
1559 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1563 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1560 dasm_put(Dst, 11077, LJ_TISNUM, LJ_TISNUM); 1564 dasm_put(Dst, 11091, LJ_TISNUM, LJ_TISNUM);
1561 if (sse) { 1565 if (sse) {
1562 dasm_put(Dst, 11098); 1566 dasm_put(Dst, 11112);
1563 } else { 1567 } else {
1564 dasm_put(Dst, 11113); 1568 dasm_put(Dst, 11127);
1565 if (cmov) { 1569 if (cmov) {
1566 dasm_put(Dst, 11123); 1570 dasm_put(Dst, 11137);
1567 } else { 1571 } else {
1568 dasm_put(Dst, 11129); 1572 dasm_put(Dst, 11143);
1569 } 1573 }
1570 } 1574 }
1571 switch (op) { 1575 switch (op) {
1572 case BC_ISLT: 1576 case BC_ISLT:
1573 dasm_put(Dst, 11136); 1577 dasm_put(Dst, 11150);
1574 break; 1578 break;
1575 case BC_ISGE: 1579 case BC_ISGE:
1576 dasm_put(Dst, 10372); 1580 dasm_put(Dst, 10388);
1577 break; 1581 break;
1578 case BC_ISLE: 1582 case BC_ISLE:
1579 dasm_put(Dst, 6569); 1583 dasm_put(Dst, 6585);
1580 break; 1584 break;
1581 case BC_ISGT: 1585 case BC_ISGT:
1582 dasm_put(Dst, 11141); 1586 dasm_put(Dst, 11155);
1583 break; 1587 break;
1584 default: break; /* Shut up GCC. */ 1588 default: break; /* Shut up GCC. */
1585 } 1589 }
1586 dasm_put(Dst, 11146, -BCBIAS_J*4); 1590 dasm_put(Dst, 11160, -BCBIAS_J*4);
1587 break; 1591 break;
1588 1592
1589 case BC_ISEQV: case BC_ISNEV: 1593 case BC_ISEQV: case BC_ISNEV:
1590 vk = op == BC_ISEQV; 1594 vk = op == BC_ISEQV;
1591 dasm_put(Dst, 11179, LJ_TISNUM, LJ_TISNUM); 1595 dasm_put(Dst, 11193, LJ_TISNUM, LJ_TISNUM);
1592 if (sse) { 1596 if (sse) {
1593 dasm_put(Dst, 11205); 1597 dasm_put(Dst, 11219);
1594 } else { 1598 } else {
1595 dasm_put(Dst, 11217); 1599 dasm_put(Dst, 11231);
1596 if (cmov) { 1600 if (cmov) {
1597 dasm_put(Dst, 11123); 1601 dasm_put(Dst, 11137);
1598 } else { 1602 } else {
1599 dasm_put(Dst, 11129); 1603 dasm_put(Dst, 11143);
1600 } 1604 }
1601 } 1605 }
1602 iseqne_fp: 1606 iseqne_fp:
1603 if (vk) { 1607 if (vk) {
1604 dasm_put(Dst, 11224); 1608 dasm_put(Dst, 11238);
1605 } else { 1609 } else {
1606 dasm_put(Dst, 11233); 1610 dasm_put(Dst, 11247);
1607 } 1611 }
1608 iseqne_end: 1612 iseqne_end:
1609 if (vk) { 1613 if (vk) {
1610 dasm_put(Dst, 11242, -BCBIAS_J*4); 1614 dasm_put(Dst, 11256, -BCBIAS_J*4);
1611 } else { 1615 } else {
1612 dasm_put(Dst, 11257, -BCBIAS_J*4); 1616 dasm_put(Dst, 11271, -BCBIAS_J*4);
1613 } 1617 }
1614 dasm_put(Dst, 8581); 1618 dasm_put(Dst, 8597);
1615 if (op == BC_ISEQV || op == BC_ISNEV) { 1619 if (op == BC_ISEQV || op == BC_ISNEV) {
1616 dasm_put(Dst, 11272, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1620 dasm_put(Dst, 11286, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1617 if (vk) { 1621 if (vk) {
1618 dasm_put(Dst, 11330); 1622 dasm_put(Dst, 11344);
1619 } else { 1623 } else {
1620 dasm_put(Dst, 11334); 1624 dasm_put(Dst, 11348);
1621 } 1625 }
1622 dasm_put(Dst, 11340); 1626 dasm_put(Dst, 11354);
1623 } 1627 }
1624 break; 1628 break;
1625 case BC_ISEQS: case BC_ISNES: 1629 case BC_ISEQS: case BC_ISNES:
1626 vk = op == BC_ISEQS; 1630 vk = op == BC_ISEQS;
1627 dasm_put(Dst, 11345, LJ_TSTR); 1631 dasm_put(Dst, 11359, LJ_TSTR);
1628 iseqne_test: 1632 iseqne_test:
1629 if (vk) { 1633 if (vk) {
1630 dasm_put(Dst, 11228); 1634 dasm_put(Dst, 11242);
1631 } else { 1635 } else {
1632 dasm_put(Dst, 10506); 1636 dasm_put(Dst, 10522);
1633 } 1637 }
1634 goto iseqne_end; 1638 goto iseqne_end;
1635 case BC_ISEQN: case BC_ISNEN: 1639 case BC_ISEQN: case BC_ISNEN:
1636 vk = op == BC_ISEQN; 1640 vk = op == BC_ISEQN;
1637 dasm_put(Dst, 11368, LJ_TISNUM); 1641 dasm_put(Dst, 11382, LJ_TISNUM);
1638 if (sse) { 1642 if (sse) {
1639 dasm_put(Dst, 11382); 1643 dasm_put(Dst, 11396);
1640 } else { 1644 } else {
1641 dasm_put(Dst, 11394); 1645 dasm_put(Dst, 11408);
1642 if (cmov) { 1646 if (cmov) {
1643 dasm_put(Dst, 11123); 1647 dasm_put(Dst, 11137);
1644 } else { 1648 } else {
1645 dasm_put(Dst, 11129); 1649 dasm_put(Dst, 11143);
1646 } 1650 }
1647 } 1651 }
1648 goto iseqne_fp; 1652 goto iseqne_fp;
1649 case BC_ISEQP: case BC_ISNEP: 1653 case BC_ISEQP: case BC_ISNEP:
1650 vk = op == BC_ISEQP; 1654 vk = op == BC_ISEQP;
1651 dasm_put(Dst, 11401); 1655 dasm_put(Dst, 11415);
1652 goto iseqne_test; 1656 goto iseqne_test;
1653 1657
1654 /* -- Unary test and copy ops ------------------------------------------- */ 1658 /* -- Unary test and copy ops ------------------------------------------- */
1655 1659
1656 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1660 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1657 dasm_put(Dst, 11412, LJ_TISTRUECOND); 1661 dasm_put(Dst, 11426, LJ_TISTRUECOND);
1658 if (op == BC_IST || op == BC_ISTC) { 1662 if (op == BC_IST || op == BC_ISTC) {
1659 dasm_put(Dst, 11424); 1663 dasm_put(Dst, 11438);
1660 } else { 1664 } else {
1661 dasm_put(Dst, 11429); 1665 dasm_put(Dst, 11443);
1662 } 1666 }
1663 if (op == BC_ISTC || op == BC_ISFC) { 1667 if (op == BC_ISTC || op == BC_ISFC) {
1664 dasm_put(Dst, 11434); 1668 dasm_put(Dst, 11448);
1665 } 1669 }
1666 dasm_put(Dst, 11445, -BCBIAS_J*4); 1670 dasm_put(Dst, 11459, -BCBIAS_J*4);
1667 break; 1671 break;
1668 1672
1669 /* -- Unary ops --------------------------------------------------------- */ 1673 /* -- Unary ops --------------------------------------------------------- */
1670 1674
1671 case BC_MOV: 1675 case BC_MOV:
1672 dasm_put(Dst, 11476); 1676 dasm_put(Dst, 11490);
1673 break; 1677 break;
1674 case BC_NOT: 1678 case BC_NOT:
1675 dasm_put(Dst, 11509, LJ_TISTRUECOND, LJ_TTRUE); 1679 dasm_put(Dst, 11523, LJ_TISTRUECOND, LJ_TTRUE);
1676 break; 1680 break;
1677 case BC_UNM: 1681 case BC_UNM:
1678 dasm_put(Dst, 11544, LJ_TISNUM); 1682 dasm_put(Dst, 11558, LJ_TISNUM);
1679 if (sse) { 1683 if (sse) {
1680 dasm_put(Dst, 11555); 1684 dasm_put(Dst, 11569);
1681 } else { 1685 } else {
1682 dasm_put(Dst, 11585); 1686 dasm_put(Dst, 11599);
1683 } 1687 }
1684 dasm_put(Dst, 8581); 1688 dasm_put(Dst, 8597);
1685 break; 1689 break;
1686 case BC_LEN: 1690 case BC_LEN:
1687 dasm_put(Dst, 11594, LJ_TSTR); 1691 dasm_put(Dst, 11608, LJ_TSTR);
1688 if (sse) { 1692 if (sse) {
1689 dasm_put(Dst, 11608, Dt5(->len)); 1693 dasm_put(Dst, 11622, Dt5(->len));
1690 } else { 1694 } else {
1691 dasm_put(Dst, 11626, Dt5(->len)); 1695 dasm_put(Dst, 11640, Dt5(->len));
1692 } 1696 }
1693 dasm_put(Dst, 11635, LJ_TTAB); 1697 dasm_put(Dst, 11649, LJ_TTAB);
1694 if (sse) { 1698 if (sse) {
1695 dasm_put(Dst, 11675); 1699 dasm_put(Dst, 11689);
1696 } else { 1700 } else {
1697 dasm_put(Dst, 11684); 1701 dasm_put(Dst, 11698);
1698 } 1702 }
1699 dasm_put(Dst, 11694); 1703 dasm_put(Dst, 11708);
1700 break; 1704 break;
1701 1705
1702 /* -- Binary ops -------------------------------------------------------- */ 1706 /* -- Binary ops -------------------------------------------------------- */
1703 1707
1704 1708
1705 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1709 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1706 dasm_put(Dst, 11704); 1710 dasm_put(Dst, 11718);
1707 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1711 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1708 switch (vk) { 1712 switch (vk) {
1709 case 0: 1713 case 0:
1710 dasm_put(Dst, 11712, LJ_TISNUM); 1714 dasm_put(Dst, 11726, LJ_TISNUM);
1711 if (sse) { 1715 if (sse) {
1712 dasm_put(Dst, 11724);
1713 } else {
1714 dasm_put(Dst, 11738); 1716 dasm_put(Dst, 11738);
1717 } else {
1718 dasm_put(Dst, 11752);
1715 } 1719 }
1716 break; 1720 break;
1717 case 1: 1721 case 1:
1718 dasm_put(Dst, 11746, LJ_TISNUM); 1722 dasm_put(Dst, 11760, LJ_TISNUM);
1719 if (sse) { 1723 if (sse) {
1720 dasm_put(Dst, 11758);
1721 } else {
1722 dasm_put(Dst, 11772); 1724 dasm_put(Dst, 11772);
1725 } else {
1726 dasm_put(Dst, 11786);
1723 } 1727 }
1724 break; 1728 break;
1725 default: 1729 default:
1726 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1730 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1727 if (sse) { 1731 if (sse) {
1728 dasm_put(Dst, 11802);
1729 } else {
1730 dasm_put(Dst, 11816); 1732 dasm_put(Dst, 11816);
1733 } else {
1734 dasm_put(Dst, 11830);
1731 } 1735 }
1732 break; 1736 break;
1733 } 1737 }
1734 if (sse) { 1738 if (sse) {
1735 dasm_put(Dst, 11578); 1739 dasm_put(Dst, 11592);
1736 } else { 1740 } else {
1737 dasm_put(Dst, 11590); 1741 dasm_put(Dst, 11604);
1738 } 1742 }
1739 dasm_put(Dst, 8581); 1743 dasm_put(Dst, 8597);
1740 break; 1744 break;
1741 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1745 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1742 dasm_put(Dst, 11704); 1746 dasm_put(Dst, 11718);
1743 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1747 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1744 switch (vk) { 1748 switch (vk) {
1745 case 0: 1749 case 0:
1746 dasm_put(Dst, 11712, LJ_TISNUM); 1750 dasm_put(Dst, 11726, LJ_TISNUM);
1747 if (sse) { 1751 if (sse) {
1748 dasm_put(Dst, 11824);
1749 } else {
1750 dasm_put(Dst, 11838); 1752 dasm_put(Dst, 11838);
1753 } else {
1754 dasm_put(Dst, 11852);
1751 } 1755 }
1752 break; 1756 break;
1753 case 1: 1757 case 1:
1754 dasm_put(Dst, 11746, LJ_TISNUM); 1758 dasm_put(Dst, 11760, LJ_TISNUM);
1755 if (sse) { 1759 if (sse) {
1756 dasm_put(Dst, 11846);
1757 } else {
1758 dasm_put(Dst, 11860); 1760 dasm_put(Dst, 11860);
1761 } else {
1762 dasm_put(Dst, 11874);
1759 } 1763 }
1760 break; 1764 break;
1761 default: 1765 default:
1762 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1766 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1763 if (sse) { 1767 if (sse) {
1764 dasm_put(Dst, 11868);
1765 } else {
1766 dasm_put(Dst, 11882); 1768 dasm_put(Dst, 11882);
1769 } else {
1770 dasm_put(Dst, 11896);
1767 } 1771 }
1768 break; 1772 break;
1769 } 1773 }
1770 if (sse) { 1774 if (sse) {
1771 dasm_put(Dst, 11578); 1775 dasm_put(Dst, 11592);
1772 } else { 1776 } else {
1773 dasm_put(Dst, 11590); 1777 dasm_put(Dst, 11604);
1774 } 1778 }
1775 dasm_put(Dst, 8581); 1779 dasm_put(Dst, 8597);
1776 break; 1780 break;
1777 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1781 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1778 dasm_put(Dst, 11704); 1782 dasm_put(Dst, 11718);
1779 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1783 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1780 switch (vk) { 1784 switch (vk) {
1781 case 0: 1785 case 0:
1782 dasm_put(Dst, 11712, LJ_TISNUM); 1786 dasm_put(Dst, 11726, LJ_TISNUM);
1783 if (sse) { 1787 if (sse) {
1784 dasm_put(Dst, 11890);
1785 } else {
1786 dasm_put(Dst, 11904); 1788 dasm_put(Dst, 11904);
1789 } else {
1790 dasm_put(Dst, 11918);
1787 } 1791 }
1788 break; 1792 break;
1789 case 1: 1793 case 1:
1790 dasm_put(Dst, 11746, LJ_TISNUM); 1794 dasm_put(Dst, 11760, LJ_TISNUM);
1791 if (sse) { 1795 if (sse) {
1792 dasm_put(Dst, 11912);
1793 } else {
1794 dasm_put(Dst, 11926); 1796 dasm_put(Dst, 11926);
1797 } else {
1798 dasm_put(Dst, 11940);
1795 } 1799 }
1796 break; 1800 break;
1797 default: 1801 default:
1798 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1802 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1799 if (sse) { 1803 if (sse) {
1800 dasm_put(Dst, 11934);
1801 } else {
1802 dasm_put(Dst, 11948); 1804 dasm_put(Dst, 11948);
1805 } else {
1806 dasm_put(Dst, 11962);
1803 } 1807 }
1804 break; 1808 break;
1805 } 1809 }
1806 if (sse) { 1810 if (sse) {
1807 dasm_put(Dst, 11578); 1811 dasm_put(Dst, 11592);
1808 } else { 1812 } else {
1809 dasm_put(Dst, 11590); 1813 dasm_put(Dst, 11604);
1810 } 1814 }
1811 dasm_put(Dst, 8581); 1815 dasm_put(Dst, 8597);
1812 break; 1816 break;
1813 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1817 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1814 dasm_put(Dst, 11704); 1818 dasm_put(Dst, 11718);
1815 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1819 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1816 switch (vk) { 1820 switch (vk) {
1817 case 0: 1821 case 0:
1818 dasm_put(Dst, 11712, LJ_TISNUM); 1822 dasm_put(Dst, 11726, LJ_TISNUM);
1819 if (sse) { 1823 if (sse) {
1820 dasm_put(Dst, 11956);
1821 } else {
1822 dasm_put(Dst, 11970); 1824 dasm_put(Dst, 11970);
1825 } else {
1826 dasm_put(Dst, 11984);
1823 } 1827 }
1824 break; 1828 break;
1825 case 1: 1829 case 1:
1826 dasm_put(Dst, 11746, LJ_TISNUM); 1830 dasm_put(Dst, 11760, LJ_TISNUM);
1827 if (sse) { 1831 if (sse) {
1828 dasm_put(Dst, 11978);
1829 } else {
1830 dasm_put(Dst, 11992); 1832 dasm_put(Dst, 11992);
1833 } else {
1834 dasm_put(Dst, 12006);
1831 } 1835 }
1832 break; 1836 break;
1833 default: 1837 default:
1834 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1838 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1835 if (sse) { 1839 if (sse) {
1836 dasm_put(Dst, 12000);
1837 } else {
1838 dasm_put(Dst, 12014); 1840 dasm_put(Dst, 12014);
1841 } else {
1842 dasm_put(Dst, 12028);
1839 } 1843 }
1840 break; 1844 break;
1841 } 1845 }
1842 if (sse) { 1846 if (sse) {
1843 dasm_put(Dst, 11578); 1847 dasm_put(Dst, 11592);
1844 } else { 1848 } else {
1845 dasm_put(Dst, 11590); 1849 dasm_put(Dst, 11604);
1846 } 1850 }
1847 dasm_put(Dst, 8581); 1851 dasm_put(Dst, 8597);
1848 break; 1852 break;
1849 case BC_MODVN: 1853 case BC_MODVN:
1850 dasm_put(Dst, 11704); 1854 dasm_put(Dst, 11718);
1851 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1855 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1852 switch (vk) { 1856 switch (vk) {
1853 case 0: 1857 case 0:
1854 dasm_put(Dst, 11712, LJ_TISNUM); 1858 dasm_put(Dst, 11726, LJ_TISNUM);
1855 if (sse) { 1859 if (sse) {
1856 dasm_put(Dst, 12022);
1857 } else {
1858 dasm_put(Dst, 12036); 1860 dasm_put(Dst, 12036);
1861 } else {
1862 dasm_put(Dst, 12050);
1859 } 1863 }
1860 break; 1864 break;
1861 case 1: 1865 case 1:
1862 dasm_put(Dst, 11746, LJ_TISNUM); 1866 dasm_put(Dst, 11760, LJ_TISNUM);
1863 if (sse) { 1867 if (sse) {
1864 dasm_put(Dst, 12044);
1865 } else {
1866 dasm_put(Dst, 12058); 1868 dasm_put(Dst, 12058);
1869 } else {
1870 dasm_put(Dst, 12072);
1867 } 1871 }
1868 break; 1872 break;
1869 default: 1873 default:
1870 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1874 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1871 if (sse) { 1875 if (sse) {
1872 dasm_put(Dst, 12066);
1873 } else {
1874 dasm_put(Dst, 12080); 1876 dasm_put(Dst, 12080);
1877 } else {
1878 dasm_put(Dst, 12094);
1875 } 1879 }
1876 break; 1880 break;
1877 } 1881 }
1878 dasm_put(Dst, 12088); 1882 dasm_put(Dst, 12102);
1879 if (sse) { 1883 if (sse) {
1880 dasm_put(Dst, 11578); 1884 dasm_put(Dst, 11592);
1881 } else { 1885 } else {
1882 dasm_put(Dst, 11590); 1886 dasm_put(Dst, 11604);
1883 } 1887 }
1884 dasm_put(Dst, 8581); 1888 dasm_put(Dst, 8597);
1885 break; 1889 break;
1886 case BC_MODNV: case BC_MODVV: 1890 case BC_MODNV: case BC_MODVV:
1887 dasm_put(Dst, 11704); 1891 dasm_put(Dst, 11718);
1888 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1892 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1889 switch (vk) { 1893 switch (vk) {
1890 case 0: 1894 case 0:
1891 dasm_put(Dst, 11712, LJ_TISNUM); 1895 dasm_put(Dst, 11726, LJ_TISNUM);
1892 if (sse) { 1896 if (sse) {
1893 dasm_put(Dst, 12022);
1894 } else {
1895 dasm_put(Dst, 12036); 1897 dasm_put(Dst, 12036);
1898 } else {
1899 dasm_put(Dst, 12050);
1896 } 1900 }
1897 break; 1901 break;
1898 case 1: 1902 case 1:
1899 dasm_put(Dst, 11746, LJ_TISNUM); 1903 dasm_put(Dst, 11760, LJ_TISNUM);
1900 if (sse) { 1904 if (sse) {
1901 dasm_put(Dst, 12044);
1902 } else {
1903 dasm_put(Dst, 12058); 1905 dasm_put(Dst, 12058);
1906 } else {
1907 dasm_put(Dst, 12072);
1904 } 1908 }
1905 break; 1909 break;
1906 default: 1910 default:
1907 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1911 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1908 if (sse) { 1912 if (sse) {
1909 dasm_put(Dst, 12066);
1910 } else {
1911 dasm_put(Dst, 12080); 1913 dasm_put(Dst, 12080);
1914 } else {
1915 dasm_put(Dst, 12094);
1912 } 1916 }
1913 break; 1917 break;
1914 } 1918 }
1915 dasm_put(Dst, 12094); 1919 dasm_put(Dst, 12108);
1916 break; 1920 break;
1917 case BC_POW: 1921 case BC_POW:
1918 dasm_put(Dst, 11704); 1922 dasm_put(Dst, 11718);
1919 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1923 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1920 switch (vk) { 1924 switch (vk) {
1921 case 0: 1925 case 0:
1922 dasm_put(Dst, 11712, LJ_TISNUM); 1926 dasm_put(Dst, 11726, LJ_TISNUM);
1923 if (sse) { 1927 if (sse) {
1924 dasm_put(Dst, 12022);
1925 } else {
1926 dasm_put(Dst, 12036); 1928 dasm_put(Dst, 12036);
1929 } else {
1930 dasm_put(Dst, 12050);
1927 } 1931 }
1928 break; 1932 break;
1929 case 1: 1933 case 1:
1930 dasm_put(Dst, 11746, LJ_TISNUM); 1934 dasm_put(Dst, 11760, LJ_TISNUM);
1931 if (sse) { 1935 if (sse) {
1932 dasm_put(Dst, 12044);
1933 } else {
1934 dasm_put(Dst, 12058); 1936 dasm_put(Dst, 12058);
1937 } else {
1938 dasm_put(Dst, 12072);
1935 } 1939 }
1936 break; 1940 break;
1937 default: 1941 default:
1938 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1942 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1939 if (sse) { 1943 if (sse) {
1940 dasm_put(Dst, 12066);
1941 } else {
1942 dasm_put(Dst, 12080); 1944 dasm_put(Dst, 12080);
1945 } else {
1946 dasm_put(Dst, 12094);
1943 } 1947 }
1944 break; 1948 break;
1945 } 1949 }
1946 dasm_put(Dst, 12099); 1950 dasm_put(Dst, 12113);
1947 if (sse) { 1951 if (sse) {
1948 dasm_put(Dst, 11578); 1952 dasm_put(Dst, 11592);
1949 } else { 1953 } else {
1950 dasm_put(Dst, 11590); 1954 dasm_put(Dst, 11604);
1951 } 1955 }
1952 dasm_put(Dst, 8581); 1956 dasm_put(Dst, 8597);
1953 break; 1957 break;
1954 1958
1955 case BC_CAT: 1959 case BC_CAT:
1956 dasm_put(Dst, 12103, Dt1(->base), Dt1(->base)); 1960 dasm_put(Dst, 12117, Dt1(->base), Dt1(->base));
1957 break; 1961 break;
1958 1962
1959 /* -- Constant ops ------------------------------------------------------ */ 1963 /* -- Constant ops ------------------------------------------------------ */
1960 1964
1961 case BC_KSTR: 1965 case BC_KSTR:
1962 dasm_put(Dst, 12197, LJ_TSTR); 1966 dasm_put(Dst, 12211, LJ_TSTR);
1963 break; 1967 break;
1964 case BC_KSHORT: 1968 case BC_KSHORT:
1965 if (sse) { 1969 if (sse) {
1966 dasm_put(Dst, 12230); 1970 dasm_put(Dst, 12244);
1967 } else { 1971 } else {
1968 dasm_put(Dst, 12245); 1972 dasm_put(Dst, 12259);
1969 } 1973 }
1970 dasm_put(Dst, 8581); 1974 dasm_put(Dst, 8597);
1971 break; 1975 break;
1972 case BC_KNUM: 1976 case BC_KNUM:
1973 if (sse) { 1977 if (sse) {
1974 dasm_put(Dst, 12253); 1978 dasm_put(Dst, 12267);
1975 } else { 1979 } else {
1976 dasm_put(Dst, 12266); 1980 dasm_put(Dst, 12280);
1977 } 1981 }
1978 dasm_put(Dst, 8581); 1982 dasm_put(Dst, 8597);
1979 break; 1983 break;
1980 case BC_KPRI: 1984 case BC_KPRI:
1981 dasm_put(Dst, 12273); 1985 dasm_put(Dst, 12287);
1982 break; 1986 break;
1983 case BC_KNIL: 1987 case BC_KNIL:
1984 dasm_put(Dst, 12299, LJ_TNIL); 1988 dasm_put(Dst, 12313, LJ_TNIL);
1985 break; 1989 break;
1986 1990
1987 /* -- Upvalue and function ops ------------------------------------------ */ 1991 /* -- Upvalue and function ops ------------------------------------------ */
1988 1992
1989 case BC_UGET: 1993 case BC_UGET:
1990 dasm_put(Dst, 12345, offsetof(GCfuncL, uvptr), DtA(->v)); 1994 dasm_put(Dst, 12359, offsetof(GCfuncL, uvptr), DtA(->v));
1991 break; 1995 break;
1992 case BC_USETV: 1996 case BC_USETV:
1993#define TV2MARKOFS \ 1997#define TV2MARKOFS \
1994 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1998 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1995 dasm_put(Dst, 12389, 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); 1999 dasm_put(Dst, 12403, 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);
1996 dasm_put(Dst, 12479); 2000 dasm_put(Dst, 12493);
1997 break; 2001 break;
1998#undef TV2MARKOFS 2002#undef TV2MARKOFS
1999 case BC_USETS: 2003 case BC_USETS:
2000 dasm_put(Dst, 12491, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2004 dasm_put(Dst, 12505, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2001 break; 2005 break;
2002 case BC_USETN: 2006 case BC_USETN:
2003 dasm_put(Dst, 12582); 2007 dasm_put(Dst, 12596);
2004 if (sse) { 2008 if (sse) {
2005 dasm_put(Dst, 12587); 2009 dasm_put(Dst, 12601);
2006 } else { 2010 } else {
2007 dasm_put(Dst, 11397); 2011 dasm_put(Dst, 11411);
2008 } 2012 }
2009 dasm_put(Dst, 12594, offsetof(GCfuncL, uvptr), DtA(->v)); 2013 dasm_put(Dst, 12608, offsetof(GCfuncL, uvptr), DtA(->v));
2010 if (sse) { 2014 if (sse) {
2011 dasm_put(Dst, 4956); 2015 dasm_put(Dst, 4972);
2012 } else { 2016 } else {
2013 dasm_put(Dst, 4962); 2017 dasm_put(Dst, 4978);
2014 } 2018 }
2015 dasm_put(Dst, 8581); 2019 dasm_put(Dst, 8597);
2016 break; 2020 break;
2017 case BC_USETP: 2021 case BC_USETP:
2018 dasm_put(Dst, 12603, offsetof(GCfuncL, uvptr), DtA(->v)); 2022 dasm_put(Dst, 12617, offsetof(GCfuncL, uvptr), DtA(->v));
2019 break; 2023 break;
2020 case BC_UCLO: 2024 case BC_UCLO:
2021 dasm_put(Dst, 12640, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2025 dasm_put(Dst, 12654, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2022 break; 2026 break;
2023 2027
2024 case BC_FNEW: 2028 case BC_FNEW:
2025 dasm_put(Dst, 12694, Dt1(->base), Dt1(->base), LJ_TFUNC); 2029 dasm_put(Dst, 12708, Dt1(->base), Dt1(->base), LJ_TFUNC);
2026 break; 2030 break;
2027 2031
2028 /* -- Table ops --------------------------------------------------------- */ 2032 /* -- Table ops --------------------------------------------------------- */
2029 2033
2030 case BC_TNEW: 2034 case BC_TNEW:
2031 dasm_put(Dst, 12765, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2035 dasm_put(Dst, 12779, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2032 break; 2036 break;
2033 case BC_TDUP: 2037 case BC_TDUP:
2034 dasm_put(Dst, 12886, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2038 dasm_put(Dst, 12900, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2035 break; 2039 break;
2036 2040
2037 case BC_GGET: 2041 case BC_GGET:
2038 dasm_put(Dst, 12978, Dt7(->env)); 2042 dasm_put(Dst, 12992, Dt7(->env));
2039 break; 2043 break;
2040 case BC_GSET: 2044 case BC_GSET:
2041 dasm_put(Dst, 12996, Dt7(->env)); 2045 dasm_put(Dst, 13010, Dt7(->env));
2042 break; 2046 break;
2043 2047
2044 case BC_TGETV: 2048 case BC_TGETV:
2045 dasm_put(Dst, 13014, LJ_TTAB, LJ_TISNUM); 2049 dasm_put(Dst, 13028, LJ_TTAB, LJ_TISNUM);
2046 if (sse) { 2050 if (sse) {
2047 dasm_put(Dst, 13047); 2051 dasm_put(Dst, 13061);
2048 } else { 2052 } else {
2049 dasm_put(Dst, 13068); 2053 dasm_put(Dst, 13082);
2050 if (cmov) { 2054 if (cmov) {
2051 dasm_put(Dst, 11123); 2055 dasm_put(Dst, 11137);
2052 } else { 2056 } else {
2053 dasm_put(Dst, 11129); 2057 dasm_put(Dst, 11143);
2054 } 2058 }
2055 dasm_put(Dst, 2847); 2059 dasm_put(Dst, 2863);
2056 } 2060 }
2057 dasm_put(Dst, 13078, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2061 dasm_put(Dst, 13092, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2058 dasm_put(Dst, 13170, LJ_TSTR); 2062 dasm_put(Dst, 13184, LJ_TSTR);
2059 break; 2063 break;
2060 case BC_TGETS: 2064 case BC_TGETS:
2061 dasm_put(Dst, 13188, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2065 dasm_put(Dst, 13202, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2062 dasm_put(Dst, 13272, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2066 dasm_put(Dst, 13286, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2063 break; 2067 break;
2064 case BC_TGETB: 2068 case BC_TGETB:
2065 dasm_put(Dst, 13343, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2069 dasm_put(Dst, 13357, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2066 dasm_put(Dst, 11694); 2070 dasm_put(Dst, 11708);
2067 break; 2071 break;
2068 2072
2069 case BC_TSETV: 2073 case BC_TSETV:
2070 dasm_put(Dst, 13442, LJ_TTAB, LJ_TISNUM); 2074 dasm_put(Dst, 13456, LJ_TTAB, LJ_TISNUM);
2071 if (sse) { 2075 if (sse) {
2072 dasm_put(Dst, 13047); 2076 dasm_put(Dst, 13061);
2073 } else { 2077 } else {
2074 dasm_put(Dst, 13068); 2078 dasm_put(Dst, 13082);
2075 if (cmov) { 2079 if (cmov) {
2076 dasm_put(Dst, 11123); 2080 dasm_put(Dst, 11137);
2077 } else { 2081 } else {
2078 dasm_put(Dst, 11129); 2082 dasm_put(Dst, 11143);
2079 } 2083 }
2080 dasm_put(Dst, 2847); 2084 dasm_put(Dst, 2863);
2081 } 2085 }
2082 dasm_put(Dst, 13475, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2086 dasm_put(Dst, 13489, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2083 dasm_put(Dst, 13558, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2087 dasm_put(Dst, 13572, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2084 break; 2088 break;
2085 case BC_TSETS: 2089 case BC_TSETS:
2086 dasm_put(Dst, 13620, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2090 dasm_put(Dst, 13634, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2087 dasm_put(Dst, 13695, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2091 dasm_put(Dst, 13709, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2088 dasm_put(Dst, 13787, 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)); 2092 dasm_put(Dst, 13801, 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));
2089 break; 2093 break;
2090 case BC_TSETB: 2094 case BC_TSETB:
2091 dasm_put(Dst, 13883, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2095 dasm_put(Dst, 13897, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2092 dasm_put(Dst, 13981, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2096 dasm_put(Dst, 13995, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2093 break; 2097 break;
2094 2098
2095 case BC_TSETM: 2099 case BC_TSETM:
2096 dasm_put(Dst, 14027); 2100 dasm_put(Dst, 14041);
2097 if (sse) { 2101 if (sse) {
2098 dasm_put(Dst, 12587); 2102 dasm_put(Dst, 12601);
2099 } else { 2103 } else {
2100 dasm_put(Dst, 14032); 2104 dasm_put(Dst, 14046);
2101 } 2105 }
2102 dasm_put(Dst, 14040, Dt6(->marked), LJ_GC_BLACK); 2106 dasm_put(Dst, 14054, Dt6(->marked), LJ_GC_BLACK);
2103 if (sse) { 2107 if (sse) {
2104 dasm_put(Dst, 14065); 2108 dasm_put(Dst, 14079);
2105 } else { 2109 } else {
2106 dasm_put(Dst, 14072); 2110 dasm_put(Dst, 14086);
2107 } 2111 }
2108 dasm_put(Dst, 14077, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2112 dasm_put(Dst, 14091, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2109 dasm_put(Dst, 14205, Dt6(->gclist)); 2113 dasm_put(Dst, 14219, Dt6(->gclist));
2110 break; 2114 break;
2111 2115
2112 /* -- Calls and vararg handling ----------------------------------------- */ 2116 /* -- Calls and vararg handling ----------------------------------------- */
2113 2117
2114 case BC_CALL: case BC_CALLM: 2118 case BC_CALL: case BC_CALLM:
2115 dasm_put(Dst, 11708); 2119 dasm_put(Dst, 11722);
2116 if (op == BC_CALLM) { 2120 if (op == BC_CALLM) {
2117 dasm_put(Dst, 14213); 2121 dasm_put(Dst, 14227);
2118 } 2122 }
2119 dasm_put(Dst, 14218, LJ_TFUNC, Dt7(->gate)); 2123 dasm_put(Dst, 14232, LJ_TFUNC, Dt7(->gate));
2120 break; 2124 break;
2121 2125
2122 case BC_CALLMT: 2126 case BC_CALLMT:
2123 dasm_put(Dst, 14213); 2127 dasm_put(Dst, 14227);
2124 break; 2128 break;
2125 case BC_CALLT: 2129 case BC_CALLT:
2126 dasm_put(Dst, 14241, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate)); 2130 dasm_put(Dst, 14255, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate));
2127 dasm_put(Dst, 14346, FRAME_TYPE, Dt7(->pt), Dt9(->k)); 2131 dasm_put(Dst, 14360, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2128 break; 2132 break;
2129 2133
2130 case BC_ITERC: 2134 case BC_ITERC:
2131 dasm_put(Dst, 14403, LJ_TFUNC, Dt7(->gate)); 2135 dasm_put(Dst, 14417, LJ_TFUNC, Dt7(->gate));
2132 break; 2136 break;
2133 2137
2134 case BC_VARG: 2138 case BC_VARG:
2135 dasm_put(Dst, 14465, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL); 2139 dasm_put(Dst, 14479, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2136 dasm_put(Dst, 14609, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2140 dasm_put(Dst, 14623, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2137 break; 2141 break;
2138 2142
2139 /* -- Returns ----------------------------------------------------------- */ 2143 /* -- Returns ----------------------------------------------------------- */
2140 2144
2141 case BC_RETM: 2145 case BC_RETM:
2142 dasm_put(Dst, 14213); 2146 dasm_put(Dst, 14227);
2143 break; 2147 break;
2144 2148
2145 case BC_RET: case BC_RET0: case BC_RET1: 2149 case BC_RET: case BC_RET0: case BC_RET1:
2146 if (op != BC_RET0) { 2150 if (op != BC_RET0) {
2147 dasm_put(Dst, 14708); 2151 dasm_put(Dst, 14722);
2148 } 2152 }
2149 dasm_put(Dst, 14712, FRAME_TYPE); 2153 dasm_put(Dst, 14726, FRAME_TYPE);
2150 switch (op) { 2154 switch (op) {
2151 case BC_RET: 2155 case BC_RET:
2152 dasm_put(Dst, 14731); 2156 dasm_put(Dst, 14745);
2153 break; 2157 break;
2154 case BC_RET1: 2158 case BC_RET1:
2155 dasm_put(Dst, 14789); 2159 dasm_put(Dst, 14803);
2156 /* fallthrough */ 2160 /* fallthrough */
2157 case BC_RET0: 2161 case BC_RET0:
2158 dasm_put(Dst, 14805); 2162 dasm_put(Dst, 14819);
2159 default: 2163 default:
2160 break; 2164 break;
2161 } 2165 }
2162 dasm_put(Dst, 14816, Dt7(->pt), Dt9(->k)); 2166 dasm_put(Dst, 14830, Dt7(->pc), PC2PROTO(k));
2163 if (op == BC_RET) { 2167 if (op == BC_RET) {
2164 dasm_put(Dst, 14858, LJ_TNIL); 2168 dasm_put(Dst, 14872, LJ_TNIL);
2165 } else { 2169 } else {
2166 dasm_put(Dst, 14867, LJ_TNIL); 2170 dasm_put(Dst, 14881, LJ_TNIL);
2167 } 2171 }
2168 dasm_put(Dst, 14874); 2172 dasm_put(Dst, 14888);
2169 if (op != BC_RET0) { 2173 if (op != BC_RET0) {
2170 dasm_put(Dst, 14895); 2174 dasm_put(Dst, 14909);
2171 } 2175 }
2172 dasm_put(Dst, 5052); 2176 dasm_put(Dst, 5068);
2173 break; 2177 break;
2174 2178
2175 /* -- Loops and branches ------------------------------------------------ */ 2179 /* -- Loops and branches ------------------------------------------------ */
@@ -2177,7 +2181,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2177 2181
2178 case BC_FORL: 2182 case BC_FORL:
2179#if LJ_HASJIT 2183#if LJ_HASJIT
2180 dasm_put(Dst, 14899, HOTCOUNT_PCMASK, GG_DISP2HOT); 2184 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT);
2181#endif 2185#endif
2182 break; 2186 break;
2183 2187
@@ -2189,57 +2193,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2189 case BC_FORI: 2193 case BC_FORI:
2190 case BC_IFORL: 2194 case BC_IFORL:
2191 vk = (op == BC_IFORL || op == BC_JFORL); 2195 vk = (op == BC_IFORL || op == BC_JFORL);
2192 dasm_put(Dst, 14920); 2196 dasm_put(Dst, 14934);
2193 if (!vk) { 2197 if (!vk) {
2194 dasm_put(Dst, 14924, LJ_TISNUM, LJ_TISNUM); 2198 dasm_put(Dst, 14938, LJ_TISNUM, LJ_TISNUM);
2195 } 2199 }
2196 dasm_put(Dst, 14943); 2200 dasm_put(Dst, 14957);
2197 if (!vk) { 2201 if (!vk) {
2198 dasm_put(Dst, 14947, LJ_TISNUM); 2202 dasm_put(Dst, 14961, LJ_TISNUM);
2199 } 2203 }
2200 if (sse) { 2204 if (sse) {
2201 dasm_put(Dst, 14956); 2205 dasm_put(Dst, 14970);
2202 if (vk) { 2206 if (vk) {
2203 dasm_put(Dst, 14968); 2207 dasm_put(Dst, 14982);
2204 } else { 2208 } else {
2205 dasm_put(Dst, 14987); 2209 dasm_put(Dst, 15001);
2206 } 2210 }
2207 dasm_put(Dst, 14992); 2211 dasm_put(Dst, 15006);
2208 } else { 2212 } else {
2209 dasm_put(Dst, 15005); 2213 dasm_put(Dst, 15019);
2210 if (vk) { 2214 if (vk) {
2211 dasm_put(Dst, 15011); 2215 dasm_put(Dst, 15025);
2212 } else { 2216 } else {
2213 dasm_put(Dst, 15027); 2217 dasm_put(Dst, 15041);
2214 } 2218 }
2215 dasm_put(Dst, 15035); 2219 dasm_put(Dst, 15049);
2216 if (cmov) { 2220 if (cmov) {
2217 dasm_put(Dst, 11123); 2221 dasm_put(Dst, 11137);
2218 } else { 2222 } else {
2219 dasm_put(Dst, 11129); 2223 dasm_put(Dst, 11143);
2220 } 2224 }
2221 if (!cmov) { 2225 if (!cmov) {
2222 dasm_put(Dst, 15040); 2226 dasm_put(Dst, 15054);
2223 } 2227 }
2224 } 2228 }
2225 if (op == BC_FORI) { 2229 if (op == BC_FORI) {
2226 dasm_put(Dst, 15046, -BCBIAS_J*4); 2230 dasm_put(Dst, 15060, -BCBIAS_J*4);
2227 } else if (op == BC_JFORI) { 2231 } else if (op == BC_JFORI) {
2228 dasm_put(Dst, 15056, -BCBIAS_J*4, BC_JLOOP); 2232 dasm_put(Dst, 15070, -BCBIAS_J*4, BC_JLOOP);
2229 } else if (op == BC_IFORL) { 2233 } else if (op == BC_IFORL) {
2230 dasm_put(Dst, 15070, -BCBIAS_J*4); 2234 dasm_put(Dst, 15084, -BCBIAS_J*4);
2231 } else { 2235 } else {
2232 dasm_put(Dst, 15066, BC_JLOOP); 2236 dasm_put(Dst, 15080, BC_JLOOP);
2233 } 2237 }
2234 dasm_put(Dst, 11158); 2238 dasm_put(Dst, 11172);
2235 if (sse) { 2239 if (sse) {
2236 dasm_put(Dst, 15080); 2240 dasm_put(Dst, 15094);
2237 } 2241 }
2238 break; 2242 break;
2239 2243
2240 case BC_ITERL: 2244 case BC_ITERL:
2241#if LJ_HASJIT 2245#if LJ_HASJIT
2242 dasm_put(Dst, 14899, HOTCOUNT_PCMASK, GG_DISP2HOT); 2246 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT);
2243#endif 2247#endif
2244 break; 2248 break;
2245 2249
@@ -2248,33 +2252,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2248 break; 2252 break;
2249#endif 2253#endif
2250 case BC_IITERL: 2254 case BC_IITERL:
2251 dasm_put(Dst, 15091, LJ_TNIL); 2255 dasm_put(Dst, 15105, LJ_TNIL);
2252 if (op == BC_JITERL) { 2256 if (op == BC_JITERL) {
2253 dasm_put(Dst, 15106, BC_JLOOP); 2257 dasm_put(Dst, 15120, BC_JLOOP);
2254 } else { 2258 } else {
2255 dasm_put(Dst, 15120, -BCBIAS_J*4); 2259 dasm_put(Dst, 15134, -BCBIAS_J*4);
2256 } 2260 }
2257 dasm_put(Dst, 11455); 2261 dasm_put(Dst, 11469);
2258 break; 2262 break;
2259 2263
2260 case BC_LOOP: 2264 case BC_LOOP:
2261#if LJ_HASJIT 2265#if LJ_HASJIT
2262 dasm_put(Dst, 14899, HOTCOUNT_PCMASK, GG_DISP2HOT); 2266 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT);
2263#endif 2267#endif
2264 break; 2268 break;
2265 2269
2266 case BC_ILOOP: 2270 case BC_ILOOP:
2267 dasm_put(Dst, 8581); 2271 dasm_put(Dst, 8597);
2268 break; 2272 break;
2269 2273
2270 case BC_JLOOP: 2274 case BC_JLOOP:
2271#if LJ_HASJIT 2275#if LJ_HASJIT
2272 dasm_put(Dst, 15136, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2276 dasm_put(Dst, 15150, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2273#endif 2277#endif
2274 break; 2278 break;
2275 2279
2276 case BC_JMP: 2280 case BC_JMP:
2277 dasm_put(Dst, 15159, -BCBIAS_J*4); 2281 dasm_put(Dst, 15173, -BCBIAS_J*4);
2278 break; 2282 break;
2279 2283
2280 /* ---------------------------------------------------------------------- */ 2284 /* ---------------------------------------------------------------------- */
@@ -2302,7 +2306,7 @@ static int build_backend(BuildCtx *ctx)
2302 2306
2303 build_subroutines(ctx, cmov, sse); 2307 build_subroutines(ctx, cmov, sse);
2304 2308
2305 dasm_put(Dst, 15183); 2309 dasm_put(Dst, 15197);
2306 for (op = 0; op < BC__MAX; op++) 2310 for (op = 0; op < BC__MAX; op++)
2307 build_ins(ctx, (BCOp)op, op, cmov, sse); 2311 build_ins(ctx, (BCOp)op, op, cmov, sse);
2308 2312
diff --git a/src/lj_gc.c b/src/lj_gc.c
index d8221740..d769c0c8 100644
--- a/src/lj_gc.c
+++ b/src/lj_gc.c
@@ -261,7 +261,7 @@ static void gc_traverse_proto(global_State *g, GCproto *pt)
261} 261}
262 262
263/* Traverse the frame structure of a stack. */ 263/* Traverse the frame structure of a stack. */
264static TValue *gc_traverse_frames(global_State *g, lua_State *th) 264static MSize gc_traverse_frames(global_State *g, lua_State *th)
265{ 265{
266 TValue *frame, *top = th->top-1; 266 TValue *frame, *top = th->top-1;
267 /* Note: extra vararg frame not skipped, marks function twice (harmless). */ 267 /* Note: extra vararg frame not skipped, marks function twice (harmless). */
@@ -274,32 +274,22 @@ static TValue *gc_traverse_frames(global_State *g, lua_State *th)
274 } 274 }
275 top++; /* Correct bias of -1 (frame == base-1). */ 275 top++; /* Correct bias of -1 (frame == base-1). */
276 if (top > th->maxstack) top = th->maxstack; 276 if (top > th->maxstack) top = th->maxstack;
277 return top; 277 return (MSize)(top - th->stack); /* Return minimum needed stack size. */
278} 278}
279 279
280/* Traverse a thread object. */ 280/* Traverse a thread object. */
281static void gc_traverse_thread(global_State *g, lua_State *th) 281static void gc_traverse_thread(global_State *g, lua_State *th)
282{ 282{
283 TValue *o, *lim; 283 TValue *o, *top = th->top;
284 gc_markobj(g, tabref(th->env)); 284 for (o = th->stack+1; o < top; o++)
285 for (o = th->stack+1; o < th->top; o++)
286 gc_marktv(g, o); 285 gc_marktv(g, o);
287 lim = gc_traverse_frames(g, th); 286 if (g->gc.state == GCSatomic) {
288 /* Extra cleanup required to avoid this marking problem: 287 top = th->stack + th->stacksize;
289 ** 288 for (; o < top; o++) /* Clear unmarked slots. */
290 ** [aa[bb.X| X created. 289 setnilV(o);
291 ** [aa[cc| GC called from (small) inner frame, X destroyed. 290 }
292 ** [aa....X.| GC called again in (larger) outer frame, X resurrected (ouch). 291 gc_markobj(g, tabref(th->env));
293 ** 292 lj_state_shrinkstack(th, gc_traverse_frames(g, th));
294 ** During GC in step 2 the stack must be cleaned up to the max. frame extent:
295 **
296 ** ***| Slots cleaned
297 ** [cc| from top of last frame
298 ** [aa......| to max. frame extent.
299 */
300 for (; o <= lim; o++)
301 setnilV(o);
302 lj_state_shrinkstack(th, (MSize)(lim - th->stack));
303} 293}
304 294
305/* Propagate one gray object. Traverse it and turn it black. */ 295/* Propagate one gray object. Traverse it and turn it black. */
@@ -524,6 +514,7 @@ static void atomic(global_State *g, lua_State *L)
524{ 514{
525 size_t udsize; 515 size_t udsize;
526 516
517 g->gc.state = GCSatomic;
527 gc_mark_uv(g); /* Need to remark open upvalues (the thread may be dead). */ 518 gc_mark_uv(g); /* Need to remark open upvalues (the thread may be dead). */
528 gc_propagate_gray(g); /* Propagate any left-overs. */ 519 gc_propagate_gray(g); /* Propagate any left-overs. */
529 520
diff --git a/src/lj_gc.h b/src/lj_gc.h
index d1774141..49545c2e 100644
--- a/src/lj_gc.h
+++ b/src/lj_gc.h
@@ -9,7 +9,9 @@
9#include "lj_obj.h" 9#include "lj_obj.h"
10 10
11/* Garbage collector states. Order matters. */ 11/* Garbage collector states. Order matters. */
12enum { GCSpause, GCSpropagate, GCSsweepstring, GCSsweep, GCSfinalize }; 12enum {
13 GCSpause, GCSpropagate, GCSatomic, GCSsweepstring, GCSsweep, GCSfinalize
14};
13 15
14/* Bitmasks for marked field of GCobj. */ 16/* Bitmasks for marked field of GCobj. */
15#define LJ_GC_WHITE0 0x01 17#define LJ_GC_WHITE0 0x01
diff --git a/src/lj_state.c b/src/lj_state.c
index 87043dd5..7c8e9c96 100644
--- a/src/lj_state.c
+++ b/src/lj_state.c
@@ -49,14 +49,18 @@
49/* Resize stack slots and adjust pointers in state. */ 49/* Resize stack slots and adjust pointers in state. */
50static void resizestack(lua_State *L, MSize n) 50static void resizestack(lua_State *L, MSize n)
51{ 51{
52 TValue *oldst = L->stack; 52 TValue *st, *oldst = L->stack;
53 ptrdiff_t delta; 53 ptrdiff_t delta;
54 MSize oldsize = L->stacksize;
54 MSize realsize = n + 1 + LJ_STACK_EXTRA; 55 MSize realsize = n + 1 + LJ_STACK_EXTRA;
55 GCobj *up; 56 GCobj *up;
56 lua_assert((MSize)(L->maxstack-L->stack) == L->stacksize-LJ_STACK_EXTRA-1); 57 lua_assert((MSize)(L->maxstack-L->stack) == L->stacksize-LJ_STACK_EXTRA-1);
57 lj_mem_reallocvec(L, L->stack, L->stacksize, realsize, TValue); 58 lj_mem_reallocvec(L, L->stack, L->stacksize, realsize, TValue);
58 delta = (char *)L->stack - (char *)oldst; 59 st = L->stack;
59 L->maxstack = L->stack + n; 60 delta = (char *)st - (char *)oldst;
61 L->maxstack = st + n;
62 while (oldsize < realsize) /* Clear new slots. */
63 setnilV(st + oldsize++);
60 L->stacksize = realsize; 64 L->stacksize = realsize;
61 L->base = (TValue *)((char *)L->base + delta); 65 L->base = (TValue *)((char *)L->base + delta);
62 L->top = (TValue *)((char *)L->top + delta); 66 L->top = (TValue *)((char *)L->top + delta);
@@ -90,13 +94,8 @@ void LJ_FASTCALL lj_state_growstack(lua_State *L, MSize need)
90 if (L->stacksize > LJ_STACK_MAXEX) /* overflow while handling overflow? */ 94 if (L->stacksize > LJ_STACK_MAXEX) /* overflow while handling overflow? */
91 lj_err_throw(L, LUA_ERRERR); 95 lj_err_throw(L, LUA_ERRERR);
92 resizestack(L, L->stacksize + (need > L->stacksize ? need : L->stacksize)); 96 resizestack(L, L->stacksize + (need > L->stacksize ? need : L->stacksize));
93 if (L->stacksize > LJ_STACK_MAXEX) { 97 if (L->stacksize > LJ_STACK_MAXEX)
94 if (curr_funcisL(L)) { /* Clear slots of incomplete Lua frame. */ 98 lj_err_msg(L, LJ_ERR_STKOV);
95 TValue *top = curr_topL(L);
96 while (--top >= L->top) setnilV(top);
97 }
98 lj_err_msg(L, LJ_ERR_STKOV); /* ... to allow L->top = curr_topL(L). */
99 }
100} 99}
101 100
102void LJ_FASTCALL lj_state_growstack1(lua_State *L) 101void LJ_FASTCALL lj_state_growstack1(lua_State *L)
@@ -107,13 +106,15 @@ void LJ_FASTCALL lj_state_growstack1(lua_State *L)
107/* Allocate basic stack for new state. */ 106/* Allocate basic stack for new state. */
108static void stack_init(lua_State *L1, lua_State *L) 107static void stack_init(lua_State *L1, lua_State *L)
109{ 108{
110 L1->stack = lj_mem_newvec(L, LJ_STACK_START + LJ_STACK_EXTRA, TValue); 109 TValue *st, *stend;
110 L1->stack = st = lj_mem_newvec(L, LJ_STACK_START + LJ_STACK_EXTRA, TValue);
111 L1->stacksize = LJ_STACK_START + LJ_STACK_EXTRA; 111 L1->stacksize = LJ_STACK_START + LJ_STACK_EXTRA;
112 L1->top = L1->stack; 112 stend = st + L1->stacksize;
113 L1->maxstack = L1->stack+(L1->stacksize - LJ_STACK_EXTRA)-1; 113 L1->maxstack = stend - LJ_STACK_EXTRA - 1;
114 setthreadV(L1, L1->top, L1); /* needed for curr_funcisL() on empty stack */ 114 L1->base = L1->top = st+1;
115 setnilV(L1->top); /* but clear its type */ 115 setthreadV(L1, st, L1); /* Needed for curr_funcisL() on empty stack. */
116 L1->base = ++L1->top; 116 while (st < stend) /* Clear new slots. */
117 setnilV(st++);
117} 118}
118 119
119/* -- State handling ------------------------------------------------------ */ 120/* -- State handling ------------------------------------------------------ */