aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-08-29 20:04:40 +0200
committerMike Pall <mike>2010-08-29 20:04:40 +0200
commite1efd0d871e816bb6d2851b5941ba3b4b3d1d01b (patch)
tree24525d41b885e981c2471a42e8f97021cd3c4127 /src
parent7313a0821dc0c5b82ef3b6a3ad259660ff4d6d47 (diff)
downloadluajit-e1efd0d871e816bb6d2851b5941ba3b4b3d1d01b.tar.gz
luajit-e1efd0d871e816bb6d2851b5941ba3b4b3d1d01b.tar.bz2
luajit-e1efd0d871e816bb6d2851b5941ba3b4b3d1d01b.zip
Minor tweaks to integration of assembler part.
Remove unneeded PC restore in vm_growstack_*. Don't declare symbols that are unused in interpreter-only builds. Don't embed lj_vm_foldfpm in interpreter-only builds. Add 2nd temporary TValue in lua_State.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h2212
-rw-r--r--src/buildvm_x64win.h1261
-rw-r--r--src/buildvm_x86.dasc5
-rw-r--r--src/buildvm_x86.h1689
-rw-r--r--src/lj_obj.h2
-rw-r--r--src/lj_vm.h11
6 files changed, 2600 insertions, 2580 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index aa60af8e..91da5f6b 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14102] = { 15static const unsigned char build_actionlist[14099] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -32,669 +32,668 @@ static const unsigned char build_actionlist[14102] = {
32 12,248,21,190,237,252,233,244,248,248,22,131,232,8,252,233,244,247,248,23, 32 12,248,21,190,237,252,233,244,248,248,22,131,232,8,252,233,244,247,248,23,
33 141,68,194,252,248,248,1,15,182,139,233,131,195,4,137,149,233,137,133,233, 33 141,68,194,252,248,248,1,15,182,139,233,131,195,4,137,149,233,137,133,233,
34 255,137,92,36,28,137,206,248,2,137,252,239,232,251,1,0,139,149,233,139,133, 34 255,137,92,36,28,137,206,248,2,137,252,239,232,251,1,0,139,149,233,139,133,
35 233,139,106,252,248,139,90,252,252,41,208,193,232,3,131,192,1,139,157,233, 35 233,139,106,252,248,41,208,193,232,3,131,192,1,139,157,233,139,11,15,182,
36 139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,24,85, 36 252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,24,85,83,65,87,65,
37 83,65,87,65,86,72,131,252,236,40,137,252,253,137,124,36,24,137,252,241,187, 37 86,72,131,252,236,40,137,252,253,137,124,36,24,137,252,241,187,237,49,192,
38 237,49,192,76,141,188,253,36,233,68,139,181,233,65,129,198,239,76,137,189, 38 76,141,188,253,36,233,68,139,181,233,65,129,198,239,76,137,189,233,137,68,
39 233,137,68,36,28,72,137,68,36,32,137,68,36,16,137,68,36,20,56,133,233,15, 39 36,28,72,137,68,36,32,137,68,36,16,137,68,36,20,56,133,233,15,132,244,249,
40 132,244,249,65,199,134,233,237,136,133,233,139,149,233,139,133,233,41,200, 40 65,199,134,233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,
41 193,232,3,131,192,1,41,209,139,90,252,252,137,68,36,4,252,247,195,237,15, 41 192,1,41,209,139,90,252,252,137,68,36,4,252,247,195,237,15,132,244,13,255,
42 132,244,13,255,252,233,244,14,248,25,85,83,65,87,65,86,72,131,252,236,40, 42 252,233,244,14,248,25,85,83,65,87,65,86,72,131,252,236,40,187,237,137,76,
43 187,237,137,76,36,20,252,233,244,247,248,26,85,83,65,87,65,86,72,131,252, 43 36,20,252,233,244,247,248,26,85,83,65,87,65,86,72,131,252,236,40,187,237,
44 236,40,187,237,248,1,137,84,36,16,137,252,253,137,124,36,24,137,252,241,76, 44 248,1,137,84,36,16,137,252,253,137,124,36,24,137,252,241,76,139,189,233,76,
45 139,189,233,76,137,124,36,32,137,108,36,28,72,137,165,233,248,2,68,139,181, 45 137,124,36,32,137,108,36,28,72,137,165,233,248,2,68,139,181,233,65,129,198,
46 233,65,129,198,239,248,3,65,199,134,233,237,139,149,233,1,203,41,211,139, 46 239,248,3,65,199,134,233,237,139,149,233,1,203,41,211,139,133,233,41,200,
47 133,233,41,200,193,232,3,131,192,1,248,27,255,139,105,252,248,129,121,253, 47 193,232,3,131,192,1,248,27,255,139,105,252,248,129,121,253,252,252,239,15,
48 252,252,239,15,133,244,28,248,29,137,202,137,90,252,252,139,157,233,139,11, 48 133,244,28,248,29,137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,
49 15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,30,85,83,65, 49 15,182,205,131,195,4,65,252,255,36,252,238,248,30,85,83,65,87,65,86,72,131,
50 87,65,86,72,131,252,236,40,137,252,253,137,124,36,24,137,108,36,28,68,139, 50 252,236,40,137,252,253,137,124,36,24,137,108,36,28,68,139,189,233,68,43,189,
51 189,233,68,43,189,233,199,68,36,20,0,0,0,0,68,137,124,36,16,76,139,189,233, 51 233,199,68,36,20,0,0,0,0,68,137,124,36,16,76,139,189,233,76,137,124,36,32,
52 76,137,124,36,32,72,137,165,233,252,255,209,133,192,15,132,244,15,137,193, 52 72,137,165,233,252,255,209,133,192,15,132,244,15,137,193,187,237,252,233,
53 187,237,252,233,244,2,248,11,1,209,131,227,252,248,137,213,41,218,199,68, 53 244,2,248,11,1,209,131,227,252,248,137,213,41,218,199,68,193,252,252,237,
54 193,252,252,237,137,200,139,93,252,244,72,99,77,252,240,76,141,61,245,76, 54 137,200,139,93,252,244,72,99,77,252,240,76,141,61,245,76,1,252,249,68,139,
55 1,252,249,68,139,122,252,248,69,139,191,233,255,69,139,191,233,252,255,225, 55 122,252,248,69,139,191,233,255,69,139,191,233,252,255,225,248,31,15,182,75,
56 248,31,15,182,75,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244, 56 252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,32,252,247,217,193,
57 32,252,247,217,193,252,233,3,139,124,36,24,137,151,233,137,202,139,72,4,139, 57 252,233,3,139,124,36,24,137,151,233,137,202,139,72,4,139,0,137,77,4,137,69,
58 0,137,77,4,137,69,0,137,252,238,252,233,244,33,248,34,137,4,36,199,68,36, 58 0,137,252,238,252,233,244,33,248,34,137,4,36,199,68,36,4,237,72,141,4,36,
59 4,237,72,141,4,36,128,123,252,252,235,15,133,244,247,65,141,142,233,137,41, 59 128,123,252,252,235,15,133,244,247,65,141,142,233,137,41,199,65,4,237,137,
60 199,65,4,237,137,205,252,233,244,248,248,35,15,182,67,252,254,255,252,242, 60 205,252,233,244,248,248,35,15,182,67,252,254,255,252,242,15,42,192,252,242,
61 15,42,192,252,242,15,17,4,36,255,72,141,4,36,252,233,244,247,248,36,15,182, 61 15,17,4,36,255,72,141,4,36,252,233,244,247,248,36,15,182,67,252,254,141,4,
62 67,252,254,141,4,194,248,1,15,182,107,252,255,141,44,252,234,248,2,139,124, 62 194,248,1,15,182,107,252,255,141,44,252,234,248,2,139,124,36,24,137,151,233,
63 36,24,137,151,233,137,252,238,72,137,194,137,252,253,137,92,36,28,232,251, 63 137,252,238,72,137,194,137,252,253,137,92,36,28,232,251,1,1,139,149,233,133,
64 1,1,139,149,233,133,192,15,132,244,249,248,32,15,182,75,252,253,139,104,4, 64 192,15,132,244,249,248,32,15,182,75,252,253,139,104,4,139,0,137,108,202,4,
65 139,0,137,108,202,4,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232, 65 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
66 16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244,141,153,233,41, 66 252,238,248,3,139,141,233,137,89,252,244,141,153,233,41,211,139,105,252,248,
67 211,139,105,252,248,184,237,252,233,244,29,248,37,137,4,36,199,68,36,4,237, 67 184,237,252,233,244,29,248,37,137,4,36,199,68,36,4,237,72,141,4,36,128,123,
68 72,141,4,36,128,123,252,252,235,15,133,244,247,255,65,141,142,233,137,41, 68 252,252,235,15,133,244,247,255,65,141,142,233,137,41,199,65,4,237,137,205,
69 199,65,4,237,137,205,252,233,244,248,248,38,15,182,67,252,254,255,72,141, 69 252,233,244,248,248,38,15,182,67,252,254,255,72,141,4,36,252,233,244,247,
70 4,36,252,233,244,247,248,39,15,182,67,252,254,141,4,194,248,1,15,182,107, 70 248,39,15,182,67,252,254,141,4,194,248,1,15,182,107,252,255,141,44,252,234,
71 252,255,141,44,252,234,248,2,139,124,36,24,137,151,233,137,252,238,72,137, 71 248,2,139,124,36,24,137,151,233,137,252,238,72,137,194,137,252,253,137,92,
72 194,137,252,253,137,92,36,28,232,251,1,2,139,149,233,133,192,15,132,244,249, 72 36,28,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,75,252,253,139,
73 15,182,75,252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,40,139,3,15, 73 108,202,4,139,12,202,137,104,4,137,8,248,40,139,3,15,182,204,15,182,232,131,
74 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,139,141, 74 195,4,193,232,16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244,15,
75 233,137,89,252,244,15,182,67,252,253,139,108,194,4,139,4,194,137,105,20,137, 75 182,67,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,153,233,41,
76 65,16,141,153,233,41,211,139,105,252,248,184,237,252,233,244,29,248,41,139, 76 211,139,105,252,248,184,237,252,233,244,29,248,41,139,108,36,24,137,149,233,
77 108,36,24,137,149,233,141,52,202,141,20,194,137,252,239,15,182,75,252,252, 77 141,52,202,141,20,194,137,252,239,15,182,75,252,252,137,92,36,28,232,251,
78 137,92,36,28,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135,244,42, 78 1,3,248,3,139,149,233,255,131,252,248,1,15,135,244,42,248,4,141,91,4,15,130,
79 248,4,141,91,4,15,130,244,252,248,5,15,183,67,252,254,141,156,253,131,233, 79 244,252,248,5,15,183,67,252,254,141,156,253,131,233,248,6,139,3,15,182,204,
80 248,6,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 80 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,43,131,195,4,129,
81 238,248,43,131,195,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44, 81 120,253,4,239,15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233,
82 129,120,253,4,239,252,233,244,4,248,45,131,252,235,4,137,206,137,252,233, 82 244,4,248,45,131,252,235,4,137,206,137,252,233,139,108,36,24,137,149,233,
83 139,108,36,24,137,149,233,255,137,194,137,252,239,137,92,36,28,232,251,1, 83 255,137,194,137,252,239,137,92,36,28,232,251,1,4,252,233,244,3,248,46,65,
84 4,252,233,244,3,248,46,65,141,4,199,252,233,244,247,248,47,65,141,4,199,141, 84 141,4,199,252,233,244,247,248,47,65,141,4,199,141,44,252,234,149,252,233,
85 44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248, 85 244,248,248,48,141,4,194,137,197,252,233,244,248,248,49,141,4,194,248,1,141,
86 49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,68,15,182,67,252,252,137, 86 44,252,234,248,2,141,12,202,68,15,182,67,252,252,137,206,137,193,139,124,
87 206,137,193,139,124,36,24,137,151,233,137,252,234,137,252,253,137,92,36,28, 87 36,24,137,151,233,137,252,234,137,252,253,137,92,36,28,232,251,1,5,139,149,
88 232,251,1,5,139,149,233,133,192,15,132,244,40,248,42,137,193,41,208,137,89, 88 233,133,192,15,132,244,40,248,42,137,193,41,208,137,89,252,244,141,152,233,
89 252,244,141,152,233,255,184,237,252,233,244,27,248,50,139,108,36,24,137,149, 89 255,184,237,252,233,244,27,248,50,139,108,36,24,137,149,233,141,52,194,137,
90 233,141,52,194,137,252,239,137,92,36,28,232,251,1,6,139,149,233,252,233,244, 90 252,239,137,92,36,28,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76,
91 42,248,51,141,76,202,8,248,28,137,76,36,4,137,4,36,131,252,233,8,139,108, 91 202,8,248,28,137,76,36,4,137,4,36,131,252,233,8,139,108,36,24,137,149,233,
92 36,24,137,149,233,137,206,141,20,193,137,252,239,137,92,36,28,232,251,1,7, 92 137,206,141,20,193,137,252,239,137,92,36,28,232,251,1,7,139,149,233,139,76,
93 139,149,233,139,76,36,4,139,4,36,139,105,252,248,131,192,1,65,57,215,15,132, 93 36,4,139,4,36,139,105,252,248,131,192,1,65,57,215,15,132,244,52,137,202,137,
94 244,52,137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205, 94 90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,
95 131,195,4,65,252,255,36,252,238,248,53,139,108,36,24,137,149,233,137,206, 95 255,36,252,238,248,53,139,108,36,24,137,149,233,137,206,137,252,239,137,92,
96 137,252,239,137,92,36,28,232,251,1,8,139,149,233,139,67,252,252,15,182,204, 96 36,28,232,251,1,8,139,149,233,139,67,252,252,15,182,204,15,182,232,193,232,
97 15,182,232,193,232,16,65,252,255,164,253,252,238,233,248,54,255,129,252,248, 97 16,65,252,255,164,253,252,238,233,248,54,255,129,252,248,239,15,130,244,55,
98 239,15,130,244,55,139,106,4,129,252,253,239,15,131,244,55,139,90,252,252, 98 139,106,4,129,252,253,239,15,131,244,55,139,90,252,252,137,68,36,4,137,106,
99 137,68,36,4,137,106,252,252,139,42,137,106,252,248,131,232,2,15,132,244,248, 99 252,252,139,42,137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,
100 137,209,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137,105,252,248, 100 193,8,139,105,4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,
101 131,232,1,15,133,244,1,248,2,139,68,36,4,252,233,244,56,248,57,129,252,248, 101 1,248,2,139,68,36,4,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,
102 239,15,130,244,55,139,106,4,137,252,233,193,252,249,15,131,252,249,252,254, 102 106,4,137,252,233,193,252,249,15,131,252,249,252,254,15,132,244,249,255,184,
103 15,132,244,249,255,184,237,252,247,213,57,232,255,15,71,197,255,15,134,244, 103 237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,
104 247,137,232,248,1,255,248,2,139,106,252,248,139,132,253,197,233,139,90,252, 104 248,2,139,106,252,248,139,132,253,197,233,139,90,252,252,199,66,252,252,237,
105 252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,184,237,252,233, 105 137,66,252,248,252,233,244,58,248,3,184,237,252,233,244,2,248,59,129,252,
106 244,2,248,59,129,252,248,239,15,130,244,55,139,106,4,139,90,252,252,129,252, 106 248,239,15,130,244,55,139,106,4,139,90,252,252,129,252,253,239,15,133,244,
107 253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199,66, 107 252,248,1,139,42,139,173,233,248,2,133,252,237,199,66,252,252,237,255,15,
108 252,252,237,255,15,132,244,58,65,139,134,233,199,66,252,252,237,137,106,252, 108 132,244,58,65,139,134,233,199,66,252,252,237,137,106,252,248,139,141,233,
109 248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15, 109 35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57,
110 133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244, 110 129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,255,252,233,
111 3,255,252,233,244,58,248,5,139,105,4,129,252,253,239,15,132,244,58,139,1, 111 244,58,248,5,139,105,4,129,252,253,239,15,132,244,58,139,1,137,106,252,252,
112 137,106,252,252,137,66,252,248,252,233,244,58,248,6,129,252,253,239,15,132, 112 137,66,252,248,252,233,244,58,248,6,129,252,253,239,15,132,244,1,129,252,
113 244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,65,139,172, 113 253,239,15,135,244,253,189,237,248,7,252,247,213,65,139,172,253,174,233,252,
114 253,174,233,252,233,244,2,248,60,255,129,252,248,239,15,130,244,55,129,122, 114 233,244,2,248,60,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,
115 253,4,239,15,133,244,55,139,42,131,189,233,0,15,133,244,55,129,122,253,12, 115 244,55,139,42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133,244,55,
116 239,15,133,244,55,139,66,8,137,133,233,139,90,252,252,199,66,252,252,237, 116 139,66,8,137,133,233,139,90,252,252,199,66,252,252,237,137,106,252,248,252,
117 137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,255,65, 117 246,133,233,235,15,132,244,247,128,165,233,235,255,65,139,134,233,65,137,
118 139,134,233,65,137,174,233,137,133,233,248,1,252,233,244,58,248,61,129,252, 118 174,233,137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,
119 248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,139,50,141, 119 55,129,122,253,4,239,15,133,244,55,137,213,139,50,141,82,8,139,124,36,24,
120 82,8,139,124,36,24,232,251,1,9,137,252,234,139,40,139,64,4,139,90,252,252, 120 232,251,1,9,137,252,234,139,40,139,64,4,139,90,252,252,137,106,252,248,137,
121 137,106,252,248,137,66,252,252,252,233,244,58,248,62,129,252,248,239,15,133, 121 66,252,252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,
122 244,55,129,122,253,4,239,255,15,135,244,55,255,252,242,15,16,2,252,233,244, 122 4,239,255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,
123 63,255,221,2,252,233,244,64,255,248,65,129,252,248,239,15,130,244,55,139, 123 233,244,64,255,248,65,129,252,248,239,15,130,244,55,139,90,252,252,129,122,
124 90,252,252,129,122,253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237, 124 253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,
125 137,66,252,248,252,233,244,58,248,3,129,122,253,4,239,15,135,244,55,65,131, 125 233,244,58,248,3,129,122,253,4,239,15,135,244,55,65,131,190,233,0,15,133,
126 190,233,0,15,133,244,55,65,139,174,233,65,59,174,233,255,15,130,244,247,232, 126 244,55,65,139,174,233,65,59,174,233,255,15,130,244,247,232,244,66,248,1,139,
127 244,66,248,1,139,108,36,24,137,149,233,137,92,36,28,137,214,137,252,239,232, 127 108,36,24,137,149,233,137,92,36,28,137,214,137,252,239,232,251,1,10,139,149,
128 251,1,10,139,149,233,252,233,244,2,248,67,129,252,248,239,15,130,244,55,15, 128 233,252,233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,
129 132,244,248,248,1,129,122,253,4,239,15,133,244,55,139,108,36,24,137,149,233, 129 1,129,122,253,4,239,15,133,244,55,139,108,36,24,137,149,233,255,137,149,233,
130 255,137,149,233,139,90,252,252,139,50,141,82,8,137,252,239,137,92,36,28,232, 130 139,90,252,252,139,50,141,82,8,137,252,239,137,92,36,28,232,251,1,11,139,
131 251,1,11,139,149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252, 131 149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,
132 248,137,66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252, 132 252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,
133 233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252, 133 248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,
134 233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,106,252,248,129,122, 134 248,70,129,252,248,239,15,130,244,55,255,139,106,252,248,129,122,253,4,239,
135 253,4,239,15,133,244,55,139,133,233,139,90,252,252,199,66,252,252,237,137, 135 15,133,244,55,139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248,
136 66,252,248,199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15, 136 199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,
137 130,244,55,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244, 137 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,90,252,
138 55,139,90,252,252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205, 138 252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,
139 252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59, 139 193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,
140 133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132, 140 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,
141 244,72,139,40,139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,233,0, 141 139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,
142 15,132,244,72,137,252,239,137,213,137,198,232,251,1,12,137,252,234,133,192, 142 137,252,239,137,213,137,198,232,251,1,12,137,252,234,133,192,15,133,244,1,
143 15,133,244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15, 143 248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,
144 130,244,55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139, 144 106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,90,252,252,199,
145 90,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17, 145 66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,
146 66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248, 146 238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,
147 239,15,130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193, 147 55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237,235,131,
148 252,237,235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15, 148 229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,
149 130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, 149 253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,
150 66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252, 150 90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,
151 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137, 151 252,248,239,15,130,244,55,139,42,139,90,252,252,137,92,36,28,137,44,36,129,
152 92,36,28,137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133, 152 122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,
153 244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141, 153 15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,
154 233,15,132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157, 154 1,141,92,193,252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,
155 233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41, 155 149,233,131,194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,
156 221,57,203,15,132,244,249,248,2,139,68,43,4,137,67,252,252,139,4,43,137,67, 156 249,248,2,139,68,43,4,137,67,252,252,139,4,43,137,67,252,248,131,252,235,
157 252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244, 157 8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,
158 24,65,199,134,233,237,255,139,108,36,24,139,28,36,139,149,233,129,252,248, 158 255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,
159 239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68,137,252, 159 4,139,139,233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,
160 251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135,244,255, 160 252,141,4,26,193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,
161 137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,68, 161 5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,68,57,252,249,15,133,244,
162 57,252,249,15,133,244,5,248,6,141,67,2,199,66,252,252,237,248,7,139,92,36, 162 5,248,6,141,67,2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,
163 28,137,68,36,4,72,199,193,252,248,252,255,252,255,252,255,252,247,195,237, 163 193,252,248,252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,
164 255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,139,233,131, 164 233,244,14,248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,
165 252,233,8,137,139,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7, 165 139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,68,137,
166 248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,149,233, 166 185,233,137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4,248,77,
167 252,233,244,4,248,77,139,106,252,248,139,173,233,139,90,252,252,137,92,36, 167 139,106,252,248,139,173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,
168 28,137,44,36,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244, 168 189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,
169 55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252, 169 132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252,248,59,157,233,
170 248,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149, 170 15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149,233,141,108,194,
171 233,141,108,194,252,240,72,41,221,57,203,15,132,244,249,248,2,255,139,68, 171 252,240,72,41,221,57,203,15,132,244,249,248,2,255,139,68,43,4,137,67,252,
172 43,4,137,67,252,252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,244, 172 252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,
173 2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,139,108,36,24,139, 173 139,60,36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149,233,
174 28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139,233,68,139, 174 129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,
175 187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4,26,193,252, 175 68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,
176 235,3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,139,1,137,4,41, 176 135,244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,
177 139,65,4,137,68,41,4,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1, 177 4,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,28,
178 248,7,139,92,36,28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233, 178 137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,
179 244,14,248,8,137,222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185, 179 222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,
180 233,137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4,248,78,139, 180 239,232,251,1,0,139,149,233,252,233,244,4,248,78,139,108,36,24,72,252,247,
181 108,36,24,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68,194, 181 133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,
182 252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233,244, 182 49,192,72,137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,
183 16,255,248,64,139,90,252,252,221,90,252,248,252,233,244,58,248,79,129,252, 183 252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,
184 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72, 184 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,
185 184,237,237,102,72,15,110,200,15,84,193,248,63,139,90,252,252,252,242,15, 185 110,200,15,84,193,248,63,139,90,252,252,252,242,15,17,66,252,248,255,248,
186 17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239, 186 79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,
187 15,135,244,55,221,2,217,225,248,63,248,64,139,90,252,252,221,90,252,248,255, 187 225,248,63,248,64,139,90,252,252,221,90,252,248,255,248,58,184,237,248,69,
188 248,58,184,237,248,69,137,68,36,4,248,56,252,247,195,237,15,133,244,253,248, 188 137,68,36,4,248,56,252,247,195,237,15,133,244,253,248,5,56,67,252,255,15,
189 5,56,67,252,255,15,135,244,252,15,182,75,252,253,72,252,247,209,141,20,202, 189 135,244,252,15,182,75,252,253,72,252,247,209,141,20,202,139,3,15,182,204,
190 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 190 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,199,68,194,252,
191 6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248, 191 244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,
192 252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130, 192 252,255,252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,
193 244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248, 193 4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,
194 81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 194 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,
195 15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55, 195 252,233,244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,
196 129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63, 196 15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,
197 255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 197 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,
198 221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129, 198 233,244,64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
199 122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129, 199 244,55,221,2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,
200 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84, 200 244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,
201 252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239, 201 248,85,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,
202 15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252, 202 252,237,221,2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244,
203 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217, 203 55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233,
204 252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253, 204 244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,
205 4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239, 205 244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244,
206 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244, 206 55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90,
207 64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244, 207 129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,
208 55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55, 208 252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,
209 129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64, 209 239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252,
210 248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55, 210 248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,
211 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244, 211 200,217,232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252,
212 64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 212 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,
213 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233, 213 217,232,222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,
214 244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 214 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,
215 55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,252,248,239, 215 217,252,243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,
216 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213, 216 253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,
217 232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252,248,239,15,130, 217 234,252,233,244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,
218 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251, 218 239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,
219 1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239,15,130,244,55, 219 233,244,63,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
220 129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,16, 220 135,244,55,252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,
221 137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239,15,130,244,55, 221 63,248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
222 129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15, 222 244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,
223 89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122, 223 63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
224 253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64, 224 55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,
225 255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 225 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
226 129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64, 226 244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,
227 248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 227 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,
228 122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233, 228 244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,
229 244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15, 229 248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90,252,
230 135,244,55,139,90,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129, 230 252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,
231 252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3, 231 255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,
232 0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252, 232 32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,
233 242,15,42,197,255,137,44,36,219,4,36,255,139,106,252,252,129,229,252,255, 233 137,44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129,
234 252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17, 234 205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,
235 2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2, 235 237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,
236 255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237, 236 233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
237 102,72,15,110,205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199, 237 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90,
238 4,36,0,0,128,90,216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0, 238 216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,
239 209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253, 239 244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
240 4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244, 240 244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,122,
241 55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209, 241 253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129,252,
242 229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104, 242 253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,15,92,
243 252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217, 243 224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,
244 192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252, 244 220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,
245 139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252, 245 15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,
246 245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255, 246 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,
247 217,252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244, 247 201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,
248 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66, 248 239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,
249 8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64, 249 252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,
250 255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 250 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
251 129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244, 251 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,
252 107,252,233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253, 252 63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
253 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244, 253 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,
254 107,252,233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253, 254 64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
255 4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63, 255 55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,
256 129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252, 256 234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,
257 248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239, 257 93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,
258 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0, 258 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,
259 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55, 259 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,
260 252,242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244, 260 76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,
261 1,255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244, 261 216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,
262 55,129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233, 262 4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,
263 244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133, 263 133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,
264 244,55,129,122,253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233, 264 253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244,72,
265 1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137, 265 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36,
266 44,36,219,4,36,252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15, 266 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
267 130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4, 267 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
268 239,15,135,244,55,255,252,242,15,45,42,129,252,253,252,255,0,0,0,15,135,244, 268 255,252,242,15,45,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,4,
269 55,137,108,36,4,255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244, 269 255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,
270 55,255,199,68,36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233, 270 36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,
271 139,84,36,8,72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233, 271 72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,
272 139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65, 272 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,
273 139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252, 273 59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,
274 255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247, 274 255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,
275 129,122,253,20,239,255,252,242,15,45,106,16,137,108,36,4,255,221,66,16,219, 275 255,252,242,15,45,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,
276 92,36,4,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 276 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,
277 244,55,139,42,137,108,36,8,139,173,233,255,252,242,15,45,74,8,255,139,68, 277 108,36,8,139,173,233,255,252,242,15,45,74,8,255,139,68,36,4,57,197,15,130,
278 36,4,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36, 278 244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,
279 8,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137, 279 115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,
280 232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6, 280 248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,
281 137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143, 281 2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,
282 244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116, 282 0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,
283 129,252,248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247, 283 130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,
284 232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15, 284 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,
285 135,244,55,139,42,255,252,242,15,45,66,8,255,221,66,8,219,92,36,4,139,68, 285 252,242,15,45,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,
286 36,4,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117, 286 244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,
287 65,57,134,233,15,130,244,117,15,182,141,233,65,139,174,233,137,68,36,8,248, 287 244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,
288 1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113, 288 1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,
289 248,118,129,252,248,239,255,15,130,244,55,65,139,174,233,65,59,174,233,15, 289 239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,
290 130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133, 290 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
291 233,133,192,15,132,244,115,65,57,134,233,15,130,244,119,129,197,239,137,92, 291 244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,
292 36,4,137,68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1, 292 65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,
293 136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252, 293 244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,
294 248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244, 294 244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,
295 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233, 295 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,
296 255,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252, 296 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,
297 233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249, 297 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,
298 90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244, 298 131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,
299 1,137,216,139,92,36,4,252,233,244,113,248,121,129,252,248,239,15,130,244, 299 36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,
300 55,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122, 300 233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,
301 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129, 301 244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,
302 197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182, 302 36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
303 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131, 303 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
304 252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36, 304 2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,
305 4,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,239, 305 248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
306 15,133,244,55,137,213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192, 306 213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,
307 252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239, 307 255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
308 15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15, 308 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,
309 88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252, 309 126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,
310 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72, 310 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
311 189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68, 311 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,
312 36,4,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15, 312 252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,
313 135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255, 313 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
314 131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122, 314 233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
315 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
316 252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,
317 15,126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,
318 239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,
319 15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,
320 193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
321 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88, 315 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,
322 193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252,248,239, 316 193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,
323 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237, 317 205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
324 237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255, 318 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
325 248,125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233, 319 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,
326 244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 320 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
327 244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74, 321 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
328 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137, 322 197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,
329 200,102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255, 323 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
330 248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 324 110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,
331 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 325 242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,
332 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 326 131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
333 126,197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133, 327 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
334 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 328 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
335 12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102, 329 197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,
336 72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,
337 102,15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,
338 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, 330 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
339 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15, 331 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
340 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15, 332 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,
341 126,201,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15, 333 126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,
342 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 334 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
343 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252, 335 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,
344 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255, 336 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,
345 211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184, 337 211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,
346 237,248,55,139,108,36,24,139,90,252,252,137,92,36,28,137,149,233,141,68,194, 338 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
347 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251, 339 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
348 137,252,239,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1,255,139, 340 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,
349 133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,90,252,252,15,133,244, 341 193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,
350 248,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36, 342 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
351 252,238,248,2,137,209,252,247,195,237,15,133,244,249,15,182,107,252,253,72, 343 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
352 252,247,213,141,20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41, 344 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,
353 252,234,252,233,244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233, 345 244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,
354 252,233,244,1,248,66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149, 346 24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,
355 233,255,141,68,194,252,248,137,252,239,137,133,233,232,251,1,19,139,149,233, 347 137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,
356 139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255, 348 144,233,139,149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,
357 65,15,182,134,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15, 349 232,3,131,192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,
358 132,244,247,65,252,255,142,233,252,233,244,247,255,248,137,65,15,182,134, 350 139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,
359 233,168,235,15,133,244,251,252,233,244,247,248,138,65,15,182,134,233,168, 351 209,252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,
360 235,15,133,244,251,168,235,15,132,244,251,65,252,255,142,233,15,132,244,247, 352 20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,
361 168,235,15,132,244,251,248,1,255,139,108,36,24,137,149,233,137,222,137,252, 353 244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,
362 239,232,251,1,20,248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107, 354 66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,
363 252,252,15,183,67,252,254,65,252,255,164,253,252,238,233,248,139,131,195, 355 252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,
364 4,139,77,232,137,76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173, 356 193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,
365 233,15,182,133,233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222, 357 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,
366 65,141,190,233,73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255, 358 255,142,233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,
367 248,141,137,92,36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141, 359 244,251,252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,
368 68,194,252,248,139,108,36,24,137,149,233,137,133,233,137,222,137,252,239, 360 168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,
369 232,251,1,22,199,68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72, 361 251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,
370 137,193,139,133,233,41,208,72,137,205,15,182,75,252,253,193,232,3,131,192, 362 248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,
371 1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72, 363 67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,
372 141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137,125, 364 76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,
373 252,248,76,137,117,252,240,68,139,117,0,65,139,142,233,65,199,134,233,237, 365 233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,
374 65,137,134,233,65,137,142,233,72,129,252,236,239,72,131,197,128,252,242,68, 366 73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,
375 15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,252, 367 36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,
376 242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,252, 368 139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,
377 242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242, 369 68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,
378 15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93, 370 41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,
379 152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,65,139, 371 255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,
380 174,233,65,139,150,233,73,137,174,233,65,199,134,233,0,0,0,0,137,149,233, 372 81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,
381 72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72,129,225,239,72,137, 373 240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,
382 204,137,169,233,139,149,233,139,153,233,252,233,244,247,255,248,144,255,72, 374 142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,
383 131,196,16,248,1,76,139,108,36,8,76,139,36,36,133,192,15,136,244,249,137, 375 242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,
384 68,36,4,68,139,122,252,248,69,139,191,233,69,139,191,233,65,199,134,233,0, 376 252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,
385 0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16, 377 242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,
386 129,252,253,239,15,130,244,248,139,68,36,4,248,2,65,252,255,36,252,238,248, 378 17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,
387 3,252,247,216,137,252,239,137,198,232,251,1,24,255,248,82,255,217,124,36, 379 252,242,15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,
388 4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68, 380 137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,
389 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72, 381 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,
390 184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 382 233,139,153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,
391 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203, 383 108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,
392 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242, 384 69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,
393 15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255, 385 3,15,182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,
394 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251, 386 139,68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,
395 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 387 198,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
396 248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 388 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
397 15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242, 389 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,
398 15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208, 390 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
399 252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 391 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
400 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 392 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
401 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 393 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
402 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 394 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
403 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242, 395 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
404 15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194, 396 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
405 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248, 397 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
406 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184, 398 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
407 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244, 399 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,
408 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184, 400 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
409 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92, 401 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,
410 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89, 402 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
411 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4, 403 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
412 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, 404 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
413 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252, 405 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
414 234,222,201,248,149,217,84,36,252,248,129,124,36,252,248,0,0,128,127,15,132, 406 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
415 244,247,129,124,36,252,248,0,0,128,252,255,15,132,244,248,248,150,217,192, 407 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
408 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
409 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
410 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
411 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
412 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
413 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
414 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,
415 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,
416 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,
417 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,
418 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,
419 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,
420 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,
421 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,
422 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,
423 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,
424 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,
425 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,
426 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,
427 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,
428 17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,
416 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 429 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
417 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242, 430 217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,
418 15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 431 102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,
419 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 432 72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,
420 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 433 208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,
421 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 434 48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,
422 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 435 102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
423 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, 436 192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,
424 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, 437 132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
425 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, 438 195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,
426 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, 439 135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,
427 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, 440 252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,
428 36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,36,252,248, 441 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
429 217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222, 442 252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,
430 193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,252,248,195, 443 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
431 248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40, 444 253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
432 193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184, 445 244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,
433 237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87, 446 36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,
434 192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72, 447 15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,
435 15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248, 448 248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,
436 5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,131,252,255, 449 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,
437 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, 450 201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,
438 252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248, 451 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,
439 131,252,255,5,15,135,244,248,15,132,244,247,232,244,88,252,233,244,253,248, 452 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,
440 1,232,244,149,255,252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135, 453 195,255,248,9,204,255,248,154,255,131,252,255,1,15,132,244,247,15,135,244,
441 244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,217,232,217, 454 248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,
442 201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135, 455 15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,
443 244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,255,217,252, 456 195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,
444 254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, 457 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
445 252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248, 458 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,
446 252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255, 459 15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,
447 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, 460 68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,
448 217,252,250,195,248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252, 461 252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,
449 255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248, 462 252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,
450 1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255, 463 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
451 15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195, 464 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
452 248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1, 465 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
453 217,252,242,221,216,195,255,248,9,204,248,154,255,131,252,255,1,15,132,244, 466 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
454 247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248, 467 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
455 2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,1, 468 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
456 252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131, 469 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
457 252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,72,15,110, 470 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
458 200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248, 471 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
459 2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17, 472 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
460 76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,217,252, 473 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
461 243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,217,201, 474 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,
462 217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,247,15, 475 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,
463 135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255, 476 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,
464 139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135, 477 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,
465 244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244, 478 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
466 247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5, 479 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
467 15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248, 480 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,
468 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, 481 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,
469 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, 482 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,
470 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, 483 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,
471 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, 484 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
472 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, 485 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
473 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155, 486 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
474 137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,129,124, 487 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,
475 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 488 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,
476 15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,4,255, 489 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,
477 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 490 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,
478 131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15, 491 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
479 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108, 492 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,
480 194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135, 493 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
481 244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255, 494 238,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204,
482 15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1, 495 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129,
483 15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,252,254,141, 496 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,
484 156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 497 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,
485 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 498 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,
486 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 499 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,
487 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208, 500 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,
488 131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202,65,59,12,135,255, 501 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,
489 131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242,65,15,16,4,199, 502 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,
490 102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247,208,131,195,4,57, 503 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
491 68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255,15,131,244,247,255, 504 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,
492 15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,67,252, 505 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,
493 254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, 506 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,
494 16,65,252,255,36,252,238,255,139,108,194,4,139,4,194,137,108,202,4,137,4, 507 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,
495 202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 508 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
496 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182, 509 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
497 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,129,124,253, 510 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,
498 194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15, 511 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,
499 110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255, 512 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,
500 129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42, 513 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,
501 128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139, 514 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,
502 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2, 515 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,
503 129,124,253,194,4,239,15,133,244,50,139,60,194,137,213,232,251,1,18,255,252, 516 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
504 242,15,42,192,137,252,234,255,15,182,75,252,253,252,233,244,1,255,15,182, 517 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,
505 252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242, 518 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,
506 15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,255, 519 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,
507 129,124,253,252,234,4,239,15,135,244,47,255,252,242,65,15,16,4,199,252,242, 520 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,
508 15,88,4,252,234,255,65,221,4,199,220,4,252,234,255,129,124,253,252,234,4, 521 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,
509 239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4, 522 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
510 252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16, 523 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
511 4,252,234,252,242,65,15,92,4,199,255,221,4,252,234,65,220,36,199,255,252, 524 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,
512 242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221,4,199,220,36,252,234, 525 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,
513 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36, 526 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,139,
514 194,255,252,242,15,16,4,252,234,252,242,65,15,89,4,199,255,221,4,252,234, 527 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182,
515 65,220,12,199,255,252,242,65,15,16,4,199,252,242,15,89,4,252,234,255,65,221, 528 232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139,
516 4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255, 529 4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,
517 221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,65,15,94,4,199, 530 232,16,65,252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15,
518 255,221,4,252,234,65,220,52,199,255,252,242,65,15,16,4,199,252,242,15,94, 531 17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242,
519 4,252,234,255,65,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252, 532 15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,
520 242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234, 533 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,
521 252,242,65,15,16,12,199,255,221,4,252,234,65,221,4,199,255,252,242,65,15, 534 76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,
522 16,4,199,252,242,15,16,12,252,234,255,65,221,4,199,221,4,252,234,255,252, 535 193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
523 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255, 536 255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,
524 248,156,232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236, 537 4,139,109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,
525 15,182,192,139,124,36,24,137,151,233,141,52,194,137,194,41,252,234,248,33, 538 193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,
526 137,252,253,137,92,36,28,232,251,1,25,139,149,233,133,192,15,133,244,42,15, 539 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,
527 182,107,252,255,15,182,75,252,253,139,68,252,234,4,139,44,252,234,137,68, 540 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
528 202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 541 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,
529 255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202, 542 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,
543 65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,
544 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,
545 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
546 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,
547 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,
548 251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,
549 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
550 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
551 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
552 255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,
553 233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204,
554 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,
555 139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,
556 36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
530 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, 557 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
531 15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28, 558 139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,
532 202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28, 559 244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,
533 202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4, 560 132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15,182,75,
534 193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137, 561 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,
535 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15, 562 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,
536 182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139, 563 252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,
537 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139, 564 108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,
538 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139, 565 249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252,
539 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139, 566 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,
540 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244, 567 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252,
541 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 568 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,
542 252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235, 569 233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,
543 15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,26,137,252, 570 233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,
544 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233, 571 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,
545 65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244, 572 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,
546 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 573 193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
547 252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1, 574 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
548 137,213,137,198,65,141,190,233,232,251,1,26,137,252,234,252,233,244,1,255, 575 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,
549 139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141, 576 131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,
550 233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139, 577 15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,
551 172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195, 578 36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,
552 4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,24, 579 65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,
553 131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1, 580 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,
554 27,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 581 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,
555 252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,139,82,252, 582 67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182,
556 248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,28,139,149,233,15,182, 583 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,
557 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, 584 252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,
558 4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137,149,233,65,139,142, 585 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,
559 233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137,194,37,252,255,7, 586 244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
560 0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,239,137, 587 35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,
561 198,232,251,1,29,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 588 4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3,
562 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 589 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
563 3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251,1,30,15,183,67,252, 590 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,35,255,
564 254,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,233,137,92, 591 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44,
565 36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252, 592 252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233,
566 239,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 593 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,
567 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 594 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
568 3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,247,208,252,233,244,2,
569 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157,
570 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158,
571 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,
572 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
573 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,
574 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,
575 139,40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195,
576 4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141,
577 233,252,246,129,233,235,15,132,244,36,15,182,75,252,253,252,233,244,1,248,
578 5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,
579 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,
580 239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,
581 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,
582 129,121,253,4,239,15,132,244,251,15,182,67,252,253,139,41,139,73,4,137,44,
583 194,248,2,255,137,76,194,4,139,3,15,182,204,15,182,232,131,195,4,193,232,
584 16,65,252,255,36,252,238,248,3,15,182,67,252,253,185,237,252,233,244,2,248,
585 4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,
586 252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,
587 192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,
588 131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,
589 40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,
590 193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141,
591 233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,
592 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,
593 244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,
594 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,
595 2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,15,182,232,131,
596 195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,
597 141,233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,
598 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,
599 7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,
600 253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,
601 129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,
602 35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,
603 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,
604 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,139,108,194,
605 4,139,4,194,137,105,4,137,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
606 16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,
607 233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,
608 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
609 233,235,15,132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,
610 36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,
611 1,32,139,149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,
612 65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,
613 15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,
614 233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
615 1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
616 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 595 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
617 238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235, 596 238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,
618 15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139, 597 15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,
619 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68, 598 15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142,
620 137,60,36,255,252,242,69,15,45,60,199,255,248,1,141,12,202,139,105,252,248, 599 233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,
621 252,246,133,233,235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244, 600 252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,
622 250,68,1,252,248,59,133,233,15,131,244,251,68,41,252,248,65,193,231,3,68, 601 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,
623 3,189,233,248,3,139,41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131, 602 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
624 199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232, 603 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
625 131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,137,151,233, 604 133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137,
626 137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,149,233,15, 605 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
627 182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,139,134,233,65, 606 248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,
628 137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,253,202,4, 607 15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,
629 239,139,44,202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,233,139, 608 1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,
630 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,141,76,202, 609 248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,
631 8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52, 610 141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,
632 139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,248,137,68, 611 108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,
633 36,4,131,232,1,15,132,244,249,248,2,139,41,65,137,47,139,105,4,65,137,111, 612 174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
634 4,65,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139, 613 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,
635 68,36,4,128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252, 614 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,
636 233,15,182,205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237, 615 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,
637 15,133,244,4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248, 616 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
638 69,139,191,233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247, 617 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
639 195,237,15,133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248, 618 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
640 8,129,195,239,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137, 619 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,255,252,242,
641 41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224, 620 69,15,45,60,199,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,
642 139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133, 621 15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,
643 244,28,137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205, 622 133,233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,
644 131,195,4,65,252,255,36,252,238,255,15,182,252,236,139,66,252,248,141,12, 623 41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,
645 202,139,128,233,15,182,128,233,68,137,60,36,68,141,188,253,194,233,68,43, 624 244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
646 122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215, 625 65,252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,
647 15,131,244,248,248,1,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199, 626 137,252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,
648 8,137,65,4,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248, 627 244,1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,
649 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3, 628 252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,
650 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199, 629 51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
651 68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,255,137,197,193,252,237, 630 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,
652 3,131,197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248, 631 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237,
653 6,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193, 632 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,
654 8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137, 633 248,2,139,41,65,137,47,139,105,4,65,137,111,4,65,131,199,8,131,193,8,131,
655 92,36,28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139, 634 232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,
656 149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90, 635 244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,
657 252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215, 636 255,36,252,238,248,5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,
658 131,232,1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,248,65,139,108, 637 252,247,209,141,12,202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,
659 15,4,65,137,111,252,252,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68, 638 233,244,4,248,7,129,252,235,239,252,247,195,237,15,133,244,254,41,218,65,
660 36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137, 639 137,215,139,90,252,252,252,233,244,1,248,8,129,195,239,252,233,244,1,255,
661 106,252,252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,15,135,244, 640 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,
662 252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69, 641 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,
663 139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232, 642 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,
664 16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255, 643 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,
665 199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,171,233,252, 644 255,15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,68,
666 247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,221,209,252,237, 645 137,60,36,68,141,188,253,194,233,68,43,122,252,252,133,252,237,15,132,244,
667 129,229,239,102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255, 646 251,141,108,252,233,252,248,65,57,215,15,131,244,248,248,1,65,139,71,252,
668 129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139, 647 248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,57,252,233,15,
669 105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16, 648 131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,
670 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255, 649 15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,
671 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221, 650 232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,
672 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24, 651 248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,4,139,108,
673 15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248, 652 36,24,1,200,59,133,233,15,135,244,253,248,6,65,139,71,252,248,137,1,65,139,
674 141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245, 653 71,252,252,65,131,199,8,137,65,4,131,193,8,65,57,215,15,130,244,6,252,233,
675 255,15,130,244,248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244, 654 244,3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116,36,4,131,
676 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252, 655 252,238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,
677 252,139,41,137,105,252,248,252,233,245,255,141,156,253,131,233,139,1,137, 656 244,6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,
678 105,252,252,137,65,252,248,255,65,139,142,233,139,4,129,72,139,128,233,139, 657 15,133,244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248,2,65,139,
679 108,36,24,65,137,150,233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131, 658 44,15,65,137,111,252,248,65,139,108,15,4,65,137,111,252,252,65,131,199,8,
680 252,236,16,252,255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232, 659 131,232,1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,255,248,5,57,197,
681 131,195,4,193,232,16,65,252,255,36,252,238,255,137,221,209,252,237,129,229, 660 15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,
682 239,102,65,131,172,253,46,233,1,15,132,244,142,255,68,139,187,233,139,108, 661 255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252,247,209,
683 36,24,141,12,202,59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244, 662 141,20,202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3,15,182,
684 249,248,2,255,15,183,67,252,254,252,233,245,255,248,3,199,68,194,252,252, 663 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255,65,199,
685 237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4, 664 71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,
686 194,68,139,122,252,248,137,104,252,252,68,137,120,252,248,139,108,36,24,141, 665 233,244,5,248,7,141,171,233,252,247,197,237,15,133,244,14,41,252,234,255,
687 12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,171,233,133,252,237, 666 1,252,233,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,
688 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68, 667 15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,
689 137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252, 668 253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,
690 237,1,15,133,244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131, 669 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,
691 195,4,193,232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131, 670 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
692 252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139, 671 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
693 108,36,24,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233, 672 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
694 255,137,252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134, 673 15,183,67,252,254,255,15,131,244,248,141,156,253,131,233,255,141,156,253,
695 233,237,255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237, 674 131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141,156,253,131,233,
696 139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12, 675 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
697 255,254,0 676 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
677 255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,
678 233,139,4,129,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,233,
679 76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,253,
680 131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
681 238,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,
682 244,142,255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,244,
683 23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,233,
684 245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,
685 244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,68,
686 137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,22,137,209,
687 137,194,15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,
688 15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,120,
689 4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,139,
690 187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
691 238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,
692 2,255,139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,137,
693 149,233,141,136,233,59,141,233,137,133,233,255,137,252,239,255,76,137,252,
694 254,137,252,239,255,15,135,244,21,65,199,134,233,237,255,65,252,255,215,255,
695 65,252,255,150,233,255,65,199,134,233,237,139,149,233,141,12,194,252,247,
696 217,3,141,233,139,90,252,252,252,233,244,12,255,254,0
698}; 697};
699 698
700enum { 699enum {
@@ -1065,372 +1064,375 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1065 dasm_put(Dst, 206, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); 1064 dasm_put(Dst, 206, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1);
1066 dasm_put(Dst, 302, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); 1065 dasm_put(Dst, 302, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top));
1067 dasm_put(Dst, 371, Dt1(->base), Dt1(->top), Dt7(->pc), 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); 1066 dasm_put(Dst, 371, Dt1(->base), Dt1(->top), Dt7(->pc), 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);
1068 dasm_put(Dst, 539, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 1067 dasm_put(Dst, 535, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
1069 dasm_put(Dst, 652, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc)); 1068 dasm_put(Dst, 648, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc));
1070 dasm_put(Dst, 817, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1069 dasm_put(Dst, 813, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1071 if (sse) { 1070 if (sse) {
1072 dasm_put(Dst, 926); 1071 dasm_put(Dst, 922);
1073 } else { 1072 } else {
1074 } 1073 }
1075 dasm_put(Dst, 938, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); 1074 dasm_put(Dst, 934, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET);
1076 dasm_put(Dst, 1089, DISPATCH_GL(tmptv), LJ_TTAB); 1075 dasm_put(Dst, 1085, DISPATCH_GL(tmptv), LJ_TTAB);
1077 if (sse) { 1076 if (sse) {
1078 dasm_put(Dst, 926); 1077 dasm_put(Dst, 922);
1079 } else { 1078 } else {
1080 } 1079 }
1081 dasm_put(Dst, 1113, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); 1080 dasm_put(Dst, 1109, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base));
1082 dasm_put(Dst, 1295, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1081 dasm_put(Dst, 1291, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1083 dasm_put(Dst, 1394, Dt1(->base), Dt1(->base), FRAME_CONT); 1082 dasm_put(Dst, 1390, Dt1(->base), Dt1(->base), FRAME_CONT);
1084 dasm_put(Dst, 1517, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1083 dasm_put(Dst, 1513, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1085 dasm_put(Dst, 1695, 1+1, LJ_TISTRUECOND, 1+1); 1084 dasm_put(Dst, 1691, 1+1, LJ_TISTRUECOND, 1+1);
1086 dasm_put(Dst, 1806, ~LJ_TNUMX); 1085 dasm_put(Dst, 1802, ~LJ_TNUMX);
1087 if (cmov) { 1086 if (cmov) {
1088 dasm_put(Dst, 1814); 1087 dasm_put(Dst, 1810);
1089 } else { 1088 } else {
1090 dasm_put(Dst, 1818); 1089 dasm_put(Dst, 1814);
1091 } 1090 }
1092 dasm_put(Dst, 1827, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); 1091 dasm_put(Dst, 1823, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL);
1093 dasm_put(Dst, 1906, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); 1092 dasm_put(Dst, 1902, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next));
1094 dasm_put(Dst, 1964, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); 1093 dasm_put(Dst, 1960, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]));
1095 dasm_put(Dst, 2033, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK)); 1094 dasm_put(Dst, 2029, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK));
1096 dasm_put(Dst, 2102, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1095 dasm_put(Dst, 2098, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1097 dasm_put(Dst, 2193); 1096 dasm_put(Dst, 2189);
1098 if (sse) { 1097 if (sse) {
1099 dasm_put(Dst, 2198); 1098 dasm_put(Dst, 2194);
1100 } else { 1099 } else {
1101 dasm_put(Dst, 2208); 1100 dasm_put(Dst, 2204);
1102 } 1101 }
1103 dasm_put(Dst, 2215, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1102 dasm_put(Dst, 2211, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1104 dasm_put(Dst, 2284, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1103 dasm_put(Dst, 2280, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1105 dasm_put(Dst, 2353, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1104 dasm_put(Dst, 2349, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1106 dasm_put(Dst, 2450, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1105 dasm_put(Dst, 2446, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1107 if (sse) { 1106 if (sse) {
1108 dasm_put(Dst, 2522, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1107 dasm_put(Dst, 2518, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1109 } else { 1108 } else {
1110 } 1109 }
1111 dasm_put(Dst, 2555, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1110 dasm_put(Dst, 2551, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1112 dasm_put(Dst, 2636, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1111 dasm_put(Dst, 2632, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1113 if (sse) { 1112 if (sse) {
1114 dasm_put(Dst, 2674); 1113 dasm_put(Dst, 2670);
1115 } else { 1114 } else {
1116 dasm_put(Dst, 2684); 1115 dasm_put(Dst, 2680);
1117 } 1116 }
1118 dasm_put(Dst, 2691, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1117 dasm_put(Dst, 2687, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1119 dasm_put(Dst, 2756, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1118 dasm_put(Dst, 2752, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1120 dasm_put(Dst, 2845, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1119 dasm_put(Dst, 2841, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1121 dasm_put(Dst, 2938, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1120 dasm_put(Dst, 2934, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1122 dasm_put(Dst, 3058, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1121 dasm_put(Dst, 3054, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1123 dasm_put(Dst, 3154, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1122 dasm_put(Dst, 3150, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1124 dasm_put(Dst, 3220, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1123 dasm_put(Dst, 3216, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1125 dasm_put(Dst, 3315, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1124 dasm_put(Dst, 3311, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1126 dasm_put(Dst, 3427, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1125 dasm_put(Dst, 3423, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1127 if (sse) { 1126 if (sse) {
1128 dasm_put(Dst, 3454, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1127 dasm_put(Dst, 3450, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1129 } else { 1128 } else {
1130 dasm_put(Dst, 3518, 1+1, LJ_TISNUM); 1129 dasm_put(Dst, 3514, 1+1, LJ_TISNUM);
1131 } 1130 }
1132 dasm_put(Dst, 3554, 1+1, FRAME_TYPE, LJ_TNIL); 1131 dasm_put(Dst, 3550, 1+1, FRAME_TYPE, LJ_TNIL);
1133 if (sse) { 1132 if (sse) {
1134 dasm_put(Dst, 3649, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1133 dasm_put(Dst, 3645, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1135 dasm_put(Dst, 3711, 1+1, LJ_TISNUM); 1134 dasm_put(Dst, 3707, 1+1, LJ_TISNUM);
1136 } else { 1135 } else {
1137 dasm_put(Dst, 3741, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1136 dasm_put(Dst, 3737, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1138 dasm_put(Dst, 3800, 1+1, LJ_TISNUM); 1137 dasm_put(Dst, 3796, 1+1, LJ_TISNUM);
1139 } 1138 }
1140 dasm_put(Dst, 3827, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1139 dasm_put(Dst, 3823, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1141 dasm_put(Dst, 3896, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1140 dasm_put(Dst, 3892, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1142 dasm_put(Dst, 3953, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1141 dasm_put(Dst, 3949, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1143 dasm_put(Dst, 4016, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1142 dasm_put(Dst, 4012, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1144 dasm_put(Dst, 4106); 1143 dasm_put(Dst, 4102);
1145 if (sse) { 1144 if (sse) {
1146 dasm_put(Dst, 4118, 1+1, LJ_TISNUM); 1145 dasm_put(Dst, 4114, 1+1, LJ_TISNUM);
1147 } else { 1146 } else {
1148 } 1147 }
1149 dasm_put(Dst, 4143); 1148 dasm_put(Dst, 4139);
1150 if (sse) { 1149 if (sse) {
1151 dasm_put(Dst, 4157, 1+1, LJ_TISNUM); 1150 dasm_put(Dst, 4153, 1+1, LJ_TISNUM);
1152 } else { 1151 } else {
1153 } 1152 }
1154 dasm_put(Dst, 4182); 1153 dasm_put(Dst, 4178);
1155 if (sse) { 1154 if (sse) {
1156 dasm_put(Dst, 4196, 1+1, LJ_TISNUM); 1155 dasm_put(Dst, 4192, 1+1, LJ_TISNUM);
1157 } else { 1156 } else {
1158 } 1157 }
1159 dasm_put(Dst, 4221); 1158 dasm_put(Dst, 4217);
1160 if (sse) { 1159 if (sse) {
1161 dasm_put(Dst, 4237, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1160 dasm_put(Dst, 4233, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1162 } else { 1161 } else {
1163 dasm_put(Dst, 4276, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1162 dasm_put(Dst, 4272, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1164 } 1163 }
1165 dasm_put(Dst, 4309, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1164 dasm_put(Dst, 4305, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1166 dasm_put(Dst, 4374, 1+1, LJ_TISNUM); 1165 dasm_put(Dst, 4370, 1+1, LJ_TISNUM);
1167 if (sse) { 1166 if (sse) {
1168 dasm_put(Dst, 4473); 1167 dasm_put(Dst, 4469);
1169 } else { 1168 } else {
1170 dasm_put(Dst, 4479); 1169 dasm_put(Dst, 4475);
1171 } 1170 }
1172 dasm_put(Dst, 4486); 1171 dasm_put(Dst, 4482);
1173 if (sse) { 1172 if (sse) {
1174 dasm_put(Dst, 4511); 1173 dasm_put(Dst, 4507);
1175 } else { 1174 } else {
1176 dasm_put(Dst, 4517); 1175 dasm_put(Dst, 4513);
1177 } 1176 }
1178 dasm_put(Dst, 4520, 1+2); 1177 dasm_put(Dst, 4516, 1+2);
1179 if (sse) { 1178 if (sse) {
1180 dasm_put(Dst, 4529); 1179 dasm_put(Dst, 4525);
1181 } else { 1180 } else {
1182 dasm_put(Dst, 4537); 1181 dasm_put(Dst, 4533);
1183 } 1182 }
1184 dasm_put(Dst, 4545); 1183 dasm_put(Dst, 4541);
1185 if (sse) { 1184 if (sse) {
1186 dasm_put(Dst, 4548, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1185 dasm_put(Dst, 4544, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1187 } else { 1186 } else {
1188 dasm_put(Dst, 4575); 1187 dasm_put(Dst, 4571);
1189 } 1188 }
1190 dasm_put(Dst, 4592); 1189 dasm_put(Dst, 4588);
1191 if (sse) { 1190 if (sse) {
1192 dasm_put(Dst, 4608, 1+1, LJ_TISNUM); 1191 dasm_put(Dst, 4604, 1+1, LJ_TISNUM);
1193 } else { 1192 } else {
1194 dasm_put(Dst, 4633, 1+1, LJ_TISNUM); 1193 dasm_put(Dst, 4629, 1+1, LJ_TISNUM);
1195 } 1194 }
1196 dasm_put(Dst, 4655); 1195 dasm_put(Dst, 4651);
1197 if (sse) { 1196 if (sse) {
1198 dasm_put(Dst, 4677); 1197 dasm_put(Dst, 4673);
1199 } else { 1198 } else {
1200 dasm_put(Dst, 4703); 1199 dasm_put(Dst, 4699);
1201 } 1200 }
1202 dasm_put(Dst, 4720, 1+2); 1201 dasm_put(Dst, 4716, 1+2);
1203 if (sse) { 1202 if (sse) {
1204 dasm_put(Dst, 4760); 1203 dasm_put(Dst, 4756);
1205 } else { 1204 } else {
1206 dasm_put(Dst, 4768); 1205 dasm_put(Dst, 4764);
1207 } 1206 }
1208 dasm_put(Dst, 4778, 2+1, LJ_TISNUM, LJ_TISNUM); 1207 dasm_put(Dst, 4774, 2+1, LJ_TISNUM, LJ_TISNUM);
1209 if (sse) { 1208 if (sse) {
1210 dasm_put(Dst, 4830, 2+1, LJ_TISNUM, LJ_TISNUM); 1209 dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM);
1211 } else { 1210 } else {
1212 dasm_put(Dst, 4877, 2+1, LJ_TISNUM, LJ_TISNUM); 1211 dasm_put(Dst, 4873, 2+1, LJ_TISNUM, LJ_TISNUM);
1213 } 1212 }
1214 if (sse) { 1213 if (sse) {
1215 dasm_put(Dst, 4918, 1+1, LJ_TISNUM, LJ_TISNUM); 1214 dasm_put(Dst, 4914, 1+1, LJ_TISNUM, LJ_TISNUM);
1216 } else { 1215 } else {
1217 } 1216 }
1218 if (sse) { 1217 if (sse) {
1219 dasm_put(Dst, 4989, 1+1, LJ_TISNUM, LJ_TISNUM); 1218 dasm_put(Dst, 4985, 1+1, LJ_TISNUM, LJ_TISNUM);
1220 } else { 1219 } else {
1221 } 1220 }
1222 if (!sse) { 1221 if (!sse) {
1223 dasm_put(Dst, 5060); 1222 dasm_put(Dst, 5056);
1224 } 1223 }
1225 dasm_put(Dst, 5069, 1+1, LJ_TSTR); 1224 dasm_put(Dst, 5065, 1+1, LJ_TSTR);
1226 if (sse) { 1225 if (sse) {
1227 dasm_put(Dst, 5091, Dt5(->len)); 1226 dasm_put(Dst, 5087, Dt5(->len));
1228 } else { 1227 } else {
1229 dasm_put(Dst, 5102, Dt5(->len)); 1228 dasm_put(Dst, 5098, Dt5(->len));
1230 } 1229 }
1231 dasm_put(Dst, 5110, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1230 dasm_put(Dst, 5106, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1232 if (sse) { 1231 if (sse) {
1233 dasm_put(Dst, 5148); 1232 dasm_put(Dst, 5144);
1234 } else { 1233 } else {
1235 dasm_put(Dst, 5158); 1234 dasm_put(Dst, 5154);
1236 } 1235 }
1237 dasm_put(Dst, 5169, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1236 dasm_put(Dst, 5165, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1238 if (sse) { 1237 if (sse) {
1239 dasm_put(Dst, 5206); 1238 dasm_put(Dst, 5202);
1240 } else { 1239 } else {
1241 dasm_put(Dst, 5228); 1240 dasm_put(Dst, 5224);
1242 } 1241 }
1243 dasm_put(Dst, 5248, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1242 dasm_put(Dst, 5244, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1244 dasm_put(Dst, 2193); 1243 dasm_put(Dst, 2189);
1245 if (sse) { 1244 if (sse) {
1246 dasm_put(Dst, 5357); 1245 dasm_put(Dst, 5353);
1247 } else { 1246 } else {
1248 dasm_put(Dst, 5368); 1247 dasm_put(Dst, 5364);
1249 } 1248 }
1250 dasm_put(Dst, 5376, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1249 dasm_put(Dst, 5372, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1251 if (sse) { 1250 if (sse) {
1252 dasm_put(Dst, 5406); 1251 dasm_put(Dst, 5402);
1253 } else { 1252 } else {
1254 } 1253 }
1255 dasm_put(Dst, 5413, sizeof(GCstr)-1); 1254 dasm_put(Dst, 5409, sizeof(GCstr)-1);
1256 dasm_put(Dst, 5488, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1255 dasm_put(Dst, 5484, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1257 dasm_put(Dst, 5549, LJ_TSTR, LJ_TISNUM); 1256 dasm_put(Dst, 5545, LJ_TSTR, LJ_TISNUM);
1258 if (sse) { 1257 if (sse) {
1259 dasm_put(Dst, 5570); 1258 dasm_put(Dst, 5566);
1260 } else { 1259 } else {
1261 dasm_put(Dst, 5577); 1260 dasm_put(Dst, 5573);
1262 } 1261 }
1263 dasm_put(Dst, 5589, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1262 dasm_put(Dst, 5585, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1264 dasm_put(Dst, 5657, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1263 dasm_put(Dst, 5653, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1265 dasm_put(Dst, 5724, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1264 dasm_put(Dst, 5720, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1266 dasm_put(Dst, 5797, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1265 dasm_put(Dst, 5793, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1267 dasm_put(Dst, 5882, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1266 dasm_put(Dst, 5878, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1268 dasm_put(Dst, 5956, 1+1, LJ_TTAB); 1267 dasm_put(Dst, 5952, 1+1, LJ_TTAB);
1269 if (sse) { 1268 if (sse) {
1270 dasm_put(Dst, 6023); 1269 dasm_put(Dst, 6019);
1271 } else { 1270 } else {
1272 } 1271 }
1273 if (sse) { 1272 if (sse) {
1274 dasm_put(Dst, 6033, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1273 dasm_put(Dst, 6029, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1275 } else { 1274 } else {
1276 } 1275 }
1277 if (sse) { 1276 if (sse) {
1278 dasm_put(Dst, 6085, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1277 dasm_put(Dst, 6081, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1279 } else { 1278 } else {
1280 } 1279 }
1281 dasm_put(Dst, 6128, LJ_TISNUM); 1280 dasm_put(Dst, 6124, LJ_TISNUM);
1282 if (sse) { 1281 if (sse) {
1283 dasm_put(Dst, 6155); 1282 dasm_put(Dst, 6151);
1284 } else { 1283 } else {
1285 } 1284 }
1286 dasm_put(Dst, 6172); 1285 dasm_put(Dst, 6168);
1287 if (sse) { 1286 if (sse) {
1288 dasm_put(Dst, 6180, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1287 dasm_put(Dst, 6176, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1289 } else { 1288 } else {
1290 } 1289 }
1291 dasm_put(Dst, 6128, LJ_TISNUM); 1290 dasm_put(Dst, 6124, LJ_TISNUM);
1292 if (sse) { 1291 if (sse) {
1293 dasm_put(Dst, 6223); 1292 dasm_put(Dst, 6219);
1294 } else { 1293 } else {
1295 } 1294 }
1296 dasm_put(Dst, 6172); 1295 dasm_put(Dst, 6168);
1297 if (sse) { 1296 if (sse) {
1298 dasm_put(Dst, 6240, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1297 dasm_put(Dst, 6236, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1299 } else { 1298 } else {
1300 } 1299 }
1301 dasm_put(Dst, 6128, LJ_TISNUM); 1300 dasm_put(Dst, 6124, LJ_TISNUM);
1302 if (sse) { 1301 if (sse) {
1303 dasm_put(Dst, 6283); 1302 dasm_put(Dst, 6279);
1304 } else { 1303 } else {
1305 } 1304 }
1306 dasm_put(Dst, 6172); 1305 dasm_put(Dst, 6168);
1307 if (sse) { 1306 if (sse) {
1308 dasm_put(Dst, 6300, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1307 dasm_put(Dst, 6296, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1309 } else { 1308 } else {
1310 } 1309 }
1311 dasm_put(Dst, 6343); 1310 dasm_put(Dst, 6339);
1312 if (sse) { 1311 if (sse) {
1313 dasm_put(Dst, 6350, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1312 dasm_put(Dst, 6346, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1314 } else { 1313 } else {
1315 } 1314 }
1316 dasm_put(Dst, 6393); 1315 dasm_put(Dst, 6389);
1317 if (sse) { 1316 if (sse) {
1318 dasm_put(Dst, 6397); 1317 dasm_put(Dst, 6393);
1319 } else { 1318 } else {
1320 } 1319 }
1321 dasm_put(Dst, 6409); 1320 dasm_put(Dst, 6405);
1322 if (sse) { 1321 if (sse) {
1323 dasm_put(Dst, 6420, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1322 dasm_put(Dst, 6416, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1324 } else { 1323 } else {
1325 } 1324 }
1326 dasm_put(Dst, 6489); 1325 dasm_put(Dst, 6485);
1327 if (sse) { 1326 if (sse) {
1328 dasm_put(Dst, 6498, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1327 dasm_put(Dst, 6494, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1329 } else { 1328 } else {
1330 } 1329 }
1331 dasm_put(Dst, 6567); 1330 dasm_put(Dst, 6563);
1332 if (sse) { 1331 if (sse) {
1333 dasm_put(Dst, 6577, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1332 dasm_put(Dst, 6573, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1334 } else { 1333 } else {
1335 } 1334 }
1336 dasm_put(Dst, 6646); 1335 dasm_put(Dst, 6642);
1337 if (sse) { 1336 if (sse) {
1338 dasm_put(Dst, 6656, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1337 dasm_put(Dst, 6652, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1339 } else { 1338 } else {
1340 } 1339 }
1341 dasm_put(Dst, 6725); 1340 dasm_put(Dst, 6721);
1342 if (sse) { 1341 if (sse) {
1343 dasm_put(Dst, 6734, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1342 dasm_put(Dst, 6730, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1344 } else { 1343 } else {
1345 } 1344 }
1346 dasm_put(Dst, 6803, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1345 dasm_put(Dst, 6799, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1347 dasm_put(Dst, 6881, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1346 dasm_put(Dst, 6877, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1348 dasm_put(Dst, 7007, Dt1(->top), Dt1(->base), Dt1(->top)); 1347 dasm_put(Dst, 7003, Dt1(->top), Dt1(->base), Dt1(->top));
1349#if LJ_HASJIT 1348#if LJ_HASJIT
1350 dasm_put(Dst, 7046, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1349 dasm_put(Dst, 7042, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1351#endif 1350#endif
1352 dasm_put(Dst, 7079, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1351 dasm_put(Dst, 7075, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1353 dasm_put(Dst, 7133, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1352 dasm_put(Dst, 7129, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1354#if LJ_HASJIT 1353#if LJ_HASJIT
1355 dasm_put(Dst, 7200, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1354 dasm_put(Dst, 7196, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1356#endif 1355#endif
1357 dasm_put(Dst, 7247); 1356 dasm_put(Dst, 7243);
1358#if LJ_HASJIT 1357#if LJ_HASJIT
1359 dasm_put(Dst, 7074); 1358 dasm_put(Dst, 7070);
1360#endif 1359#endif
1361 dasm_put(Dst, 7254); 1360 dasm_put(Dst, 7250);
1362#if LJ_HASJIT 1361#if LJ_HASJIT
1363 dasm_put(Dst, 7257); 1362 dasm_put(Dst, 7253);
1364#endif 1363#endif
1365 dasm_put(Dst, 7267, Dt1(->base), Dt1(->top)); 1364 dasm_put(Dst, 7263, Dt1(->base), Dt1(->top));
1366#if LJ_HASJIT 1365#if LJ_HASJIT
1367 dasm_put(Dst, 7300); 1366 dasm_put(Dst, 7296);
1368#endif 1367#endif
1369 dasm_put(Dst, 7305, Dt1(->base), Dt1(->top)); 1368 dasm_put(Dst, 7301, Dt1(->base), Dt1(->top));
1370#if LJ_HASJIT 1369#if LJ_HASJIT
1371 dasm_put(Dst, 7336, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1370 dasm_put(Dst, 7332, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1372#endif 1371#endif
1373 dasm_put(Dst, 7575); 1372 dasm_put(Dst, 7571);
1374#if LJ_HASJIT 1373#if LJ_HASJIT
1375 dasm_put(Dst, 7578, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1374 dasm_put(Dst, 7574, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1376#endif 1375#endif
1377 dasm_put(Dst, 7678); 1376 dasm_put(Dst, 7674);
1378 if (!sse) { 1377 if (!sse) {
1379 dasm_put(Dst, 7681); 1378 dasm_put(Dst, 7677);
1380 } 1379 }
1381 dasm_put(Dst, 7726, (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)); 1380 dasm_put(Dst, 7722, (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));
1382 if (!sse) { 1381 if (!sse) {
1383 dasm_put(Dst, 7812); 1382 dasm_put(Dst, 7808);
1384 } 1383 }
1385 dasm_put(Dst, 7857, (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)); 1384 dasm_put(Dst, 7853, (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));
1386 if (!sse) { 1385 if (!sse) {
1387 dasm_put(Dst, 7943); 1386 dasm_put(Dst, 7939);
1388 } 1387 }
1389 dasm_put(Dst, 7982, (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)); 1388 dasm_put(Dst, 7978, (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));
1390 if (sse) { 1389 if (sse) {
1391 dasm_put(Dst, 8071, (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)); 1390 dasm_put(Dst, 8067, (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));
1392 } else { 1391 } else {
1393 dasm_put(Dst, 8185); 1392 dasm_put(Dst, 8181);
1394 } 1393 }
1395 dasm_put(Dst, 8232); 1394 dasm_put(Dst, 8228);
1396 if (!sse) { 1395 if (!sse) {
1397 } else { 1396 } else {
1398 dasm_put(Dst, 8309); 1397 dasm_put(Dst, 8305);
1399 } 1398 }
1400 dasm_put(Dst, 8312); 1399 dasm_put(Dst, 8308);
1401 dasm_put(Dst, 8397, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1400 dasm_put(Dst, 8393, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1402 dasm_put(Dst, 8498, (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)); 1401 dasm_put(Dst, 8494, (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));
1403 dasm_put(Dst, 8672); 1402 dasm_put(Dst, 8668);
1403#if LJ_HASJIT
1404 if (sse) { 1404 if (sse) {
1405 dasm_put(Dst, 8713); 1405 dasm_put(Dst, 8709);
1406 dasm_put(Dst, 8783); 1406 dasm_put(Dst, 8779);
1407 dasm_put(Dst, 8855); 1407 dasm_put(Dst, 8851);
1408 } else { 1408 } else {
1409 dasm_put(Dst, 8907); 1409 dasm_put(Dst, 8903);
1410 dasm_put(Dst, 8999); 1410 dasm_put(Dst, 8995);
1411 } 1411 }
1412 dasm_put(Dst, 9041);
1413#endif
1412 dasm_put(Dst, 9045); 1414 dasm_put(Dst, 9045);
1413 if (sse) { 1415 if (sse) {
1414 dasm_put(Dst, 9051, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1416 dasm_put(Dst, 9048, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1415 dasm_put(Dst, 9136, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1417 dasm_put(Dst, 9133, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1416 } else { 1418 } else {
1417 dasm_put(Dst, 9264); 1419 dasm_put(Dst, 9261);
1418 dasm_put(Dst, 9347); 1420 dasm_put(Dst, 9344);
1419 if (cmov) { 1421 if (cmov) {
1420 dasm_put(Dst, 9402); 1422 dasm_put(Dst, 9399);
1421 } else { 1423 } else {
1422 dasm_put(Dst, 9421); 1424 dasm_put(Dst, 9418);
1423 } 1425 }
1424 dasm_put(Dst, 9260); 1426 dasm_put(Dst, 9041);
1425 } 1427 }
1426 dasm_put(Dst, 9462); 1428 dasm_put(Dst, 9459);
1427} 1429}
1428 1430
1429/* Generate the code for a single instruction. */ 1431/* Generate the code for a single instruction. */
1430static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1432static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1431{ 1433{
1432 int vk = 0; 1434 int vk = 0;
1433 dasm_put(Dst, 1804, defop); 1435 dasm_put(Dst, 1800, defop);
1434 1436
1435 switch (op) { 1437 switch (op) {
1436 1438
@@ -1439,597 +1441,597 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1439 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1441 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1440 1442
1441 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1443 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1442 dasm_put(Dst, 9484, LJ_TISNUM, LJ_TISNUM); 1444 dasm_put(Dst, 9481, LJ_TISNUM, LJ_TISNUM);
1443 if (sse) { 1445 if (sse) {
1444 dasm_put(Dst, 9505); 1446 dasm_put(Dst, 9502);
1445 } else { 1447 } else {
1446 dasm_put(Dst, 9520); 1448 dasm_put(Dst, 9517);
1447 if (cmov) { 1449 if (cmov) {
1448 dasm_put(Dst, 9530); 1450 dasm_put(Dst, 9527);
1449 } else { 1451 } else {
1450 dasm_put(Dst, 9536); 1452 dasm_put(Dst, 9533);
1451 } 1453 }
1452 } 1454 }
1453 switch (op) { 1455 switch (op) {
1454 case BC_ISLT: 1456 case BC_ISLT:
1455 dasm_put(Dst, 9543); 1457 dasm_put(Dst, 9540);
1456 break; 1458 break;
1457 case BC_ISGE: 1459 case BC_ISGE:
1458 dasm_put(Dst, 9342); 1460 dasm_put(Dst, 9339);
1459 break; 1461 break;
1460 case BC_ISLE: 1462 case BC_ISLE:
1461 dasm_put(Dst, 5951); 1463 dasm_put(Dst, 5947);
1462 break; 1464 break;
1463 case BC_ISGT: 1465 case BC_ISGT:
1464 dasm_put(Dst, 9548); 1466 dasm_put(Dst, 9545);
1465 break; 1467 break;
1466 default: break; /* Shut up GCC. */ 1468 default: break; /* Shut up GCC. */
1467 } 1469 }
1468 dasm_put(Dst, 9553, -BCBIAS_J*4); 1470 dasm_put(Dst, 9550, -BCBIAS_J*4);
1469 break; 1471 break;
1470 1472
1471 case BC_ISEQV: case BC_ISNEV: 1473 case BC_ISEQV: case BC_ISNEV:
1472 vk = op == BC_ISEQV; 1474 vk = op == BC_ISEQV;
1473 dasm_put(Dst, 9588, LJ_TISNUM, LJ_TISNUM); 1475 dasm_put(Dst, 9585, LJ_TISNUM, LJ_TISNUM);
1474 if (sse) { 1476 if (sse) {
1475 dasm_put(Dst, 9614); 1477 dasm_put(Dst, 9611);
1476 } else { 1478 } else {
1477 dasm_put(Dst, 9626); 1479 dasm_put(Dst, 9623);
1478 if (cmov) { 1480 if (cmov) {
1479 dasm_put(Dst, 9530); 1481 dasm_put(Dst, 9527);
1480 } else { 1482 } else {
1481 dasm_put(Dst, 9536); 1483 dasm_put(Dst, 9533);
1482 } 1484 }
1483 } 1485 }
1484 iseqne_fp: 1486 iseqne_fp:
1485 if (vk) { 1487 if (vk) {
1486 dasm_put(Dst, 9633); 1488 dasm_put(Dst, 9630);
1487 } else { 1489 } else {
1488 dasm_put(Dst, 9642); 1490 dasm_put(Dst, 9639);
1489 } 1491 }
1490 iseqne_end: 1492 iseqne_end:
1491 if (vk) { 1493 if (vk) {
1492 dasm_put(Dst, 9651, -BCBIAS_J*4); 1494 dasm_put(Dst, 9648, -BCBIAS_J*4);
1493 } else { 1495 } else {
1494 dasm_put(Dst, 9666, -BCBIAS_J*4); 1496 dasm_put(Dst, 9663, -BCBIAS_J*4);
1495 } 1497 }
1496 dasm_put(Dst, 9567); 1498 dasm_put(Dst, 9564);
1497 if (op == BC_ISEQV || op == BC_ISNEV) { 1499 if (op == BC_ISEQV || op == BC_ISNEV) {
1498 dasm_put(Dst, 9681, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1500 dasm_put(Dst, 9678, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1499 if (vk) { 1501 if (vk) {
1500 dasm_put(Dst, 9739); 1502 dasm_put(Dst, 9736);
1501 } else { 1503 } else {
1502 dasm_put(Dst, 9743); 1504 dasm_put(Dst, 9740);
1503 } 1505 }
1504 dasm_put(Dst, 9749); 1506 dasm_put(Dst, 9746);
1505 } 1507 }
1506 break; 1508 break;
1507 case BC_ISEQS: case BC_ISNES: 1509 case BC_ISEQS: case BC_ISNES:
1508 vk = op == BC_ISEQS; 1510 vk = op == BC_ISEQS;
1509 dasm_put(Dst, 9754, LJ_TSTR); 1511 dasm_put(Dst, 9751, LJ_TSTR);
1510 iseqne_test: 1512 iseqne_test:
1511 if (vk) { 1513 if (vk) {
1512 dasm_put(Dst, 9637); 1514 dasm_put(Dst, 9634);
1513 } else { 1515 } else {
1514 dasm_put(Dst, 2840); 1516 dasm_put(Dst, 2836);
1515 } 1517 }
1516 goto iseqne_end; 1518 goto iseqne_end;
1517 case BC_ISEQN: case BC_ISNEN: 1519 case BC_ISEQN: case BC_ISNEN:
1518 vk = op == BC_ISEQN; 1520 vk = op == BC_ISEQN;
1519 dasm_put(Dst, 9779, LJ_TISNUM); 1521 dasm_put(Dst, 9776, LJ_TISNUM);
1520 if (sse) { 1522 if (sse) {
1521 dasm_put(Dst, 9793); 1523 dasm_put(Dst, 9790);
1522 } else { 1524 } else {
1523 dasm_put(Dst, 9806); 1525 dasm_put(Dst, 9803);
1524 if (cmov) { 1526 if (cmov) {
1525 dasm_put(Dst, 9530); 1527 dasm_put(Dst, 9527);
1526 } else { 1528 } else {
1527 dasm_put(Dst, 9536); 1529 dasm_put(Dst, 9533);
1528 } 1530 }
1529 } 1531 }
1530 goto iseqne_fp; 1532 goto iseqne_fp;
1531 case BC_ISEQP: case BC_ISNEP: 1533 case BC_ISEQP: case BC_ISNEP:
1532 vk = op == BC_ISEQP; 1534 vk = op == BC_ISEQP;
1533 dasm_put(Dst, 9814); 1535 dasm_put(Dst, 9811);
1534 goto iseqne_test; 1536 goto iseqne_test;
1535 1537
1536 /* -- Unary test and copy ops ------------------------------------------- */ 1538 /* -- Unary test and copy ops ------------------------------------------- */
1537 1539
1538 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1540 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1539 dasm_put(Dst, 9826, LJ_TISTRUECOND); 1541 dasm_put(Dst, 9823, LJ_TISTRUECOND);
1540 if (op == BC_IST || op == BC_ISTC) { 1542 if (op == BC_IST || op == BC_ISTC) {
1541 dasm_put(Dst, 9838); 1543 dasm_put(Dst, 9835);
1542 } else { 1544 } else {
1543 dasm_put(Dst, 9843); 1545 dasm_put(Dst, 9840);
1544 } 1546 }
1545 if (op == BC_ISTC || op == BC_ISFC) { 1547 if (op == BC_ISTC || op == BC_ISFC) {
1546 dasm_put(Dst, 9848); 1548 dasm_put(Dst, 9845);
1547 } 1549 }
1548 dasm_put(Dst, 9859, -BCBIAS_J*4); 1550 dasm_put(Dst, 9856, -BCBIAS_J*4);
1549 break; 1551 break;
1550 1552
1551 /* -- Unary ops --------------------------------------------------------- */ 1553 /* -- Unary ops --------------------------------------------------------- */
1552 1554
1553 case BC_MOV: 1555 case BC_MOV:
1554 dasm_put(Dst, 9892); 1556 dasm_put(Dst, 9889);
1555 break; 1557 break;
1556 case BC_NOT: 1558 case BC_NOT:
1557 dasm_put(Dst, 9927, LJ_TISTRUECOND, LJ_TTRUE); 1559 dasm_put(Dst, 9924, LJ_TISTRUECOND, LJ_TTRUE);
1558 break; 1560 break;
1559 case BC_UNM: 1561 case BC_UNM:
1560 dasm_put(Dst, 9964, LJ_TISNUM); 1562 dasm_put(Dst, 9961, LJ_TISNUM);
1561 if (sse) { 1563 if (sse) {
1562 dasm_put(Dst, 9975, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1564 dasm_put(Dst, 9972, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1563 } else { 1565 } else {
1564 dasm_put(Dst, 10000); 1566 dasm_put(Dst, 9997);
1565 } 1567 }
1566 dasm_put(Dst, 9567); 1568 dasm_put(Dst, 9564);
1567 break; 1569 break;
1568 case BC_LEN: 1570 case BC_LEN:
1569 dasm_put(Dst, 10009, LJ_TSTR); 1571 dasm_put(Dst, 10006, LJ_TSTR);
1570 if (sse) { 1572 if (sse) {
1571 dasm_put(Dst, 10023, Dt5(->len)); 1573 dasm_put(Dst, 10020, Dt5(->len));
1572 } else { 1574 } else {
1573 dasm_put(Dst, 10041, Dt5(->len)); 1575 dasm_put(Dst, 10038, Dt5(->len));
1574 } 1576 }
1575 dasm_put(Dst, 10050, LJ_TTAB); 1577 dasm_put(Dst, 10047, LJ_TTAB);
1576 if (sse) { 1578 if (sse) {
1577 dasm_put(Dst, 10092); 1579 dasm_put(Dst, 10089);
1578 } else { 1580 } else {
1579 } 1581 }
1580 dasm_put(Dst, 10101); 1582 dasm_put(Dst, 10098);
1581 break; 1583 break;
1582 1584
1583 /* -- Binary ops -------------------------------------------------------- */ 1585 /* -- Binary ops -------------------------------------------------------- */
1584 1586
1585 1587
1586 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1588 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1587 dasm_put(Dst, 10111); 1589 dasm_put(Dst, 10108);
1588 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1590 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1589 switch (vk) { 1591 switch (vk) {
1590 case 0: 1592 case 0:
1591 dasm_put(Dst, 10119, LJ_TISNUM); 1593 dasm_put(Dst, 10116, LJ_TISNUM);
1592 if (sse) { 1594 if (sse) {
1593 dasm_put(Dst, 10131); 1595 dasm_put(Dst, 10128);
1594 } else { 1596 } else {
1595 dasm_put(Dst, 10146); 1597 dasm_put(Dst, 10143);
1596 } 1598 }
1597 break; 1599 break;
1598 case 1: 1600 case 1:
1599 dasm_put(Dst, 10155, LJ_TISNUM); 1601 dasm_put(Dst, 10152, LJ_TISNUM);
1600 if (sse) { 1602 if (sse) {
1601 dasm_put(Dst, 10167); 1603 dasm_put(Dst, 10164);
1602 } else { 1604 } else {
1603 dasm_put(Dst, 10182); 1605 dasm_put(Dst, 10179);
1604 } 1606 }
1605 break; 1607 break;
1606 default: 1608 default:
1607 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1609 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1608 if (sse) { 1610 if (sse) {
1609 dasm_put(Dst, 10213); 1611 dasm_put(Dst, 10210);
1610 } else { 1612 } else {
1611 dasm_put(Dst, 10227); 1613 dasm_put(Dst, 10224);
1612 } 1614 }
1613 break; 1615 break;
1614 } 1616 }
1615 if (sse) { 1617 if (sse) {
1616 dasm_put(Dst, 9993); 1618 dasm_put(Dst, 9990);
1617 } else { 1619 } else {
1618 dasm_put(Dst, 10005); 1620 dasm_put(Dst, 10002);
1619 } 1621 }
1620 dasm_put(Dst, 9567); 1622 dasm_put(Dst, 9564);
1621 break; 1623 break;
1622 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1624 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1623 dasm_put(Dst, 10111); 1625 dasm_put(Dst, 10108);
1624 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1626 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1625 switch (vk) { 1627 switch (vk) {
1626 case 0: 1628 case 0:
1627 dasm_put(Dst, 10119, LJ_TISNUM); 1629 dasm_put(Dst, 10116, LJ_TISNUM);
1628 if (sse) { 1630 if (sse) {
1629 dasm_put(Dst, 10235); 1631 dasm_put(Dst, 10232);
1630 } else { 1632 } else {
1631 dasm_put(Dst, 10250); 1633 dasm_put(Dst, 10247);
1632 } 1634 }
1633 break; 1635 break;
1634 case 1: 1636 case 1:
1635 dasm_put(Dst, 10155, LJ_TISNUM); 1637 dasm_put(Dst, 10152, LJ_TISNUM);
1636 if (sse) { 1638 if (sse) {
1637 dasm_put(Dst, 10259); 1639 dasm_put(Dst, 10256);
1638 } else { 1640 } else {
1639 dasm_put(Dst, 10274); 1641 dasm_put(Dst, 10271);
1640 } 1642 }
1641 break; 1643 break;
1642 default: 1644 default:
1643 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1645 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1644 if (sse) { 1646 if (sse) {
1645 dasm_put(Dst, 10283); 1647 dasm_put(Dst, 10280);
1646 } else { 1648 } else {
1647 dasm_put(Dst, 10297); 1649 dasm_put(Dst, 10294);
1648 } 1650 }
1649 break; 1651 break;
1650 } 1652 }
1651 if (sse) { 1653 if (sse) {
1652 dasm_put(Dst, 9993); 1654 dasm_put(Dst, 9990);
1653 } else { 1655 } else {
1654 dasm_put(Dst, 10005); 1656 dasm_put(Dst, 10002);
1655 } 1657 }
1656 dasm_put(Dst, 9567); 1658 dasm_put(Dst, 9564);
1657 break; 1659 break;
1658 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1660 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1659 dasm_put(Dst, 10111); 1661 dasm_put(Dst, 10108);
1660 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1662 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1661 switch (vk) { 1663 switch (vk) {
1662 case 0: 1664 case 0:
1663 dasm_put(Dst, 10119, LJ_TISNUM); 1665 dasm_put(Dst, 10116, LJ_TISNUM);
1664 if (sse) { 1666 if (sse) {
1665 dasm_put(Dst, 10305); 1667 dasm_put(Dst, 10302);
1666 } else { 1668 } else {
1667 dasm_put(Dst, 10320); 1669 dasm_put(Dst, 10317);
1668 } 1670 }
1669 break; 1671 break;
1670 case 1: 1672 case 1:
1671 dasm_put(Dst, 10155, LJ_TISNUM); 1673 dasm_put(Dst, 10152, LJ_TISNUM);
1672 if (sse) { 1674 if (sse) {
1673 dasm_put(Dst, 10329); 1675 dasm_put(Dst, 10326);
1674 } else { 1676 } else {
1675 dasm_put(Dst, 10344); 1677 dasm_put(Dst, 10341);
1676 } 1678 }
1677 break; 1679 break;
1678 default: 1680 default:
1679 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1681 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1680 if (sse) { 1682 if (sse) {
1681 dasm_put(Dst, 10353); 1683 dasm_put(Dst, 10350);
1682 } else { 1684 } else {
1683 dasm_put(Dst, 10367); 1685 dasm_put(Dst, 10364);
1684 } 1686 }
1685 break; 1687 break;
1686 } 1688 }
1687 if (sse) { 1689 if (sse) {
1688 dasm_put(Dst, 9993); 1690 dasm_put(Dst, 9990);
1689 } else { 1691 } else {
1690 dasm_put(Dst, 10005); 1692 dasm_put(Dst, 10002);
1691 } 1693 }
1692 dasm_put(Dst, 9567); 1694 dasm_put(Dst, 9564);
1693 break; 1695 break;
1694 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1696 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1695 dasm_put(Dst, 10111); 1697 dasm_put(Dst, 10108);
1696 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1698 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1697 switch (vk) { 1699 switch (vk) {
1698 case 0: 1700 case 0:
1699 dasm_put(Dst, 10119, LJ_TISNUM); 1701 dasm_put(Dst, 10116, LJ_TISNUM);
1700 if (sse) { 1702 if (sse) {
1701 dasm_put(Dst, 10375); 1703 dasm_put(Dst, 10372);
1702 } else { 1704 } else {
1703 dasm_put(Dst, 10390); 1705 dasm_put(Dst, 10387);
1704 } 1706 }
1705 break; 1707 break;
1706 case 1: 1708 case 1:
1707 dasm_put(Dst, 10155, LJ_TISNUM); 1709 dasm_put(Dst, 10152, LJ_TISNUM);
1708 if (sse) { 1710 if (sse) {
1709 dasm_put(Dst, 10399); 1711 dasm_put(Dst, 10396);
1710 } else { 1712 } else {
1711 dasm_put(Dst, 10414); 1713 dasm_put(Dst, 10411);
1712 } 1714 }
1713 break; 1715 break;
1714 default: 1716 default:
1715 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1717 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1716 if (sse) { 1718 if (sse) {
1717 dasm_put(Dst, 10423); 1719 dasm_put(Dst, 10420);
1718 } else { 1720 } else {
1719 dasm_put(Dst, 10437); 1721 dasm_put(Dst, 10434);
1720 } 1722 }
1721 break; 1723 break;
1722 } 1724 }
1723 if (sse) { 1725 if (sse) {
1724 dasm_put(Dst, 9993); 1726 dasm_put(Dst, 9990);
1725 } else { 1727 } else {
1726 dasm_put(Dst, 10005); 1728 dasm_put(Dst, 10002);
1727 } 1729 }
1728 dasm_put(Dst, 9567); 1730 dasm_put(Dst, 9564);
1729 break; 1731 break;
1730 case BC_MODVN: 1732 case BC_MODVN:
1731 dasm_put(Dst, 10111); 1733 dasm_put(Dst, 10108);
1732 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1734 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1733 switch (vk) { 1735 switch (vk) {
1734 case 0: 1736 case 0:
1735 dasm_put(Dst, 10119, LJ_TISNUM); 1737 dasm_put(Dst, 10116, LJ_TISNUM);
1736 if (sse) { 1738 if (sse) {
1737 dasm_put(Dst, 10445); 1739 dasm_put(Dst, 10442);
1738 } else { 1740 } else {
1739 dasm_put(Dst, 10460); 1741 dasm_put(Dst, 10457);
1740 } 1742 }
1741 break; 1743 break;
1742 case 1: 1744 case 1:
1743 dasm_put(Dst, 10155, LJ_TISNUM); 1745 dasm_put(Dst, 10152, LJ_TISNUM);
1744 if (sse) { 1746 if (sse) {
1745 dasm_put(Dst, 10469); 1747 dasm_put(Dst, 10466);
1746 } else { 1748 } else {
1747 dasm_put(Dst, 10484); 1749 dasm_put(Dst, 10481);
1748 } 1750 }
1749 break; 1751 break;
1750 default: 1752 default:
1751 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1753 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1752 if (sse) { 1754 if (sse) {
1753 dasm_put(Dst, 10493); 1755 dasm_put(Dst, 10490);
1754 } else { 1756 } else {
1755 dasm_put(Dst, 10507); 1757 dasm_put(Dst, 10504);
1756 } 1758 }
1757 break; 1759 break;
1758 } 1760 }
1759 dasm_put(Dst, 10515); 1761 dasm_put(Dst, 10512);
1760 if (sse) { 1762 if (sse) {
1761 dasm_put(Dst, 9993); 1763 dasm_put(Dst, 9990);
1762 } else { 1764 } else {
1763 dasm_put(Dst, 10005); 1765 dasm_put(Dst, 10002);
1764 } 1766 }
1765 dasm_put(Dst, 9567); 1767 dasm_put(Dst, 9564);
1766 break; 1768 break;
1767 case BC_MODNV: case BC_MODVV: 1769 case BC_MODNV: case BC_MODVV:
1768 dasm_put(Dst, 10111); 1770 dasm_put(Dst, 10108);
1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1770 switch (vk) { 1772 switch (vk) {
1771 case 0: 1773 case 0:
1772 dasm_put(Dst, 10119, LJ_TISNUM); 1774 dasm_put(Dst, 10116, LJ_TISNUM);
1773 if (sse) { 1775 if (sse) {
1774 dasm_put(Dst, 10445); 1776 dasm_put(Dst, 10442);
1775 } else { 1777 } else {
1776 dasm_put(Dst, 10460); 1778 dasm_put(Dst, 10457);
1777 } 1779 }
1778 break; 1780 break;
1779 case 1: 1781 case 1:
1780 dasm_put(Dst, 10155, LJ_TISNUM); 1782 dasm_put(Dst, 10152, LJ_TISNUM);
1781 if (sse) { 1783 if (sse) {
1782 dasm_put(Dst, 10469); 1784 dasm_put(Dst, 10466);
1783 } else { 1785 } else {
1784 dasm_put(Dst, 10484); 1786 dasm_put(Dst, 10481);
1785 } 1787 }
1786 break; 1788 break;
1787 default: 1789 default:
1788 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1790 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1789 if (sse) { 1791 if (sse) {
1790 dasm_put(Dst, 10493); 1792 dasm_put(Dst, 10490);
1791 } else { 1793 } else {
1792 dasm_put(Dst, 10507); 1794 dasm_put(Dst, 10504);
1793 } 1795 }
1794 break; 1796 break;
1795 } 1797 }
1796 dasm_put(Dst, 10521); 1798 dasm_put(Dst, 10518);
1797 break; 1799 break;
1798 case BC_POW: 1800 case BC_POW:
1799 dasm_put(Dst, 10111); 1801 dasm_put(Dst, 10108);
1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1802 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1801 switch (vk) { 1803 switch (vk) {
1802 case 0: 1804 case 0:
1803 dasm_put(Dst, 10119, LJ_TISNUM); 1805 dasm_put(Dst, 10116, LJ_TISNUM);
1804 if (sse) { 1806 if (sse) {
1805 dasm_put(Dst, 10445); 1807 dasm_put(Dst, 10442);
1806 } else { 1808 } else {
1807 dasm_put(Dst, 10460); 1809 dasm_put(Dst, 10457);
1808 } 1810 }
1809 break; 1811 break;
1810 case 1: 1812 case 1:
1811 dasm_put(Dst, 10155, LJ_TISNUM); 1813 dasm_put(Dst, 10152, LJ_TISNUM);
1812 if (sse) { 1814 if (sse) {
1813 dasm_put(Dst, 10469); 1815 dasm_put(Dst, 10466);
1814 } else { 1816 } else {
1815 dasm_put(Dst, 10484); 1817 dasm_put(Dst, 10481);
1816 } 1818 }
1817 break; 1819 break;
1818 default: 1820 default:
1819 dasm_put(Dst, 10191, LJ_TISNUM, LJ_TISNUM); 1821 dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
1820 if (sse) { 1822 if (sse) {
1821 dasm_put(Dst, 10493); 1823 dasm_put(Dst, 10490);
1822 } else { 1824 } else {
1823 dasm_put(Dst, 10507); 1825 dasm_put(Dst, 10504);
1824 } 1826 }
1825 break; 1827 break;
1826 } 1828 }
1827 dasm_put(Dst, 10526); 1829 dasm_put(Dst, 10523);
1828 if (sse) { 1830 if (sse) {
1829 dasm_put(Dst, 9993); 1831 dasm_put(Dst, 9990);
1830 } else { 1832 } else {
1831 dasm_put(Dst, 10005); 1833 dasm_put(Dst, 10002);
1832 } 1834 }
1833 dasm_put(Dst, 9567); 1835 dasm_put(Dst, 9564);
1834 break; 1836 break;
1835 1837
1836 case BC_CAT: 1838 case BC_CAT:
1837 dasm_put(Dst, 10530, Dt1(->base), Dt1(->base)); 1839 dasm_put(Dst, 10527, Dt1(->base), Dt1(->base));
1838 break; 1840 break;
1839 1841
1840 /* -- Constant ops ------------------------------------------------------ */ 1842 /* -- Constant ops ------------------------------------------------------ */
1841 1843
1842 case BC_KSTR: 1844 case BC_KSTR:
1843 dasm_put(Dst, 10621, LJ_TSTR); 1845 dasm_put(Dst, 10618, LJ_TSTR);
1844 break; 1846 break;
1845 case BC_KSHORT: 1847 case BC_KSHORT:
1846 if (sse) { 1848 if (sse) {
1847 dasm_put(Dst, 10658); 1849 dasm_put(Dst, 10655);
1848 } else { 1850 } else {
1849 dasm_put(Dst, 10673); 1851 dasm_put(Dst, 10670);
1850 } 1852 }
1851 dasm_put(Dst, 9567); 1853 dasm_put(Dst, 9564);
1852 break; 1854 break;
1853 case BC_KNUM: 1855 case BC_KNUM:
1854 if (sse) { 1856 if (sse) {
1855 dasm_put(Dst, 10681); 1857 dasm_put(Dst, 10678);
1856 } else { 1858 } else {
1857 dasm_put(Dst, 10695); 1859 dasm_put(Dst, 10692);
1858 } 1860 }
1859 dasm_put(Dst, 9567); 1861 dasm_put(Dst, 9564);
1860 break; 1862 break;
1861 case BC_KPRI: 1863 case BC_KPRI:
1862 dasm_put(Dst, 10703); 1864 dasm_put(Dst, 10700);
1863 break; 1865 break;
1864 case BC_KNIL: 1866 case BC_KNIL:
1865 dasm_put(Dst, 10732, LJ_TNIL); 1867 dasm_put(Dst, 10729, LJ_TNIL);
1866 break; 1868 break;
1867 1869
1868 /* -- Upvalue and function ops ------------------------------------------ */ 1870 /* -- Upvalue and function ops ------------------------------------------ */
1869 1871
1870 case BC_UGET: 1872 case BC_UGET:
1871 dasm_put(Dst, 10780, offsetof(GCfuncL, uvptr), DtA(->v)); 1873 dasm_put(Dst, 10777, offsetof(GCfuncL, uvptr), DtA(->v));
1872 break; 1874 break;
1873 case BC_USETV: 1875 case BC_USETV:
1874#define TV2MARKOFS \ 1876#define TV2MARKOFS \
1875 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1877 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1876 dasm_put(Dst, 10826, 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); 1878 dasm_put(Dst, 10823, 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);
1877 dasm_put(Dst, 10922); 1879 dasm_put(Dst, 10919);
1878 break; 1880 break;
1879#undef TV2MARKOFS 1881#undef TV2MARKOFS
1880 case BC_USETS: 1882 case BC_USETS:
1881 dasm_put(Dst, 10934, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1883 dasm_put(Dst, 10931, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1882 break; 1884 break;
1883 case BC_USETN: 1885 case BC_USETN:
1884 dasm_put(Dst, 11030); 1886 dasm_put(Dst, 11027);
1885 if (sse) { 1887 if (sse) {
1886 dasm_put(Dst, 11035); 1888 dasm_put(Dst, 11032);
1887 } else { 1889 } else {
1888 dasm_put(Dst, 9809); 1890 dasm_put(Dst, 9806);
1889 } 1891 }
1890 dasm_put(Dst, 11043, offsetof(GCfuncL, uvptr), DtA(->v)); 1892 dasm_put(Dst, 11040, offsetof(GCfuncL, uvptr), DtA(->v));
1891 if (sse) { 1893 if (sse) {
1892 dasm_put(Dst, 11052); 1894 dasm_put(Dst, 11049);
1893 } else { 1895 } else {
1894 dasm_put(Dst, 11058); 1896 dasm_put(Dst, 11055);
1895 } 1897 }
1896 dasm_put(Dst, 9567); 1898 dasm_put(Dst, 9564);
1897 break; 1899 break;
1898 case BC_USETP: 1900 case BC_USETP:
1899 dasm_put(Dst, 11061, offsetof(GCfuncL, uvptr), DtA(->v)); 1901 dasm_put(Dst, 11058, offsetof(GCfuncL, uvptr), DtA(->v));
1900 break; 1902 break;
1901 case BC_UCLO: 1903 case BC_UCLO:
1902 dasm_put(Dst, 11101, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1904 dasm_put(Dst, 11098, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1903 break; 1905 break;
1904 1906
1905 case BC_FNEW: 1907 case BC_FNEW:
1906 dasm_put(Dst, 11157, Dt1(->base), Dt1(->base), LJ_TFUNC); 1908 dasm_put(Dst, 11154, Dt1(->base), Dt1(->base), LJ_TFUNC);
1907 break; 1909 break;
1908 1910
1909 /* -- Table ops --------------------------------------------------------- */ 1911 /* -- Table ops --------------------------------------------------------- */
1910 1912
1911 case BC_TNEW: 1913 case BC_TNEW:
1912 dasm_put(Dst, 11224, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1914 dasm_put(Dst, 11221, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1913 break; 1915 break;
1914 case BC_TDUP: 1916 case BC_TDUP:
1915 dasm_put(Dst, 11348, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1917 dasm_put(Dst, 11345, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1916 break; 1918 break;
1917 1919
1918 case BC_GGET: 1920 case BC_GGET:
1919 dasm_put(Dst, 11447, Dt7(->env)); 1921 dasm_put(Dst, 11444, Dt7(->env));
1920 break; 1922 break;
1921 case BC_GSET: 1923 case BC_GSET:
1922 dasm_put(Dst, 11467, Dt7(->env)); 1924 dasm_put(Dst, 11464, Dt7(->env));
1923 break; 1925 break;
1924 1926
1925 case BC_TGETV: 1927 case BC_TGETV:
1926 dasm_put(Dst, 11487, LJ_TTAB, LJ_TISNUM); 1928 dasm_put(Dst, 11484, LJ_TTAB, LJ_TISNUM);
1927 if (sse) { 1929 if (sse) {
1928 dasm_put(Dst, 11520); 1930 dasm_put(Dst, 11517);
1929 } else { 1931 } else {
1930 } 1932 }
1931 dasm_put(Dst, 11541, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1933 dasm_put(Dst, 11538, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1932 dasm_put(Dst, 11635, LJ_TSTR); 1934 dasm_put(Dst, 11632, LJ_TSTR);
1933 break; 1935 break;
1934 case BC_TGETS: 1936 case BC_TGETS:
1935 dasm_put(Dst, 11653, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1937 dasm_put(Dst, 11650, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1936 dasm_put(Dst, 11739, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1938 dasm_put(Dst, 11736, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1937 break; 1939 break;
1938 case BC_TGETB: 1940 case BC_TGETB:
1939 dasm_put(Dst, 11812, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1941 dasm_put(Dst, 11809, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1940 dasm_put(Dst, 10101); 1942 dasm_put(Dst, 10098);
1941 break; 1943 break;
1942 1944
1943 case BC_TSETV: 1945 case BC_TSETV:
1944 dasm_put(Dst, 11913, LJ_TTAB, LJ_TISNUM); 1946 dasm_put(Dst, 11910, LJ_TTAB, LJ_TISNUM);
1945 if (sse) { 1947 if (sse) {
1946 dasm_put(Dst, 11520); 1948 dasm_put(Dst, 11517);
1947 } else { 1949 } else {
1948 } 1950 }
1949 dasm_put(Dst, 11946, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1951 dasm_put(Dst, 11943, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1950 dasm_put(Dst, 12031, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1952 dasm_put(Dst, 12028, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1951 break; 1953 break;
1952 case BC_TSETS: 1954 case BC_TSETS:
1953 dasm_put(Dst, 12095, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1955 dasm_put(Dst, 12092, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1954 dasm_put(Dst, 12172, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1956 dasm_put(Dst, 12169, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1955 dasm_put(Dst, 12264, 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)); 1957 dasm_put(Dst, 12261, 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));
1956 break; 1958 break;
1957 case BC_TSETB: 1959 case BC_TSETB:
1958 dasm_put(Dst, 12356, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1960 dasm_put(Dst, 12353, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1959 dasm_put(Dst, 12456, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1961 dasm_put(Dst, 12453, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1960 break; 1962 break;
1961 1963
1962 case BC_TSETM: 1964 case BC_TSETM:
1963 dasm_put(Dst, 12504); 1965 dasm_put(Dst, 12501);
1964 if (sse) { 1966 if (sse) {
1965 dasm_put(Dst, 12509); 1967 dasm_put(Dst, 12506);
1966 } else { 1968 } else {
1967 } 1969 }
1968 dasm_put(Dst, 12517, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1970 dasm_put(Dst, 12514, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1969 dasm_put(Dst, 12665, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1971 dasm_put(Dst, 12662, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1970 break; 1972 break;
1971 1973
1972 /* -- Calls and vararg handling ----------------------------------------- */ 1974 /* -- Calls and vararg handling ----------------------------------------- */
1973 1975
1974 case BC_CALL: case BC_CALLM: 1976 case BC_CALL: case BC_CALLM:
1975 dasm_put(Dst, 10115); 1977 dasm_put(Dst, 10112);
1976 if (op == BC_CALLM) { 1978 if (op == BC_CALLM) {
1977 dasm_put(Dst, 12685); 1979 dasm_put(Dst, 12682);
1978 } 1980 }
1979 dasm_put(Dst, 12690, LJ_TFUNC, Dt7(->pc)); 1981 dasm_put(Dst, 12687, LJ_TFUNC, Dt7(->pc));
1980 break; 1982 break;
1981 1983
1982 case BC_CALLMT: 1984 case BC_CALLMT:
1983 dasm_put(Dst, 12685); 1985 dasm_put(Dst, 12682);
1984 break; 1986 break;
1985 case BC_CALLT: 1987 case BC_CALLT:
1986 dasm_put(Dst, 12733, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1988 dasm_put(Dst, 12730, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1987 dasm_put(Dst, 12857, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 1989 dasm_put(Dst, 12854, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1988 break; 1990 break;
1989 1991
1990 case BC_ITERC: 1992 case BC_ITERC:
1991 dasm_put(Dst, 12931, LJ_TFUNC, 2+1, Dt7(->pc)); 1993 dasm_put(Dst, 12928, LJ_TFUNC, 2+1, Dt7(->pc));
1992 break; 1994 break;
1993 1995
1994 case BC_VARG: 1996 case BC_VARG:
1995 dasm_put(Dst, 13013, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1997 dasm_put(Dst, 13010, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1996 dasm_put(Dst, 13167, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1998 dasm_put(Dst, 13164, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1997 break; 1999 break;
1998 2000
1999 /* -- Returns ----------------------------------------------------------- */ 2001 /* -- Returns ----------------------------------------------------------- */
2000 2002
2001 case BC_RETM: 2003 case BC_RETM:
2002 dasm_put(Dst, 12685); 2004 dasm_put(Dst, 12682);
2003 break; 2005 break;
2004 2006
2005 case BC_RET: case BC_RET0: case BC_RET1: 2007 case BC_RET: case BC_RET0: case BC_RET1:
2006 if (op != BC_RET0) { 2008 if (op != BC_RET0) {
2007 dasm_put(Dst, 13272); 2009 dasm_put(Dst, 13269);
2008 } 2010 }
2009 dasm_put(Dst, 13276, FRAME_TYPE); 2011 dasm_put(Dst, 13273, FRAME_TYPE);
2010 switch (op) { 2012 switch (op) {
2011 case BC_RET: 2013 case BC_RET:
2012 dasm_put(Dst, 13295); 2014 dasm_put(Dst, 13292);
2013 break; 2015 break;
2014 case BC_RET1: 2016 case BC_RET1:
2015 dasm_put(Dst, 13359); 2017 dasm_put(Dst, 13356);
2016 /* fallthrough */ 2018 /* fallthrough */
2017 case BC_RET0: 2019 case BC_RET0:
2018 dasm_put(Dst, 13375); 2020 dasm_put(Dst, 13372);
2019 default: 2021 default:
2020 break; 2022 break;
2021 } 2023 }
2022 dasm_put(Dst, 13386, Dt7(->pc), PC2PROTO(k)); 2024 dasm_put(Dst, 13383, Dt7(->pc), PC2PROTO(k));
2023 if (op == BC_RET) { 2025 if (op == BC_RET) {
2024 dasm_put(Dst, 13434, LJ_TNIL); 2026 dasm_put(Dst, 13431, LJ_TNIL);
2025 } else { 2027 } else {
2026 dasm_put(Dst, 13445, LJ_TNIL); 2028 dasm_put(Dst, 13442, LJ_TNIL);
2027 } 2029 }
2028 dasm_put(Dst, 13452, -FRAME_VARG, FRAME_TYPEP); 2030 dasm_put(Dst, 13449, -FRAME_VARG, FRAME_TYPEP);
2029 if (op != BC_RET0) { 2031 if (op != BC_RET0) {
2030 dasm_put(Dst, 13476); 2032 dasm_put(Dst, 13473);
2031 } 2033 }
2032 dasm_put(Dst, 4603); 2034 dasm_put(Dst, 4599);
2033 break; 2035 break;
2034 2036
2035 /* -- Loops and branches ------------------------------------------------ */ 2037 /* -- Loops and branches ------------------------------------------------ */
@@ -2037,7 +2039,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2037 2039
2038 case BC_FORL: 2040 case BC_FORL:
2039#if LJ_HASJIT 2041#if LJ_HASJIT
2040 dasm_put(Dst, 13480, HOTCOUNT_PCMASK, GG_DISP2HOT); 2042 dasm_put(Dst, 13477, HOTCOUNT_PCMASK, GG_DISP2HOT);
2041#endif 2043#endif
2042 break; 2044 break;
2043 2045
@@ -2049,57 +2051,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2049 case BC_FORI: 2051 case BC_FORI:
2050 case BC_IFORL: 2052 case BC_IFORL:
2051 vk = (op == BC_IFORL || op == BC_JFORL); 2053 vk = (op == BC_IFORL || op == BC_JFORL);
2052 dasm_put(Dst, 13501); 2054 dasm_put(Dst, 13498);
2053 if (!vk) { 2055 if (!vk) {
2054 dasm_put(Dst, 13505, LJ_TISNUM, LJ_TISNUM); 2056 dasm_put(Dst, 13502, LJ_TISNUM, LJ_TISNUM);
2055 } 2057 }
2056 dasm_put(Dst, 13524); 2058 dasm_put(Dst, 13521);
2057 if (!vk) { 2059 if (!vk) {
2058 dasm_put(Dst, 13528, LJ_TISNUM); 2060 dasm_put(Dst, 13525, LJ_TISNUM);
2059 } 2061 }
2060 if (sse) { 2062 if (sse) {
2061 dasm_put(Dst, 13537); 2063 dasm_put(Dst, 13534);
2062 if (vk) { 2064 if (vk) {
2063 dasm_put(Dst, 13549); 2065 dasm_put(Dst, 13546);
2064 } else { 2066 } else {
2065 dasm_put(Dst, 13568); 2067 dasm_put(Dst, 13565);
2066 } 2068 }
2067 dasm_put(Dst, 13573); 2069 dasm_put(Dst, 13570);
2068 } else { 2070 } else {
2069 dasm_put(Dst, 13586); 2071 dasm_put(Dst, 13583);
2070 if (vk) { 2072 if (vk) {
2071 dasm_put(Dst, 13592); 2073 dasm_put(Dst, 13589);
2072 } else { 2074 } else {
2073 dasm_put(Dst, 13608); 2075 dasm_put(Dst, 13605);
2074 } 2076 }
2075 dasm_put(Dst, 13616); 2077 dasm_put(Dst, 13613);
2076 if (cmov) { 2078 if (cmov) {
2077 dasm_put(Dst, 9530); 2079 dasm_put(Dst, 9527);
2078 } else { 2080 } else {
2079 dasm_put(Dst, 9536); 2081 dasm_put(Dst, 9533);
2080 } 2082 }
2081 if (!cmov) { 2083 if (!cmov) {
2082 dasm_put(Dst, 13621); 2084 dasm_put(Dst, 13618);
2083 } 2085 }
2084 } 2086 }
2085 if (op == BC_FORI) { 2087 if (op == BC_FORI) {
2086 dasm_put(Dst, 13627, -BCBIAS_J*4); 2088 dasm_put(Dst, 13624, -BCBIAS_J*4);
2087 } else if (op == BC_JFORI) { 2089 } else if (op == BC_JFORI) {
2088 dasm_put(Dst, 13637, -BCBIAS_J*4, BC_JLOOP); 2090 dasm_put(Dst, 13634, -BCBIAS_J*4, BC_JLOOP);
2089 } else if (op == BC_IFORL) { 2091 } else if (op == BC_IFORL) {
2090 dasm_put(Dst, 13651, -BCBIAS_J*4); 2092 dasm_put(Dst, 13648, -BCBIAS_J*4);
2091 } else { 2093 } else {
2092 dasm_put(Dst, 13647, BC_JLOOP); 2094 dasm_put(Dst, 13644, BC_JLOOP);
2093 } 2095 }
2094 dasm_put(Dst, 9565); 2096 dasm_put(Dst, 9562);
2095 if (sse) { 2097 if (sse) {
2096 dasm_put(Dst, 13661); 2098 dasm_put(Dst, 13658);
2097 } 2099 }
2098 break; 2100 break;
2099 2101
2100 case BC_ITERL: 2102 case BC_ITERL:
2101#if LJ_HASJIT 2103#if LJ_HASJIT
2102 dasm_put(Dst, 13480, HOTCOUNT_PCMASK, GG_DISP2HOT); 2104 dasm_put(Dst, 13477, HOTCOUNT_PCMASK, GG_DISP2HOT);
2103#endif 2105#endif
2104 break; 2106 break;
2105 2107
@@ -2108,33 +2110,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2108 break; 2110 break;
2109#endif 2111#endif
2110 case BC_IITERL: 2112 case BC_IITERL:
2111 dasm_put(Dst, 13672, LJ_TNIL); 2113 dasm_put(Dst, 13669, LJ_TNIL);
2112 if (op == BC_JITERL) { 2114 if (op == BC_JITERL) {
2113 dasm_put(Dst, 13687, BC_JLOOP); 2115 dasm_put(Dst, 13684, BC_JLOOP);
2114 } else { 2116 } else {
2115 dasm_put(Dst, 13701, -BCBIAS_J*4); 2117 dasm_put(Dst, 13698, -BCBIAS_J*4);
2116 } 2118 }
2117 dasm_put(Dst, 9869); 2119 dasm_put(Dst, 9866);
2118 break; 2120 break;
2119 2121
2120 case BC_LOOP: 2122 case BC_LOOP:
2121#if LJ_HASJIT 2123#if LJ_HASJIT
2122 dasm_put(Dst, 13480, HOTCOUNT_PCMASK, GG_DISP2HOT); 2124 dasm_put(Dst, 13477, HOTCOUNT_PCMASK, GG_DISP2HOT);
2123#endif 2125#endif
2124 break; 2126 break;
2125 2127
2126 case BC_ILOOP: 2128 case BC_ILOOP:
2127 dasm_put(Dst, 9567); 2129 dasm_put(Dst, 9564);
2128 break; 2130 break;
2129 2131
2130 case BC_JLOOP: 2132 case BC_JLOOP:
2131#if LJ_HASJIT 2133#if LJ_HASJIT
2132 dasm_put(Dst, 13717, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2134 dasm_put(Dst, 13714, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2133#endif 2135#endif
2134 break; 2136 break;
2135 2137
2136 case BC_JMP: 2138 case BC_JMP:
2137 dasm_put(Dst, 13758, -BCBIAS_J*4); 2139 dasm_put(Dst, 13755, -BCBIAS_J*4);
2138 break; 2140 break;
2139 2141
2140 /* -- Function headers -------------------------------------------------- */ 2142 /* -- Function headers -------------------------------------------------- */
@@ -2148,7 +2150,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2148 2150
2149 case BC_FUNCF: 2151 case BC_FUNCF:
2150#if LJ_HASJIT 2152#if LJ_HASJIT
2151 dasm_put(Dst, 13784, HOTCOUNT_PCMASK, GG_DISP2HOT); 2153 dasm_put(Dst, 13781, HOTCOUNT_PCMASK, GG_DISP2HOT);
2152#endif 2154#endif
2153 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2155 case BC_FUNCV: /* NYI: compiled vararg functions. */
2154 break; 2156 break;
@@ -2158,47 +2160,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2158 break; 2160 break;
2159#endif 2161#endif
2160 case BC_IFUNCF: 2162 case BC_IFUNCF:
2161 dasm_put(Dst, 13805, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2163 dasm_put(Dst, 13802, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2162 if (op == BC_JFUNCF) { 2164 if (op == BC_JFUNCF) {
2163 dasm_put(Dst, 13836, BC_JLOOP); 2165 dasm_put(Dst, 13833, BC_JLOOP);
2164 } else { 2166 } else {
2165 dasm_put(Dst, 9567); 2167 dasm_put(Dst, 9564);
2166 } 2168 }
2167 dasm_put(Dst, 13845, LJ_TNIL); 2169 dasm_put(Dst, 13842, LJ_TNIL);
2168 break; 2170 break;
2169 2171
2170 case BC_JFUNCV: 2172 case BC_JFUNCV:
2171#if !LJ_HASJIT 2173#if !LJ_HASJIT
2172 break; 2174 break;
2173#endif 2175#endif
2174 dasm_put(Dst, 9262); 2176 dasm_put(Dst, 9043);
2175 break; /* NYI: compiled vararg functions. */ 2177 break; /* NYI: compiled vararg functions. */
2176 2178
2177 case BC_IFUNCV: 2179 case BC_IFUNCV:
2178 dasm_put(Dst, 13867, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2180 dasm_put(Dst, 13864, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2179 if (op == BC_JFUNCV) { 2181 if (op == BC_JFUNCV) {
2180 dasm_put(Dst, 13836, BC_JLOOP); 2182 dasm_put(Dst, 13833, BC_JLOOP);
2181 } else { 2183 } else {
2182 dasm_put(Dst, 13964, -4+PC2PROTO(k)); 2184 dasm_put(Dst, 13961, -4+PC2PROTO(k));
2183 } 2185 }
2184 dasm_put(Dst, 13989, LJ_TNIL); 2186 dasm_put(Dst, 13986, LJ_TNIL);
2185 break; 2187 break;
2186 2188
2187 case BC_FUNCC: 2189 case BC_FUNCC:
2188 case BC_FUNCCW: 2190 case BC_FUNCCW:
2189 dasm_put(Dst, 14011, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2191 dasm_put(Dst, 14008, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2190 if (op == BC_FUNCC) { 2192 if (op == BC_FUNCC) {
2191 dasm_put(Dst, 14041); 2193 dasm_put(Dst, 14038);
2192 } else { 2194 } else {
2193 dasm_put(Dst, 14045); 2195 dasm_put(Dst, 14042);
2194 } 2196 }
2195 dasm_put(Dst, 14053, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2197 dasm_put(Dst, 14050, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2196 if (op == BC_FUNCC) { 2198 if (op == BC_FUNCC) {
2197 dasm_put(Dst, 14063); 2199 dasm_put(Dst, 14060);
2198 } else { 2200 } else {
2199 dasm_put(Dst, 14068, DISPATCH_GL(wrapf)); 2201 dasm_put(Dst, 14065, DISPATCH_GL(wrapf));
2200 } 2202 }
2201 dasm_put(Dst, 14074, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2203 dasm_put(Dst, 14071, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2202 break; 2204 break;
2203 2205
2204 /* ---------------------------------------------------------------------- */ 2206 /* ---------------------------------------------------------------------- */
@@ -2226,7 +2228,7 @@ static int build_backend(BuildCtx *ctx)
2226 2228
2227 build_subroutines(ctx, cmov, sse); 2229 build_subroutines(ctx, cmov, sse);
2228 2230
2229 dasm_put(Dst, 14100); 2231 dasm_put(Dst, 14097);
2230 for (op = 0; op < BC__MAX; op++) 2232 for (op = 0; op < BC__MAX; op++)
2231 build_ins(ctx, (BCOp)op, op, cmov, sse); 2233 build_ins(ctx, (BCOp)op, op, cmov, sse);
2232 2234
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 02423b7c..9198454a 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14049] = { 15static const unsigned char build_actionlist[14046] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237, 18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
@@ -32,128 +32,128 @@ static const unsigned char build_actionlist[14049] = {
32 237,252,233,244,248,248,22,131,232,8,252,233,244,247,248,23,141,68,194,252, 32 237,252,233,244,248,248,22,131,232,8,252,233,244,247,248,23,141,68,194,252,
33 248,248,1,15,182,142,233,131,198,4,137,149,233,137,133,233,255,137,116,36, 33 248,248,1,15,182,142,233,131,198,4,137,149,233,137,133,233,255,137,116,36,
34 100,137,202,248,2,137,252,233,232,251,1,0,139,149,233,139,133,233,139,106, 34 100,137,202,248,2,137,252,233,232,251,1,0,139,149,233,139,133,233,139,106,
35 252,248,139,114,252,252,41,208,193,232,3,131,192,1,139,181,233,139,14,15, 35 252,248,41,208,193,232,3,131,192,1,139,181,233,139,14,15,182,252,233,15,182,
36 182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,24,85,87,86,83,72, 36 205,131,198,4,252,255,36,252,235,248,24,85,87,86,83,72,131,252,236,40,137,
37 131,252,236,40,137,205,137,76,36,96,137,209,190,237,49,192,72,141,188,253, 37 205,137,76,36,96,137,209,190,237,49,192,72,141,188,253,36,233,139,157,233,
38 36,233,139,157,233,129,195,239,72,137,189,233,137,68,36,100,72,137,68,36, 38 129,195,239,72,137,189,233,137,68,36,100,72,137,68,36,104,137,68,36,88,137,
39 104,137,68,36,88,137,68,36,92,56,133,233,15,132,244,249,199,131,233,237,136, 39 68,36,92,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233,
40 133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41,209,139,114, 40 139,133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,84,
41 252,252,137,68,36,84,252,247,198,237,15,132,244,13,255,252,233,244,14,248, 41 252,247,198,237,15,132,244,13,255,252,233,244,14,248,25,85,87,86,83,72,131,
42 25,85,87,86,83,72,131,252,236,40,190,237,68,137,76,36,92,252,233,244,247, 42 252,236,40,190,237,68,137,76,36,92,252,233,244,247,248,26,85,87,86,83,72,
43 248,26,85,87,86,83,72,131,252,236,40,190,237,248,1,68,137,68,36,88,137,205, 43 131,252,236,40,190,237,248,1,68,137,68,36,88,137,205,137,76,36,96,137,209,
44 137,76,36,96,137,209,72,139,189,233,72,137,124,36,104,137,108,36,100,72,137, 44 72,139,189,233,72,137,124,36,104,137,108,36,100,72,137,165,233,248,2,139,
45 165,233,248,2,139,157,233,129,195,239,248,3,199,131,233,237,139,149,233,1, 45 157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133,
46 206,41,214,139,133,233,41,200,193,232,3,131,192,1,248,27,255,139,105,252, 46 233,41,200,193,232,3,131,192,1,248,27,255,139,105,252,248,129,121,253,252,
47 248,129,121,253,252,252,239,15,133,244,28,248,29,137,202,137,114,252,252, 47 252,239,15,133,244,28,248,29,137,202,137,114,252,252,139,181,233,139,14,15,
48 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235, 48 182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,30,85,87,86,83,72,
49 248,30,85,87,86,83,72,131,252,236,40,137,205,137,76,36,96,137,108,36,100, 49 131,252,236,40,137,205,137,76,36,96,137,108,36,100,139,189,233,43,189,233,
50 139,189,233,43,189,233,199,68,36,92,0,0,0,0,137,124,36,88,72,139,189,233, 50 199,68,36,92,0,0,0,0,137,124,36,88,72,139,189,233,72,137,124,36,104,72,137,
51 72,137,124,36,104,72,137,165,233,65,252,255,209,133,192,15,132,244,15,137, 51 165,233,65,252,255,209,133,192,15,132,244,15,137,193,190,237,252,233,244,
52 193,190,237,252,233,244,2,248,11,1,209,131,230,252,248,137,213,41,252,242, 52 2,248,11,1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237,
53 199,68,193,252,252,237,137,200,139,117,252,244,72,99,77,252,240,72,141,61, 53 137,200,139,117,252,244,72,99,77,252,240,72,141,61,245,72,1,252,249,139,122,
54 245,72,1,252,249,139,122,252,248,139,191,233,255,139,191,233,252,255,225, 54 252,248,139,191,233,255,139,191,233,252,255,225,248,31,15,182,78,252,255,
55 248,31,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244, 55 131,252,237,16,141,12,202,41,252,233,15,132,244,32,252,247,217,193,252,233,
56 32,252,247,217,193,252,233,3,65,137,200,139,76,36,96,137,145,233,139,80,4, 56 3,65,137,200,139,76,36,96,137,145,233,139,80,4,139,0,137,85,4,137,69,0,137,
57 139,0,137,85,4,137,69,0,137,252,234,252,233,244,33,248,34,137,68,36,80,199, 57 252,234,252,233,244,33,248,34,137,68,36,80,199,68,36,84,237,72,141,68,36,
58 68,36,84,237,72,141,68,36,80,128,126,252,252,235,15,133,244,247,141,139,233, 58 80,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,
59 137,41,199,65,4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,255, 59 205,252,233,244,248,248,35,15,182,70,252,254,255,252,242,15,42,192,252,242,
60 252,242,15,42,192,252,242,15,17,68,36,80,255,72,141,68,36,80,252,233,244, 60 15,17,68,36,80,255,72,141,68,36,80,252,233,244,247,248,36,15,182,70,252,254,
61 247,248,36,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252, 61 141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,139,76,36,96,137,
62 234,248,2,139,76,36,96,137,145,233,137,252,234,73,137,192,137,205,137,116, 62 145,233,137,252,234,73,137,192,137,205,137,116,36,100,232,251,1,1,139,149,
63 36,100,232,251,1,1,139,149,233,133,192,15,132,244,249,248,32,15,182,78,252, 63 233,133,192,15,132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,
64 253,139,104,4,139,0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131, 64 202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
65 198,4,193,232,16,252,255,36,252,235,248,3,139,141,233,137,113,252,244,141, 65 36,252,235,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,
66 177,233,41,214,139,105,252,248,184,237,252,233,244,29,248,37,137,68,36,80, 66 248,184,237,252,233,244,29,248,37,137,68,36,80,199,68,36,84,237,72,141,68,
67 199,68,36,84,237,72,141,68,36,80,128,126,252,252,235,15,133,244,247,255,141, 67 36,80,128,126,252,252,235,15,133,244,247,255,141,139,233,137,41,199,65,4,
68 139,233,137,41,199,65,4,237,137,205,252,233,244,248,248,38,15,182,70,252, 68 237,137,205,252,233,244,248,248,38,15,182,70,252,254,255,72,141,68,36,80,
69 254,255,72,141,68,36,80,252,233,244,247,248,39,15,182,70,252,254,141,4,194, 69 252,233,244,247,248,39,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,
70 248,1,15,182,110,252,255,141,44,252,234,248,2,139,76,36,96,137,145,233,137, 70 141,44,252,234,248,2,139,76,36,96,137,145,233,137,252,234,73,137,192,137,
71 252,234,73,137,192,137,205,137,116,36,100,232,251,1,2,139,149,233,133,192, 71 205,137,116,36,100,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,
72 15,132,244,249,15,182,78,252,253,139,108,202,4,139,12,202,137,104,4,137,8, 72 78,252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204,
73 248,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 73 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,139,141,233,137,
74 248,3,139,141,233,137,113,252,244,15,182,70,252,253,139,108,194,4,139,4,194, 74 113,252,244,15,182,70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,
75 137,105,20,137,65,16,141,177,233,41,214,139,105,252,248,184,237,252,233,244, 75 141,177,233,41,214,139,105,252,248,184,237,252,233,244,29,248,41,139,108,
76 29,248,41,139,108,36,96,137,149,233,68,141,4,194,141,20,202,137,252,233,68, 76 36,96,137,149,233,68,141,4,194,141,20,202,137,252,233,68,15,182,78,252,252,
77 15,182,78,252,252,137,116,36,100,232,251,1,3,248,3,139,149,233,255,131,252, 77 137,116,36,100,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135,244,
78 248,1,15,135,244,42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254, 78 42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,134,
79 141,180,253,134,233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 79 233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
80 252,255,36,252,235,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233, 80 235,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44,
81 244,6,248,44,129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,65,137, 81 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,65,137,192,65,137,252,
82 192,65,137,252,233,139,108,36,96,137,149,233,255,137,202,137,252,233,137, 82 233,139,108,36,96,137,149,233,255,137,202,137,252,233,137,116,36,100,232,
83 116,36,100,232,251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248, 83 251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141,
84 47,141,4,199,141,44,252,234,149,252,233,244,248,248,48,141,4,194,137,197, 84 44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248,
85 252,233,244,248,248,49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,65, 85 49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,65,137,232,65,137,193,
86 137,232,65,137,193,15,182,70,252,252,137,68,36,32,139,108,36,96,137,149,233, 86 15,182,70,252,252,137,68,36,32,139,108,36,96,137,149,233,137,202,137,252,
87 137,202,137,252,233,137,116,36,100,232,251,1,5,139,149,233,133,192,15,132, 87 233,137,116,36,100,232,251,1,5,139,149,233,133,192,15,132,244,40,248,42,137,
88 244,40,248,42,137,193,41,208,137,113,252,244,141,176,233,255,184,237,252, 88 193,41,208,137,113,252,244,141,176,233,255,184,237,252,233,244,27,248,50,
89 233,244,27,248,50,139,108,36,96,137,149,233,141,20,194,137,252,233,137,116, 89 139,108,36,96,137,149,233,141,20,194,137,252,233,137,116,36,100,232,251,1,
90 36,100,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28, 90 6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137,76,36,84,137,
91 137,76,36,84,137,68,36,80,131,252,233,8,139,108,36,96,137,149,233,137,202, 91 68,36,80,131,252,233,8,139,108,36,96,137,149,233,137,202,68,141,4,193,137,
92 68,141,4,193,137,252,233,137,116,36,100,232,251,1,7,139,149,233,139,76,36, 92 252,233,137,116,36,100,232,251,1,7,139,149,233,139,76,36,84,139,68,36,80,
93 84,139,68,36,80,139,105,252,248,131,192,1,57,215,15,132,244,52,137,202,137, 93 139,105,252,248,131,192,1,57,215,15,132,244,52,137,202,137,114,252,252,139,
94 114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255, 94 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,
95 36,252,235,248,53,139,108,36,96,137,149,233,137,202,137,252,233,137,116,36, 95 53,139,108,36,96,137,149,233,137,202,137,252,233,137,116,36,100,232,251,1,
96 100,232,251,1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232, 96 8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,
97 16,252,255,164,253,252,235,233,248,54,255,129,252,248,239,15,130,244,55,139, 97 253,252,235,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,252,
98 106,4,129,252,253,239,15,131,244,55,139,114,252,252,137,68,36,84,137,106, 98 253,239,15,131,244,55,139,114,252,252,137,68,36,84,137,106,252,252,139,42,
99 252,252,139,42,137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131, 99 137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,
100 193,8,139,105,4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244, 100 4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,
101 1,248,2,139,68,36,84,252,233,244,56,248,57,129,252,248,239,15,130,244,55, 101 68,36,84,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,137,
102 139,106,4,137,252,233,193,252,249,15,131,252,249,252,254,15,132,244,249,255, 102 252,233,193,252,249,15,131,252,249,252,254,15,132,244,249,255,184,237,252,
103 184,237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1, 103 247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,
104 255,248,2,139,106,252,248,139,132,253,197,233,139,114,252,252,199,66,252, 104 106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,
105 252,237,137,66,252,248,252,233,244,58,248,3,184,237,252,233,244,2,248,59, 105 252,248,252,233,244,58,248,3,184,237,252,233,244,2,248,59,129,252,248,239,
106 129,252,248,239,15,130,244,55,139,106,4,139,114,252,252,129,252,253,239,15, 106 15,130,244,55,139,106,4,139,114,252,252,129,252,253,239,15,133,244,252,248,
107 133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199,66,252,252,237, 107 1,139,42,139,173,233,248,2,133,252,237,199,66,252,252,237,255,15,132,244,
108 255,15,132,244,58,139,131,233,199,66,252,252,237,137,106,252,248,139,141, 108 58,139,131,233,199,66,252,252,237,137,106,252,248,139,141,233,35,136,233,
109 233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250, 109 105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57,129,233,15,
110 57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,255,252, 110 132,244,251,248,4,139,137,233,133,201,15,133,244,3,255,252,233,244,58,248,
111 233,244,58,248,5,139,105,4,129,252,253,239,15,132,244,58,139,1,137,106,252, 111 5,139,105,4,129,252,253,239,15,132,244,58,139,1,137,106,252,252,137,66,252,
112 252,137,66,252,248,252,233,244,58,248,6,129,252,253,239,15,132,244,1,129, 112 248,252,233,244,58,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15,
113 252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,253,171,233, 113 135,244,253,189,237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248,
114 252,233,244,2,248,60,255,129,252,248,239,15,130,244,55,129,122,253,4,239, 114 60,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,
115 15,133,244,55,139,42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133, 115 42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133,244,55,139,66,8,
116 244,55,139,66,8,137,133,233,139,114,252,252,199,66,252,252,237,137,106,252, 116 137,133,233,139,114,252,252,199,66,252,252,237,137,106,252,248,252,246,133,
117 248,252,246,133,233,235,15,132,244,247,128,165,233,235,255,139,131,233,137, 117 233,235,15,132,244,247,128,165,233,235,255,139,131,233,137,171,233,137,133,
118 171,233,137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244, 118 233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,55,129,122,253,
119 55,129,122,253,4,239,15,133,244,55,137,213,68,141,66,8,139,18,139,76,36,96, 119 4,239,15,133,244,55,137,213,68,141,66,8,139,18,139,76,36,96,232,251,1,9,137,
120 232,251,1,9,137,252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137, 120 252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,
121 66,252,252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253, 121 233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,255,15,
122 4,239,255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252, 122 135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,255,
123 233,244,64,255,248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122, 123 248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239,15,
124 253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252, 124 133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,58,
125 233,244,58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244, 125 248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139,171,
126 55,139,171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36, 126 233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36,96,137,149,
127 96,137,149,233,137,116,36,100,137,252,233,232,251,1,10,139,149,233,252,233, 127 233,137,116,36,100,137,252,233,232,251,1,10,139,149,233,252,233,244,2,248,
128 244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253, 128 67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,15,
129 4,239,15,133,244,55,139,108,36,96,137,149,233,255,137,149,233,139,114,252, 129 133,244,55,139,108,36,96,137,149,233,255,137,149,233,139,114,252,252,68,141,
130 252,68,141,66,8,139,18,137,252,233,137,116,36,100,232,251,1,11,139,149,233, 130 66,8,139,18,137,252,233,137,116,36,100,232,251,1,11,139,149,233,133,192,15,
131 133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252, 131 132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,16,
132 139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2, 132 139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12,237,
133 199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70, 133 252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252,248,
134 129,252,248,239,15,130,244,55,255,139,106,252,248,129,122,253,4,239,15,133, 134 239,15,130,244,55,255,139,106,252,248,129,122,253,4,239,15,133,244,55,139,
135 244,55,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199, 135 133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,
136 66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129, 136 237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,
137 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,252, 137 15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242,
138 252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88, 138 15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,15,
139 193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131, 139 45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
140 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40, 140 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,
141 139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72, 141 42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,
142 137,252,233,137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1, 142 137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,
143 248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139, 143 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,106,252,248,
144 106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199, 144 129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252,
145 66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252, 145 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,
146 238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244, 146 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74,
147 55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229, 147 8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,1,252,
148 1,1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253, 148 238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
149 12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114, 149 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,8,137,
150 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252, 150 106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,248,
151 248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,100,137,108,36,80, 151 239,15,130,244,55,139,42,139,114,252,252,137,116,36,100,137,108,36,80,129,
152 129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233, 152 122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,
153 235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55, 153 15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,
154 248,1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36, 154 1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,96,
155 96,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,206, 155 137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,206,15,
156 15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131, 156 132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,
157 252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131, 157 252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131,
158 233,237,255,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135, 158 233,237,255,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,
159 244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132, 159 244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,
@@ -453,61 +453,61 @@ static const unsigned char build_actionlist[14049] = {
453 195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217, 453 195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,
454 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244, 454 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,
455 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248, 455 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,
456 9,204,248,154,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252,242, 456 9,204,255,248,154,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252,
457 15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244, 457 242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,
458 247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248, 458 244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,
459 2,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132, 459 248,2,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,
460 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195, 460 132,244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,
461 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252,248, 461 195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252,
462 9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8, 462 248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,
463 221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68, 463 36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15,
464 36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131,252, 464 16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131,
465 248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,242, 465 252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,
466 15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252, 466 242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,
467 248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,248, 467 252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,
468 2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249, 468 248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,
469 195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132, 469 249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,
470 244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,195, 470 132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,
471 248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217, 471 195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,
472 201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244, 472 1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,
473 255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,221,217, 473 135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,
474 195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216, 474 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,
475 195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221, 475 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
476 216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78, 476 248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,
477 8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253, 477 4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129,
478 194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202, 478 124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,
479 255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233, 479 46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,
480 223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252, 480 252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,
481 254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232, 481 70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,
482 16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,15,135, 482 4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,
483 244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102, 483 15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,
484 15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255, 484 102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,
485 15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134, 485 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,
486 233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5, 486 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,
487 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194, 487 5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,
488 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237, 488 194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,
489 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0, 489 237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,
490 0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,239, 490 1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,
491 15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15, 491 239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,
492 135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199, 492 15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,
493 255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129, 493 4,199,255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,
494 252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44, 494 4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,
495 194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182, 495 139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,
496 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4, 496 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,
497 139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193, 497 194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,
498 232,16,252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239, 498 4,193,232,16,252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,
499 137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 499 213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
500 252,235,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72, 500 255,36,252,235,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,
501 184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194, 501 4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,
502 217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255, 502 221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,
503 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233, 503 4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,
504 248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 504 128,233,248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,
505 255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213, 505 16,252,255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,
506 232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252, 506 137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,252,
507 233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15, 507 253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,
508 135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252, 508 239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,
509 234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15, 509 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,
510 16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124, 510 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
511 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252, 511 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,
512 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252, 512 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
513 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255, 513 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,
@@ -1066,373 +1066,376 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1066 dasm_put(Dst, 204, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); 1066 dasm_put(Dst, 204, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1);
1067 dasm_put(Dst, 297, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); 1067 dasm_put(Dst, 297, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top));
1068 dasm_put(Dst, 363, Dt1(->base), Dt1(->top), Dt7(->pc), 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); 1068 dasm_put(Dst, 363, Dt1(->base), Dt1(->top), Dt7(->pc), 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);
1069 dasm_put(Dst, 523, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 1069 dasm_put(Dst, 519, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
1070 dasm_put(Dst, 629, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc)); 1070 dasm_put(Dst, 625, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc));
1071 dasm_put(Dst, 787, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1071 dasm_put(Dst, 783, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1072 if (sse) { 1072 if (sse) {
1073 dasm_put(Dst, 897); 1073 dasm_put(Dst, 893);
1074 } else { 1074 } else {
1075 } 1075 }
1076 dasm_put(Dst, 910, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); 1076 dasm_put(Dst, 906, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET);
1077 dasm_put(Dst, 1062, DISPATCH_GL(tmptv), LJ_TTAB); 1077 dasm_put(Dst, 1058, DISPATCH_GL(tmptv), LJ_TTAB);
1078 if (sse) { 1078 if (sse) {
1079 dasm_put(Dst, 897); 1079 dasm_put(Dst, 893);
1080 } else { 1080 } else {
1081 } 1081 }
1082 dasm_put(Dst, 1085, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); 1082 dasm_put(Dst, 1081, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base));
1083 dasm_put(Dst, 1268, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1083 dasm_put(Dst, 1264, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1084 dasm_put(Dst, 1368, Dt1(->base), Dt1(->base), FRAME_CONT); 1084 dasm_put(Dst, 1364, Dt1(->base), Dt1(->base), FRAME_CONT);
1085 dasm_put(Dst, 1493, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1085 dasm_put(Dst, 1489, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1086 dasm_put(Dst, 1671, 1+1, LJ_TISTRUECOND, 1+1); 1086 dasm_put(Dst, 1667, 1+1, LJ_TISTRUECOND, 1+1);
1087 dasm_put(Dst, 1782, ~LJ_TNUMX); 1087 dasm_put(Dst, 1778, ~LJ_TNUMX);
1088 if (cmov) { 1088 if (cmov) {
1089 dasm_put(Dst, 1790); 1089 dasm_put(Dst, 1786);
1090 } else { 1090 } else {
1091 dasm_put(Dst, 1794); 1091 dasm_put(Dst, 1790);
1092 } 1092 }
1093 dasm_put(Dst, 1803, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); 1093 dasm_put(Dst, 1799, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL);
1094 dasm_put(Dst, 1882, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); 1094 dasm_put(Dst, 1878, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next));
1095 dasm_put(Dst, 1939, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); 1095 dasm_put(Dst, 1935, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]));
1096 dasm_put(Dst, 2007, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK)); 1096 dasm_put(Dst, 2003, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK));
1097 dasm_put(Dst, 2076, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1097 dasm_put(Dst, 2072, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1098 dasm_put(Dst, 2166); 1098 dasm_put(Dst, 2162);
1099 if (sse) { 1099 if (sse) {
1100 dasm_put(Dst, 2171); 1100 dasm_put(Dst, 2167);
1101 } else { 1101 } else {
1102 dasm_put(Dst, 2181); 1102 dasm_put(Dst, 2177);
1103 } 1103 }
1104 dasm_put(Dst, 2188, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1104 dasm_put(Dst, 2184, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1105 dasm_put(Dst, 2254, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1105 dasm_put(Dst, 2250, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1106 dasm_put(Dst, 2321, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1106 dasm_put(Dst, 2317, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1107 dasm_put(Dst, 2419, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1107 dasm_put(Dst, 2415, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1108 if (sse) { 1108 if (sse) {
1109 dasm_put(Dst, 2491, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1109 dasm_put(Dst, 2487, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1110 } else { 1110 } else {
1111 } 1111 }
1112 dasm_put(Dst, 2524, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1112 dasm_put(Dst, 2520, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1113 dasm_put(Dst, 2605, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1113 dasm_put(Dst, 2601, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1114 if (sse) { 1114 if (sse) {
1115 dasm_put(Dst, 2643); 1115 dasm_put(Dst, 2639);
1116 } else { 1116 } else {
1117 dasm_put(Dst, 2653); 1117 dasm_put(Dst, 2649);
1118 } 1118 }
1119 dasm_put(Dst, 2660, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1119 dasm_put(Dst, 2656, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1120 dasm_put(Dst, 2724, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1120 dasm_put(Dst, 2720, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1121 dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1121 dasm_put(Dst, 2810, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1122 dasm_put(Dst, 2908, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1122 dasm_put(Dst, 2904, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1123 dasm_put(Dst, 3026, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1123 dasm_put(Dst, 3022, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1124 dasm_put(Dst, 3124, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1124 dasm_put(Dst, 3120, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1125 dasm_put(Dst, 3191, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1125 dasm_put(Dst, 3187, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1126 dasm_put(Dst, 3285, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1126 dasm_put(Dst, 3281, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1127 dasm_put(Dst, 3398, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1127 dasm_put(Dst, 3394, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1128 if (sse) { 1128 if (sse) {
1129 dasm_put(Dst, 3425, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1129 dasm_put(Dst, 3421, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1130 } else { 1130 } else {
1131 dasm_put(Dst, 3489, 1+1, LJ_TISNUM); 1131 dasm_put(Dst, 3485, 1+1, LJ_TISNUM);
1132 } 1132 }
1133 dasm_put(Dst, 3525, 1+1, FRAME_TYPE, LJ_TNIL); 1133 dasm_put(Dst, 3521, 1+1, FRAME_TYPE, LJ_TNIL);
1134 if (sse) { 1134 if (sse) {
1135 dasm_put(Dst, 3619, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1135 dasm_put(Dst, 3615, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1136 dasm_put(Dst, 3681, 1+1, LJ_TISNUM); 1136 dasm_put(Dst, 3677, 1+1, LJ_TISNUM);
1137 } else { 1137 } else {
1138 dasm_put(Dst, 3711, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1138 dasm_put(Dst, 3707, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1139 dasm_put(Dst, 3770, 1+1, LJ_TISNUM); 1139 dasm_put(Dst, 3766, 1+1, LJ_TISNUM);
1140 } 1140 }
1141 dasm_put(Dst, 3797, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1141 dasm_put(Dst, 3793, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1142 dasm_put(Dst, 3866, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1142 dasm_put(Dst, 3862, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1143 dasm_put(Dst, 3923, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1143 dasm_put(Dst, 3919, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1144 dasm_put(Dst, 3986, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1144 dasm_put(Dst, 3982, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1145 dasm_put(Dst, 4076); 1145 dasm_put(Dst, 4072);
1146 if (sse) { 1146 if (sse) {
1147 dasm_put(Dst, 4088, 1+1, LJ_TISNUM); 1147 dasm_put(Dst, 4084, 1+1, LJ_TISNUM);
1148 } else { 1148 } else {
1149 } 1149 }
1150 dasm_put(Dst, 4113); 1150 dasm_put(Dst, 4109);
1151 if (sse) { 1151 if (sse) {
1152 dasm_put(Dst, 4127, 1+1, LJ_TISNUM); 1152 dasm_put(Dst, 4123, 1+1, LJ_TISNUM);
1153 } else { 1153 } else {
1154 } 1154 }
1155 dasm_put(Dst, 4152); 1155 dasm_put(Dst, 4148);
1156 if (sse) { 1156 if (sse) {
1157 dasm_put(Dst, 4166, 1+1, LJ_TISNUM); 1157 dasm_put(Dst, 4162, 1+1, LJ_TISNUM);
1158 } else { 1158 } else {
1159 } 1159 }
1160 dasm_put(Dst, 4191); 1160 dasm_put(Dst, 4187);
1161 if (sse) { 1161 if (sse) {
1162 dasm_put(Dst, 4207, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1162 dasm_put(Dst, 4203, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1163 } else { 1163 } else {
1164 dasm_put(Dst, 4246, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1164 dasm_put(Dst, 4242, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1165 } 1165 }
1166 dasm_put(Dst, 4279, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1166 dasm_put(Dst, 4275, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1167 dasm_put(Dst, 4344, 1+1, LJ_TISNUM); 1167 dasm_put(Dst, 4340, 1+1, LJ_TISNUM);
1168 if (sse) { 1168 if (sse) {
1169 dasm_put(Dst, 4443); 1169 dasm_put(Dst, 4439);
1170 } else { 1170 } else {
1171 dasm_put(Dst, 4449); 1171 dasm_put(Dst, 4445);
1172 } 1172 }
1173 dasm_put(Dst, 4458); 1173 dasm_put(Dst, 4454);
1174 if (sse) { 1174 if (sse) {
1175 dasm_put(Dst, 4483); 1175 dasm_put(Dst, 4479);
1176 } else { 1176 } else {
1177 dasm_put(Dst, 4489); 1177 dasm_put(Dst, 4485);
1178 } 1178 }
1179 dasm_put(Dst, 4492, 1+2); 1179 dasm_put(Dst, 4488, 1+2);
1180 if (sse) { 1180 if (sse) {
1181 dasm_put(Dst, 4501); 1181 dasm_put(Dst, 4497);
1182 } else { 1182 } else {
1183 dasm_put(Dst, 4509); 1183 dasm_put(Dst, 4505);
1184 } 1184 }
1185 dasm_put(Dst, 4517); 1185 dasm_put(Dst, 4513);
1186 if (sse) { 1186 if (sse) {
1187 dasm_put(Dst, 4520, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1187 dasm_put(Dst, 4516, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1188 } else { 1188 } else {
1189 dasm_put(Dst, 4547); 1189 dasm_put(Dst, 4543);
1190 } 1190 }
1191 dasm_put(Dst, 4566); 1191 dasm_put(Dst, 4562);
1192 if (sse) { 1192 if (sse) {
1193 dasm_put(Dst, 4582, 1+1, LJ_TISNUM); 1193 dasm_put(Dst, 4578, 1+1, LJ_TISNUM);
1194 } else { 1194 } else {
1195 dasm_put(Dst, 4607, 1+1, LJ_TISNUM); 1195 dasm_put(Dst, 4603, 1+1, LJ_TISNUM);
1196 } 1196 }
1197 dasm_put(Dst, 4629); 1197 dasm_put(Dst, 4625);
1198 if (sse) { 1198 if (sse) {
1199 dasm_put(Dst, 4651); 1199 dasm_put(Dst, 4647);
1200 } else { 1200 } else {
1201 dasm_put(Dst, 4677); 1201 dasm_put(Dst, 4673);
1202 } 1202 }
1203 dasm_put(Dst, 4694, 1+2); 1203 dasm_put(Dst, 4690, 1+2);
1204 if (sse) { 1204 if (sse) {
1205 dasm_put(Dst, 4734); 1205 dasm_put(Dst, 4730);
1206 } else { 1206 } else {
1207 dasm_put(Dst, 4742); 1207 dasm_put(Dst, 4738);
1208 } 1208 }
1209 dasm_put(Dst, 4752, 2+1, LJ_TISNUM, LJ_TISNUM); 1209 dasm_put(Dst, 4748, 2+1, LJ_TISNUM, LJ_TISNUM);
1210 if (sse) { 1210 if (sse) {
1211 dasm_put(Dst, 4804, 2+1, LJ_TISNUM, LJ_TISNUM); 1211 dasm_put(Dst, 4800, 2+1, LJ_TISNUM, LJ_TISNUM);
1212 } else { 1212 } else {
1213 dasm_put(Dst, 4851, 2+1, LJ_TISNUM, LJ_TISNUM); 1213 dasm_put(Dst, 4847, 2+1, LJ_TISNUM, LJ_TISNUM);
1214 } 1214 }
1215 if (sse) { 1215 if (sse) {
1216 dasm_put(Dst, 4892, 1+1, LJ_TISNUM, LJ_TISNUM); 1216 dasm_put(Dst, 4888, 1+1, LJ_TISNUM, LJ_TISNUM);
1217 } else { 1217 } else {
1218 } 1218 }
1219 if (sse) { 1219 if (sse) {
1220 dasm_put(Dst, 4963, 1+1, LJ_TISNUM, LJ_TISNUM); 1220 dasm_put(Dst, 4959, 1+1, LJ_TISNUM, LJ_TISNUM);
1221 } else { 1221 } else {
1222 } 1222 }
1223 if (!sse) { 1223 if (!sse) {
1224 dasm_put(Dst, 5034); 1224 dasm_put(Dst, 5030);
1225 } 1225 }
1226 dasm_put(Dst, 5043, 1+1, LJ_TSTR); 1226 dasm_put(Dst, 5039, 1+1, LJ_TSTR);
1227 if (sse) { 1227 if (sse) {
1228 dasm_put(Dst, 5065, Dt5(->len)); 1228 dasm_put(Dst, 5061, Dt5(->len));
1229 } else { 1229 } else {
1230 dasm_put(Dst, 5076, Dt5(->len)); 1230 dasm_put(Dst, 5072, Dt5(->len));
1231 } 1231 }
1232 dasm_put(Dst, 5084, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1232 dasm_put(Dst, 5080, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1233 if (sse) { 1233 if (sse) {
1234 dasm_put(Dst, 5122); 1234 dasm_put(Dst, 5118);
1235 } else { 1235 } else {
1236 dasm_put(Dst, 5132); 1236 dasm_put(Dst, 5128);
1237 } 1237 }
1238 dasm_put(Dst, 5145, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1238 dasm_put(Dst, 5141, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1239 if (sse) { 1239 if (sse) {
1240 dasm_put(Dst, 5180); 1240 dasm_put(Dst, 5176);
1241 } else { 1241 } else {
1242 dasm_put(Dst, 5202); 1242 dasm_put(Dst, 5198);
1243 } 1243 }
1244 dasm_put(Dst, 5222, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1244 dasm_put(Dst, 5218, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1245 dasm_put(Dst, 2166); 1245 dasm_put(Dst, 2162);
1246 if (sse) { 1246 if (sse) {
1247 dasm_put(Dst, 5330); 1247 dasm_put(Dst, 5326);
1248 } else { 1248 } else {
1249 dasm_put(Dst, 5341); 1249 dasm_put(Dst, 5337);
1250 } 1250 }
1251 dasm_put(Dst, 5349, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1251 dasm_put(Dst, 5345, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1252 if (sse) { 1252 if (sse) {
1253 dasm_put(Dst, 5379); 1253 dasm_put(Dst, 5375);
1254 } else { 1254 } else {
1255 } 1255 }
1256 dasm_put(Dst, 5386, sizeof(GCstr)-1); 1256 dasm_put(Dst, 5382, sizeof(GCstr)-1);
1257 dasm_put(Dst, 5461, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1257 dasm_put(Dst, 5457, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1258 dasm_put(Dst, 5520, LJ_TSTR, LJ_TISNUM); 1258 dasm_put(Dst, 5516, LJ_TSTR, LJ_TISNUM);
1259 if (sse) { 1259 if (sse) {
1260 dasm_put(Dst, 5541); 1260 dasm_put(Dst, 5537);
1261 } else { 1261 } else {
1262 dasm_put(Dst, 5548); 1262 dasm_put(Dst, 5544);
1263 } 1263 }
1264 dasm_put(Dst, 5560, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1264 dasm_put(Dst, 5556, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1265 dasm_put(Dst, 5625, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1265 dasm_put(Dst, 5621, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1266 dasm_put(Dst, 5688, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1266 dasm_put(Dst, 5684, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1267 dasm_put(Dst, 5759, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1267 dasm_put(Dst, 5755, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1268 dasm_put(Dst, 5844, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1268 dasm_put(Dst, 5840, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1269 dasm_put(Dst, 5914, 1+1, LJ_TTAB); 1269 dasm_put(Dst, 5910, 1+1, LJ_TTAB);
1270 if (sse) { 1270 if (sse) {
1271 dasm_put(Dst, 5982); 1271 dasm_put(Dst, 5978);
1272 } else { 1272 } else {
1273 } 1273 }
1274 if (sse) { 1274 if (sse) {
1275 dasm_put(Dst, 5992, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1275 dasm_put(Dst, 5988, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1276 } else { 1276 } else {
1277 } 1277 }
1278 if (sse) { 1278 if (sse) {
1279 dasm_put(Dst, 6044, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1279 dasm_put(Dst, 6040, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1280 } else { 1280 } else {
1281 } 1281 }
1282 dasm_put(Dst, 6087, LJ_TISNUM); 1282 dasm_put(Dst, 6083, LJ_TISNUM);
1283 if (sse) { 1283 if (sse) {
1284 dasm_put(Dst, 6114); 1284 dasm_put(Dst, 6110);
1285 } else { 1285 } else {
1286 } 1286 }
1287 dasm_put(Dst, 6131); 1287 dasm_put(Dst, 6127);
1288 if (sse) { 1288 if (sse) {
1289 dasm_put(Dst, 6139, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1289 dasm_put(Dst, 6135, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1290 } else { 1290 } else {
1291 } 1291 }
1292 dasm_put(Dst, 6087, LJ_TISNUM); 1292 dasm_put(Dst, 6083, LJ_TISNUM);
1293 if (sse) { 1293 if (sse) {
1294 dasm_put(Dst, 6182); 1294 dasm_put(Dst, 6178);
1295 } else { 1295 } else {
1296 } 1296 }
1297 dasm_put(Dst, 6131); 1297 dasm_put(Dst, 6127);
1298 if (sse) { 1298 if (sse) {
1299 dasm_put(Dst, 6199, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1299 dasm_put(Dst, 6195, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1300 } else { 1300 } else {
1301 } 1301 }
1302 dasm_put(Dst, 6087, LJ_TISNUM); 1302 dasm_put(Dst, 6083, LJ_TISNUM);
1303 if (sse) { 1303 if (sse) {
1304 dasm_put(Dst, 6242); 1304 dasm_put(Dst, 6238);
1305 } else { 1305 } else {
1306 } 1306 }
1307 dasm_put(Dst, 6131); 1307 dasm_put(Dst, 6127);
1308 if (sse) { 1308 if (sse) {
1309 dasm_put(Dst, 6259, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1309 dasm_put(Dst, 6255, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1310 } else { 1310 } else {
1311 } 1311 }
1312 dasm_put(Dst, 6302); 1312 dasm_put(Dst, 6298);
1313 if (sse) { 1313 if (sse) {
1314 dasm_put(Dst, 6309, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1314 dasm_put(Dst, 6305, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1315 } else { 1315 } else {
1316 } 1316 }
1317 dasm_put(Dst, 6352); 1317 dasm_put(Dst, 6348);
1318 if (sse) { 1318 if (sse) {
1319 dasm_put(Dst, 6356); 1319 dasm_put(Dst, 6352);
1320 } else { 1320 } else {
1321 } 1321 }
1322 dasm_put(Dst, 6368); 1322 dasm_put(Dst, 6364);
1323 if (sse) { 1323 if (sse) {
1324 dasm_put(Dst, 6379, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1324 dasm_put(Dst, 6375, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1325 } else { 1325 } else {
1326 } 1326 }
1327 dasm_put(Dst, 6448); 1327 dasm_put(Dst, 6444);
1328 if (sse) { 1328 if (sse) {
1329 dasm_put(Dst, 6457, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1329 dasm_put(Dst, 6453, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1330 } else { 1330 } else {
1331 } 1331 }
1332 dasm_put(Dst, 6526); 1332 dasm_put(Dst, 6522);
1333 if (sse) { 1333 if (sse) {
1334 dasm_put(Dst, 6536, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1334 dasm_put(Dst, 6532, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1335 } else { 1335 } else {
1336 } 1336 }
1337 dasm_put(Dst, 6605); 1337 dasm_put(Dst, 6601);
1338 if (sse) { 1338 if (sse) {
1339 dasm_put(Dst, 6615, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1339 dasm_put(Dst, 6611, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1340 } else { 1340 } else {
1341 } 1341 }
1342 dasm_put(Dst, 6684); 1342 dasm_put(Dst, 6680);
1343 if (sse) { 1343 if (sse) {
1344 dasm_put(Dst, 6693, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1344 dasm_put(Dst, 6689, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1345 } else { 1345 } else {
1346 } 1346 }
1347 dasm_put(Dst, 6762, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1347 dasm_put(Dst, 6758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1348 dasm_put(Dst, 6840, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1348 dasm_put(Dst, 6836, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1349 dasm_put(Dst, 6966, Dt1(->top), Dt1(->base), Dt1(->top)); 1349 dasm_put(Dst, 6962, Dt1(->top), Dt1(->base), Dt1(->top));
1350#if LJ_HASJIT 1350#if LJ_HASJIT
1351 dasm_put(Dst, 7005, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1351 dasm_put(Dst, 7001, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1352#endif 1352#endif
1353 dasm_put(Dst, 7036, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1353 dasm_put(Dst, 7032, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1354 dasm_put(Dst, 7087, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1354 dasm_put(Dst, 7083, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1355#if LJ_HASJIT 1355#if LJ_HASJIT
1356 dasm_put(Dst, 7154, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1356 dasm_put(Dst, 7150, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1357#endif 1357#endif
1358 dasm_put(Dst, 7201); 1358 dasm_put(Dst, 7197);
1359#if LJ_HASJIT 1359#if LJ_HASJIT
1360 dasm_put(Dst, 7031); 1360 dasm_put(Dst, 7027);
1361#endif 1361#endif
1362 dasm_put(Dst, 7208); 1362 dasm_put(Dst, 7204);
1363#if LJ_HASJIT 1363#if LJ_HASJIT
1364 dasm_put(Dst, 7211); 1364 dasm_put(Dst, 7207);
1365#endif 1365#endif
1366 dasm_put(Dst, 7221, Dt1(->base), Dt1(->top)); 1366 dasm_put(Dst, 7217, Dt1(->base), Dt1(->top));
1367#if LJ_HASJIT 1367#if LJ_HASJIT
1368 dasm_put(Dst, 7255); 1368 dasm_put(Dst, 7251);
1369#endif 1369#endif
1370 dasm_put(Dst, 7260, Dt1(->base), Dt1(->top)); 1370 dasm_put(Dst, 7256, Dt1(->base), Dt1(->top));
1371#if LJ_HASJIT 1371#if LJ_HASJIT
1372 dasm_put(Dst, 7291, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1372 dasm_put(Dst, 7287, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1373#endif 1373#endif
1374 dasm_put(Dst, 7521); 1374 dasm_put(Dst, 7517);
1375#if LJ_HASJIT 1375#if LJ_HASJIT
1376 dasm_put(Dst, 7524, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1376 dasm_put(Dst, 7520, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1377 dasm_put(Dst, 7666); 1377 dasm_put(Dst, 7662);
1378#endif 1378#endif
1379 dasm_put(Dst, 7692); 1379 dasm_put(Dst, 7688);
1380 if (!sse) { 1380 if (!sse) {
1381 dasm_put(Dst, 7695); 1381 dasm_put(Dst, 7691);
1382 } 1382 }
1383 dasm_put(Dst, 7740, (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)); 1383 dasm_put(Dst, 7736, (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));
1384 if (!sse) { 1384 if (!sse) {
1385 dasm_put(Dst, 7826); 1385 dasm_put(Dst, 7822);
1386 } 1386 }
1387 dasm_put(Dst, 7871, (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)); 1387 dasm_put(Dst, 7867, (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));
1388 if (!sse) { 1388 if (!sse) {
1389 dasm_put(Dst, 7957); 1389 dasm_put(Dst, 7953);
1390 } 1390 }
1391 dasm_put(Dst, 7996, (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)); 1391 dasm_put(Dst, 7992, (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));
1392 if (sse) { 1392 if (sse) {
1393 dasm_put(Dst, 8085, (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)); 1393 dasm_put(Dst, 8081, (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));
1394 } else { 1394 } else {
1395 dasm_put(Dst, 8199); 1395 dasm_put(Dst, 8195);
1396 } 1396 }
1397 dasm_put(Dst, 8246); 1397 dasm_put(Dst, 8242);
1398 if (!sse) { 1398 if (!sse) {
1399 } else { 1399 } else {
1400 dasm_put(Dst, 8320); 1400 dasm_put(Dst, 8316);
1401 } 1401 }
1402 dasm_put(Dst, 8323); 1402 dasm_put(Dst, 8319);
1403 dasm_put(Dst, 8408, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1403 dasm_put(Dst, 8404, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1404 dasm_put(Dst, 8509, (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)); 1404 dasm_put(Dst, 8505, (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));
1405 dasm_put(Dst, 8677); 1405 dasm_put(Dst, 8673);
1406#if LJ_HASJIT
1406 if (sse) { 1407 if (sse) {
1407 dasm_put(Dst, 8718); 1408 dasm_put(Dst, 8714);
1408 dasm_put(Dst, 8788); 1409 dasm_put(Dst, 8784);
1409 dasm_put(Dst, 8861); 1410 dasm_put(Dst, 8857);
1410 } else { 1411 } else {
1411 dasm_put(Dst, 8911); 1412 dasm_put(Dst, 8907);
1412 dasm_put(Dst, 9003); 1413 dasm_put(Dst, 8999);
1413 } 1414 }
1415 dasm_put(Dst, 9045);
1416#endif
1414 dasm_put(Dst, 9049); 1417 dasm_put(Dst, 9049);
1415 if (sse) { 1418 if (sse) {
1416 dasm_put(Dst, 9055, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1419 dasm_put(Dst, 9052, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1417 dasm_put(Dst, 9144, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1420 dasm_put(Dst, 9141, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1418 } else { 1421 } else {
1419 dasm_put(Dst, 9268); 1422 dasm_put(Dst, 9265);
1420 dasm_put(Dst, 9351); 1423 dasm_put(Dst, 9348);
1421 if (cmov) { 1424 if (cmov) {
1422 dasm_put(Dst, 9406); 1425 dasm_put(Dst, 9403);
1423 } else { 1426 } else {
1424 dasm_put(Dst, 9425); 1427 dasm_put(Dst, 9422);
1425 } 1428 }
1426 dasm_put(Dst, 9264); 1429 dasm_put(Dst, 9045);
1427 } 1430 }
1428 dasm_put(Dst, 9466); 1431 dasm_put(Dst, 9463);
1429} 1432}
1430 1433
1431/* Generate the code for a single instruction. */ 1434/* Generate the code for a single instruction. */
1432static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1435static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1433{ 1436{
1434 int vk = 0; 1437 int vk = 0;
1435 dasm_put(Dst, 1780, defop); 1438 dasm_put(Dst, 1776, defop);
1436 1439
1437 switch (op) { 1440 switch (op) {
1438 1441
@@ -1441,597 +1444,597 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1441 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1444 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1442 1445
1443 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1446 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1444 dasm_put(Dst, 9492, LJ_TISNUM, LJ_TISNUM); 1447 dasm_put(Dst, 9489, LJ_TISNUM, LJ_TISNUM);
1445 if (sse) { 1448 if (sse) {
1446 dasm_put(Dst, 9513); 1449 dasm_put(Dst, 9510);
1447 } else { 1450 } else {
1448 dasm_put(Dst, 9528); 1451 dasm_put(Dst, 9525);
1449 if (cmov) { 1452 if (cmov) {
1450 dasm_put(Dst, 9538); 1453 dasm_put(Dst, 9535);
1451 } else { 1454 } else {
1452 dasm_put(Dst, 9544); 1455 dasm_put(Dst, 9541);
1453 } 1456 }
1454 } 1457 }
1455 switch (op) { 1458 switch (op) {
1456 case BC_ISLT: 1459 case BC_ISLT:
1457 dasm_put(Dst, 9551); 1460 dasm_put(Dst, 9548);
1458 break; 1461 break;
1459 case BC_ISGE: 1462 case BC_ISGE:
1460 dasm_put(Dst, 9346); 1463 dasm_put(Dst, 9343);
1461 break; 1464 break;
1462 case BC_ISLE: 1465 case BC_ISLE:
1463 dasm_put(Dst, 5909); 1466 dasm_put(Dst, 5905);
1464 break; 1467 break;
1465 case BC_ISGT: 1468 case BC_ISGT:
1466 dasm_put(Dst, 9556); 1469 dasm_put(Dst, 9553);
1467 break; 1470 break;
1468 default: break; /* Shut up GCC. */ 1471 default: break; /* Shut up GCC. */
1469 } 1472 }
1470 dasm_put(Dst, 9561, -BCBIAS_J*4); 1473 dasm_put(Dst, 9558, -BCBIAS_J*4);
1471 break; 1474 break;
1472 1475
1473 case BC_ISEQV: case BC_ISNEV: 1476 case BC_ISEQV: case BC_ISNEV:
1474 vk = op == BC_ISEQV; 1477 vk = op == BC_ISEQV;
1475 dasm_put(Dst, 9595, LJ_TISNUM, LJ_TISNUM); 1478 dasm_put(Dst, 9592, LJ_TISNUM, LJ_TISNUM);
1476 if (sse) { 1479 if (sse) {
1477 dasm_put(Dst, 9621); 1480 dasm_put(Dst, 9618);
1478 } else { 1481 } else {
1479 dasm_put(Dst, 9633); 1482 dasm_put(Dst, 9630);
1480 if (cmov) { 1483 if (cmov) {
1481 dasm_put(Dst, 9538); 1484 dasm_put(Dst, 9535);
1482 } else { 1485 } else {
1483 dasm_put(Dst, 9544); 1486 dasm_put(Dst, 9541);
1484 } 1487 }
1485 } 1488 }
1486 iseqne_fp: 1489 iseqne_fp:
1487 if (vk) { 1490 if (vk) {
1488 dasm_put(Dst, 9640); 1491 dasm_put(Dst, 9637);
1489 } else { 1492 } else {
1490 dasm_put(Dst, 9649); 1493 dasm_put(Dst, 9646);
1491 } 1494 }
1492 iseqne_end: 1495 iseqne_end:
1493 if (vk) { 1496 if (vk) {
1494 dasm_put(Dst, 9658, -BCBIAS_J*4); 1497 dasm_put(Dst, 9655, -BCBIAS_J*4);
1495 } else { 1498 } else {
1496 dasm_put(Dst, 9673, -BCBIAS_J*4); 1499 dasm_put(Dst, 9670, -BCBIAS_J*4);
1497 } 1500 }
1498 dasm_put(Dst, 9575); 1501 dasm_put(Dst, 9572);
1499 if (op == BC_ISEQV || op == BC_ISNEV) { 1502 if (op == BC_ISEQV || op == BC_ISNEV) {
1500 dasm_put(Dst, 9688, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1503 dasm_put(Dst, 9685, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1501 if (vk) { 1504 if (vk) {
1502 dasm_put(Dst, 9746); 1505 dasm_put(Dst, 9743);
1503 } else { 1506 } else {
1504 dasm_put(Dst, 9750); 1507 dasm_put(Dst, 9747);
1505 } 1508 }
1506 dasm_put(Dst, 9756); 1509 dasm_put(Dst, 9753);
1507 } 1510 }
1508 break; 1511 break;
1509 case BC_ISEQS: case BC_ISNES: 1512 case BC_ISEQS: case BC_ISNES:
1510 vk = op == BC_ISEQS; 1513 vk = op == BC_ISEQS;
1511 dasm_put(Dst, 9761, LJ_TSTR); 1514 dasm_put(Dst, 9758, LJ_TSTR);
1512 iseqne_test: 1515 iseqne_test:
1513 if (vk) { 1516 if (vk) {
1514 dasm_put(Dst, 9644); 1517 dasm_put(Dst, 9641);
1515 } else { 1518 } else {
1516 dasm_put(Dst, 2809); 1519 dasm_put(Dst, 2805);
1517 } 1520 }
1518 goto iseqne_end; 1521 goto iseqne_end;
1519 case BC_ISEQN: case BC_ISNEN: 1522 case BC_ISEQN: case BC_ISNEN:
1520 vk = op == BC_ISEQN; 1523 vk = op == BC_ISEQN;
1521 dasm_put(Dst, 9785, LJ_TISNUM); 1524 dasm_put(Dst, 9782, LJ_TISNUM);
1522 if (sse) { 1525 if (sse) {
1523 dasm_put(Dst, 9799); 1526 dasm_put(Dst, 9796);
1524 } else { 1527 } else {
1525 dasm_put(Dst, 9811); 1528 dasm_put(Dst, 9808);
1526 if (cmov) { 1529 if (cmov) {
1527 dasm_put(Dst, 9538); 1530 dasm_put(Dst, 9535);
1528 } else { 1531 } else {
1529 dasm_put(Dst, 9544); 1532 dasm_put(Dst, 9541);
1530 } 1533 }
1531 } 1534 }
1532 goto iseqne_fp; 1535 goto iseqne_fp;
1533 case BC_ISEQP: case BC_ISNEP: 1536 case BC_ISEQP: case BC_ISNEP:
1534 vk = op == BC_ISEQP; 1537 vk = op == BC_ISEQP;
1535 dasm_put(Dst, 9818); 1538 dasm_put(Dst, 9815);
1536 goto iseqne_test; 1539 goto iseqne_test;
1537 1540
1538 /* -- Unary test and copy ops ------------------------------------------- */ 1541 /* -- Unary test and copy ops ------------------------------------------- */
1539 1542
1540 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1543 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1541 dasm_put(Dst, 9830, LJ_TISTRUECOND); 1544 dasm_put(Dst, 9827, LJ_TISTRUECOND);
1542 if (op == BC_IST || op == BC_ISTC) { 1545 if (op == BC_IST || op == BC_ISTC) {
1543 dasm_put(Dst, 9842); 1546 dasm_put(Dst, 9839);
1544 } else { 1547 } else {
1545 dasm_put(Dst, 9847); 1548 dasm_put(Dst, 9844);
1546 } 1549 }
1547 if (op == BC_ISTC || op == BC_ISFC) { 1550 if (op == BC_ISTC || op == BC_ISFC) {
1548 dasm_put(Dst, 9852); 1551 dasm_put(Dst, 9849);
1549 } 1552 }
1550 dasm_put(Dst, 9863, -BCBIAS_J*4); 1553 dasm_put(Dst, 9860, -BCBIAS_J*4);
1551 break; 1554 break;
1552 1555
1553 /* -- Unary ops --------------------------------------------------------- */ 1556 /* -- Unary ops --------------------------------------------------------- */
1554 1557
1555 case BC_MOV: 1558 case BC_MOV:
1556 dasm_put(Dst, 9895); 1559 dasm_put(Dst, 9892);
1557 break; 1560 break;
1558 case BC_NOT: 1561 case BC_NOT:
1559 dasm_put(Dst, 9929, LJ_TISTRUECOND, LJ_TTRUE); 1562 dasm_put(Dst, 9926, LJ_TISTRUECOND, LJ_TTRUE);
1560 break; 1563 break;
1561 case BC_UNM: 1564 case BC_UNM:
1562 dasm_put(Dst, 9965, LJ_TISNUM); 1565 dasm_put(Dst, 9962, LJ_TISNUM);
1563 if (sse) { 1566 if (sse) {
1564 dasm_put(Dst, 9976, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1567 dasm_put(Dst, 9973, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1565 } else { 1568 } else {
1566 dasm_put(Dst, 10001); 1569 dasm_put(Dst, 9998);
1567 } 1570 }
1568 dasm_put(Dst, 9575); 1571 dasm_put(Dst, 9572);
1569 break; 1572 break;
1570 case BC_LEN: 1573 case BC_LEN:
1571 dasm_put(Dst, 10010, LJ_TSTR); 1574 dasm_put(Dst, 10007, LJ_TSTR);
1572 if (sse) { 1575 if (sse) {
1573 dasm_put(Dst, 10024, Dt5(->len)); 1576 dasm_put(Dst, 10021, Dt5(->len));
1574 } else { 1577 } else {
1575 dasm_put(Dst, 10042, Dt5(->len)); 1578 dasm_put(Dst, 10039, Dt5(->len));
1576 } 1579 }
1577 dasm_put(Dst, 10051, LJ_TTAB); 1580 dasm_put(Dst, 10048, LJ_TTAB);
1578 if (sse) { 1581 if (sse) {
1579 dasm_put(Dst, 10092); 1582 dasm_put(Dst, 10089);
1580 } else { 1583 } else {
1581 } 1584 }
1582 dasm_put(Dst, 10101); 1585 dasm_put(Dst, 10098);
1583 break; 1586 break;
1584 1587
1585 /* -- Binary ops -------------------------------------------------------- */ 1588 /* -- Binary ops -------------------------------------------------------- */
1586 1589
1587 1590
1588 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1591 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1589 dasm_put(Dst, 10111); 1592 dasm_put(Dst, 10108);
1590 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1593 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1591 switch (vk) { 1594 switch (vk) {
1592 case 0: 1595 case 0:
1593 dasm_put(Dst, 10119, LJ_TISNUM); 1596 dasm_put(Dst, 10116, LJ_TISNUM);
1594 if (sse) { 1597 if (sse) {
1595 dasm_put(Dst, 10131); 1598 dasm_put(Dst, 10128);
1596 } else { 1599 } else {
1597 dasm_put(Dst, 10145); 1600 dasm_put(Dst, 10142);
1598 } 1601 }
1599 break; 1602 break;
1600 case 1: 1603 case 1:
1601 dasm_put(Dst, 10153, LJ_TISNUM); 1604 dasm_put(Dst, 10150, LJ_TISNUM);
1602 if (sse) { 1605 if (sse) {
1603 dasm_put(Dst, 10165); 1606 dasm_put(Dst, 10162);
1604 } else { 1607 } else {
1605 dasm_put(Dst, 10179); 1608 dasm_put(Dst, 10176);
1606 } 1609 }
1607 break; 1610 break;
1608 default: 1611 default:
1609 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1612 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1610 if (sse) { 1613 if (sse) {
1611 dasm_put(Dst, 10209); 1614 dasm_put(Dst, 10206);
1612 } else { 1615 } else {
1613 dasm_put(Dst, 10223); 1616 dasm_put(Dst, 10220);
1614 } 1617 }
1615 break; 1618 break;
1616 } 1619 }
1617 if (sse) { 1620 if (sse) {
1618 dasm_put(Dst, 9994); 1621 dasm_put(Dst, 9991);
1619 } else { 1622 } else {
1620 dasm_put(Dst, 10006); 1623 dasm_put(Dst, 10003);
1621 } 1624 }
1622 dasm_put(Dst, 9575); 1625 dasm_put(Dst, 9572);
1623 break; 1626 break;
1624 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1627 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1625 dasm_put(Dst, 10111); 1628 dasm_put(Dst, 10108);
1626 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1629 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1627 switch (vk) { 1630 switch (vk) {
1628 case 0: 1631 case 0:
1629 dasm_put(Dst, 10119, LJ_TISNUM); 1632 dasm_put(Dst, 10116, LJ_TISNUM);
1630 if (sse) { 1633 if (sse) {
1631 dasm_put(Dst, 10231); 1634 dasm_put(Dst, 10228);
1632 } else { 1635 } else {
1633 dasm_put(Dst, 10245); 1636 dasm_put(Dst, 10242);
1634 } 1637 }
1635 break; 1638 break;
1636 case 1: 1639 case 1:
1637 dasm_put(Dst, 10153, LJ_TISNUM); 1640 dasm_put(Dst, 10150, LJ_TISNUM);
1638 if (sse) { 1641 if (sse) {
1639 dasm_put(Dst, 10253); 1642 dasm_put(Dst, 10250);
1640 } else { 1643 } else {
1641 dasm_put(Dst, 10267); 1644 dasm_put(Dst, 10264);
1642 } 1645 }
1643 break; 1646 break;
1644 default: 1647 default:
1645 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1648 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1646 if (sse) { 1649 if (sse) {
1647 dasm_put(Dst, 10275); 1650 dasm_put(Dst, 10272);
1648 } else { 1651 } else {
1649 dasm_put(Dst, 10289); 1652 dasm_put(Dst, 10286);
1650 } 1653 }
1651 break; 1654 break;
1652 } 1655 }
1653 if (sse) { 1656 if (sse) {
1654 dasm_put(Dst, 9994); 1657 dasm_put(Dst, 9991);
1655 } else { 1658 } else {
1656 dasm_put(Dst, 10006); 1659 dasm_put(Dst, 10003);
1657 } 1660 }
1658 dasm_put(Dst, 9575); 1661 dasm_put(Dst, 9572);
1659 break; 1662 break;
1660 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1663 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1661 dasm_put(Dst, 10111); 1664 dasm_put(Dst, 10108);
1662 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1665 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1663 switch (vk) { 1666 switch (vk) {
1664 case 0: 1667 case 0:
1665 dasm_put(Dst, 10119, LJ_TISNUM); 1668 dasm_put(Dst, 10116, LJ_TISNUM);
1666 if (sse) { 1669 if (sse) {
1667 dasm_put(Dst, 10297); 1670 dasm_put(Dst, 10294);
1668 } else { 1671 } else {
1669 dasm_put(Dst, 10311); 1672 dasm_put(Dst, 10308);
1670 } 1673 }
1671 break; 1674 break;
1672 case 1: 1675 case 1:
1673 dasm_put(Dst, 10153, LJ_TISNUM); 1676 dasm_put(Dst, 10150, LJ_TISNUM);
1674 if (sse) { 1677 if (sse) {
1675 dasm_put(Dst, 10319); 1678 dasm_put(Dst, 10316);
1676 } else { 1679 } else {
1677 dasm_put(Dst, 10333); 1680 dasm_put(Dst, 10330);
1678 } 1681 }
1679 break; 1682 break;
1680 default: 1683 default:
1681 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1684 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1682 if (sse) { 1685 if (sse) {
1683 dasm_put(Dst, 10341); 1686 dasm_put(Dst, 10338);
1684 } else { 1687 } else {
1685 dasm_put(Dst, 10355); 1688 dasm_put(Dst, 10352);
1686 } 1689 }
1687 break; 1690 break;
1688 } 1691 }
1689 if (sse) { 1692 if (sse) {
1690 dasm_put(Dst, 9994); 1693 dasm_put(Dst, 9991);
1691 } else { 1694 } else {
1692 dasm_put(Dst, 10006); 1695 dasm_put(Dst, 10003);
1693 } 1696 }
1694 dasm_put(Dst, 9575); 1697 dasm_put(Dst, 9572);
1695 break; 1698 break;
1696 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1699 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1697 dasm_put(Dst, 10111); 1700 dasm_put(Dst, 10108);
1698 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1701 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1699 switch (vk) { 1702 switch (vk) {
1700 case 0: 1703 case 0:
1701 dasm_put(Dst, 10119, LJ_TISNUM); 1704 dasm_put(Dst, 10116, LJ_TISNUM);
1702 if (sse) { 1705 if (sse) {
1703 dasm_put(Dst, 10363); 1706 dasm_put(Dst, 10360);
1704 } else { 1707 } else {
1705 dasm_put(Dst, 10377); 1708 dasm_put(Dst, 10374);
1706 } 1709 }
1707 break; 1710 break;
1708 case 1: 1711 case 1:
1709 dasm_put(Dst, 10153, LJ_TISNUM); 1712 dasm_put(Dst, 10150, LJ_TISNUM);
1710 if (sse) { 1713 if (sse) {
1711 dasm_put(Dst, 10385); 1714 dasm_put(Dst, 10382);
1712 } else { 1715 } else {
1713 dasm_put(Dst, 10399); 1716 dasm_put(Dst, 10396);
1714 } 1717 }
1715 break; 1718 break;
1716 default: 1719 default:
1717 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1720 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1718 if (sse) { 1721 if (sse) {
1719 dasm_put(Dst, 10407); 1722 dasm_put(Dst, 10404);
1720 } else { 1723 } else {
1721 dasm_put(Dst, 10421); 1724 dasm_put(Dst, 10418);
1722 } 1725 }
1723 break; 1726 break;
1724 } 1727 }
1725 if (sse) { 1728 if (sse) {
1726 dasm_put(Dst, 9994); 1729 dasm_put(Dst, 9991);
1727 } else { 1730 } else {
1728 dasm_put(Dst, 10006); 1731 dasm_put(Dst, 10003);
1729 } 1732 }
1730 dasm_put(Dst, 9575); 1733 dasm_put(Dst, 9572);
1731 break; 1734 break;
1732 case BC_MODVN: 1735 case BC_MODVN:
1733 dasm_put(Dst, 10111); 1736 dasm_put(Dst, 10108);
1734 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1737 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1735 switch (vk) { 1738 switch (vk) {
1736 case 0: 1739 case 0:
1737 dasm_put(Dst, 10119, LJ_TISNUM); 1740 dasm_put(Dst, 10116, LJ_TISNUM);
1738 if (sse) { 1741 if (sse) {
1739 dasm_put(Dst, 10429); 1742 dasm_put(Dst, 10426);
1740 } else { 1743 } else {
1741 dasm_put(Dst, 10443); 1744 dasm_put(Dst, 10440);
1742 } 1745 }
1743 break; 1746 break;
1744 case 1: 1747 case 1:
1745 dasm_put(Dst, 10153, LJ_TISNUM); 1748 dasm_put(Dst, 10150, LJ_TISNUM);
1746 if (sse) { 1749 if (sse) {
1747 dasm_put(Dst, 10451); 1750 dasm_put(Dst, 10448);
1748 } else { 1751 } else {
1749 dasm_put(Dst, 10465); 1752 dasm_put(Dst, 10462);
1750 } 1753 }
1751 break; 1754 break;
1752 default: 1755 default:
1753 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1756 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1754 if (sse) { 1757 if (sse) {
1755 dasm_put(Dst, 10473); 1758 dasm_put(Dst, 10470);
1756 } else { 1759 } else {
1757 dasm_put(Dst, 10487); 1760 dasm_put(Dst, 10484);
1758 } 1761 }
1759 break; 1762 break;
1760 } 1763 }
1761 dasm_put(Dst, 10495); 1764 dasm_put(Dst, 10492);
1762 if (sse) { 1765 if (sse) {
1763 dasm_put(Dst, 9994); 1766 dasm_put(Dst, 9991);
1764 } else { 1767 } else {
1765 dasm_put(Dst, 10006); 1768 dasm_put(Dst, 10003);
1766 } 1769 }
1767 dasm_put(Dst, 9575); 1770 dasm_put(Dst, 9572);
1768 break; 1771 break;
1769 case BC_MODNV: case BC_MODVV: 1772 case BC_MODNV: case BC_MODVV:
1770 dasm_put(Dst, 10111); 1773 dasm_put(Dst, 10108);
1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1774 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1772 switch (vk) { 1775 switch (vk) {
1773 case 0: 1776 case 0:
1774 dasm_put(Dst, 10119, LJ_TISNUM); 1777 dasm_put(Dst, 10116, LJ_TISNUM);
1775 if (sse) { 1778 if (sse) {
1776 dasm_put(Dst, 10429); 1779 dasm_put(Dst, 10426);
1777 } else { 1780 } else {
1778 dasm_put(Dst, 10443); 1781 dasm_put(Dst, 10440);
1779 } 1782 }
1780 break; 1783 break;
1781 case 1: 1784 case 1:
1782 dasm_put(Dst, 10153, LJ_TISNUM); 1785 dasm_put(Dst, 10150, LJ_TISNUM);
1783 if (sse) { 1786 if (sse) {
1784 dasm_put(Dst, 10451); 1787 dasm_put(Dst, 10448);
1785 } else { 1788 } else {
1786 dasm_put(Dst, 10465); 1789 dasm_put(Dst, 10462);
1787 } 1790 }
1788 break; 1791 break;
1789 default: 1792 default:
1790 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1793 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1791 if (sse) { 1794 if (sse) {
1792 dasm_put(Dst, 10473); 1795 dasm_put(Dst, 10470);
1793 } else { 1796 } else {
1794 dasm_put(Dst, 10487); 1797 dasm_put(Dst, 10484);
1795 } 1798 }
1796 break; 1799 break;
1797 } 1800 }
1798 dasm_put(Dst, 10501); 1801 dasm_put(Dst, 10498);
1799 break; 1802 break;
1800 case BC_POW: 1803 case BC_POW:
1801 dasm_put(Dst, 10111); 1804 dasm_put(Dst, 10108);
1802 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1805 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1803 switch (vk) { 1806 switch (vk) {
1804 case 0: 1807 case 0:
1805 dasm_put(Dst, 10119, LJ_TISNUM); 1808 dasm_put(Dst, 10116, LJ_TISNUM);
1806 if (sse) { 1809 if (sse) {
1807 dasm_put(Dst, 10429); 1810 dasm_put(Dst, 10426);
1808 } else { 1811 } else {
1809 dasm_put(Dst, 10443); 1812 dasm_put(Dst, 10440);
1810 } 1813 }
1811 break; 1814 break;
1812 case 1: 1815 case 1:
1813 dasm_put(Dst, 10153, LJ_TISNUM); 1816 dasm_put(Dst, 10150, LJ_TISNUM);
1814 if (sse) { 1817 if (sse) {
1815 dasm_put(Dst, 10451); 1818 dasm_put(Dst, 10448);
1816 } else { 1819 } else {
1817 dasm_put(Dst, 10465); 1820 dasm_put(Dst, 10462);
1818 } 1821 }
1819 break; 1822 break;
1820 default: 1823 default:
1821 dasm_put(Dst, 10187, LJ_TISNUM, LJ_TISNUM); 1824 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1822 if (sse) { 1825 if (sse) {
1823 dasm_put(Dst, 10473); 1826 dasm_put(Dst, 10470);
1824 } else { 1827 } else {
1825 dasm_put(Dst, 10487); 1828 dasm_put(Dst, 10484);
1826 } 1829 }
1827 break; 1830 break;
1828 } 1831 }
1829 dasm_put(Dst, 10506); 1832 dasm_put(Dst, 10503);
1830 if (sse) { 1833 if (sse) {
1831 dasm_put(Dst, 9994); 1834 dasm_put(Dst, 9991);
1832 } else { 1835 } else {
1833 dasm_put(Dst, 10006); 1836 dasm_put(Dst, 10003);
1834 } 1837 }
1835 dasm_put(Dst, 9575); 1838 dasm_put(Dst, 9572);
1836 break; 1839 break;
1837 1840
1838 case BC_CAT: 1841 case BC_CAT:
1839 dasm_put(Dst, 10510, Dt1(->base), Dt1(->base)); 1842 dasm_put(Dst, 10507, Dt1(->base), Dt1(->base));
1840 break; 1843 break;
1841 1844
1842 /* -- Constant ops ------------------------------------------------------ */ 1845 /* -- Constant ops ------------------------------------------------------ */
1843 1846
1844 case BC_KSTR: 1847 case BC_KSTR:
1845 dasm_put(Dst, 10600, LJ_TSTR); 1848 dasm_put(Dst, 10597, LJ_TSTR);
1846 break; 1849 break;
1847 case BC_KSHORT: 1850 case BC_KSHORT:
1848 if (sse) { 1851 if (sse) {
1849 dasm_put(Dst, 10635); 1852 dasm_put(Dst, 10632);
1850 } else { 1853 } else {
1851 dasm_put(Dst, 10650); 1854 dasm_put(Dst, 10647);
1852 } 1855 }
1853 dasm_put(Dst, 9575); 1856 dasm_put(Dst, 9572);
1854 break; 1857 break;
1855 case BC_KNUM: 1858 case BC_KNUM:
1856 if (sse) { 1859 if (sse) {
1857 dasm_put(Dst, 10658); 1860 dasm_put(Dst, 10655);
1858 } else { 1861 } else {
1859 dasm_put(Dst, 10671); 1862 dasm_put(Dst, 10668);
1860 } 1863 }
1861 dasm_put(Dst, 9575); 1864 dasm_put(Dst, 9572);
1862 break; 1865 break;
1863 case BC_KPRI: 1866 case BC_KPRI:
1864 dasm_put(Dst, 10678); 1867 dasm_put(Dst, 10675);
1865 break; 1868 break;
1866 case BC_KNIL: 1869 case BC_KNIL:
1867 dasm_put(Dst, 10706, LJ_TNIL); 1870 dasm_put(Dst, 10703, LJ_TNIL);
1868 break; 1871 break;
1869 1872
1870 /* -- Upvalue and function ops ------------------------------------------ */ 1873 /* -- Upvalue and function ops ------------------------------------------ */
1871 1874
1872 case BC_UGET: 1875 case BC_UGET:
1873 dasm_put(Dst, 10753, offsetof(GCfuncL, uvptr), DtA(->v)); 1876 dasm_put(Dst, 10750, offsetof(GCfuncL, uvptr), DtA(->v));
1874 break; 1877 break;
1875 case BC_USETV: 1878 case BC_USETV:
1876#define TV2MARKOFS \ 1879#define TV2MARKOFS \
1877 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1880 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1878 dasm_put(Dst, 10798, 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); 1881 dasm_put(Dst, 10795, 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);
1879 dasm_put(Dst, 10889); 1882 dasm_put(Dst, 10886);
1880 break; 1883 break;
1881#undef TV2MARKOFS 1884#undef TV2MARKOFS
1882 case BC_USETS: 1885 case BC_USETS:
1883 dasm_put(Dst, 10901, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1886 dasm_put(Dst, 10898, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1884 break; 1887 break;
1885 case BC_USETN: 1888 case BC_USETN:
1886 dasm_put(Dst, 10994); 1889 dasm_put(Dst, 10991);
1887 if (sse) { 1890 if (sse) {
1888 dasm_put(Dst, 10999); 1891 dasm_put(Dst, 10996);
1889 } else { 1892 } else {
1890 dasm_put(Dst, 9814); 1893 dasm_put(Dst, 9811);
1891 } 1894 }
1892 dasm_put(Dst, 11006, offsetof(GCfuncL, uvptr), DtA(->v)); 1895 dasm_put(Dst, 11003, offsetof(GCfuncL, uvptr), DtA(->v));
1893 if (sse) { 1896 if (sse) {
1894 dasm_put(Dst, 11015); 1897 dasm_put(Dst, 11012);
1895 } else { 1898 } else {
1896 dasm_put(Dst, 11021); 1899 dasm_put(Dst, 11018);
1897 } 1900 }
1898 dasm_put(Dst, 9575); 1901 dasm_put(Dst, 9572);
1899 break; 1902 break;
1900 case BC_USETP: 1903 case BC_USETP:
1901 dasm_put(Dst, 11024, offsetof(GCfuncL, uvptr), DtA(->v)); 1904 dasm_put(Dst, 11021, offsetof(GCfuncL, uvptr), DtA(->v));
1902 break; 1905 break;
1903 case BC_UCLO: 1906 case BC_UCLO:
1904 dasm_put(Dst, 11063, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1907 dasm_put(Dst, 11060, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1905 break; 1908 break;
1906 1909
1907 case BC_FNEW: 1910 case BC_FNEW:
1908 dasm_put(Dst, 11118, Dt1(->base), Dt1(->base), LJ_TFUNC); 1911 dasm_put(Dst, 11115, Dt1(->base), Dt1(->base), LJ_TFUNC);
1909 break; 1912 break;
1910 1913
1911 /* -- Table ops --------------------------------------------------------- */ 1914 /* -- Table ops --------------------------------------------------------- */
1912 1915
1913 case BC_TNEW: 1916 case BC_TNEW:
1914 dasm_put(Dst, 11184, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1917 dasm_put(Dst, 11181, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1915 break; 1918 break;
1916 case BC_TDUP: 1919 case BC_TDUP:
1917 dasm_put(Dst, 11306, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1920 dasm_put(Dst, 11303, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1918 break; 1921 break;
1919 1922
1920 case BC_GGET: 1923 case BC_GGET:
1921 dasm_put(Dst, 11401, Dt7(->env)); 1924 dasm_put(Dst, 11398, Dt7(->env));
1922 break; 1925 break;
1923 case BC_GSET: 1926 case BC_GSET:
1924 dasm_put(Dst, 11420, Dt7(->env)); 1927 dasm_put(Dst, 11417, Dt7(->env));
1925 break; 1928 break;
1926 1929
1927 case BC_TGETV: 1930 case BC_TGETV:
1928 dasm_put(Dst, 11439, LJ_TTAB, LJ_TISNUM); 1931 dasm_put(Dst, 11436, LJ_TTAB, LJ_TISNUM);
1929 if (sse) { 1932 if (sse) {
1930 dasm_put(Dst, 11472); 1933 dasm_put(Dst, 11469);
1931 } else { 1934 } else {
1932 } 1935 }
1933 dasm_put(Dst, 11493, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1936 dasm_put(Dst, 11490, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1934 dasm_put(Dst, 11586, LJ_TSTR); 1937 dasm_put(Dst, 11583, LJ_TSTR);
1935 break; 1938 break;
1936 case BC_TGETS: 1939 case BC_TGETS:
1937 dasm_put(Dst, 11604, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1940 dasm_put(Dst, 11601, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1938 dasm_put(Dst, 11689, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1941 dasm_put(Dst, 11686, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1939 break; 1942 break;
1940 case BC_TGETB: 1943 case BC_TGETB:
1941 dasm_put(Dst, 11761, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1944 dasm_put(Dst, 11758, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1942 dasm_put(Dst, 10101); 1945 dasm_put(Dst, 10098);
1943 break; 1946 break;
1944 1947
1945 case BC_TSETV: 1948 case BC_TSETV:
1946 dasm_put(Dst, 11861, LJ_TTAB, LJ_TISNUM); 1949 dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM);
1947 if (sse) { 1950 if (sse) {
1948 dasm_put(Dst, 11472); 1951 dasm_put(Dst, 11469);
1949 } else { 1952 } else {
1950 } 1953 }
1951 dasm_put(Dst, 11894, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1954 dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1952 dasm_put(Dst, 11978, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1955 dasm_put(Dst, 11975, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1953 break; 1956 break;
1954 case BC_TSETS: 1957 case BC_TSETS:
1955 dasm_put(Dst, 12040, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1958 dasm_put(Dst, 12037, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1956 dasm_put(Dst, 12116, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1959 dasm_put(Dst, 12113, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1957 dasm_put(Dst, 12209, 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)); 1960 dasm_put(Dst, 12206, 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));
1958 break; 1961 break;
1959 case BC_TSETB: 1962 case BC_TSETB:
1960 dasm_put(Dst, 12300, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1963 dasm_put(Dst, 12297, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1961 dasm_put(Dst, 12399, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1964 dasm_put(Dst, 12396, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1962 break; 1965 break;
1963 1966
1964 case BC_TSETM: 1967 case BC_TSETM:
1965 dasm_put(Dst, 12445); 1968 dasm_put(Dst, 12442);
1966 if (sse) { 1969 if (sse) {
1967 dasm_put(Dst, 12450); 1970 dasm_put(Dst, 12447);
1968 } else { 1971 } else {
1969 } 1972 }
1970 dasm_put(Dst, 12457, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1973 dasm_put(Dst, 12454, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1971 dasm_put(Dst, 12597, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1974 dasm_put(Dst, 12594, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1972 break; 1975 break;
1973 1976
1974 /* -- Calls and vararg handling ----------------------------------------- */ 1977 /* -- Calls and vararg handling ----------------------------------------- */
1975 1978
1976 case BC_CALL: case BC_CALLM: 1979 case BC_CALL: case BC_CALLM:
1977 dasm_put(Dst, 10115); 1980 dasm_put(Dst, 10112);
1978 if (op == BC_CALLM) { 1981 if (op == BC_CALLM) {
1979 dasm_put(Dst, 12615); 1982 dasm_put(Dst, 12612);
1980 } 1983 }
1981 dasm_put(Dst, 12620, LJ_TFUNC, Dt7(->pc)); 1984 dasm_put(Dst, 12617, LJ_TFUNC, Dt7(->pc));
1982 break; 1985 break;
1983 1986
1984 case BC_CALLMT: 1987 case BC_CALLMT:
1985 dasm_put(Dst, 12615); 1988 dasm_put(Dst, 12612);
1986 break; 1989 break;
1987 case BC_CALLT: 1990 case BC_CALLT:
1988 dasm_put(Dst, 12662, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1991 dasm_put(Dst, 12659, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1989 dasm_put(Dst, 12781, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 1992 dasm_put(Dst, 12778, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1990 break; 1993 break;
1991 1994
1992 case BC_ITERC: 1995 case BC_ITERC:
1993 dasm_put(Dst, 12852, LJ_TFUNC, 2+1, Dt7(->pc)); 1996 dasm_put(Dst, 12849, LJ_TFUNC, 2+1, Dt7(->pc));
1994 break; 1997 break;
1995 1998
1996 case BC_VARG: 1999 case BC_VARG:
1997 dasm_put(Dst, 12933, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2000 dasm_put(Dst, 12930, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1998 dasm_put(Dst, 13078, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2001 dasm_put(Dst, 13075, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1999 break; 2002 break;
2000 2003
2001 /* -- Returns ----------------------------------------------------------- */ 2004 /* -- Returns ----------------------------------------------------------- */
2002 2005
2003 case BC_RETM: 2006 case BC_RETM:
2004 dasm_put(Dst, 12615); 2007 dasm_put(Dst, 12612);
2005 break; 2008 break;
2006 2009
2007 case BC_RET: case BC_RET0: case BC_RET1: 2010 case BC_RET: case BC_RET0: case BC_RET1:
2008 if (op != BC_RET0) { 2011 if (op != BC_RET0) {
2009 dasm_put(Dst, 13177); 2012 dasm_put(Dst, 13174);
2010 } 2013 }
2011 dasm_put(Dst, 13181, FRAME_TYPE); 2014 dasm_put(Dst, 13178, FRAME_TYPE);
2012 switch (op) { 2015 switch (op) {
2013 case BC_RET: 2016 case BC_RET:
2014 dasm_put(Dst, 13200); 2017 dasm_put(Dst, 13197);
2015 break; 2018 break;
2016 case BC_RET1: 2019 case BC_RET1:
2017 dasm_put(Dst, 13258); 2020 dasm_put(Dst, 13255);
2018 /* fallthrough */ 2021 /* fallthrough */
2019 case BC_RET0: 2022 case BC_RET0:
2020 dasm_put(Dst, 13274); 2023 dasm_put(Dst, 13271);
2021 default: 2024 default:
2022 break; 2025 break;
2023 } 2026 }
2024 dasm_put(Dst, 13285, Dt7(->pc), PC2PROTO(k)); 2027 dasm_put(Dst, 13282, Dt7(->pc), PC2PROTO(k));
2025 if (op == BC_RET) { 2028 if (op == BC_RET) {
2026 dasm_put(Dst, 13329, LJ_TNIL); 2029 dasm_put(Dst, 13326, LJ_TNIL);
2027 } else { 2030 } else {
2028 dasm_put(Dst, 13338, LJ_TNIL); 2031 dasm_put(Dst, 13335, LJ_TNIL);
2029 } 2032 }
2030 dasm_put(Dst, 13345, -FRAME_VARG, FRAME_TYPEP); 2033 dasm_put(Dst, 13342, -FRAME_VARG, FRAME_TYPEP);
2031 if (op != BC_RET0) { 2034 if (op != BC_RET0) {
2032 dasm_put(Dst, 13369); 2035 dasm_put(Dst, 13366);
2033 } 2036 }
2034 dasm_put(Dst, 4577); 2037 dasm_put(Dst, 4573);
2035 break; 2038 break;
2036 2039
2037 /* -- Loops and branches ------------------------------------------------ */ 2040 /* -- Loops and branches ------------------------------------------------ */
@@ -2039,7 +2042,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2039 2042
2040 case BC_FORL: 2043 case BC_FORL:
2041#if LJ_HASJIT 2044#if LJ_HASJIT
2042 dasm_put(Dst, 13373, HOTCOUNT_PCMASK, GG_DISP2HOT); 2045 dasm_put(Dst, 13370, HOTCOUNT_PCMASK, GG_DISP2HOT);
2043#endif 2046#endif
2044 break; 2047 break;
2045 2048
@@ -2051,57 +2054,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2051 case BC_FORI: 2054 case BC_FORI:
2052 case BC_IFORL: 2055 case BC_IFORL:
2053 vk = (op == BC_IFORL || op == BC_JFORL); 2056 vk = (op == BC_IFORL || op == BC_JFORL);
2054 dasm_put(Dst, 13394); 2057 dasm_put(Dst, 13391);
2055 if (!vk) { 2058 if (!vk) {
2056 dasm_put(Dst, 13398, LJ_TISNUM, LJ_TISNUM); 2059 dasm_put(Dst, 13395, LJ_TISNUM, LJ_TISNUM);
2057 } 2060 }
2058 dasm_put(Dst, 13417); 2061 dasm_put(Dst, 13414);
2059 if (!vk) { 2062 if (!vk) {
2060 dasm_put(Dst, 13421, LJ_TISNUM); 2063 dasm_put(Dst, 13418, LJ_TISNUM);
2061 } 2064 }
2062 if (sse) { 2065 if (sse) {
2063 dasm_put(Dst, 13430); 2066 dasm_put(Dst, 13427);
2064 if (vk) { 2067 if (vk) {
2065 dasm_put(Dst, 13442); 2068 dasm_put(Dst, 13439);
2066 } else { 2069 } else {
2067 dasm_put(Dst, 13461); 2070 dasm_put(Dst, 13458);
2068 } 2071 }
2069 dasm_put(Dst, 13466); 2072 dasm_put(Dst, 13463);
2070 } else { 2073 } else {
2071 dasm_put(Dst, 13479); 2074 dasm_put(Dst, 13476);
2072 if (vk) { 2075 if (vk) {
2073 dasm_put(Dst, 13485); 2076 dasm_put(Dst, 13482);
2074 } else { 2077 } else {
2075 dasm_put(Dst, 13501); 2078 dasm_put(Dst, 13498);
2076 } 2079 }
2077 dasm_put(Dst, 13509); 2080 dasm_put(Dst, 13506);
2078 if (cmov) { 2081 if (cmov) {
2079 dasm_put(Dst, 9538); 2082 dasm_put(Dst, 9535);
2080 } else { 2083 } else {
2081 dasm_put(Dst, 9544); 2084 dasm_put(Dst, 9541);
2082 } 2085 }
2083 if (!cmov) { 2086 if (!cmov) {
2084 dasm_put(Dst, 13514); 2087 dasm_put(Dst, 13511);
2085 } 2088 }
2086 } 2089 }
2087 if (op == BC_FORI) { 2090 if (op == BC_FORI) {
2088 dasm_put(Dst, 13520, -BCBIAS_J*4); 2091 dasm_put(Dst, 13517, -BCBIAS_J*4);
2089 } else if (op == BC_JFORI) { 2092 } else if (op == BC_JFORI) {
2090 dasm_put(Dst, 13530, -BCBIAS_J*4, BC_JLOOP); 2093 dasm_put(Dst, 13527, -BCBIAS_J*4, BC_JLOOP);
2091 } else if (op == BC_IFORL) { 2094 } else if (op == BC_IFORL) {
2092 dasm_put(Dst, 13544, -BCBIAS_J*4); 2095 dasm_put(Dst, 13541, -BCBIAS_J*4);
2093 } else { 2096 } else {
2094 dasm_put(Dst, 13540, BC_JLOOP); 2097 dasm_put(Dst, 13537, BC_JLOOP);
2095 } 2098 }
2096 dasm_put(Dst, 9573); 2099 dasm_put(Dst, 9570);
2097 if (sse) { 2100 if (sse) {
2098 dasm_put(Dst, 13554); 2101 dasm_put(Dst, 13551);
2099 } 2102 }
2100 break; 2103 break;
2101 2104
2102 case BC_ITERL: 2105 case BC_ITERL:
2103#if LJ_HASJIT 2106#if LJ_HASJIT
2104 dasm_put(Dst, 13373, HOTCOUNT_PCMASK, GG_DISP2HOT); 2107 dasm_put(Dst, 13370, HOTCOUNT_PCMASK, GG_DISP2HOT);
2105#endif 2108#endif
2106 break; 2109 break;
2107 2110
@@ -2110,33 +2113,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2110 break; 2113 break;
2111#endif 2114#endif
2112 case BC_IITERL: 2115 case BC_IITERL:
2113 dasm_put(Dst, 13565, LJ_TNIL); 2116 dasm_put(Dst, 13562, LJ_TNIL);
2114 if (op == BC_JITERL) { 2117 if (op == BC_JITERL) {
2115 dasm_put(Dst, 13580, BC_JLOOP); 2118 dasm_put(Dst, 13577, BC_JLOOP);
2116 } else { 2119 } else {
2117 dasm_put(Dst, 13594, -BCBIAS_J*4); 2120 dasm_put(Dst, 13591, -BCBIAS_J*4);
2118 } 2121 }
2119 dasm_put(Dst, 9873); 2122 dasm_put(Dst, 9870);
2120 break; 2123 break;
2121 2124
2122 case BC_LOOP: 2125 case BC_LOOP:
2123#if LJ_HASJIT 2126#if LJ_HASJIT
2124 dasm_put(Dst, 13373, HOTCOUNT_PCMASK, GG_DISP2HOT); 2127 dasm_put(Dst, 13370, HOTCOUNT_PCMASK, GG_DISP2HOT);
2125#endif 2128#endif
2126 break; 2129 break;
2127 2130
2128 case BC_ILOOP: 2131 case BC_ILOOP:
2129 dasm_put(Dst, 9575); 2132 dasm_put(Dst, 9572);
2130 break; 2133 break;
2131 2134
2132 case BC_JLOOP: 2135 case BC_JLOOP:
2133#if LJ_HASJIT 2136#if LJ_HASJIT
2134 dasm_put(Dst, 13610, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16); 2137 dasm_put(Dst, 13607, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16);
2135#endif 2138#endif
2136 break; 2139 break;
2137 2140
2138 case BC_JMP: 2141 case BC_JMP:
2139 dasm_put(Dst, 13719, -BCBIAS_J*4); 2142 dasm_put(Dst, 13716, -BCBIAS_J*4);
2140 break; 2143 break;
2141 2144
2142 /* -- Function headers -------------------------------------------------- */ 2145 /* -- Function headers -------------------------------------------------- */
@@ -2150,7 +2153,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2150 2153
2151 case BC_FUNCF: 2154 case BC_FUNCF:
2152#if LJ_HASJIT 2155#if LJ_HASJIT
2153 dasm_put(Dst, 13744, HOTCOUNT_PCMASK, GG_DISP2HOT); 2156 dasm_put(Dst, 13741, HOTCOUNT_PCMASK, GG_DISP2HOT);
2154#endif 2157#endif
2155 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2158 case BC_FUNCV: /* NYI: compiled vararg functions. */
2156 break; 2159 break;
@@ -2160,47 +2163,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2160 break; 2163 break;
2161#endif 2164#endif
2162 case BC_IFUNCF: 2165 case BC_IFUNCF:
2163 dasm_put(Dst, 13765, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2166 dasm_put(Dst, 13762, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2164 if (op == BC_JFUNCF) { 2167 if (op == BC_JFUNCF) {
2165 dasm_put(Dst, 13795, BC_JLOOP); 2168 dasm_put(Dst, 13792, BC_JLOOP);
2166 } else { 2169 } else {
2167 dasm_put(Dst, 9575); 2170 dasm_put(Dst, 9572);
2168 } 2171 }
2169 dasm_put(Dst, 13804, LJ_TNIL); 2172 dasm_put(Dst, 13801, LJ_TNIL);
2170 break; 2173 break;
2171 2174
2172 case BC_JFUNCV: 2175 case BC_JFUNCV:
2173#if !LJ_HASJIT 2176#if !LJ_HASJIT
2174 break; 2177 break;
2175#endif 2178#endif
2176 dasm_put(Dst, 9266); 2179 dasm_put(Dst, 9047);
2177 break; /* NYI: compiled vararg functions. */ 2180 break; /* NYI: compiled vararg functions. */
2178 2181
2179 case BC_IFUNCV: 2182 case BC_IFUNCV:
2180 dasm_put(Dst, 13826, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2183 dasm_put(Dst, 13823, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2181 if (op == BC_JFUNCV) { 2184 if (op == BC_JFUNCV) {
2182 dasm_put(Dst, 13795, BC_JLOOP); 2185 dasm_put(Dst, 13792, BC_JLOOP);
2183 } else { 2186 } else {
2184 dasm_put(Dst, 13917, -4+PC2PROTO(k)); 2187 dasm_put(Dst, 13914, -4+PC2PROTO(k));
2185 } 2188 }
2186 dasm_put(Dst, 13940, LJ_TNIL); 2189 dasm_put(Dst, 13937, LJ_TNIL);
2187 break; 2190 break;
2188 2191
2189 case BC_FUNCC: 2192 case BC_FUNCC:
2190 case BC_FUNCCW: 2193 case BC_FUNCCW:
2191 dasm_put(Dst, 13962, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2194 dasm_put(Dst, 13959, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2192 if (op == BC_FUNCC) { 2195 if (op == BC_FUNCC) {
2193 dasm_put(Dst, 13992); 2196 dasm_put(Dst, 13989);
2194 } else { 2197 } else {
2195 dasm_put(Dst, 13996); 2198 dasm_put(Dst, 13993);
2196 } 2199 }
2197 dasm_put(Dst, 14004, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2200 dasm_put(Dst, 14001, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2198 if (op == BC_FUNCC) { 2201 if (op == BC_FUNCC) {
2199 dasm_put(Dst, 14013); 2202 dasm_put(Dst, 14010);
2200 } else { 2203 } else {
2201 dasm_put(Dst, 14017, DISPATCH_GL(wrapf)); 2204 dasm_put(Dst, 14014, DISPATCH_GL(wrapf));
2202 } 2205 }
2203 dasm_put(Dst, 14022, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2206 dasm_put(Dst, 14019, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2204 break; 2207 break;
2205 2208
2206 /* ---------------------------------------------------------------------- */ 2209 /* ---------------------------------------------------------------------- */
@@ -2228,7 +2231,7 @@ static int build_backend(BuildCtx *ctx)
2228 2231
2229 build_subroutines(ctx, cmov, sse); 2232 build_subroutines(ctx, cmov, sse);
2230 2233
2231 dasm_put(Dst, 14047); 2234 dasm_put(Dst, 14044);
2232 for (op = 0; op < BC__MAX; op++) 2235 for (op = 0; op < BC__MAX; op++)
2233 build_ins(ctx, (BCOp)op, op, cmov, sse); 2236 build_ins(ctx, (BCOp)op, op, cmov, sse);
2234 2237
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 5af00d38..69672adc 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -574,11 +574,10 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
574 | mov BASE, L:RB->base 574 | mov BASE, L:RB->base
575 | mov RD, L:RB->top 575 | mov RD, L:RB->top
576 | mov LFUNC:RB, [BASE-8] 576 | mov LFUNC:RB, [BASE-8]
577 | mov PC, [BASE-4]
578 | sub RD, BASE 577 | sub RD, BASE
579 | shr RD, 3 578 | shr RD, 3
580 | add NARGS:RD, 1 579 | add NARGS:RD, 1
581 | // BASE = new base, RB = LFUNC, RD = nargs+1, PC restored. 580 | // BASE = new base, RB = LFUNC, RD = nargs+1
582 | ins_callt // Just retry the call. 581 | ins_callt // Just retry the call.
583 | 582 |
584 |//----------------------------------------------------------------------- 583 |//-----------------------------------------------------------------------
@@ -3079,6 +3078,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
3079 |// Callable from C: double lj_vm_foldfpm(double x, int fpm) 3078 |// Callable from C: double lj_vm_foldfpm(double x, int fpm)
3080 |// Computes fpm(x) for extended math functions. ORDER FPM. 3079 |// Computes fpm(x) for extended math functions. ORDER FPM.
3081 |->vm_foldfpm: 3080 |->vm_foldfpm:
3081#if LJ_HASJIT
3082 if (sse) { 3082 if (sse) {
3083 |.if X64 3083 |.if X64
3084 | 3084 |
@@ -3174,6 +3174,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
3174 |1: ; fptan; fpop; ret 3174 |1: ; fptan; fpop; ret
3175 } 3175 }
3176 |9: ; int3 // Bad fpm. 3176 |9: ; int3 // Bad fpm.
3177#endif
3177 | 3178 |
3178 |// Callable from C: double lj_vm_foldarith(double x, double y, int op) 3179 |// Callable from C: double lj_vm_foldarith(double x, double y, int op)
3179 |// Compute x op y for basic arithmetic operators (+ - * / % ^ and unary -) 3180 |// Compute x op y for basic arithmetic operators (+ - * / % ^ and unary -)
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 952e14d0..c50b541a 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15254] = { 15static const unsigned char build_actionlist[15251] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -31,131 +31,131 @@ static const unsigned char build_actionlist[15254] = {
31 233,237,252,233,244,12,248,21,186,237,252,233,244,248,248,22,131,232,8,252, 31 233,237,252,233,244,12,248,21,186,237,252,233,244,248,248,22,131,232,8,252,
32 233,244,247,248,23,141,68,194,252,248,248,1,15,182,142,233,131,198,4,137, 32 233,244,247,248,23,141,68,194,252,248,248,1,15,182,142,233,131,198,4,137,
33 149,233,137,133,233,255,137,116,36,24,137,202,248,2,137,252,233,232,251,1, 33 149,233,137,133,233,255,137,116,36,24,137,202,248,2,137,252,233,232,251,1,
34 0,139,149,233,139,133,233,139,106,252,248,139,114,252,252,41,208,193,232, 34 0,139,149,233,139,133,233,139,106,252,248,41,208,193,232,3,131,192,1,139,
35 3,131,192,1,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255, 35 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,24,
36 36,171,248,24,85,87,86,83,131,252,236,28,139,108,36,48,139,76,36,52,190,237, 36 85,87,86,83,131,252,236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,
37 49,192,141,188,253,36,233,139,157,233,129,195,239,137,189,233,137,68,36,24, 37 188,253,36,233,139,157,233,129,195,239,137,189,233,137,68,36,24,137,68,36,
38 137,68,36,52,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149, 38 52,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233,139,
39 233,139,133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68, 39 133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,20,252,
40 36,20,252,247,198,237,15,132,244,13,255,252,233,244,14,248,25,85,87,86,83, 40 247,198,237,15,132,244,13,255,252,233,244,14,248,25,85,87,86,83,131,252,236,
41 131,252,236,28,190,237,252,233,244,247,248,26,85,87,86,83,131,252,236,28, 41 28,190,237,252,233,244,247,248,26,85,87,86,83,131,252,236,28,190,237,248,
42 190,237,248,1,139,108,36,48,139,76,36,52,139,189,233,137,124,36,52,137,108, 42 1,139,108,36,48,139,76,36,52,139,189,233,137,124,36,52,137,108,36,24,137,
43 36,24,137,165,233,248,2,139,157,233,129,195,239,248,3,199,131,233,237,139, 43 165,233,248,2,139,157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,
44 149,233,1,206,41,214,139,133,233,41,200,193,232,3,131,192,1,248,27,255,139, 44 206,41,214,139,133,233,41,200,193,232,3,131,192,1,248,27,255,139,105,252,
45 105,252,248,129,121,253,252,252,239,15,133,244,28,248,29,137,202,137,114, 45 248,129,121,253,252,252,239,15,133,244,28,248,29,137,202,137,114,252,252,
46 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36, 46 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,
47 171,248,30,85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,56,139,76,36, 47 30,85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,56,139,76,36,52,139,
48 52,139,84,36,60,137,108,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0, 48 84,36,60,137,108,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0,137,124,
49 137,124,36,56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52, 49 36,56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52,137,165,
50 137,165,233,252,255,210,133,192,15,132,244,15,137,193,190,237,252,233,244, 50 233,252,255,210,133,192,15,132,244,15,137,193,190,237,252,233,244,2,248,11,
51 2,248,11,1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237, 51 1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237,137,200,139,
52 137,200,139,117,252,244,139,77,252,240,139,122,252,248,139,191,233,139,191, 52 117,252,244,139,77,252,240,139,122,252,248,139,191,233,139,191,233,252,255,
53 233,252,255,225,248,31,255,15,182,78,252,255,131,252,237,16,141,12,202,41, 53 225,248,31,255,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15,
54 252,233,15,132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139, 54 132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,
55 0,137,77,4,137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68, 55 137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237,
56 36,20,237,141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137, 56 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,
57 41,199,65,4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,255,252, 57 4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,255,252,242,15,42,
58 242,15,42,192,252,242,15,17,68,36,16,255,137,68,36,12,219,68,36,12,221,92, 58 192,252,242,15,17,68,36,16,255,137,68,36,12,219,68,36,12,221,92,36,16,255,
59 36,16,255,141,68,36,16,252,233,244,247,248,36,15,182,70,252,254,141,4,194, 59 141,68,36,16,252,233,244,247,248,36,15,182,70,252,254,141,4,194,248,1,15,
60 248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48, 60 182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36,
61 137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,1,139,149,233,133, 61 8,137,44,36,137,149,233,137,116,36,24,232,251,1,1,139,149,233,133,192,15,
62 192,15,132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,202,4, 62 132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,202,4,137,4,
63 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 63 202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,
64 248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,248,184, 64 139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,248,184,237,252,
65 237,252,233,244,29,248,37,137,68,36,16,199,68,36,20,237,141,68,36,16,128, 65 233,244,29,248,37,137,68,36,16,199,68,36,20,237,141,68,36,16,128,126,252,
66 126,252,252,235,15,133,244,247,255,141,139,233,137,41,199,65,4,237,137,205, 66 252,235,15,133,244,247,255,141,139,233,137,41,199,65,4,237,137,205,252,233,
67 252,233,244,248,248,38,15,182,70,252,254,255,141,68,36,16,252,233,244,247, 67 244,248,248,38,15,182,70,252,254,255,141,68,36,16,252,233,244,247,248,39,
68 248,39,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252,234, 68 15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,
69 248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116, 69 137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,
70 36,24,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,78,252,253,139, 70 232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,78,252,253,139,108,
71 108,202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204,15,182,232,131, 71 202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204,15,182,232,131,198,
72 198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,252,244,15,182, 72 4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,252,244,15,182,70,252,
73 70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,177,233,41,214, 73 253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,177,233,41,214,139,105,
74 139,105,252,248,184,237,252,233,244,29,248,41,15,182,110,252,252,141,4,194, 74 252,248,184,237,252,233,244,29,248,41,15,182,110,252,252,141,4,194,141,12,
75 141,12,202,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36, 75 202,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,
76 137,149,233,137,116,36,24,232,251,1,3,248,3,139,149,233,255,131,252,248,1, 76 233,137,116,36,24,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135,
77 15,135,244,42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141, 77 244,42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,
78 180,253,134,233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 78 134,233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
79 255,36,171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6, 79 171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44,
80 248,44,129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,36,12, 80 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,36,12,139,108,
81 139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,116,36, 81 36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,116,36,24,232,
82 24,232,251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141, 82 251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141,
83 4,199,141,44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233, 83 44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248,
84 244,248,248,49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,137,108,36, 84 49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,137,108,36,8,139,108,36,
85 8,139,108,36,48,137,68,36,12,15,182,70,252,252,137,76,36,4,137,68,36,16,137, 85 48,137,68,36,12,15,182,70,252,252,137,76,36,4,137,68,36,16,137,44,36,137,
86 44,36,137,149,233,137,116,36,24,232,251,1,5,139,149,233,133,192,15,132,244, 86 149,233,137,116,36,24,232,251,1,5,139,149,233,133,192,15,132,244,40,248,42,
87 40,248,42,137,193,41,208,137,113,252,244,141,176,233,255,184,237,252,233, 87 137,193,41,208,137,113,252,244,141,176,233,255,184,237,252,233,244,27,248,
88 244,27,248,50,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36, 88 50,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36,24,232,251,
89 24,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137, 89 1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137,76,36,20,137,
90 76,36,20,137,68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137, 90 68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,
91 68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,7,139,149,233,139,76, 91 44,36,137,149,233,137,116,36,24,232,251,1,7,139,149,233,139,76,36,20,139,
92 36,20,139,68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,52,137,202, 92 68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,52,137,202,137,114,252,
93 137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252, 93 252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,
94 255,36,171,248,53,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36, 94 248,53,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,
95 24,232,251,1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16, 95 1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,
96 252,255,164,253,171,233,248,54,255,129,252,248,239,15,130,244,55,139,106, 96 253,171,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,252,253,
97 4,129,252,253,239,15,131,244,55,139,114,252,252,137,68,36,20,137,106,252, 97 239,15,131,244,55,139,114,252,252,137,68,36,20,137,106,252,252,139,42,137,
98 252,139,42,137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193, 98 106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,
99 8,139,105,4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1, 99 105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,
100 248,2,139,68,36,20,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139, 100 20,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,184,237,
101 106,4,184,237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232, 101 252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,
102 248,1,255,248,2,139,106,252,248,139,132,253,197,233,139,114,252,252,199,66, 102 2,139,106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,
103 252,252,237,137,66,252,248,252,233,244,58,248,59,129,252,248,239,15,130,244, 103 137,66,252,248,252,233,244,58,248,59,129,252,248,239,15,130,244,55,139,106,
104 55,139,106,4,139,114,252,252,129,252,253,239,15,133,244,252,248,1,139,42, 104 4,139,114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,
105 139,173,233,248,2,133,252,237,199,66,252,252,237,15,132,244,58,139,131,233, 105 248,2,133,252,237,199,66,252,252,237,15,132,244,58,139,131,233,199,66,252,
106 199,66,252,252,237,255,137,106,252,248,139,141,233,35,136,233,105,201,239, 106 252,237,255,137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,
107 3,141,233,248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251, 107 248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,
108 248,4,139,137,233,133,201,15,133,244,3,252,233,244,58,248,5,139,105,4,129, 108 137,233,133,201,15,133,244,3,252,233,244,58,248,5,139,105,4,129,252,253,239,
109 252,253,239,255,15,132,244,58,139,1,137,106,252,252,137,66,252,248,252,233, 109 255,15,132,244,58,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248,
110 244,58,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253, 110 6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,
111 189,237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248,60,129,252, 111 7,252,247,213,139,172,253,171,233,252,233,244,2,248,60,129,252,248,239,15,
112 248,239,15,130,244,55,255,129,122,253,4,239,15,133,244,55,139,42,131,189, 112 130,244,55,255,129,122,253,4,239,15,133,244,55,139,42,131,189,233,0,15,133,
113 233,0,15,133,244,55,129,122,253,12,239,15,133,244,55,139,66,8,137,133,233, 113 244,55,129,122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,114,252,
114 139,114,252,252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15, 114 252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247,
115 132,244,247,128,165,233,235,139,131,233,137,171,233,137,133,233,248,1,255, 115 128,165,233,235,139,131,233,137,171,233,137,133,233,248,1,255,252,233,244,
116 252,233,244,58,248,61,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 116 58,248,61,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,
117 133,244,55,139,2,139,108,36,48,137,68,36,4,137,44,36,137,213,131,194,8,137, 117 2,139,108,36,48,137,68,36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,
118 84,36,8,232,251,1,9,137,252,234,139,40,139,64,4,139,114,252,252,137,106,252, 118 1,9,137,252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,
119 248,137,66,252,252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129, 119 252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,
120 122,253,4,239,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2, 120 15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,
121 252,233,244,64,255,248,65,129,252,248,239,15,130,244,55,139,114,252,252,129, 121 255,248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239,
122 122,253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248, 122 15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,
123 252,233,244,58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133, 123 58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139,
124 244,55,139,171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108, 124 171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36,48,137,
125 36,48,137,149,233,137,116,36,24,137,252,233,232,251,1,10,139,149,233,252, 125 149,233,137,116,36,24,137,252,233,232,251,1,10,139,149,233,252,233,244,2,
126 233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122, 126 248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,
127 253,4,239,15,133,244,55,139,108,36,48,137,149,233,255,137,149,233,139,114, 127 15,133,244,55,139,108,36,48,137,149,233,255,137,149,233,139,114,252,252,139,
128 252,252,139,2,137,68,36,4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232, 128 2,137,68,36,4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232,251,1,11,
129 251,1,11,139,149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252, 129 139,149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,
130 248,137,66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252, 130 66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,
131 233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252, 131 69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,
132 233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,106,252,248,129,122, 132 58,248,70,129,252,248,239,15,130,244,55,255,139,106,252,248,129,122,253,4,
133 253,4,239,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252,237,137, 133 239,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,
134 66,252,248,199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15, 134 248,199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,
135 130,244,55,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244, 135 55,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,
136 55,139,114,252,252,255,252,242,15,16,66,8,189,0,0,252,240,63,102,15,110,205, 136 252,252,255,252,242,15,16,66,8,189,0,0,252,240,63,102,15,110,205,102,15,112,
137 102,15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252, 137 201,81,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,221,
138 248,255,221,66,8,217,232,222,193,219,20,36,221,90,252,248,139,4,36,255,139, 138 66,8,217,232,222,193,219,20,36,221,90,252,248,139,4,36,255,139,42,59,133,
139 42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239, 139 233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,
140 15,132,244,72,139,40,139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189, 140 72,139,40,139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,
141 233,0,15,132,244,72,137,252,233,137,213,137,194,232,251,1,12,137,252,234, 141 132,244,72,137,252,233,137,213,137,194,232,251,1,12,137,252,234,133,192,15,
142 133,192,15,133,244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248, 142 133,244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,
143 239,15,130,244,55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133, 143 244,55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,114,
144 233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242, 144 252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,
145 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129, 145 8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,
146 252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233, 146 239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,
147 193,252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239, 147 237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,
148 15,130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, 148 244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,
149 66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252, 149 237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,
150 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137, 150 244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137,116,
151 116,36,24,137,44,36,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133, 151 36,24,137,44,36,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,
152 244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141, 152 55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,
153 233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137, 153 15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,
154 181,233,139,108,36,48,137,149,233,131,194,8,137,149,233,141,108,194,232,41, 154 233,139,108,36,48,137,149,233,131,194,8,137,149,233,141,108,194,232,41,252,
155 252,245,57,206,15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137, 155 245,57,206,15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,
156 70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137, 156 252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,
157 76,36,12,137,76,36,8,232,244,24,199,131,233,237,255,139,108,36,48,139,52, 157 36,12,137,76,36,8,232,244,24,199,131,233,237,255,139,108,36,48,139,52,36,
158 36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233, 158 139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,
159 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133, 159 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,
160 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, 160 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,
161 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248, 161 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,
@@ -507,222 +507,222 @@ static const unsigned char build_actionlist[15254] = {
507 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252, 507 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,
508 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15, 508 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,
509 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195, 509 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,
510 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16, 510 255,248,9,204,255,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,
511 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248, 511 15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,
512 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244, 512 193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,
513 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252, 513 233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,
514 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132, 514 193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,
515 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,107, 515 5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,
516 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0, 516 244,107,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,
517 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102, 517 184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,
518 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248, 518 1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,
519 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247, 519 7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,
520 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 520 244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,
521 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242, 521 248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,
522 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36, 522 1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,
523 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252, 523 221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,
524 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248, 524 1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,
525 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252, 525 195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,
526 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216, 526 131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,
527 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243, 527 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,
528 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244, 528 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,
529 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233, 529 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
530 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217, 530 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
531 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248, 531 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
532 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0, 532 244,248,217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,
533 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124, 533 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,
534 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129,124, 534 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,
535 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 535 255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,
536 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255, 536 41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,
537 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 537 194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,
538 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15, 538 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,
539 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4, 539 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
540 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244, 540 255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,
541 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15, 541 4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,
542 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15, 542 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,
543 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, 543 247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,
544 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 544 70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,
545 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 545 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
546 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 546 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
547 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131, 547 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,
548 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198, 548 252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,
549 4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46, 549 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,
550 4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139, 550 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,
551 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247, 551 4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,
552 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253, 552 247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,
553 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 553 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,
554 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 554 4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,137,
555 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 555 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
556 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 556 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,
557 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,48,255,252, 557 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,
558 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193, 558 15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,
559 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 559 112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,
560 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 560 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,
561 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 561 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,
562 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239, 562 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,
563 15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 563 129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,
564 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1, 564 242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,
565 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46, 565 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
566 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199, 566 4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,
567 255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242, 567 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,
568 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 568 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
569 15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252, 569 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,
570 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252, 570 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
571 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4, 571 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,
572 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16, 572 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,
573 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15, 573 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,
574 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242, 574 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,
575 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252, 575 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,
576 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 576 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,
577 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199, 577 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,
578 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252, 578 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,
579 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220, 579 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,
580 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234, 580 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,
581 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199, 581 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,
582 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 582 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
583 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244, 583 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
584 107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36, 584 156,255,232,244,107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,
585 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,25,139, 585 36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,
586 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68, 586 232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,
587 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 587 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,
588 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68, 588 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,
589 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 589 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,
590 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70, 590 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,
591 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4, 591 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
592 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131, 592 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,
593 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137, 593 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,
594 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15, 594 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
595 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253, 595 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,
596 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 596 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,
597 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139, 597 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
598 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77, 598 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,
599 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6, 599 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,
600 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239, 600 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
601 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141, 601 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,
602 139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,252,247,208,139,106, 602 235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233,
603 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252, 603 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,
604 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 604 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,
605 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189, 605 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,
606 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252, 606 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,
607 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 607 232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,
608 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252, 608 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
609 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 609 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,
610 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 610 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,
611 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 611 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,
612 27,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 612 20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,
613 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 613 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,
614 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,28,139,149, 614 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,
615 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 615 36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
616 232,131,198,4,193,232,16,252,255,36,171,255,139,108,36,48,137,149,233,139, 616 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,
617 139,233,59,139,233,137,116,36,24,15,131,244,251,248,1,137,193,37,252,255, 617 36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,
618 7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,132,244,249,248,2,137, 618 1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,
619 44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199, 619 132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78,
620 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
621 193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,
622 232,251,1,30,15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,
623 139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,
624 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,
620 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 625 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
621 171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,30,15,183, 626 171,248,3,137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,
622 70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116, 627 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,
623 36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233, 628 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
624 232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 629 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,
625 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252, 630 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
626 233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247, 631 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,
627 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,252,247,208, 632 4,36,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
628 139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236, 633 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
629 15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124, 634 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,
630 253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252, 635 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,
631 242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244, 636 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
632 36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132, 637 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,
633 244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15, 638 124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,
634 182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244, 639 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,
635 1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233, 640 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,
636 244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244, 641 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,
637 157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234, 642 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,
638 4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201, 643 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
639 239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244, 644 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,
640 250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137, 645 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,
641 44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 646 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
642 16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139, 647 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,
643 137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246, 648 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,
644 129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129, 649 141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,
645 124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244, 650 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,
646 35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139, 651 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,
647 64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 652 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
648 16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 653 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
649 233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 654 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
650 239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255, 655 139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,
651 15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4, 656 244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,
652 239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108, 657 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,
653 202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193, 658 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
654 232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252, 659 253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,
655 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124, 660 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,
656 253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235, 661 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,
657 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15, 662 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,
658 182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15, 663 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
659 133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, 664 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,
660 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 665 252,246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,
661 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 666 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
662 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137, 667 233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,
663 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131, 668 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,
664 189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132, 669 116,36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,
665 244,37,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1, 670 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
666 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, 671 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,
667 248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36, 672 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,
668 4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1, 673 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
669 32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235, 674 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
670 139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182, 675 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
671 192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15, 676 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
672 131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252, 677 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
673 246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137, 678 36,16,255,252,242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255,
674 8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131, 679 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
675 189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38, 680 139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,
676 15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171, 681 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,
677 233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,255,252, 682 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,
678 242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255,248,1,141,12, 683 15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,
679 202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20, 684 36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,
680 131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193, 685 233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,
681 231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199, 686 137,171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,
682 8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232, 687 4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139,
683 131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137, 688 14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,
684 149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,233,15,182, 689 215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114,
685 78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233, 690 252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,
686 137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44, 691 131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,
687 202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182, 692 8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,
688 252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139, 693 189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,
689 105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114,252,252, 694 131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,
690 252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232, 695 252,253,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
691 1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193, 696 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,
692 8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1, 697 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,
693 15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 698 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,
694 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253, 699 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,
695 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244, 700 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,
696 4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,137,215, 701 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,
697 139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,141,76, 702 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,
698 202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252, 703 36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,
699 244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252, 704 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,
700 252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181, 705 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,
701 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,15,182, 706 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,
702 252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,36,16, 707 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
703 141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,252, 708 5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,
704 233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252, 709 237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,
705 131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244, 710 248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,
706 1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16, 711 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,
707 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199, 712 41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,
708 68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,237, 713 141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,
709 3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248, 714 36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,
710 6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215, 715 244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,
711 15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41, 716 199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,
712 215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141, 717 57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,
713 233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36, 718 252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,252,
714 20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244, 719 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,
715 249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199, 720 15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,
716 8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197, 721 131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,
717 15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248, 722 174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,
718 255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,252,247,209, 723 245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,
719 141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182, 724 12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,
720 232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,131, 725 53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,
721 199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,
722 233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,
723 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,12,
724 202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,
725 255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,
726 242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136, 726 242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,
727 244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255, 727 244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,
728 221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247, 728 221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,
@@ -1119,429 +1119,432 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1119 dasm_put(Dst, 200, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); 1119 dasm_put(Dst, 200, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1);
1120 dasm_put(Dst, 288, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); 1120 dasm_put(Dst, 288, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top));
1121 dasm_put(Dst, 354, Dt1(->base), Dt1(->top), Dt7(->pc), 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, 354, Dt1(->base), Dt1(->top), Dt7(->pc), 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);
1122 dasm_put(Dst, 501, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 1122 dasm_put(Dst, 497, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
1123 dasm_put(Dst, 592, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k)); 1123 dasm_put(Dst, 588, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k));
1124 dasm_put(Dst, 764, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1124 dasm_put(Dst, 760, LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1125 if (sse) { 1125 if (sse) {
1126 dasm_put(Dst, 860); 1126 dasm_put(Dst, 856);
1127 } else { 1127 } else {
1128 dasm_put(Dst, 873); 1128 dasm_put(Dst, 869);
1129 } 1129 }
1130 dasm_put(Dst, 886, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); 1130 dasm_put(Dst, 882, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET);
1131 dasm_put(Dst, 1038, DISPATCH_GL(tmptv), LJ_TTAB); 1131 dasm_put(Dst, 1034, DISPATCH_GL(tmptv), LJ_TTAB);
1132 if (sse) { 1132 if (sse) {
1133 dasm_put(Dst, 860); 1133 dasm_put(Dst, 856);
1134 } else { 1134 } else {
1135 dasm_put(Dst, 873); 1135 dasm_put(Dst, 869);
1136 } 1136 }
1137 dasm_put(Dst, 1061, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); 1137 dasm_put(Dst, 1057, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base));
1138 dasm_put(Dst, 1255, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1138 dasm_put(Dst, 1251, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1139 dasm_put(Dst, 1362, Dt1(->base), Dt1(->base), FRAME_CONT); 1139 dasm_put(Dst, 1358, Dt1(->base), Dt1(->base), FRAME_CONT);
1140 dasm_put(Dst, 1486, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1140 dasm_put(Dst, 1482, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1141 dasm_put(Dst, 1667, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1141 dasm_put(Dst, 1663, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX);
1142 if (cmov) { 1142 if (cmov) {
1143 dasm_put(Dst, 1769); 1143 dasm_put(Dst, 1765);
1144 } else { 1144 } else {
1145 dasm_put(Dst, 1773); 1145 dasm_put(Dst, 1769);
1146 } 1146 }
1147 dasm_put(Dst, 1782, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB); 1147 dasm_put(Dst, 1778, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB);
1148 dasm_put(Dst, 1865, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1148 dasm_put(Dst, 1861, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1149 dasm_put(Dst, 1923, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1); 1149 dasm_put(Dst, 1919, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1);
1150 dasm_put(Dst, 1986, LJ_TTAB, 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, 1982, LJ_TTAB, 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));
1151 dasm_put(Dst, 2058, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1151 dasm_put(Dst, 2054, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1152 if (sse) { 1152 if (sse) {
1153 dasm_put(Dst, 2151); 1153 dasm_put(Dst, 2147);
1154 } else { 1154 } else {
1155 dasm_put(Dst, 2161); 1155 dasm_put(Dst, 2157);
1156 } 1156 }
1157 dasm_put(Dst, 2168, 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, 2164, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1158 dasm_put(Dst, 2234, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1158 dasm_put(Dst, 2230, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1159 dasm_put(Dst, 2301, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1159 dasm_put(Dst, 2297, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1160 dasm_put(Dst, 2406, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1160 dasm_put(Dst, 2402, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1161 if (sse) { 1161 if (sse) {
1162 dasm_put(Dst, 2478); 1162 dasm_put(Dst, 2474);
1163 } else { 1163 } else {
1164 dasm_put(Dst, 2517); 1164 dasm_put(Dst, 2513);
1165 } 1165 }
1166 dasm_put(Dst, 2535, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1166 dasm_put(Dst, 2531, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1167 dasm_put(Dst, 2616, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1167 dasm_put(Dst, 2612, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1168 if (sse) { 1168 if (sse) {
1169 dasm_put(Dst, 2654); 1169 dasm_put(Dst, 2650);
1170 } else { 1170 } else {
1171 dasm_put(Dst, 2664); 1171 dasm_put(Dst, 2660);
1172 } 1172 }
1173 dasm_put(Dst, 2671, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1173 dasm_put(Dst, 2667, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1174 dasm_put(Dst, 2735, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1174 dasm_put(Dst, 2731, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1175 dasm_put(Dst, 2823, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1175 dasm_put(Dst, 2819, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1176 dasm_put(Dst, 2924, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1176 dasm_put(Dst, 2920, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1177 dasm_put(Dst, 3038, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1177 dasm_put(Dst, 3034, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1178 dasm_put(Dst, 3133, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1178 dasm_put(Dst, 3129, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1179 dasm_put(Dst, 3199, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1179 dasm_put(Dst, 3195, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1180 dasm_put(Dst, 3300, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1180 dasm_put(Dst, 3296, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1181 dasm_put(Dst, 3410, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1181 dasm_put(Dst, 3406, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1182 if (sse) { 1182 if (sse) {
1183 dasm_put(Dst, 3436, 1+1, LJ_TISNUM); 1183 dasm_put(Dst, 3432, 1+1, LJ_TISNUM);
1184 } else { 1184 } else {
1185 dasm_put(Dst, 3505, 1+1, LJ_TISNUM); 1185 dasm_put(Dst, 3501, 1+1, LJ_TISNUM);
1186 } 1186 }
1187 dasm_put(Dst, 3541, 1+1, FRAME_TYPE, LJ_TNIL); 1187 dasm_put(Dst, 3537, 1+1, FRAME_TYPE, LJ_TNIL);
1188 if (sse) { 1188 if (sse) {
1189 dasm_put(Dst, 3631, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1189 dasm_put(Dst, 3627, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1190 dasm_put(Dst, 3693, 1+1, LJ_TISNUM); 1190 dasm_put(Dst, 3689, 1+1, LJ_TISNUM);
1191 } else { 1191 } else {
1192 dasm_put(Dst, 3723, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1192 dasm_put(Dst, 3719, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1193 dasm_put(Dst, 3782, 1+1, LJ_TISNUM); 1193 dasm_put(Dst, 3778, 1+1, LJ_TISNUM);
1194 } 1194 }
1195 dasm_put(Dst, 3809, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1195 dasm_put(Dst, 3805, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1196 dasm_put(Dst, 3878, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1196 dasm_put(Dst, 3874, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1197 dasm_put(Dst, 3935, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1197 dasm_put(Dst, 3931, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1198 dasm_put(Dst, 3998, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1198 dasm_put(Dst, 3994, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1199 dasm_put(Dst, 4088); 1199 dasm_put(Dst, 4084);
1200 if (sse) { 1200 if (sse) {
1201 dasm_put(Dst, 4100, 1+1, LJ_TISNUM); 1201 dasm_put(Dst, 4096, 1+1, LJ_TISNUM);
1202 } else { 1202 } else {
1203 dasm_put(Dst, 4131, 1+1, LJ_TISNUM); 1203 dasm_put(Dst, 4127, 1+1, LJ_TISNUM);
1204 } 1204 }
1205 dasm_put(Dst, 4156); 1205 dasm_put(Dst, 4152);
1206 if (sse) { 1206 if (sse) {
1207 dasm_put(Dst, 4170, 1+1, LJ_TISNUM); 1207 dasm_put(Dst, 4166, 1+1, LJ_TISNUM);
1208 } else { 1208 } else {
1209 dasm_put(Dst, 4201, 1+1, LJ_TISNUM); 1209 dasm_put(Dst, 4197, 1+1, LJ_TISNUM);
1210 } 1210 }
1211 dasm_put(Dst, 4226); 1211 dasm_put(Dst, 4222);
1212 if (sse) { 1212 if (sse) {
1213 dasm_put(Dst, 4240, 1+1, LJ_TISNUM); 1213 dasm_put(Dst, 4236, 1+1, LJ_TISNUM);
1214 } else { 1214 } else {
1215 dasm_put(Dst, 4271, 1+1, LJ_TISNUM); 1215 dasm_put(Dst, 4267, 1+1, LJ_TISNUM);
1216 } 1216 }
1217 dasm_put(Dst, 4296); 1217 dasm_put(Dst, 4292);
1218 if (sse) { 1218 if (sse) {
1219 dasm_put(Dst, 4312, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1219 dasm_put(Dst, 4308, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1220 } else { 1220 } else {
1221 dasm_put(Dst, 4351, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1221 dasm_put(Dst, 4347, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1222 } 1222 }
1223 dasm_put(Dst, 4384, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1223 dasm_put(Dst, 4380, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1224 dasm_put(Dst, 4449, 1+1, LJ_TISNUM); 1224 dasm_put(Dst, 4445, 1+1, LJ_TISNUM);
1225 if (sse) { 1225 if (sse) {
1226 dasm_put(Dst, 4548); 1226 dasm_put(Dst, 4544);
1227 } else { 1227 } else {
1228 dasm_put(Dst, 4554); 1228 dasm_put(Dst, 4550);
1229 } 1229 }
1230 dasm_put(Dst, 4563); 1230 dasm_put(Dst, 4559);
1231 if (sse) { 1231 if (sse) {
1232 dasm_put(Dst, 4588); 1232 dasm_put(Dst, 4584);
1233 } else { 1233 } else {
1234 dasm_put(Dst, 4594); 1234 dasm_put(Dst, 4590);
1235 } 1235 }
1236 dasm_put(Dst, 4597, 1+2); 1236 dasm_put(Dst, 4593, 1+2);
1237 if (sse) { 1237 if (sse) {
1238 dasm_put(Dst, 4606); 1238 dasm_put(Dst, 4602);
1239 } else { 1239 } else {
1240 dasm_put(Dst, 4614); 1240 dasm_put(Dst, 4610);
1241 } 1241 }
1242 dasm_put(Dst, 4622); 1242 dasm_put(Dst, 4618);
1243 if (sse) { 1243 if (sse) {
1244 dasm_put(Dst, 4625); 1244 dasm_put(Dst, 4621);
1245 } else { 1245 } else {
1246 dasm_put(Dst, 4657); 1246 dasm_put(Dst, 4653);
1247 } 1247 }
1248 dasm_put(Dst, 4676); 1248 dasm_put(Dst, 4672);
1249 if (sse) { 1249 if (sse) {
1250 dasm_put(Dst, 4692, 1+1, LJ_TISNUM); 1250 dasm_put(Dst, 4688, 1+1, LJ_TISNUM);
1251 } else { 1251 } else {
1252 dasm_put(Dst, 4717, 1+1, LJ_TISNUM); 1252 dasm_put(Dst, 4713, 1+1, LJ_TISNUM);
1253 } 1253 }
1254 dasm_put(Dst, 4739); 1254 dasm_put(Dst, 4735);
1255 if (sse) { 1255 if (sse) {
1256 dasm_put(Dst, 4761); 1256 dasm_put(Dst, 4757);
1257 } else { 1257 } else {
1258 dasm_put(Dst, 4787); 1258 dasm_put(Dst, 4783);
1259 } 1259 }
1260 dasm_put(Dst, 4804, 1+2); 1260 dasm_put(Dst, 4800, 1+2);
1261 if (sse) { 1261 if (sse) {
1262 dasm_put(Dst, 4844); 1262 dasm_put(Dst, 4840);
1263 } else { 1263 } else {
1264 dasm_put(Dst, 4852); 1264 dasm_put(Dst, 4848);
1265 } 1265 }
1266 dasm_put(Dst, 4862, 2+1, LJ_TISNUM, LJ_TISNUM); 1266 dasm_put(Dst, 4858, 2+1, LJ_TISNUM, LJ_TISNUM);
1267 if (sse) { 1267 if (sse) {
1268 dasm_put(Dst, 4914, 2+1, LJ_TISNUM, LJ_TISNUM); 1268 dasm_put(Dst, 4910, 2+1, LJ_TISNUM, LJ_TISNUM);
1269 } else { 1269 } else {
1270 dasm_put(Dst, 4961, 2+1, LJ_TISNUM, LJ_TISNUM); 1270 dasm_put(Dst, 4957, 2+1, LJ_TISNUM, LJ_TISNUM);
1271 } 1271 }
1272 if (sse) { 1272 if (sse) {
1273 dasm_put(Dst, 5002, 1+1, LJ_TISNUM, LJ_TISNUM); 1273 dasm_put(Dst, 4998, 1+1, LJ_TISNUM, LJ_TISNUM);
1274 } else { 1274 } else {
1275 dasm_put(Dst, 5073, 1+1, LJ_TISNUM, LJ_TISNUM); 1275 dasm_put(Dst, 5069, 1+1, LJ_TISNUM, LJ_TISNUM);
1276 if (cmov) { 1276 if (cmov) {
1277 dasm_put(Dst, 5126); 1277 dasm_put(Dst, 5122);
1278 } else { 1278 } else {
1279 dasm_put(Dst, 5134); 1279 dasm_put(Dst, 5130);
1280 } 1280 }
1281 dasm_put(Dst, 5065); 1281 dasm_put(Dst, 5061);
1282 } 1282 }
1283 if (sse) { 1283 if (sse) {
1284 dasm_put(Dst, 5155, 1+1, LJ_TISNUM, LJ_TISNUM); 1284 dasm_put(Dst, 5151, 1+1, LJ_TISNUM, LJ_TISNUM);
1285 } else { 1285 } else {
1286 dasm_put(Dst, 5226, 1+1, LJ_TISNUM, LJ_TISNUM); 1286 dasm_put(Dst, 5222, 1+1, LJ_TISNUM, LJ_TISNUM);
1287 if (cmov) { 1287 if (cmov) {
1288 dasm_put(Dst, 5279); 1288 dasm_put(Dst, 5275);
1289 } else { 1289 } else {
1290 dasm_put(Dst, 5287); 1290 dasm_put(Dst, 5283);
1291 } 1291 }
1292 dasm_put(Dst, 5065); 1292 dasm_put(Dst, 5061);
1293 } 1293 }
1294 if (!sse) { 1294 if (!sse) {
1295 dasm_put(Dst, 5308); 1295 dasm_put(Dst, 5304);
1296 } 1296 }
1297 dasm_put(Dst, 5317, 1+1, LJ_TSTR); 1297 dasm_put(Dst, 5313, 1+1, LJ_TSTR);
1298 if (sse) { 1298 if (sse) {
1299 dasm_put(Dst, 5339, Dt5(->len)); 1299 dasm_put(Dst, 5335, Dt5(->len));
1300 } else { 1300 } else {
1301 dasm_put(Dst, 5350, Dt5(->len)); 1301 dasm_put(Dst, 5346, Dt5(->len));
1302 } 1302 }
1303 dasm_put(Dst, 5358, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1303 dasm_put(Dst, 5354, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1304 if (sse) { 1304 if (sse) {
1305 dasm_put(Dst, 5396); 1305 dasm_put(Dst, 5392);
1306 } else { 1306 } else {
1307 dasm_put(Dst, 5406); 1307 dasm_put(Dst, 5402);
1308 } 1308 }
1309 dasm_put(Dst, 5419, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1309 dasm_put(Dst, 5415, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1310 if (sse) { 1310 if (sse) {
1311 dasm_put(Dst, 5454); 1311 dasm_put(Dst, 5450);
1312 } else { 1312 } else {
1313 dasm_put(Dst, 5476); 1313 dasm_put(Dst, 5472);
1314 } 1314 }
1315 dasm_put(Dst, 5496, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1315 dasm_put(Dst, 5492, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1316 dasm_put(Dst, 2146); 1316 dasm_put(Dst, 2142);
1317 if (sse) { 1317 if (sse) {
1318 dasm_put(Dst, 5599); 1318 dasm_put(Dst, 5595);
1319 } else { 1319 } else {
1320 dasm_put(Dst, 5610); 1320 dasm_put(Dst, 5606);
1321 } 1321 }
1322 dasm_put(Dst, 5618, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1322 dasm_put(Dst, 5614, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1323 if (sse) { 1323 if (sse) {
1324 dasm_put(Dst, 5648); 1324 dasm_put(Dst, 5644);
1325 } else { 1325 } else {
1326 dasm_put(Dst, 5655); 1326 dasm_put(Dst, 5651);
1327 } 1327 }
1328 dasm_put(Dst, 5667, sizeof(GCstr)-1); 1328 dasm_put(Dst, 5663, sizeof(GCstr)-1);
1329 dasm_put(Dst, 5742, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1329 dasm_put(Dst, 5738, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1330 dasm_put(Dst, 5801, LJ_TSTR, LJ_TISNUM); 1330 dasm_put(Dst, 5797, LJ_TSTR, LJ_TISNUM);
1331 if (sse) { 1331 if (sse) {
1332 dasm_put(Dst, 5822); 1332 dasm_put(Dst, 5818);
1333 } else { 1333 } else {
1334 dasm_put(Dst, 5829); 1334 dasm_put(Dst, 5825);
1335 } 1335 }
1336 dasm_put(Dst, 5841, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1336 dasm_put(Dst, 5837, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1337 dasm_put(Dst, 5906, 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, 5902, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1338 dasm_put(Dst, 5969, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1338 dasm_put(Dst, 5965, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1339 dasm_put(Dst, 6040, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1339 dasm_put(Dst, 6036, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1340 dasm_put(Dst, 6125, 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, 6121, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1341 dasm_put(Dst, 6195, 1+1, LJ_TTAB); 1341 dasm_put(Dst, 6191, 1+1, LJ_TTAB);
1342 if (sse) { 1342 if (sse) {
1343 dasm_put(Dst, 6263); 1343 dasm_put(Dst, 6259);
1344 } else { 1344 } else {
1345 dasm_put(Dst, 6273); 1345 dasm_put(Dst, 6269);
1346 } 1346 }
1347 if (sse) { 1347 if (sse) {
1348 dasm_put(Dst, 6284, 1+1, LJ_TISNUM); 1348 dasm_put(Dst, 6280, 1+1, LJ_TISNUM);
1349 } else { 1349 } else {
1350 dasm_put(Dst, 6341, 1+1, LJ_TISNUM); 1350 dasm_put(Dst, 6337, 1+1, LJ_TISNUM);
1351 } 1351 }
1352 if (sse) { 1352 if (sse) {
1353 dasm_put(Dst, 6385, 1+1, LJ_TISNUM); 1353 dasm_put(Dst, 6381, 1+1, LJ_TISNUM);
1354 } else { 1354 } else {
1355 dasm_put(Dst, 6433, 1+1, LJ_TISNUM); 1355 dasm_put(Dst, 6429, 1+1, LJ_TISNUM);
1356 } 1356 }
1357 dasm_put(Dst, 6473, LJ_TISNUM); 1357 dasm_put(Dst, 6469, LJ_TISNUM);
1358 if (sse) { 1358 if (sse) {
1359 dasm_put(Dst, 6500); 1359 dasm_put(Dst, 6496);
1360 } else { 1360 } else {
1361 dasm_put(Dst, 6517); 1361 dasm_put(Dst, 6513);
1362 } 1362 }
1363 dasm_put(Dst, 6530); 1363 dasm_put(Dst, 6526);
1364 if (sse) { 1364 if (sse) {
1365 dasm_put(Dst, 6538, 1+1, LJ_TISNUM); 1365 dasm_put(Dst, 6534, 1+1, LJ_TISNUM);
1366 } else { 1366 } else {
1367 dasm_put(Dst, 6586, 1+1, LJ_TISNUM); 1367 dasm_put(Dst, 6582, 1+1, LJ_TISNUM);
1368 } 1368 }
1369 dasm_put(Dst, 6473, LJ_TISNUM); 1369 dasm_put(Dst, 6469, LJ_TISNUM);
1370 if (sse) { 1370 if (sse) {
1371 dasm_put(Dst, 6626); 1371 dasm_put(Dst, 6622);
1372 } else { 1372 } else {
1373 dasm_put(Dst, 6643); 1373 dasm_put(Dst, 6639);
1374 } 1374 }
1375 dasm_put(Dst, 6530); 1375 dasm_put(Dst, 6526);
1376 if (sse) { 1376 if (sse) {
1377 dasm_put(Dst, 6656, 1+1, LJ_TISNUM); 1377 dasm_put(Dst, 6652, 1+1, LJ_TISNUM);
1378 } else { 1378 } else {
1379 dasm_put(Dst, 6704, 1+1, LJ_TISNUM); 1379 dasm_put(Dst, 6700, 1+1, LJ_TISNUM);
1380 } 1380 }
1381 dasm_put(Dst, 6473, LJ_TISNUM); 1381 dasm_put(Dst, 6469, LJ_TISNUM);
1382 if (sse) { 1382 if (sse) {
1383 dasm_put(Dst, 6744); 1383 dasm_put(Dst, 6740);
1384 } else { 1384 } else {
1385 dasm_put(Dst, 6761); 1385 dasm_put(Dst, 6757);
1386 } 1386 }
1387 dasm_put(Dst, 6530); 1387 dasm_put(Dst, 6526);
1388 if (sse) { 1388 if (sse) {
1389 dasm_put(Dst, 6774, 1+1, LJ_TISNUM); 1389 dasm_put(Dst, 6770, 1+1, LJ_TISNUM);
1390 } else { 1390 } else {
1391 dasm_put(Dst, 6822, 1+1, LJ_TISNUM); 1391 dasm_put(Dst, 6818, 1+1, LJ_TISNUM);
1392 } 1392 }
1393 dasm_put(Dst, 6862); 1393 dasm_put(Dst, 6858);
1394 if (sse) { 1394 if (sse) {
1395 dasm_put(Dst, 6869, 1+1, LJ_TISNUM); 1395 dasm_put(Dst, 6865, 1+1, LJ_TISNUM);
1396 } else { 1396 } else {
1397 dasm_put(Dst, 6917, 1+1, LJ_TISNUM); 1397 dasm_put(Dst, 6913, 1+1, LJ_TISNUM);
1398 } 1398 }
1399 dasm_put(Dst, 6957); 1399 dasm_put(Dst, 6953);
1400 if (sse) { 1400 if (sse) {
1401 dasm_put(Dst, 6961); 1401 dasm_put(Dst, 6957);
1402 } else { 1402 } else {
1403 dasm_put(Dst, 6973); 1403 dasm_put(Dst, 6969);
1404 } 1404 }
1405 dasm_put(Dst, 6986); 1405 dasm_put(Dst, 6982);
1406 if (sse) { 1406 if (sse) {
1407 dasm_put(Dst, 6997, 2+1, LJ_TISNUM, LJ_TISNUM); 1407 dasm_put(Dst, 6993, 2+1, LJ_TISNUM, LJ_TISNUM);
1408 } else { 1408 } else {
1409 dasm_put(Dst, 7071, 2+1, LJ_TISNUM, LJ_TISNUM); 1409 dasm_put(Dst, 7067, 2+1, LJ_TISNUM, LJ_TISNUM);
1410 } 1410 }
1411 dasm_put(Dst, 7137); 1411 dasm_put(Dst, 7133);
1412 if (sse) { 1412 if (sse) {
1413 dasm_put(Dst, 7146, 2+1, LJ_TISNUM, LJ_TISNUM); 1413 dasm_put(Dst, 7142, 2+1, LJ_TISNUM, LJ_TISNUM);
1414 } else { 1414 } else {
1415 dasm_put(Dst, 7220, 2+1, LJ_TISNUM, LJ_TISNUM); 1415 dasm_put(Dst, 7216, 2+1, LJ_TISNUM, LJ_TISNUM);
1416 } 1416 }
1417 dasm_put(Dst, 7286); 1417 dasm_put(Dst, 7282);
1418 if (sse) { 1418 if (sse) {
1419 dasm_put(Dst, 7296, 2+1, LJ_TISNUM, LJ_TISNUM); 1419 dasm_put(Dst, 7292, 2+1, LJ_TISNUM, LJ_TISNUM);
1420 } else { 1420 } else {
1421 dasm_put(Dst, 7370, 2+1, LJ_TISNUM, LJ_TISNUM); 1421 dasm_put(Dst, 7366, 2+1, LJ_TISNUM, LJ_TISNUM);
1422 } 1422 }
1423 dasm_put(Dst, 7436); 1423 dasm_put(Dst, 7432);
1424 if (sse) { 1424 if (sse) {
1425 dasm_put(Dst, 7446, 2+1, LJ_TISNUM, LJ_TISNUM); 1425 dasm_put(Dst, 7442, 2+1, LJ_TISNUM, LJ_TISNUM);
1426 } else { 1426 } else {
1427 dasm_put(Dst, 7520, 2+1, LJ_TISNUM, LJ_TISNUM); 1427 dasm_put(Dst, 7516, 2+1, LJ_TISNUM, LJ_TISNUM);
1428 } 1428 }
1429 dasm_put(Dst, 7586); 1429 dasm_put(Dst, 7582);
1430 if (sse) { 1430 if (sse) {
1431 dasm_put(Dst, 7595, 2+1, LJ_TISNUM, LJ_TISNUM); 1431 dasm_put(Dst, 7591, 2+1, LJ_TISNUM, LJ_TISNUM);
1432 } else { 1432 } else {
1433 dasm_put(Dst, 7669, 2+1, LJ_TISNUM, LJ_TISNUM); 1433 dasm_put(Dst, 7665, 2+1, LJ_TISNUM, LJ_TISNUM);
1434 } 1434 }
1435 dasm_put(Dst, 7735, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1435 dasm_put(Dst, 7731, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1436 dasm_put(Dst, 7813, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1436 dasm_put(Dst, 7809, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1437 dasm_put(Dst, 7936, Dt1(->top), Dt1(->base), Dt1(->top)); 1437 dasm_put(Dst, 7932, Dt1(->top), Dt1(->base), Dt1(->top));
1438#if LJ_HASJIT 1438#if LJ_HASJIT
1439 dasm_put(Dst, 7974, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1439 dasm_put(Dst, 7970, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1440#endif 1440#endif
1441 dasm_put(Dst, 8005, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1441 dasm_put(Dst, 8001, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1442 dasm_put(Dst, 8056, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1442 dasm_put(Dst, 8052, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1443#if LJ_HASJIT 1443#if LJ_HASJIT
1444 dasm_put(Dst, 8122, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1444 dasm_put(Dst, 8118, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1445#endif 1445#endif
1446 dasm_put(Dst, 8168); 1446 dasm_put(Dst, 8164);
1447#if LJ_HASJIT 1447#if LJ_HASJIT
1448 dasm_put(Dst, 8000); 1448 dasm_put(Dst, 7996);
1449#endif 1449#endif
1450 dasm_put(Dst, 8175); 1450 dasm_put(Dst, 8171);
1451#if LJ_HASJIT 1451#if LJ_HASJIT
1452 dasm_put(Dst, 8178); 1452 dasm_put(Dst, 8174);
1453#endif 1453#endif
1454 dasm_put(Dst, 8188, Dt1(->base), Dt1(->top)); 1454 dasm_put(Dst, 8184, Dt1(->base), Dt1(->top));
1455#if LJ_HASJIT 1455#if LJ_HASJIT
1456 dasm_put(Dst, 8222); 1456 dasm_put(Dst, 8218);
1457#endif 1457#endif
1458 dasm_put(Dst, 8227, Dt1(->base), Dt1(->top)); 1458 dasm_put(Dst, 8223, Dt1(->base), Dt1(->top));
1459#if LJ_HASJIT 1459#if LJ_HASJIT
1460 dasm_put(Dst, 8256, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1460 dasm_put(Dst, 8252, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1461#endif 1461#endif
1462 dasm_put(Dst, 8399); 1462 dasm_put(Dst, 8395);
1463#if LJ_HASJIT 1463#if LJ_HASJIT
1464 dasm_put(Dst, 8402, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1464 dasm_put(Dst, 8398, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1465#endif 1465#endif
1466 dasm_put(Dst, 8480); 1466 dasm_put(Dst, 8476);
1467 if (!sse) { 1467 if (!sse) {
1468 dasm_put(Dst, 8483); 1468 dasm_put(Dst, 8479);
1469 } 1469 }
1470 dasm_put(Dst, 8528); 1470 dasm_put(Dst, 8524);
1471 if (!sse) { 1471 if (!sse) {
1472 dasm_put(Dst, 8630); 1472 dasm_put(Dst, 8626);
1473 } 1473 }
1474 dasm_put(Dst, 8675); 1474 dasm_put(Dst, 8671);
1475 if (!sse) { 1475 if (!sse) {
1476 dasm_put(Dst, 8777); 1476 dasm_put(Dst, 8773);
1477 } 1477 }
1478 dasm_put(Dst, 8816); 1478 dasm_put(Dst, 8812);
1479 if (sse) { 1479 if (sse) {
1480 dasm_put(Dst, 8921); 1480 dasm_put(Dst, 8917);
1481 } else { 1481 } else {
1482 dasm_put(Dst, 9051); 1482 dasm_put(Dst, 9047);
1483 } 1483 }
1484 dasm_put(Dst, 9098); 1484 dasm_put(Dst, 9094);
1485 if (!sse) { 1485 if (!sse) {
1486 dasm_put(Dst, 9172); 1486 dasm_put(Dst, 9168);
1487 if (cmov) { 1487 if (cmov) {
1488 dasm_put(Dst, 9183); 1488 dasm_put(Dst, 9179);
1489 } else { 1489 } else {
1490 dasm_put(Dst, 9187); 1490 dasm_put(Dst, 9183);
1491 } 1491 }
1492 dasm_put(Dst, 9194); 1492 dasm_put(Dst, 9190);
1493 dasm_put(Dst, 9268); 1493 dasm_put(Dst, 9264);
1494 dasm_put(Dst, 9368); 1494 dasm_put(Dst, 9364);
1495 if (cmov) { 1495 if (cmov) {
1496 dasm_put(Dst, 9371); 1496 dasm_put(Dst, 9367);
1497 } else { 1497 } else {
1498 dasm_put(Dst, 9375); 1498 dasm_put(Dst, 9371);
1499 } 1499 }
1500 dasm_put(Dst, 9382); 1500 dasm_put(Dst, 9378);
1501 if (cmov) { 1501 if (cmov) {
1502 dasm_put(Dst, 9183); 1502 dasm_put(Dst, 9179);
1503 } else { 1503 } else {
1504 dasm_put(Dst, 9187); 1504 dasm_put(Dst, 9183);
1505 } 1505 }
1506 dasm_put(Dst, 9400); 1506 dasm_put(Dst, 9396);
1507 } else { 1507 } else {
1508 dasm_put(Dst, 9479); 1508 dasm_put(Dst, 9475);
1509 } 1509 }
1510 dasm_put(Dst, 9482); 1510 dasm_put(Dst, 9478);
1511 dasm_put(Dst, 9567); 1511 dasm_put(Dst, 9563);
1512 dasm_put(Dst, 9698); 1512 dasm_put(Dst, 9694);
1513 dasm_put(Dst, 9897); 1513 dasm_put(Dst, 9893);
1514#if LJ_HASJIT
1514 if (sse) { 1515 if (sse) {
1515 dasm_put(Dst, 9920); 1516 dasm_put(Dst, 9916);
1516 dasm_put(Dst, 9977); 1517 dasm_put(Dst, 9973);
1517 dasm_put(Dst, 10068); 1518 dasm_put(Dst, 10064);
1518 } else { 1519 } else {
1519 dasm_put(Dst, 10110); 1520 dasm_put(Dst, 10106);
1520 dasm_put(Dst, 10202); 1521 dasm_put(Dst, 10198);
1521 } 1522 }
1523 dasm_put(Dst, 10244);
1524#endif
1522 dasm_put(Dst, 10248); 1525 dasm_put(Dst, 10248);
1523 if (sse) { 1526 if (sse) {
1524 dasm_put(Dst, 10254); 1527 dasm_put(Dst, 10251);
1525 dasm_put(Dst, 10359); 1528 dasm_put(Dst, 10356);
1526 dasm_put(Dst, 10442); 1529 dasm_put(Dst, 10439);
1527 } else { 1530 } else {
1528 dasm_put(Dst, 10514); 1531 dasm_put(Dst, 10511);
1529 dasm_put(Dst, 10597); 1532 dasm_put(Dst, 10594);
1530 if (cmov) { 1533 if (cmov) {
1531 dasm_put(Dst, 10652); 1534 dasm_put(Dst, 10649);
1532 } else { 1535 } else {
1533 dasm_put(Dst, 10671); 1536 dasm_put(Dst, 10668);
1534 } 1537 }
1535 dasm_put(Dst, 10510); 1538 dasm_put(Dst, 10244);
1536 } 1539 }
1537 dasm_put(Dst, 10712); 1540 dasm_put(Dst, 10709);
1538} 1541}
1539 1542
1540/* Generate the code for a single instruction. */ 1543/* Generate the code for a single instruction. */
1541static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1544static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1542{ 1545{
1543 int vk = 0; 1546 int vk = 0;
1544 dasm_put(Dst, 10766, defop); 1547 dasm_put(Dst, 10763, defop);
1545 1548
1546 switch (op) { 1549 switch (op) {
1547 1550
@@ -1550,613 +1553,613 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1550 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1553 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1551 1554
1552 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1555 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1553 dasm_put(Dst, 10768, LJ_TISNUM, LJ_TISNUM); 1556 dasm_put(Dst, 10765, LJ_TISNUM, LJ_TISNUM);
1554 if (sse) { 1557 if (sse) {
1555 dasm_put(Dst, 10789); 1558 dasm_put(Dst, 10786);
1556 } else { 1559 } else {
1557 dasm_put(Dst, 10804); 1560 dasm_put(Dst, 10801);
1558 if (cmov) { 1561 if (cmov) {
1559 dasm_put(Dst, 10814); 1562 dasm_put(Dst, 10811);
1560 } else { 1563 } else {
1561 dasm_put(Dst, 10820); 1564 dasm_put(Dst, 10817);
1562 } 1565 }
1563 } 1566 }
1564 switch (op) { 1567 switch (op) {
1565 case BC_ISLT: 1568 case BC_ISLT:
1566 dasm_put(Dst, 10827); 1569 dasm_put(Dst, 10824);
1567 break; 1570 break;
1568 case BC_ISGE: 1571 case BC_ISGE:
1569 dasm_put(Dst, 10063); 1572 dasm_put(Dst, 10059);
1570 break; 1573 break;
1571 case BC_ISLE: 1574 case BC_ISLE:
1572 dasm_put(Dst, 6190); 1575 dasm_put(Dst, 6186);
1573 break; 1576 break;
1574 case BC_ISGT: 1577 case BC_ISGT:
1575 dasm_put(Dst, 10832); 1578 dasm_put(Dst, 10829);
1576 break; 1579 break;
1577 default: break; /* Shut up GCC. */ 1580 default: break; /* Shut up GCC. */
1578 } 1581 }
1579 dasm_put(Dst, 10837, -BCBIAS_J*4); 1582 dasm_put(Dst, 10834, -BCBIAS_J*4);
1580 break; 1583 break;
1581 1584
1582 case BC_ISEQV: case BC_ISNEV: 1585 case BC_ISEQV: case BC_ISNEV:
1583 vk = op == BC_ISEQV; 1586 vk = op == BC_ISEQV;
1584 dasm_put(Dst, 10870, LJ_TISNUM, LJ_TISNUM); 1587 dasm_put(Dst, 10867, LJ_TISNUM, LJ_TISNUM);
1585 if (sse) { 1588 if (sse) {
1586 dasm_put(Dst, 10896); 1589 dasm_put(Dst, 10893);
1587 } else { 1590 } else {
1588 dasm_put(Dst, 10908); 1591 dasm_put(Dst, 10905);
1589 if (cmov) { 1592 if (cmov) {
1590 dasm_put(Dst, 10814); 1593 dasm_put(Dst, 10811);
1591 } else { 1594 } else {
1592 dasm_put(Dst, 10820); 1595 dasm_put(Dst, 10817);
1593 } 1596 }
1594 } 1597 }
1595 iseqne_fp: 1598 iseqne_fp:
1596 if (vk) { 1599 if (vk) {
1597 dasm_put(Dst, 10915); 1600 dasm_put(Dst, 10912);
1598 } else { 1601 } else {
1599 dasm_put(Dst, 10924); 1602 dasm_put(Dst, 10921);
1600 } 1603 }
1601 iseqne_end: 1604 iseqne_end:
1602 if (vk) { 1605 if (vk) {
1603 dasm_put(Dst, 10933, -BCBIAS_J*4); 1606 dasm_put(Dst, 10930, -BCBIAS_J*4);
1604 } else { 1607 } else {
1605 dasm_put(Dst, 10948, -BCBIAS_J*4); 1608 dasm_put(Dst, 10945, -BCBIAS_J*4);
1606 } 1609 }
1607 dasm_put(Dst, 10851); 1610 dasm_put(Dst, 10848);
1608 if (op == BC_ISEQV || op == BC_ISNEV) { 1611 if (op == BC_ISEQV || op == BC_ISNEV) {
1609 dasm_put(Dst, 10963, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1612 dasm_put(Dst, 10960, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1610 if (vk) { 1613 if (vk) {
1611 dasm_put(Dst, 11021); 1614 dasm_put(Dst, 11018);
1612 } else { 1615 } else {
1613 dasm_put(Dst, 11025); 1616 dasm_put(Dst, 11022);
1614 } 1617 }
1615 dasm_put(Dst, 11031); 1618 dasm_put(Dst, 11028);
1616 } 1619 }
1617 break; 1620 break;
1618 case BC_ISEQS: case BC_ISNES: 1621 case BC_ISEQS: case BC_ISNES:
1619 vk = op == BC_ISEQS; 1622 vk = op == BC_ISEQS;
1620 dasm_put(Dst, 11036, LJ_TSTR); 1623 dasm_put(Dst, 11033, LJ_TSTR);
1621 iseqne_test: 1624 iseqne_test:
1622 if (vk) { 1625 if (vk) {
1623 dasm_put(Dst, 10919); 1626 dasm_put(Dst, 10916);
1624 } else { 1627 } else {
1625 dasm_put(Dst, 2818); 1628 dasm_put(Dst, 2814);
1626 } 1629 }
1627 goto iseqne_end; 1630 goto iseqne_end;
1628 case BC_ISEQN: case BC_ISNEN: 1631 case BC_ISEQN: case BC_ISNEN:
1629 vk = op == BC_ISEQN; 1632 vk = op == BC_ISEQN;
1630 dasm_put(Dst, 11059, LJ_TISNUM); 1633 dasm_put(Dst, 11056, LJ_TISNUM);
1631 if (sse) { 1634 if (sse) {
1632 dasm_put(Dst, 11073); 1635 dasm_put(Dst, 11070);
1633 } else { 1636 } else {
1634 dasm_put(Dst, 11085); 1637 dasm_put(Dst, 11082);
1635 if (cmov) { 1638 if (cmov) {
1636 dasm_put(Dst, 10814); 1639 dasm_put(Dst, 10811);
1637 } else { 1640 } else {
1638 dasm_put(Dst, 10820); 1641 dasm_put(Dst, 10817);
1639 } 1642 }
1640 } 1643 }
1641 goto iseqne_fp; 1644 goto iseqne_fp;
1642 case BC_ISEQP: case BC_ISNEP: 1645 case BC_ISEQP: case BC_ISNEP:
1643 vk = op == BC_ISEQP; 1646 vk = op == BC_ISEQP;
1644 dasm_put(Dst, 11092); 1647 dasm_put(Dst, 11089);
1645 goto iseqne_test; 1648 goto iseqne_test;
1646 1649
1647 /* -- Unary test and copy ops ------------------------------------------- */ 1650 /* -- Unary test and copy ops ------------------------------------------- */
1648 1651
1649 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1652 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1650 dasm_put(Dst, 11103, LJ_TISTRUECOND); 1653 dasm_put(Dst, 11100, LJ_TISTRUECOND);
1651 if (op == BC_IST || op == BC_ISTC) { 1654 if (op == BC_IST || op == BC_ISTC) {
1652 dasm_put(Dst, 11115); 1655 dasm_put(Dst, 11112);
1653 } else { 1656 } else {
1654 dasm_put(Dst, 11120); 1657 dasm_put(Dst, 11117);
1655 } 1658 }
1656 if (op == BC_ISTC || op == BC_ISFC) { 1659 if (op == BC_ISTC || op == BC_ISFC) {
1657 dasm_put(Dst, 11125); 1660 dasm_put(Dst, 11122);
1658 } 1661 }
1659 dasm_put(Dst, 11136, -BCBIAS_J*4); 1662 dasm_put(Dst, 11133, -BCBIAS_J*4);
1660 break; 1663 break;
1661 1664
1662 /* -- Unary ops --------------------------------------------------------- */ 1665 /* -- Unary ops --------------------------------------------------------- */
1663 1666
1664 case BC_MOV: 1667 case BC_MOV:
1665 dasm_put(Dst, 11167); 1668 dasm_put(Dst, 11164);
1666 break; 1669 break;
1667 case BC_NOT: 1670 case BC_NOT:
1668 dasm_put(Dst, 11200, LJ_TISTRUECOND, LJ_TTRUE); 1671 dasm_put(Dst, 11197, LJ_TISTRUECOND, LJ_TTRUE);
1669 break; 1672 break;
1670 case BC_UNM: 1673 case BC_UNM:
1671 dasm_put(Dst, 11235, LJ_TISNUM); 1674 dasm_put(Dst, 11232, LJ_TISNUM);
1672 if (sse) { 1675 if (sse) {
1673 dasm_put(Dst, 11246); 1676 dasm_put(Dst, 11243);
1674 } else { 1677 } else {
1675 dasm_put(Dst, 11276); 1678 dasm_put(Dst, 11273);
1676 } 1679 }
1677 dasm_put(Dst, 10851); 1680 dasm_put(Dst, 10848);
1678 break; 1681 break;
1679 case BC_LEN: 1682 case BC_LEN:
1680 dasm_put(Dst, 11285, LJ_TSTR); 1683 dasm_put(Dst, 11282, LJ_TSTR);
1681 if (sse) { 1684 if (sse) {
1682 dasm_put(Dst, 11299, Dt5(->len)); 1685 dasm_put(Dst, 11296, Dt5(->len));
1683 } else { 1686 } else {
1684 dasm_put(Dst, 11317, Dt5(->len)); 1687 dasm_put(Dst, 11314, Dt5(->len));
1685 } 1688 }
1686 dasm_put(Dst, 11326, LJ_TTAB); 1689 dasm_put(Dst, 11323, LJ_TTAB);
1687 if (sse) { 1690 if (sse) {
1688 dasm_put(Dst, 11366); 1691 dasm_put(Dst, 11363);
1689 } else { 1692 } else {
1690 dasm_put(Dst, 11375); 1693 dasm_put(Dst, 11372);
1691 } 1694 }
1692 dasm_put(Dst, 11385); 1695 dasm_put(Dst, 11382);
1693 break; 1696 break;
1694 1697
1695 /* -- Binary ops -------------------------------------------------------- */ 1698 /* -- Binary ops -------------------------------------------------------- */
1696 1699
1697 1700
1698 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1701 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1699 dasm_put(Dst, 11395); 1702 dasm_put(Dst, 11392);
1700 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1703 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1701 switch (vk) { 1704 switch (vk) {
1702 case 0: 1705 case 0:
1703 dasm_put(Dst, 11403, LJ_TISNUM); 1706 dasm_put(Dst, 11400, LJ_TISNUM);
1704 if (sse) { 1707 if (sse) {
1705 dasm_put(Dst, 11415); 1708 dasm_put(Dst, 11412);
1706 } else { 1709 } else {
1707 dasm_put(Dst, 11429); 1710 dasm_put(Dst, 11426);
1708 } 1711 }
1709 break; 1712 break;
1710 case 1: 1713 case 1:
1711 dasm_put(Dst, 11437, LJ_TISNUM); 1714 dasm_put(Dst, 11434, LJ_TISNUM);
1712 if (sse) { 1715 if (sse) {
1713 dasm_put(Dst, 11449); 1716 dasm_put(Dst, 11446);
1714 } else { 1717 } else {
1715 dasm_put(Dst, 11463); 1718 dasm_put(Dst, 11460);
1716 } 1719 }
1717 break; 1720 break;
1718 default: 1721 default:
1719 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1722 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1720 if (sse) { 1723 if (sse) {
1721 dasm_put(Dst, 11493); 1724 dasm_put(Dst, 11490);
1722 } else { 1725 } else {
1723 dasm_put(Dst, 11507); 1726 dasm_put(Dst, 11504);
1724 } 1727 }
1725 break; 1728 break;
1726 } 1729 }
1727 if (sse) { 1730 if (sse) {
1728 dasm_put(Dst, 11269); 1731 dasm_put(Dst, 11266);
1729 } else { 1732 } else {
1730 dasm_put(Dst, 11281); 1733 dasm_put(Dst, 11278);
1731 } 1734 }
1732 dasm_put(Dst, 10851); 1735 dasm_put(Dst, 10848);
1733 break; 1736 break;
1734 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1737 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1735 dasm_put(Dst, 11395); 1738 dasm_put(Dst, 11392);
1736 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1739 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1737 switch (vk) { 1740 switch (vk) {
1738 case 0: 1741 case 0:
1739 dasm_put(Dst, 11403, LJ_TISNUM); 1742 dasm_put(Dst, 11400, LJ_TISNUM);
1740 if (sse) { 1743 if (sse) {
1741 dasm_put(Dst, 11515); 1744 dasm_put(Dst, 11512);
1742 } else { 1745 } else {
1743 dasm_put(Dst, 11529); 1746 dasm_put(Dst, 11526);
1744 } 1747 }
1745 break; 1748 break;
1746 case 1: 1749 case 1:
1747 dasm_put(Dst, 11437, LJ_TISNUM); 1750 dasm_put(Dst, 11434, LJ_TISNUM);
1748 if (sse) { 1751 if (sse) {
1749 dasm_put(Dst, 11537); 1752 dasm_put(Dst, 11534);
1750 } else { 1753 } else {
1751 dasm_put(Dst, 11551); 1754 dasm_put(Dst, 11548);
1752 } 1755 }
1753 break; 1756 break;
1754 default: 1757 default:
1755 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1758 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1756 if (sse) { 1759 if (sse) {
1757 dasm_put(Dst, 11559); 1760 dasm_put(Dst, 11556);
1758 } else { 1761 } else {
1759 dasm_put(Dst, 11573); 1762 dasm_put(Dst, 11570);
1760 } 1763 }
1761 break; 1764 break;
1762 } 1765 }
1763 if (sse) { 1766 if (sse) {
1764 dasm_put(Dst, 11269); 1767 dasm_put(Dst, 11266);
1765 } else { 1768 } else {
1766 dasm_put(Dst, 11281); 1769 dasm_put(Dst, 11278);
1767 } 1770 }
1768 dasm_put(Dst, 10851); 1771 dasm_put(Dst, 10848);
1769 break; 1772 break;
1770 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1773 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1771 dasm_put(Dst, 11395); 1774 dasm_put(Dst, 11392);
1772 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1775 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1773 switch (vk) { 1776 switch (vk) {
1774 case 0: 1777 case 0:
1775 dasm_put(Dst, 11403, LJ_TISNUM); 1778 dasm_put(Dst, 11400, LJ_TISNUM);
1776 if (sse) { 1779 if (sse) {
1777 dasm_put(Dst, 11581); 1780 dasm_put(Dst, 11578);
1778 } else { 1781 } else {
1779 dasm_put(Dst, 11595); 1782 dasm_put(Dst, 11592);
1780 } 1783 }
1781 break; 1784 break;
1782 case 1: 1785 case 1:
1783 dasm_put(Dst, 11437, LJ_TISNUM); 1786 dasm_put(Dst, 11434, LJ_TISNUM);
1784 if (sse) { 1787 if (sse) {
1785 dasm_put(Dst, 11603); 1788 dasm_put(Dst, 11600);
1786 } else { 1789 } else {
1787 dasm_put(Dst, 11617); 1790 dasm_put(Dst, 11614);
1788 } 1791 }
1789 break; 1792 break;
1790 default: 1793 default:
1791 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1794 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1792 if (sse) { 1795 if (sse) {
1793 dasm_put(Dst, 11625); 1796 dasm_put(Dst, 11622);
1794 } else { 1797 } else {
1795 dasm_put(Dst, 11639); 1798 dasm_put(Dst, 11636);
1796 } 1799 }
1797 break; 1800 break;
1798 } 1801 }
1799 if (sse) { 1802 if (sse) {
1800 dasm_put(Dst, 11269); 1803 dasm_put(Dst, 11266);
1801 } else { 1804 } else {
1802 dasm_put(Dst, 11281); 1805 dasm_put(Dst, 11278);
1803 } 1806 }
1804 dasm_put(Dst, 10851); 1807 dasm_put(Dst, 10848);
1805 break; 1808 break;
1806 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1809 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1807 dasm_put(Dst, 11395); 1810 dasm_put(Dst, 11392);
1808 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1811 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1809 switch (vk) { 1812 switch (vk) {
1810 case 0: 1813 case 0:
1811 dasm_put(Dst, 11403, LJ_TISNUM); 1814 dasm_put(Dst, 11400, LJ_TISNUM);
1812 if (sse) { 1815 if (sse) {
1813 dasm_put(Dst, 11647); 1816 dasm_put(Dst, 11644);
1814 } else { 1817 } else {
1815 dasm_put(Dst, 11661); 1818 dasm_put(Dst, 11658);
1816 } 1819 }
1817 break; 1820 break;
1818 case 1: 1821 case 1:
1819 dasm_put(Dst, 11437, LJ_TISNUM); 1822 dasm_put(Dst, 11434, LJ_TISNUM);
1820 if (sse) { 1823 if (sse) {
1821 dasm_put(Dst, 11669); 1824 dasm_put(Dst, 11666);
1822 } else { 1825 } else {
1823 dasm_put(Dst, 11683); 1826 dasm_put(Dst, 11680);
1824 } 1827 }
1825 break; 1828 break;
1826 default: 1829 default:
1827 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1830 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1828 if (sse) { 1831 if (sse) {
1829 dasm_put(Dst, 11691); 1832 dasm_put(Dst, 11688);
1830 } else { 1833 } else {
1831 dasm_put(Dst, 11705); 1834 dasm_put(Dst, 11702);
1832 } 1835 }
1833 break; 1836 break;
1834 } 1837 }
1835 if (sse) { 1838 if (sse) {
1836 dasm_put(Dst, 11269); 1839 dasm_put(Dst, 11266);
1837 } else { 1840 } else {
1838 dasm_put(Dst, 11281); 1841 dasm_put(Dst, 11278);
1839 } 1842 }
1840 dasm_put(Dst, 10851); 1843 dasm_put(Dst, 10848);
1841 break; 1844 break;
1842 case BC_MODVN: 1845 case BC_MODVN:
1843 dasm_put(Dst, 11395); 1846 dasm_put(Dst, 11392);
1844 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1847 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1845 switch (vk) { 1848 switch (vk) {
1846 case 0: 1849 case 0:
1847 dasm_put(Dst, 11403, LJ_TISNUM); 1850 dasm_put(Dst, 11400, LJ_TISNUM);
1848 if (sse) { 1851 if (sse) {
1849 dasm_put(Dst, 11713); 1852 dasm_put(Dst, 11710);
1850 } else { 1853 } else {
1851 dasm_put(Dst, 11727); 1854 dasm_put(Dst, 11724);
1852 } 1855 }
1853 break; 1856 break;
1854 case 1: 1857 case 1:
1855 dasm_put(Dst, 11437, LJ_TISNUM); 1858 dasm_put(Dst, 11434, LJ_TISNUM);
1856 if (sse) { 1859 if (sse) {
1857 dasm_put(Dst, 11735); 1860 dasm_put(Dst, 11732);
1858 } else { 1861 } else {
1859 dasm_put(Dst, 11749); 1862 dasm_put(Dst, 11746);
1860 } 1863 }
1861 break; 1864 break;
1862 default: 1865 default:
1863 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1866 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1864 if (sse) { 1867 if (sse) {
1865 dasm_put(Dst, 11757); 1868 dasm_put(Dst, 11754);
1866 } else { 1869 } else {
1867 dasm_put(Dst, 11771); 1870 dasm_put(Dst, 11768);
1868 } 1871 }
1869 break; 1872 break;
1870 } 1873 }
1871 dasm_put(Dst, 11779); 1874 dasm_put(Dst, 11776);
1872 if (sse) { 1875 if (sse) {
1873 dasm_put(Dst, 11269); 1876 dasm_put(Dst, 11266);
1874 } else { 1877 } else {
1875 dasm_put(Dst, 11281); 1878 dasm_put(Dst, 11278);
1876 } 1879 }
1877 dasm_put(Dst, 10851); 1880 dasm_put(Dst, 10848);
1878 break; 1881 break;
1879 case BC_MODNV: case BC_MODVV: 1882 case BC_MODNV: case BC_MODVV:
1880 dasm_put(Dst, 11395); 1883 dasm_put(Dst, 11392);
1881 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1884 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1882 switch (vk) { 1885 switch (vk) {
1883 case 0: 1886 case 0:
1884 dasm_put(Dst, 11403, LJ_TISNUM); 1887 dasm_put(Dst, 11400, LJ_TISNUM);
1885 if (sse) { 1888 if (sse) {
1886 dasm_put(Dst, 11713); 1889 dasm_put(Dst, 11710);
1887 } else { 1890 } else {
1888 dasm_put(Dst, 11727); 1891 dasm_put(Dst, 11724);
1889 } 1892 }
1890 break; 1893 break;
1891 case 1: 1894 case 1:
1892 dasm_put(Dst, 11437, LJ_TISNUM); 1895 dasm_put(Dst, 11434, LJ_TISNUM);
1893 if (sse) { 1896 if (sse) {
1894 dasm_put(Dst, 11735); 1897 dasm_put(Dst, 11732);
1895 } else { 1898 } else {
1896 dasm_put(Dst, 11749); 1899 dasm_put(Dst, 11746);
1897 } 1900 }
1898 break; 1901 break;
1899 default: 1902 default:
1900 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1903 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1901 if (sse) { 1904 if (sse) {
1902 dasm_put(Dst, 11757); 1905 dasm_put(Dst, 11754);
1903 } else { 1906 } else {
1904 dasm_put(Dst, 11771); 1907 dasm_put(Dst, 11768);
1905 } 1908 }
1906 break; 1909 break;
1907 } 1910 }
1908 dasm_put(Dst, 11785); 1911 dasm_put(Dst, 11782);
1909 break; 1912 break;
1910 case BC_POW: 1913 case BC_POW:
1911 dasm_put(Dst, 11395); 1914 dasm_put(Dst, 11392);
1912 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1915 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1913 switch (vk) { 1916 switch (vk) {
1914 case 0: 1917 case 0:
1915 dasm_put(Dst, 11403, LJ_TISNUM); 1918 dasm_put(Dst, 11400, LJ_TISNUM);
1916 if (sse) { 1919 if (sse) {
1917 dasm_put(Dst, 11713); 1920 dasm_put(Dst, 11710);
1918 } else { 1921 } else {
1919 dasm_put(Dst, 11727); 1922 dasm_put(Dst, 11724);
1920 } 1923 }
1921 break; 1924 break;
1922 case 1: 1925 case 1:
1923 dasm_put(Dst, 11437, LJ_TISNUM); 1926 dasm_put(Dst, 11434, LJ_TISNUM);
1924 if (sse) { 1927 if (sse) {
1925 dasm_put(Dst, 11735); 1928 dasm_put(Dst, 11732);
1926 } else { 1929 } else {
1927 dasm_put(Dst, 11749); 1930 dasm_put(Dst, 11746);
1928 } 1931 }
1929 break; 1932 break;
1930 default: 1933 default:
1931 dasm_put(Dst, 11471, LJ_TISNUM, LJ_TISNUM); 1934 dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
1932 if (sse) { 1935 if (sse) {
1933 dasm_put(Dst, 11757); 1936 dasm_put(Dst, 11754);
1934 } else { 1937 } else {
1935 dasm_put(Dst, 11771); 1938 dasm_put(Dst, 11768);
1936 } 1939 }
1937 break; 1940 break;
1938 } 1941 }
1939 dasm_put(Dst, 11790); 1942 dasm_put(Dst, 11787);
1940 if (sse) { 1943 if (sse) {
1941 dasm_put(Dst, 11269); 1944 dasm_put(Dst, 11266);
1942 } else { 1945 } else {
1943 dasm_put(Dst, 11281); 1946 dasm_put(Dst, 11278);
1944 } 1947 }
1945 dasm_put(Dst, 10851); 1948 dasm_put(Dst, 10848);
1946 break; 1949 break;
1947 1950
1948 case BC_CAT: 1951 case BC_CAT:
1949 dasm_put(Dst, 11794, Dt1(->base), Dt1(->base)); 1952 dasm_put(Dst, 11791, Dt1(->base), Dt1(->base));
1950 break; 1953 break;
1951 1954
1952 /* -- Constant ops ------------------------------------------------------ */ 1955 /* -- Constant ops ------------------------------------------------------ */
1953 1956
1954 case BC_KSTR: 1957 case BC_KSTR:
1955 dasm_put(Dst, 11888, LJ_TSTR); 1958 dasm_put(Dst, 11885, LJ_TSTR);
1956 break; 1959 break;
1957 case BC_KSHORT: 1960 case BC_KSHORT:
1958 if (sse) { 1961 if (sse) {
1959 dasm_put(Dst, 11921); 1962 dasm_put(Dst, 11918);
1960 } else { 1963 } else {
1961 dasm_put(Dst, 11936); 1964 dasm_put(Dst, 11933);
1962 } 1965 }
1963 dasm_put(Dst, 10851); 1966 dasm_put(Dst, 10848);
1964 break; 1967 break;
1965 case BC_KNUM: 1968 case BC_KNUM:
1966 if (sse) { 1969 if (sse) {
1967 dasm_put(Dst, 11944); 1970 dasm_put(Dst, 11941);
1968 } else { 1971 } else {
1969 dasm_put(Dst, 11957); 1972 dasm_put(Dst, 11954);
1970 } 1973 }
1971 dasm_put(Dst, 10851); 1974 dasm_put(Dst, 10848);
1972 break; 1975 break;
1973 case BC_KPRI: 1976 case BC_KPRI:
1974 dasm_put(Dst, 11964); 1977 dasm_put(Dst, 11961);
1975 break; 1978 break;
1976 case BC_KNIL: 1979 case BC_KNIL:
1977 dasm_put(Dst, 11990, LJ_TNIL); 1980 dasm_put(Dst, 11987, LJ_TNIL);
1978 break; 1981 break;
1979 1982
1980 /* -- Upvalue and function ops ------------------------------------------ */ 1983 /* -- Upvalue and function ops ------------------------------------------ */
1981 1984
1982 case BC_UGET: 1985 case BC_UGET:
1983 dasm_put(Dst, 12036, offsetof(GCfuncL, uvptr), DtA(->v)); 1986 dasm_put(Dst, 12033, offsetof(GCfuncL, uvptr), DtA(->v));
1984 break; 1987 break;
1985 case BC_USETV: 1988 case BC_USETV:
1986#define TV2MARKOFS \ 1989#define TV2MARKOFS \
1987 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1990 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1988 dasm_put(Dst, 12080, 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); 1991 dasm_put(Dst, 12077, 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);
1989 dasm_put(Dst, 12170); 1992 dasm_put(Dst, 12167);
1990 break; 1993 break;
1991#undef TV2MARKOFS 1994#undef TV2MARKOFS
1992 case BC_USETS: 1995 case BC_USETS:
1993 dasm_put(Dst, 12182, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1996 dasm_put(Dst, 12179, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1994 break; 1997 break;
1995 case BC_USETN: 1998 case BC_USETN:
1996 dasm_put(Dst, 12273); 1999 dasm_put(Dst, 12270);
1997 if (sse) { 2000 if (sse) {
1998 dasm_put(Dst, 12278); 2001 dasm_put(Dst, 12275);
1999 } else { 2002 } else {
2000 dasm_put(Dst, 11088); 2003 dasm_put(Dst, 11085);
2001 } 2004 }
2002 dasm_put(Dst, 12285, offsetof(GCfuncL, uvptr), DtA(->v)); 2005 dasm_put(Dst, 12282, offsetof(GCfuncL, uvptr), DtA(->v));
2003 if (sse) { 2006 if (sse) {
2004 dasm_put(Dst, 12294); 2007 dasm_put(Dst, 12291);
2005 } else { 2008 } else {
2006 dasm_put(Dst, 12300); 2009 dasm_put(Dst, 12297);
2007 } 2010 }
2008 dasm_put(Dst, 10851); 2011 dasm_put(Dst, 10848);
2009 break; 2012 break;
2010 case BC_USETP: 2013 case BC_USETP:
2011 dasm_put(Dst, 12303, offsetof(GCfuncL, uvptr), DtA(->v)); 2014 dasm_put(Dst, 12300, offsetof(GCfuncL, uvptr), DtA(->v));
2012 break; 2015 break;
2013 case BC_UCLO: 2016 case BC_UCLO:
2014 dasm_put(Dst, 12340, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2017 dasm_put(Dst, 12337, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2015 break; 2018 break;
2016 2019
2017 case BC_FNEW: 2020 case BC_FNEW:
2018 dasm_put(Dst, 12394, Dt1(->base), Dt1(->base), LJ_TFUNC); 2021 dasm_put(Dst, 12391, Dt1(->base), Dt1(->base), LJ_TFUNC);
2019 break; 2022 break;
2020 2023
2021 /* -- Table ops --------------------------------------------------------- */ 2024 /* -- Table ops --------------------------------------------------------- */
2022 2025
2023 case BC_TNEW: 2026 case BC_TNEW:
2024 dasm_put(Dst, 12465, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2027 dasm_put(Dst, 12462, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2025 break; 2028 break;
2026 case BC_TDUP: 2029 case BC_TDUP:
2027 dasm_put(Dst, 12591, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2030 dasm_put(Dst, 12588, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2028 break; 2031 break;
2029 2032
2030 case BC_GGET: 2033 case BC_GGET:
2031 dasm_put(Dst, 12683, Dt7(->env)); 2034 dasm_put(Dst, 12680, Dt7(->env));
2032 break; 2035 break;
2033 case BC_GSET: 2036 case BC_GSET:
2034 dasm_put(Dst, 12701, Dt7(->env)); 2037 dasm_put(Dst, 12698, Dt7(->env));
2035 break; 2038 break;
2036 2039
2037 case BC_TGETV: 2040 case BC_TGETV:
2038 dasm_put(Dst, 12719, LJ_TTAB, LJ_TISNUM); 2041 dasm_put(Dst, 12716, LJ_TTAB, LJ_TISNUM);
2039 if (sse) { 2042 if (sse) {
2040 dasm_put(Dst, 12752); 2043 dasm_put(Dst, 12749);
2041 } else { 2044 } else {
2042 dasm_put(Dst, 12773); 2045 dasm_put(Dst, 12770);
2043 if (cmov) { 2046 if (cmov) {
2044 dasm_put(Dst, 10814); 2047 dasm_put(Dst, 10811);
2045 } else { 2048 } else {
2046 dasm_put(Dst, 10820); 2049 dasm_put(Dst, 10817);
2047 } 2050 }
2048 dasm_put(Dst, 2531); 2051 dasm_put(Dst, 2527);
2049 } 2052 }
2050 dasm_put(Dst, 12783, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2053 dasm_put(Dst, 12780, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2051 dasm_put(Dst, 12875, LJ_TSTR); 2054 dasm_put(Dst, 12872, LJ_TSTR);
2052 break; 2055 break;
2053 case BC_TGETS: 2056 case BC_TGETS:
2054 dasm_put(Dst, 12893, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2057 dasm_put(Dst, 12890, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2055 dasm_put(Dst, 12977, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2058 dasm_put(Dst, 12974, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2056 break; 2059 break;
2057 case BC_TGETB: 2060 case BC_TGETB:
2058 dasm_put(Dst, 13048, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2061 dasm_put(Dst, 13045, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2059 dasm_put(Dst, 11385); 2062 dasm_put(Dst, 11382);
2060 break; 2063 break;
2061 2064
2062 case BC_TSETV: 2065 case BC_TSETV:
2063 dasm_put(Dst, 13147, LJ_TTAB, LJ_TISNUM); 2066 dasm_put(Dst, 13144, LJ_TTAB, LJ_TISNUM);
2064 if (sse) { 2067 if (sse) {
2065 dasm_put(Dst, 12752); 2068 dasm_put(Dst, 12749);
2066 } else { 2069 } else {
2067 dasm_put(Dst, 12773); 2070 dasm_put(Dst, 12770);
2068 if (cmov) { 2071 if (cmov) {
2069 dasm_put(Dst, 10814); 2072 dasm_put(Dst, 10811);
2070 } else { 2073 } else {
2071 dasm_put(Dst, 10820); 2074 dasm_put(Dst, 10817);
2072 } 2075 }
2073 dasm_put(Dst, 2531); 2076 dasm_put(Dst, 2527);
2074 } 2077 }
2075 dasm_put(Dst, 13180, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2078 dasm_put(Dst, 13177, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2076 dasm_put(Dst, 13263, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2079 dasm_put(Dst, 13260, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2077 break; 2080 break;
2078 case BC_TSETS: 2081 case BC_TSETS:
2079 dasm_put(Dst, 13325, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2082 dasm_put(Dst, 13322, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2080 dasm_put(Dst, 13400, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2083 dasm_put(Dst, 13397, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2081 dasm_put(Dst, 13492, 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)); 2084 dasm_put(Dst, 13489, 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));
2082 break; 2085 break;
2083 case BC_TSETB: 2086 case BC_TSETB:
2084 dasm_put(Dst, 13588, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2087 dasm_put(Dst, 13585, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2085 dasm_put(Dst, 13686, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2088 dasm_put(Dst, 13683, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2086 break; 2089 break;
2087 2090
2088 case BC_TSETM: 2091 case BC_TSETM:
2089 dasm_put(Dst, 13732); 2092 dasm_put(Dst, 13729);
2090 if (sse) { 2093 if (sse) {
2091 dasm_put(Dst, 13737); 2094 dasm_put(Dst, 13734);
2092 } else { 2095 } else {
2093 dasm_put(Dst, 13744); 2096 dasm_put(Dst, 13741);
2094 } 2097 }
2095 dasm_put(Dst, 13756, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2098 dasm_put(Dst, 13753, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2096 dasm_put(Dst, 13898, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2099 dasm_put(Dst, 13895, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2097 break; 2100 break;
2098 2101
2099 /* -- Calls and vararg handling ----------------------------------------- */ 2102 /* -- Calls and vararg handling ----------------------------------------- */
2100 2103
2101 case BC_CALL: case BC_CALLM: 2104 case BC_CALL: case BC_CALLM:
2102 dasm_put(Dst, 11399); 2105 dasm_put(Dst, 11396);
2103 if (op == BC_CALLM) { 2106 if (op == BC_CALLM) {
2104 dasm_put(Dst, 13916); 2107 dasm_put(Dst, 13913);
2105 } 2108 }
2106 dasm_put(Dst, 13921, LJ_TFUNC, Dt7(->pc)); 2109 dasm_put(Dst, 13918, LJ_TFUNC, Dt7(->pc));
2107 break; 2110 break;
2108 2111
2109 case BC_CALLMT: 2112 case BC_CALLMT:
2110 dasm_put(Dst, 13916); 2113 dasm_put(Dst, 13913);
2111 break; 2114 break;
2112 case BC_CALLT: 2115 case BC_CALLT:
2113 dasm_put(Dst, 13962, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2116 dasm_put(Dst, 13959, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2114 dasm_put(Dst, 14080, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2117 dasm_put(Dst, 14077, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2115 break; 2118 break;
2116 2119
2117 case BC_ITERC: 2120 case BC_ITERC:
2118 dasm_put(Dst, 14150, LJ_TFUNC, 2+1, Dt7(->pc)); 2121 dasm_put(Dst, 14147, LJ_TFUNC, 2+1, Dt7(->pc));
2119 break; 2122 break;
2120 2123
2121 case BC_VARG: 2124 case BC_VARG:
2122 dasm_put(Dst, 14230, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2125 dasm_put(Dst, 14227, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2123 dasm_put(Dst, 14374, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2126 dasm_put(Dst, 14371, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2124 break; 2127 break;
2125 2128
2126 /* -- Returns ----------------------------------------------------------- */ 2129 /* -- Returns ----------------------------------------------------------- */
2127 2130
2128 case BC_RETM: 2131 case BC_RETM:
2129 dasm_put(Dst, 13916); 2132 dasm_put(Dst, 13913);
2130 break; 2133 break;
2131 2134
2132 case BC_RET: case BC_RET0: case BC_RET1: 2135 case BC_RET: case BC_RET0: case BC_RET1:
2133 if (op != BC_RET0) { 2136 if (op != BC_RET0) {
2134 dasm_put(Dst, 14473); 2137 dasm_put(Dst, 14470);
2135 } 2138 }
2136 dasm_put(Dst, 14477, FRAME_TYPE); 2139 dasm_put(Dst, 14474, FRAME_TYPE);
2137 switch (op) { 2140 switch (op) {
2138 case BC_RET: 2141 case BC_RET:
2139 dasm_put(Dst, 14496); 2142 dasm_put(Dst, 14493);
2140 break; 2143 break;
2141 case BC_RET1: 2144 case BC_RET1:
2142 dasm_put(Dst, 14554); 2145 dasm_put(Dst, 14551);
2143 /* fallthrough */ 2146 /* fallthrough */
2144 case BC_RET0: 2147 case BC_RET0:
2145 dasm_put(Dst, 14570); 2148 dasm_put(Dst, 14567);
2146 default: 2149 default:
2147 break; 2150 break;
2148 } 2151 }
2149 dasm_put(Dst, 14581, Dt7(->pc), PC2PROTO(k)); 2152 dasm_put(Dst, 14578, Dt7(->pc), PC2PROTO(k));
2150 if (op == BC_RET) { 2153 if (op == BC_RET) {
2151 dasm_put(Dst, 14623, LJ_TNIL); 2154 dasm_put(Dst, 14620, LJ_TNIL);
2152 } else { 2155 } else {
2153 dasm_put(Dst, 14632, LJ_TNIL); 2156 dasm_put(Dst, 14629, LJ_TNIL);
2154 } 2157 }
2155 dasm_put(Dst, 14639, -FRAME_VARG, FRAME_TYPEP); 2158 dasm_put(Dst, 14636, -FRAME_VARG, FRAME_TYPEP);
2156 if (op != BC_RET0) { 2159 if (op != BC_RET0) {
2157 dasm_put(Dst, 14663); 2160 dasm_put(Dst, 14660);
2158 } 2161 }
2159 dasm_put(Dst, 4687); 2162 dasm_put(Dst, 4683);
2160 break; 2163 break;
2161 2164
2162 /* -- Loops and branches ------------------------------------------------ */ 2165 /* -- Loops and branches ------------------------------------------------ */
@@ -2164,7 +2167,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2164 2167
2165 case BC_FORL: 2168 case BC_FORL:
2166#if LJ_HASJIT 2169#if LJ_HASJIT
2167 dasm_put(Dst, 14667, HOTCOUNT_PCMASK, GG_DISP2HOT); 2170 dasm_put(Dst, 14664, HOTCOUNT_PCMASK, GG_DISP2HOT);
2168#endif 2171#endif
2169 break; 2172 break;
2170 2173
@@ -2176,57 +2179,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2176 case BC_FORI: 2179 case BC_FORI:
2177 case BC_IFORL: 2180 case BC_IFORL:
2178 vk = (op == BC_IFORL || op == BC_JFORL); 2181 vk = (op == BC_IFORL || op == BC_JFORL);
2179 dasm_put(Dst, 14688); 2182 dasm_put(Dst, 14685);
2180 if (!vk) { 2183 if (!vk) {
2181 dasm_put(Dst, 14692, LJ_TISNUM, LJ_TISNUM); 2184 dasm_put(Dst, 14689, LJ_TISNUM, LJ_TISNUM);
2182 } 2185 }
2183 dasm_put(Dst, 14711); 2186 dasm_put(Dst, 14708);
2184 if (!vk) { 2187 if (!vk) {
2185 dasm_put(Dst, 14715, LJ_TISNUM); 2188 dasm_put(Dst, 14712, LJ_TISNUM);
2186 } 2189 }
2187 if (sse) { 2190 if (sse) {
2188 dasm_put(Dst, 14724); 2191 dasm_put(Dst, 14721);
2189 if (vk) { 2192 if (vk) {
2190 dasm_put(Dst, 14736); 2193 dasm_put(Dst, 14733);
2191 } else { 2194 } else {
2192 dasm_put(Dst, 14755); 2195 dasm_put(Dst, 14752);
2193 } 2196 }
2194 dasm_put(Dst, 14760); 2197 dasm_put(Dst, 14757);
2195 } else { 2198 } else {
2196 dasm_put(Dst, 14773); 2199 dasm_put(Dst, 14770);
2197 if (vk) { 2200 if (vk) {
2198 dasm_put(Dst, 14779); 2201 dasm_put(Dst, 14776);
2199 } else { 2202 } else {
2200 dasm_put(Dst, 14795); 2203 dasm_put(Dst, 14792);
2201 } 2204 }
2202 dasm_put(Dst, 14803); 2205 dasm_put(Dst, 14800);
2203 if (cmov) { 2206 if (cmov) {
2204 dasm_put(Dst, 10814); 2207 dasm_put(Dst, 10811);
2205 } else { 2208 } else {
2206 dasm_put(Dst, 10820); 2209 dasm_put(Dst, 10817);
2207 } 2210 }
2208 if (!cmov) { 2211 if (!cmov) {
2209 dasm_put(Dst, 14808); 2212 dasm_put(Dst, 14805);
2210 } 2213 }
2211 } 2214 }
2212 if (op == BC_FORI) { 2215 if (op == BC_FORI) {
2213 dasm_put(Dst, 14814, -BCBIAS_J*4); 2216 dasm_put(Dst, 14811, -BCBIAS_J*4);
2214 } else if (op == BC_JFORI) { 2217 } else if (op == BC_JFORI) {
2215 dasm_put(Dst, 14824, -BCBIAS_J*4, BC_JLOOP); 2218 dasm_put(Dst, 14821, -BCBIAS_J*4, BC_JLOOP);
2216 } else if (op == BC_IFORL) { 2219 } else if (op == BC_IFORL) {
2217 dasm_put(Dst, 14838, -BCBIAS_J*4); 2220 dasm_put(Dst, 14835, -BCBIAS_J*4);
2218 } else { 2221 } else {
2219 dasm_put(Dst, 14834, BC_JLOOP); 2222 dasm_put(Dst, 14831, BC_JLOOP);
2220 } 2223 }
2221 dasm_put(Dst, 10849); 2224 dasm_put(Dst, 10846);
2222 if (sse) { 2225 if (sse) {
2223 dasm_put(Dst, 14848); 2226 dasm_put(Dst, 14845);
2224 } 2227 }
2225 break; 2228 break;
2226 2229
2227 case BC_ITERL: 2230 case BC_ITERL:
2228#if LJ_HASJIT 2231#if LJ_HASJIT
2229 dasm_put(Dst, 14667, HOTCOUNT_PCMASK, GG_DISP2HOT); 2232 dasm_put(Dst, 14664, HOTCOUNT_PCMASK, GG_DISP2HOT);
2230#endif 2233#endif
2231 break; 2234 break;
2232 2235
@@ -2235,33 +2238,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2235 break; 2238 break;
2236#endif 2239#endif
2237 case BC_IITERL: 2240 case BC_IITERL:
2238 dasm_put(Dst, 14859, LJ_TNIL); 2241 dasm_put(Dst, 14856, LJ_TNIL);
2239 if (op == BC_JITERL) { 2242 if (op == BC_JITERL) {
2240 dasm_put(Dst, 14874, BC_JLOOP); 2243 dasm_put(Dst, 14871, BC_JLOOP);
2241 } else { 2244 } else {
2242 dasm_put(Dst, 14888, -BCBIAS_J*4); 2245 dasm_put(Dst, 14885, -BCBIAS_J*4);
2243 } 2246 }
2244 dasm_put(Dst, 11146); 2247 dasm_put(Dst, 11143);
2245 break; 2248 break;
2246 2249
2247 case BC_LOOP: 2250 case BC_LOOP:
2248#if LJ_HASJIT 2251#if LJ_HASJIT
2249 dasm_put(Dst, 14667, HOTCOUNT_PCMASK, GG_DISP2HOT); 2252 dasm_put(Dst, 14664, HOTCOUNT_PCMASK, GG_DISP2HOT);
2250#endif 2253#endif
2251 break; 2254 break;
2252 2255
2253 case BC_ILOOP: 2256 case BC_ILOOP:
2254 dasm_put(Dst, 10851); 2257 dasm_put(Dst, 10848);
2255 break; 2258 break;
2256 2259
2257 case BC_JLOOP: 2260 case BC_JLOOP:
2258#if LJ_HASJIT 2261#if LJ_HASJIT
2259 dasm_put(Dst, 14904, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2262 dasm_put(Dst, 14901, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2260#endif 2263#endif
2261 break; 2264 break;
2262 2265
2263 case BC_JMP: 2266 case BC_JMP:
2264 dasm_put(Dst, 14927, -BCBIAS_J*4); 2267 dasm_put(Dst, 14924, -BCBIAS_J*4);
2265 break; 2268 break;
2266 2269
2267 /* -- Function headers -------------------------------------------------- */ 2270 /* -- Function headers -------------------------------------------------- */
@@ -2275,7 +2278,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2275 2278
2276 case BC_FUNCF: 2279 case BC_FUNCF:
2277#if LJ_HASJIT 2280#if LJ_HASJIT
2278 dasm_put(Dst, 14951, HOTCOUNT_PCMASK, GG_DISP2HOT); 2281 dasm_put(Dst, 14948, HOTCOUNT_PCMASK, GG_DISP2HOT);
2279#endif 2282#endif
2280 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2283 case BC_FUNCV: /* NYI: compiled vararg functions. */
2281 break; 2284 break;
@@ -2285,47 +2288,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2285 break; 2288 break;
2286#endif 2289#endif
2287 case BC_IFUNCF: 2290 case BC_IFUNCF:
2288 dasm_put(Dst, 14972, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2291 dasm_put(Dst, 14969, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2289 if (op == BC_JFUNCF) { 2292 if (op == BC_JFUNCF) {
2290 dasm_put(Dst, 15002, BC_JLOOP); 2293 dasm_put(Dst, 14999, BC_JLOOP);
2291 } else { 2294 } else {
2292 dasm_put(Dst, 10851); 2295 dasm_put(Dst, 10848);
2293 } 2296 }
2294 dasm_put(Dst, 15011, LJ_TNIL); 2297 dasm_put(Dst, 15008, LJ_TNIL);
2295 break; 2298 break;
2296 2299
2297 case BC_JFUNCV: 2300 case BC_JFUNCV:
2298#if !LJ_HASJIT 2301#if !LJ_HASJIT
2299 break; 2302 break;
2300#endif 2303#endif
2301 dasm_put(Dst, 10512); 2304 dasm_put(Dst, 10246);
2302 break; /* NYI: compiled vararg functions. */ 2305 break; /* NYI: compiled vararg functions. */
2303 2306
2304 case BC_IFUNCV: 2307 case BC_IFUNCV:
2305 dasm_put(Dst, 15033, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2308 dasm_put(Dst, 15030, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2306 if (op == BC_JFUNCV) { 2309 if (op == BC_JFUNCV) {
2307 dasm_put(Dst, 15002, BC_JLOOP); 2310 dasm_put(Dst, 14999, BC_JLOOP);
2308 } else { 2311 } else {
2309 dasm_put(Dst, 15124, -4+PC2PROTO(k)); 2312 dasm_put(Dst, 15121, -4+PC2PROTO(k));
2310 } 2313 }
2311 dasm_put(Dst, 15146, LJ_TNIL); 2314 dasm_put(Dst, 15143, LJ_TNIL);
2312 break; 2315 break;
2313 2316
2314 case BC_FUNCC: 2317 case BC_FUNCC:
2315 case BC_FUNCCW: 2318 case BC_FUNCCW:
2316 dasm_put(Dst, 15168, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2319 dasm_put(Dst, 15165, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2317 if (op == BC_FUNCC) { 2320 if (op == BC_FUNCC) {
2318 dasm_put(Dst, 15197); 2321 dasm_put(Dst, 15194);
2319 } else { 2322 } else {
2320 dasm_put(Dst, 15201); 2323 dasm_put(Dst, 15198);
2321 } 2324 }
2322 dasm_put(Dst, 15209, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2325 dasm_put(Dst, 15206, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2323 if (op == BC_FUNCC) { 2326 if (op == BC_FUNCC) {
2324 dasm_put(Dst, 15218); 2327 dasm_put(Dst, 15215);
2325 } else { 2328 } else {
2326 dasm_put(Dst, 15222, DISPATCH_GL(wrapf)); 2329 dasm_put(Dst, 15219, DISPATCH_GL(wrapf));
2327 } 2330 }
2328 dasm_put(Dst, 15227, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2331 dasm_put(Dst, 15224, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2329 break; 2332 break;
2330 2333
2331 /* ---------------------------------------------------------------------- */ 2334 /* ---------------------------------------------------------------------- */
@@ -2353,7 +2356,7 @@ static int build_backend(BuildCtx *ctx)
2353 2356
2354 build_subroutines(ctx, cmov, sse); 2357 build_subroutines(ctx, cmov, sse);
2355 2358
2356 dasm_put(Dst, 15252); 2359 dasm_put(Dst, 15249);
2357 for (op = 0; op < BC__MAX; op++) 2360 for (op = 0; op < BC__MAX; op++)
2358 build_ins(ctx, (BCOp)op, op, cmov, sse); 2361 build_ins(ctx, (BCOp)op, op, cmov, sse);
2359 2362
diff --git a/src/lj_obj.h b/src/lj_obj.h
index 762e58ce..5eaa7145 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -480,7 +480,7 @@ typedef struct global_State {
480 uint8_t vmevmask; /* VM event mask. */ 480 uint8_t vmevmask; /* VM event mask. */
481 GCRef mainthref; /* Link to main thread. */ 481 GCRef mainthref; /* Link to main thread. */
482 TValue registrytv; /* Anchor for registry. */ 482 TValue registrytv; /* Anchor for registry. */
483 TValue tmptv; /* Temporary TValue. */ 483 TValue tmptv, tmptv2; /* Temporary TValues. */
484 GCupval uvhead; /* Head of double-linked list of all open upvalues. */ 484 GCupval uvhead; /* Head of double-linked list of all open upvalues. */
485 int32_t hookcount; /* Instruction hook countdown. */ 485 int32_t hookcount; /* Instruction hook countdown. */
486 int32_t hookcstart; /* Start count for instruction hook counter. */ 486 int32_t hookcstart; /* Start count for instruction hook counter. */
diff --git a/src/lj_vm.h b/src/lj_vm.h
index 01667711..2f9b10ec 100644
--- a/src/lj_vm.h
+++ b/src/lj_vm.h
@@ -25,7 +25,9 @@ LJ_ASMF void lj_vm_unwind_ff_eh(void);
25LJ_ASMF int lj_vm_cpuid(uint32_t f, uint32_t res[4]); 25LJ_ASMF int lj_vm_cpuid(uint32_t f, uint32_t res[4]);
26#endif 26#endif
27LJ_ASMF double lj_vm_foldarith(double x, double y, int op); 27LJ_ASMF double lj_vm_foldarith(double x, double y, int op);
28#if LJ_HASJIT
28LJ_ASMF double lj_vm_foldfpm(double x, int op); 29LJ_ASMF double lj_vm_foldfpm(double x, int op);
30#endif
29 31
30/* Dispatch targets for recording and hooks. */ 32/* Dispatch targets for recording and hooks. */
31LJ_ASMF void lj_vm_record(void); 33LJ_ASMF void lj_vm_record(void);
@@ -38,6 +40,8 @@ LJ_ASMF void lj_vm_exit_handler(void);
38LJ_ASMF void lj_vm_exit_interp(void); 40LJ_ASMF void lj_vm_exit_interp(void);
39 41
40/* Handlers callable from compiled code. */ 42/* Handlers callable from compiled code. */
43#if LJ_HASJIT
44#if LJ_TARGET_X86ORX64
41LJ_ASMF void lj_vm_floor_sse(void); 45LJ_ASMF void lj_vm_floor_sse(void);
42LJ_ASMF void lj_vm_ceil_sse(void); 46LJ_ASMF void lj_vm_ceil_sse(void);
43LJ_ASMF void lj_vm_trunc_sse(void); 47LJ_ASMF void lj_vm_trunc_sse(void);
@@ -45,6 +49,13 @@ LJ_ASMF void lj_vm_exp(void);
45LJ_ASMF void lj_vm_exp2(void); 49LJ_ASMF void lj_vm_exp2(void);
46LJ_ASMF void lj_vm_pow_sse(void); 50LJ_ASMF void lj_vm_pow_sse(void);
47LJ_ASMF void lj_vm_powi_sse(void); 51LJ_ASMF void lj_vm_powi_sse(void);
52#else
53LJ_ASMF void lj_vm_floor(void);
54LJ_ASMF void lj_vm_ceil(void);
55LJ_ASMF void lj_vm_trunc(void);
56LJ_ASMF void lj_vm_powi(void);
57#endif
58#endif
48 59
49/* Continuations for metamethods. */ 60/* Continuations for metamethods. */
50LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */ 61LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */