summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h1918
1 files changed, 958 insertions, 960 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 9253bc21..0cbf9c68 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[15189] = { 15static const unsigned char build_actionlist[15179] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -98,224 +98,224 @@ static const unsigned char build_actionlist[15189] = {
98 106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137, 98 106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,
99 105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36, 99 105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,
100 20,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,184,237, 100 20,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,184,237,
101 252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,139, 101 252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,
102 106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,137,66, 102 2,139,106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,
103 252,248,252,233,244,58,248,59,129,252,248,239,15,130,244,55,139,106,4,139, 103 137,66,252,248,252,233,244,58,248,59,129,252,248,239,15,130,244,55,139,106,
104 114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2, 104 4,139,114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,
105 133,252,237,199,66,252,252,237,15,132,244,58,139,131,233,199,66,252,252,237, 105 248,2,133,252,237,199,66,252,252,237,15,132,244,58,139,131,233,199,66,252,
106 137,106,252,248,139,141,233,255,35,136,233,105,201,239,3,141,233,248,3,129, 106 252,237,255,137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,
107 185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133, 107 248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,
108 201,15,133,244,3,252,233,244,58,248,5,139,105,4,129,252,253,239,15,132,244, 108 137,233,133,201,15,133,244,3,252,233,244,58,248,5,139,105,4,129,252,253,239,
109 58,255,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248,6,129,252, 109 255,15,132,244,58,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248,
110 253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247, 110 6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,
111 213,139,172,253,171,233,252,233,244,2,248,60,129,252,248,239,15,130,244,55, 111 7,252,247,213,139,172,253,171,233,252,233,244,2,248,60,129,252,248,239,15,
112 129,122,253,4,239,15,133,244,55,255,139,42,131,189,233,0,15,133,244,55,129, 112 130,244,55,255,129,122,253,4,239,15,133,244,55,139,42,131,189,233,0,15,133,
113 122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,114,252,252,199,66, 113 244,55,129,122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,114,252,
114 252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233, 114 252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247,
115 235,139,131,233,137,171,233,137,133,233,248,1,252,233,244,58,248,61,255,129, 115 128,165,233,235,139,131,233,137,171,233,137,133,233,248,1,255,252,233,244,
116 252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,2,139,108,36, 116 58,248,61,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,
117 48,137,68,36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,1,9,137,252, 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 234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,233, 118 1,9,137,252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,
119 244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244, 119 252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,
120 55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,255,248,65, 120 15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,
121 129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239,15,133,244, 121 255,248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239,
122 249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,129, 122 15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,
123 122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139,171,233,59,171, 123 58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139,
124 233,255,15,130,244,247,232,244,66,248,1,139,108,36,48,137,149,233,137,116, 124 171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36,48,137,
125 36,24,137,252,233,232,251,1,10,139,149,233,252,233,244,2,248,67,129,252,248, 125 149,233,137,116,36,24,137,252,233,232,251,1,10,139,149,233,252,233,244,2,
126 239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,15,133,244,55,139, 126 248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,
127 108,36,48,137,149,233,255,139,114,252,252,139,2,137,68,36,4,137,44,36,131, 127 15,133,244,55,139,108,36,48,137,149,233,255,139,114,252,252,139,2,137,68,
128 194,8,137,84,36,8,137,116,36,24,232,251,1,11,139,149,233,133,192,15,132,244, 128 36,4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232,251,1,11,139,149,233,
129 249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,16,139,66, 129 133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,
130 20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252, 130 139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,
131 233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252,248,239, 131 199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,
132 15,130,244,55,139,106,252,248,129,122,253,4,239,255,15,133,244,55,139,133, 132 129,252,248,239,15,130,244,55,139,106,252,248,129,122,253,4,239,255,15,133,
133 233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237, 133 244,55,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,
134 252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 134 66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,
135 133,244,55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242,15, 135 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,252,
136 16,66,8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88, 136 252,255,252,242,15,16,66,8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,
137 193,252,242,15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193, 137 81,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,221,66,
138 219,20,36,221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193, 138 8,217,232,222,193,219,20,36,221,90,252,248,139,4,36,255,139,42,59,133,233,
139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137, 139 15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,
140 42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233, 140 139,40,139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,
141 137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184, 141 244,72,137,252,233,137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,
142 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,106,252,248, 142 244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,
143 129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252, 143 55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,
144 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90, 144 252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,
145 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74, 145 217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,
146 8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,1,252, 146 130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,
147 238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239, 147 131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,
148 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,8,137, 148 122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,
149 106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,248, 149 139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,
150 239,15,130,244,55,139,42,139,114,252,252,137,116,36,24,137,44,36,129,122, 150 76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,24,137,
151 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,128,189,233,235,15,135, 151 44,36,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,128,189,
152 244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141, 152 233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,
153 116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,149, 153 55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,
154 233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244,249, 154 36,48,137,149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,
155 248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57, 155 15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,
156 206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244, 156 252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,
157 24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248,239, 157 36,8,232,244,24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,
158 15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206, 158 252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,
159 15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41, 159 252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,
160 205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133, 160 255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,
161 244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20, 161 252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,
162 185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,13,252, 162 137,68,36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,
163 233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,142,233, 163 244,13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,
164 139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,137,185, 164 137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,
165 233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,248,77, 165 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,
166 139,106,252,248,139,173,233,139,114,252,252,137,116,36,24,137,44,36,131,189, 166 244,4,248,77,139,106,252,248,139,173,233,139,114,252,252,137,116,36,24,137,
167 233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132, 167 44,36,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,
168 244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248,59,181,233,15, 168 233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248,59,
169 135,244,55,137,181,233,139,108,36,48,137,149,233,137,149,233,141,108,194, 169 181,233,15,135,244,55,137,181,233,139,108,36,48,137,149,233,137,149,233,141,
170 252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,68,46,4,137,70,252, 170 108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,68,46,4,137,
171 252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76, 171 70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,
172 36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237,139,108,36, 172 3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237,
173 48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233, 173 139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,
174 139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252, 174 139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,
175 238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5,139,1,137,4,41,139, 175 4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5,139,
176 65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139, 176 1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,
177 116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,13,252,233,244,14, 177 70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,13,
178 248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,12,36,137,185,233,137, 178 252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,12,36,
179 252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,248,78,139,108, 179 137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,
180 36,48,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248, 180 248,78,139,108,36,48,252,247,133,233,237,15,132,244,55,255,137,149,233,141,
181 137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,16,255,248, 181 68,194,252,248,137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,
182 64,139,114,252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239,15, 182 244,16,255,248,64,139,114,252,252,221,90,252,248,252,233,244,58,248,79,129,
183 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,102,15,252,239, 183 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
184 201,102,15,118,201,102,15,115,209,1,15,84,193,248,63,139,114,252,252,252, 184 102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,248,63,139,114,
185 242,15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253, 185 252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,
186 4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,114,252,252,221,90,252, 186 129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,114,252,252,
187 248,255,248,58,184,237,248,69,137,68,36,20,248,56,252,247,198,237,15,133, 187 221,90,252,248,255,248,58,184,237,248,69,137,68,36,20,248,56,252,247,198,
188 244,253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,252,247,209, 188 237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,252,
189 141,20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 189 247,209,141,20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
190 248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,185,252,248,252, 190 36,171,248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,185,252,
191 255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130,244, 191 248,252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,
192 55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81, 192 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,
193 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15, 193 248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
194 16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55,129, 194 242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,
195 122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255, 195 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,
196 248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 196 63,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
197 2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129,122, 197 55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,
198 253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129,252, 198 129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,
199 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252, 199 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,
200 233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 200 84,252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,
201 135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252,248, 201 239,15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,
202 239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252, 202 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,
203 241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4, 203 2,217,252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,
204 239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239, 204 122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,
205 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244, 205 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,
206 64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244, 206 233,244,64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,
207 55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55, 207 135,244,55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,
208 129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64, 208 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,
209 248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55, 209 244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,
210 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244, 210 244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,
211 64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 211 233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
212 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233, 212 244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,
213 244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 213 243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,
214 55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,252,248,239, 214 15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,
215 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15, 215 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
216 17,4,36,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 216 252,242,15,17,4,36,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,
217 244,55,221,2,221,28,36,255,137,213,232,251,1,14,137,252,234,252,233,244,64, 217 239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,14,137,252,234,252,
218 255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 218 233,244,64,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
219 252,242,15,16,2,252,242,15,17,4,36,255,248,96,129,252,248,239,15,130,244, 219 135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,96,129,252,248,239,
220 55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1, 220 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,
221 15,137,252,234,252,233,244,64,255,248,97,129,252,248,239,15,130,244,55,129, 221 232,251,1,15,137,252,234,252,233,244,64,255,248,97,129,252,248,239,15,130,
222 122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,97, 222 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,
223 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28, 223 255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
224 36,255,137,213,232,251,1,16,137,252,234,252,233,244,64,248,98,255,248,99, 224 221,2,221,28,36,255,137,213,232,251,1,16,137,252,234,252,233,244,64,248,98,
225 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15, 225 255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
226 16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,248,99,129, 226 252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,
227 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252, 227 248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
228 248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,15,130,244,55, 228 2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,
229 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
230 55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,
231 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,
232 55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,
233 239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,252,
234 139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,
235 15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,
236 0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,
237 108,36,16,219,68,36,16,255,139,106,252,252,129,229,252,255,252,255,15,128,
238 129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,
239 184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,
240 252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,205,
241 102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,
242 68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139,106,252,252,184,52,
243 4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,
244 122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,
245 130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,114,252,
246 252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,
247 244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,
248 255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,
249 252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,
250 3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,
251 244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,
252 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
253 55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,
254 233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
255 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
256 74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,15,130,244,55,
229 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221, 257 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,
230 66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,244,55,129, 258 66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239,15,130,244,55,
231 122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8, 259 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,
232 221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,239,15,130,244, 260 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,
233 55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,252,139,2,137,106, 261 76,252,234,252,248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,108,
234 252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249, 262 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,189,2,
235 9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250, 263 0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,234,252,252,239,15,135,244,
236 248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68, 264 251,221,68,252,234,252,248,255,219,252,233,219,209,221,217,255,80,221,225,
237 36,16,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224, 265 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,248,109,
238 63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233, 266 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
239 244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255, 267 16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,
240 248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,205,102,15,112,201,81, 268 15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,
241 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,68,36,16,0,0,128, 269 1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,129,122,253,4,239,
242 90,216,76,36,16,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252, 270 15,135,244,55,221,2,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,
243 233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 271 234,252,252,239,15,135,244,251,221,68,252,234,252,248,255,219,252,233,218,
244 135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129, 272 209,221,217,255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,
245 122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,114,252,252,209,229,129, 273 2,221,216,88,255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,
246 252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242, 274 15,130,244,55,129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,
247 15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232, 275 233,252,233,244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,
248 244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106, 276 239,15,133,244,55,129,122,253,4,239,15,133,244,55,139,42,139,114,252,252,
249 4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0, 277 131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,
250 0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217, 278 244,63,255,137,108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171,
251 252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129, 279 233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,
252 122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221, 280 55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,2,61,252,255,0,0,0,15,
253 2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248, 281 135,244,55,137,68,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0,
254 106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, 282 0,15,135,244,55,255,199,68,36,8,1,0,0,0,141,68,36,20,248,113,139,108,36,48,
255 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252, 283 137,149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,149,233,
256 233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 284 139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,
257 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252, 285 139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,20,252,255,
258 233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 286 252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,
259 135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124, 287 122,253,20,239,255,252,242,15,45,106,16,137,108,36,20,255,221,66,16,219,92,
260 253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252, 288 36,20,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,
261 242,15,93,193,131,197,1,252,233,244,1,255,248,108,129,252,248,239,15,130, 289 244,55,139,42,137,108,36,12,139,173,233,255,252,242,15,45,74,8,255,221,66,
262 244,55,129,122,253,4,239,15,135,244,55,221,2,189,2,0,0,0,248,1,57,197,15, 290 8,219,92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,
263 131,244,64,129,124,253,252,234,252,252,239,15,135,244,251,221,68,252,234, 291 201,15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,115,141,172,253,
264 252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,246,196, 292 13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5,15,140,244,
265 1,15,132,244,248,217,201,248,2,221,216,88,255,248,109,129,252,248,239,15, 293 252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,
266 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248, 294 244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,
267 1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252, 295 248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,55,139,171,
268 242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255, 296 233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133,
269 248,109,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 297 244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255,
270 2,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,234,252,252,239, 298 221,66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,115,131,189,233,
271 15,135,244,251,221,68,252,234,252,248,255,219,252,233,218,209,221,217,255, 299 1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,182,141,233,
272 80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,88, 300 139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,
273 255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55, 301 131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,244,55,139,171,
274 129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233, 302 233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,
275 244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133, 303 55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129,
276 244,55,129,122,253,4,239,15,133,244,55,139,42,139,114,252,252,131,189,233, 304 197,239,137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,
277 1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137, 305 1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,113,
278 108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171,233,59,171,233, 306 248,120,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247,
279 15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253, 307 232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,
280 4,239,15,135,244,55,255,252,242,15,45,2,61,252,255,0,0,0,15,135,244,55,137, 308 233,255,15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
281 68,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,55, 309 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,
282 255,199,68,36,8,1,0,0,0,141,68,36,20,248,113,139,108,36,48,137,149,233,137, 310 249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,
283 68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,149,233,139,114,252,252, 311 244,1,137,252,240,139,116,36,20,252,233,244,113,248,121,129,252,248,239,15,
284 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171, 312 130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,
285 233,15,130,244,247,232,244,66,248,1,199,68,36,20,252,255,252,255,252,255, 313 122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119,
286 252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255, 314 129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,
287 252,242,15,45,106,16,137,108,36,20,255,221,66,16,219,92,36,20,255,248,1,129, 315 182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,
288 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108, 316 131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,
289 36,12,139,173,233,255,252,242,15,45,74,8,255,221,66,8,219,92,36,8,139,76, 317 116,36,20,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,
290 36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,15,142,244,253, 318 4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242,15,
291 248,3,139,108,36,12,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,
292 4,137,68,36,8,137,232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,
293 233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,
294 131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,
295 233,244,4,248,116,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,
296 130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,
297 253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255,221,66,8,219,92,
298 36,20,139,68,36,20,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,
299 15,133,244,117,57,131,233,15,130,244,117,15,182,141,233,139,171,233,137,68,
300 36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,
301 244,113,248,118,129,252,248,239,255,15,130,244,55,139,171,233,59,171,233,
302 15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,
303 133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129,197,239,137,
304 116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,
305 1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,113,248,120,
306 129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244,
307 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,255,
308 15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,
309 244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,
310 15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,
311 137,252,240,139,116,36,20,252,233,244,113,248,121,129,252,248,239,15,130,
312 244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,
313 253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119,129,
314 197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,
315 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,
316 252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,
317 36,20,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,
318 239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242,15,
319 42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,64,255,248,123,129, 319 42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,64,255,248,123,129,
320 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 320 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
321 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126, 321 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
@@ -413,259 +413,258 @@ static const unsigned char build_actionlist[15189] = {
413 41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,143, 413 41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,143,
414 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137, 414 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,
415 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131, 415 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,
416 233,137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242, 416 233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208,
417 15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101, 417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242,
418 192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242, 418 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,
419 15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84, 419 233,137,171,233,137,149,233,141,84,36,16,141,139,233,232,251,1,23,139,141,
420 36,16,141,139,233,232,251,1,23,139,141,233,129,225,239,137,204,137,108,36, 420 233,129,225,239,137,204,137,108,36,48,133,192,15,133,244,247,139,149,233,
421 48,133,192,15,133,244,247,255,139,149,233,139,116,36,24,255,248,144,255,139, 421 139,116,36,24,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,
422 122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139, 422 131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,
423 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,1,137,252, 423 232,16,252,255,36,171,248,1,137,252,233,137,194,232,251,1,24,255,248,82,255,
424 233,137,194,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184, 424 217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,
425 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 425 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,
426 252,252,217,108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15, 426 248,145,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,
427 118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15, 427 102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,
428 40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15, 428 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
429 88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208, 429 184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,193,1,
430 102,15,112,210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15, 430 102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,
431 40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68, 431 4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,
432 36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217, 432 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,102,
433 108,36,4,139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102, 433 15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,
434 15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102, 434 102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
435 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252, 435 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,
436 242,15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112, 436 191,102,15,110,208,102,15,112,210,81,252,242,15,194,193,6,102,15,84,194,252,
437 210,81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248, 437 242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,
438 1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102, 438 184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
439 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248, 439 36,4,139,68,36,8,195,255,248,147,102,15,252,239,210,102,15,118,210,102,15,
440 147,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 440 115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,
441 15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134, 441 84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,
442 244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0, 442 203,252,242,15,92,203,184,0,0,252,240,63,102,15,110,216,102,15,112,219,81,
443 0,252,240,63,102,15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15, 443 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,
444 84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15, 444 193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,102,15,252,239,210,
445 40,232,252,242,15,94,193,102,15,252,239,210,102,15,118,210,102,15,115,210, 445 102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,
446 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,224,102,15,84,226, 446 81,15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,
447 102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92, 447 242,15,88,227,252,242,15,92,227,102,15,86,226,184,0,0,252,240,63,102,15,110,
448 227,102,15,86,226,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252, 448 208,102,15,112,210,81,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,
449 242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89, 449 15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,
450 204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92, 450 15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,
451 193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102, 451 184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,
452 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 452 6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,234,
453 222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36, 453 222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,
454 4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15, 454 36,4,0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,
455 132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217, 455 217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,
456 232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255, 456 216,217,252,238,195,255,248,107,219,84,36,4,219,68,36,4,255,223,252,233,255,
457 248,107,219,84,36,4,219,68,36,4,255,223,252,233,255,221,252,233,223,224,158, 457 221,252,233,223,224,158,255,15,133,244,254,15,138,244,255,221,216,139,68,
458 255,15,133,244,254,15,138,244,255,221,216,139,68,36,4,131,252,248,1,15,142, 458 36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,
459 244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233,244,1,248, 459 209,232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216,200,
460 2,209,232,15,132,244,251,217,192,248,3,216,200,209,232,15,132,244,250,15, 460 209,232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,4,255,222,201,
461 131,244,3,220,201,252,233,244,3,248,4,255,222,201,248,5,195,248,6,15,132, 461 248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252,247,216,
462 244,5,15,130,244,253,217,232,222,252,241,252,247,216,131,252,248,1,15,132, 462 131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,195,248,8,
463 244,5,252,233,244,1,248,7,221,216,217,232,195,248,8,217,84,36,4,217,201,217, 463 217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,61,0,0,0,252,255,15,132,
464 84,36,8,139,68,36,4,209,224,61,0,0,0,252,255,15,132,244,248,139,68,36,8,209, 464 244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,
465 224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,217,252,241,252,233,244, 465 217,252,241,252,233,244,150,248,9,255,217,232,255,223,252,234,255,221,252,
466 150,248,9,255,217,232,255,223,252,234,255,221,252,234,223,224,158,255,15, 466 234,223,224,158,255,15,132,244,247,217,201,248,1,221,216,195,248,2,217,225,
467 132,244,247,217,201,248,1,221,216,195,248,2,217,225,217,232,255,15,132,244, 467 217,232,255,15,132,244,249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,
468 249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4, 468 208,209,200,51,68,36,4,15,137,244,249,217,201,248,3,221,217,217,225,195,248,
469 15,137,244,249,217,201,248,3,221,217,217,225,195,248,4,131,124,36,4,0,15, 469 4,131,124,36,4,0,15,141,244,3,221,216,221,216,133,192,15,132,244,251,217,
470 141,244,3,221,216,221,216,133,192,15,132,244,251,217,252,238,195,248,5,199, 470 252,238,195,248,5,199,68,36,4,0,0,128,127,217,68,36,4,195,255,248,107,255,
471 68,36,4,0,0,128,127,217,68,36,4,195,255,248,107,255,248,151,252,242,15,45, 471 248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,
472 193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152, 472 15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,
473 131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15, 473 133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,
474 89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3, 474 244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,
475 252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200, 475 3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,
476 252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130, 476 6,15,132,244,5,15,130,244,253,80,184,0,0,252,240,63,102,15,110,200,102,15,
477 244,253,80,184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15, 477 112,201,81,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,
478 94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1, 478 244,5,252,233,244,1,248,7,184,0,0,252,240,63,102,15,110,192,102,15,112,192,
479 248,7,184,0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242, 479 81,195,248,8,252,242,15,17,76,36,12,252,242,15,17,68,36,4,131,124,36,12,0,
480 15,17,76,36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68, 480 15,133,244,247,139,68,36,16,209,224,61,0,0,224,252,255,15,132,244,248,248,
481 36,16,209,224,61,0,0,224,252,255,15,132,244,248,248,1,255,131,124,36,4,0, 481 1,255,131,124,36,4,0,15,133,244,247,139,68,36,8,209,224,15,132,244,250,61,
482 15,133,244,247,139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132, 482 0,0,224,252,255,15,132,244,251,248,1,221,68,36,12,221,68,36,4,217,252,241,
483 244,251,248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220, 483 217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,
484 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36, 484 253,221,217,221,92,36,4,252,242,15,16,68,36,4,195,248,9,184,0,0,252,240,63,
485 4,252,242,15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15, 485 102,15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,247,15,40,193,248,
486 112,210,81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15, 486 1,195,248,2,102,15,252,239,210,102,15,118,210,102,15,115,210,1,102,15,84,
487 252,239,210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240, 487 194,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,46,194,15,
488 63,102,15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80, 488 132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,
489 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240, 489 248,3,184,0,0,252,240,127,102,15,110,192,102,15,112,192,81,195,248,4,102,
490 127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133, 490 15,80,193,133,192,15,133,244,3,255,15,87,192,195,248,5,102,15,80,193,133,
491 244,3,255,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192, 491 192,15,132,244,3,15,87,192,195,248,153,255,139,68,36,12,252,242,15,16,68,
492 195,248,153,255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244, 492 36,4,131,252,248,1,15,132,244,247,15,135,244,248,232,244,82,252,233,244,253,
493 247,15,135,244,248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244, 493 248,1,232,244,84,252,233,244,253,248,2,131,252,248,3,15,132,244,247,15,135,
494 253,248,2,131,252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252, 494 244,248,232,244,104,255,252,233,244,253,248,1,252,242,15,81,192,248,7,252,
495 233,244,253,248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36, 495 242,15,17,68,36,4,221,68,36,4,195,248,2,221,68,36,4,131,252,248,5,15,130,
496 4,195,248,2,221,68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2, 496 244,88,15,132,244,149,248,2,131,252,248,7,15,132,244,247,15,135,244,248,217,
497 131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241, 497 252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,
498 195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244, 498 2,131,252,248,9,15,132,244,247,15,135,244,248,255,217,252,236,217,201,217,
499 247,15,135,244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252, 499 252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,
500 254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195, 500 135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,139,68,36,12,
501 248,1,217,252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1, 501 221,68,36,4,131,252,248,1,15,130,244,82,15,132,244,84,131,252,248,3,15,130,
502 15,130,244,82,15,132,244,84,131,252,248,3,15,130,244,104,15,135,244,248,217, 502 244,104,15,135,244,248,217,252,250,195,248,2,131,252,248,5,15,130,244,88,
503 252,250,195,248,2,131,252,248,5,15,130,244,88,15,132,244,149,131,252,248, 503 15,132,244,149,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,
504 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1, 504 201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,
505 217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15, 505 9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,
506 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248, 506 1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,
507 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217, 507 252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,139,68,
508 252,242,221,216,195,255,248,9,204,248,154,255,139,68,36,20,252,242,15,16, 508 36,20,252,242,15,16,68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244,
509 68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248, 509 247,15,135,244,248,252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,
510 252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242, 510 4,195,248,1,252,242,15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244,
511 15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 511 247,15,135,244,248,252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193,
512 252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248, 512 252,233,244,7,248,2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244,
513 2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244, 513 148,252,233,244,7,248,1,90,232,244,107,82,252,233,244,7,248,2,131,252,248,
514 7,248,1,90,232,244,107,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247, 514 7,15,132,244,247,15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201,
515 15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252, 515 81,15,87,193,252,233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15,
516 233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84, 516 115,209,1,15,84,193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248,
517 193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221, 517 221,68,36,4,221,68,36,12,15,132,244,247,217,252,243,195,248,1,217,201,217,
518 68,36,12,15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217, 518 252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,252,
519 195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193, 519 242,15,93,193,252,233,244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,
520 252,233,244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68, 520 255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,
521 36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248, 521 135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,
522 222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135, 522 244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,
523 244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244, 523 5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,
524 148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216, 524 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,
525 217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247, 525 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,
526 15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248, 526 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,
527 2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221, 527 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,
528 217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246, 528 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,
529 196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252, 529 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155,
530 246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155,156,90,137, 530 156,90,137,209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,
531 209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68, 531 247,139,68,36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,
532 36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248, 532 12,91,95,248,1,195,255,249,255,129,124,253,202,4,239,15,135,244,41,129,124,
533 1,195,255,249,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239, 533 253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,
534 15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4, 534 202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,
535 202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158, 535 233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,
536 255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180, 536 252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,
537 253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 537 232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,15,135,
538 36,171,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124, 538 244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,
539 253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255, 539 15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,
540 221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248, 540 15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,
541 15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255, 541 233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,
542 248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4, 542 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,
543 15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15, 543 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,
544 132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244, 544 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,
545 2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252, 545 0,0,255,252,233,244,45,255,252,247,208,131,198,4,129,124,253,202,4,239,15,
546 233,244,45,255,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248, 546 133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,
547 139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255, 547 244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,
548 252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208, 548 252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,
549 131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15, 549 239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,
550 131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255, 550 44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,
551 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, 551 182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,
552 198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4, 552 108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
553 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 553 255,36,171,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,
554 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182, 554 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,
555 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4, 555 253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,
556 239,15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102, 556 110,200,102,15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,
557 15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28, 557 224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,
558 202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252, 558 87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,
559 242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28, 559 1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
560 202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 560 36,171,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,
561 2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255, 561 1,18,255,252,242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,
562 252,242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182, 562 255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,
563 78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252, 563 124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,
564 234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255, 564 88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,
565 221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252, 565 244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,
566 242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129, 566 4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,
567 124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255, 567 15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,
568 252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255, 568 234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,
569 252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199, 569 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,
570 255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252, 570 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,
571 234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220, 571 4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,
572 36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234, 572 221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,
573 220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199, 573 255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,
574 220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4, 574 194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,
575 252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221, 575 4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,
576 4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255, 576 4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,
577 221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194, 577 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,
578 255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12, 578 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,
579 199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12, 579 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,
580 252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15, 580 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,
581 16,12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233, 581 148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182,192,141,
582 244,156,255,232,244,107,255,15,182,252,236,15,182,192,141,12,194,41,232,137, 582 12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,
583 76,36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36, 583 149,233,137,116,36,24,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,
584 24,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182, 584 110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,
585 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,
586 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,
587 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,
588 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,
589 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
590 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,
591 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,
592 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
593 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,
594 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,
595 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 585 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
596 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139, 586 171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,
597 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235, 587 15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,
598 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 588 42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,
599 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 589 4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,
600 235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233, 590 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
601 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 591 141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,
602 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 592 57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
603 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129, 593 255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,
604 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233, 594 109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
605 232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15, 595 16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,
606 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 596 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,
607 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65, 597 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
608 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141, 598 232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,
609 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141, 599 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,
610 20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182, 600 234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,
611 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139, 601 12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,
612 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116, 602 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
613 36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237, 603 2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,
614 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137,197, 604 194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,
615 37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137, 605 255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,
616 108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59, 606 17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,
617 131,233,137,149,233,15,131,244,251,248,1,232,251,1,29,139,149,233,15,182, 607 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
618 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198, 608 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,
619 4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252, 609 149,233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,
620 233,232,251,1,30,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233, 610 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,
621 137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137, 611 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,
622 252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4, 612 233,137,116,36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,
623 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3, 613 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
624 137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,244,2,255, 614 171,255,137,197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,
625 252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,252, 615 249,248,2,137,108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,
626 247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182, 616 137,44,36,59,131,233,137,149,233,15,131,244,251,248,1,232,251,1,29,139,149,
627 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234, 617 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
628 129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45, 618 232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,
629 192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255, 619 5,137,252,233,232,251,1,30,252,233,244,1,255,252,247,208,139,108,36,48,139,
630 15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4, 620 139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,
631 239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15, 621 135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,
632 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233, 622 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
633 0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252, 623 171,248,3,137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,
634 253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194, 624 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,
635 252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124, 625 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
636 253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136, 626 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,
637 233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233, 627 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
638 15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41, 628 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,
639 139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131, 629 4,36,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
640 198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,244, 630 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
641 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132, 631 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,
642 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236, 632 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,
643 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133, 633 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
644 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248, 634 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,
645 1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131, 635 124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,
646 198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141, 636 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,
647 233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124, 637 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,
648 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135, 638 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,
649 244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129, 639 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,
650 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, 640 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
651 2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131, 641 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,
652 198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141, 642 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,
653 233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1, 643 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
654 248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7, 644 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,
655 128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252, 645 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,
656 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253, 646 141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,
657 252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233, 647 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,
658 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251, 648 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,
659 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252, 649 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
660 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139, 650 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
661 4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 651 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
662 255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,252, 652 139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,
663 246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,233, 653 244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,
664 133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233, 654 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,
665 235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68, 655 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
666 36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116, 656 253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,
667 36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7, 657 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,
668 128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15, 658 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,
659 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,
660 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
661 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,
662 252,246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,
663 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
664 233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,
665 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,
666 116,36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,
667 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
669 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252, 668 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,
670 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132, 669 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,
671 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139, 670 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
@@ -1142,405 +1141,404 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1142 } else { 1141 } else {
1143 dasm_put(Dst, 1769); 1142 dasm_put(Dst, 1769);
1144 } 1143 }
1145 dasm_put(Dst, 1778, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1144 dasm_put(Dst, 1778, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB);
1146 dasm_put(Dst, 1866, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1145 dasm_put(Dst, 1861, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1147 dasm_put(Dst, 1921, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1146 dasm_put(Dst, 1919, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1);
1148 dasm_put(Dst, 1989, 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)); 1147 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));
1149 dasm_put(Dst, 2058, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1148 dasm_put(Dst, 2054, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1150 if (sse) { 1149 if (sse) {
1151 dasm_put(Dst, 2145); 1150 dasm_put(Dst, 2147);
1152 } else { 1151 } else {
1153 dasm_put(Dst, 2155); 1152 dasm_put(Dst, 2157);
1154 } 1153 }
1155 dasm_put(Dst, 2162, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1154 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));
1156 dasm_put(Dst, 2228, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1155 dasm_put(Dst, 2230, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1157 dasm_put(Dst, 2295, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1156 dasm_put(Dst, 2297, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1158 dasm_put(Dst, 2406, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1157 dasm_put(Dst, 2408, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1159 if (sse) { 1158 if (sse) {
1160 dasm_put(Dst, 2469); 1159 dasm_put(Dst, 2471);
1161 } else { 1160 } else {
1162 dasm_put(Dst, 2508); 1161 dasm_put(Dst, 2510);
1163 } 1162 }
1164 dasm_put(Dst, 2526, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1163 dasm_put(Dst, 2528, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1165 dasm_put(Dst, 2607, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1164 dasm_put(Dst, 2609, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1166 if (sse) { 1165 if (sse) {
1167 dasm_put(Dst, 2645); 1166 dasm_put(Dst, 2647);
1168 } else { 1167 } else {
1169 dasm_put(Dst, 2655); 1168 dasm_put(Dst, 2657);
1170 } 1169 }
1171 dasm_put(Dst, 2662, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1170 dasm_put(Dst, 2664, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1172 dasm_put(Dst, 2726, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1171 dasm_put(Dst, 2728, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1173 dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1172 dasm_put(Dst, 2816, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1174 dasm_put(Dst, 2915, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1173 dasm_put(Dst, 2917, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1175 dasm_put(Dst, 3029, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1174 dasm_put(Dst, 3031, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1176 dasm_put(Dst, 3124, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1175 dasm_put(Dst, 3126, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1177 dasm_put(Dst, 3190, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1176 dasm_put(Dst, 3192, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1178 dasm_put(Dst, 3291, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1177 dasm_put(Dst, 3293, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1179 dasm_put(Dst, 3401, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1178 dasm_put(Dst, 3403, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1180 if (sse) { 1179 if (sse) {
1181 dasm_put(Dst, 3427, 1+1, LJ_TISNUM); 1180 dasm_put(Dst, 3429, 1+1, LJ_TISNUM);
1182 } else { 1181 } else {
1183 dasm_put(Dst, 3496, 1+1, LJ_TISNUM); 1182 dasm_put(Dst, 3498, 1+1, LJ_TISNUM);
1184 } 1183 }
1185 dasm_put(Dst, 3532, 1+1, FRAME_TYPE, LJ_TNIL); 1184 dasm_put(Dst, 3534, 1+1, FRAME_TYPE, LJ_TNIL);
1186 if (sse) { 1185 if (sse) {
1187 dasm_put(Dst, 3622, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1186 dasm_put(Dst, 3624, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1188 dasm_put(Dst, 3684, 1+1, LJ_TISNUM); 1187 dasm_put(Dst, 3686, 1+1, LJ_TISNUM);
1189 } else { 1188 } else {
1190 dasm_put(Dst, 3714, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1189 dasm_put(Dst, 3716, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1191 dasm_put(Dst, 3773, 1+1, LJ_TISNUM); 1190 dasm_put(Dst, 3775, 1+1, LJ_TISNUM);
1192 } 1191 }
1193 dasm_put(Dst, 3800, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1192 dasm_put(Dst, 3802, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1194 dasm_put(Dst, 3869, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1193 dasm_put(Dst, 3871, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1195 dasm_put(Dst, 3926, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1194 dasm_put(Dst, 3928, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1196 dasm_put(Dst, 3989, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1195 dasm_put(Dst, 3991, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1197 dasm_put(Dst, 4079); 1196 dasm_put(Dst, 4081);
1198 if (sse) { 1197 if (sse) {
1199 dasm_put(Dst, 4091, 1+1, LJ_TISNUM); 1198 dasm_put(Dst, 4093, 1+1, LJ_TISNUM);
1200 } else { 1199 } else {
1201 dasm_put(Dst, 4122, 1+1, LJ_TISNUM); 1200 dasm_put(Dst, 4124, 1+1, LJ_TISNUM);
1202 } 1201 }
1203 dasm_put(Dst, 4147); 1202 dasm_put(Dst, 4149);
1204 if (sse) { 1203 if (sse) {
1205 dasm_put(Dst, 4161, 1+1, LJ_TISNUM); 1204 dasm_put(Dst, 4163, 1+1, LJ_TISNUM);
1206 } else { 1205 } else {
1207 dasm_put(Dst, 4192, 1+1, LJ_TISNUM); 1206 dasm_put(Dst, 4194, 1+1, LJ_TISNUM);
1208 } 1207 }
1209 dasm_put(Dst, 4217); 1208 dasm_put(Dst, 4219);
1210 if (sse) { 1209 if (sse) {
1211 dasm_put(Dst, 4231, 1+1, LJ_TISNUM); 1210 dasm_put(Dst, 4233, 1+1, LJ_TISNUM);
1212 } else { 1211 } else {
1213 dasm_put(Dst, 4262, 1+1, LJ_TISNUM); 1212 dasm_put(Dst, 4264, 1+1, LJ_TISNUM);
1214 } 1213 }
1215 dasm_put(Dst, 4287); 1214 dasm_put(Dst, 4289);
1216 if (sse) { 1215 if (sse) {
1217 dasm_put(Dst, 4303, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1216 dasm_put(Dst, 4305, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1218 } else { 1217 } else {
1219 dasm_put(Dst, 4342, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1218 dasm_put(Dst, 4344, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1220 } 1219 }
1221 dasm_put(Dst, 4375, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1220 dasm_put(Dst, 4377, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1222 dasm_put(Dst, 4440, 1+1, LJ_TISNUM); 1221 dasm_put(Dst, 4442, 1+1, LJ_TISNUM);
1223 if (sse) { 1222 if (sse) {
1224 dasm_put(Dst, 4539); 1223 dasm_put(Dst, 4541);
1225 } else { 1224 } else {
1226 dasm_put(Dst, 4545); 1225 dasm_put(Dst, 4547);
1227 } 1226 }
1228 dasm_put(Dst, 4554); 1227 dasm_put(Dst, 4556);
1229 if (sse) { 1228 if (sse) {
1230 dasm_put(Dst, 4579); 1229 dasm_put(Dst, 4581);
1231 } else { 1230 } else {
1232 dasm_put(Dst, 4585); 1231 dasm_put(Dst, 4587);
1233 } 1232 }
1234 dasm_put(Dst, 4588, 1+2); 1233 dasm_put(Dst, 4590, 1+2);
1235 if (sse) { 1234 if (sse) {
1236 dasm_put(Dst, 4597); 1235 dasm_put(Dst, 4599);
1237 } else { 1236 } else {
1238 dasm_put(Dst, 4605); 1237 dasm_put(Dst, 4607);
1239 } 1238 }
1240 dasm_put(Dst, 4613); 1239 dasm_put(Dst, 4615);
1241 if (sse) { 1240 if (sse) {
1242 dasm_put(Dst, 4616); 1241 dasm_put(Dst, 4618);
1243 } else { 1242 } else {
1244 dasm_put(Dst, 4648); 1243 dasm_put(Dst, 4650);
1245 } 1244 }
1246 dasm_put(Dst, 4667); 1245 dasm_put(Dst, 4669);
1247 if (sse) { 1246 if (sse) {
1248 dasm_put(Dst, 4683, 1+1, LJ_TISNUM); 1247 dasm_put(Dst, 4685, 1+1, LJ_TISNUM);
1249 } else { 1248 } else {
1250 dasm_put(Dst, 4708, 1+1, LJ_TISNUM); 1249 dasm_put(Dst, 4710, 1+1, LJ_TISNUM);
1251 } 1250 }
1252 dasm_put(Dst, 4730); 1251 dasm_put(Dst, 4732);
1253 if (sse) { 1252 if (sse) {
1254 dasm_put(Dst, 4752); 1253 dasm_put(Dst, 4754);
1255 } else { 1254 } else {
1256 dasm_put(Dst, 4778); 1255 dasm_put(Dst, 4780);
1257 } 1256 }
1258 dasm_put(Dst, 4795, 1+2); 1257 dasm_put(Dst, 4797, 1+2);
1259 if (sse) { 1258 if (sse) {
1260 dasm_put(Dst, 4835); 1259 dasm_put(Dst, 4837);
1261 } else { 1260 } else {
1262 dasm_put(Dst, 4843); 1261 dasm_put(Dst, 4845);
1263 } 1262 }
1264 dasm_put(Dst, 4853, 2+1, LJ_TISNUM, LJ_TISNUM); 1263 dasm_put(Dst, 4855, 2+1, LJ_TISNUM, LJ_TISNUM);
1265 if (sse) { 1264 if (sse) {
1266 dasm_put(Dst, 4905, 1+1, LJ_TISNUM, LJ_TISNUM); 1265 dasm_put(Dst, 4907, 1+1, LJ_TISNUM, LJ_TISNUM);
1267 } else { 1266 } else {
1268 dasm_put(Dst, 4952, 2+1, LJ_TISNUM, LJ_TISNUM); 1267 dasm_put(Dst, 4954, 2+1, LJ_TISNUM, LJ_TISNUM);
1269 } 1268 }
1270 if (sse) { 1269 if (sse) {
1271 dasm_put(Dst, 4993, 1+1, LJ_TISNUM, LJ_TISNUM); 1270 dasm_put(Dst, 4995, 1+1, LJ_TISNUM, LJ_TISNUM);
1272 } else { 1271 } else {
1273 dasm_put(Dst, 5064, 1+1, LJ_TISNUM, LJ_TISNUM); 1272 dasm_put(Dst, 5066, 1+1, LJ_TISNUM, LJ_TISNUM);
1274 if (cmov) { 1273 if (cmov) {
1275 dasm_put(Dst, 5117); 1274 dasm_put(Dst, 5119);
1276 } else { 1275 } else {
1277 dasm_put(Dst, 5125); 1276 dasm_put(Dst, 5127);
1278 } 1277 }
1279 dasm_put(Dst, 5056); 1278 dasm_put(Dst, 5058);
1280 } 1279 }
1281 if (sse) { 1280 if (sse) {
1282 dasm_put(Dst, 5146, 1+1, LJ_TISNUM, LJ_TISNUM); 1281 dasm_put(Dst, 5148, 1+1, LJ_TISNUM, LJ_TISNUM);
1283 } else { 1282 } else {
1284 dasm_put(Dst, 5217, 1+1, LJ_TISNUM, LJ_TISNUM); 1283 dasm_put(Dst, 5219, 1+1, LJ_TISNUM, LJ_TISNUM);
1285 if (cmov) { 1284 if (cmov) {
1286 dasm_put(Dst, 5270); 1285 dasm_put(Dst, 5272);
1287 } else { 1286 } else {
1288 dasm_put(Dst, 5278); 1287 dasm_put(Dst, 5280);
1289 } 1288 }
1290 dasm_put(Dst, 5056); 1289 dasm_put(Dst, 5058);
1291 } 1290 }
1292 if (!sse) { 1291 if (!sse) {
1293 dasm_put(Dst, 5299); 1292 dasm_put(Dst, 5301);
1294 } 1293 }
1295 dasm_put(Dst, 5308, 1+1, LJ_TSTR); 1294 dasm_put(Dst, 5310, 1+1, LJ_TSTR);
1296 if (sse) { 1295 if (sse) {
1297 dasm_put(Dst, 5330, Dt5(->len)); 1296 dasm_put(Dst, 5332, Dt5(->len));
1298 } else { 1297 } else {
1299 dasm_put(Dst, 5341, Dt5(->len)); 1298 dasm_put(Dst, 5343, Dt5(->len));
1300 } 1299 }
1301 dasm_put(Dst, 5349, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1300 dasm_put(Dst, 5351, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1302 if (sse) { 1301 if (sse) {
1303 dasm_put(Dst, 5387); 1302 dasm_put(Dst, 5389);
1304 } else { 1303 } else {
1305 dasm_put(Dst, 5397); 1304 dasm_put(Dst, 5399);
1306 } 1305 }
1307 dasm_put(Dst, 5410, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1306 dasm_put(Dst, 5412, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1308 if (sse) { 1307 if (sse) {
1309 dasm_put(Dst, 5445); 1308 dasm_put(Dst, 5447);
1310 } else { 1309 } else {
1311 dasm_put(Dst, 5465); 1310 dasm_put(Dst, 5467);
1312 } 1311 }
1313 dasm_put(Dst, 5485, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1312 dasm_put(Dst, 5487, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1314 dasm_put(Dst, 2140); 1313 dasm_put(Dst, 2142);
1315 if (sse) { 1314 if (sse) {
1316 dasm_put(Dst, 5588); 1315 dasm_put(Dst, 5590);
1317 } else { 1316 } else {
1318 dasm_put(Dst, 5599); 1317 dasm_put(Dst, 5601);
1319 } 1318 }
1320 dasm_put(Dst, 5607, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1319 dasm_put(Dst, 5609, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1321 if (sse) { 1320 if (sse) {
1322 dasm_put(Dst, 5637); 1321 dasm_put(Dst, 5639);
1323 } else { 1322 } else {
1324 dasm_put(Dst, 5644); 1323 dasm_put(Dst, 5646);
1325 } 1324 }
1326 dasm_put(Dst, 5656, sizeof(GCstr)-1); 1325 dasm_put(Dst, 5658, sizeof(GCstr)-1);
1327 dasm_put(Dst, 5731, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1326 dasm_put(Dst, 5733, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1328 dasm_put(Dst, 5790, LJ_TSTR, LJ_TISNUM); 1327 dasm_put(Dst, 5792, LJ_TSTR, LJ_TISNUM);
1329 if (sse) { 1328 if (sse) {
1330 dasm_put(Dst, 5811); 1329 dasm_put(Dst, 5813);
1331 } else { 1330 } else {
1332 dasm_put(Dst, 5818); 1331 dasm_put(Dst, 5820);
1333 } 1332 }
1334 dasm_put(Dst, 5830, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1333 dasm_put(Dst, 5832, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1335 dasm_put(Dst, 5895, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1334 dasm_put(Dst, 5897, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1336 dasm_put(Dst, 5958, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1335 dasm_put(Dst, 5960, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1337 dasm_put(Dst, 6029, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1336 dasm_put(Dst, 6031, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1338 dasm_put(Dst, 6114, 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, 6116, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1339 dasm_put(Dst, 6184, 1+1, LJ_TTAB); 1338 dasm_put(Dst, 6186, 1+1, LJ_TTAB);
1340 if (sse) { 1339 if (sse) {
1341 dasm_put(Dst, 6252); 1340 dasm_put(Dst, 6254);
1342 } else { 1341 } else {
1343 dasm_put(Dst, 6262); 1342 dasm_put(Dst, 6264);
1344 } 1343 }
1345 if (sse) { 1344 if (sse) {
1346 dasm_put(Dst, 6273, 1+1, LJ_TISNUM); 1345 dasm_put(Dst, 6275, 1+1, LJ_TISNUM);
1347 } else { 1346 } else {
1348 dasm_put(Dst, 6330, 1+1, LJ_TISNUM); 1347 dasm_put(Dst, 6332, 1+1, LJ_TISNUM);
1349 } 1348 }
1350 if (sse) { 1349 if (sse) {
1351 dasm_put(Dst, 6374, 1+1, LJ_TISNUM); 1350 dasm_put(Dst, 6376, 1+1, LJ_TISNUM);
1352 } else { 1351 } else {
1353 dasm_put(Dst, 6422, 1+1, LJ_TISNUM); 1352 dasm_put(Dst, 6424, 1+1, LJ_TISNUM);
1354 } 1353 }
1355 dasm_put(Dst, 6462, LJ_TISNUM); 1354 dasm_put(Dst, 6464, LJ_TISNUM);
1356 if (sse) { 1355 if (sse) {
1357 dasm_put(Dst, 6489); 1356 dasm_put(Dst, 6491);
1358 } else { 1357 } else {
1359 dasm_put(Dst, 6506); 1358 dasm_put(Dst, 6508);
1360 } 1359 }
1361 dasm_put(Dst, 6519); 1360 dasm_put(Dst, 6521);
1362 if (sse) { 1361 if (sse) {
1363 dasm_put(Dst, 6527, 1+1, LJ_TISNUM); 1362 dasm_put(Dst, 6529, 1+1, LJ_TISNUM);
1364 } else { 1363 } else {
1365 dasm_put(Dst, 6575, 1+1, LJ_TISNUM); 1364 dasm_put(Dst, 6577, 1+1, LJ_TISNUM);
1366 } 1365 }
1367 dasm_put(Dst, 6462, LJ_TISNUM); 1366 dasm_put(Dst, 6464, LJ_TISNUM);
1368 if (sse) { 1367 if (sse) {
1369 dasm_put(Dst, 6615); 1368 dasm_put(Dst, 6617);
1370 } else { 1369 } else {
1371 dasm_put(Dst, 6632); 1370 dasm_put(Dst, 6634);
1372 } 1371 }
1373 dasm_put(Dst, 6519); 1372 dasm_put(Dst, 6521);
1374 if (sse) { 1373 if (sse) {
1375 dasm_put(Dst, 6645, 1+1, LJ_TISNUM); 1374 dasm_put(Dst, 6647, 1+1, LJ_TISNUM);
1376 } else { 1375 } else {
1377 dasm_put(Dst, 6693, 1+1, LJ_TISNUM); 1376 dasm_put(Dst, 6695, 1+1, LJ_TISNUM);
1378 } 1377 }
1379 dasm_put(Dst, 6462, LJ_TISNUM); 1378 dasm_put(Dst, 6464, LJ_TISNUM);
1380 if (sse) { 1379 if (sse) {
1381 dasm_put(Dst, 6733); 1380 dasm_put(Dst, 6735);
1382 } else { 1381 } else {
1383 dasm_put(Dst, 6750); 1382 dasm_put(Dst, 6752);
1384 } 1383 }
1385 dasm_put(Dst, 6519); 1384 dasm_put(Dst, 6521);
1386 if (sse) { 1385 if (sse) {
1387 dasm_put(Dst, 6763, 1+1, LJ_TISNUM); 1386 dasm_put(Dst, 6765, 1+1, LJ_TISNUM);
1388 } else { 1387 } else {
1389 dasm_put(Dst, 6811, 1+1, LJ_TISNUM); 1388 dasm_put(Dst, 6813, 1+1, LJ_TISNUM);
1390 } 1389 }
1391 dasm_put(Dst, 6851); 1390 dasm_put(Dst, 6853);
1392 if (sse) { 1391 if (sse) {
1393 dasm_put(Dst, 6858, 1+1, LJ_TISNUM); 1392 dasm_put(Dst, 6860, 1+1, LJ_TISNUM);
1394 } else { 1393 } else {
1395 dasm_put(Dst, 6906, 1+1, LJ_TISNUM); 1394 dasm_put(Dst, 6908, 1+1, LJ_TISNUM);
1396 } 1395 }
1397 dasm_put(Dst, 6946); 1396 dasm_put(Dst, 6948);
1398 if (sse) { 1397 if (sse) {
1399 dasm_put(Dst, 6950); 1398 dasm_put(Dst, 6952);
1400 } else { 1399 } else {
1401 dasm_put(Dst, 6962); 1400 dasm_put(Dst, 6964);
1402 } 1401 }
1403 dasm_put(Dst, 6975); 1402 dasm_put(Dst, 6977);
1404 if (sse) { 1403 if (sse) {
1405 dasm_put(Dst, 6986, 1+1, LJ_TISNUM, LJ_TISNUM); 1404 dasm_put(Dst, 6988, 1+1, LJ_TISNUM, LJ_TISNUM);
1406 } else { 1405 } else {
1407 dasm_put(Dst, 7060, 2+1, LJ_TISNUM, LJ_TISNUM); 1406 dasm_put(Dst, 7062, 2+1, LJ_TISNUM, LJ_TISNUM);
1408 } 1407 }
1409 dasm_put(Dst, 7126); 1408 dasm_put(Dst, 7128);
1410 if (sse) { 1409 if (sse) {
1411 dasm_put(Dst, 7135, 1+1, LJ_TISNUM, LJ_TISNUM); 1410 dasm_put(Dst, 7137, 1+1, LJ_TISNUM, LJ_TISNUM);
1412 } else { 1411 } else {
1413 dasm_put(Dst, 7209, 2+1, LJ_TISNUM, LJ_TISNUM); 1412 dasm_put(Dst, 7211, 2+1, LJ_TISNUM, LJ_TISNUM);
1414 } 1413 }
1415 dasm_put(Dst, 7275); 1414 dasm_put(Dst, 7277);
1416 if (sse) { 1415 if (sse) {
1417 dasm_put(Dst, 7285, 1+1, LJ_TISNUM, LJ_TISNUM); 1416 dasm_put(Dst, 7287, 1+1, LJ_TISNUM, LJ_TISNUM);
1418 } else { 1417 } else {
1419 dasm_put(Dst, 7359, 2+1, LJ_TISNUM, LJ_TISNUM); 1418 dasm_put(Dst, 7361, 2+1, LJ_TISNUM, LJ_TISNUM);
1420 } 1419 }
1421 dasm_put(Dst, 7425); 1420 dasm_put(Dst, 7427);
1422 if (sse) { 1421 if (sse) {
1423 dasm_put(Dst, 7435, 1+1, LJ_TISNUM, LJ_TISNUM); 1422 dasm_put(Dst, 7437, 1+1, LJ_TISNUM, LJ_TISNUM);
1424 } else { 1423 } else {
1425 dasm_put(Dst, 7509, 2+1, LJ_TISNUM, LJ_TISNUM); 1424 dasm_put(Dst, 7511, 2+1, LJ_TISNUM, LJ_TISNUM);
1426 } 1425 }
1427 dasm_put(Dst, 7575); 1426 dasm_put(Dst, 7577);
1428 if (sse) { 1427 if (sse) {
1429 dasm_put(Dst, 7584, 1+1, LJ_TISNUM, LJ_TISNUM); 1428 dasm_put(Dst, 7586, 1+1, LJ_TISNUM, LJ_TISNUM);
1430 } else { 1429 } else {
1431 dasm_put(Dst, 7658, 2+1, LJ_TISNUM, LJ_TISNUM); 1430 dasm_put(Dst, 7660, 2+1, LJ_TISNUM, LJ_TISNUM);
1432 } 1431 }
1433 dasm_put(Dst, 7724, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1432 dasm_put(Dst, 7726, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1434 dasm_put(Dst, 7802, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1433 dasm_put(Dst, 7804, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1435 dasm_put(Dst, 7925, Dt1(->top), Dt1(->base), Dt1(->top)); 1434 dasm_put(Dst, 7927, Dt1(->top), Dt1(->base), Dt1(->top));
1436#if LJ_HASJIT 1435#if LJ_HASJIT
1437 dasm_put(Dst, 7963, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1436 dasm_put(Dst, 7965, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1438#endif 1437#endif
1439 dasm_put(Dst, 7994, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1438 dasm_put(Dst, 7996, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1440 dasm_put(Dst, 8045, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1439 dasm_put(Dst, 8047, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1441#if LJ_HASJIT 1440#if LJ_HASJIT
1442 dasm_put(Dst, 8111, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1441 dasm_put(Dst, 8113, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1443#endif 1442#endif
1444 dasm_put(Dst, 8157); 1443 dasm_put(Dst, 8159);
1445#if LJ_HASJIT 1444#if LJ_HASJIT
1446 dasm_put(Dst, 7989); 1445 dasm_put(Dst, 7991);
1447#endif 1446#endif
1448 dasm_put(Dst, 8164); 1447 dasm_put(Dst, 8166);
1449#if LJ_HASJIT 1448#if LJ_HASJIT
1450 dasm_put(Dst, 8167); 1449 dasm_put(Dst, 8169);
1451#endif 1450#endif
1452 dasm_put(Dst, 8177, Dt1(->base), Dt1(->top)); 1451 dasm_put(Dst, 8179, Dt1(->base), Dt1(->top));
1453#if LJ_HASJIT 1452#if LJ_HASJIT
1454 dasm_put(Dst, 8211); 1453 dasm_put(Dst, 8213);
1455#endif 1454#endif
1456 dasm_put(Dst, 8216, Dt1(->base), Dt1(->top)); 1455 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top));
1457#if LJ_HASJIT 1456#if LJ_HASJIT
1458 dasm_put(Dst, 8245, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK); 1457 dasm_put(Dst, 8247, 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), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, Dt1(->base));
1459 dasm_put(Dst, 8393, Dt1(->base));
1460#endif 1458#endif
1461 dasm_put(Dst, 8401); 1459 dasm_put(Dst, 8391);
1462#if LJ_HASJIT 1460#if LJ_HASJIT
1463 dasm_put(Dst, 8404, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1461 dasm_put(Dst, 8394, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1464#endif 1462#endif
1465 dasm_put(Dst, 8455); 1463 dasm_put(Dst, 8445);
1466 if (!sse) { 1464 if (!sse) {
1467 dasm_put(Dst, 8458); 1465 dasm_put(Dst, 8448);
1468 } 1466 }
1469 dasm_put(Dst, 8503); 1467 dasm_put(Dst, 8493);
1470 if (!sse) { 1468 if (!sse) {
1471 dasm_put(Dst, 8605); 1469 dasm_put(Dst, 8595);
1472 } 1470 }
1473 dasm_put(Dst, 8650); 1471 dasm_put(Dst, 8640);
1474 if (!sse) { 1472 if (!sse) {
1475 dasm_put(Dst, 8752); 1473 dasm_put(Dst, 8742);
1476 } 1474 }
1477 dasm_put(Dst, 8791); 1475 dasm_put(Dst, 8781);
1478 if (sse) { 1476 if (sse) {
1479 dasm_put(Dst, 8896); 1477 dasm_put(Dst, 8886);
1480 } else { 1478 } else {
1481 dasm_put(Dst, 9026); 1479 dasm_put(Dst, 9016);
1482 } 1480 }
1483 dasm_put(Dst, 9073); 1481 dasm_put(Dst, 9063);
1484 if (!sse) { 1482 if (!sse) {
1485 dasm_put(Dst, 9147); 1483 dasm_put(Dst, 9137);
1486 if (cmov) { 1484 if (cmov) {
1487 dasm_put(Dst, 9158); 1485 dasm_put(Dst, 9148);
1488 } else { 1486 } else {
1489 dasm_put(Dst, 9162); 1487 dasm_put(Dst, 9152);
1490 } 1488 }
1491 dasm_put(Dst, 9169); 1489 dasm_put(Dst, 9159);
1492 dasm_put(Dst, 9243); 1490 dasm_put(Dst, 9233);
1493 dasm_put(Dst, 9343); 1491 dasm_put(Dst, 9333);
1494 if (cmov) { 1492 if (cmov) {
1495 dasm_put(Dst, 9346); 1493 dasm_put(Dst, 9336);
1496 } else { 1494 } else {
1497 dasm_put(Dst, 9350); 1495 dasm_put(Dst, 9340);
1498 } 1496 }
1499 dasm_put(Dst, 9357); 1497 dasm_put(Dst, 9347);
1500 if (cmov) { 1498 if (cmov) {
1501 dasm_put(Dst, 9158); 1499 dasm_put(Dst, 9148);
1502 } else { 1500 } else {
1503 dasm_put(Dst, 9162); 1501 dasm_put(Dst, 9152);
1504 } 1502 }
1505 dasm_put(Dst, 9375); 1503 dasm_put(Dst, 9365);
1506 } else { 1504 } else {
1507 dasm_put(Dst, 9454); 1505 dasm_put(Dst, 9444);
1508 } 1506 }
1509 dasm_put(Dst, 9457); 1507 dasm_put(Dst, 9447);
1510 dasm_put(Dst, 9542); 1508 dasm_put(Dst, 9532);
1511 dasm_put(Dst, 9673); 1509 dasm_put(Dst, 9663);
1512 dasm_put(Dst, 9872); 1510 dasm_put(Dst, 9862);
1513 if (sse) { 1511 if (sse) {
1514 dasm_put(Dst, 9895); 1512 dasm_put(Dst, 9885);
1515 dasm_put(Dst, 9952); 1513 dasm_put(Dst, 9942);
1516 dasm_put(Dst, 10043); 1514 dasm_put(Dst, 10033);
1517 } else { 1515 } else {
1518 dasm_put(Dst, 10085); 1516 dasm_put(Dst, 10075);
1519 dasm_put(Dst, 10177); 1517 dasm_put(Dst, 10167);
1520 } 1518 }
1521 dasm_put(Dst, 10223); 1519 dasm_put(Dst, 10213);
1522 if (sse) { 1520 if (sse) {
1523 dasm_put(Dst, 10229); 1521 dasm_put(Dst, 10219);
1524 dasm_put(Dst, 10334); 1522 dasm_put(Dst, 10324);
1525 dasm_put(Dst, 10417); 1523 dasm_put(Dst, 10407);
1526 } else { 1524 } else {
1527 dasm_put(Dst, 10489); 1525 dasm_put(Dst, 10479);
1528 dasm_put(Dst, 10572); 1526 dasm_put(Dst, 10562);
1529 if (cmov) { 1527 if (cmov) {
1530 dasm_put(Dst, 10627); 1528 dasm_put(Dst, 10617);
1531 } else { 1529 } else {
1532 dasm_put(Dst, 10646); 1530 dasm_put(Dst, 10636);
1533 } 1531 }
1534 dasm_put(Dst, 10485); 1532 dasm_put(Dst, 10475);
1535 } 1533 }
1536 dasm_put(Dst, 10687); 1534 dasm_put(Dst, 10677);
1537} 1535}
1538 1536
1539/* Generate the code for a single instruction. */ 1537/* Generate the code for a single instruction. */
1540static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1538static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1541{ 1539{
1542 int vk = 0; 1540 int vk = 0;
1543 dasm_put(Dst, 10741, defop); 1541 dasm_put(Dst, 10731, defop);
1544 1542
1545 switch (op) { 1543 switch (op) {
1546 1544
@@ -1549,619 +1547,619 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1549 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1547 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1550 1548
1551 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1549 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1552 dasm_put(Dst, 10743, LJ_TISNUM, LJ_TISNUM); 1550 dasm_put(Dst, 10733, LJ_TISNUM, LJ_TISNUM);
1553 if (sse) { 1551 if (sse) {
1554 dasm_put(Dst, 10764); 1552 dasm_put(Dst, 10754);
1555 } else { 1553 } else {
1556 dasm_put(Dst, 10779); 1554 dasm_put(Dst, 10769);
1557 if (cmov) { 1555 if (cmov) {
1558 dasm_put(Dst, 10789); 1556 dasm_put(Dst, 10779);
1559 } else { 1557 } else {
1560 dasm_put(Dst, 10795); 1558 dasm_put(Dst, 10785);
1561 } 1559 }
1562 } 1560 }
1563 switch (op) { 1561 switch (op) {
1564 case BC_ISLT: 1562 case BC_ISLT:
1565 dasm_put(Dst, 10802); 1563 dasm_put(Dst, 10792);
1566 break; 1564 break;
1567 case BC_ISGE: 1565 case BC_ISGE:
1568 dasm_put(Dst, 10038); 1566 dasm_put(Dst, 10028);
1569 break; 1567 break;
1570 case BC_ISLE: 1568 case BC_ISLE:
1571 dasm_put(Dst, 6179); 1569 dasm_put(Dst, 6181);
1572 break; 1570 break;
1573 case BC_ISGT: 1571 case BC_ISGT:
1574 dasm_put(Dst, 10807); 1572 dasm_put(Dst, 10797);
1575 break; 1573 break;
1576 default: break; /* Shut up GCC. */ 1574 default: break; /* Shut up GCC. */
1577 } 1575 }
1578 dasm_put(Dst, 10812, -BCBIAS_J*4); 1576 dasm_put(Dst, 10802, -BCBIAS_J*4);
1579 break; 1577 break;
1580 1578
1581 case BC_ISEQV: case BC_ISNEV: 1579 case BC_ISEQV: case BC_ISNEV:
1582 vk = op == BC_ISEQV; 1580 vk = op == BC_ISEQV;
1583 dasm_put(Dst, 10845, LJ_TISNUM, LJ_TISNUM); 1581 dasm_put(Dst, 10835, LJ_TISNUM, LJ_TISNUM);
1584 if (sse) { 1582 if (sse) {
1585 dasm_put(Dst, 10871); 1583 dasm_put(Dst, 10861);
1586 } else { 1584 } else {
1587 dasm_put(Dst, 10883); 1585 dasm_put(Dst, 10873);
1588 if (cmov) { 1586 if (cmov) {
1589 dasm_put(Dst, 10789); 1587 dasm_put(Dst, 10779);
1590 } else { 1588 } else {
1591 dasm_put(Dst, 10795); 1589 dasm_put(Dst, 10785);
1592 } 1590 }
1593 } 1591 }
1594 iseqne_fp: 1592 iseqne_fp:
1595 if (vk) { 1593 if (vk) {
1596 dasm_put(Dst, 10890); 1594 dasm_put(Dst, 10880);
1597 } else { 1595 } else {
1598 dasm_put(Dst, 10899); 1596 dasm_put(Dst, 10889);
1599 } 1597 }
1600 iseqne_end: 1598 iseqne_end:
1601 if (vk) { 1599 if (vk) {
1602 dasm_put(Dst, 10908, -BCBIAS_J*4); 1600 dasm_put(Dst, 10898, -BCBIAS_J*4);
1603 } else { 1601 } else {
1604 dasm_put(Dst, 10923, -BCBIAS_J*4); 1602 dasm_put(Dst, 10913, -BCBIAS_J*4);
1605 } 1603 }
1606 dasm_put(Dst, 10826); 1604 dasm_put(Dst, 10816);
1607 if (op == BC_ISEQV || op == BC_ISNEV) { 1605 if (op == BC_ISEQV || op == BC_ISNEV) {
1608 dasm_put(Dst, 10938, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1606 dasm_put(Dst, 10928, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1609 if (vk) { 1607 if (vk) {
1610 dasm_put(Dst, 10996); 1608 dasm_put(Dst, 10986);
1611 } else { 1609 } else {
1612 dasm_put(Dst, 11000); 1610 dasm_put(Dst, 10990);
1613 } 1611 }
1614 dasm_put(Dst, 11006); 1612 dasm_put(Dst, 10996);
1615 } 1613 }
1616 break; 1614 break;
1617 case BC_ISEQS: case BC_ISNES: 1615 case BC_ISEQS: case BC_ISNES:
1618 vk = op == BC_ISEQS; 1616 vk = op == BC_ISEQS;
1619 dasm_put(Dst, 11011, LJ_TSTR); 1617 dasm_put(Dst, 11001, LJ_TSTR);
1620 iseqne_test: 1618 iseqne_test:
1621 if (vk) { 1619 if (vk) {
1622 dasm_put(Dst, 10894); 1620 dasm_put(Dst, 10884);
1623 } else { 1621 } else {
1624 dasm_put(Dst, 2809); 1622 dasm_put(Dst, 2811);
1625 } 1623 }
1626 goto iseqne_end; 1624 goto iseqne_end;
1627 case BC_ISEQN: case BC_ISNEN: 1625 case BC_ISEQN: case BC_ISNEN:
1628 vk = op == BC_ISEQN; 1626 vk = op == BC_ISEQN;
1629 dasm_put(Dst, 11034, LJ_TISNUM); 1627 dasm_put(Dst, 11024, LJ_TISNUM);
1630 if (sse) { 1628 if (sse) {
1631 dasm_put(Dst, 11048); 1629 dasm_put(Dst, 11038);
1632 } else { 1630 } else {
1633 dasm_put(Dst, 11060); 1631 dasm_put(Dst, 11050);
1634 if (cmov) { 1632 if (cmov) {
1635 dasm_put(Dst, 10789); 1633 dasm_put(Dst, 10779);
1636 } else { 1634 } else {
1637 dasm_put(Dst, 10795); 1635 dasm_put(Dst, 10785);
1638 } 1636 }
1639 } 1637 }
1640 goto iseqne_fp; 1638 goto iseqne_fp;
1641 case BC_ISEQP: case BC_ISNEP: 1639 case BC_ISEQP: case BC_ISNEP:
1642 vk = op == BC_ISEQP; 1640 vk = op == BC_ISEQP;
1643 dasm_put(Dst, 11067); 1641 dasm_put(Dst, 11057);
1644 goto iseqne_test; 1642 goto iseqne_test;
1645 1643
1646 /* -- Unary test and copy ops ------------------------------------------- */ 1644 /* -- Unary test and copy ops ------------------------------------------- */
1647 1645
1648 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1646 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1649 dasm_put(Dst, 11078, LJ_TISTRUECOND); 1647 dasm_put(Dst, 11068, LJ_TISTRUECOND);
1650 if (op == BC_IST || op == BC_ISTC) { 1648 if (op == BC_IST || op == BC_ISTC) {
1651 dasm_put(Dst, 11090); 1649 dasm_put(Dst, 11080);
1652 } else { 1650 } else {
1653 dasm_put(Dst, 11095); 1651 dasm_put(Dst, 11085);
1654 } 1652 }
1655 if (op == BC_ISTC || op == BC_ISFC) { 1653 if (op == BC_ISTC || op == BC_ISFC) {
1656 dasm_put(Dst, 11100); 1654 dasm_put(Dst, 11090);
1657 } 1655 }
1658 dasm_put(Dst, 11111, -BCBIAS_J*4); 1656 dasm_put(Dst, 11101, -BCBIAS_J*4);
1659 break; 1657 break;
1660 1658
1661 /* -- Unary ops --------------------------------------------------------- */ 1659 /* -- Unary ops --------------------------------------------------------- */
1662 1660
1663 case BC_MOV: 1661 case BC_MOV:
1664 dasm_put(Dst, 11142); 1662 dasm_put(Dst, 11132);
1665 break; 1663 break;
1666 case BC_NOT: 1664 case BC_NOT:
1667 dasm_put(Dst, 11175, LJ_TISTRUECOND, LJ_TTRUE); 1665 dasm_put(Dst, 11165, LJ_TISTRUECOND, LJ_TTRUE);
1668 break; 1666 break;
1669 case BC_UNM: 1667 case BC_UNM:
1670 dasm_put(Dst, 11210, LJ_TISNUM); 1668 dasm_put(Dst, 11200, LJ_TISNUM);
1671 if (sse) { 1669 if (sse) {
1672 dasm_put(Dst, 11221); 1670 dasm_put(Dst, 11211);
1673 } else { 1671 } else {
1674 dasm_put(Dst, 11251); 1672 dasm_put(Dst, 11241);
1675 } 1673 }
1676 dasm_put(Dst, 10826); 1674 dasm_put(Dst, 10816);
1677 break; 1675 break;
1678 case BC_LEN: 1676 case BC_LEN:
1679 dasm_put(Dst, 11260, LJ_TSTR); 1677 dasm_put(Dst, 11250, LJ_TSTR);
1680 if (sse) { 1678 if (sse) {
1681 dasm_put(Dst, 11274, Dt5(->len)); 1679 dasm_put(Dst, 11264, Dt5(->len));
1682 } else { 1680 } else {
1683 dasm_put(Dst, 11292, Dt5(->len)); 1681 dasm_put(Dst, 11282, Dt5(->len));
1684 } 1682 }
1685 dasm_put(Dst, 11301, LJ_TTAB); 1683 dasm_put(Dst, 11291, LJ_TTAB);
1686 if (sse) { 1684 if (sse) {
1687 dasm_put(Dst, 11341); 1685 dasm_put(Dst, 11331);
1688 } else { 1686 } else {
1689 dasm_put(Dst, 11350); 1687 dasm_put(Dst, 11340);
1690 } 1688 }
1691 dasm_put(Dst, 11360); 1689 dasm_put(Dst, 11350);
1692 break; 1690 break;
1693 1691
1694 /* -- Binary ops -------------------------------------------------------- */ 1692 /* -- Binary ops -------------------------------------------------------- */
1695 1693
1696 1694
1697 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1695 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1698 dasm_put(Dst, 11370); 1696 dasm_put(Dst, 11360);
1699 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1697 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1700 switch (vk) { 1698 switch (vk) {
1701 case 0: 1699 case 0:
1702 dasm_put(Dst, 11378, LJ_TISNUM); 1700 dasm_put(Dst, 11368, LJ_TISNUM);
1703 if (sse) { 1701 if (sse) {
1704 dasm_put(Dst, 11390); 1702 dasm_put(Dst, 11380);
1705 } else { 1703 } else {
1706 dasm_put(Dst, 11404); 1704 dasm_put(Dst, 11394);
1707 } 1705 }
1708 break; 1706 break;
1709 case 1: 1707 case 1:
1710 dasm_put(Dst, 11412, LJ_TISNUM); 1708 dasm_put(Dst, 11402, LJ_TISNUM);
1711 if (sse) { 1709 if (sse) {
1712 dasm_put(Dst, 11424); 1710 dasm_put(Dst, 11414);
1713 } else { 1711 } else {
1714 dasm_put(Dst, 11438); 1712 dasm_put(Dst, 11428);
1715 } 1713 }
1716 break; 1714 break;
1717 default: 1715 default:
1718 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1716 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1719 if (sse) { 1717 if (sse) {
1720 dasm_put(Dst, 11468); 1718 dasm_put(Dst, 11458);
1721 } else { 1719 } else {
1722 dasm_put(Dst, 11482); 1720 dasm_put(Dst, 11472);
1723 } 1721 }
1724 break; 1722 break;
1725 } 1723 }
1726 if (sse) { 1724 if (sse) {
1727 dasm_put(Dst, 11244); 1725 dasm_put(Dst, 11234);
1728 } else { 1726 } else {
1729 dasm_put(Dst, 11256); 1727 dasm_put(Dst, 11246);
1730 } 1728 }
1731 dasm_put(Dst, 10826); 1729 dasm_put(Dst, 10816);
1732 break; 1730 break;
1733 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1731 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1734 dasm_put(Dst, 11370); 1732 dasm_put(Dst, 11360);
1735 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1733 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1736 switch (vk) { 1734 switch (vk) {
1737 case 0: 1735 case 0:
1738 dasm_put(Dst, 11378, LJ_TISNUM); 1736 dasm_put(Dst, 11368, LJ_TISNUM);
1739 if (sse) { 1737 if (sse) {
1740 dasm_put(Dst, 11490); 1738 dasm_put(Dst, 11480);
1741 } else { 1739 } else {
1742 dasm_put(Dst, 11504); 1740 dasm_put(Dst, 11494);
1743 } 1741 }
1744 break; 1742 break;
1745 case 1: 1743 case 1:
1746 dasm_put(Dst, 11412, LJ_TISNUM); 1744 dasm_put(Dst, 11402, LJ_TISNUM);
1747 if (sse) { 1745 if (sse) {
1748 dasm_put(Dst, 11512); 1746 dasm_put(Dst, 11502);
1749 } else { 1747 } else {
1750 dasm_put(Dst, 11526); 1748 dasm_put(Dst, 11516);
1751 } 1749 }
1752 break; 1750 break;
1753 default: 1751 default:
1754 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1752 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1755 if (sse) { 1753 if (sse) {
1756 dasm_put(Dst, 11534); 1754 dasm_put(Dst, 11524);
1757 } else { 1755 } else {
1758 dasm_put(Dst, 11548); 1756 dasm_put(Dst, 11538);
1759 } 1757 }
1760 break; 1758 break;
1761 } 1759 }
1762 if (sse) { 1760 if (sse) {
1763 dasm_put(Dst, 11244); 1761 dasm_put(Dst, 11234);
1764 } else { 1762 } else {
1765 dasm_put(Dst, 11256); 1763 dasm_put(Dst, 11246);
1766 } 1764 }
1767 dasm_put(Dst, 10826); 1765 dasm_put(Dst, 10816);
1768 break; 1766 break;
1769 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1767 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1770 dasm_put(Dst, 11370); 1768 dasm_put(Dst, 11360);
1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1772 switch (vk) { 1770 switch (vk) {
1773 case 0: 1771 case 0:
1774 dasm_put(Dst, 11378, LJ_TISNUM); 1772 dasm_put(Dst, 11368, LJ_TISNUM);
1775 if (sse) { 1773 if (sse) {
1776 dasm_put(Dst, 11556); 1774 dasm_put(Dst, 11546);
1777 } else { 1775 } else {
1778 dasm_put(Dst, 11570); 1776 dasm_put(Dst, 11560);
1779 } 1777 }
1780 break; 1778 break;
1781 case 1: 1779 case 1:
1782 dasm_put(Dst, 11412, LJ_TISNUM); 1780 dasm_put(Dst, 11402, LJ_TISNUM);
1783 if (sse) { 1781 if (sse) {
1784 dasm_put(Dst, 11578); 1782 dasm_put(Dst, 11568);
1785 } else { 1783 } else {
1786 dasm_put(Dst, 11592); 1784 dasm_put(Dst, 11582);
1787 } 1785 }
1788 break; 1786 break;
1789 default: 1787 default:
1790 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1788 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1791 if (sse) { 1789 if (sse) {
1792 dasm_put(Dst, 11600); 1790 dasm_put(Dst, 11590);
1793 } else { 1791 } else {
1794 dasm_put(Dst, 11614); 1792 dasm_put(Dst, 11604);
1795 } 1793 }
1796 break; 1794 break;
1797 } 1795 }
1798 if (sse) { 1796 if (sse) {
1799 dasm_put(Dst, 11244); 1797 dasm_put(Dst, 11234);
1800 } else { 1798 } else {
1801 dasm_put(Dst, 11256); 1799 dasm_put(Dst, 11246);
1802 } 1800 }
1803 dasm_put(Dst, 10826); 1801 dasm_put(Dst, 10816);
1804 break; 1802 break;
1805 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1803 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1806 dasm_put(Dst, 11370); 1804 dasm_put(Dst, 11360);
1807 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1805 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1808 switch (vk) { 1806 switch (vk) {
1809 case 0: 1807 case 0:
1810 dasm_put(Dst, 11378, LJ_TISNUM); 1808 dasm_put(Dst, 11368, LJ_TISNUM);
1811 if (sse) { 1809 if (sse) {
1812 dasm_put(Dst, 11622); 1810 dasm_put(Dst, 11612);
1813 } else { 1811 } else {
1814 dasm_put(Dst, 11636); 1812 dasm_put(Dst, 11626);
1815 } 1813 }
1816 break; 1814 break;
1817 case 1: 1815 case 1:
1818 dasm_put(Dst, 11412, LJ_TISNUM); 1816 dasm_put(Dst, 11402, LJ_TISNUM);
1819 if (sse) { 1817 if (sse) {
1820 dasm_put(Dst, 11644); 1818 dasm_put(Dst, 11634);
1821 } else { 1819 } else {
1822 dasm_put(Dst, 11658); 1820 dasm_put(Dst, 11648);
1823 } 1821 }
1824 break; 1822 break;
1825 default: 1823 default:
1826 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1824 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1827 if (sse) { 1825 if (sse) {
1828 dasm_put(Dst, 11666); 1826 dasm_put(Dst, 11656);
1829 } else { 1827 } else {
1830 dasm_put(Dst, 11680); 1828 dasm_put(Dst, 11670);
1831 } 1829 }
1832 break; 1830 break;
1833 } 1831 }
1834 if (sse) { 1832 if (sse) {
1835 dasm_put(Dst, 11244); 1833 dasm_put(Dst, 11234);
1836 } else { 1834 } else {
1837 dasm_put(Dst, 11256); 1835 dasm_put(Dst, 11246);
1838 } 1836 }
1839 dasm_put(Dst, 10826); 1837 dasm_put(Dst, 10816);
1840 break; 1838 break;
1841 case BC_MODVN: 1839 case BC_MODVN:
1842 dasm_put(Dst, 11370); 1840 dasm_put(Dst, 11360);
1843 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1841 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1844 switch (vk) { 1842 switch (vk) {
1845 case 0: 1843 case 0:
1846 dasm_put(Dst, 11378, LJ_TISNUM); 1844 dasm_put(Dst, 11368, LJ_TISNUM);
1847 if (sse) { 1845 if (sse) {
1848 dasm_put(Dst, 11688); 1846 dasm_put(Dst, 11678);
1849 } else { 1847 } else {
1850 dasm_put(Dst, 11702); 1848 dasm_put(Dst, 11692);
1851 } 1849 }
1852 break; 1850 break;
1853 case 1: 1851 case 1:
1854 dasm_put(Dst, 11412, LJ_TISNUM); 1852 dasm_put(Dst, 11402, LJ_TISNUM);
1855 if (sse) { 1853 if (sse) {
1856 dasm_put(Dst, 11710); 1854 dasm_put(Dst, 11700);
1857 } else { 1855 } else {
1858 dasm_put(Dst, 11724); 1856 dasm_put(Dst, 11714);
1859 } 1857 }
1860 break; 1858 break;
1861 default: 1859 default:
1862 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1860 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1863 if (sse) { 1861 if (sse) {
1864 dasm_put(Dst, 11732); 1862 dasm_put(Dst, 11722);
1865 } else { 1863 } else {
1866 dasm_put(Dst, 11746); 1864 dasm_put(Dst, 11736);
1867 } 1865 }
1868 break; 1866 break;
1869 } 1867 }
1870 dasm_put(Dst, 11754); 1868 dasm_put(Dst, 11744);
1871 if (sse) { 1869 if (sse) {
1872 dasm_put(Dst, 11244); 1870 dasm_put(Dst, 11234);
1873 } else { 1871 } else {
1874 dasm_put(Dst, 11256); 1872 dasm_put(Dst, 11246);
1875 } 1873 }
1876 dasm_put(Dst, 10826); 1874 dasm_put(Dst, 10816);
1877 break; 1875 break;
1878 case BC_MODNV: case BC_MODVV: 1876 case BC_MODNV: case BC_MODVV:
1879 dasm_put(Dst, 11370); 1877 dasm_put(Dst, 11360);
1880 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1878 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1881 switch (vk) { 1879 switch (vk) {
1882 case 0: 1880 case 0:
1883 dasm_put(Dst, 11378, LJ_TISNUM); 1881 dasm_put(Dst, 11368, LJ_TISNUM);
1884 if (sse) { 1882 if (sse) {
1885 dasm_put(Dst, 11688); 1883 dasm_put(Dst, 11678);
1886 } else { 1884 } else {
1887 dasm_put(Dst, 11702); 1885 dasm_put(Dst, 11692);
1888 } 1886 }
1889 break; 1887 break;
1890 case 1: 1888 case 1:
1891 dasm_put(Dst, 11412, LJ_TISNUM); 1889 dasm_put(Dst, 11402, LJ_TISNUM);
1892 if (sse) { 1890 if (sse) {
1893 dasm_put(Dst, 11710); 1891 dasm_put(Dst, 11700);
1894 } else { 1892 } else {
1895 dasm_put(Dst, 11724); 1893 dasm_put(Dst, 11714);
1896 } 1894 }
1897 break; 1895 break;
1898 default: 1896 default:
1899 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1897 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1900 if (sse) { 1898 if (sse) {
1901 dasm_put(Dst, 11732); 1899 dasm_put(Dst, 11722);
1902 } else { 1900 } else {
1903 dasm_put(Dst, 11746); 1901 dasm_put(Dst, 11736);
1904 } 1902 }
1905 break; 1903 break;
1906 } 1904 }
1907 dasm_put(Dst, 11760); 1905 dasm_put(Dst, 11750);
1908 break; 1906 break;
1909 case BC_POW: 1907 case BC_POW:
1910 dasm_put(Dst, 11370); 1908 dasm_put(Dst, 11360);
1911 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1909 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1912 switch (vk) { 1910 switch (vk) {
1913 case 0: 1911 case 0:
1914 dasm_put(Dst, 11378, LJ_TISNUM); 1912 dasm_put(Dst, 11368, LJ_TISNUM);
1915 if (sse) { 1913 if (sse) {
1916 dasm_put(Dst, 11688); 1914 dasm_put(Dst, 11678);
1917 } else { 1915 } else {
1918 dasm_put(Dst, 11702); 1916 dasm_put(Dst, 11692);
1919 } 1917 }
1920 break; 1918 break;
1921 case 1: 1919 case 1:
1922 dasm_put(Dst, 11412, LJ_TISNUM); 1920 dasm_put(Dst, 11402, LJ_TISNUM);
1923 if (sse) { 1921 if (sse) {
1924 dasm_put(Dst, 11710); 1922 dasm_put(Dst, 11700);
1925 } else { 1923 } else {
1926 dasm_put(Dst, 11724); 1924 dasm_put(Dst, 11714);
1927 } 1925 }
1928 break; 1926 break;
1929 default: 1927 default:
1930 dasm_put(Dst, 11446, LJ_TISNUM, LJ_TISNUM); 1928 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM);
1931 if (sse) { 1929 if (sse) {
1932 dasm_put(Dst, 11732); 1930 dasm_put(Dst, 11722);
1933 } else { 1931 } else {
1934 dasm_put(Dst, 11746); 1932 dasm_put(Dst, 11736);
1935 } 1933 }
1936 break; 1934 break;
1937 } 1935 }
1938 dasm_put(Dst, 11765); 1936 dasm_put(Dst, 11755);
1939 if (sse) { 1937 if (sse) {
1940 dasm_put(Dst, 11244); 1938 dasm_put(Dst, 11234);
1941 } else { 1939 } else {
1942 dasm_put(Dst, 11256); 1940 dasm_put(Dst, 11246);
1943 } 1941 }
1944 dasm_put(Dst, 10826); 1942 dasm_put(Dst, 10816);
1945 break; 1943 break;
1946 1944
1947 case BC_CAT: 1945 case BC_CAT:
1948 dasm_put(Dst, 11769, Dt1(->base), Dt1(->base)); 1946 dasm_put(Dst, 11759, Dt1(->base), Dt1(->base));
1949 break; 1947 break;
1950 1948
1951 /* -- Constant ops ------------------------------------------------------ */ 1949 /* -- Constant ops ------------------------------------------------------ */
1952 1950
1953 case BC_KSTR: 1951 case BC_KSTR:
1954 dasm_put(Dst, 11863, LJ_TSTR); 1952 dasm_put(Dst, 11853, LJ_TSTR);
1955 break; 1953 break;
1956 case BC_KSHORT: 1954 case BC_KSHORT:
1957 if (sse) { 1955 if (sse) {
1958 dasm_put(Dst, 11896); 1956 dasm_put(Dst, 11886);
1959 } else { 1957 } else {
1960 dasm_put(Dst, 11911); 1958 dasm_put(Dst, 11901);
1961 } 1959 }
1962 dasm_put(Dst, 10826); 1960 dasm_put(Dst, 10816);
1963 break; 1961 break;
1964 case BC_KNUM: 1962 case BC_KNUM:
1965 if (sse) { 1963 if (sse) {
1966 dasm_put(Dst, 11919); 1964 dasm_put(Dst, 11909);
1967 } else { 1965 } else {
1968 dasm_put(Dst, 11932); 1966 dasm_put(Dst, 11922);
1969 } 1967 }
1970 dasm_put(Dst, 10826); 1968 dasm_put(Dst, 10816);
1971 break; 1969 break;
1972 case BC_KPRI: 1970 case BC_KPRI:
1973 dasm_put(Dst, 11939); 1971 dasm_put(Dst, 11929);
1974 break; 1972 break;
1975 case BC_KNIL: 1973 case BC_KNIL:
1976 dasm_put(Dst, 11965, LJ_TNIL); 1974 dasm_put(Dst, 11955, LJ_TNIL);
1977 break; 1975 break;
1978 1976
1979 /* -- Upvalue and function ops ------------------------------------------ */ 1977 /* -- Upvalue and function ops ------------------------------------------ */
1980 1978
1981 case BC_UGET: 1979 case BC_UGET:
1982 dasm_put(Dst, 12011, offsetof(GCfuncL, uvptr), DtA(->v)); 1980 dasm_put(Dst, 12001, offsetof(GCfuncL, uvptr), DtA(->v));
1983 break; 1981 break;
1984 case BC_USETV: 1982 case BC_USETV:
1985#define TV2MARKOFS \ 1983#define TV2MARKOFS \
1986 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1984 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1987 dasm_put(Dst, 12055, 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); 1985 dasm_put(Dst, 12045, 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);
1988 dasm_put(Dst, 12145); 1986 dasm_put(Dst, 12135);
1989 break; 1987 break;
1990#undef TV2MARKOFS 1988#undef TV2MARKOFS
1991 case BC_USETS: 1989 case BC_USETS:
1992 dasm_put(Dst, 12157, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1990 dasm_put(Dst, 12147, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1993 break; 1991 break;
1994 case BC_USETN: 1992 case BC_USETN:
1995 dasm_put(Dst, 12248); 1993 dasm_put(Dst, 12238);
1996 if (sse) { 1994 if (sse) {
1997 dasm_put(Dst, 12253); 1995 dasm_put(Dst, 12243);
1998 } else { 1996 } else {
1999 dasm_put(Dst, 11063); 1997 dasm_put(Dst, 11053);
2000 } 1998 }
2001 dasm_put(Dst, 12260, offsetof(GCfuncL, uvptr), DtA(->v)); 1999 dasm_put(Dst, 12250, offsetof(GCfuncL, uvptr), DtA(->v));
2002 if (sse) { 2000 if (sse) {
2003 dasm_put(Dst, 12269); 2001 dasm_put(Dst, 12259);
2004 } else { 2002 } else {
2005 dasm_put(Dst, 12275); 2003 dasm_put(Dst, 12265);
2006 } 2004 }
2007 dasm_put(Dst, 10826); 2005 dasm_put(Dst, 10816);
2008 break; 2006 break;
2009 case BC_USETP: 2007 case BC_USETP:
2010 dasm_put(Dst, 12278, offsetof(GCfuncL, uvptr), DtA(->v)); 2008 dasm_put(Dst, 12268, offsetof(GCfuncL, uvptr), DtA(->v));
2011 break; 2009 break;
2012 case BC_UCLO: 2010 case BC_UCLO:
2013 dasm_put(Dst, 12315, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2011 dasm_put(Dst, 12305, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2014 break; 2012 break;
2015 2013
2016 case BC_FNEW: 2014 case BC_FNEW:
2017 dasm_put(Dst, 12369, Dt1(->base), Dt1(->base), LJ_TFUNC); 2015 dasm_put(Dst, 12359, Dt1(->base), Dt1(->base), LJ_TFUNC);
2018 break; 2016 break;
2019 2017
2020 /* -- Table ops --------------------------------------------------------- */ 2018 /* -- Table ops --------------------------------------------------------- */
2021 2019
2022 case BC_TNEW: 2020 case BC_TNEW:
2023 dasm_put(Dst, 12440, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2021 dasm_put(Dst, 12430, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2024 break; 2022 break;
2025 case BC_TDUP: 2023 case BC_TDUP:
2026 dasm_put(Dst, 12561, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2024 dasm_put(Dst, 12551, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2027 break; 2025 break;
2028 2026
2029 case BC_GGET: 2027 case BC_GGET:
2030 dasm_put(Dst, 12653, Dt7(->env)); 2028 dasm_put(Dst, 12643, Dt7(->env));
2031 break; 2029 break;
2032 case BC_GSET: 2030 case BC_GSET:
2033 dasm_put(Dst, 12671, Dt7(->env)); 2031 dasm_put(Dst, 12661, Dt7(->env));
2034 break; 2032 break;
2035 2033
2036 case BC_TGETV: 2034 case BC_TGETV:
2037 dasm_put(Dst, 12689, LJ_TTAB, LJ_TISNUM); 2035 dasm_put(Dst, 12679, LJ_TTAB, LJ_TISNUM);
2038 if (sse) { 2036 if (sse) {
2039 dasm_put(Dst, 12722); 2037 dasm_put(Dst, 12712);
2040 } else { 2038 } else {
2041 dasm_put(Dst, 12743); 2039 dasm_put(Dst, 12733);
2042 if (cmov) { 2040 if (cmov) {
2043 dasm_put(Dst, 10789); 2041 dasm_put(Dst, 10779);
2044 } else { 2042 } else {
2045 dasm_put(Dst, 10795); 2043 dasm_put(Dst, 10785);
2046 } 2044 }
2047 dasm_put(Dst, 2522); 2045 dasm_put(Dst, 2524);
2048 } 2046 }
2049 dasm_put(Dst, 12753, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2047 dasm_put(Dst, 12743, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2050 dasm_put(Dst, 12845, LJ_TSTR); 2048 dasm_put(Dst, 12835, LJ_TSTR);
2051 break; 2049 break;
2052 case BC_TGETS: 2050 case BC_TGETS:
2053 dasm_put(Dst, 12863, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2051 dasm_put(Dst, 12853, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2054 dasm_put(Dst, 12947, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2052 dasm_put(Dst, 12937, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2055 break; 2053 break;
2056 case BC_TGETB: 2054 case BC_TGETB:
2057 dasm_put(Dst, 13018, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2055 dasm_put(Dst, 13008, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2058 dasm_put(Dst, 11360); 2056 dasm_put(Dst, 11350);
2059 break; 2057 break;
2060 2058
2061 case BC_TSETV: 2059 case BC_TSETV:
2062 dasm_put(Dst, 13117, LJ_TTAB, LJ_TISNUM); 2060 dasm_put(Dst, 13107, LJ_TTAB, LJ_TISNUM);
2063 if (sse) { 2061 if (sse) {
2064 dasm_put(Dst, 12722); 2062 dasm_put(Dst, 12712);
2065 } else { 2063 } else {
2066 dasm_put(Dst, 12743); 2064 dasm_put(Dst, 12733);
2067 if (cmov) { 2065 if (cmov) {
2068 dasm_put(Dst, 10789); 2066 dasm_put(Dst, 10779);
2069 } else { 2067 } else {
2070 dasm_put(Dst, 10795); 2068 dasm_put(Dst, 10785);
2071 } 2069 }
2072 dasm_put(Dst, 2522); 2070 dasm_put(Dst, 2524);
2073 } 2071 }
2074 dasm_put(Dst, 13150, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2072 dasm_put(Dst, 13140, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2075 dasm_put(Dst, 13233, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2073 dasm_put(Dst, 13223, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2076 break; 2074 break;
2077 case BC_TSETS: 2075 case BC_TSETS:
2078 dasm_put(Dst, 13295, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2076 dasm_put(Dst, 13285, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2079 dasm_put(Dst, 13370, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2077 dasm_put(Dst, 13360, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2080 dasm_put(Dst, 13462, 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)); 2078 dasm_put(Dst, 13452, 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));
2081 break; 2079 break;
2082 case BC_TSETB: 2080 case BC_TSETB:
2083 dasm_put(Dst, 13558, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2081 dasm_put(Dst, 13548, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2084 dasm_put(Dst, 13656, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2082 dasm_put(Dst, 13646, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2085 break; 2083 break;
2086 2084
2087 case BC_TSETM: 2085 case BC_TSETM:
2088 dasm_put(Dst, 13702); 2086 dasm_put(Dst, 13692);
2089 if (sse) { 2087 if (sse) {
2090 dasm_put(Dst, 12253); 2088 dasm_put(Dst, 12243);
2091 } else { 2089 } else {
2092 dasm_put(Dst, 13707); 2090 dasm_put(Dst, 13697);
2093 } 2091 }
2094 dasm_put(Dst, 13715, Dt6(->marked), LJ_GC_BLACK); 2092 dasm_put(Dst, 13705, Dt6(->marked), LJ_GC_BLACK);
2095 if (sse) { 2093 if (sse) {
2096 dasm_put(Dst, 13740); 2094 dasm_put(Dst, 13730);
2097 } else { 2095 } else {
2098 dasm_put(Dst, 13747); 2096 dasm_put(Dst, 13737);
2099 } 2097 }
2100 dasm_put(Dst, 13752, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2098 dasm_put(Dst, 13742, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2101 dasm_put(Dst, 13880, Dt6(->gclist)); 2099 dasm_put(Dst, 13870, Dt6(->gclist));
2102 break; 2100 break;
2103 2101
2104 /* -- Calls and vararg handling ----------------------------------------- */ 2102 /* -- Calls and vararg handling ----------------------------------------- */
2105 2103
2106 case BC_CALL: case BC_CALLM: 2104 case BC_CALL: case BC_CALLM:
2107 dasm_put(Dst, 11374); 2105 dasm_put(Dst, 11364);
2108 if (op == BC_CALLM) { 2106 if (op == BC_CALLM) {
2109 dasm_put(Dst, 13888); 2107 dasm_put(Dst, 13878);
2110 } 2108 }
2111 dasm_put(Dst, 13893, LJ_TFUNC, Dt7(->pc)); 2109 dasm_put(Dst, 13883, LJ_TFUNC, Dt7(->pc));
2112 break; 2110 break;
2113 2111
2114 case BC_CALLMT: 2112 case BC_CALLMT:
2115 dasm_put(Dst, 13888); 2113 dasm_put(Dst, 13878);
2116 break; 2114 break;
2117 case BC_CALLT: 2115 case BC_CALLT:
2118 dasm_put(Dst, 13934, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2116 dasm_put(Dst, 13924, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2119 dasm_put(Dst, 14052, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2117 dasm_put(Dst, 14042, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2120 break; 2118 break;
2121 2119
2122 case BC_ITERC: 2120 case BC_ITERC:
2123 dasm_put(Dst, 14109, LJ_TFUNC, 2+1, Dt7(->pc)); 2121 dasm_put(Dst, 14099, LJ_TFUNC, 2+1, Dt7(->pc));
2124 break; 2122 break;
2125 2123
2126 case BC_VARG: 2124 case BC_VARG:
2127 dasm_put(Dst, 14189, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2125 dasm_put(Dst, 14179, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2128 dasm_put(Dst, 14333, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2126 dasm_put(Dst, 14323, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2129 break; 2127 break;
2130 2128
2131 /* -- Returns ----------------------------------------------------------- */ 2129 /* -- Returns ----------------------------------------------------------- */
2132 2130
2133 case BC_RETM: 2131 case BC_RETM:
2134 dasm_put(Dst, 13888); 2132 dasm_put(Dst, 13878);
2135 break; 2133 break;
2136 2134
2137 case BC_RET: case BC_RET0: case BC_RET1: 2135 case BC_RET: case BC_RET0: case BC_RET1:
2138 if (op != BC_RET0) { 2136 if (op != BC_RET0) {
2139 dasm_put(Dst, 14432); 2137 dasm_put(Dst, 14422);
2140 } 2138 }
2141 dasm_put(Dst, 14436, FRAME_TYPE); 2139 dasm_put(Dst, 14426, FRAME_TYPE);
2142 switch (op) { 2140 switch (op) {
2143 case BC_RET: 2141 case BC_RET:
2144 dasm_put(Dst, 14455); 2142 dasm_put(Dst, 14445);
2145 break; 2143 break;
2146 case BC_RET1: 2144 case BC_RET1:
2147 dasm_put(Dst, 14513); 2145 dasm_put(Dst, 14503);
2148 /* fallthrough */ 2146 /* fallthrough */
2149 case BC_RET0: 2147 case BC_RET0:
2150 dasm_put(Dst, 14529); 2148 dasm_put(Dst, 14519);
2151 default: 2149 default:
2152 break; 2150 break;
2153 } 2151 }
2154 dasm_put(Dst, 14540, Dt7(->pc), PC2PROTO(k)); 2152 dasm_put(Dst, 14530, Dt7(->pc), PC2PROTO(k));
2155 if (op == BC_RET) { 2153 if (op == BC_RET) {
2156 dasm_put(Dst, 14582, LJ_TNIL); 2154 dasm_put(Dst, 14572, LJ_TNIL);
2157 } else { 2155 } else {
2158 dasm_put(Dst, 14591, LJ_TNIL); 2156 dasm_put(Dst, 14581, LJ_TNIL);
2159 } 2157 }
2160 dasm_put(Dst, 14598); 2158 dasm_put(Dst, 14588);
2161 if (op != BC_RET0) { 2159 if (op != BC_RET0) {
2162 dasm_put(Dst, 14619); 2160 dasm_put(Dst, 14609);
2163 } 2161 }
2164 dasm_put(Dst, 4678); 2162 dasm_put(Dst, 4680);
2165 break; 2163 break;
2166 2164
2167 /* -- Loops and branches ------------------------------------------------ */ 2165 /* -- Loops and branches ------------------------------------------------ */
@@ -2169,7 +2167,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2169 2167
2170 case BC_FORL: 2168 case BC_FORL:
2171#if LJ_HASJIT 2169#if LJ_HASJIT
2172 dasm_put(Dst, 14623, HOTCOUNT_PCMASK, GG_DISP2HOT); 2170 dasm_put(Dst, 14613, HOTCOUNT_PCMASK, GG_DISP2HOT);
2173#endif 2171#endif
2174 break; 2172 break;
2175 2173
@@ -2181,57 +2179,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2181 case BC_FORI: 2179 case BC_FORI:
2182 case BC_IFORL: 2180 case BC_IFORL:
2183 vk = (op == BC_IFORL || op == BC_JFORL); 2181 vk = (op == BC_IFORL || op == BC_JFORL);
2184 dasm_put(Dst, 14644); 2182 dasm_put(Dst, 14634);
2185 if (!vk) { 2183 if (!vk) {
2186 dasm_put(Dst, 14648, LJ_TISNUM, LJ_TISNUM); 2184 dasm_put(Dst, 14638, LJ_TISNUM, LJ_TISNUM);
2187 } 2185 }
2188 dasm_put(Dst, 14667); 2186 dasm_put(Dst, 14657);
2189 if (!vk) { 2187 if (!vk) {
2190 dasm_put(Dst, 14671, LJ_TISNUM); 2188 dasm_put(Dst, 14661, LJ_TISNUM);
2191 } 2189 }
2192 if (sse) { 2190 if (sse) {
2193 dasm_put(Dst, 14680); 2191 dasm_put(Dst, 14670);
2194 if (vk) { 2192 if (vk) {
2195 dasm_put(Dst, 14692); 2193 dasm_put(Dst, 14682);
2196 } else { 2194 } else {
2197 dasm_put(Dst, 14711); 2195 dasm_put(Dst, 14701);
2198 } 2196 }
2199 dasm_put(Dst, 14716); 2197 dasm_put(Dst, 14706);
2200 } else { 2198 } else {
2201 dasm_put(Dst, 14729); 2199 dasm_put(Dst, 14719);
2202 if (vk) { 2200 if (vk) {
2203 dasm_put(Dst, 14735); 2201 dasm_put(Dst, 14725);
2204 } else { 2202 } else {
2205 dasm_put(Dst, 14751); 2203 dasm_put(Dst, 14741);
2206 } 2204 }
2207 dasm_put(Dst, 14759); 2205 dasm_put(Dst, 14749);
2208 if (cmov) { 2206 if (cmov) {
2209 dasm_put(Dst, 10789); 2207 dasm_put(Dst, 10779);
2210 } else { 2208 } else {
2211 dasm_put(Dst, 10795); 2209 dasm_put(Dst, 10785);
2212 } 2210 }
2213 if (!cmov) { 2211 if (!cmov) {
2214 dasm_put(Dst, 14764); 2212 dasm_put(Dst, 14754);
2215 } 2213 }
2216 } 2214 }
2217 if (op == BC_FORI) { 2215 if (op == BC_FORI) {
2218 dasm_put(Dst, 14770, -BCBIAS_J*4); 2216 dasm_put(Dst, 14760, -BCBIAS_J*4);
2219 } else if (op == BC_JFORI) { 2217 } else if (op == BC_JFORI) {
2220 dasm_put(Dst, 14780, -BCBIAS_J*4, BC_JLOOP); 2218 dasm_put(Dst, 14770, -BCBIAS_J*4, BC_JLOOP);
2221 } else if (op == BC_IFORL) { 2219 } else if (op == BC_IFORL) {
2222 dasm_put(Dst, 14794, -BCBIAS_J*4); 2220 dasm_put(Dst, 14784, -BCBIAS_J*4);
2223 } else { 2221 } else {
2224 dasm_put(Dst, 14790, BC_JLOOP); 2222 dasm_put(Dst, 14780, BC_JLOOP);
2225 } 2223 }
2226 dasm_put(Dst, 10824); 2224 dasm_put(Dst, 10814);
2227 if (sse) { 2225 if (sse) {
2228 dasm_put(Dst, 14804); 2226 dasm_put(Dst, 14794);
2229 } 2227 }
2230 break; 2228 break;
2231 2229
2232 case BC_ITERL: 2230 case BC_ITERL:
2233#if LJ_HASJIT 2231#if LJ_HASJIT
2234 dasm_put(Dst, 14623, HOTCOUNT_PCMASK, GG_DISP2HOT); 2232 dasm_put(Dst, 14613, HOTCOUNT_PCMASK, GG_DISP2HOT);
2235#endif 2233#endif
2236 break; 2234 break;
2237 2235
@@ -2240,33 +2238,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2240 break; 2238 break;
2241#endif 2239#endif
2242 case BC_IITERL: 2240 case BC_IITERL:
2243 dasm_put(Dst, 14815, LJ_TNIL); 2241 dasm_put(Dst, 14805, LJ_TNIL);
2244 if (op == BC_JITERL) { 2242 if (op == BC_JITERL) {
2245 dasm_put(Dst, 14830, BC_JLOOP); 2243 dasm_put(Dst, 14820, BC_JLOOP);
2246 } else { 2244 } else {
2247 dasm_put(Dst, 14844, -BCBIAS_J*4); 2245 dasm_put(Dst, 14834, -BCBIAS_J*4);
2248 } 2246 }
2249 dasm_put(Dst, 11121); 2247 dasm_put(Dst, 11111);
2250 break; 2248 break;
2251 2249
2252 case BC_LOOP: 2250 case BC_LOOP:
2253#if LJ_HASJIT 2251#if LJ_HASJIT
2254 dasm_put(Dst, 14623, HOTCOUNT_PCMASK, GG_DISP2HOT); 2252 dasm_put(Dst, 14613, HOTCOUNT_PCMASK, GG_DISP2HOT);
2255#endif 2253#endif
2256 break; 2254 break;
2257 2255
2258 case BC_ILOOP: 2256 case BC_ILOOP:
2259 dasm_put(Dst, 10826); 2257 dasm_put(Dst, 10816);
2260 break; 2258 break;
2261 2259
2262 case BC_JLOOP: 2260 case BC_JLOOP:
2263#if LJ_HASJIT 2261#if LJ_HASJIT
2264 dasm_put(Dst, 14860, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2262 dasm_put(Dst, 14850, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2265#endif 2263#endif
2266 break; 2264 break;
2267 2265
2268 case BC_JMP: 2266 case BC_JMP:
2269 dasm_put(Dst, 14883, -BCBIAS_J*4); 2267 dasm_put(Dst, 14873, -BCBIAS_J*4);
2270 break; 2268 break;
2271 2269
2272 /* -- Function headers -------------------------------------------------- */ 2270 /* -- Function headers -------------------------------------------------- */
@@ -2289,47 +2287,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2289 break; 2287 break;
2290#endif 2288#endif
2291 case BC_IFUNCF: 2289 case BC_IFUNCF:
2292 dasm_put(Dst, 14907, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2290 dasm_put(Dst, 14897, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2293 if (op == BC_JFUNCF) { 2291 if (op == BC_JFUNCF) {
2294 dasm_put(Dst, 14937, BC_JLOOP); 2292 dasm_put(Dst, 14927, BC_JLOOP);
2295 } else { 2293 } else {
2296 dasm_put(Dst, 10826); 2294 dasm_put(Dst, 10816);
2297 } 2295 }
2298 dasm_put(Dst, 14946, LJ_TNIL); 2296 dasm_put(Dst, 14936, LJ_TNIL);
2299 break; 2297 break;
2300 2298
2301 case BC_JFUNCV: 2299 case BC_JFUNCV:
2302#if !LJ_HASJIT 2300#if !LJ_HASJIT
2303 break; 2301 break;
2304#endif 2302#endif
2305 dasm_put(Dst, 10487); 2303 dasm_put(Dst, 10477);
2306 break; /* NYI: compiled vararg functions. */ 2304 break; /* NYI: compiled vararg functions. */
2307 2305
2308 case BC_IFUNCV: 2306 case BC_IFUNCV:
2309 dasm_put(Dst, 14968, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2307 dasm_put(Dst, 14958, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2310 if (op == BC_JFUNCV) { 2308 if (op == BC_JFUNCV) {
2311 dasm_put(Dst, 14937, BC_JLOOP); 2309 dasm_put(Dst, 14927, BC_JLOOP);
2312 } else { 2310 } else {
2313 dasm_put(Dst, 15059, -4+PC2PROTO(k)); 2311 dasm_put(Dst, 15049, -4+PC2PROTO(k));
2314 } 2312 }
2315 dasm_put(Dst, 15081, LJ_TNIL); 2313 dasm_put(Dst, 15071, LJ_TNIL);
2316 break; 2314 break;
2317 2315
2318 case BC_FUNCC: 2316 case BC_FUNCC:
2319 case BC_FUNCCW: 2317 case BC_FUNCCW:
2320 dasm_put(Dst, 15103, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2318 dasm_put(Dst, 15093, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2321 if (op == BC_FUNCC) { 2319 if (op == BC_FUNCC) {
2322 dasm_put(Dst, 15132); 2320 dasm_put(Dst, 15122);
2323 } else { 2321 } else {
2324 dasm_put(Dst, 15136); 2322 dasm_put(Dst, 15126);
2325 } 2323 }
2326 dasm_put(Dst, 15144, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2324 dasm_put(Dst, 15134, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2327 if (op == BC_FUNCC) { 2325 if (op == BC_FUNCC) {
2328 dasm_put(Dst, 15153); 2326 dasm_put(Dst, 15143);
2329 } else { 2327 } else {
2330 dasm_put(Dst, 15157, DISPATCH_GL(wrapf)); 2328 dasm_put(Dst, 15147, DISPATCH_GL(wrapf));
2331 } 2329 }
2332 dasm_put(Dst, 15162, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2330 dasm_put(Dst, 15152, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2333 break; 2331 break;
2334 2332
2335 /* ---------------------------------------------------------------------- */ 2333 /* ---------------------------------------------------------------------- */
@@ -2357,7 +2355,7 @@ static int build_backend(BuildCtx *ctx)
2357 2355
2358 build_subroutines(ctx, cmov, sse); 2356 build_subroutines(ctx, cmov, sse);
2359 2357
2360 dasm_put(Dst, 15187); 2358 dasm_put(Dst, 15177);
2361 for (op = 0; op < BC__MAX; op++) 2359 for (op = 0; op < BC__MAX; op++)
2362 build_ins(ctx, (BCOp)op, op, cmov, sse); 2360 build_ins(ctx, (BCOp)op, op, cmov, sse);
2363 2361