aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-05-30 12:29:55 +0200
committerMike Pall <mike>2010-05-30 12:29:55 +0200
commitfa673eb179ed21b0f7a4951d3f498541c1d39622 (patch)
tree696788826ffb2a828e86f207ee08d8b66f4bf103 /src
parent926f688cd0cc177a779ee3bdb2c6a346383dd8e4 (diff)
downloadluajit-fa673eb179ed21b0f7a4951d3f498541c1d39622.tar.gz
luajit-fa673eb179ed21b0f7a4951d3f498541c1d39622.tar.bz2
luajit-fa673eb179ed21b0f7a4951d3f498541c1d39622.zip
Fix string.char() range check on x64.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h938
-rw-r--r--src/buildvm_x64win.h1551
-rw-r--r--src/buildvm_x86.dasc6
-rw-r--r--src/buildvm_x86.h1694
4 files changed, 2095 insertions, 2094 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 24505e99..b71d9b53 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14075] = { 15static const unsigned char build_actionlist[14077] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199, 18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199,
@@ -265,131 +265,131 @@ static const unsigned char build_actionlist[14075] = {
265 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36, 265 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36,
266 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232, 266 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
267 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55, 267 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
268 255,252,242,15,45,2,61,252,255,0,0,0,15,135,244,55,137,68,36,4,255,221,2, 268 255,252,242,15,45,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,4,
269 219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,36,8,1,0, 269 255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,
270 0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,72,137,198, 270 36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,
271 137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,199,66,252, 271 72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,
272 252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,59,174,233, 272 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,
273 15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,255,252,255, 273 59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,
274 129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242, 274 255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,
275 15,45,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,129,122,253, 275 255,252,242,15,45,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,
276 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,8, 276 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,
277 139,173,233,255,252,242,15,45,74,8,255,139,68,36,4,57,197,15,130,244,251, 277 108,36,8,139,173,233,255,252,242,15,45,74,8,255,139,68,36,4,57,197,15,130,
278 248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,115,141, 278 244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,
279 172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5, 279 115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,
280 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248, 280 248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,
281 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252, 281 2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,
282 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244, 282 0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,
283 55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,129,122, 283 130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,
284 253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242, 284 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,
285 15,45,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,244,115, 285 252,242,15,45,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,
286 131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,244,117, 286 244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,
287 15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232, 287 244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,
288 1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,239,255, 288 1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,
289 15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248, 289 239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,
290 1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115, 290 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
291 65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158, 291 244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,
292 233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,244,1,137,216, 292 65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,
293 139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,244,55,65,139, 293 244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,
294 174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15, 294 244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,
295 133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,129,197,239, 295 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,
296 137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5, 296 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,
297 0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241, 297 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,
298 32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233, 298 131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,
299 244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,233,65,59,174, 299 36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,
300 233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42, 300 233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,
301 139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36, 301 244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,
302 8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130, 302 36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
303 244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,3, 303 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
304 248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,248,122, 304 2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,
305 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,139, 305 248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
306 58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,255,248, 306 213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,
307 123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 307 255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
308 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197, 308 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,
309 252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,244,55, 309 126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,
310 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15, 310 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
311 110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,252,240, 311 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,
312 248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,252,242, 312 252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,
313 15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,233,244, 313 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
314 1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 314 233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
315 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,
316 193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,
317 205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
315 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102, 318 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
316 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255, 319 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,
317 248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, 320 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
318 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126, 321 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
319 197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,248,129, 322 197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,
320 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15, 323 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
321 16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255, 324 110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,
322 15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,129,122, 325 242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,
323 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205, 326 131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
324 252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,242,15,42, 327 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
325 197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,131,129, 328 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
326 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12, 329 197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,
327 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72, 330 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
328 15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102, 331 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
329 15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,248,239, 332 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,
333 126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,
330 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 334 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
331 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252, 335 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,
332 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255, 336 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,
333 211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,15,130,244, 337 211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,
334 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242, 338 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
335 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88, 339 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
336 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,252,253, 340 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,
337 137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,55,129,122, 341 193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,
338 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2, 342 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
339 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 343 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
340 242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,193,252, 344 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,
341 233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 345 244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,
342 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16, 346 24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,
343 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202, 347 137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,
344 137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,244,125, 348 144,233,139,149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,
345 248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,24,139,90, 349 232,3,131,192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,
346 252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,137,133,233, 350 139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,
347 139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,144,233,139, 351 209,252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,
348 149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131, 352 20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,
349 192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,139,11,15, 353 244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,
350 182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209,252, 354 66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,
351 247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,234, 355 252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,
352 252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,248, 356 193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,
353 5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72, 357 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,
354 137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248, 358 255,142,233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,
355 137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232, 359 244,251,252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,
356 3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,168,235, 360 168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,
357 15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142, 361 251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,
358 233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,244,251, 362 248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,
359 252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,168,235, 363 67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,
360 15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248, 364 76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,
361 1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,248,3,139, 365 233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,
362 149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254, 366 73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,
363 65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,76,36,4,252, 367 36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,
364 233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194, 368 139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,
365 139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233, 369 68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,
366 137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,36,28,255,248, 370 41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,
367 142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24, 371 255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,
368 137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,68,36,28,0,0, 372 81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,
369 0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72, 373 240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,
370 137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65, 374 142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,
371 85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80, 375 242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,
372 15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68, 376 252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,
373 139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233, 377 242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,
374 72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68, 378 17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,
375 15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242, 379 252,242,15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,
376 68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68, 380 137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,
377 15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109, 381 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,
378 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242, 382 233,139,153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,
379 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174, 383 108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,
380 233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251, 384 69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,
381 1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139, 385 3,15,182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,
382 153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,108,36, 386 139,68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,
383 8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139, 387 198,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
384 191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15, 388 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
385 182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139, 389 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,
386 68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198, 390 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
387 232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68, 391 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
388 36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217, 392 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
389 108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,
390 184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,
391 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,
392 184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
393 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184, 393 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
394 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217, 394 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
395 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15, 395 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
@@ -1237,192 +1237,192 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1237 if (sse) { 1237 if (sse) {
1238 dasm_put(Dst, 5199); 1238 dasm_put(Dst, 5199);
1239 } else { 1239 } else {
1240 dasm_put(Dst, 5219); 1240 dasm_put(Dst, 5221);
1241 } 1241 }
1242 dasm_put(Dst, 5239, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1242 dasm_put(Dst, 5241, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1243 dasm_put(Dst, 2189); 1243 dasm_put(Dst, 2189);
1244 if (sse) { 1244 if (sse) {
1245 dasm_put(Dst, 5348); 1245 dasm_put(Dst, 5350);
1246 } else { 1246 } else {
1247 dasm_put(Dst, 5359); 1247 dasm_put(Dst, 5361);
1248 } 1248 }
1249 dasm_put(Dst, 5367, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1249 dasm_put(Dst, 5369, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1250 if (sse) { 1250 if (sse) {
1251 dasm_put(Dst, 5397); 1251 dasm_put(Dst, 5399);
1252 } else { 1252 } else {
1253 } 1253 }
1254 dasm_put(Dst, 5404, sizeof(GCstr)-1); 1254 dasm_put(Dst, 5406, sizeof(GCstr)-1);
1255 dasm_put(Dst, 5479, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1255 dasm_put(Dst, 5481, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1256 dasm_put(Dst, 5540, LJ_TSTR, LJ_TISNUM); 1256 dasm_put(Dst, 5542, LJ_TSTR, LJ_TISNUM);
1257 if (sse) { 1257 if (sse) {
1258 dasm_put(Dst, 5561); 1258 dasm_put(Dst, 5563);
1259 } else { 1259 } else {
1260 dasm_put(Dst, 5568); 1260 dasm_put(Dst, 5570);
1261 } 1261 }
1262 dasm_put(Dst, 5580, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1262 dasm_put(Dst, 5582, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1263 dasm_put(Dst, 5648, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1263 dasm_put(Dst, 5650, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1264 dasm_put(Dst, 5715, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1264 dasm_put(Dst, 5717, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1265 dasm_put(Dst, 5788, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1265 dasm_put(Dst, 5790, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1266 dasm_put(Dst, 5873, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1266 dasm_put(Dst, 5875, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1267 dasm_put(Dst, 5947, 1+1, LJ_TTAB); 1267 dasm_put(Dst, 5949, 1+1, LJ_TTAB);
1268 if (sse) { 1268 if (sse) {
1269 dasm_put(Dst, 6014); 1269 dasm_put(Dst, 6016);
1270 } else { 1270 } else {
1271 } 1271 }
1272 if (sse) { 1272 if (sse) {
1273 dasm_put(Dst, 6024, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1273 dasm_put(Dst, 6026, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1274 } else { 1274 } else {
1275 } 1275 }
1276 if (sse) { 1276 if (sse) {
1277 dasm_put(Dst, 6076, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1277 dasm_put(Dst, 6078, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1278 } else { 1278 } else {
1279 } 1279 }
1280 dasm_put(Dst, 6119, LJ_TISNUM); 1280 dasm_put(Dst, 6121, LJ_TISNUM);
1281 if (sse) { 1281 if (sse) {
1282 dasm_put(Dst, 6146); 1282 dasm_put(Dst, 6148);
1283 } else { 1283 } else {
1284 } 1284 }
1285 dasm_put(Dst, 6163); 1285 dasm_put(Dst, 6165);
1286 if (sse) { 1286 if (sse) {
1287 dasm_put(Dst, 6171, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1287 dasm_put(Dst, 6173, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1288 } else { 1288 } else {
1289 } 1289 }
1290 dasm_put(Dst, 6119, LJ_TISNUM); 1290 dasm_put(Dst, 6121, LJ_TISNUM);
1291 if (sse) { 1291 if (sse) {
1292 dasm_put(Dst, 6214); 1292 dasm_put(Dst, 6216);
1293 } else { 1293 } else {
1294 } 1294 }
1295 dasm_put(Dst, 6163); 1295 dasm_put(Dst, 6165);
1296 if (sse) { 1296 if (sse) {
1297 dasm_put(Dst, 6231, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1297 dasm_put(Dst, 6233, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1298 } else { 1298 } else {
1299 } 1299 }
1300 dasm_put(Dst, 6119, LJ_TISNUM); 1300 dasm_put(Dst, 6121, LJ_TISNUM);
1301 if (sse) { 1301 if (sse) {
1302 dasm_put(Dst, 6274); 1302 dasm_put(Dst, 6276);
1303 } else { 1303 } else {
1304 } 1304 }
1305 dasm_put(Dst, 6163); 1305 dasm_put(Dst, 6165);
1306 if (sse) { 1306 if (sse) {
1307 dasm_put(Dst, 6291, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1307 dasm_put(Dst, 6293, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1308 } else { 1308 } else {
1309 } 1309 }
1310 dasm_put(Dst, 6334); 1310 dasm_put(Dst, 6336);
1311 if (sse) { 1311 if (sse) {
1312 dasm_put(Dst, 6341, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1312 dasm_put(Dst, 6343, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1313 } else { 1313 } else {
1314 } 1314 }
1315 dasm_put(Dst, 6384); 1315 dasm_put(Dst, 6386);
1316 if (sse) { 1316 if (sse) {
1317 dasm_put(Dst, 6388); 1317 dasm_put(Dst, 6390);
1318 } else { 1318 } else {
1319 } 1319 }
1320 dasm_put(Dst, 6400); 1320 dasm_put(Dst, 6402);
1321 if (sse) { 1321 if (sse) {
1322 dasm_put(Dst, 6411, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1322 dasm_put(Dst, 6413, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1323 } else { 1323 } else {
1324 } 1324 }
1325 dasm_put(Dst, 6480); 1325 dasm_put(Dst, 6482);
1326 if (sse) { 1326 if (sse) {
1327 dasm_put(Dst, 6489, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1327 dasm_put(Dst, 6491, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1328 } else { 1328 } else {
1329 } 1329 }
1330 dasm_put(Dst, 6558); 1330 dasm_put(Dst, 6560);
1331 if (sse) { 1331 if (sse) {
1332 dasm_put(Dst, 6568, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1332 dasm_put(Dst, 6570, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1333 } else { 1333 } else {
1334 } 1334 }
1335 dasm_put(Dst, 6637); 1335 dasm_put(Dst, 6639);
1336 if (sse) { 1336 if (sse) {
1337 dasm_put(Dst, 6647, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1337 dasm_put(Dst, 6649, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1338 } else { 1338 } else {
1339 } 1339 }
1340 dasm_put(Dst, 6716); 1340 dasm_put(Dst, 6718);
1341 if (sse) { 1341 if (sse) {
1342 dasm_put(Dst, 6725, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1342 dasm_put(Dst, 6727, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1343 } else { 1343 } else {
1344 } 1344 }
1345 dasm_put(Dst, 6794, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1345 dasm_put(Dst, 6796, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1346 dasm_put(Dst, 6872, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1346 dasm_put(Dst, 6874, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1347 dasm_put(Dst, 6998, Dt1(->top), Dt1(->base), Dt1(->top)); 1347 dasm_put(Dst, 7000, Dt1(->top), Dt1(->base), Dt1(->top));
1348#if LJ_HASJIT 1348#if LJ_HASJIT
1349 dasm_put(Dst, 7037, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1349 dasm_put(Dst, 7039, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1350#endif 1350#endif
1351 dasm_put(Dst, 7070, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1351 dasm_put(Dst, 7072, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1352 dasm_put(Dst, 7124, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1352 dasm_put(Dst, 7126, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1353#if LJ_HASJIT 1353#if LJ_HASJIT
1354 dasm_put(Dst, 7191, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1354 dasm_put(Dst, 7193, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1355#endif 1355#endif
1356 dasm_put(Dst, 7238); 1356 dasm_put(Dst, 7240);
1357#if LJ_HASJIT 1357#if LJ_HASJIT
1358 dasm_put(Dst, 7065); 1358 dasm_put(Dst, 7067);
1359#endif 1359#endif
1360 dasm_put(Dst, 7245); 1360 dasm_put(Dst, 7247);
1361#if LJ_HASJIT 1361#if LJ_HASJIT
1362 dasm_put(Dst, 7248); 1362 dasm_put(Dst, 7250);
1363#endif 1363#endif
1364 dasm_put(Dst, 7258, Dt1(->base), Dt1(->top)); 1364 dasm_put(Dst, 7260, Dt1(->base), Dt1(->top));
1365#if LJ_HASJIT 1365#if LJ_HASJIT
1366 dasm_put(Dst, 7291); 1366 dasm_put(Dst, 7293);
1367#endif 1367#endif
1368 dasm_put(Dst, 7296, Dt1(->base), Dt1(->top)); 1368 dasm_put(Dst, 7298, Dt1(->base), Dt1(->top));
1369#if LJ_HASJIT 1369#if LJ_HASJIT
1370 dasm_put(Dst, 7327, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1370 dasm_put(Dst, 7329, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1371#endif 1371#endif
1372 dasm_put(Dst, 7566); 1372 dasm_put(Dst, 7568);
1373#if LJ_HASJIT 1373#if LJ_HASJIT
1374 dasm_put(Dst, 7569, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1374 dasm_put(Dst, 7571, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1375#endif 1375#endif
1376 dasm_put(Dst, 7669); 1376 dasm_put(Dst, 7671);
1377 if (!sse) { 1377 if (!sse) {
1378 dasm_put(Dst, 7672); 1378 dasm_put(Dst, 7674);
1379 } 1379 }
1380 dasm_put(Dst, 7717, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1380 dasm_put(Dst, 7719, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1381 if (!sse) { 1381 if (!sse) {
1382 dasm_put(Dst, 7803); 1382 dasm_put(Dst, 7805);
1383 } 1383 }
1384 dasm_put(Dst, 7848, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1384 dasm_put(Dst, 7850, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1385 if (!sse) { 1385 if (!sse) {
1386 dasm_put(Dst, 7934); 1386 dasm_put(Dst, 7936);
1387 } 1387 }
1388 dasm_put(Dst, 7973, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1388 dasm_put(Dst, 7975, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1389 if (sse) { 1389 if (sse) {
1390 dasm_put(Dst, 8062, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1390 dasm_put(Dst, 8064, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1391 } else { 1391 } else {
1392 dasm_put(Dst, 8176); 1392 dasm_put(Dst, 8178);
1393 } 1393 }
1394 dasm_put(Dst, 8223); 1394 dasm_put(Dst, 8225);
1395 if (!sse) { 1395 if (!sse) {
1396 } else { 1396 } else {
1397 dasm_put(Dst, 8300); 1397 dasm_put(Dst, 8302);
1398 } 1398 }
1399 dasm_put(Dst, 8303); 1399 dasm_put(Dst, 8305);
1400 dasm_put(Dst, 8388, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1400 dasm_put(Dst, 8390, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1401 dasm_put(Dst, 8489, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1401 dasm_put(Dst, 8491, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1402 dasm_put(Dst, 8663); 1402 dasm_put(Dst, 8665);
1403 if (sse) { 1403 if (sse) {
1404 dasm_put(Dst, 8704); 1404 dasm_put(Dst, 8706);
1405 dasm_put(Dst, 8774); 1405 dasm_put(Dst, 8776);
1406 dasm_put(Dst, 8846); 1406 dasm_put(Dst, 8848);
1407 } else { 1407 } else {
1408 dasm_put(Dst, 8898); 1408 dasm_put(Dst, 8900);
1409 dasm_put(Dst, 8990); 1409 dasm_put(Dst, 8992);
1410 } 1410 }
1411 dasm_put(Dst, 9036); 1411 dasm_put(Dst, 9038);
1412 if (sse) { 1412 if (sse) {
1413 dasm_put(Dst, 9042, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1413 dasm_put(Dst, 9044, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1414 dasm_put(Dst, 9127, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1414 dasm_put(Dst, 9129, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1415 } else { 1415 } else {
1416 dasm_put(Dst, 9255); 1416 dasm_put(Dst, 9257);
1417 dasm_put(Dst, 9338); 1417 dasm_put(Dst, 9340);
1418 if (cmov) { 1418 if (cmov) {
1419 dasm_put(Dst, 9393); 1419 dasm_put(Dst, 9395);
1420 } else { 1420 } else {
1421 dasm_put(Dst, 9412); 1421 dasm_put(Dst, 9414);
1422 } 1422 }
1423 dasm_put(Dst, 9251); 1423 dasm_put(Dst, 9253);
1424 } 1424 }
1425 dasm_put(Dst, 9453); 1425 dasm_put(Dst, 9455);
1426} 1426}
1427 1427
1428/* Generate the code for a single instruction. */ 1428/* Generate the code for a single instruction. */
@@ -1438,595 +1438,595 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1438 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1438 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1439 1439
1440 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1440 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1441 dasm_put(Dst, 9475, LJ_TISNUM, LJ_TISNUM); 1441 dasm_put(Dst, 9477, LJ_TISNUM, LJ_TISNUM);
1442 if (sse) { 1442 if (sse) {
1443 dasm_put(Dst, 9496); 1443 dasm_put(Dst, 9498);
1444 } else { 1444 } else {
1445 dasm_put(Dst, 9511); 1445 dasm_put(Dst, 9513);
1446 if (cmov) { 1446 if (cmov) {
1447 dasm_put(Dst, 9521); 1447 dasm_put(Dst, 9523);
1448 } else { 1448 } else {
1449 dasm_put(Dst, 9527); 1449 dasm_put(Dst, 9529);
1450 } 1450 }
1451 } 1451 }
1452 switch (op) { 1452 switch (op) {
1453 case BC_ISLT: 1453 case BC_ISLT:
1454 dasm_put(Dst, 9534); 1454 dasm_put(Dst, 9536);
1455 break; 1455 break;
1456 case BC_ISGE: 1456 case BC_ISGE:
1457 dasm_put(Dst, 9333); 1457 dasm_put(Dst, 9335);
1458 break; 1458 break;
1459 case BC_ISLE: 1459 case BC_ISLE:
1460 dasm_put(Dst, 5942); 1460 dasm_put(Dst, 5944);
1461 break; 1461 break;
1462 case BC_ISGT: 1462 case BC_ISGT:
1463 dasm_put(Dst, 9539); 1463 dasm_put(Dst, 9541);
1464 break; 1464 break;
1465 default: break; /* Shut up GCC. */ 1465 default: break; /* Shut up GCC. */
1466 } 1466 }
1467 dasm_put(Dst, 9544, -BCBIAS_J*4); 1467 dasm_put(Dst, 9546, -BCBIAS_J*4);
1468 break; 1468 break;
1469 1469
1470 case BC_ISEQV: case BC_ISNEV: 1470 case BC_ISEQV: case BC_ISNEV:
1471 vk = op == BC_ISEQV; 1471 vk = op == BC_ISEQV;
1472 dasm_put(Dst, 9579, LJ_TISNUM, LJ_TISNUM); 1472 dasm_put(Dst, 9581, LJ_TISNUM, LJ_TISNUM);
1473 if (sse) { 1473 if (sse) {
1474 dasm_put(Dst, 9605); 1474 dasm_put(Dst, 9607);
1475 } else { 1475 } else {
1476 dasm_put(Dst, 9617); 1476 dasm_put(Dst, 9619);
1477 if (cmov) { 1477 if (cmov) {
1478 dasm_put(Dst, 9521); 1478 dasm_put(Dst, 9523);
1479 } else { 1479 } else {
1480 dasm_put(Dst, 9527); 1480 dasm_put(Dst, 9529);
1481 } 1481 }
1482 } 1482 }
1483 iseqne_fp: 1483 iseqne_fp:
1484 if (vk) { 1484 if (vk) {
1485 dasm_put(Dst, 9624); 1485 dasm_put(Dst, 9626);
1486 } else { 1486 } else {
1487 dasm_put(Dst, 9633); 1487 dasm_put(Dst, 9635);
1488 } 1488 }
1489 iseqne_end: 1489 iseqne_end:
1490 if (vk) { 1490 if (vk) {
1491 dasm_put(Dst, 9642, -BCBIAS_J*4); 1491 dasm_put(Dst, 9644, -BCBIAS_J*4);
1492 } else { 1492 } else {
1493 dasm_put(Dst, 9657, -BCBIAS_J*4); 1493 dasm_put(Dst, 9659, -BCBIAS_J*4);
1494 } 1494 }
1495 dasm_put(Dst, 9558); 1495 dasm_put(Dst, 9560);
1496 if (op == BC_ISEQV || op == BC_ISNEV) { 1496 if (op == BC_ISEQV || op == BC_ISNEV) {
1497 dasm_put(Dst, 9672, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1497 dasm_put(Dst, 9674, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1498 if (vk) { 1498 if (vk) {
1499 dasm_put(Dst, 9730); 1499 dasm_put(Dst, 9732);
1500 } else { 1500 } else {
1501 dasm_put(Dst, 9734); 1501 dasm_put(Dst, 9736);
1502 } 1502 }
1503 dasm_put(Dst, 9740); 1503 dasm_put(Dst, 9742);
1504 } 1504 }
1505 break; 1505 break;
1506 case BC_ISEQS: case BC_ISNES: 1506 case BC_ISEQS: case BC_ISNES:
1507 vk = op == BC_ISEQS; 1507 vk = op == BC_ISEQS;
1508 dasm_put(Dst, 9745, LJ_TSTR); 1508 dasm_put(Dst, 9747, LJ_TSTR);
1509 iseqne_test: 1509 iseqne_test:
1510 if (vk) { 1510 if (vk) {
1511 dasm_put(Dst, 9628); 1511 dasm_put(Dst, 9630);
1512 } else { 1512 } else {
1513 dasm_put(Dst, 2833); 1513 dasm_put(Dst, 2833);
1514 } 1514 }
1515 goto iseqne_end; 1515 goto iseqne_end;
1516 case BC_ISEQN: case BC_ISNEN: 1516 case BC_ISEQN: case BC_ISNEN:
1517 vk = op == BC_ISEQN; 1517 vk = op == BC_ISEQN;
1518 dasm_put(Dst, 9770, LJ_TISNUM); 1518 dasm_put(Dst, 9772, LJ_TISNUM);
1519 if (sse) { 1519 if (sse) {
1520 dasm_put(Dst, 9784); 1520 dasm_put(Dst, 9786);
1521 } else { 1521 } else {
1522 dasm_put(Dst, 9797); 1522 dasm_put(Dst, 9799);
1523 if (cmov) { 1523 if (cmov) {
1524 dasm_put(Dst, 9521); 1524 dasm_put(Dst, 9523);
1525 } else { 1525 } else {
1526 dasm_put(Dst, 9527); 1526 dasm_put(Dst, 9529);
1527 } 1527 }
1528 } 1528 }
1529 goto iseqne_fp; 1529 goto iseqne_fp;
1530 case BC_ISEQP: case BC_ISNEP: 1530 case BC_ISEQP: case BC_ISNEP:
1531 vk = op == BC_ISEQP; 1531 vk = op == BC_ISEQP;
1532 dasm_put(Dst, 9805); 1532 dasm_put(Dst, 9807);
1533 goto iseqne_test; 1533 goto iseqne_test;
1534 1534
1535 /* -- Unary test and copy ops ------------------------------------------- */ 1535 /* -- Unary test and copy ops ------------------------------------------- */
1536 1536
1537 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1537 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1538 dasm_put(Dst, 9817, LJ_TISTRUECOND); 1538 dasm_put(Dst, 9819, LJ_TISTRUECOND);
1539 if (op == BC_IST || op == BC_ISTC) { 1539 if (op == BC_IST || op == BC_ISTC) {
1540 dasm_put(Dst, 9829); 1540 dasm_put(Dst, 9831);
1541 } else { 1541 } else {
1542 dasm_put(Dst, 9834); 1542 dasm_put(Dst, 9836);
1543 } 1543 }
1544 if (op == BC_ISTC || op == BC_ISFC) { 1544 if (op == BC_ISTC || op == BC_ISFC) {
1545 dasm_put(Dst, 9839); 1545 dasm_put(Dst, 9841);
1546 } 1546 }
1547 dasm_put(Dst, 9850, -BCBIAS_J*4); 1547 dasm_put(Dst, 9852, -BCBIAS_J*4);
1548 break; 1548 break;
1549 1549
1550 /* -- Unary ops --------------------------------------------------------- */ 1550 /* -- Unary ops --------------------------------------------------------- */
1551 1551
1552 case BC_MOV: 1552 case BC_MOV:
1553 dasm_put(Dst, 9883); 1553 dasm_put(Dst, 9885);
1554 break; 1554 break;
1555 case BC_NOT: 1555 case BC_NOT:
1556 dasm_put(Dst, 9918, LJ_TISTRUECOND, LJ_TTRUE); 1556 dasm_put(Dst, 9920, LJ_TISTRUECOND, LJ_TTRUE);
1557 break; 1557 break;
1558 case BC_UNM: 1558 case BC_UNM:
1559 dasm_put(Dst, 9955, LJ_TISNUM); 1559 dasm_put(Dst, 9957, LJ_TISNUM);
1560 if (sse) { 1560 if (sse) {
1561 dasm_put(Dst, 9966, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1561 dasm_put(Dst, 9968, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1562 } else { 1562 } else {
1563 dasm_put(Dst, 9991); 1563 dasm_put(Dst, 9993);
1564 } 1564 }
1565 dasm_put(Dst, 9558); 1565 dasm_put(Dst, 9560);
1566 break; 1566 break;
1567 case BC_LEN: 1567 case BC_LEN:
1568 dasm_put(Dst, 10000, LJ_TSTR); 1568 dasm_put(Dst, 10002, LJ_TSTR);
1569 if (sse) { 1569 if (sse) {
1570 dasm_put(Dst, 10014, Dt5(->len)); 1570 dasm_put(Dst, 10016, Dt5(->len));
1571 } else { 1571 } else {
1572 dasm_put(Dst, 10032, Dt5(->len)); 1572 dasm_put(Dst, 10034, Dt5(->len));
1573 } 1573 }
1574 dasm_put(Dst, 10041, LJ_TTAB); 1574 dasm_put(Dst, 10043, LJ_TTAB);
1575 if (sse) { 1575 if (sse) {
1576 dasm_put(Dst, 10083); 1576 dasm_put(Dst, 10085);
1577 } else { 1577 } else {
1578 } 1578 }
1579 dasm_put(Dst, 10092); 1579 dasm_put(Dst, 10094);
1580 break; 1580 break;
1581 1581
1582 /* -- Binary ops -------------------------------------------------------- */ 1582 /* -- Binary ops -------------------------------------------------------- */
1583 1583
1584 1584
1585 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1585 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1586 dasm_put(Dst, 10102); 1586 dasm_put(Dst, 10104);
1587 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1587 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1588 switch (vk) { 1588 switch (vk) {
1589 case 0: 1589 case 0:
1590 dasm_put(Dst, 10110, LJ_TISNUM); 1590 dasm_put(Dst, 10112, LJ_TISNUM);
1591 if (sse) { 1591 if (sse) {
1592 dasm_put(Dst, 10122); 1592 dasm_put(Dst, 10124);
1593 } else { 1593 } else {
1594 dasm_put(Dst, 10137); 1594 dasm_put(Dst, 10139);
1595 } 1595 }
1596 break; 1596 break;
1597 case 1: 1597 case 1:
1598 dasm_put(Dst, 10146, LJ_TISNUM); 1598 dasm_put(Dst, 10148, LJ_TISNUM);
1599 if (sse) { 1599 if (sse) {
1600 dasm_put(Dst, 10158); 1600 dasm_put(Dst, 10160);
1601 } else { 1601 } else {
1602 dasm_put(Dst, 10173); 1602 dasm_put(Dst, 10175);
1603 } 1603 }
1604 break; 1604 break;
1605 default: 1605 default:
1606 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1606 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1607 if (sse) { 1607 if (sse) {
1608 dasm_put(Dst, 10204); 1608 dasm_put(Dst, 10206);
1609 } else { 1609 } else {
1610 dasm_put(Dst, 10218); 1610 dasm_put(Dst, 10220);
1611 } 1611 }
1612 break; 1612 break;
1613 } 1613 }
1614 if (sse) { 1614 if (sse) {
1615 dasm_put(Dst, 9984); 1615 dasm_put(Dst, 9986);
1616 } else { 1616 } else {
1617 dasm_put(Dst, 9996); 1617 dasm_put(Dst, 9998);
1618 } 1618 }
1619 dasm_put(Dst, 9558); 1619 dasm_put(Dst, 9560);
1620 break; 1620 break;
1621 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1621 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1622 dasm_put(Dst, 10102); 1622 dasm_put(Dst, 10104);
1623 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1623 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1624 switch (vk) { 1624 switch (vk) {
1625 case 0: 1625 case 0:
1626 dasm_put(Dst, 10110, LJ_TISNUM); 1626 dasm_put(Dst, 10112, LJ_TISNUM);
1627 if (sse) { 1627 if (sse) {
1628 dasm_put(Dst, 10226); 1628 dasm_put(Dst, 10228);
1629 } else { 1629 } else {
1630 dasm_put(Dst, 10241); 1630 dasm_put(Dst, 10243);
1631 } 1631 }
1632 break; 1632 break;
1633 case 1: 1633 case 1:
1634 dasm_put(Dst, 10146, LJ_TISNUM); 1634 dasm_put(Dst, 10148, LJ_TISNUM);
1635 if (sse) { 1635 if (sse) {
1636 dasm_put(Dst, 10250); 1636 dasm_put(Dst, 10252);
1637 } else { 1637 } else {
1638 dasm_put(Dst, 10265); 1638 dasm_put(Dst, 10267);
1639 } 1639 }
1640 break; 1640 break;
1641 default: 1641 default:
1642 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1642 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1643 if (sse) { 1643 if (sse) {
1644 dasm_put(Dst, 10274); 1644 dasm_put(Dst, 10276);
1645 } else { 1645 } else {
1646 dasm_put(Dst, 10288); 1646 dasm_put(Dst, 10290);
1647 } 1647 }
1648 break; 1648 break;
1649 } 1649 }
1650 if (sse) { 1650 if (sse) {
1651 dasm_put(Dst, 9984); 1651 dasm_put(Dst, 9986);
1652 } else { 1652 } else {
1653 dasm_put(Dst, 9996); 1653 dasm_put(Dst, 9998);
1654 } 1654 }
1655 dasm_put(Dst, 9558); 1655 dasm_put(Dst, 9560);
1656 break; 1656 break;
1657 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1657 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1658 dasm_put(Dst, 10102); 1658 dasm_put(Dst, 10104);
1659 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1659 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1660 switch (vk) { 1660 switch (vk) {
1661 case 0: 1661 case 0:
1662 dasm_put(Dst, 10110, LJ_TISNUM); 1662 dasm_put(Dst, 10112, LJ_TISNUM);
1663 if (sse) { 1663 if (sse) {
1664 dasm_put(Dst, 10296); 1664 dasm_put(Dst, 10298);
1665 } else { 1665 } else {
1666 dasm_put(Dst, 10311); 1666 dasm_put(Dst, 10313);
1667 } 1667 }
1668 break; 1668 break;
1669 case 1: 1669 case 1:
1670 dasm_put(Dst, 10146, LJ_TISNUM); 1670 dasm_put(Dst, 10148, LJ_TISNUM);
1671 if (sse) { 1671 if (sse) {
1672 dasm_put(Dst, 10320); 1672 dasm_put(Dst, 10322);
1673 } else { 1673 } else {
1674 dasm_put(Dst, 10335); 1674 dasm_put(Dst, 10337);
1675 } 1675 }
1676 break; 1676 break;
1677 default: 1677 default:
1678 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1678 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1679 if (sse) { 1679 if (sse) {
1680 dasm_put(Dst, 10344); 1680 dasm_put(Dst, 10346);
1681 } else { 1681 } else {
1682 dasm_put(Dst, 10358); 1682 dasm_put(Dst, 10360);
1683 } 1683 }
1684 break; 1684 break;
1685 } 1685 }
1686 if (sse) { 1686 if (sse) {
1687 dasm_put(Dst, 9984); 1687 dasm_put(Dst, 9986);
1688 } else { 1688 } else {
1689 dasm_put(Dst, 9996); 1689 dasm_put(Dst, 9998);
1690 } 1690 }
1691 dasm_put(Dst, 9558); 1691 dasm_put(Dst, 9560);
1692 break; 1692 break;
1693 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1693 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1694 dasm_put(Dst, 10102); 1694 dasm_put(Dst, 10104);
1695 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1695 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1696 switch (vk) { 1696 switch (vk) {
1697 case 0: 1697 case 0:
1698 dasm_put(Dst, 10110, LJ_TISNUM); 1698 dasm_put(Dst, 10112, LJ_TISNUM);
1699 if (sse) { 1699 if (sse) {
1700 dasm_put(Dst, 10366); 1700 dasm_put(Dst, 10368);
1701 } else { 1701 } else {
1702 dasm_put(Dst, 10381); 1702 dasm_put(Dst, 10383);
1703 } 1703 }
1704 break; 1704 break;
1705 case 1: 1705 case 1:
1706 dasm_put(Dst, 10146, LJ_TISNUM); 1706 dasm_put(Dst, 10148, LJ_TISNUM);
1707 if (sse) { 1707 if (sse) {
1708 dasm_put(Dst, 10390); 1708 dasm_put(Dst, 10392);
1709 } else { 1709 } else {
1710 dasm_put(Dst, 10405); 1710 dasm_put(Dst, 10407);
1711 } 1711 }
1712 break; 1712 break;
1713 default: 1713 default:
1714 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1714 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1715 if (sse) { 1715 if (sse) {
1716 dasm_put(Dst, 10414); 1716 dasm_put(Dst, 10416);
1717 } else { 1717 } else {
1718 dasm_put(Dst, 10428); 1718 dasm_put(Dst, 10430);
1719 } 1719 }
1720 break; 1720 break;
1721 } 1721 }
1722 if (sse) { 1722 if (sse) {
1723 dasm_put(Dst, 9984); 1723 dasm_put(Dst, 9986);
1724 } else { 1724 } else {
1725 dasm_put(Dst, 9996); 1725 dasm_put(Dst, 9998);
1726 } 1726 }
1727 dasm_put(Dst, 9558); 1727 dasm_put(Dst, 9560);
1728 break; 1728 break;
1729 case BC_MODVN: 1729 case BC_MODVN:
1730 dasm_put(Dst, 10102); 1730 dasm_put(Dst, 10104);
1731 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1731 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1732 switch (vk) { 1732 switch (vk) {
1733 case 0: 1733 case 0:
1734 dasm_put(Dst, 10110, LJ_TISNUM); 1734 dasm_put(Dst, 10112, LJ_TISNUM);
1735 if (sse) { 1735 if (sse) {
1736 dasm_put(Dst, 10436); 1736 dasm_put(Dst, 10438);
1737 } else { 1737 } else {
1738 dasm_put(Dst, 10451); 1738 dasm_put(Dst, 10453);
1739 } 1739 }
1740 break; 1740 break;
1741 case 1: 1741 case 1:
1742 dasm_put(Dst, 10146, LJ_TISNUM); 1742 dasm_put(Dst, 10148, LJ_TISNUM);
1743 if (sse) { 1743 if (sse) {
1744 dasm_put(Dst, 10460); 1744 dasm_put(Dst, 10462);
1745 } else { 1745 } else {
1746 dasm_put(Dst, 10475); 1746 dasm_put(Dst, 10477);
1747 } 1747 }
1748 break; 1748 break;
1749 default: 1749 default:
1750 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1750 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1751 if (sse) { 1751 if (sse) {
1752 dasm_put(Dst, 10484); 1752 dasm_put(Dst, 10486);
1753 } else { 1753 } else {
1754 dasm_put(Dst, 10498); 1754 dasm_put(Dst, 10500);
1755 } 1755 }
1756 break; 1756 break;
1757 } 1757 }
1758 dasm_put(Dst, 10506); 1758 dasm_put(Dst, 10508);
1759 if (sse) { 1759 if (sse) {
1760 dasm_put(Dst, 9984); 1760 dasm_put(Dst, 9986);
1761 } else { 1761 } else {
1762 dasm_put(Dst, 9996); 1762 dasm_put(Dst, 9998);
1763 } 1763 }
1764 dasm_put(Dst, 9558); 1764 dasm_put(Dst, 9560);
1765 break; 1765 break;
1766 case BC_MODNV: case BC_MODVV: 1766 case BC_MODNV: case BC_MODVV:
1767 dasm_put(Dst, 10102); 1767 dasm_put(Dst, 10104);
1768 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1768 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1769 switch (vk) { 1769 switch (vk) {
1770 case 0: 1770 case 0:
1771 dasm_put(Dst, 10110, LJ_TISNUM); 1771 dasm_put(Dst, 10112, LJ_TISNUM);
1772 if (sse) { 1772 if (sse) {
1773 dasm_put(Dst, 10436); 1773 dasm_put(Dst, 10438);
1774 } else { 1774 } else {
1775 dasm_put(Dst, 10451); 1775 dasm_put(Dst, 10453);
1776 } 1776 }
1777 break; 1777 break;
1778 case 1: 1778 case 1:
1779 dasm_put(Dst, 10146, LJ_TISNUM); 1779 dasm_put(Dst, 10148, LJ_TISNUM);
1780 if (sse) { 1780 if (sse) {
1781 dasm_put(Dst, 10460); 1781 dasm_put(Dst, 10462);
1782 } else { 1782 } else {
1783 dasm_put(Dst, 10475); 1783 dasm_put(Dst, 10477);
1784 } 1784 }
1785 break; 1785 break;
1786 default: 1786 default:
1787 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1787 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1788 if (sse) { 1788 if (sse) {
1789 dasm_put(Dst, 10484); 1789 dasm_put(Dst, 10486);
1790 } else { 1790 } else {
1791 dasm_put(Dst, 10498); 1791 dasm_put(Dst, 10500);
1792 } 1792 }
1793 break; 1793 break;
1794 } 1794 }
1795 dasm_put(Dst, 10512); 1795 dasm_put(Dst, 10514);
1796 break; 1796 break;
1797 case BC_POW: 1797 case BC_POW:
1798 dasm_put(Dst, 10102); 1798 dasm_put(Dst, 10104);
1799 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1799 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1800 switch (vk) { 1800 switch (vk) {
1801 case 0: 1801 case 0:
1802 dasm_put(Dst, 10110, LJ_TISNUM); 1802 dasm_put(Dst, 10112, LJ_TISNUM);
1803 if (sse) { 1803 if (sse) {
1804 dasm_put(Dst, 10436); 1804 dasm_put(Dst, 10438);
1805 } else { 1805 } else {
1806 dasm_put(Dst, 10451); 1806 dasm_put(Dst, 10453);
1807 } 1807 }
1808 break; 1808 break;
1809 case 1: 1809 case 1:
1810 dasm_put(Dst, 10146, LJ_TISNUM); 1810 dasm_put(Dst, 10148, LJ_TISNUM);
1811 if (sse) { 1811 if (sse) {
1812 dasm_put(Dst, 10460); 1812 dasm_put(Dst, 10462);
1813 } else { 1813 } else {
1814 dasm_put(Dst, 10475); 1814 dasm_put(Dst, 10477);
1815 } 1815 }
1816 break; 1816 break;
1817 default: 1817 default:
1818 dasm_put(Dst, 10182, LJ_TISNUM, LJ_TISNUM); 1818 dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
1819 if (sse) { 1819 if (sse) {
1820 dasm_put(Dst, 10484); 1820 dasm_put(Dst, 10486);
1821 } else { 1821 } else {
1822 dasm_put(Dst, 10498); 1822 dasm_put(Dst, 10500);
1823 } 1823 }
1824 break; 1824 break;
1825 } 1825 }
1826 dasm_put(Dst, 10517); 1826 dasm_put(Dst, 10519);
1827 if (sse) { 1827 if (sse) {
1828 dasm_put(Dst, 9984); 1828 dasm_put(Dst, 9986);
1829 } else { 1829 } else {
1830 dasm_put(Dst, 9996); 1830 dasm_put(Dst, 9998);
1831 } 1831 }
1832 dasm_put(Dst, 9558); 1832 dasm_put(Dst, 9560);
1833 break; 1833 break;
1834 1834
1835 case BC_CAT: 1835 case BC_CAT:
1836 dasm_put(Dst, 10521, Dt1(->base), Dt1(->base)); 1836 dasm_put(Dst, 10523, Dt1(->base), Dt1(->base));
1837 break; 1837 break;
1838 1838
1839 /* -- Constant ops ------------------------------------------------------ */ 1839 /* -- Constant ops ------------------------------------------------------ */
1840 1840
1841 case BC_KSTR: 1841 case BC_KSTR:
1842 dasm_put(Dst, 10612, LJ_TSTR); 1842 dasm_put(Dst, 10614, LJ_TSTR);
1843 break; 1843 break;
1844 case BC_KSHORT: 1844 case BC_KSHORT:
1845 if (sse) { 1845 if (sse) {
1846 dasm_put(Dst, 10649); 1846 dasm_put(Dst, 10651);
1847 } else { 1847 } else {
1848 dasm_put(Dst, 10664); 1848 dasm_put(Dst, 10666);
1849 } 1849 }
1850 dasm_put(Dst, 9558); 1850 dasm_put(Dst, 9560);
1851 break; 1851 break;
1852 case BC_KNUM: 1852 case BC_KNUM:
1853 if (sse) { 1853 if (sse) {
1854 dasm_put(Dst, 10672); 1854 dasm_put(Dst, 10674);
1855 } else { 1855 } else {
1856 dasm_put(Dst, 10686); 1856 dasm_put(Dst, 10688);
1857 } 1857 }
1858 dasm_put(Dst, 9558); 1858 dasm_put(Dst, 9560);
1859 break; 1859 break;
1860 case BC_KPRI: 1860 case BC_KPRI:
1861 dasm_put(Dst, 10694); 1861 dasm_put(Dst, 10696);
1862 break; 1862 break;
1863 case BC_KNIL: 1863 case BC_KNIL:
1864 dasm_put(Dst, 10723, LJ_TNIL); 1864 dasm_put(Dst, 10725, LJ_TNIL);
1865 break; 1865 break;
1866 1866
1867 /* -- Upvalue and function ops ------------------------------------------ */ 1867 /* -- Upvalue and function ops ------------------------------------------ */
1868 1868
1869 case BC_UGET: 1869 case BC_UGET:
1870 dasm_put(Dst, 10771, offsetof(GCfuncL, uvptr), DtA(->v)); 1870 dasm_put(Dst, 10773, offsetof(GCfuncL, uvptr), DtA(->v));
1871 break; 1871 break;
1872 case BC_USETV: 1872 case BC_USETV:
1873#define TV2MARKOFS \ 1873#define TV2MARKOFS \
1874 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1874 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1875 dasm_put(Dst, 10817, 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); 1875 dasm_put(Dst, 10819, 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);
1876 dasm_put(Dst, 10913); 1876 dasm_put(Dst, 10915);
1877 break; 1877 break;
1878#undef TV2MARKOFS 1878#undef TV2MARKOFS
1879 case BC_USETS: 1879 case BC_USETS:
1880 dasm_put(Dst, 10925, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1880 dasm_put(Dst, 10927, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1881 break; 1881 break;
1882 case BC_USETN: 1882 case BC_USETN:
1883 dasm_put(Dst, 11021); 1883 dasm_put(Dst, 11023);
1884 if (sse) { 1884 if (sse) {
1885 dasm_put(Dst, 11026); 1885 dasm_put(Dst, 11028);
1886 } else { 1886 } else {
1887 dasm_put(Dst, 9800); 1887 dasm_put(Dst, 9802);
1888 } 1888 }
1889 dasm_put(Dst, 11034, offsetof(GCfuncL, uvptr), DtA(->v)); 1889 dasm_put(Dst, 11036, offsetof(GCfuncL, uvptr), DtA(->v));
1890 if (sse) { 1890 if (sse) {
1891 dasm_put(Dst, 11043); 1891 dasm_put(Dst, 11045);
1892 } else { 1892 } else {
1893 dasm_put(Dst, 11049); 1893 dasm_put(Dst, 11051);
1894 } 1894 }
1895 dasm_put(Dst, 9558); 1895 dasm_put(Dst, 9560);
1896 break; 1896 break;
1897 case BC_USETP: 1897 case BC_USETP:
1898 dasm_put(Dst, 11052, offsetof(GCfuncL, uvptr), DtA(->v)); 1898 dasm_put(Dst, 11054, offsetof(GCfuncL, uvptr), DtA(->v));
1899 break; 1899 break;
1900 case BC_UCLO: 1900 case BC_UCLO:
1901 dasm_put(Dst, 11092, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1901 dasm_put(Dst, 11094, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1902 break; 1902 break;
1903 1903
1904 case BC_FNEW: 1904 case BC_FNEW:
1905 dasm_put(Dst, 11148, Dt1(->base), Dt1(->base), LJ_TFUNC); 1905 dasm_put(Dst, 11150, Dt1(->base), Dt1(->base), LJ_TFUNC);
1906 break; 1906 break;
1907 1907
1908 /* -- Table ops --------------------------------------------------------- */ 1908 /* -- Table ops --------------------------------------------------------- */
1909 1909
1910 case BC_TNEW: 1910 case BC_TNEW:
1911 dasm_put(Dst, 11215, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1911 dasm_put(Dst, 11217, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1912 break; 1912 break;
1913 case BC_TDUP: 1913 case BC_TDUP:
1914 dasm_put(Dst, 11339, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1914 dasm_put(Dst, 11341, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1915 break; 1915 break;
1916 1916
1917 case BC_GGET: 1917 case BC_GGET:
1918 dasm_put(Dst, 11438, Dt7(->env)); 1918 dasm_put(Dst, 11440, Dt7(->env));
1919 break; 1919 break;
1920 case BC_GSET: 1920 case BC_GSET:
1921 dasm_put(Dst, 11458, Dt7(->env)); 1921 dasm_put(Dst, 11460, Dt7(->env));
1922 break; 1922 break;
1923 1923
1924 case BC_TGETV: 1924 case BC_TGETV:
1925 dasm_put(Dst, 11478, LJ_TTAB, LJ_TISNUM); 1925 dasm_put(Dst, 11480, LJ_TTAB, LJ_TISNUM);
1926 if (sse) { 1926 if (sse) {
1927 dasm_put(Dst, 11511); 1927 dasm_put(Dst, 11513);
1928 } else { 1928 } else {
1929 } 1929 }
1930 dasm_put(Dst, 11532, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1930 dasm_put(Dst, 11534, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1931 dasm_put(Dst, 11626, LJ_TSTR); 1931 dasm_put(Dst, 11628, LJ_TSTR);
1932 break; 1932 break;
1933 case BC_TGETS: 1933 case BC_TGETS:
1934 dasm_put(Dst, 11644, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1934 dasm_put(Dst, 11646, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1935 dasm_put(Dst, 11730, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1935 dasm_put(Dst, 11732, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1936 break; 1936 break;
1937 case BC_TGETB: 1937 case BC_TGETB:
1938 dasm_put(Dst, 11803, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1938 dasm_put(Dst, 11805, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1939 dasm_put(Dst, 10092); 1939 dasm_put(Dst, 10094);
1940 break; 1940 break;
1941 1941
1942 case BC_TSETV: 1942 case BC_TSETV:
1943 dasm_put(Dst, 11904, LJ_TTAB, LJ_TISNUM); 1943 dasm_put(Dst, 11906, LJ_TTAB, LJ_TISNUM);
1944 if (sse) { 1944 if (sse) {
1945 dasm_put(Dst, 11511); 1945 dasm_put(Dst, 11513);
1946 } else { 1946 } else {
1947 } 1947 }
1948 dasm_put(Dst, 11937, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1948 dasm_put(Dst, 11939, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1949 dasm_put(Dst, 12022, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1949 dasm_put(Dst, 12024, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1950 break; 1950 break;
1951 case BC_TSETS: 1951 case BC_TSETS:
1952 dasm_put(Dst, 12086, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1952 dasm_put(Dst, 12088, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1953 dasm_put(Dst, 12163, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1953 dasm_put(Dst, 12165, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1954 dasm_put(Dst, 12255, 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)); 1954 dasm_put(Dst, 12257, 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));
1955 break; 1955 break;
1956 case BC_TSETB: 1956 case BC_TSETB:
1957 dasm_put(Dst, 12347, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1957 dasm_put(Dst, 12349, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1958 dasm_put(Dst, 12447, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1958 dasm_put(Dst, 12449, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1959 break; 1959 break;
1960 1960
1961 case BC_TSETM: 1961 case BC_TSETM:
1962 dasm_put(Dst, 12495); 1962 dasm_put(Dst, 12497);
1963 if (sse) { 1963 if (sse) {
1964 dasm_put(Dst, 12500); 1964 dasm_put(Dst, 12502);
1965 } else { 1965 } else {
1966 } 1966 }
1967 dasm_put(Dst, 12508, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1967 dasm_put(Dst, 12510, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1968 dasm_put(Dst, 12656, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1968 dasm_put(Dst, 12658, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1969 break; 1969 break;
1970 1970
1971 /* -- Calls and vararg handling ----------------------------------------- */ 1971 /* -- Calls and vararg handling ----------------------------------------- */
1972 1972
1973 case BC_CALL: case BC_CALLM: 1973 case BC_CALL: case BC_CALLM:
1974 dasm_put(Dst, 10106); 1974 dasm_put(Dst, 10108);
1975 if (op == BC_CALLM) { 1975 if (op == BC_CALLM) {
1976 dasm_put(Dst, 12676); 1976 dasm_put(Dst, 12678);
1977 } 1977 }
1978 dasm_put(Dst, 12681, LJ_TFUNC, Dt7(->pc)); 1978 dasm_put(Dst, 12683, LJ_TFUNC, Dt7(->pc));
1979 break; 1979 break;
1980 1980
1981 case BC_CALLMT: 1981 case BC_CALLMT:
1982 dasm_put(Dst, 12676); 1982 dasm_put(Dst, 12678);
1983 break; 1983 break;
1984 case BC_CALLT: 1984 case BC_CALLT:
1985 dasm_put(Dst, 12724, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1985 dasm_put(Dst, 12726, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1986 dasm_put(Dst, 12848, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1986 dasm_put(Dst, 12850, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1987 break; 1987 break;
1988 1988
1989 case BC_ITERC: 1989 case BC_ITERC:
1990 dasm_put(Dst, 12909, LJ_TFUNC, 2+1, Dt7(->pc)); 1990 dasm_put(Dst, 12911, LJ_TFUNC, 2+1, Dt7(->pc));
1991 break; 1991 break;
1992 1992
1993 case BC_VARG: 1993 case BC_VARG:
1994 dasm_put(Dst, 12991, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1994 dasm_put(Dst, 12993, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1995 dasm_put(Dst, 13145, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1995 dasm_put(Dst, 13147, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1996 break; 1996 break;
1997 1997
1998 /* -- Returns ----------------------------------------------------------- */ 1998 /* -- Returns ----------------------------------------------------------- */
1999 1999
2000 case BC_RETM: 2000 case BC_RETM:
2001 dasm_put(Dst, 12676); 2001 dasm_put(Dst, 12678);
2002 break; 2002 break;
2003 2003
2004 case BC_RET: case BC_RET0: case BC_RET1: 2004 case BC_RET: case BC_RET0: case BC_RET1:
2005 if (op != BC_RET0) { 2005 if (op != BC_RET0) {
2006 dasm_put(Dst, 13250); 2006 dasm_put(Dst, 13252);
2007 } 2007 }
2008 dasm_put(Dst, 13254, FRAME_TYPE); 2008 dasm_put(Dst, 13256, FRAME_TYPE);
2009 switch (op) { 2009 switch (op) {
2010 case BC_RET: 2010 case BC_RET:
2011 dasm_put(Dst, 13273); 2011 dasm_put(Dst, 13275);
2012 break; 2012 break;
2013 case BC_RET1: 2013 case BC_RET1:
2014 dasm_put(Dst, 13337); 2014 dasm_put(Dst, 13339);
2015 /* fallthrough */ 2015 /* fallthrough */
2016 case BC_RET0: 2016 case BC_RET0:
2017 dasm_put(Dst, 13353); 2017 dasm_put(Dst, 13355);
2018 default: 2018 default:
2019 break; 2019 break;
2020 } 2020 }
2021 dasm_put(Dst, 13364, Dt7(->pc), PC2PROTO(k)); 2021 dasm_put(Dst, 13366, Dt7(->pc), PC2PROTO(k));
2022 if (op == BC_RET) { 2022 if (op == BC_RET) {
2023 dasm_put(Dst, 13412, LJ_TNIL); 2023 dasm_put(Dst, 13414, LJ_TNIL);
2024 } else { 2024 } else {
2025 dasm_put(Dst, 13423, LJ_TNIL); 2025 dasm_put(Dst, 13425, LJ_TNIL);
2026 } 2026 }
2027 dasm_put(Dst, 13430); 2027 dasm_put(Dst, 13432);
2028 if (op != BC_RET0) { 2028 if (op != BC_RET0) {
2029 dasm_put(Dst, 13450); 2029 dasm_put(Dst, 13452);
2030 } 2030 }
2031 dasm_put(Dst, 4596); 2031 dasm_put(Dst, 4596);
2032 break; 2032 break;
@@ -2036,7 +2036,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2036 2036
2037 case BC_FORL: 2037 case BC_FORL:
2038#if LJ_HASJIT 2038#if LJ_HASJIT
2039 dasm_put(Dst, 13453, HOTCOUNT_PCMASK, GG_DISP2HOT); 2039 dasm_put(Dst, 13455, HOTCOUNT_PCMASK, GG_DISP2HOT);
2040#endif 2040#endif
2041 break; 2041 break;
2042 2042
@@ -2048,57 +2048,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2048 case BC_FORI: 2048 case BC_FORI:
2049 case BC_IFORL: 2049 case BC_IFORL:
2050 vk = (op == BC_IFORL || op == BC_JFORL); 2050 vk = (op == BC_IFORL || op == BC_JFORL);
2051 dasm_put(Dst, 13474); 2051 dasm_put(Dst, 13476);
2052 if (!vk) { 2052 if (!vk) {
2053 dasm_put(Dst, 13478, LJ_TISNUM, LJ_TISNUM); 2053 dasm_put(Dst, 13480, LJ_TISNUM, LJ_TISNUM);
2054 } 2054 }
2055 dasm_put(Dst, 13497); 2055 dasm_put(Dst, 13499);
2056 if (!vk) { 2056 if (!vk) {
2057 dasm_put(Dst, 13501, LJ_TISNUM); 2057 dasm_put(Dst, 13503, LJ_TISNUM);
2058 } 2058 }
2059 if (sse) { 2059 if (sse) {
2060 dasm_put(Dst, 13510); 2060 dasm_put(Dst, 13512);
2061 if (vk) { 2061 if (vk) {
2062 dasm_put(Dst, 13522); 2062 dasm_put(Dst, 13524);
2063 } else { 2063 } else {
2064 dasm_put(Dst, 13541); 2064 dasm_put(Dst, 13543);
2065 } 2065 }
2066 dasm_put(Dst, 13546); 2066 dasm_put(Dst, 13548);
2067 } else { 2067 } else {
2068 dasm_put(Dst, 13559); 2068 dasm_put(Dst, 13561);
2069 if (vk) { 2069 if (vk) {
2070 dasm_put(Dst, 13565); 2070 dasm_put(Dst, 13567);
2071 } else { 2071 } else {
2072 dasm_put(Dst, 13581); 2072 dasm_put(Dst, 13583);
2073 } 2073 }
2074 dasm_put(Dst, 13589); 2074 dasm_put(Dst, 13591);
2075 if (cmov) { 2075 if (cmov) {
2076 dasm_put(Dst, 9521); 2076 dasm_put(Dst, 9523);
2077 } else { 2077 } else {
2078 dasm_put(Dst, 9527); 2078 dasm_put(Dst, 9529);
2079 } 2079 }
2080 if (!cmov) { 2080 if (!cmov) {
2081 dasm_put(Dst, 13594); 2081 dasm_put(Dst, 13596);
2082 } 2082 }
2083 } 2083 }
2084 if (op == BC_FORI) { 2084 if (op == BC_FORI) {
2085 dasm_put(Dst, 13600, -BCBIAS_J*4); 2085 dasm_put(Dst, 13602, -BCBIAS_J*4);
2086 } else if (op == BC_JFORI) { 2086 } else if (op == BC_JFORI) {
2087 dasm_put(Dst, 13610, -BCBIAS_J*4, BC_JLOOP); 2087 dasm_put(Dst, 13612, -BCBIAS_J*4, BC_JLOOP);
2088 } else if (op == BC_IFORL) { 2088 } else if (op == BC_IFORL) {
2089 dasm_put(Dst, 13624, -BCBIAS_J*4); 2089 dasm_put(Dst, 13626, -BCBIAS_J*4);
2090 } else { 2090 } else {
2091 dasm_put(Dst, 13620, BC_JLOOP); 2091 dasm_put(Dst, 13622, BC_JLOOP);
2092 } 2092 }
2093 dasm_put(Dst, 9556); 2093 dasm_put(Dst, 9558);
2094 if (sse) { 2094 if (sse) {
2095 dasm_put(Dst, 13634); 2095 dasm_put(Dst, 13636);
2096 } 2096 }
2097 break; 2097 break;
2098 2098
2099 case BC_ITERL: 2099 case BC_ITERL:
2100#if LJ_HASJIT 2100#if LJ_HASJIT
2101 dasm_put(Dst, 13453, HOTCOUNT_PCMASK, GG_DISP2HOT); 2101 dasm_put(Dst, 13455, HOTCOUNT_PCMASK, GG_DISP2HOT);
2102#endif 2102#endif
2103 break; 2103 break;
2104 2104
@@ -2107,33 +2107,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2107 break; 2107 break;
2108#endif 2108#endif
2109 case BC_IITERL: 2109 case BC_IITERL:
2110 dasm_put(Dst, 13645, LJ_TNIL); 2110 dasm_put(Dst, 13647, LJ_TNIL);
2111 if (op == BC_JITERL) { 2111 if (op == BC_JITERL) {
2112 dasm_put(Dst, 13660, BC_JLOOP); 2112 dasm_put(Dst, 13662, BC_JLOOP);
2113 } else { 2113 } else {
2114 dasm_put(Dst, 13674, -BCBIAS_J*4); 2114 dasm_put(Dst, 13676, -BCBIAS_J*4);
2115 } 2115 }
2116 dasm_put(Dst, 9860); 2116 dasm_put(Dst, 9862);
2117 break; 2117 break;
2118 2118
2119 case BC_LOOP: 2119 case BC_LOOP:
2120#if LJ_HASJIT 2120#if LJ_HASJIT
2121 dasm_put(Dst, 13453, HOTCOUNT_PCMASK, GG_DISP2HOT); 2121 dasm_put(Dst, 13455, HOTCOUNT_PCMASK, GG_DISP2HOT);
2122#endif 2122#endif
2123 break; 2123 break;
2124 2124
2125 case BC_ILOOP: 2125 case BC_ILOOP:
2126 dasm_put(Dst, 9558); 2126 dasm_put(Dst, 9560);
2127 break; 2127 break;
2128 2128
2129 case BC_JLOOP: 2129 case BC_JLOOP:
2130#if LJ_HASJIT 2130#if LJ_HASJIT
2131 dasm_put(Dst, 13690, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2131 dasm_put(Dst, 13692, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2132#endif 2132#endif
2133 break; 2133 break;
2134 2134
2135 case BC_JMP: 2135 case BC_JMP:
2136 dasm_put(Dst, 13731, -BCBIAS_J*4); 2136 dasm_put(Dst, 13733, -BCBIAS_J*4);
2137 break; 2137 break;
2138 2138
2139 /* -- Function headers -------------------------------------------------- */ 2139 /* -- Function headers -------------------------------------------------- */
@@ -2147,7 +2147,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2147 2147
2148 case BC_FUNCF: 2148 case BC_FUNCF:
2149#if LJ_HASJIT 2149#if LJ_HASJIT
2150 dasm_put(Dst, 13757, HOTCOUNT_PCMASK, GG_DISP2HOT); 2150 dasm_put(Dst, 13759, HOTCOUNT_PCMASK, GG_DISP2HOT);
2151#endif 2151#endif
2152 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2152 case BC_FUNCV: /* NYI: compiled vararg functions. */
2153 break; 2153 break;
@@ -2157,47 +2157,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2157 break; 2157 break;
2158#endif 2158#endif
2159 case BC_IFUNCF: 2159 case BC_IFUNCF:
2160 dasm_put(Dst, 13778, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2160 dasm_put(Dst, 13780, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2161 if (op == BC_JFUNCF) { 2161 if (op == BC_JFUNCF) {
2162 dasm_put(Dst, 13809, BC_JLOOP); 2162 dasm_put(Dst, 13811, BC_JLOOP);
2163 } else { 2163 } else {
2164 dasm_put(Dst, 9558); 2164 dasm_put(Dst, 9560);
2165 } 2165 }
2166 dasm_put(Dst, 13818, LJ_TNIL); 2166 dasm_put(Dst, 13820, LJ_TNIL);
2167 break; 2167 break;
2168 2168
2169 case BC_JFUNCV: 2169 case BC_JFUNCV:
2170#if !LJ_HASJIT 2170#if !LJ_HASJIT
2171 break; 2171 break;
2172#endif 2172#endif
2173 dasm_put(Dst, 9253); 2173 dasm_put(Dst, 9255);
2174 break; /* NYI: compiled vararg functions. */ 2174 break; /* NYI: compiled vararg functions. */
2175 2175
2176 case BC_IFUNCV: 2176 case BC_IFUNCV:
2177 dasm_put(Dst, 13840, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2177 dasm_put(Dst, 13842, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2178 if (op == BC_JFUNCV) { 2178 if (op == BC_JFUNCV) {
2179 dasm_put(Dst, 13809, BC_JLOOP); 2179 dasm_put(Dst, 13811, BC_JLOOP);
2180 } else { 2180 } else {
2181 dasm_put(Dst, 13937, -4+PC2PROTO(k)); 2181 dasm_put(Dst, 13939, -4+PC2PROTO(k));
2182 } 2182 }
2183 dasm_put(Dst, 13962, LJ_TNIL); 2183 dasm_put(Dst, 13964, LJ_TNIL);
2184 break; 2184 break;
2185 2185
2186 case BC_FUNCC: 2186 case BC_FUNCC:
2187 case BC_FUNCCW: 2187 case BC_FUNCCW:
2188 dasm_put(Dst, 13984, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2188 dasm_put(Dst, 13986, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2189 if (op == BC_FUNCC) { 2189 if (op == BC_FUNCC) {
2190 dasm_put(Dst, 14014); 2190 dasm_put(Dst, 14016);
2191 } else { 2191 } else {
2192 dasm_put(Dst, 14018); 2192 dasm_put(Dst, 14020);
2193 } 2193 }
2194 dasm_put(Dst, 14026, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2194 dasm_put(Dst, 14028, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2195 if (op == BC_FUNCC) { 2195 if (op == BC_FUNCC) {
2196 dasm_put(Dst, 14036); 2196 dasm_put(Dst, 14038);
2197 } else { 2197 } else {
2198 dasm_put(Dst, 14041, DISPATCH_GL(wrapf)); 2198 dasm_put(Dst, 14043, DISPATCH_GL(wrapf));
2199 } 2199 }
2200 dasm_put(Dst, 14047, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2200 dasm_put(Dst, 14049, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2201 break; 2201 break;
2202 2202
2203 /* ---------------------------------------------------------------------- */ 2203 /* ---------------------------------------------------------------------- */
@@ -2225,7 +2225,7 @@ static int build_backend(BuildCtx *ctx)
2225 2225
2226 build_subroutines(ctx, cmov, sse); 2226 build_subroutines(ctx, cmov, sse);
2227 2227
2228 dasm_put(Dst, 14073); 2228 dasm_put(Dst, 14075);
2229 for (op = 0; op < BC__MAX; op++) 2229 for (op = 0; op < BC__MAX; op++)
2230 build_ins(ctx, (BCOp)op, op, cmov, sse); 2230 build_ins(ctx, (BCOp)op, op, cmov, sse);
2231 2231
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 656b6590..0f07de67 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14024] = { 15static const unsigned char build_actionlist[14026] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10, 18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,
@@ -264,435 +264,436 @@ static const unsigned char build_actionlist[14024] = {
264 42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,255,252,242, 264 42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,
265 15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,244,64,255, 265 15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,244,64,255,
266 248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248, 266 248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,
267 239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,2,61, 267 239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,42,129,
268 252,255,0,0,0,15,135,244,55,137,68,36,84,255,221,2,219,92,36,84,129,124,36, 268 252,253,252,255,0,0,0,15,135,244,55,137,108,36,84,255,221,2,219,92,36,84,
269 84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,0,0,0,72,141,68,36,84,248, 269 129,124,36,84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,0,0,0,72,141,
270 113,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137,252,233,137, 270 68,36,84,248,113,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137,
271 116,36,100,232,251,1,17,139,149,233,139,114,252,252,199,66,252,252,237,137, 271 252,233,137,116,36,100,232,251,1,17,139,149,233,139,114,252,252,199,66,252,
272 66,252,248,252,233,244,58,248,114,139,171,233,59,171,233,15,130,244,247,232, 272 252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171,233,15,130,
273 244,66,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129,252,248,239, 273 244,247,232,244,66,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129,
274 15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,15,45,106,16, 274 252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,15,
275 137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,122,253,4,239,15,133, 275 45,106,16,137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,122,253,
276 244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,32,139,173,233, 276 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,32,
277 255,252,242,15,45,74,8,255,139,68,36,84,57,197,15,130,244,251,248,2,133,201, 277 139,173,233,255,252,242,15,45,74,8,255,139,68,36,84,57,197,15,130,244,251,
278 15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,141,172,253,13,233, 278 248,2,133,201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,141,
279 131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,5,15,140,244,252, 279 172,253,13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,5,
280 141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244, 280 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
281 254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248, 281 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
282 115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,55,139,171,233, 282 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
283 59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133,244, 283 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,
284 55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255,221, 284 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,
285 66,8,219,92,36,84,139,68,36,84,255,133,192,15,142,244,115,131,189,233,1,15, 285 45,66,8,255,221,66,8,219,92,36,84,139,68,36,84,255,133,192,15,142,244,115,
286 130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,182,141,233,139,171, 286 131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,
287 233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131, 287 182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15,
288 233,252,233,244,113,248,118,129,252,248,239,255,15,130,244,55,139,171,233, 288 133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,
289 59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55, 289 244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,
290 139,42,139,133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129,197, 290 4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,
291 239,137,116,36,84,137,68,36,32,139,179,233,248,1,255,15,182,77,0,131,197, 291 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,248,1,255,
292 1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,84,252,233,244,113, 292 15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,
293 248,120,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247, 293 36,84,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59,
294 232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131, 294 171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
295 233,255,15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233, 295 42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,84,137,
296 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252, 296 68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,
297 249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137, 297 130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,
298 244,1,137,252,240,139,116,36,84,252,233,244,113,248,121,129,252,248,239,15, 298 3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113,248,121,
299 130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129, 299 129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,
300 122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119, 300 244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,
301 129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,244,249,248,1, 301 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,
302 15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244, 302 244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,
303 248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240, 303 122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
304 139,116,36,84,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122, 304 1,137,252,240,139,116,36,84,252,233,244,113,248,122,129,252,248,239,15,130,
305 253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242, 305 244,55,129,122,253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,
306 15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122, 306 234,255,252,242,15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,
307 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205, 307 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
308 252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248, 308 72,15,110,205,252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,
309 124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 309 244,63,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
310 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197, 310 244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,
311 255,137,68,36,84,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253, 311 102,15,126,197,255,137,68,36,84,141,68,194,252,240,248,1,57,208,15,134,244,
312 4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, 312 125,129,120,253,4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,
313 33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244, 313 102,15,126,193,33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,
314 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,
315 237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,
316 16,0,252,242,15,88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,
317 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,
318 102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,
319 242,15,88,193,102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,
314 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72, 320 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,
315 15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15, 321 15,110,205,252,242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,
316 88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129, 322 248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
317 122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110, 323 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
318 205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193, 324 197,255,252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,
319 102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253, 325 126,139,68,36,84,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,
320 4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252, 326 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
321 242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252, 327 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
322 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72, 328 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,
323 189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247, 329 193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,
324 213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,84, 330 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
325 252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239, 331 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
326 15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15, 332 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,
327 16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88, 333 233,244,125,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
328 202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244, 334 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
329 125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 335 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,
336 137,200,102,15,126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,
337 125,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
330 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72, 338 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,
331 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200, 339 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,
332 102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255, 340 102,15,126,197,102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,
333 248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 341 135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
334 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 342 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
335 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 343 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
336 126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134, 344 197,102,15,126,201,255,211,205,137,193,252,233,244,125,248,117,184,237,252,
337 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 345 233,244,55,248,119,184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,
338 12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102, 346 100,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
339 72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197, 347 59,141,233,15,135,244,251,137,252,233,252,255,144,233,139,149,233,133,192,
340 102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248, 348 15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,
341 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135, 349 248,57,114,252,252,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,
342 244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213, 350 205,131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,
343 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 351 249,15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,
344 255,211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119, 352 137,252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,
345 184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,100,137,149,233,141, 353 233,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72,137,108,36,32,139,
346 68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244, 354 108,36,96,137,116,36,100,137,149,233,255,141,68,194,252,248,137,252,233,137,
347 251,137,252,233,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1,255, 355 133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
348 139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,114,252,252,15, 356 139,108,36,32,85,195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,
349 133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255, 357 235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,
350 36,252,235,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253, 358 255,248,137,15,182,131,233,168,235,15,133,244,251,252,233,244,247,248,138,
351 72,252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252, 359 15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,
352 248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149, 360 233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,
353 233,252,233,244,1,248,66,93,72,137,108,36,32,139,108,36,96,137,116,36,100, 361 233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,
354 137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139, 362 252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,
355 149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,32,85,195,248, 363 233,248,139,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,140,255,139,
356 136,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168, 364 106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,
357 235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,137,15,182,131, 365 137,133,233,137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,
358 233,168,235,15,133,244,251,252,233,244,247,248,138,15,182,131,233,168,235, 366 1,21,252,233,244,3,255,248,141,137,116,36,100,255,248,142,255,137,116,36,
359 15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168, 367 100,131,206,1,248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,
360 235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,137,252, 368 133,233,137,252,242,137,252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,
361 233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110, 369 230,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,
362 252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139, 370 78,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,
363 77,232,137,76,36,84,252,233,244,4,248,140,255,139,106,252,248,139,173,233, 371 65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,
364 15,182,133,233,141,4,194,139,108,36,96,137,149,233,137,133,233,137,252,242, 372 248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,
365 141,139,233,72,137,171,233,137,116,36,100,232,251,1,21,252,233,244,3,255, 373 233,199,131,233,237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,
366 248,141,137,116,36,100,255,248,142,255,137,116,36,100,131,206,1,248,1,255, 374 128,252,242,68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,
367 141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252,242,137, 375 15,17,109,232,252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,
368 252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149, 376 15,17,85,208,252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,
369 233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,3, 377 125,184,252,242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,
370 131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87, 378 252,242,15,17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,
371 86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76, 379 17,69,128,139,171,233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,
372 137,125,252,248,76,137,117,252,240,139,93,0,139,139,233,199,131,233,237,137, 380 149,233,72,141,148,253,36,233,141,139,233,232,251,1,23,72,139,141,233,72,
373 131,233,137,139,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125, 381 129,225,239,137,169,233,139,149,233,139,177,233,252,233,244,247,255,248,144,
374 252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68, 382 255,72,141,140,253,36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,
375 15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68, 383 102,68,15,111,169,233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,
376 15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17, 384 15,111,145,233,102,68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,
377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152, 385 233,72,137,204,102,15,111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,
378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233, 386 36,32,76,139,100,36,80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,
379 139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,149,233,72,141,148,253, 387 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
380 36,233,141,139,233,232,251,1,23,72,139,141,233,72,129,225,239,137,169,233, 388 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,255,139,
381 139,149,233,139,177,233,252,233,244,247,255,248,144,255,72,141,140,253,36, 389 68,36,84,248,2,252,255,36,252,235,248,3,252,247,216,137,252,233,137,194,232,
382 233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169,233, 390 251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
383 102,68,15,111,161,233,102,68,15,111,153,233,102,68,15,111,145,233,102,68, 391 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
384 15,111,137,233,102,68,15,111,129,233,102,15,111,185,233,72,137,204,102,15, 392 36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,
385 111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80, 393 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
386 133,192,15,136,244,249,137,68,36,84,139,122,252,248,139,191,233,139,191,233, 394 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
387 199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4, 395 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
388 193,232,16,129,252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255, 396 200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
389 36,252,235,248,3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82, 397 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
390 255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252, 398 217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,
391 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 399 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
392 255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 400 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
393 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252, 401 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
394 242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110, 402 15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,
395 208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1, 403 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
396 195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37, 404 139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,
397 252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139, 405 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
398 68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102, 406 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
399 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 407 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
400 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102, 408 86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,
401 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40, 409 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
402 193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68, 410 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
403 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 411 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
404 255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 412 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
405 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15, 413 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
406 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216, 414 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
407 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40, 415 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
408 193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,237,237,102, 416 252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,
409 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102, 417 8,0,0,128,127,15,132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,
410 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227, 418 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
411 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15, 419 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,
412 84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195, 420 248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,
413 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252, 421 15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,
414 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 422 133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,
415 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255, 423 244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,
416 248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15, 424 3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,
417 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217, 425 6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,
418 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217, 426 15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,
419 248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15, 427 1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,
420 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 428 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,
421 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 429 72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,
422 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 430 252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,
423 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 431 252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
424 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 432 217,252,253,221,217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,
425 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, 433 237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,
426 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, 434 2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,
427 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, 435 110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,
428 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, 436 208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,
429 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, 437 4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
430 36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192, 438 192,15,132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,
431 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 439 132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
432 217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15, 440 195,248,2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,
433 110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237, 441 88,15,132,244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,
434 237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102, 442 252,233,244,253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,
435 15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224, 443 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
436 15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15, 444 252,233,244,253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,
437 80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15, 445 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
438 132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,132,244, 446 253,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
439 84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248, 447 244,253,248,1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,
440 2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132, 448 195,255,139,84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,
441 244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,252,233,244, 449 131,252,250,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,
442 253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201, 450 250,5,15,130,244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,
443 217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233,244, 451 248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,
444 253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,236,217,201, 452 195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,
445 217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248,2,131, 453 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,
446 252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253,248, 454 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,
447 1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139, 455 9,204,248,154,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252,242,
448 84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250, 456 15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244,
449 3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,250,5,15,130, 457 247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,
450 244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,248,217,252, 458 2,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132,
451 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131, 459 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
452 252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241, 460 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252,248,
453 195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244, 461 9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8,
454 255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255, 462 221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68,
455 65,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248, 463 36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131,252,
456 1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244, 464 248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,
457 248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248, 465 15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,
458 5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244, 466 248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,
459 248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237, 467 2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,
460 102,72,15,110,200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252, 468 195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,
461 242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132, 469 244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,
462 244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217, 470 248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,
463 201,217,252,253,221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244, 471 201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,
464 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248, 472 255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,
465 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244, 473 195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,
466 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3, 474 195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,
467 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 475 216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,
468 252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135, 476 8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,
469 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 477 194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,
470 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 478 255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,
471 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252, 479 223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,
472 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225, 480 254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,
473 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221, 481 16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,
474 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248, 482 244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,
475 155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91, 483 15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,
476 94,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135, 484 15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,
477 244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221, 485 233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,
478 4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15, 486 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,
479 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134, 487 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,
480 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 488 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,
481 235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253, 489 0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,239,
482 202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221, 490 15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,
483 4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132, 491 135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,
484 244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15, 492 255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,
485 183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244, 493 252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,
486 2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129, 494 194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,
487 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133, 495 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,
488 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255, 496 139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,
489 72,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202, 497 232,16,252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,
490 59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242, 498 137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
491 15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131, 499 252,235,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,
492 198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131, 500 184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,
493 244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15, 501 217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,
494 183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, 502 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,
495 198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,139,4,194,137,108,202, 503 248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
496 4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 504 255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,
497 235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6, 505 232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,
498 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,129,124, 506 233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,
499 253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72, 507 135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,
500 15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202, 508 234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,
501 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242, 509 16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
502 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202, 510 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,
503 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248, 511 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
504 2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255, 512 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,
505 252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,15, 513 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,
506 182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,252, 514 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,
507 242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129, 515 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,
508 124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88, 516 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,
509 4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135, 517 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,
510 244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252, 518 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,
511 242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252, 519 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,
512 242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252, 520 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,
513 242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252, 521 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,
514 234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4, 522 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,
515 252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16, 523 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
516 4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15, 524 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
517 16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242, 525 156,255,232,244,107,255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,
518 15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252, 526 141,20,194,65,137,192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,
519 242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255, 527 139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,
520 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194, 528 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
521 255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4, 529 232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,
522 199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4, 530 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
523 252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234, 531 16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,
524 221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,107,255, 532 255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,
525 15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,192, 533 255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204,
526 65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,139,149,233,133,192, 534 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,141,
527 15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44, 535 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
528 252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193, 536 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
529 232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199,68,202,4,237,137, 537 139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,
530 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 538 202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
531 255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221, 539 36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,
532 28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202, 540 233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,
533 255,72,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193, 541 233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
534 232,16,252,255,36,252,235,255,141,76,202,12,141,68,194,4,189,237,137,105, 542 16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,
535 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182, 543 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,
536 232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253, 544 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,
537 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 545 139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,
538 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248, 546 248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
539 139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137, 547 235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,
540 77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139, 548 213,137,194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,
541 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129, 549 252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,
542 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135, 550 242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,
543 213,141,139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247, 551 233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
544 208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199, 552 252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,
545 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182, 553 132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,
546 232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,129,233,235,15, 554 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
547 132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251, 555 72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,
548 1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,16,4,199, 556 252,233,137,116,36,100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,
549 255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,
550 252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,
551 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,
552 253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,
553 202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,232,
554 131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,
555 137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,
556 1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
557 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,36,96,
558 137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251,248,1,65,
559 137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249,248,
560 2,137,252,233,137,194,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,
561 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 557 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
562 36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,30, 558 36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,
563 15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96,139,139, 559 100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,
564 233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135, 560 255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,29,139,149,233,
565 137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202, 561 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,
566 4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 562 131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,
567 248,3,137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252,233,244, 563 5,137,252,233,232,251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247,
568 2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157, 564 208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,
569 255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158, 565 244,249,248,2,139,20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,
570 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139, 566 253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,
571 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 567 232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254,
572 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233, 568 72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,
573 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, 569 139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,233,
574 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198, 570 139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,252,234,
575 4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141, 571 4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,
576 233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248, 572 252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,
577 5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15, 573 15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,
578 182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239, 574 239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,
579 15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,3, 575 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,
580 141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129, 576 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,
581 121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194, 577 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
582 248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 578 194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135,
583 255,36,252,235,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137, 579 129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,
584 233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129, 580 35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,
585 233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124, 581 129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,
586 253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193, 582 139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,
587 224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137, 583 232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,252,253,185,237,
588 44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 584 252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,
589 255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233, 585 201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,
590 235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239, 586 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,
591 15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15, 587 59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
592 133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239, 588 248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,
589 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,
590 1,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,
591 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,
592 4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,
593 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,
594 244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,
595 182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,
596 244,1,139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,
597 252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,
598 244,158,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,
599 78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,139,
600 4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,
601 141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,
602 239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,
603 250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,
604 139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,
605 4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,2,137,76,36,
606 80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80,252,233,244,
607 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,
608 252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,80,199,68,36,84,237,
609 137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,234,137,205,
610 137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193,252,233,244,
611 2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,
612 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,
613 44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,
593 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202, 614 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,
594 4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232, 615 4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,
595 16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252, 616 16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,
596 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124, 617 246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,
597 253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235, 618 233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,
598 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15, 619 2,255,137,124,36,80,255,252,242,15,45,60,199,255,248,1,141,12,202,139,105,
599 182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239, 620 252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,
600 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, 621 132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,
601 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 622 233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,
602 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 623 15,133,244,3,248,4,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,
603 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137, 624 232,16,252,255,36,252,235,248,5,139,76,36,96,137,145,233,137,252,234,65,137,
604 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248, 625 192,137,205,137,116,36,100,232,251,1,33,139,149,233,15,182,78,252,253,252,
605 4,131,189,233,0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235, 626 233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233,137,133,233,252,
606 15,132,244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133, 627 233,244,2,255,3,68,36,84,255,129,124,253,202,4,239,139,44,202,15,133,244,
607 244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244, 628 51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,
608 37,248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145, 629 205,131,198,4,252,255,36,252,235,255,141,76,202,8,137,215,139,105,252,248,
609 233,76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149, 630 129,121,253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,
610 233,139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233, 631 237,15,133,244,253,248,1,137,106,252,248,137,68,36,84,131,232,1,15,132,244,
611 137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124, 632 249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,
612 253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193, 633 15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233,1,15,135,244,
613 224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235, 634 251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,
614 15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182, 635 36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,72,252,
615 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233, 636 247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,
616 0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78, 637 248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,
617 252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141, 638 233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,
618 233,15,182,78,252,253,252,233,244,2,255,137,124,36,80,255,252,242,15,45,60, 639 105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,
619 199,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253, 640 105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,
620 248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244, 641 137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,
621 251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193, 642 255,36,252,235,255,15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,
622 8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15, 643 182,128,233,137,124,36,80,141,188,253,194,233,43,122,252,252,133,252,237,
623 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36, 644 15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,
624 96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33, 645 252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,
625 139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139, 646 244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,
626 131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124, 647 244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
627 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181, 648 252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,
628 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141, 649 3,255,137,197,193,252,237,3,131,197,1,137,108,36,84,139,108,36,96,1,200,59,
629 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248, 650 133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,
630 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, 651 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
631 68,36,84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4, 652 137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,252,233,
632 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36, 653 232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,
633 84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15, 654 248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255,248,
634 182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244, 655 13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,
635 4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,191,233, 656 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,
636 139,191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137, 657 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,
637 215,139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252, 658 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,
638 236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139, 659 15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,248,139,191,233,139,
639 105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237, 660 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
640 15,133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15, 661 248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,
641 182,205,131,198,4,252,255,36,252,235,255,15,182,252,236,139,66,252,248,141, 662 192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,
642 12,202,139,128,233,15,182,128,233,137,124,36,80,141,188,253,194,233,43,122, 663 252,241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,
643 252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131, 664 15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,
644 244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131, 665 253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,
645 193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131, 666 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,
646 193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182, 667 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
647 232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137, 668 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
648 208,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36, 669 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
649 84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137, 670 15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,
650 1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233, 671 134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,
651 244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131, 672 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
652 252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244, 673 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
653 6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15, 674 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,
654 133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137, 675 233,139,4,129,72,139,128,233,139,108,36,96,137,147,233,137,171,233,76,137,
655 111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2, 676 100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225,72,
656 248,3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139, 677 129,252,236,239,102,15,127,49,102,15,127,185,233,102,68,15,127,129,233,102,
657 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255, 678 68,15,127,137,233,102,68,15,127,145,233,102,68,15,127,153,233,102,68,15,127,
658 15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,202,139,122,252, 679 161,233,102,68,15,127,169,233,102,68,15,127,177,233,102,68,15,127,185,233,
659 248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232, 680 252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,
660 16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194, 681 193,232,16,252,255,36,252,235,255,137,252,245,209,252,237,129,229,239,102,
661 252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,230,252,248, 682 131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141,12,
662 41,252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,102,131, 683 202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,
663 172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135, 684 15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,
664 244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239, 685 57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,
665 15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65, 686 248,137,104,252,252,137,120,252,248,139,108,36,96,141,12,200,59,141,233,15,
666 16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102, 687 135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,
667 15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221, 688 1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,
668 17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255, 689 137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,
669 217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,141,180,253,134,233, 690 139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
670 255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141, 691 235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,
671 180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139, 692 2,255,139,106,252,248,72,139,189,233,139,108,36,96,141,68,194,252,248,137,
672 105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252, 693 149,233,141,136,233,59,141,233,137,133,233,255,137,252,233,255,72,137,252,
673 248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,65,252, 694 250,137,252,233,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,
674 248,255,139,139,233,139,4,129,72,139,128,233,139,108,36,96,137,147,233,137, 695 255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,
675 171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,124,36, 696 233,139,114,252,252,252,233,244,12,255,254,0
676 16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127,185,233,102,68,
677 15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233,102,68,15,127,
678 153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68,15,127,177,233,
679 102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,
680 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137,252,245,209,252,
681 237,129,229,239,102,131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,
682 108,36,96,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,
683 244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,
684 252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,
685 4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,12,
686 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,
687 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,
688 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
689 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,
690 16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,
691 244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,96,141,
692 68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,252,
693 233,255,72,137,252,250,137,252,233,255,15,135,244,21,199,131,233,237,255,
694 252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,
695 252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
696}; 697};
697 698
698enum { 699enum {
@@ -1237,193 +1238,193 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1237 if (sse) { 1238 if (sse) {
1238 dasm_put(Dst, 5173); 1239 dasm_put(Dst, 5173);
1239 } else { 1240 } else {
1240 dasm_put(Dst, 5193); 1241 dasm_put(Dst, 5195);
1241 } 1242 }
1242 dasm_put(Dst, 5213, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1243 dasm_put(Dst, 5215, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1243 dasm_put(Dst, 2162); 1244 dasm_put(Dst, 2162);
1244 if (sse) { 1245 if (sse) {
1245 dasm_put(Dst, 5321); 1246 dasm_put(Dst, 5323);
1246 } else { 1247 } else {
1247 dasm_put(Dst, 5332); 1248 dasm_put(Dst, 5334);
1248 } 1249 }
1249 dasm_put(Dst, 5340, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1250 dasm_put(Dst, 5342, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1250 if (sse) { 1251 if (sse) {
1251 dasm_put(Dst, 5370); 1252 dasm_put(Dst, 5372);
1252 } else { 1253 } else {
1253 } 1254 }
1254 dasm_put(Dst, 5377, sizeof(GCstr)-1); 1255 dasm_put(Dst, 5379, sizeof(GCstr)-1);
1255 dasm_put(Dst, 5452, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1256 dasm_put(Dst, 5454, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1256 dasm_put(Dst, 5511, LJ_TSTR, LJ_TISNUM); 1257 dasm_put(Dst, 5513, LJ_TSTR, LJ_TISNUM);
1257 if (sse) { 1258 if (sse) {
1258 dasm_put(Dst, 5532); 1259 dasm_put(Dst, 5534);
1259 } else { 1260 } else {
1260 dasm_put(Dst, 5539); 1261 dasm_put(Dst, 5541);
1261 } 1262 }
1262 dasm_put(Dst, 5551, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1263 dasm_put(Dst, 5553, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1263 dasm_put(Dst, 5616, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1264 dasm_put(Dst, 5618, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1264 dasm_put(Dst, 5679, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1265 dasm_put(Dst, 5681, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1265 dasm_put(Dst, 5750, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1266 dasm_put(Dst, 5752, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1266 dasm_put(Dst, 5835, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1267 dasm_put(Dst, 5837, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1267 dasm_put(Dst, 5905, 1+1, LJ_TTAB); 1268 dasm_put(Dst, 5907, 1+1, LJ_TTAB);
1268 if (sse) { 1269 if (sse) {
1269 dasm_put(Dst, 5973); 1270 dasm_put(Dst, 5975);
1270 } else { 1271 } else {
1271 } 1272 }
1272 if (sse) { 1273 if (sse) {
1273 dasm_put(Dst, 5983, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1274 dasm_put(Dst, 5985, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1274 } else { 1275 } else {
1275 } 1276 }
1276 if (sse) { 1277 if (sse) {
1277 dasm_put(Dst, 6035, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1278 dasm_put(Dst, 6037, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1278 } else { 1279 } else {
1279 } 1280 }
1280 dasm_put(Dst, 6078, LJ_TISNUM); 1281 dasm_put(Dst, 6080, LJ_TISNUM);
1281 if (sse) { 1282 if (sse) {
1282 dasm_put(Dst, 6105); 1283 dasm_put(Dst, 6107);
1283 } else { 1284 } else {
1284 } 1285 }
1285 dasm_put(Dst, 6122); 1286 dasm_put(Dst, 6124);
1286 if (sse) { 1287 if (sse) {
1287 dasm_put(Dst, 6130, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1288 dasm_put(Dst, 6132, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1288 } else { 1289 } else {
1289 } 1290 }
1290 dasm_put(Dst, 6078, LJ_TISNUM); 1291 dasm_put(Dst, 6080, LJ_TISNUM);
1291 if (sse) { 1292 if (sse) {
1292 dasm_put(Dst, 6173); 1293 dasm_put(Dst, 6175);
1293 } else { 1294 } else {
1294 } 1295 }
1295 dasm_put(Dst, 6122); 1296 dasm_put(Dst, 6124);
1296 if (sse) { 1297 if (sse) {
1297 dasm_put(Dst, 6190, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1298 dasm_put(Dst, 6192, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1298 } else { 1299 } else {
1299 } 1300 }
1300 dasm_put(Dst, 6078, LJ_TISNUM); 1301 dasm_put(Dst, 6080, LJ_TISNUM);
1301 if (sse) { 1302 if (sse) {
1302 dasm_put(Dst, 6233); 1303 dasm_put(Dst, 6235);
1303 } else { 1304 } else {
1304 } 1305 }
1305 dasm_put(Dst, 6122); 1306 dasm_put(Dst, 6124);
1306 if (sse) { 1307 if (sse) {
1307 dasm_put(Dst, 6250, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1308 dasm_put(Dst, 6252, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1308 } else { 1309 } else {
1309 } 1310 }
1310 dasm_put(Dst, 6293); 1311 dasm_put(Dst, 6295);
1311 if (sse) { 1312 if (sse) {
1312 dasm_put(Dst, 6300, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1313 dasm_put(Dst, 6302, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1313 } else { 1314 } else {
1314 } 1315 }
1315 dasm_put(Dst, 6343); 1316 dasm_put(Dst, 6345);
1316 if (sse) { 1317 if (sse) {
1317 dasm_put(Dst, 6347); 1318 dasm_put(Dst, 6349);
1318 } else { 1319 } else {
1319 } 1320 }
1320 dasm_put(Dst, 6359); 1321 dasm_put(Dst, 6361);
1321 if (sse) { 1322 if (sse) {
1322 dasm_put(Dst, 6370, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1323 dasm_put(Dst, 6372, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1323 } else { 1324 } else {
1324 } 1325 }
1325 dasm_put(Dst, 6439); 1326 dasm_put(Dst, 6441);
1326 if (sse) { 1327 if (sse) {
1327 dasm_put(Dst, 6448, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1328 dasm_put(Dst, 6450, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1328 } else { 1329 } else {
1329 } 1330 }
1330 dasm_put(Dst, 6517); 1331 dasm_put(Dst, 6519);
1331 if (sse) { 1332 if (sse) {
1332 dasm_put(Dst, 6527, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1333 dasm_put(Dst, 6529, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1333 } else { 1334 } else {
1334 } 1335 }
1335 dasm_put(Dst, 6596); 1336 dasm_put(Dst, 6598);
1336 if (sse) { 1337 if (sse) {
1337 dasm_put(Dst, 6606, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1338 dasm_put(Dst, 6608, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1338 } else { 1339 } else {
1339 } 1340 }
1340 dasm_put(Dst, 6675); 1341 dasm_put(Dst, 6677);
1341 if (sse) { 1342 if (sse) {
1342 dasm_put(Dst, 6684, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1343 dasm_put(Dst, 6686, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1343 } else { 1344 } else {
1344 } 1345 }
1345 dasm_put(Dst, 6753, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1346 dasm_put(Dst, 6755, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1346 dasm_put(Dst, 6831, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1347 dasm_put(Dst, 6833, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1347 dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top)); 1348 dasm_put(Dst, 6959, Dt1(->top), Dt1(->base), Dt1(->top));
1348#if LJ_HASJIT 1349#if LJ_HASJIT
1349 dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1350 dasm_put(Dst, 6998, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1350#endif 1351#endif
1351 dasm_put(Dst, 7027, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1352 dasm_put(Dst, 7029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1352 dasm_put(Dst, 7078, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1353 dasm_put(Dst, 7080, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1353#if LJ_HASJIT 1354#if LJ_HASJIT
1354 dasm_put(Dst, 7145, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1355 dasm_put(Dst, 7147, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1355#endif 1356#endif
1356 dasm_put(Dst, 7192); 1357 dasm_put(Dst, 7194);
1357#if LJ_HASJIT 1358#if LJ_HASJIT
1358 dasm_put(Dst, 7022); 1359 dasm_put(Dst, 7024);
1359#endif 1360#endif
1360 dasm_put(Dst, 7199); 1361 dasm_put(Dst, 7201);
1361#if LJ_HASJIT 1362#if LJ_HASJIT
1362 dasm_put(Dst, 7202); 1363 dasm_put(Dst, 7204);
1363#endif 1364#endif
1364 dasm_put(Dst, 7212, Dt1(->base), Dt1(->top)); 1365 dasm_put(Dst, 7214, Dt1(->base), Dt1(->top));
1365#if LJ_HASJIT 1366#if LJ_HASJIT
1366 dasm_put(Dst, 7246); 1367 dasm_put(Dst, 7248);
1367#endif 1368#endif
1368 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top)); 1369 dasm_put(Dst, 7253, Dt1(->base), Dt1(->top));
1369#if LJ_HASJIT 1370#if LJ_HASJIT
1370 dasm_put(Dst, 7282, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1371 dasm_put(Dst, 7284, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1371#endif 1372#endif
1372 dasm_put(Dst, 7512); 1373 dasm_put(Dst, 7514);
1373#if LJ_HASJIT 1374#if LJ_HASJIT
1374 dasm_put(Dst, 7515, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1375 dasm_put(Dst, 7517, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1375 dasm_put(Dst, 7657); 1376 dasm_put(Dst, 7659);
1376#endif 1377#endif
1377 dasm_put(Dst, 7683); 1378 dasm_put(Dst, 7685);
1378 if (!sse) { 1379 if (!sse) {
1379 dasm_put(Dst, 7686); 1380 dasm_put(Dst, 7688);
1380 } 1381 }
1381 dasm_put(Dst, 7731, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1382 dasm_put(Dst, 7733, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1382 if (!sse) { 1383 if (!sse) {
1383 dasm_put(Dst, 7817); 1384 dasm_put(Dst, 7819);
1384 } 1385 }
1385 dasm_put(Dst, 7862, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1386 dasm_put(Dst, 7864, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1386 if (!sse) { 1387 if (!sse) {
1387 dasm_put(Dst, 7948); 1388 dasm_put(Dst, 7950);
1388 } 1389 }
1389 dasm_put(Dst, 7987, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1390 dasm_put(Dst, 7989, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1390 if (sse) { 1391 if (sse) {
1391 dasm_put(Dst, 8076, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1392 dasm_put(Dst, 8078, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1392 } else { 1393 } else {
1393 dasm_put(Dst, 8190); 1394 dasm_put(Dst, 8192);
1394 } 1395 }
1395 dasm_put(Dst, 8237); 1396 dasm_put(Dst, 8239);
1396 if (!sse) { 1397 if (!sse) {
1397 } else { 1398 } else {
1398 dasm_put(Dst, 8311); 1399 dasm_put(Dst, 8313);
1399 } 1400 }
1400 dasm_put(Dst, 8314); 1401 dasm_put(Dst, 8316);
1401 dasm_put(Dst, 8399, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1402 dasm_put(Dst, 8401, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1402 dasm_put(Dst, 8500, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1403 dasm_put(Dst, 8502, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1403 dasm_put(Dst, 8668); 1404 dasm_put(Dst, 8670);
1404 if (sse) { 1405 if (sse) {
1405 dasm_put(Dst, 8709); 1406 dasm_put(Dst, 8711);
1406 dasm_put(Dst, 8779); 1407 dasm_put(Dst, 8781);
1407 dasm_put(Dst, 8852); 1408 dasm_put(Dst, 8854);
1408 } else { 1409 } else {
1409 dasm_put(Dst, 8902); 1410 dasm_put(Dst, 8904);
1410 dasm_put(Dst, 8994); 1411 dasm_put(Dst, 8996);
1411 } 1412 }
1412 dasm_put(Dst, 9040); 1413 dasm_put(Dst, 9042);
1413 if (sse) { 1414 if (sse) {
1414 dasm_put(Dst, 9046, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1415 dasm_put(Dst, 9048, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1415 dasm_put(Dst, 9135, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1416 dasm_put(Dst, 9137, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1416 } else { 1417 } else {
1417 dasm_put(Dst, 9259); 1418 dasm_put(Dst, 9261);
1418 dasm_put(Dst, 9342); 1419 dasm_put(Dst, 9344);
1419 if (cmov) { 1420 if (cmov) {
1420 dasm_put(Dst, 9397); 1421 dasm_put(Dst, 9399);
1421 } else { 1422 } else {
1422 dasm_put(Dst, 9416); 1423 dasm_put(Dst, 9418);
1423 } 1424 }
1424 dasm_put(Dst, 9255); 1425 dasm_put(Dst, 9257);
1425 } 1426 }
1426 dasm_put(Dst, 9457); 1427 dasm_put(Dst, 9459);
1427} 1428}
1428 1429
1429/* Generate the code for a single instruction. */ 1430/* Generate the code for a single instruction. */
@@ -1439,595 +1440,595 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1439 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1440 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1440 1441
1441 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1442 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1442 dasm_put(Dst, 9483, LJ_TISNUM, LJ_TISNUM); 1443 dasm_put(Dst, 9485, LJ_TISNUM, LJ_TISNUM);
1443 if (sse) { 1444 if (sse) {
1444 dasm_put(Dst, 9504); 1445 dasm_put(Dst, 9506);
1445 } else { 1446 } else {
1446 dasm_put(Dst, 9519); 1447 dasm_put(Dst, 9521);
1447 if (cmov) { 1448 if (cmov) {
1448 dasm_put(Dst, 9529); 1449 dasm_put(Dst, 9531);
1449 } else { 1450 } else {
1450 dasm_put(Dst, 9535); 1451 dasm_put(Dst, 9537);
1451 } 1452 }
1452 } 1453 }
1453 switch (op) { 1454 switch (op) {
1454 case BC_ISLT: 1455 case BC_ISLT:
1455 dasm_put(Dst, 9542); 1456 dasm_put(Dst, 9544);
1456 break; 1457 break;
1457 case BC_ISGE: 1458 case BC_ISGE:
1458 dasm_put(Dst, 9337); 1459 dasm_put(Dst, 9339);
1459 break; 1460 break;
1460 case BC_ISLE: 1461 case BC_ISLE:
1461 dasm_put(Dst, 5900); 1462 dasm_put(Dst, 5902);
1462 break; 1463 break;
1463 case BC_ISGT: 1464 case BC_ISGT:
1464 dasm_put(Dst, 9547); 1465 dasm_put(Dst, 9549);
1465 break; 1466 break;
1466 default: break; /* Shut up GCC. */ 1467 default: break; /* Shut up GCC. */
1467 } 1468 }
1468 dasm_put(Dst, 9552, -BCBIAS_J*4); 1469 dasm_put(Dst, 9554, -BCBIAS_J*4);
1469 break; 1470 break;
1470 1471
1471 case BC_ISEQV: case BC_ISNEV: 1472 case BC_ISEQV: case BC_ISNEV:
1472 vk = op == BC_ISEQV; 1473 vk = op == BC_ISEQV;
1473 dasm_put(Dst, 9586, LJ_TISNUM, LJ_TISNUM); 1474 dasm_put(Dst, 9588, LJ_TISNUM, LJ_TISNUM);
1474 if (sse) { 1475 if (sse) {
1475 dasm_put(Dst, 9612); 1476 dasm_put(Dst, 9614);
1476 } else { 1477 } else {
1477 dasm_put(Dst, 9624); 1478 dasm_put(Dst, 9626);
1478 if (cmov) { 1479 if (cmov) {
1479 dasm_put(Dst, 9529); 1480 dasm_put(Dst, 9531);
1480 } else { 1481 } else {
1481 dasm_put(Dst, 9535); 1482 dasm_put(Dst, 9537);
1482 } 1483 }
1483 } 1484 }
1484 iseqne_fp: 1485 iseqne_fp:
1485 if (vk) { 1486 if (vk) {
1486 dasm_put(Dst, 9631); 1487 dasm_put(Dst, 9633);
1487 } else { 1488 } else {
1488 dasm_put(Dst, 9640); 1489 dasm_put(Dst, 9642);
1489 } 1490 }
1490 iseqne_end: 1491 iseqne_end:
1491 if (vk) { 1492 if (vk) {
1492 dasm_put(Dst, 9649, -BCBIAS_J*4); 1493 dasm_put(Dst, 9651, -BCBIAS_J*4);
1493 } else { 1494 } else {
1494 dasm_put(Dst, 9664, -BCBIAS_J*4); 1495 dasm_put(Dst, 9666, -BCBIAS_J*4);
1495 } 1496 }
1496 dasm_put(Dst, 9566); 1497 dasm_put(Dst, 9568);
1497 if (op == BC_ISEQV || op == BC_ISNEV) { 1498 if (op == BC_ISEQV || op == BC_ISNEV) {
1498 dasm_put(Dst, 9679, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1499 dasm_put(Dst, 9681, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1499 if (vk) { 1500 if (vk) {
1500 dasm_put(Dst, 9737); 1501 dasm_put(Dst, 9739);
1501 } else { 1502 } else {
1502 dasm_put(Dst, 9741); 1503 dasm_put(Dst, 9743);
1503 } 1504 }
1504 dasm_put(Dst, 9747); 1505 dasm_put(Dst, 9749);
1505 } 1506 }
1506 break; 1507 break;
1507 case BC_ISEQS: case BC_ISNES: 1508 case BC_ISEQS: case BC_ISNES:
1508 vk = op == BC_ISEQS; 1509 vk = op == BC_ISEQS;
1509 dasm_put(Dst, 9752, LJ_TSTR); 1510 dasm_put(Dst, 9754, LJ_TSTR);
1510 iseqne_test: 1511 iseqne_test:
1511 if (vk) { 1512 if (vk) {
1512 dasm_put(Dst, 9635); 1513 dasm_put(Dst, 9637);
1513 } else { 1514 } else {
1514 dasm_put(Dst, 2802); 1515 dasm_put(Dst, 2802);
1515 } 1516 }
1516 goto iseqne_end; 1517 goto iseqne_end;
1517 case BC_ISEQN: case BC_ISNEN: 1518 case BC_ISEQN: case BC_ISNEN:
1518 vk = op == BC_ISEQN; 1519 vk = op == BC_ISEQN;
1519 dasm_put(Dst, 9776, LJ_TISNUM); 1520 dasm_put(Dst, 9778, LJ_TISNUM);
1520 if (sse) { 1521 if (sse) {
1521 dasm_put(Dst, 9790); 1522 dasm_put(Dst, 9792);
1522 } else { 1523 } else {
1523 dasm_put(Dst, 9802); 1524 dasm_put(Dst, 9804);
1524 if (cmov) { 1525 if (cmov) {
1525 dasm_put(Dst, 9529); 1526 dasm_put(Dst, 9531);
1526 } else { 1527 } else {
1527 dasm_put(Dst, 9535); 1528 dasm_put(Dst, 9537);
1528 } 1529 }
1529 } 1530 }
1530 goto iseqne_fp; 1531 goto iseqne_fp;
1531 case BC_ISEQP: case BC_ISNEP: 1532 case BC_ISEQP: case BC_ISNEP:
1532 vk = op == BC_ISEQP; 1533 vk = op == BC_ISEQP;
1533 dasm_put(Dst, 9809); 1534 dasm_put(Dst, 9811);
1534 goto iseqne_test; 1535 goto iseqne_test;
1535 1536
1536 /* -- Unary test and copy ops ------------------------------------------- */ 1537 /* -- Unary test and copy ops ------------------------------------------- */
1537 1538
1538 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1539 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1539 dasm_put(Dst, 9821, LJ_TISTRUECOND); 1540 dasm_put(Dst, 9823, LJ_TISTRUECOND);
1540 if (op == BC_IST || op == BC_ISTC) { 1541 if (op == BC_IST || op == BC_ISTC) {
1541 dasm_put(Dst, 9833); 1542 dasm_put(Dst, 9835);
1542 } else { 1543 } else {
1543 dasm_put(Dst, 9838); 1544 dasm_put(Dst, 9840);
1544 } 1545 }
1545 if (op == BC_ISTC || op == BC_ISFC) { 1546 if (op == BC_ISTC || op == BC_ISFC) {
1546 dasm_put(Dst, 9843); 1547 dasm_put(Dst, 9845);
1547 } 1548 }
1548 dasm_put(Dst, 9854, -BCBIAS_J*4); 1549 dasm_put(Dst, 9856, -BCBIAS_J*4);
1549 break; 1550 break;
1550 1551
1551 /* -- Unary ops --------------------------------------------------------- */ 1552 /* -- Unary ops --------------------------------------------------------- */
1552 1553
1553 case BC_MOV: 1554 case BC_MOV:
1554 dasm_put(Dst, 9886); 1555 dasm_put(Dst, 9888);
1555 break; 1556 break;
1556 case BC_NOT: 1557 case BC_NOT:
1557 dasm_put(Dst, 9920, LJ_TISTRUECOND, LJ_TTRUE); 1558 dasm_put(Dst, 9922, LJ_TISTRUECOND, LJ_TTRUE);
1558 break; 1559 break;
1559 case BC_UNM: 1560 case BC_UNM:
1560 dasm_put(Dst, 9956, LJ_TISNUM); 1561 dasm_put(Dst, 9958, LJ_TISNUM);
1561 if (sse) { 1562 if (sse) {
1562 dasm_put(Dst, 9967, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1563 dasm_put(Dst, 9969, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1563 } else { 1564 } else {
1564 dasm_put(Dst, 9992); 1565 dasm_put(Dst, 9994);
1565 } 1566 }
1566 dasm_put(Dst, 9566); 1567 dasm_put(Dst, 9568);
1567 break; 1568 break;
1568 case BC_LEN: 1569 case BC_LEN:
1569 dasm_put(Dst, 10001, LJ_TSTR); 1570 dasm_put(Dst, 10003, LJ_TSTR);
1570 if (sse) { 1571 if (sse) {
1571 dasm_put(Dst, 10015, Dt5(->len)); 1572 dasm_put(Dst, 10017, Dt5(->len));
1572 } else { 1573 } else {
1573 dasm_put(Dst, 10033, Dt5(->len)); 1574 dasm_put(Dst, 10035, Dt5(->len));
1574 } 1575 }
1575 dasm_put(Dst, 10042, LJ_TTAB); 1576 dasm_put(Dst, 10044, LJ_TTAB);
1576 if (sse) { 1577 if (sse) {
1577 dasm_put(Dst, 10083); 1578 dasm_put(Dst, 10085);
1578 } else { 1579 } else {
1579 } 1580 }
1580 dasm_put(Dst, 10092); 1581 dasm_put(Dst, 10094);
1581 break; 1582 break;
1582 1583
1583 /* -- Binary ops -------------------------------------------------------- */ 1584 /* -- Binary ops -------------------------------------------------------- */
1584 1585
1585 1586
1586 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1587 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1587 dasm_put(Dst, 10102); 1588 dasm_put(Dst, 10104);
1588 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1589 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1589 switch (vk) { 1590 switch (vk) {
1590 case 0: 1591 case 0:
1591 dasm_put(Dst, 10110, LJ_TISNUM); 1592 dasm_put(Dst, 10112, LJ_TISNUM);
1592 if (sse) { 1593 if (sse) {
1593 dasm_put(Dst, 10122); 1594 dasm_put(Dst, 10124);
1594 } else { 1595 } else {
1595 dasm_put(Dst, 10136); 1596 dasm_put(Dst, 10138);
1596 } 1597 }
1597 break; 1598 break;
1598 case 1: 1599 case 1:
1599 dasm_put(Dst, 10144, LJ_TISNUM); 1600 dasm_put(Dst, 10146, LJ_TISNUM);
1600 if (sse) { 1601 if (sse) {
1601 dasm_put(Dst, 10156); 1602 dasm_put(Dst, 10158);
1602 } else { 1603 } else {
1603 dasm_put(Dst, 10170); 1604 dasm_put(Dst, 10172);
1604 } 1605 }
1605 break; 1606 break;
1606 default: 1607 default:
1607 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1608 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1608 if (sse) { 1609 if (sse) {
1609 dasm_put(Dst, 10200); 1610 dasm_put(Dst, 10202);
1610 } else { 1611 } else {
1611 dasm_put(Dst, 10214); 1612 dasm_put(Dst, 10216);
1612 } 1613 }
1613 break; 1614 break;
1614 } 1615 }
1615 if (sse) { 1616 if (sse) {
1616 dasm_put(Dst, 9985); 1617 dasm_put(Dst, 9987);
1617 } else { 1618 } else {
1618 dasm_put(Dst, 9997); 1619 dasm_put(Dst, 9999);
1619 } 1620 }
1620 dasm_put(Dst, 9566); 1621 dasm_put(Dst, 9568);
1621 break; 1622 break;
1622 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1623 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1623 dasm_put(Dst, 10102); 1624 dasm_put(Dst, 10104);
1624 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1625 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1625 switch (vk) { 1626 switch (vk) {
1626 case 0: 1627 case 0:
1627 dasm_put(Dst, 10110, LJ_TISNUM); 1628 dasm_put(Dst, 10112, LJ_TISNUM);
1628 if (sse) { 1629 if (sse) {
1629 dasm_put(Dst, 10222); 1630 dasm_put(Dst, 10224);
1630 } else { 1631 } else {
1631 dasm_put(Dst, 10236); 1632 dasm_put(Dst, 10238);
1632 } 1633 }
1633 break; 1634 break;
1634 case 1: 1635 case 1:
1635 dasm_put(Dst, 10144, LJ_TISNUM); 1636 dasm_put(Dst, 10146, LJ_TISNUM);
1636 if (sse) { 1637 if (sse) {
1637 dasm_put(Dst, 10244); 1638 dasm_put(Dst, 10246);
1638 } else { 1639 } else {
1639 dasm_put(Dst, 10258); 1640 dasm_put(Dst, 10260);
1640 } 1641 }
1641 break; 1642 break;
1642 default: 1643 default:
1643 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1644 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1644 if (sse) { 1645 if (sse) {
1645 dasm_put(Dst, 10266); 1646 dasm_put(Dst, 10268);
1646 } else { 1647 } else {
1647 dasm_put(Dst, 10280); 1648 dasm_put(Dst, 10282);
1648 } 1649 }
1649 break; 1650 break;
1650 } 1651 }
1651 if (sse) { 1652 if (sse) {
1652 dasm_put(Dst, 9985); 1653 dasm_put(Dst, 9987);
1653 } else { 1654 } else {
1654 dasm_put(Dst, 9997); 1655 dasm_put(Dst, 9999);
1655 } 1656 }
1656 dasm_put(Dst, 9566); 1657 dasm_put(Dst, 9568);
1657 break; 1658 break;
1658 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1659 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1659 dasm_put(Dst, 10102); 1660 dasm_put(Dst, 10104);
1660 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1661 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1661 switch (vk) { 1662 switch (vk) {
1662 case 0: 1663 case 0:
1663 dasm_put(Dst, 10110, LJ_TISNUM); 1664 dasm_put(Dst, 10112, LJ_TISNUM);
1664 if (sse) { 1665 if (sse) {
1665 dasm_put(Dst, 10288); 1666 dasm_put(Dst, 10290);
1666 } else { 1667 } else {
1667 dasm_put(Dst, 10302); 1668 dasm_put(Dst, 10304);
1668 } 1669 }
1669 break; 1670 break;
1670 case 1: 1671 case 1:
1671 dasm_put(Dst, 10144, LJ_TISNUM); 1672 dasm_put(Dst, 10146, LJ_TISNUM);
1672 if (sse) { 1673 if (sse) {
1673 dasm_put(Dst, 10310); 1674 dasm_put(Dst, 10312);
1674 } else { 1675 } else {
1675 dasm_put(Dst, 10324); 1676 dasm_put(Dst, 10326);
1676 } 1677 }
1677 break; 1678 break;
1678 default: 1679 default:
1679 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1680 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1680 if (sse) { 1681 if (sse) {
1681 dasm_put(Dst, 10332); 1682 dasm_put(Dst, 10334);
1682 } else { 1683 } else {
1683 dasm_put(Dst, 10346); 1684 dasm_put(Dst, 10348);
1684 } 1685 }
1685 break; 1686 break;
1686 } 1687 }
1687 if (sse) { 1688 if (sse) {
1688 dasm_put(Dst, 9985); 1689 dasm_put(Dst, 9987);
1689 } else { 1690 } else {
1690 dasm_put(Dst, 9997); 1691 dasm_put(Dst, 9999);
1691 } 1692 }
1692 dasm_put(Dst, 9566); 1693 dasm_put(Dst, 9568);
1693 break; 1694 break;
1694 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1695 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1695 dasm_put(Dst, 10102); 1696 dasm_put(Dst, 10104);
1696 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1697 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1697 switch (vk) { 1698 switch (vk) {
1698 case 0: 1699 case 0:
1699 dasm_put(Dst, 10110, LJ_TISNUM); 1700 dasm_put(Dst, 10112, LJ_TISNUM);
1700 if (sse) { 1701 if (sse) {
1701 dasm_put(Dst, 10354); 1702 dasm_put(Dst, 10356);
1702 } else { 1703 } else {
1703 dasm_put(Dst, 10368); 1704 dasm_put(Dst, 10370);
1704 } 1705 }
1705 break; 1706 break;
1706 case 1: 1707 case 1:
1707 dasm_put(Dst, 10144, LJ_TISNUM); 1708 dasm_put(Dst, 10146, LJ_TISNUM);
1708 if (sse) { 1709 if (sse) {
1709 dasm_put(Dst, 10376); 1710 dasm_put(Dst, 10378);
1710 } else { 1711 } else {
1711 dasm_put(Dst, 10390); 1712 dasm_put(Dst, 10392);
1712 } 1713 }
1713 break; 1714 break;
1714 default: 1715 default:
1715 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1716 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1716 if (sse) { 1717 if (sse) {
1717 dasm_put(Dst, 10398); 1718 dasm_put(Dst, 10400);
1718 } else { 1719 } else {
1719 dasm_put(Dst, 10412); 1720 dasm_put(Dst, 10414);
1720 } 1721 }
1721 break; 1722 break;
1722 } 1723 }
1723 if (sse) { 1724 if (sse) {
1724 dasm_put(Dst, 9985); 1725 dasm_put(Dst, 9987);
1725 } else { 1726 } else {
1726 dasm_put(Dst, 9997); 1727 dasm_put(Dst, 9999);
1727 } 1728 }
1728 dasm_put(Dst, 9566); 1729 dasm_put(Dst, 9568);
1729 break; 1730 break;
1730 case BC_MODVN: 1731 case BC_MODVN:
1731 dasm_put(Dst, 10102); 1732 dasm_put(Dst, 10104);
1732 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1733 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1733 switch (vk) { 1734 switch (vk) {
1734 case 0: 1735 case 0:
1735 dasm_put(Dst, 10110, LJ_TISNUM); 1736 dasm_put(Dst, 10112, LJ_TISNUM);
1736 if (sse) { 1737 if (sse) {
1737 dasm_put(Dst, 10420); 1738 dasm_put(Dst, 10422);
1738 } else { 1739 } else {
1739 dasm_put(Dst, 10434); 1740 dasm_put(Dst, 10436);
1740 } 1741 }
1741 break; 1742 break;
1742 case 1: 1743 case 1:
1743 dasm_put(Dst, 10144, LJ_TISNUM); 1744 dasm_put(Dst, 10146, LJ_TISNUM);
1744 if (sse) { 1745 if (sse) {
1745 dasm_put(Dst, 10442); 1746 dasm_put(Dst, 10444);
1746 } else { 1747 } else {
1747 dasm_put(Dst, 10456); 1748 dasm_put(Dst, 10458);
1748 } 1749 }
1749 break; 1750 break;
1750 default: 1751 default:
1751 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1752 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1752 if (sse) { 1753 if (sse) {
1753 dasm_put(Dst, 10464); 1754 dasm_put(Dst, 10466);
1754 } else { 1755 } else {
1755 dasm_put(Dst, 10478); 1756 dasm_put(Dst, 10480);
1756 } 1757 }
1757 break; 1758 break;
1758 } 1759 }
1759 dasm_put(Dst, 10486); 1760 dasm_put(Dst, 10488);
1760 if (sse) { 1761 if (sse) {
1761 dasm_put(Dst, 9985); 1762 dasm_put(Dst, 9987);
1762 } else { 1763 } else {
1763 dasm_put(Dst, 9997); 1764 dasm_put(Dst, 9999);
1764 } 1765 }
1765 dasm_put(Dst, 9566); 1766 dasm_put(Dst, 9568);
1766 break; 1767 break;
1767 case BC_MODNV: case BC_MODVV: 1768 case BC_MODNV: case BC_MODVV:
1768 dasm_put(Dst, 10102); 1769 dasm_put(Dst, 10104);
1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1770 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1770 switch (vk) { 1771 switch (vk) {
1771 case 0: 1772 case 0:
1772 dasm_put(Dst, 10110, LJ_TISNUM); 1773 dasm_put(Dst, 10112, LJ_TISNUM);
1773 if (sse) { 1774 if (sse) {
1774 dasm_put(Dst, 10420); 1775 dasm_put(Dst, 10422);
1775 } else { 1776 } else {
1776 dasm_put(Dst, 10434); 1777 dasm_put(Dst, 10436);
1777 } 1778 }
1778 break; 1779 break;
1779 case 1: 1780 case 1:
1780 dasm_put(Dst, 10144, LJ_TISNUM); 1781 dasm_put(Dst, 10146, LJ_TISNUM);
1781 if (sse) { 1782 if (sse) {
1782 dasm_put(Dst, 10442); 1783 dasm_put(Dst, 10444);
1783 } else { 1784 } else {
1784 dasm_put(Dst, 10456); 1785 dasm_put(Dst, 10458);
1785 } 1786 }
1786 break; 1787 break;
1787 default: 1788 default:
1788 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1789 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1789 if (sse) { 1790 if (sse) {
1790 dasm_put(Dst, 10464); 1791 dasm_put(Dst, 10466);
1791 } else { 1792 } else {
1792 dasm_put(Dst, 10478); 1793 dasm_put(Dst, 10480);
1793 } 1794 }
1794 break; 1795 break;
1795 } 1796 }
1796 dasm_put(Dst, 10492); 1797 dasm_put(Dst, 10494);
1797 break; 1798 break;
1798 case BC_POW: 1799 case BC_POW:
1799 dasm_put(Dst, 10102); 1800 dasm_put(Dst, 10104);
1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1801 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1801 switch (vk) { 1802 switch (vk) {
1802 case 0: 1803 case 0:
1803 dasm_put(Dst, 10110, LJ_TISNUM); 1804 dasm_put(Dst, 10112, LJ_TISNUM);
1804 if (sse) { 1805 if (sse) {
1805 dasm_put(Dst, 10420); 1806 dasm_put(Dst, 10422);
1806 } else { 1807 } else {
1807 dasm_put(Dst, 10434); 1808 dasm_put(Dst, 10436);
1808 } 1809 }
1809 break; 1810 break;
1810 case 1: 1811 case 1:
1811 dasm_put(Dst, 10144, LJ_TISNUM); 1812 dasm_put(Dst, 10146, LJ_TISNUM);
1812 if (sse) { 1813 if (sse) {
1813 dasm_put(Dst, 10442); 1814 dasm_put(Dst, 10444);
1814 } else { 1815 } else {
1815 dasm_put(Dst, 10456); 1816 dasm_put(Dst, 10458);
1816 } 1817 }
1817 break; 1818 break;
1818 default: 1819 default:
1819 dasm_put(Dst, 10178, LJ_TISNUM, LJ_TISNUM); 1820 dasm_put(Dst, 10180, LJ_TISNUM, LJ_TISNUM);
1820 if (sse) { 1821 if (sse) {
1821 dasm_put(Dst, 10464); 1822 dasm_put(Dst, 10466);
1822 } else { 1823 } else {
1823 dasm_put(Dst, 10478); 1824 dasm_put(Dst, 10480);
1824 } 1825 }
1825 break; 1826 break;
1826 } 1827 }
1827 dasm_put(Dst, 10497); 1828 dasm_put(Dst, 10499);
1828 if (sse) { 1829 if (sse) {
1829 dasm_put(Dst, 9985); 1830 dasm_put(Dst, 9987);
1830 } else { 1831 } else {
1831 dasm_put(Dst, 9997); 1832 dasm_put(Dst, 9999);
1832 } 1833 }
1833 dasm_put(Dst, 9566); 1834 dasm_put(Dst, 9568);
1834 break; 1835 break;
1835 1836
1836 case BC_CAT: 1837 case BC_CAT:
1837 dasm_put(Dst, 10501, Dt1(->base), Dt1(->base)); 1838 dasm_put(Dst, 10503, Dt1(->base), Dt1(->base));
1838 break; 1839 break;
1839 1840
1840 /* -- Constant ops ------------------------------------------------------ */ 1841 /* -- Constant ops ------------------------------------------------------ */
1841 1842
1842 case BC_KSTR: 1843 case BC_KSTR:
1843 dasm_put(Dst, 10591, LJ_TSTR); 1844 dasm_put(Dst, 10593, LJ_TSTR);
1844 break; 1845 break;
1845 case BC_KSHORT: 1846 case BC_KSHORT:
1846 if (sse) { 1847 if (sse) {
1847 dasm_put(Dst, 10626); 1848 dasm_put(Dst, 10628);
1848 } else { 1849 } else {
1849 dasm_put(Dst, 10641); 1850 dasm_put(Dst, 10643);
1850 } 1851 }
1851 dasm_put(Dst, 9566); 1852 dasm_put(Dst, 9568);
1852 break; 1853 break;
1853 case BC_KNUM: 1854 case BC_KNUM:
1854 if (sse) { 1855 if (sse) {
1855 dasm_put(Dst, 10649); 1856 dasm_put(Dst, 10651);
1856 } else { 1857 } else {
1857 dasm_put(Dst, 10662); 1858 dasm_put(Dst, 10664);
1858 } 1859 }
1859 dasm_put(Dst, 9566); 1860 dasm_put(Dst, 9568);
1860 break; 1861 break;
1861 case BC_KPRI: 1862 case BC_KPRI:
1862 dasm_put(Dst, 10669); 1863 dasm_put(Dst, 10671);
1863 break; 1864 break;
1864 case BC_KNIL: 1865 case BC_KNIL:
1865 dasm_put(Dst, 10697, LJ_TNIL); 1866 dasm_put(Dst, 10699, LJ_TNIL);
1866 break; 1867 break;
1867 1868
1868 /* -- Upvalue and function ops ------------------------------------------ */ 1869 /* -- Upvalue and function ops ------------------------------------------ */
1869 1870
1870 case BC_UGET: 1871 case BC_UGET:
1871 dasm_put(Dst, 10744, offsetof(GCfuncL, uvptr), DtA(->v)); 1872 dasm_put(Dst, 10746, offsetof(GCfuncL, uvptr), DtA(->v));
1872 break; 1873 break;
1873 case BC_USETV: 1874 case BC_USETV:
1874#define TV2MARKOFS \ 1875#define TV2MARKOFS \
1875 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1876 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1876 dasm_put(Dst, 10789, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1877 dasm_put(Dst, 10791, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1877 dasm_put(Dst, 10880); 1878 dasm_put(Dst, 10882);
1878 break; 1879 break;
1879#undef TV2MARKOFS 1880#undef TV2MARKOFS
1880 case BC_USETS: 1881 case BC_USETS:
1881 dasm_put(Dst, 10892, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1882 dasm_put(Dst, 10894, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1882 break; 1883 break;
1883 case BC_USETN: 1884 case BC_USETN:
1884 dasm_put(Dst, 10985); 1885 dasm_put(Dst, 10987);
1885 if (sse) { 1886 if (sse) {
1886 dasm_put(Dst, 10990); 1887 dasm_put(Dst, 10992);
1887 } else { 1888 } else {
1888 dasm_put(Dst, 9805); 1889 dasm_put(Dst, 9807);
1889 } 1890 }
1890 dasm_put(Dst, 10997, offsetof(GCfuncL, uvptr), DtA(->v)); 1891 dasm_put(Dst, 10999, offsetof(GCfuncL, uvptr), DtA(->v));
1891 if (sse) { 1892 if (sse) {
1892 dasm_put(Dst, 11006); 1893 dasm_put(Dst, 11008);
1893 } else { 1894 } else {
1894 dasm_put(Dst, 11012); 1895 dasm_put(Dst, 11014);
1895 } 1896 }
1896 dasm_put(Dst, 9566); 1897 dasm_put(Dst, 9568);
1897 break; 1898 break;
1898 case BC_USETP: 1899 case BC_USETP:
1899 dasm_put(Dst, 11015, offsetof(GCfuncL, uvptr), DtA(->v)); 1900 dasm_put(Dst, 11017, offsetof(GCfuncL, uvptr), DtA(->v));
1900 break; 1901 break;
1901 case BC_UCLO: 1902 case BC_UCLO:
1902 dasm_put(Dst, 11054, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1903 dasm_put(Dst, 11056, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1903 break; 1904 break;
1904 1905
1905 case BC_FNEW: 1906 case BC_FNEW:
1906 dasm_put(Dst, 11109, Dt1(->base), Dt1(->base), LJ_TFUNC); 1907 dasm_put(Dst, 11111, Dt1(->base), Dt1(->base), LJ_TFUNC);
1907 break; 1908 break;
1908 1909
1909 /* -- Table ops --------------------------------------------------------- */ 1910 /* -- Table ops --------------------------------------------------------- */
1910 1911
1911 case BC_TNEW: 1912 case BC_TNEW:
1912 dasm_put(Dst, 11175, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1913 dasm_put(Dst, 11177, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1913 break; 1914 break;
1914 case BC_TDUP: 1915 case BC_TDUP:
1915 dasm_put(Dst, 11297, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1916 dasm_put(Dst, 11299, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1916 break; 1917 break;
1917 1918
1918 case BC_GGET: 1919 case BC_GGET:
1919 dasm_put(Dst, 11392, Dt7(->env)); 1920 dasm_put(Dst, 11394, Dt7(->env));
1920 break; 1921 break;
1921 case BC_GSET: 1922 case BC_GSET:
1922 dasm_put(Dst, 11411, Dt7(->env)); 1923 dasm_put(Dst, 11413, Dt7(->env));
1923 break; 1924 break;
1924 1925
1925 case BC_TGETV: 1926 case BC_TGETV:
1926 dasm_put(Dst, 11430, LJ_TTAB, LJ_TISNUM); 1927 dasm_put(Dst, 11432, LJ_TTAB, LJ_TISNUM);
1927 if (sse) { 1928 if (sse) {
1928 dasm_put(Dst, 11463); 1929 dasm_put(Dst, 11465);
1929 } else { 1930 } else {
1930 } 1931 }
1931 dasm_put(Dst, 11484, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1932 dasm_put(Dst, 11486, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1932 dasm_put(Dst, 11577, LJ_TSTR); 1933 dasm_put(Dst, 11579, LJ_TSTR);
1933 break; 1934 break;
1934 case BC_TGETS: 1935 case BC_TGETS:
1935 dasm_put(Dst, 11595, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1936 dasm_put(Dst, 11597, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1936 dasm_put(Dst, 11680, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1937 dasm_put(Dst, 11682, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1937 break; 1938 break;
1938 case BC_TGETB: 1939 case BC_TGETB:
1939 dasm_put(Dst, 11752, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1940 dasm_put(Dst, 11754, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1940 dasm_put(Dst, 10092); 1941 dasm_put(Dst, 10094);
1941 break; 1942 break;
1942 1943
1943 case BC_TSETV: 1944 case BC_TSETV:
1944 dasm_put(Dst, 11852, LJ_TTAB, LJ_TISNUM); 1945 dasm_put(Dst, 11854, LJ_TTAB, LJ_TISNUM);
1945 if (sse) { 1946 if (sse) {
1946 dasm_put(Dst, 11463); 1947 dasm_put(Dst, 11465);
1947 } else { 1948 } else {
1948 } 1949 }
1949 dasm_put(Dst, 11885, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1950 dasm_put(Dst, 11887, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1950 dasm_put(Dst, 11969, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1951 dasm_put(Dst, 11971, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1951 break; 1952 break;
1952 case BC_TSETS: 1953 case BC_TSETS:
1953 dasm_put(Dst, 12031, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1954 dasm_put(Dst, 12033, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1954 dasm_put(Dst, 12107, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1955 dasm_put(Dst, 12109, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1955 dasm_put(Dst, 12200, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1956 dasm_put(Dst, 12202, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1956 break; 1957 break;
1957 case BC_TSETB: 1958 case BC_TSETB:
1958 dasm_put(Dst, 12291, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1959 dasm_put(Dst, 12293, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1959 dasm_put(Dst, 12390, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1960 dasm_put(Dst, 12392, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1960 break; 1961 break;
1961 1962
1962 case BC_TSETM: 1963 case BC_TSETM:
1963 dasm_put(Dst, 12436); 1964 dasm_put(Dst, 12438);
1964 if (sse) { 1965 if (sse) {
1965 dasm_put(Dst, 12441); 1966 dasm_put(Dst, 12443);
1966 } else { 1967 } else {
1967 } 1968 }
1968 dasm_put(Dst, 12448, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1969 dasm_put(Dst, 12450, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1969 dasm_put(Dst, 12588, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1970 dasm_put(Dst, 12590, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1970 break; 1971 break;
1971 1972
1972 /* -- Calls and vararg handling ----------------------------------------- */ 1973 /* -- Calls and vararg handling ----------------------------------------- */
1973 1974
1974 case BC_CALL: case BC_CALLM: 1975 case BC_CALL: case BC_CALLM:
1975 dasm_put(Dst, 10106); 1976 dasm_put(Dst, 10108);
1976 if (op == BC_CALLM) { 1977 if (op == BC_CALLM) {
1977 dasm_put(Dst, 12606); 1978 dasm_put(Dst, 12608);
1978 } 1979 }
1979 dasm_put(Dst, 12611, LJ_TFUNC, Dt7(->pc)); 1980 dasm_put(Dst, 12613, LJ_TFUNC, Dt7(->pc));
1980 break; 1981 break;
1981 1982
1982 case BC_CALLMT: 1983 case BC_CALLMT:
1983 dasm_put(Dst, 12606); 1984 dasm_put(Dst, 12608);
1984 break; 1985 break;
1985 case BC_CALLT: 1986 case BC_CALLT:
1986 dasm_put(Dst, 12653, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1987 dasm_put(Dst, 12655, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1987 dasm_put(Dst, 12772, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1988 dasm_put(Dst, 12774, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1988 break; 1989 break;
1989 1990
1990 case BC_ITERC: 1991 case BC_ITERC:
1991 dasm_put(Dst, 12830, LJ_TFUNC, 2+1, Dt7(->pc)); 1992 dasm_put(Dst, 12832, LJ_TFUNC, 2+1, Dt7(->pc));
1992 break; 1993 break;
1993 1994
1994 case BC_VARG: 1995 case BC_VARG:
1995 dasm_put(Dst, 12911, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1996 dasm_put(Dst, 12913, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1996 dasm_put(Dst, 13056, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1997 dasm_put(Dst, 13058, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1997 break; 1998 break;
1998 1999
1999 /* -- Returns ----------------------------------------------------------- */ 2000 /* -- Returns ----------------------------------------------------------- */
2000 2001
2001 case BC_RETM: 2002 case BC_RETM:
2002 dasm_put(Dst, 12606); 2003 dasm_put(Dst, 12608);
2003 break; 2004 break;
2004 2005
2005 case BC_RET: case BC_RET0: case BC_RET1: 2006 case BC_RET: case BC_RET0: case BC_RET1:
2006 if (op != BC_RET0) { 2007 if (op != BC_RET0) {
2007 dasm_put(Dst, 13155); 2008 dasm_put(Dst, 13157);
2008 } 2009 }
2009 dasm_put(Dst, 13159, FRAME_TYPE); 2010 dasm_put(Dst, 13161, FRAME_TYPE);
2010 switch (op) { 2011 switch (op) {
2011 case BC_RET: 2012 case BC_RET:
2012 dasm_put(Dst, 13178); 2013 dasm_put(Dst, 13180);
2013 break; 2014 break;
2014 case BC_RET1: 2015 case BC_RET1:
2015 dasm_put(Dst, 13236); 2016 dasm_put(Dst, 13238);
2016 /* fallthrough */ 2017 /* fallthrough */
2017 case BC_RET0: 2018 case BC_RET0:
2018 dasm_put(Dst, 13252); 2019 dasm_put(Dst, 13254);
2019 default: 2020 default:
2020 break; 2021 break;
2021 } 2022 }
2022 dasm_put(Dst, 13263, Dt7(->pc), PC2PROTO(k)); 2023 dasm_put(Dst, 13265, Dt7(->pc), PC2PROTO(k));
2023 if (op == BC_RET) { 2024 if (op == BC_RET) {
2024 dasm_put(Dst, 13307, LJ_TNIL); 2025 dasm_put(Dst, 13309, LJ_TNIL);
2025 } else { 2026 } else {
2026 dasm_put(Dst, 13316, LJ_TNIL); 2027 dasm_put(Dst, 13318, LJ_TNIL);
2027 } 2028 }
2028 dasm_put(Dst, 13323); 2029 dasm_put(Dst, 13325);
2029 if (op != BC_RET0) { 2030 if (op != BC_RET0) {
2030 dasm_put(Dst, 13344); 2031 dasm_put(Dst, 13346);
2031 } 2032 }
2032 dasm_put(Dst, 4570); 2033 dasm_put(Dst, 4570);
2033 break; 2034 break;
@@ -2037,7 +2038,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2037 2038
2038 case BC_FORL: 2039 case BC_FORL:
2039#if LJ_HASJIT 2040#if LJ_HASJIT
2040 dasm_put(Dst, 13348, HOTCOUNT_PCMASK, GG_DISP2HOT); 2041 dasm_put(Dst, 13350, HOTCOUNT_PCMASK, GG_DISP2HOT);
2041#endif 2042#endif
2042 break; 2043 break;
2043 2044
@@ -2049,57 +2050,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2049 case BC_FORI: 2050 case BC_FORI:
2050 case BC_IFORL: 2051 case BC_IFORL:
2051 vk = (op == BC_IFORL || op == BC_JFORL); 2052 vk = (op == BC_IFORL || op == BC_JFORL);
2052 dasm_put(Dst, 13369); 2053 dasm_put(Dst, 13371);
2053 if (!vk) { 2054 if (!vk) {
2054 dasm_put(Dst, 13373, LJ_TISNUM, LJ_TISNUM); 2055 dasm_put(Dst, 13375, LJ_TISNUM, LJ_TISNUM);
2055 } 2056 }
2056 dasm_put(Dst, 13392); 2057 dasm_put(Dst, 13394);
2057 if (!vk) { 2058 if (!vk) {
2058 dasm_put(Dst, 13396, LJ_TISNUM); 2059 dasm_put(Dst, 13398, LJ_TISNUM);
2059 } 2060 }
2060 if (sse) { 2061 if (sse) {
2061 dasm_put(Dst, 13405); 2062 dasm_put(Dst, 13407);
2062 if (vk) { 2063 if (vk) {
2063 dasm_put(Dst, 13417); 2064 dasm_put(Dst, 13419);
2064 } else { 2065 } else {
2065 dasm_put(Dst, 13436); 2066 dasm_put(Dst, 13438);
2066 } 2067 }
2067 dasm_put(Dst, 13441); 2068 dasm_put(Dst, 13443);
2068 } else { 2069 } else {
2069 dasm_put(Dst, 13454); 2070 dasm_put(Dst, 13456);
2070 if (vk) { 2071 if (vk) {
2071 dasm_put(Dst, 13460); 2072 dasm_put(Dst, 13462);
2072 } else { 2073 } else {
2073 dasm_put(Dst, 13476); 2074 dasm_put(Dst, 13478);
2074 } 2075 }
2075 dasm_put(Dst, 13484); 2076 dasm_put(Dst, 13486);
2076 if (cmov) { 2077 if (cmov) {
2077 dasm_put(Dst, 9529); 2078 dasm_put(Dst, 9531);
2078 } else { 2079 } else {
2079 dasm_put(Dst, 9535); 2080 dasm_put(Dst, 9537);
2080 } 2081 }
2081 if (!cmov) { 2082 if (!cmov) {
2082 dasm_put(Dst, 13489); 2083 dasm_put(Dst, 13491);
2083 } 2084 }
2084 } 2085 }
2085 if (op == BC_FORI) { 2086 if (op == BC_FORI) {
2086 dasm_put(Dst, 13495, -BCBIAS_J*4); 2087 dasm_put(Dst, 13497, -BCBIAS_J*4);
2087 } else if (op == BC_JFORI) { 2088 } else if (op == BC_JFORI) {
2088 dasm_put(Dst, 13505, -BCBIAS_J*4, BC_JLOOP); 2089 dasm_put(Dst, 13507, -BCBIAS_J*4, BC_JLOOP);
2089 } else if (op == BC_IFORL) { 2090 } else if (op == BC_IFORL) {
2090 dasm_put(Dst, 13519, -BCBIAS_J*4); 2091 dasm_put(Dst, 13521, -BCBIAS_J*4);
2091 } else { 2092 } else {
2092 dasm_put(Dst, 13515, BC_JLOOP); 2093 dasm_put(Dst, 13517, BC_JLOOP);
2093 } 2094 }
2094 dasm_put(Dst, 9564); 2095 dasm_put(Dst, 9566);
2095 if (sse) { 2096 if (sse) {
2096 dasm_put(Dst, 13529); 2097 dasm_put(Dst, 13531);
2097 } 2098 }
2098 break; 2099 break;
2099 2100
2100 case BC_ITERL: 2101 case BC_ITERL:
2101#if LJ_HASJIT 2102#if LJ_HASJIT
2102 dasm_put(Dst, 13348, HOTCOUNT_PCMASK, GG_DISP2HOT); 2103 dasm_put(Dst, 13350, HOTCOUNT_PCMASK, GG_DISP2HOT);
2103#endif 2104#endif
2104 break; 2105 break;
2105 2106
@@ -2108,33 +2109,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2108 break; 2109 break;
2109#endif 2110#endif
2110 case BC_IITERL: 2111 case BC_IITERL:
2111 dasm_put(Dst, 13540, LJ_TNIL); 2112 dasm_put(Dst, 13542, LJ_TNIL);
2112 if (op == BC_JITERL) { 2113 if (op == BC_JITERL) {
2113 dasm_put(Dst, 13555, BC_JLOOP); 2114 dasm_put(Dst, 13557, BC_JLOOP);
2114 } else { 2115 } else {
2115 dasm_put(Dst, 13569, -BCBIAS_J*4); 2116 dasm_put(Dst, 13571, -BCBIAS_J*4);
2116 } 2117 }
2117 dasm_put(Dst, 9864); 2118 dasm_put(Dst, 9866);
2118 break; 2119 break;
2119 2120
2120 case BC_LOOP: 2121 case BC_LOOP:
2121#if LJ_HASJIT 2122#if LJ_HASJIT
2122 dasm_put(Dst, 13348, HOTCOUNT_PCMASK, GG_DISP2HOT); 2123 dasm_put(Dst, 13350, HOTCOUNT_PCMASK, GG_DISP2HOT);
2123#endif 2124#endif
2124 break; 2125 break;
2125 2126
2126 case BC_ILOOP: 2127 case BC_ILOOP:
2127 dasm_put(Dst, 9566); 2128 dasm_put(Dst, 9568);
2128 break; 2129 break;
2129 2130
2130 case BC_JLOOP: 2131 case BC_JLOOP:
2131#if LJ_HASJIT 2132#if LJ_HASJIT
2132 dasm_put(Dst, 13585, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16); 2133 dasm_put(Dst, 13587, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16);
2133#endif 2134#endif
2134 break; 2135 break;
2135 2136
2136 case BC_JMP: 2137 case BC_JMP:
2137 dasm_put(Dst, 13694, -BCBIAS_J*4); 2138 dasm_put(Dst, 13696, -BCBIAS_J*4);
2138 break; 2139 break;
2139 2140
2140 /* -- Function headers -------------------------------------------------- */ 2141 /* -- Function headers -------------------------------------------------- */
@@ -2148,7 +2149,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2148 2149
2149 case BC_FUNCF: 2150 case BC_FUNCF:
2150#if LJ_HASJIT 2151#if LJ_HASJIT
2151 dasm_put(Dst, 13719, HOTCOUNT_PCMASK, GG_DISP2HOT); 2152 dasm_put(Dst, 13721, HOTCOUNT_PCMASK, GG_DISP2HOT);
2152#endif 2153#endif
2153 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2154 case BC_FUNCV: /* NYI: compiled vararg functions. */
2154 break; 2155 break;
@@ -2158,47 +2159,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2158 break; 2159 break;
2159#endif 2160#endif
2160 case BC_IFUNCF: 2161 case BC_IFUNCF:
2161 dasm_put(Dst, 13740, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2162 dasm_put(Dst, 13742, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2162 if (op == BC_JFUNCF) { 2163 if (op == BC_JFUNCF) {
2163 dasm_put(Dst, 13770, BC_JLOOP); 2164 dasm_put(Dst, 13772, BC_JLOOP);
2164 } else { 2165 } else {
2165 dasm_put(Dst, 9566); 2166 dasm_put(Dst, 9568);
2166 } 2167 }
2167 dasm_put(Dst, 13779, LJ_TNIL); 2168 dasm_put(Dst, 13781, LJ_TNIL);
2168 break; 2169 break;
2169 2170
2170 case BC_JFUNCV: 2171 case BC_JFUNCV:
2171#if !LJ_HASJIT 2172#if !LJ_HASJIT
2172 break; 2173 break;
2173#endif 2174#endif
2174 dasm_put(Dst, 9257); 2175 dasm_put(Dst, 9259);
2175 break; /* NYI: compiled vararg functions. */ 2176 break; /* NYI: compiled vararg functions. */
2176 2177
2177 case BC_IFUNCV: 2178 case BC_IFUNCV:
2178 dasm_put(Dst, 13801, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2179 dasm_put(Dst, 13803, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2179 if (op == BC_JFUNCV) { 2180 if (op == BC_JFUNCV) {
2180 dasm_put(Dst, 13770, BC_JLOOP); 2181 dasm_put(Dst, 13772, BC_JLOOP);
2181 } else { 2182 } else {
2182 dasm_put(Dst, 13892, -4+PC2PROTO(k)); 2183 dasm_put(Dst, 13894, -4+PC2PROTO(k));
2183 } 2184 }
2184 dasm_put(Dst, 13915, LJ_TNIL); 2185 dasm_put(Dst, 13917, LJ_TNIL);
2185 break; 2186 break;
2186 2187
2187 case BC_FUNCC: 2188 case BC_FUNCC:
2188 case BC_FUNCCW: 2189 case BC_FUNCCW:
2189 dasm_put(Dst, 13937, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2190 dasm_put(Dst, 13939, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2190 if (op == BC_FUNCC) { 2191 if (op == BC_FUNCC) {
2191 dasm_put(Dst, 13967); 2192 dasm_put(Dst, 13969);
2192 } else { 2193 } else {
2193 dasm_put(Dst, 13971); 2194 dasm_put(Dst, 13973);
2194 } 2195 }
2195 dasm_put(Dst, 13979, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2196 dasm_put(Dst, 13981, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2196 if (op == BC_FUNCC) { 2197 if (op == BC_FUNCC) {
2197 dasm_put(Dst, 13988); 2198 dasm_put(Dst, 13990);
2198 } else { 2199 } else {
2199 dasm_put(Dst, 13992, DISPATCH_GL(wrapf)); 2200 dasm_put(Dst, 13994, DISPATCH_GL(wrapf));
2200 } 2201 }
2201 dasm_put(Dst, 13997, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2202 dasm_put(Dst, 13999, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2202 break; 2203 break;
2203 2204
2204 /* ---------------------------------------------------------------------- */ 2205 /* ---------------------------------------------------------------------- */
@@ -2226,7 +2227,7 @@ static int build_backend(BuildCtx *ctx)
2226 2227
2227 build_subroutines(ctx, cmov, sse); 2228 build_subroutines(ctx, cmov, sse);
2228 2229
2229 dasm_put(Dst, 14022); 2230 dasm_put(Dst, 14024);
2230 for (op = 0; op < BC__MAX; op++) 2231 for (op = 0; op < BC__MAX; op++)
2231 build_ins(ctx, (BCOp)op, op, cmov, sse); 2232 build_ins(ctx, (BCOp)op, op, cmov, sse);
2232 2233
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 7b4c13a9..d5d73de5 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -2027,9 +2027,9 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
2027 | cmp NARGS:RD, 1+1; jne ->fff_fallback // *Exactly* 1 arg. 2027 | cmp NARGS:RD, 1+1; jne ->fff_fallback // *Exactly* 1 arg.
2028 | cmp dword [BASE+4], LJ_TISNUM; ja ->fff_fallback 2028 | cmp dword [BASE+4], LJ_TISNUM; ja ->fff_fallback
2029 if (sse) { 2029 if (sse) {
2030 | cvtsd2si RC, qword [BASE] 2030 | cvtsd2si RB, qword [BASE]
2031 | cmp RC, 255; ja ->fff_fallback 2031 | cmp RB, 255; ja ->fff_fallback
2032 | mov TMP2, RC 2032 | mov TMP2, RB
2033 } else { 2033 } else {
2034 | fld qword [BASE] 2034 | fld qword [BASE]
2035 | fistp TMP2 2035 | fistp TMP2
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index a139f494..7279fa76 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[15229] = { 15static const unsigned char build_actionlist[15231] = {
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,
@@ -277,468 +277,468 @@ static const unsigned char build_actionlist[15229] = {
277 131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233, 277 131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,
278 244,63,255,137,108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171, 278 244,63,255,137,108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171,
279 233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244, 279 233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,
280 55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,2,61,252,255,0,0,0,15, 280 55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,42,129,252,253,252,255,
281 135,244,55,137,68,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0, 281 0,0,0,15,135,244,55,137,108,36,20,255,221,2,219,92,36,20,129,124,36,20,252,
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, 282 255,0,0,0,15,135,244,55,255,199,68,36,8,1,0,0,0,141,68,36,20,248,113,139,
283 137,149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,149,233, 283 108,36,48,137,149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,
284 139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114, 284 149,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,
285 139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,20,252,255, 285 248,114,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,
286 252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129, 286 20,252,255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,
287 122,253,20,239,255,252,242,15,45,106,16,137,108,36,20,255,221,66,16,219,92, 287 247,129,122,253,20,239,255,252,242,15,45,106,16,137,108,36,20,255,221,66,
288 36,20,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 288 16,219,92,36,20,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,
289 244,55,139,42,137,108,36,12,139,173,233,255,252,242,15,45,74,8,255,221,66, 289 239,15,135,244,55,139,42,137,108,36,12,139,173,233,255,252,242,15,45,74,8,
290 8,219,92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133, 290 255,221,66,8,219,92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,
291 201,15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,115,141,172,253, 291 248,2,133,201,15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,115,141,
292 13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5,15,140,244, 292 172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5,
293 252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132, 293 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,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, 294 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
295 248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,55,139,171, 295 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
296 233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133, 296 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,
297 244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255, 297 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,
298 221,66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,115,131,189,233, 298 45,66,8,255,221,66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,115,
299 1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,182,141,233, 299 131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,
300 139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139, 300 182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,
301 131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,244,55,139,171, 301 133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,
302 233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244, 302 244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,
303 55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129, 303 4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,
304 197,239,137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197, 304 15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,248,1,255,
305 1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,113, 305 15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,
306 248,120,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247, 306 36,20,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59,
307 232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131, 307 171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
308 233,255,15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233, 308 42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,20,137,
309 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252, 309 68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,
310 249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137, 310 130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,
311 244,1,137,252,240,139,116,36,20,252,233,244,113,248,121,129,252,248,239,15, 311 3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,113,248,121,
312 130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129, 312 129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,
313 122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119, 313 244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,
314 129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15, 314 15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,
315 182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248, 315 244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,
316 131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139, 316 122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
317 116,36,20,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253, 317 1,137,252,240,139,116,36,20,252,233,244,113,248,122,129,252,248,239,15,130,
318 4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242,15, 318 244,55,129,122,253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,
319 42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,64,255,248,123,129, 319 234,255,252,242,15,42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,
320 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 320 64,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
321 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126, 321 55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,
322 197,252,242,15,42,197,252,233,244,63,255,248,123,129,252,248,239,15,130,244, 322 15,88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,123,129,
323 55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36, 323 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,
324 16,221,28,36,219,4,36,252,233,244,64,255,248,124,129,252,248,239,15,130,244, 324 16,0,0,192,89,216,68,36,16,221,28,36,219,4,36,252,233,244,64,255,248,124,
325 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110, 325 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
326 205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,124,129,252, 326 16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,
327 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16, 327 15,126,197,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
328 0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,194,252, 328 135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,
329 240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,252, 329 255,137,68,36,20,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,
330 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16, 330 4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,
331 221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,127,129,252,248,239, 331 33,205,255,221,0,216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,
332 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56, 332 1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
333 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255, 333 55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,
334 248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 334 15,88,193,102,15,126,197,255,248,127,129,252,248,239,15,130,244,55,129,122,
335 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15, 335 253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,
336 16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16,221,28, 336 36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,
337 36,11,44,36,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 337 221,0,216,68,36,16,221,28,36,11,44,36,255,248,128,129,252,248,239,15,130,
338 135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 338 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,
339 252,242,15,88,193,102,15,126,197,255,248,128,129,252,248,239,15,130,244,55, 339 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,128,
340 129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16, 340 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,
341 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, 341 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,16,0,252,
342 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,129,129,252,248, 342 242,15,88,193,102,15,126,193,49,205,255,221,0,216,68,36,16,221,28,36,51,44,
343 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0, 343 36,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
344 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255, 344 55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,
345 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 345 15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,244,55,129,122,
346 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,205,252, 346 253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,
347 233,244,125,255,248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 347 36,139,44,36,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,
348 135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 348 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,
349 252,242,15,88,193,102,15,126,197,255,248,130,129,252,248,239,15,130,244,55, 349 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,130,
350 129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16, 350 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,
351 221,28,36,139,44,36,255,252,247,213,255,248,125,252,242,15,42,197,252,233, 351 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,247,213,255,248,
352 244,63,255,248,125,137,44,36,219,4,36,252,233,244,64,255,248,126,139,68,36, 352 125,252,242,15,42,197,252,233,244,63,255,248,125,137,44,36,219,4,36,252,233,
353 20,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4, 353 244,64,255,248,126,139,68,36,20,252,233,244,55,255,248,131,129,252,248,239,
354 239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242, 354 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
355 15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194, 355 55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,
356 252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,131,129,252, 356 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
357 15,126,201,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
358 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,
359 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,
360 8,139,44,36,255,211,229,137,193,252,233,244,125,255,248,132,129,252,248,239,
361 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
362 55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,
363 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
364 15,126,201,255,248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
365 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,
366 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,
367 8,139,44,36,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,
368 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
369 244,55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,
370 15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,
371 102,15,126,201,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,
372 15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,
373 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,
374 36,8,139,44,36,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,
357 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, 375 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
358 15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92, 376 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,
359 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,229,137, 377 213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,
360 193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253, 378 126,197,102,15,126,201,255,248,134,129,252,248,239,15,130,244,55,129,122,
361 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252, 379 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,
362 242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15, 380 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,
363 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,132, 381 139,76,36,8,139,44,36,255,211,197,137,193,252,233,244,125,255,248,135,129,
364 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 382 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,
365 12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16, 383 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,
366 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211, 384 110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,
367 252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,15,130,244,55, 385 15,126,197,102,15,126,201,255,248,135,129,252,248,239,15,130,244,55,129,122,
368 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242, 386 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,
369 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81, 387 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,
370 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 388 139,76,36,8,139,44,36,255,211,205,137,193,252,233,244,125,248,117,184,237,
371 255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 389 252,233,244,55,248,119,184,237,248,55,139,108,36,48,139,114,252,252,137,116,
372 129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216, 390 36,24,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
373 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36, 391 59,141,233,15,135,244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,
374 255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130, 392 133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,
375 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252, 393 57,114,252,252,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,
376 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 394 131,198,4,252,255,36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,
377 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 395 182,110,252,253,252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,
378 201,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 396 131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,
379 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89, 397 1,0,139,149,233,252,233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,
380 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 398 36,24,137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,
381 36,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15,130, 399 1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,
382 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252, 400 195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,
383 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 401 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,137,15,
384 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 402 182,131,233,168,235,15,133,244,251,252,233,244,247,248,138,15,182,131,233,
385 201,255,248,135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 403 168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,
386 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89, 404 247,168,235,15,132,244,251,248,1,255,139,108,36,48,137,149,233,137,252,242,
387 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 405 137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,
388 36,255,211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248, 406 15,182,110,252,252,15,183,70,252,254,252,255,164,253,171,233,248,139,131,
389 119,184,237,248,55,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233, 407 198,4,139,77,232,137,76,36,20,252,233,244,4,248,140,255,139,106,252,248,139,
390 141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135, 408 173,233,15,182,133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,
391 244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1, 409 252,242,141,139,233,137,171,233,137,116,36,24,232,251,1,21,252,233,244,3,
392 255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,114,252,252, 410 255,248,141,137,116,36,24,255,248,142,255,137,116,36,24,131,206,1,248,1,255,
393 15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252, 411 141,68,194,252,248,139,108,36,48,137,149,233,137,133,233,137,252,242,137,
394 255,36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253, 412 252,233,232,251,1,22,199,68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,
395 252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248, 413 233,137,193,139,133,233,41,208,137,205,15,182,78,252,253,193,232,3,131,192,
396 41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233, 414 1,252,255,229,248,143,255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,
397 252,233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149, 415 138,101,252,248,137,125,252,252,137,117,252,248,139,93,0,139,139,233,199,
398 233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233, 416 131,233,237,137,131,233,137,139,233,129,252,236,239,252,242,15,17,125,216,
399 139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,136,255,15, 417 252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,
400 182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132, 418 15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,
401 244,247,252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235, 419 139,171,233,139,147,233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,
402 15,133,244,251,252,233,244,247,248,138,15,182,131,233,168,235,15,133,244, 420 36,16,141,139,233,232,251,1,23,139,141,233,129,225,239,137,204,137,169,233,
403 251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132, 421 139,149,233,139,177,233,255,248,144,255,133,192,15,136,244,249,137,68,36,
404 244,251,248,1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,232,251, 422 20,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,
405 1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15, 423 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,
406 183,70,252,254,252,255,164,253,171,233,248,139,131,198,4,139,77,232,137,76, 424 244,248,139,68,36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,
407 36,20,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233, 425 194,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
408 141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137, 426 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
409 171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,141,137,116,36,24, 427 217,108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,
410 255,248,142,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139, 428 102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,
411 108,36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,22,199, 429 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,
412 68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233, 430 252,242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,
413 41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,143, 431 112,210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,
414 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137, 432 248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,
415 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131, 433 102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,
416 233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208, 434 4,139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,
417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,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 233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233,
420 232,251,1,23,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139,
421 177,233,255,248,144,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248,
422 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
423 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68,
424 36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251,
425 1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,
426 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
427 139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115,
428 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 435 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,
429 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 436 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
430 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210, 437 15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,
431 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 438 81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
432 248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252, 439 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,
433 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68, 440 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,
434 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184, 441 102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,
435 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15, 442 216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,
436 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 443 102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,
437 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15, 444 63,102,15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,
438 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255, 445 242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,
439 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217, 446 242,15,94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,
440 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252, 447 48,67,102,15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,
441 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102, 448 220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,
442 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 449 15,86,226,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,
443 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102, 450 194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,
444 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15, 451 242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,
445 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15, 452 255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,
446 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 453 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,
447 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134, 454 222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,4,129,124,
448 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184, 455 36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,
449 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102, 456 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
450 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193, 457 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,219,
451 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216, 458 84,36,4,219,68,36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,
452 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102, 459 244,254,15,138,244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,
453 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195, 460 1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,
454 255,248,88,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127, 461 15,132,244,251,217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,
455 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192, 462 220,201,252,233,244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,
456 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 463 244,253,217,232,222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,
457 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,219,84,36,4,219,68, 464 244,1,248,7,221,216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,
458 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138, 465 68,36,4,209,224,61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,
459 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0, 466 244,250,61,0,0,0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,
460 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 467 255,217,232,255,223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,
461 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233, 468 217,201,248,1,221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,
462 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232, 469 217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,
463 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221, 470 249,217,201,248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,
464 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224, 471 216,221,216,133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,
465 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0, 472 128,127,217,68,36,4,195,255,248,107,255,248,151,252,242,15,45,193,252,242,
466 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255, 473 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,
467 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1, 474 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,
468 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217, 475 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,
469 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201, 476 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,
470 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216, 477 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,
471 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217, 478 184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,
472 68,36,4,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102, 479 15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,
473 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244, 480 0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,
474 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244, 481 36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,
475 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232, 482 224,61,0,0,224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,
476 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252, 483 247,139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,
477 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252, 484 248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,
478 240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252, 485 217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,
479 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63, 486 15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
480 102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242, 487 81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,
481 15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0, 488 210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,
482 224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68, 489 15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,
483 36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68, 490 87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,
484 36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217, 491 15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,
485 252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68, 492 255,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,
486 36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15, 493 248,153,255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,
487 46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15, 494 15,135,244,248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,
488 118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208, 495 248,2,131,252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,
489 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136, 496 244,253,248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,
490 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192, 497 248,2,221,68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2,131,252,
491 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87, 498 248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,
492 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255, 499 1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,
493 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244, 500 244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
494 248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,248,2,131, 501 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
495 252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,244,253,248, 502 252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,
496 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221, 503 82,15,132,244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,
497 68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2,131,252,248,7,15, 504 195,248,2,131,252,248,5,15,130,244,88,15,132,244,149,131,252,248,7,15,132,
498 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217, 505 244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,
499 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244, 506 217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,
500 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131, 507 248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,
501 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242, 508 248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,
502 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,82,15,132, 509 216,195,255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,
503 244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2, 510 242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,
504 131,252,248,5,15,130,244,88,15,132,244,149,131,252,248,7,15,132,244,247,15, 511 88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,
505 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217, 512 252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,
506 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252, 513 89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,
507 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15, 514 248,5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,
508 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195, 515 232,244,107,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,
509 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16, 516 248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,
510 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248, 517 7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,
511 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244, 518 233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,
512 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252, 519 15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,
513 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132, 520 2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,
514 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,107, 521 244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,
515 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0, 522 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
516 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102, 523 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
517 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248, 524 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
518 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247, 525 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
526 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
519 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 527 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
520 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242, 528 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
521 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36, 529 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
522 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252, 530 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
523 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248, 531 244,248,217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,
524 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252, 532 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,
525 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216, 533 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,
526 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243, 534 255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,
527 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244, 535 41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,
528 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233, 536 194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,
529 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217, 537 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,
530 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248, 538 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
531 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0, 539 255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,
532 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124, 540 4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,
533 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129,124, 541 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,
534 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 542 247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,
535 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255, 543 70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,
536 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 544 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
537 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15, 545 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
538 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4, 546 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,
539 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244, 547 252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,
540 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15, 548 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,
541 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15, 549 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,
542 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, 550 4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,
543 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 551 247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,
544 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 552 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,
545 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 553 4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,137,
546 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131, 554 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
547 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198, 555 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,
548 4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46, 556 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,
549 4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139, 557 15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,
550 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247, 558 112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,
551 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253, 559 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,
552 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 560 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,
553 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 561 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,
554 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 562 129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,
555 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 563 242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,
556 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,48,255,252, 564 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
557 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193, 565 4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,
558 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 566 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,
559 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 567 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
560 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 568 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,
561 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239, 569 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
562 15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 570 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,
563 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1, 571 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,
564 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46, 572 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,
565 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199, 573 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,
566 255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242, 574 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,
567 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 575 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,
568 15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252, 576 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,
569 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252, 577 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,
570 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4, 578 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,
571 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16, 579 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,
572 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15, 580 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,
573 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242, 581 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
574 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252, 582 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
575 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 583 156,255,232,244,107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,
576 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199, 584 36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,
577 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252, 585 232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,
578 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220, 586 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,
579 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234, 587 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,
580 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199, 588 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,
581 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 589 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,
582 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244, 590 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
583 107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36, 591 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,
584 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,25,139, 592 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,
585 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68, 593 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
586 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 594 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,
587 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68, 595 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,
588 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 596 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
589 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70, 597 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,
590 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4, 598 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,
591 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131, 599 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
592 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137, 600 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,
593 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15, 601 235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233,
594 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253, 602 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,
595 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 603 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,
596 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139, 604 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,
597 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77, 605 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,
598 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6, 606 232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,
599 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239, 607 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
600 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141, 608 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,
601 139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,252,247,208,139,106, 609 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,
602 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252, 610 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,
603 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 611 20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,
604 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189, 612 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,
605 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252, 613 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,
606 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 614 36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
607 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252, 615 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,
608 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 616 36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,
609 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 617 1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,
610 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 618 132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78,
611 27,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 619 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
612 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 620 193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,
613 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,28,139,149, 621 232,251,1,30,15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,
614 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 622 139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,
615 232,131,198,4,193,232,16,252,255,36,171,255,139,108,36,48,137,149,233,139, 623 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,
616 139,233,59,139,233,137,116,36,24,15,131,244,251,248,1,137,193,37,252,255,
617 7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,132,244,249,248,2,137,
618 44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,
619 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 624 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
620 171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,30,15,183, 625 171,248,3,137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,
621 70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116, 626 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,
622 36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233, 627 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
623 232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 628 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,
624 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252, 629 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
625 233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247, 630 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,
626 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,252,247,208, 631 4,36,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
627 139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236, 632 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
628 15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124, 633 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,
629 253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252, 634 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,
630 242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244, 635 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
631 36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132, 636 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,
632 244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15, 637 124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,
633 182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244, 638 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,
634 1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233, 639 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,
635 244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244, 640 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,
636 157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234, 641 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,
637 4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201, 642 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
638 239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244, 643 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,
639 250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137, 644 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,
640 44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 645 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
641 16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139, 646 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,
642 137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246, 647 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,
643 129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129, 648 141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,
644 124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244, 649 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,
645 35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139, 650 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,
646 64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 651 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
647 16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 652 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
648 233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 653 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
649 239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255, 654 139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,
650 15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4, 655 244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,
651 239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108, 656 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,
652 202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193, 657 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
653 232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252, 658 253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,
654 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124, 659 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,
655 253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235, 660 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,
656 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15, 661 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,
657 182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15, 662 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
658 133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, 663 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,
659 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 664 252,246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,
660 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 665 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
661 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137, 666 233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,
662 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131, 667 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,
663 189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132, 668 116,36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,
664 244,37,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1, 669 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
665 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, 670 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,
666 248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36, 671 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,
667 4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1, 672 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
668 32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235, 673 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
669 139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182, 674 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
670 192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15, 675 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
671 131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252, 676 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
672 246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137, 677 36,16,255,252,242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255,
673 8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131, 678 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
674 189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38, 679 139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,
675 15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171, 680 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,
676 233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,255,252, 681 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,
677 242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255,248,1,141,12, 682 15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,
678 202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20, 683 36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,
679 131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193, 684 233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,
680 231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199, 685 137,171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,
681 8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232, 686 4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139,
682 131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137, 687 14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,
683 149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,233,15,182, 688 215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114,
684 78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233, 689 252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,
685 137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44, 690 131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,
686 202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182, 691 8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,
687 252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139, 692 189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,
688 105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114,252,252, 693 131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,
689 252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232, 694 252,253,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
690 1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193, 695 233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252,
691 8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1, 696 252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,
692 15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 697 65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,
693 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253, 698 228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,
694 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244, 699 137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,
695 4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252, 700 198,4,252,255,36,171,255,15,182,252,236,139,66,252,248,141,12,202,139,128,
696 233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139, 701 233,15,182,128,233,137,124,36,16,141,188,253,194,233,43,122,252,252,133,252,
697 105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137, 702 237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,
698 105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202, 703 71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,
699 137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252, 704 131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,
700 255,36,171,255,15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182, 705 130,244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,
701 128,233,137,124,36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132, 706 16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,
702 244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248, 707 3,255,137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,
703 137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249, 708 133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,
704 57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2, 709 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
705 248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 710 137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,
706 255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255, 711 251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,
707 137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133, 712 1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,
708 233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137, 713 137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,
709 65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141, 714 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,
710 233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1, 715 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,
711 0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139, 716 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,
712 114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215, 717 15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139,
713 131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137, 718 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
714 111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110, 719 6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192,
715 252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139, 720 1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,252,
716 44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78, 721 241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,
717 252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139, 722 244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,
718 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199, 723 239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,
719 71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233, 724 242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,
720 244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,252,241,255,137, 725 252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,
721 252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255, 726 15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,
722 141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135, 727 15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,
723 244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16, 728 70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,
724 1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237, 729 15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,
725 15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65, 730 3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,
726 24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244, 731 132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,
727 247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254, 732 180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,
728 255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70, 733 4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,
729 252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15, 734 180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
730 46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244, 735 36,171,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,
731 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253, 736 132,244,142,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,
732 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139, 737 23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,
733 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253, 738 245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,
734 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 739 244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,
735 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,142, 740 252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,
736 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,182, 741 15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
737 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,
738 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
739 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
740 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
741 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
742 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 742 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
743 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204, 743 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
744 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131, 744 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131,
@@ -1309,238 +1309,238 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1309 if (sse) { 1309 if (sse) {
1310 dasm_put(Dst, 5447); 1310 dasm_put(Dst, 5447);
1311 } else { 1311 } else {
1312 dasm_put(Dst, 5467); 1312 dasm_put(Dst, 5469);
1313 } 1313 }
1314 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, 5489, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1315 dasm_put(Dst, 2142); 1315 dasm_put(Dst, 2142);
1316 if (sse) { 1316 if (sse) {
1317 dasm_put(Dst, 5590); 1317 dasm_put(Dst, 5592);
1318 } else { 1318 } else {
1319 dasm_put(Dst, 5601); 1319 dasm_put(Dst, 5603);
1320 } 1320 }
1321 dasm_put(Dst, 5609, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1321 dasm_put(Dst, 5611, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1322 if (sse) { 1322 if (sse) {
1323 dasm_put(Dst, 5639); 1323 dasm_put(Dst, 5641);
1324 } else { 1324 } else {
1325 dasm_put(Dst, 5646); 1325 dasm_put(Dst, 5648);
1326 } 1326 }
1327 dasm_put(Dst, 5658, sizeof(GCstr)-1); 1327 dasm_put(Dst, 5660, sizeof(GCstr)-1);
1328 dasm_put(Dst, 5733, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1328 dasm_put(Dst, 5735, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1329 dasm_put(Dst, 5792, LJ_TSTR, LJ_TISNUM); 1329 dasm_put(Dst, 5794, LJ_TSTR, LJ_TISNUM);
1330 if (sse) { 1330 if (sse) {
1331 dasm_put(Dst, 5813); 1331 dasm_put(Dst, 5815);
1332 } else { 1332 } else {
1333 dasm_put(Dst, 5820); 1333 dasm_put(Dst, 5822);
1334 } 1334 }
1335 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, 5834, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1336 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, 5899, 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, 5960, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1337 dasm_put(Dst, 5962, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1338 dasm_put(Dst, 6031, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1338 dasm_put(Dst, 6033, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1339 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, 6118, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1340 dasm_put(Dst, 6186, 1+1, LJ_TTAB); 1340 dasm_put(Dst, 6188, 1+1, LJ_TTAB);
1341 if (sse) { 1341 if (sse) {
1342 dasm_put(Dst, 6254); 1342 dasm_put(Dst, 6256);
1343 } else { 1343 } else {
1344 dasm_put(Dst, 6264); 1344 dasm_put(Dst, 6266);
1345 } 1345 }
1346 if (sse) { 1346 if (sse) {
1347 dasm_put(Dst, 6275, 1+1, LJ_TISNUM); 1347 dasm_put(Dst, 6277, 1+1, LJ_TISNUM);
1348 } else { 1348 } else {
1349 dasm_put(Dst, 6332, 1+1, LJ_TISNUM); 1349 dasm_put(Dst, 6334, 1+1, LJ_TISNUM);
1350 } 1350 }
1351 if (sse) { 1351 if (sse) {
1352 dasm_put(Dst, 6376, 1+1, LJ_TISNUM); 1352 dasm_put(Dst, 6378, 1+1, LJ_TISNUM);
1353 } else { 1353 } else {
1354 dasm_put(Dst, 6424, 1+1, LJ_TISNUM); 1354 dasm_put(Dst, 6426, 1+1, LJ_TISNUM);
1355 } 1355 }
1356 dasm_put(Dst, 6464, LJ_TISNUM); 1356 dasm_put(Dst, 6466, LJ_TISNUM);
1357 if (sse) { 1357 if (sse) {
1358 dasm_put(Dst, 6491); 1358 dasm_put(Dst, 6493);
1359 } else { 1359 } else {
1360 dasm_put(Dst, 6508); 1360 dasm_put(Dst, 6510);
1361 } 1361 }
1362 dasm_put(Dst, 6521); 1362 dasm_put(Dst, 6523);
1363 if (sse) { 1363 if (sse) {
1364 dasm_put(Dst, 6529, 1+1, LJ_TISNUM); 1364 dasm_put(Dst, 6531, 1+1, LJ_TISNUM);
1365 } else { 1365 } else {
1366 dasm_put(Dst, 6577, 1+1, LJ_TISNUM); 1366 dasm_put(Dst, 6579, 1+1, LJ_TISNUM);
1367 } 1367 }
1368 dasm_put(Dst, 6464, LJ_TISNUM); 1368 dasm_put(Dst, 6466, LJ_TISNUM);
1369 if (sse) { 1369 if (sse) {
1370 dasm_put(Dst, 6617); 1370 dasm_put(Dst, 6619);
1371 } else { 1371 } else {
1372 dasm_put(Dst, 6634); 1372 dasm_put(Dst, 6636);
1373 } 1373 }
1374 dasm_put(Dst, 6521); 1374 dasm_put(Dst, 6523);
1375 if (sse) { 1375 if (sse) {
1376 dasm_put(Dst, 6647, 1+1, LJ_TISNUM); 1376 dasm_put(Dst, 6649, 1+1, LJ_TISNUM);
1377 } else { 1377 } else {
1378 dasm_put(Dst, 6695, 1+1, LJ_TISNUM); 1378 dasm_put(Dst, 6697, 1+1, LJ_TISNUM);
1379 } 1379 }
1380 dasm_put(Dst, 6464, LJ_TISNUM); 1380 dasm_put(Dst, 6466, LJ_TISNUM);
1381 if (sse) { 1381 if (sse) {
1382 dasm_put(Dst, 6735); 1382 dasm_put(Dst, 6737);
1383 } else { 1383 } else {
1384 dasm_put(Dst, 6752); 1384 dasm_put(Dst, 6754);
1385 } 1385 }
1386 dasm_put(Dst, 6521); 1386 dasm_put(Dst, 6523);
1387 if (sse) { 1387 if (sse) {
1388 dasm_put(Dst, 6765, 1+1, LJ_TISNUM); 1388 dasm_put(Dst, 6767, 1+1, LJ_TISNUM);
1389 } else { 1389 } else {
1390 dasm_put(Dst, 6813, 1+1, LJ_TISNUM); 1390 dasm_put(Dst, 6815, 1+1, LJ_TISNUM);
1391 } 1391 }
1392 dasm_put(Dst, 6853); 1392 dasm_put(Dst, 6855);
1393 if (sse) { 1393 if (sse) {
1394 dasm_put(Dst, 6860, 1+1, LJ_TISNUM); 1394 dasm_put(Dst, 6862, 1+1, LJ_TISNUM);
1395 } else { 1395 } else {
1396 dasm_put(Dst, 6908, 1+1, LJ_TISNUM); 1396 dasm_put(Dst, 6910, 1+1, LJ_TISNUM);
1397 } 1397 }
1398 dasm_put(Dst, 6948); 1398 dasm_put(Dst, 6950);
1399 if (sse) { 1399 if (sse) {
1400 dasm_put(Dst, 6952); 1400 dasm_put(Dst, 6954);
1401 } else { 1401 } else {
1402 dasm_put(Dst, 6964); 1402 dasm_put(Dst, 6966);
1403 } 1403 }
1404 dasm_put(Dst, 6977); 1404 dasm_put(Dst, 6979);
1405 if (sse) { 1405 if (sse) {
1406 dasm_put(Dst, 6988, 1+1, LJ_TISNUM, LJ_TISNUM); 1406 dasm_put(Dst, 6990, 1+1, LJ_TISNUM, LJ_TISNUM);
1407 } else { 1407 } else {
1408 dasm_put(Dst, 7062, 2+1, LJ_TISNUM, LJ_TISNUM); 1408 dasm_put(Dst, 7064, 2+1, LJ_TISNUM, LJ_TISNUM);
1409 } 1409 }
1410 dasm_put(Dst, 7128); 1410 dasm_put(Dst, 7130);
1411 if (sse) { 1411 if (sse) {
1412 dasm_put(Dst, 7137, 1+1, LJ_TISNUM, LJ_TISNUM); 1412 dasm_put(Dst, 7139, 1+1, LJ_TISNUM, LJ_TISNUM);
1413 } else { 1413 } else {
1414 dasm_put(Dst, 7211, 2+1, LJ_TISNUM, LJ_TISNUM); 1414 dasm_put(Dst, 7213, 2+1, LJ_TISNUM, LJ_TISNUM);
1415 } 1415 }
1416 dasm_put(Dst, 7277); 1416 dasm_put(Dst, 7279);
1417 if (sse) { 1417 if (sse) {
1418 dasm_put(Dst, 7287, 1+1, LJ_TISNUM, LJ_TISNUM); 1418 dasm_put(Dst, 7289, 1+1, LJ_TISNUM, LJ_TISNUM);
1419 } else { 1419 } else {
1420 dasm_put(Dst, 7361, 2+1, LJ_TISNUM, LJ_TISNUM); 1420 dasm_put(Dst, 7363, 2+1, LJ_TISNUM, LJ_TISNUM);
1421 } 1421 }
1422 dasm_put(Dst, 7427); 1422 dasm_put(Dst, 7429);
1423 if (sse) { 1423 if (sse) {
1424 dasm_put(Dst, 7437, 1+1, LJ_TISNUM, LJ_TISNUM); 1424 dasm_put(Dst, 7439, 1+1, LJ_TISNUM, LJ_TISNUM);
1425 } else { 1425 } else {
1426 dasm_put(Dst, 7511, 2+1, LJ_TISNUM, LJ_TISNUM); 1426 dasm_put(Dst, 7513, 2+1, LJ_TISNUM, LJ_TISNUM);
1427 } 1427 }
1428 dasm_put(Dst, 7577); 1428 dasm_put(Dst, 7579);
1429 if (sse) { 1429 if (sse) {
1430 dasm_put(Dst, 7586, 1+1, LJ_TISNUM, LJ_TISNUM); 1430 dasm_put(Dst, 7588, 1+1, LJ_TISNUM, LJ_TISNUM);
1431 } else { 1431 } else {
1432 dasm_put(Dst, 7660, 2+1, LJ_TISNUM, LJ_TISNUM); 1432 dasm_put(Dst, 7662, 2+1, LJ_TISNUM, LJ_TISNUM);
1433 } 1433 }
1434 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, 7728, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1435 dasm_put(Dst, 7804, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1435 dasm_put(Dst, 7806, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1436 dasm_put(Dst, 7927, Dt1(->top), Dt1(->base), Dt1(->top)); 1436 dasm_put(Dst, 7929, Dt1(->top), Dt1(->base), Dt1(->top));
1437#if LJ_HASJIT 1437#if LJ_HASJIT
1438 dasm_put(Dst, 7965, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1438 dasm_put(Dst, 7967, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1439#endif 1439#endif
1440 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, 7998, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1441 dasm_put(Dst, 8047, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1441 dasm_put(Dst, 8049, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1442#if LJ_HASJIT 1442#if LJ_HASJIT
1443 dasm_put(Dst, 8113, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1443 dasm_put(Dst, 8115, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1444#endif 1444#endif
1445 dasm_put(Dst, 8159); 1445 dasm_put(Dst, 8161);
1446#if LJ_HASJIT 1446#if LJ_HASJIT
1447 dasm_put(Dst, 7991); 1447 dasm_put(Dst, 7993);
1448#endif 1448#endif
1449 dasm_put(Dst, 8166); 1449 dasm_put(Dst, 8168);
1450#if LJ_HASJIT 1450#if LJ_HASJIT
1451 dasm_put(Dst, 8169); 1451 dasm_put(Dst, 8171);
1452#endif 1452#endif
1453 dasm_put(Dst, 8179, Dt1(->base), Dt1(->top)); 1453 dasm_put(Dst, 8181, Dt1(->base), Dt1(->top));
1454#if LJ_HASJIT 1454#if LJ_HASJIT
1455 dasm_put(Dst, 8213); 1455 dasm_put(Dst, 8215);
1456#endif 1456#endif
1457 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top)); 1457 dasm_put(Dst, 8220, Dt1(->base), Dt1(->top));
1458#if LJ_HASJIT 1458#if LJ_HASJIT
1459 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), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1459 dasm_put(Dst, 8249, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1460#endif 1460#endif
1461 dasm_put(Dst, 8390); 1461 dasm_put(Dst, 8392);
1462#if LJ_HASJIT 1462#if LJ_HASJIT
1463 dasm_put(Dst, 8393, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1463 dasm_put(Dst, 8395, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1464#endif 1464#endif
1465 dasm_put(Dst, 8471); 1465 dasm_put(Dst, 8473);
1466 if (!sse) { 1466 if (!sse) {
1467 dasm_put(Dst, 8474); 1467 dasm_put(Dst, 8476);
1468 } 1468 }
1469 dasm_put(Dst, 8519); 1469 dasm_put(Dst, 8521);
1470 if (!sse) { 1470 if (!sse) {
1471 dasm_put(Dst, 8621); 1471 dasm_put(Dst, 8623);
1472 } 1472 }
1473 dasm_put(Dst, 8666); 1473 dasm_put(Dst, 8668);
1474 if (!sse) { 1474 if (!sse) {
1475 dasm_put(Dst, 8768); 1475 dasm_put(Dst, 8770);
1476 } 1476 }
1477 dasm_put(Dst, 8807); 1477 dasm_put(Dst, 8809);
1478 if (sse) { 1478 if (sse) {
1479 dasm_put(Dst, 8912); 1479 dasm_put(Dst, 8914);
1480 } else { 1480 } else {
1481 dasm_put(Dst, 9042); 1481 dasm_put(Dst, 9044);
1482 } 1482 }
1483 dasm_put(Dst, 9089); 1483 dasm_put(Dst, 9091);
1484 if (!sse) { 1484 if (!sse) {
1485 dasm_put(Dst, 9163); 1485 dasm_put(Dst, 9165);
1486 if (cmov) { 1486 if (cmov) {
1487 dasm_put(Dst, 9174); 1487 dasm_put(Dst, 9176);
1488 } else { 1488 } else {
1489 dasm_put(Dst, 9178); 1489 dasm_put(Dst, 9180);
1490 } 1490 }
1491 dasm_put(Dst, 9185); 1491 dasm_put(Dst, 9187);
1492 dasm_put(Dst, 9259); 1492 dasm_put(Dst, 9261);
1493 dasm_put(Dst, 9359); 1493 dasm_put(Dst, 9361);
1494 if (cmov) { 1494 if (cmov) {
1495 dasm_put(Dst, 9362); 1495 dasm_put(Dst, 9364);
1496 } else { 1496 } else {
1497 dasm_put(Dst, 9366); 1497 dasm_put(Dst, 9368);
1498 } 1498 }
1499 dasm_put(Dst, 9373); 1499 dasm_put(Dst, 9375);
1500 if (cmov) { 1500 if (cmov) {
1501 dasm_put(Dst, 9174); 1501 dasm_put(Dst, 9176);
1502 } else { 1502 } else {
1503 dasm_put(Dst, 9178); 1503 dasm_put(Dst, 9180);
1504 } 1504 }
1505 dasm_put(Dst, 9391); 1505 dasm_put(Dst, 9393);
1506 } else { 1506 } else {
1507 dasm_put(Dst, 9470); 1507 dasm_put(Dst, 9472);
1508 } 1508 }
1509 dasm_put(Dst, 9473); 1509 dasm_put(Dst, 9475);
1510 dasm_put(Dst, 9558); 1510 dasm_put(Dst, 9560);
1511 dasm_put(Dst, 9689); 1511 dasm_put(Dst, 9691);
1512 dasm_put(Dst, 9888); 1512 dasm_put(Dst, 9890);
1513 if (sse) { 1513 if (sse) {
1514 dasm_put(Dst, 9911); 1514 dasm_put(Dst, 9913);
1515 dasm_put(Dst, 9968); 1515 dasm_put(Dst, 9970);
1516 dasm_put(Dst, 10059); 1516 dasm_put(Dst, 10061);
1517 } else { 1517 } else {
1518 dasm_put(Dst, 10101); 1518 dasm_put(Dst, 10103);
1519 dasm_put(Dst, 10193); 1519 dasm_put(Dst, 10195);
1520 } 1520 }
1521 dasm_put(Dst, 10239); 1521 dasm_put(Dst, 10241);
1522 if (sse) { 1522 if (sse) {
1523 dasm_put(Dst, 10245); 1523 dasm_put(Dst, 10247);
1524 dasm_put(Dst, 10350); 1524 dasm_put(Dst, 10352);
1525 dasm_put(Dst, 10433); 1525 dasm_put(Dst, 10435);
1526 } else { 1526 } else {
1527 dasm_put(Dst, 10505); 1527 dasm_put(Dst, 10507);
1528 dasm_put(Dst, 10588); 1528 dasm_put(Dst, 10590);
1529 if (cmov) { 1529 if (cmov) {
1530 dasm_put(Dst, 10643); 1530 dasm_put(Dst, 10645);
1531 } else { 1531 } else {
1532 dasm_put(Dst, 10662); 1532 dasm_put(Dst, 10664);
1533 } 1533 }
1534 dasm_put(Dst, 10501); 1534 dasm_put(Dst, 10503);
1535 } 1535 }
1536 dasm_put(Dst, 10703); 1536 dasm_put(Dst, 10705);
1537} 1537}
1538 1538
1539/* Generate the code for a single instruction. */ 1539/* Generate the code for a single instruction. */
1540static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1540static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1541{ 1541{
1542 int vk = 0; 1542 int vk = 0;
1543 dasm_put(Dst, 10757, defop); 1543 dasm_put(Dst, 10759, defop);
1544 1544
1545 switch (op) { 1545 switch (op) {
1546 1546
@@ -1549,611 +1549,611 @@ 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. */ 1549 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1550 1550
1551 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1551 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1552 dasm_put(Dst, 10759, LJ_TISNUM, LJ_TISNUM); 1552 dasm_put(Dst, 10761, LJ_TISNUM, LJ_TISNUM);
1553 if (sse) { 1553 if (sse) {
1554 dasm_put(Dst, 10780); 1554 dasm_put(Dst, 10782);
1555 } else { 1555 } else {
1556 dasm_put(Dst, 10795); 1556 dasm_put(Dst, 10797);
1557 if (cmov) { 1557 if (cmov) {
1558 dasm_put(Dst, 10805); 1558 dasm_put(Dst, 10807);
1559 } else { 1559 } else {
1560 dasm_put(Dst, 10811); 1560 dasm_put(Dst, 10813);
1561 } 1561 }
1562 } 1562 }
1563 switch (op) { 1563 switch (op) {
1564 case BC_ISLT: 1564 case BC_ISLT:
1565 dasm_put(Dst, 10818); 1565 dasm_put(Dst, 10820);
1566 break; 1566 break;
1567 case BC_ISGE: 1567 case BC_ISGE:
1568 dasm_put(Dst, 10054); 1568 dasm_put(Dst, 10056);
1569 break; 1569 break;
1570 case BC_ISLE: 1570 case BC_ISLE:
1571 dasm_put(Dst, 6181); 1571 dasm_put(Dst, 6183);
1572 break; 1572 break;
1573 case BC_ISGT: 1573 case BC_ISGT:
1574 dasm_put(Dst, 10823); 1574 dasm_put(Dst, 10825);
1575 break; 1575 break;
1576 default: break; /* Shut up GCC. */ 1576 default: break; /* Shut up GCC. */
1577 } 1577 }
1578 dasm_put(Dst, 10828, -BCBIAS_J*4); 1578 dasm_put(Dst, 10830, -BCBIAS_J*4);
1579 break; 1579 break;
1580 1580
1581 case BC_ISEQV: case BC_ISNEV: 1581 case BC_ISEQV: case BC_ISNEV:
1582 vk = op == BC_ISEQV; 1582 vk = op == BC_ISEQV;
1583 dasm_put(Dst, 10861, LJ_TISNUM, LJ_TISNUM); 1583 dasm_put(Dst, 10863, LJ_TISNUM, LJ_TISNUM);
1584 if (sse) { 1584 if (sse) {
1585 dasm_put(Dst, 10887); 1585 dasm_put(Dst, 10889);
1586 } else { 1586 } else {
1587 dasm_put(Dst, 10899); 1587 dasm_put(Dst, 10901);
1588 if (cmov) { 1588 if (cmov) {
1589 dasm_put(Dst, 10805); 1589 dasm_put(Dst, 10807);
1590 } else { 1590 } else {
1591 dasm_put(Dst, 10811); 1591 dasm_put(Dst, 10813);
1592 } 1592 }
1593 } 1593 }
1594 iseqne_fp: 1594 iseqne_fp:
1595 if (vk) { 1595 if (vk) {
1596 dasm_put(Dst, 10906); 1596 dasm_put(Dst, 10908);
1597 } else { 1597 } else {
1598 dasm_put(Dst, 10915); 1598 dasm_put(Dst, 10917);
1599 } 1599 }
1600 iseqne_end: 1600 iseqne_end:
1601 if (vk) { 1601 if (vk) {
1602 dasm_put(Dst, 10924, -BCBIAS_J*4); 1602 dasm_put(Dst, 10926, -BCBIAS_J*4);
1603 } else { 1603 } else {
1604 dasm_put(Dst, 10939, -BCBIAS_J*4); 1604 dasm_put(Dst, 10941, -BCBIAS_J*4);
1605 } 1605 }
1606 dasm_put(Dst, 10842); 1606 dasm_put(Dst, 10844);
1607 if (op == BC_ISEQV || op == BC_ISNEV) { 1607 if (op == BC_ISEQV || op == BC_ISNEV) {
1608 dasm_put(Dst, 10954, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1608 dasm_put(Dst, 10956, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1609 if (vk) { 1609 if (vk) {
1610 dasm_put(Dst, 11012); 1610 dasm_put(Dst, 11014);
1611 } else { 1611 } else {
1612 dasm_put(Dst, 11016); 1612 dasm_put(Dst, 11018);
1613 } 1613 }
1614 dasm_put(Dst, 11022); 1614 dasm_put(Dst, 11024);
1615 } 1615 }
1616 break; 1616 break;
1617 case BC_ISEQS: case BC_ISNES: 1617 case BC_ISEQS: case BC_ISNES:
1618 vk = op == BC_ISEQS; 1618 vk = op == BC_ISEQS;
1619 dasm_put(Dst, 11027, LJ_TSTR); 1619 dasm_put(Dst, 11029, LJ_TSTR);
1620 iseqne_test: 1620 iseqne_test:
1621 if (vk) { 1621 if (vk) {
1622 dasm_put(Dst, 10910); 1622 dasm_put(Dst, 10912);
1623 } else { 1623 } else {
1624 dasm_put(Dst, 2811); 1624 dasm_put(Dst, 2811);
1625 } 1625 }
1626 goto iseqne_end; 1626 goto iseqne_end;
1627 case BC_ISEQN: case BC_ISNEN: 1627 case BC_ISEQN: case BC_ISNEN:
1628 vk = op == BC_ISEQN; 1628 vk = op == BC_ISEQN;
1629 dasm_put(Dst, 11050, LJ_TISNUM); 1629 dasm_put(Dst, 11052, LJ_TISNUM);
1630 if (sse) { 1630 if (sse) {
1631 dasm_put(Dst, 11064); 1631 dasm_put(Dst, 11066);
1632 } else { 1632 } else {
1633 dasm_put(Dst, 11076); 1633 dasm_put(Dst, 11078);
1634 if (cmov) { 1634 if (cmov) {
1635 dasm_put(Dst, 10805); 1635 dasm_put(Dst, 10807);
1636 } else { 1636 } else {
1637 dasm_put(Dst, 10811); 1637 dasm_put(Dst, 10813);
1638 } 1638 }
1639 } 1639 }
1640 goto iseqne_fp; 1640 goto iseqne_fp;
1641 case BC_ISEQP: case BC_ISNEP: 1641 case BC_ISEQP: case BC_ISNEP:
1642 vk = op == BC_ISEQP; 1642 vk = op == BC_ISEQP;
1643 dasm_put(Dst, 11083); 1643 dasm_put(Dst, 11085);
1644 goto iseqne_test; 1644 goto iseqne_test;
1645 1645
1646 /* -- Unary test and copy ops ------------------------------------------- */ 1646 /* -- Unary test and copy ops ------------------------------------------- */
1647 1647
1648 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1648 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1649 dasm_put(Dst, 11094, LJ_TISTRUECOND); 1649 dasm_put(Dst, 11096, LJ_TISTRUECOND);
1650 if (op == BC_IST || op == BC_ISTC) { 1650 if (op == BC_IST || op == BC_ISTC) {
1651 dasm_put(Dst, 11106); 1651 dasm_put(Dst, 11108);
1652 } else { 1652 } else {
1653 dasm_put(Dst, 11111); 1653 dasm_put(Dst, 11113);
1654 } 1654 }
1655 if (op == BC_ISTC || op == BC_ISFC) { 1655 if (op == BC_ISTC || op == BC_ISFC) {
1656 dasm_put(Dst, 11116); 1656 dasm_put(Dst, 11118);
1657 } 1657 }
1658 dasm_put(Dst, 11127, -BCBIAS_J*4); 1658 dasm_put(Dst, 11129, -BCBIAS_J*4);
1659 break; 1659 break;
1660 1660
1661 /* -- Unary ops --------------------------------------------------------- */ 1661 /* -- Unary ops --------------------------------------------------------- */
1662 1662
1663 case BC_MOV: 1663 case BC_MOV:
1664 dasm_put(Dst, 11158); 1664 dasm_put(Dst, 11160);
1665 break; 1665 break;
1666 case BC_NOT: 1666 case BC_NOT:
1667 dasm_put(Dst, 11191, LJ_TISTRUECOND, LJ_TTRUE); 1667 dasm_put(Dst, 11193, LJ_TISTRUECOND, LJ_TTRUE);
1668 break; 1668 break;
1669 case BC_UNM: 1669 case BC_UNM:
1670 dasm_put(Dst, 11226, LJ_TISNUM); 1670 dasm_put(Dst, 11228, LJ_TISNUM);
1671 if (sse) { 1671 if (sse) {
1672 dasm_put(Dst, 11237); 1672 dasm_put(Dst, 11239);
1673 } else { 1673 } else {
1674 dasm_put(Dst, 11267); 1674 dasm_put(Dst, 11269);
1675 } 1675 }
1676 dasm_put(Dst, 10842); 1676 dasm_put(Dst, 10844);
1677 break; 1677 break;
1678 case BC_LEN: 1678 case BC_LEN:
1679 dasm_put(Dst, 11276, LJ_TSTR); 1679 dasm_put(Dst, 11278, LJ_TSTR);
1680 if (sse) { 1680 if (sse) {
1681 dasm_put(Dst, 11290, Dt5(->len)); 1681 dasm_put(Dst, 11292, Dt5(->len));
1682 } else { 1682 } else {
1683 dasm_put(Dst, 11308, Dt5(->len)); 1683 dasm_put(Dst, 11310, Dt5(->len));
1684 } 1684 }
1685 dasm_put(Dst, 11317, LJ_TTAB); 1685 dasm_put(Dst, 11319, LJ_TTAB);
1686 if (sse) { 1686 if (sse) {
1687 dasm_put(Dst, 11357); 1687 dasm_put(Dst, 11359);
1688 } else { 1688 } else {
1689 dasm_put(Dst, 11366); 1689 dasm_put(Dst, 11368);
1690 } 1690 }
1691 dasm_put(Dst, 11376); 1691 dasm_put(Dst, 11378);
1692 break; 1692 break;
1693 1693
1694 /* -- Binary ops -------------------------------------------------------- */ 1694 /* -- Binary ops -------------------------------------------------------- */
1695 1695
1696 1696
1697 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1697 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1698 dasm_put(Dst, 11386); 1698 dasm_put(Dst, 11388);
1699 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1699 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1700 switch (vk) { 1700 switch (vk) {
1701 case 0: 1701 case 0:
1702 dasm_put(Dst, 11394, LJ_TISNUM); 1702 dasm_put(Dst, 11396, LJ_TISNUM);
1703 if (sse) { 1703 if (sse) {
1704 dasm_put(Dst, 11406); 1704 dasm_put(Dst, 11408);
1705 } else { 1705 } else {
1706 dasm_put(Dst, 11420); 1706 dasm_put(Dst, 11422);
1707 } 1707 }
1708 break; 1708 break;
1709 case 1: 1709 case 1:
1710 dasm_put(Dst, 11428, LJ_TISNUM); 1710 dasm_put(Dst, 11430, LJ_TISNUM);
1711 if (sse) { 1711 if (sse) {
1712 dasm_put(Dst, 11440); 1712 dasm_put(Dst, 11442);
1713 } else { 1713 } else {
1714 dasm_put(Dst, 11454); 1714 dasm_put(Dst, 11456);
1715 } 1715 }
1716 break; 1716 break;
1717 default: 1717 default:
1718 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1718 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1719 if (sse) { 1719 if (sse) {
1720 dasm_put(Dst, 11484); 1720 dasm_put(Dst, 11486);
1721 } else { 1721 } else {
1722 dasm_put(Dst, 11498); 1722 dasm_put(Dst, 11500);
1723 } 1723 }
1724 break; 1724 break;
1725 } 1725 }
1726 if (sse) { 1726 if (sse) {
1727 dasm_put(Dst, 11260); 1727 dasm_put(Dst, 11262);
1728 } else { 1728 } else {
1729 dasm_put(Dst, 11272); 1729 dasm_put(Dst, 11274);
1730 } 1730 }
1731 dasm_put(Dst, 10842); 1731 dasm_put(Dst, 10844);
1732 break; 1732 break;
1733 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1733 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1734 dasm_put(Dst, 11386); 1734 dasm_put(Dst, 11388);
1735 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1735 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1736 switch (vk) { 1736 switch (vk) {
1737 case 0: 1737 case 0:
1738 dasm_put(Dst, 11394, LJ_TISNUM); 1738 dasm_put(Dst, 11396, LJ_TISNUM);
1739 if (sse) { 1739 if (sse) {
1740 dasm_put(Dst, 11506); 1740 dasm_put(Dst, 11508);
1741 } else { 1741 } else {
1742 dasm_put(Dst, 11520); 1742 dasm_put(Dst, 11522);
1743 } 1743 }
1744 break; 1744 break;
1745 case 1: 1745 case 1:
1746 dasm_put(Dst, 11428, LJ_TISNUM); 1746 dasm_put(Dst, 11430, LJ_TISNUM);
1747 if (sse) { 1747 if (sse) {
1748 dasm_put(Dst, 11528); 1748 dasm_put(Dst, 11530);
1749 } else { 1749 } else {
1750 dasm_put(Dst, 11542); 1750 dasm_put(Dst, 11544);
1751 } 1751 }
1752 break; 1752 break;
1753 default: 1753 default:
1754 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1754 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1755 if (sse) { 1755 if (sse) {
1756 dasm_put(Dst, 11550); 1756 dasm_put(Dst, 11552);
1757 } else { 1757 } else {
1758 dasm_put(Dst, 11564); 1758 dasm_put(Dst, 11566);
1759 } 1759 }
1760 break; 1760 break;
1761 } 1761 }
1762 if (sse) { 1762 if (sse) {
1763 dasm_put(Dst, 11260); 1763 dasm_put(Dst, 11262);
1764 } else { 1764 } else {
1765 dasm_put(Dst, 11272); 1765 dasm_put(Dst, 11274);
1766 } 1766 }
1767 dasm_put(Dst, 10842); 1767 dasm_put(Dst, 10844);
1768 break; 1768 break;
1769 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1769 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1770 dasm_put(Dst, 11386); 1770 dasm_put(Dst, 11388);
1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1772 switch (vk) { 1772 switch (vk) {
1773 case 0: 1773 case 0:
1774 dasm_put(Dst, 11394, LJ_TISNUM); 1774 dasm_put(Dst, 11396, LJ_TISNUM);
1775 if (sse) { 1775 if (sse) {
1776 dasm_put(Dst, 11572); 1776 dasm_put(Dst, 11574);
1777 } else { 1777 } else {
1778 dasm_put(Dst, 11586); 1778 dasm_put(Dst, 11588);
1779 } 1779 }
1780 break; 1780 break;
1781 case 1: 1781 case 1:
1782 dasm_put(Dst, 11428, LJ_TISNUM); 1782 dasm_put(Dst, 11430, LJ_TISNUM);
1783 if (sse) { 1783 if (sse) {
1784 dasm_put(Dst, 11594); 1784 dasm_put(Dst, 11596);
1785 } else { 1785 } else {
1786 dasm_put(Dst, 11608); 1786 dasm_put(Dst, 11610);
1787 } 1787 }
1788 break; 1788 break;
1789 default: 1789 default:
1790 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1790 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1791 if (sse) { 1791 if (sse) {
1792 dasm_put(Dst, 11616); 1792 dasm_put(Dst, 11618);
1793 } else { 1793 } else {
1794 dasm_put(Dst, 11630); 1794 dasm_put(Dst, 11632);
1795 } 1795 }
1796 break; 1796 break;
1797 } 1797 }
1798 if (sse) { 1798 if (sse) {
1799 dasm_put(Dst, 11260); 1799 dasm_put(Dst, 11262);
1800 } else { 1800 } else {
1801 dasm_put(Dst, 11272); 1801 dasm_put(Dst, 11274);
1802 } 1802 }
1803 dasm_put(Dst, 10842); 1803 dasm_put(Dst, 10844);
1804 break; 1804 break;
1805 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1805 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1806 dasm_put(Dst, 11386); 1806 dasm_put(Dst, 11388);
1807 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1807 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1808 switch (vk) { 1808 switch (vk) {
1809 case 0: 1809 case 0:
1810 dasm_put(Dst, 11394, LJ_TISNUM); 1810 dasm_put(Dst, 11396, LJ_TISNUM);
1811 if (sse) { 1811 if (sse) {
1812 dasm_put(Dst, 11638); 1812 dasm_put(Dst, 11640);
1813 } else { 1813 } else {
1814 dasm_put(Dst, 11652); 1814 dasm_put(Dst, 11654);
1815 } 1815 }
1816 break; 1816 break;
1817 case 1: 1817 case 1:
1818 dasm_put(Dst, 11428, LJ_TISNUM); 1818 dasm_put(Dst, 11430, LJ_TISNUM);
1819 if (sse) { 1819 if (sse) {
1820 dasm_put(Dst, 11660); 1820 dasm_put(Dst, 11662);
1821 } else { 1821 } else {
1822 dasm_put(Dst, 11674); 1822 dasm_put(Dst, 11676);
1823 } 1823 }
1824 break; 1824 break;
1825 default: 1825 default:
1826 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1826 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1827 if (sse) { 1827 if (sse) {
1828 dasm_put(Dst, 11682); 1828 dasm_put(Dst, 11684);
1829 } else { 1829 } else {
1830 dasm_put(Dst, 11696); 1830 dasm_put(Dst, 11698);
1831 } 1831 }
1832 break; 1832 break;
1833 } 1833 }
1834 if (sse) { 1834 if (sse) {
1835 dasm_put(Dst, 11260); 1835 dasm_put(Dst, 11262);
1836 } else { 1836 } else {
1837 dasm_put(Dst, 11272); 1837 dasm_put(Dst, 11274);
1838 } 1838 }
1839 dasm_put(Dst, 10842); 1839 dasm_put(Dst, 10844);
1840 break; 1840 break;
1841 case BC_MODVN: 1841 case BC_MODVN:
1842 dasm_put(Dst, 11386); 1842 dasm_put(Dst, 11388);
1843 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1843 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1844 switch (vk) { 1844 switch (vk) {
1845 case 0: 1845 case 0:
1846 dasm_put(Dst, 11394, LJ_TISNUM); 1846 dasm_put(Dst, 11396, LJ_TISNUM);
1847 if (sse) { 1847 if (sse) {
1848 dasm_put(Dst, 11704); 1848 dasm_put(Dst, 11706);
1849 } else { 1849 } else {
1850 dasm_put(Dst, 11718); 1850 dasm_put(Dst, 11720);
1851 } 1851 }
1852 break; 1852 break;
1853 case 1: 1853 case 1:
1854 dasm_put(Dst, 11428, LJ_TISNUM); 1854 dasm_put(Dst, 11430, LJ_TISNUM);
1855 if (sse) { 1855 if (sse) {
1856 dasm_put(Dst, 11726); 1856 dasm_put(Dst, 11728);
1857 } else { 1857 } else {
1858 dasm_put(Dst, 11740); 1858 dasm_put(Dst, 11742);
1859 } 1859 }
1860 break; 1860 break;
1861 default: 1861 default:
1862 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1862 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1863 if (sse) { 1863 if (sse) {
1864 dasm_put(Dst, 11748); 1864 dasm_put(Dst, 11750);
1865 } else { 1865 } else {
1866 dasm_put(Dst, 11762); 1866 dasm_put(Dst, 11764);
1867 } 1867 }
1868 break; 1868 break;
1869 } 1869 }
1870 dasm_put(Dst, 11770); 1870 dasm_put(Dst, 11772);
1871 if (sse) { 1871 if (sse) {
1872 dasm_put(Dst, 11260); 1872 dasm_put(Dst, 11262);
1873 } else { 1873 } else {
1874 dasm_put(Dst, 11272); 1874 dasm_put(Dst, 11274);
1875 } 1875 }
1876 dasm_put(Dst, 10842); 1876 dasm_put(Dst, 10844);
1877 break; 1877 break;
1878 case BC_MODNV: case BC_MODVV: 1878 case BC_MODNV: case BC_MODVV:
1879 dasm_put(Dst, 11386); 1879 dasm_put(Dst, 11388);
1880 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1880 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1881 switch (vk) { 1881 switch (vk) {
1882 case 0: 1882 case 0:
1883 dasm_put(Dst, 11394, LJ_TISNUM); 1883 dasm_put(Dst, 11396, LJ_TISNUM);
1884 if (sse) { 1884 if (sse) {
1885 dasm_put(Dst, 11704); 1885 dasm_put(Dst, 11706);
1886 } else { 1886 } else {
1887 dasm_put(Dst, 11718); 1887 dasm_put(Dst, 11720);
1888 } 1888 }
1889 break; 1889 break;
1890 case 1: 1890 case 1:
1891 dasm_put(Dst, 11428, LJ_TISNUM); 1891 dasm_put(Dst, 11430, LJ_TISNUM);
1892 if (sse) { 1892 if (sse) {
1893 dasm_put(Dst, 11726); 1893 dasm_put(Dst, 11728);
1894 } else { 1894 } else {
1895 dasm_put(Dst, 11740); 1895 dasm_put(Dst, 11742);
1896 } 1896 }
1897 break; 1897 break;
1898 default: 1898 default:
1899 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1899 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1900 if (sse) { 1900 if (sse) {
1901 dasm_put(Dst, 11748); 1901 dasm_put(Dst, 11750);
1902 } else { 1902 } else {
1903 dasm_put(Dst, 11762); 1903 dasm_put(Dst, 11764);
1904 } 1904 }
1905 break; 1905 break;
1906 } 1906 }
1907 dasm_put(Dst, 11776); 1907 dasm_put(Dst, 11778);
1908 break; 1908 break;
1909 case BC_POW: 1909 case BC_POW:
1910 dasm_put(Dst, 11386); 1910 dasm_put(Dst, 11388);
1911 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1911 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1912 switch (vk) { 1912 switch (vk) {
1913 case 0: 1913 case 0:
1914 dasm_put(Dst, 11394, LJ_TISNUM); 1914 dasm_put(Dst, 11396, LJ_TISNUM);
1915 if (sse) { 1915 if (sse) {
1916 dasm_put(Dst, 11704); 1916 dasm_put(Dst, 11706);
1917 } else { 1917 } else {
1918 dasm_put(Dst, 11718); 1918 dasm_put(Dst, 11720);
1919 } 1919 }
1920 break; 1920 break;
1921 case 1: 1921 case 1:
1922 dasm_put(Dst, 11428, LJ_TISNUM); 1922 dasm_put(Dst, 11430, LJ_TISNUM);
1923 if (sse) { 1923 if (sse) {
1924 dasm_put(Dst, 11726); 1924 dasm_put(Dst, 11728);
1925 } else { 1925 } else {
1926 dasm_put(Dst, 11740); 1926 dasm_put(Dst, 11742);
1927 } 1927 }
1928 break; 1928 break;
1929 default: 1929 default:
1930 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1930 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1931 if (sse) { 1931 if (sse) {
1932 dasm_put(Dst, 11748); 1932 dasm_put(Dst, 11750);
1933 } else { 1933 } else {
1934 dasm_put(Dst, 11762); 1934 dasm_put(Dst, 11764);
1935 } 1935 }
1936 break; 1936 break;
1937 } 1937 }
1938 dasm_put(Dst, 11781); 1938 dasm_put(Dst, 11783);
1939 if (sse) { 1939 if (sse) {
1940 dasm_put(Dst, 11260); 1940 dasm_put(Dst, 11262);
1941 } else { 1941 } else {
1942 dasm_put(Dst, 11272); 1942 dasm_put(Dst, 11274);
1943 } 1943 }
1944 dasm_put(Dst, 10842); 1944 dasm_put(Dst, 10844);
1945 break; 1945 break;
1946 1946
1947 case BC_CAT: 1947 case BC_CAT:
1948 dasm_put(Dst, 11785, Dt1(->base), Dt1(->base)); 1948 dasm_put(Dst, 11787, Dt1(->base), Dt1(->base));
1949 break; 1949 break;
1950 1950
1951 /* -- Constant ops ------------------------------------------------------ */ 1951 /* -- Constant ops ------------------------------------------------------ */
1952 1952
1953 case BC_KSTR: 1953 case BC_KSTR:
1954 dasm_put(Dst, 11879, LJ_TSTR); 1954 dasm_put(Dst, 11881, LJ_TSTR);
1955 break; 1955 break;
1956 case BC_KSHORT: 1956 case BC_KSHORT:
1957 if (sse) { 1957 if (sse) {
1958 dasm_put(Dst, 11912); 1958 dasm_put(Dst, 11914);
1959 } else { 1959 } else {
1960 dasm_put(Dst, 11927); 1960 dasm_put(Dst, 11929);
1961 } 1961 }
1962 dasm_put(Dst, 10842); 1962 dasm_put(Dst, 10844);
1963 break; 1963 break;
1964 case BC_KNUM: 1964 case BC_KNUM:
1965 if (sse) { 1965 if (sse) {
1966 dasm_put(Dst, 11935); 1966 dasm_put(Dst, 11937);
1967 } else { 1967 } else {
1968 dasm_put(Dst, 11948); 1968 dasm_put(Dst, 11950);
1969 } 1969 }
1970 dasm_put(Dst, 10842); 1970 dasm_put(Dst, 10844);
1971 break; 1971 break;
1972 case BC_KPRI: 1972 case BC_KPRI:
1973 dasm_put(Dst, 11955); 1973 dasm_put(Dst, 11957);
1974 break; 1974 break;
1975 case BC_KNIL: 1975 case BC_KNIL:
1976 dasm_put(Dst, 11981, LJ_TNIL); 1976 dasm_put(Dst, 11983, LJ_TNIL);
1977 break; 1977 break;
1978 1978
1979 /* -- Upvalue and function ops ------------------------------------------ */ 1979 /* -- Upvalue and function ops ------------------------------------------ */
1980 1980
1981 case BC_UGET: 1981 case BC_UGET:
1982 dasm_put(Dst, 12027, offsetof(GCfuncL, uvptr), DtA(->v)); 1982 dasm_put(Dst, 12029, offsetof(GCfuncL, uvptr), DtA(->v));
1983 break; 1983 break;
1984 case BC_USETV: 1984 case BC_USETV:
1985#define TV2MARKOFS \ 1985#define TV2MARKOFS \
1986 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1986 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1987 dasm_put(Dst, 12071, 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); 1987 dasm_put(Dst, 12073, 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, 12161); 1988 dasm_put(Dst, 12163);
1989 break; 1989 break;
1990#undef TV2MARKOFS 1990#undef TV2MARKOFS
1991 case BC_USETS: 1991 case BC_USETS:
1992 dasm_put(Dst, 12173, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1992 dasm_put(Dst, 12175, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1993 break; 1993 break;
1994 case BC_USETN: 1994 case BC_USETN:
1995 dasm_put(Dst, 12264); 1995 dasm_put(Dst, 12266);
1996 if (sse) { 1996 if (sse) {
1997 dasm_put(Dst, 12269); 1997 dasm_put(Dst, 12271);
1998 } else { 1998 } else {
1999 dasm_put(Dst, 11079); 1999 dasm_put(Dst, 11081);
2000 } 2000 }
2001 dasm_put(Dst, 12276, offsetof(GCfuncL, uvptr), DtA(->v)); 2001 dasm_put(Dst, 12278, offsetof(GCfuncL, uvptr), DtA(->v));
2002 if (sse) { 2002 if (sse) {
2003 dasm_put(Dst, 12285); 2003 dasm_put(Dst, 12287);
2004 } else { 2004 } else {
2005 dasm_put(Dst, 12291); 2005 dasm_put(Dst, 12293);
2006 } 2006 }
2007 dasm_put(Dst, 10842); 2007 dasm_put(Dst, 10844);
2008 break; 2008 break;
2009 case BC_USETP: 2009 case BC_USETP:
2010 dasm_put(Dst, 12294, offsetof(GCfuncL, uvptr), DtA(->v)); 2010 dasm_put(Dst, 12296, offsetof(GCfuncL, uvptr), DtA(->v));
2011 break; 2011 break;
2012 case BC_UCLO: 2012 case BC_UCLO:
2013 dasm_put(Dst, 12331, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2013 dasm_put(Dst, 12333, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2014 break; 2014 break;
2015 2015
2016 case BC_FNEW: 2016 case BC_FNEW:
2017 dasm_put(Dst, 12385, Dt1(->base), Dt1(->base), LJ_TFUNC); 2017 dasm_put(Dst, 12387, Dt1(->base), Dt1(->base), LJ_TFUNC);
2018 break; 2018 break;
2019 2019
2020 /* -- Table ops --------------------------------------------------------- */ 2020 /* -- Table ops --------------------------------------------------------- */
2021 2021
2022 case BC_TNEW: 2022 case BC_TNEW:
2023 dasm_put(Dst, 12456, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2023 dasm_put(Dst, 12458, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2024 break; 2024 break;
2025 case BC_TDUP: 2025 case BC_TDUP:
2026 dasm_put(Dst, 12582, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2026 dasm_put(Dst, 12584, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2027 break; 2027 break;
2028 2028
2029 case BC_GGET: 2029 case BC_GGET:
2030 dasm_put(Dst, 12674, Dt7(->env)); 2030 dasm_put(Dst, 12676, Dt7(->env));
2031 break; 2031 break;
2032 case BC_GSET: 2032 case BC_GSET:
2033 dasm_put(Dst, 12692, Dt7(->env)); 2033 dasm_put(Dst, 12694, Dt7(->env));
2034 break; 2034 break;
2035 2035
2036 case BC_TGETV: 2036 case BC_TGETV:
2037 dasm_put(Dst, 12710, LJ_TTAB, LJ_TISNUM); 2037 dasm_put(Dst, 12712, LJ_TTAB, LJ_TISNUM);
2038 if (sse) { 2038 if (sse) {
2039 dasm_put(Dst, 12743); 2039 dasm_put(Dst, 12745);
2040 } else { 2040 } else {
2041 dasm_put(Dst, 12764); 2041 dasm_put(Dst, 12766);
2042 if (cmov) { 2042 if (cmov) {
2043 dasm_put(Dst, 10805); 2043 dasm_put(Dst, 10807);
2044 } else { 2044 } else {
2045 dasm_put(Dst, 10811); 2045 dasm_put(Dst, 10813);
2046 } 2046 }
2047 dasm_put(Dst, 2524); 2047 dasm_put(Dst, 2524);
2048 } 2048 }
2049 dasm_put(Dst, 12774, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2049 dasm_put(Dst, 12776, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2050 dasm_put(Dst, 12866, LJ_TSTR); 2050 dasm_put(Dst, 12868, LJ_TSTR);
2051 break; 2051 break;
2052 case BC_TGETS: 2052 case BC_TGETS:
2053 dasm_put(Dst, 12884, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2053 dasm_put(Dst, 12886, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2054 dasm_put(Dst, 12968, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2054 dasm_put(Dst, 12970, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2055 break; 2055 break;
2056 case BC_TGETB: 2056 case BC_TGETB:
2057 dasm_put(Dst, 13039, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2057 dasm_put(Dst, 13041, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2058 dasm_put(Dst, 11376); 2058 dasm_put(Dst, 11378);
2059 break; 2059 break;
2060 2060
2061 case BC_TSETV: 2061 case BC_TSETV:
2062 dasm_put(Dst, 13138, LJ_TTAB, LJ_TISNUM); 2062 dasm_put(Dst, 13140, LJ_TTAB, LJ_TISNUM);
2063 if (sse) { 2063 if (sse) {
2064 dasm_put(Dst, 12743); 2064 dasm_put(Dst, 12745);
2065 } else { 2065 } else {
2066 dasm_put(Dst, 12764); 2066 dasm_put(Dst, 12766);
2067 if (cmov) { 2067 if (cmov) {
2068 dasm_put(Dst, 10805); 2068 dasm_put(Dst, 10807);
2069 } else { 2069 } else {
2070 dasm_put(Dst, 10811); 2070 dasm_put(Dst, 10813);
2071 } 2071 }
2072 dasm_put(Dst, 2524); 2072 dasm_put(Dst, 2524);
2073 } 2073 }
2074 dasm_put(Dst, 13171, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2074 dasm_put(Dst, 13173, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2075 dasm_put(Dst, 13254, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2075 dasm_put(Dst, 13256, 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; 2076 break;
2077 case BC_TSETS: 2077 case BC_TSETS:
2078 dasm_put(Dst, 13316, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2078 dasm_put(Dst, 13318, 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, 13391, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2079 dasm_put(Dst, 13393, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2080 dasm_put(Dst, 13483, 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)); 2080 dasm_put(Dst, 13485, 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; 2081 break;
2082 case BC_TSETB: 2082 case BC_TSETB:
2083 dasm_put(Dst, 13579, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2083 dasm_put(Dst, 13581, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2084 dasm_put(Dst, 13677, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2084 dasm_put(Dst, 13679, 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; 2085 break;
2086 2086
2087 case BC_TSETM: 2087 case BC_TSETM:
2088 dasm_put(Dst, 13723); 2088 dasm_put(Dst, 13725);
2089 if (sse) { 2089 if (sse) {
2090 dasm_put(Dst, 13728); 2090 dasm_put(Dst, 13730);
2091 } else { 2091 } else {
2092 dasm_put(Dst, 13735); 2092 dasm_put(Dst, 13737);
2093 } 2093 }
2094 dasm_put(Dst, 13747, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2094 dasm_put(Dst, 13749, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2095 dasm_put(Dst, 13889, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2095 dasm_put(Dst, 13891, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2096 break; 2096 break;
2097 2097
2098 /* -- Calls and vararg handling ----------------------------------------- */ 2098 /* -- Calls and vararg handling ----------------------------------------- */
2099 2099
2100 case BC_CALL: case BC_CALLM: 2100 case BC_CALL: case BC_CALLM:
2101 dasm_put(Dst, 11390); 2101 dasm_put(Dst, 11392);
2102 if (op == BC_CALLM) { 2102 if (op == BC_CALLM) {
2103 dasm_put(Dst, 13907); 2103 dasm_put(Dst, 13909);
2104 } 2104 }
2105 dasm_put(Dst, 13912, LJ_TFUNC, Dt7(->pc)); 2105 dasm_put(Dst, 13914, LJ_TFUNC, Dt7(->pc));
2106 break; 2106 break;
2107 2107
2108 case BC_CALLMT: 2108 case BC_CALLMT:
2109 dasm_put(Dst, 13907); 2109 dasm_put(Dst, 13909);
2110 break; 2110 break;
2111 case BC_CALLT: 2111 case BC_CALLT:
2112 dasm_put(Dst, 13953, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2112 dasm_put(Dst, 13955, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2113 dasm_put(Dst, 14071, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2113 dasm_put(Dst, 14073, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2114 break; 2114 break;
2115 2115
2116 case BC_ITERC: 2116 case BC_ITERC:
2117 dasm_put(Dst, 14128, LJ_TFUNC, 2+1, Dt7(->pc)); 2117 dasm_put(Dst, 14130, LJ_TFUNC, 2+1, Dt7(->pc));
2118 break; 2118 break;
2119 2119
2120 case BC_VARG: 2120 case BC_VARG:
2121 dasm_put(Dst, 14208, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2121 dasm_put(Dst, 14210, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2122 dasm_put(Dst, 14352, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2122 dasm_put(Dst, 14354, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2123 break; 2123 break;
2124 2124
2125 /* -- Returns ----------------------------------------------------------- */ 2125 /* -- Returns ----------------------------------------------------------- */
2126 2126
2127 case BC_RETM: 2127 case BC_RETM:
2128 dasm_put(Dst, 13907); 2128 dasm_put(Dst, 13909);
2129 break; 2129 break;
2130 2130
2131 case BC_RET: case BC_RET0: case BC_RET1: 2131 case BC_RET: case BC_RET0: case BC_RET1:
2132 if (op != BC_RET0) { 2132 if (op != BC_RET0) {
2133 dasm_put(Dst, 14451); 2133 dasm_put(Dst, 14453);
2134 } 2134 }
2135 dasm_put(Dst, 14455, FRAME_TYPE); 2135 dasm_put(Dst, 14457, FRAME_TYPE);
2136 switch (op) { 2136 switch (op) {
2137 case BC_RET: 2137 case BC_RET:
2138 dasm_put(Dst, 14474); 2138 dasm_put(Dst, 14476);
2139 break; 2139 break;
2140 case BC_RET1: 2140 case BC_RET1:
2141 dasm_put(Dst, 14532); 2141 dasm_put(Dst, 14534);
2142 /* fallthrough */ 2142 /* fallthrough */
2143 case BC_RET0: 2143 case BC_RET0:
2144 dasm_put(Dst, 14548); 2144 dasm_put(Dst, 14550);
2145 default: 2145 default:
2146 break; 2146 break;
2147 } 2147 }
2148 dasm_put(Dst, 14559, Dt7(->pc), PC2PROTO(k)); 2148 dasm_put(Dst, 14561, Dt7(->pc), PC2PROTO(k));
2149 if (op == BC_RET) { 2149 if (op == BC_RET) {
2150 dasm_put(Dst, 14601, LJ_TNIL); 2150 dasm_put(Dst, 14603, LJ_TNIL);
2151 } else { 2151 } else {
2152 dasm_put(Dst, 14610, LJ_TNIL); 2152 dasm_put(Dst, 14612, LJ_TNIL);
2153 } 2153 }
2154 dasm_put(Dst, 14617); 2154 dasm_put(Dst, 14619);
2155 if (op != BC_RET0) { 2155 if (op != BC_RET0) {
2156 dasm_put(Dst, 14638); 2156 dasm_put(Dst, 14640);
2157 } 2157 }
2158 dasm_put(Dst, 4680); 2158 dasm_put(Dst, 4680);
2159 break; 2159 break;
@@ -2163,7 +2163,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2163 2163
2164 case BC_FORL: 2164 case BC_FORL:
2165#if LJ_HASJIT 2165#if LJ_HASJIT
2166 dasm_put(Dst, 14642, HOTCOUNT_PCMASK, GG_DISP2HOT); 2166 dasm_put(Dst, 14644, HOTCOUNT_PCMASK, GG_DISP2HOT);
2167#endif 2167#endif
2168 break; 2168 break;
2169 2169
@@ -2175,57 +2175,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2175 case BC_FORI: 2175 case BC_FORI:
2176 case BC_IFORL: 2176 case BC_IFORL:
2177 vk = (op == BC_IFORL || op == BC_JFORL); 2177 vk = (op == BC_IFORL || op == BC_JFORL);
2178 dasm_put(Dst, 14663); 2178 dasm_put(Dst, 14665);
2179 if (!vk) { 2179 if (!vk) {
2180 dasm_put(Dst, 14667, LJ_TISNUM, LJ_TISNUM); 2180 dasm_put(Dst, 14669, LJ_TISNUM, LJ_TISNUM);
2181 } 2181 }
2182 dasm_put(Dst, 14686); 2182 dasm_put(Dst, 14688);
2183 if (!vk) { 2183 if (!vk) {
2184 dasm_put(Dst, 14690, LJ_TISNUM); 2184 dasm_put(Dst, 14692, LJ_TISNUM);
2185 } 2185 }
2186 if (sse) { 2186 if (sse) {
2187 dasm_put(Dst, 14699); 2187 dasm_put(Dst, 14701);
2188 if (vk) { 2188 if (vk) {
2189 dasm_put(Dst, 14711); 2189 dasm_put(Dst, 14713);
2190 } else { 2190 } else {
2191 dasm_put(Dst, 14730); 2191 dasm_put(Dst, 14732);
2192 } 2192 }
2193 dasm_put(Dst, 14735); 2193 dasm_put(Dst, 14737);
2194 } else { 2194 } else {
2195 dasm_put(Dst, 14748); 2195 dasm_put(Dst, 14750);
2196 if (vk) { 2196 if (vk) {
2197 dasm_put(Dst, 14754); 2197 dasm_put(Dst, 14756);
2198 } else { 2198 } else {
2199 dasm_put(Dst, 14770); 2199 dasm_put(Dst, 14772);
2200 } 2200 }
2201 dasm_put(Dst, 14778); 2201 dasm_put(Dst, 14780);
2202 if (cmov) { 2202 if (cmov) {
2203 dasm_put(Dst, 10805); 2203 dasm_put(Dst, 10807);
2204 } else { 2204 } else {
2205 dasm_put(Dst, 10811); 2205 dasm_put(Dst, 10813);
2206 } 2206 }
2207 if (!cmov) { 2207 if (!cmov) {
2208 dasm_put(Dst, 14783); 2208 dasm_put(Dst, 14785);
2209 } 2209 }
2210 } 2210 }
2211 if (op == BC_FORI) { 2211 if (op == BC_FORI) {
2212 dasm_put(Dst, 14789, -BCBIAS_J*4); 2212 dasm_put(Dst, 14791, -BCBIAS_J*4);
2213 } else if (op == BC_JFORI) { 2213 } else if (op == BC_JFORI) {
2214 dasm_put(Dst, 14799, -BCBIAS_J*4, BC_JLOOP); 2214 dasm_put(Dst, 14801, -BCBIAS_J*4, BC_JLOOP);
2215 } else if (op == BC_IFORL) { 2215 } else if (op == BC_IFORL) {
2216 dasm_put(Dst, 14813, -BCBIAS_J*4); 2216 dasm_put(Dst, 14815, -BCBIAS_J*4);
2217 } else { 2217 } else {
2218 dasm_put(Dst, 14809, BC_JLOOP); 2218 dasm_put(Dst, 14811, BC_JLOOP);
2219 } 2219 }
2220 dasm_put(Dst, 10840); 2220 dasm_put(Dst, 10842);
2221 if (sse) { 2221 if (sse) {
2222 dasm_put(Dst, 14823); 2222 dasm_put(Dst, 14825);
2223 } 2223 }
2224 break; 2224 break;
2225 2225
2226 case BC_ITERL: 2226 case BC_ITERL:
2227#if LJ_HASJIT 2227#if LJ_HASJIT
2228 dasm_put(Dst, 14642, HOTCOUNT_PCMASK, GG_DISP2HOT); 2228 dasm_put(Dst, 14644, HOTCOUNT_PCMASK, GG_DISP2HOT);
2229#endif 2229#endif
2230 break; 2230 break;
2231 2231
@@ -2234,33 +2234,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2234 break; 2234 break;
2235#endif 2235#endif
2236 case BC_IITERL: 2236 case BC_IITERL:
2237 dasm_put(Dst, 14834, LJ_TNIL); 2237 dasm_put(Dst, 14836, LJ_TNIL);
2238 if (op == BC_JITERL) { 2238 if (op == BC_JITERL) {
2239 dasm_put(Dst, 14849, BC_JLOOP); 2239 dasm_put(Dst, 14851, BC_JLOOP);
2240 } else { 2240 } else {
2241 dasm_put(Dst, 14863, -BCBIAS_J*4); 2241 dasm_put(Dst, 14865, -BCBIAS_J*4);
2242 } 2242 }
2243 dasm_put(Dst, 11137); 2243 dasm_put(Dst, 11139);
2244 break; 2244 break;
2245 2245
2246 case BC_LOOP: 2246 case BC_LOOP:
2247#if LJ_HASJIT 2247#if LJ_HASJIT
2248 dasm_put(Dst, 14642, HOTCOUNT_PCMASK, GG_DISP2HOT); 2248 dasm_put(Dst, 14644, HOTCOUNT_PCMASK, GG_DISP2HOT);
2249#endif 2249#endif
2250 break; 2250 break;
2251 2251
2252 case BC_ILOOP: 2252 case BC_ILOOP:
2253 dasm_put(Dst, 10842); 2253 dasm_put(Dst, 10844);
2254 break; 2254 break;
2255 2255
2256 case BC_JLOOP: 2256 case BC_JLOOP:
2257#if LJ_HASJIT 2257#if LJ_HASJIT
2258 dasm_put(Dst, 14879, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2258 dasm_put(Dst, 14881, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2259#endif 2259#endif
2260 break; 2260 break;
2261 2261
2262 case BC_JMP: 2262 case BC_JMP:
2263 dasm_put(Dst, 14902, -BCBIAS_J*4); 2263 dasm_put(Dst, 14904, -BCBIAS_J*4);
2264 break; 2264 break;
2265 2265
2266 /* -- Function headers -------------------------------------------------- */ 2266 /* -- Function headers -------------------------------------------------- */
@@ -2274,7 +2274,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2274 2274
2275 case BC_FUNCF: 2275 case BC_FUNCF:
2276#if LJ_HASJIT 2276#if LJ_HASJIT
2277 dasm_put(Dst, 14926, HOTCOUNT_PCMASK, GG_DISP2HOT); 2277 dasm_put(Dst, 14928, HOTCOUNT_PCMASK, GG_DISP2HOT);
2278#endif 2278#endif
2279 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2279 case BC_FUNCV: /* NYI: compiled vararg functions. */
2280 break; 2280 break;
@@ -2284,47 +2284,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2284 break; 2284 break;
2285#endif 2285#endif
2286 case BC_IFUNCF: 2286 case BC_IFUNCF:
2287 dasm_put(Dst, 14947, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2287 dasm_put(Dst, 14949, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2288 if (op == BC_JFUNCF) { 2288 if (op == BC_JFUNCF) {
2289 dasm_put(Dst, 14977, BC_JLOOP); 2289 dasm_put(Dst, 14979, BC_JLOOP);
2290 } else { 2290 } else {
2291 dasm_put(Dst, 10842); 2291 dasm_put(Dst, 10844);
2292 } 2292 }
2293 dasm_put(Dst, 14986, LJ_TNIL); 2293 dasm_put(Dst, 14988, LJ_TNIL);
2294 break; 2294 break;
2295 2295
2296 case BC_JFUNCV: 2296 case BC_JFUNCV:
2297#if !LJ_HASJIT 2297#if !LJ_HASJIT
2298 break; 2298 break;
2299#endif 2299#endif
2300 dasm_put(Dst, 10503); 2300 dasm_put(Dst, 10505);
2301 break; /* NYI: compiled vararg functions. */ 2301 break; /* NYI: compiled vararg functions. */
2302 2302
2303 case BC_IFUNCV: 2303 case BC_IFUNCV:
2304 dasm_put(Dst, 15008, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2304 dasm_put(Dst, 15010, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2305 if (op == BC_JFUNCV) { 2305 if (op == BC_JFUNCV) {
2306 dasm_put(Dst, 14977, BC_JLOOP); 2306 dasm_put(Dst, 14979, BC_JLOOP);
2307 } else { 2307 } else {
2308 dasm_put(Dst, 15099, -4+PC2PROTO(k)); 2308 dasm_put(Dst, 15101, -4+PC2PROTO(k));
2309 } 2309 }
2310 dasm_put(Dst, 15121, LJ_TNIL); 2310 dasm_put(Dst, 15123, LJ_TNIL);
2311 break; 2311 break;
2312 2312
2313 case BC_FUNCC: 2313 case BC_FUNCC:
2314 case BC_FUNCCW: 2314 case BC_FUNCCW:
2315 dasm_put(Dst, 15143, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2315 dasm_put(Dst, 15145, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2316 if (op == BC_FUNCC) { 2316 if (op == BC_FUNCC) {
2317 dasm_put(Dst, 15172); 2317 dasm_put(Dst, 15174);
2318 } else { 2318 } else {
2319 dasm_put(Dst, 15176); 2319 dasm_put(Dst, 15178);
2320 } 2320 }
2321 dasm_put(Dst, 15184, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2321 dasm_put(Dst, 15186, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2322 if (op == BC_FUNCC) { 2322 if (op == BC_FUNCC) {
2323 dasm_put(Dst, 15193); 2323 dasm_put(Dst, 15195);
2324 } else { 2324 } else {
2325 dasm_put(Dst, 15197, DISPATCH_GL(wrapf)); 2325 dasm_put(Dst, 15199, DISPATCH_GL(wrapf));
2326 } 2326 }
2327 dasm_put(Dst, 15202, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2327 dasm_put(Dst, 15204, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2328 break; 2328 break;
2329 2329
2330 /* ---------------------------------------------------------------------- */ 2330 /* ---------------------------------------------------------------------- */
@@ -2352,7 +2352,7 @@ static int build_backend(BuildCtx *ctx)
2352 2352
2353 build_subroutines(ctx, cmov, sse); 2353 build_subroutines(ctx, cmov, sse);
2354 2354
2355 dasm_put(Dst, 15227); 2355 dasm_put(Dst, 15229);
2356 for (op = 0; op < BC__MAX; op++) 2356 for (op = 0; op < BC__MAX; op++)
2357 build_ins(ctx, (BCOp)op, op, cmov, sse); 2357 build_ins(ctx, (BCOp)op, op, cmov, sse);
2358 2358