aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-05-06 16:06:02 +0200
committerMike Pall <mike>2011-05-06 16:06:02 +0200
commit16369d5a64244a130688355fded6ccc65f47f093 (patch)
treef83d56911e3f2f9ee75e5c09ec41795de5964cf2 /src
parentcfdc356ebe376d9d2d741bae8fd33d1cbdc74f4f (diff)
downloadluajit-16369d5a64244a130688355fded6ccc65f47f093.tar.gz
luajit-16369d5a64244a130688355fded6ccc65f47f093.tar.bz2
luajit-16369d5a64244a130688355fded6ccc65f47f093.zip
x86/x64: Fix bit.* argument checking.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h1341
-rw-r--r--src/buildvm_x64win.h1960
-rw-r--r--src/buildvm_x86.dasc2
-rw-r--r--src/buildvm_x86.h2071
4 files changed, 2694 insertions, 2680 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index fe439c75..918e514a 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[16015] = { 15static const unsigned char build_actionlist[16103] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -317,164 +317,169 @@ static const unsigned char build_actionlist[16015] = {
317 248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139, 317 248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,
318 92,36,4,252,233,244,121,248,130,129,252,248,239,15,130,244,61,129,122,253, 318 92,36,4,252,233,244,121,248,130,129,252,248,239,15,130,244,61,129,122,253,
319 4,239,15,133,244,61,137,213,139,58,232,251,1,21,137,252,234,255,137,197,252, 319 4,239,15,133,244,61,137,213,139,58,232,251,1,21,137,252,234,255,137,197,252,
320 233,244,69,255,252,242,15,42,192,252,233,244,70,255,248,131,129,122,253,4, 320 233,244,69,255,252,242,15,42,192,252,233,244,70,255,248,131,129,252,248,239,
321 239,255,15,133,244,247,139,42,252,233,244,87,248,1,15,135,244,61,255,252, 321 15,130,244,61,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,87,
322 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126, 322 248,1,15,135,244,61,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
323 197,255,252,233,244,87,255,248,132,255,72,189,237,237,102,72,15,110,205,255, 323 252,242,15,88,193,102,15,126,197,255,252,233,244,87,255,248,132,129,252,248,
324 199,4,36,0,0,192,89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135, 324 239,15,130,244,61,255,72,189,237,237,102,72,15,110,205,255,199,4,36,0,0,192,
325 244,61,255,252,242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137, 325 89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135,244,61,255,252,
326 68,36,4,141,68,194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255, 326 242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137,68,36,4,141,68,
327 15,133,244,248,35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15, 327 194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248,
328 131,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255, 328 35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255,
329 131,232,8,252,233,244,1,248,134,255,15,133,244,248,11,40,131,232,8,252,233, 329 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
330 244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126, 330 233,244,1,248,134,129,252,248,239,15,130,244,61,255,15,133,244,248,11,40,
331 193,9,205,255,131,232,8,252,233,244,1,248,135,255,15,133,244,248,51,40,131, 331 131,232,8,252,233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,
332 232,8,252,233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88, 332 15,88,193,102,15,126,193,9,205,255,131,232,8,252,233,244,1,248,135,129,252,
333 193,102,15,126,193,49,205,255,131,232,8,252,233,244,1,248,136,129,122,253, 333 248,239,15,130,244,61,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248,
334 4,239,255,248,2,15,205,252,233,244,87,248,137,129,122,253,4,239,255,248,2, 334 2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,
335 252,247,213,255,248,87,252,242,15,42,197,252,233,244,70,255,248,133,139,68, 335 205,255,131,232,8,252,233,244,1,248,136,129,252,248,239,15,130,244,61,129,
336 36,4,252,233,244,61,255,248,138,129,122,253,4,239,255,248,2,129,122,253,12, 336 122,253,4,239,255,248,2,15,205,252,233,244,87,248,137,129,252,248,239,15,
337 130,244,61,129,122,253,4,239,255,248,2,252,247,213,255,248,87,252,242,15,
338 42,197,252,233,244,70,255,248,133,139,68,36,4,252,233,244,61,255,248,138,
339 129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2,129,122,253,12,
337 239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129, 340 239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129,
338 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 341 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,
339 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 342 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
340 242,15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,87,255, 343 242,15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,87,255,
341 248,139,129,122,253,4,239,255,248,139,129,252,248,239,15,130,244,61,129,122, 344 248,139,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,139,129,252,
342 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2, 345 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,
343 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 346 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
344 242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,237,252,233,244,87, 347 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,
345 255,248,140,129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,129, 348 255,211,252,237,252,233,244,87,255,248,140,129,252,248,239,15,130,244,61,
346 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 349 129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,129,122,253,4,
347 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 350 239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,
348 242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,87, 351 15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,
349 255,248,141,129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,61,129, 352 88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,87,255,248,
350 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 353 141,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,141,129,252,248,
351 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 354 239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,
352 242,15,88,202,102,15,126,197,102,15,126,201,255,211,197,252,233,244,87,255, 355 244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,
353 248,142,129,122,253,4,239,255,248,142,129,252,248,239,15,130,244,61,129,122, 356 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211,
354 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2, 357 197,252,233,244,87,255,248,142,129,252,248,239,15,130,244,61,129,122,253,
355 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 358 4,239,255,248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,
356 242,15,88,202,102,15,126,197,102,15,126,201,255,211,205,252,233,244,87,248, 359 244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,
357 125,184,237,252,233,244,61,248,127,184,237,248,61,139,108,36,24,139,90,252, 360 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,
358 252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139, 361 15,126,197,102,15,126,201,255,211,205,252,233,244,87,248,125,184,237,252,
359 66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,149, 362 233,244,61,248,127,184,237,248,61,139,108,36,24,139,90,252,252,137,92,36,
360 233,133,192,15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3,133, 363 28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
361 192,141,65,1,139,106,252,248,15,133,244,32,139,157,233,139,11,15,182,252, 364 59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,149,233,133,192,
362 233,15,182,205,131,195,4,65,252,255,36,252,238,248,32,137,209,252,247,195, 365 15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,
363 237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,234,252,233, 366 139,106,252,248,15,133,244,32,139,157,233,139,11,15,182,252,233,15,182,205,
364 244,28,248,3,137,221,131,229,252,248,41,252,234,252,233,244,28,248,5,190, 367 131,195,4,65,252,255,36,252,238,248,32,137,209,252,247,195,237,15,133,244,
365 237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93,72, 368 249,15,182,107,252,253,72,252,247,213,141,20,252,234,252,233,244,28,248,3,
366 137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248, 369 137,221,131,229,252,248,41,252,234,252,233,244,28,248,5,190,237,137,252,239,
367 137,252,239,137,133,233,232,251,1,22,139,149,233,139,133,233,41,208,193,232, 370 232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93,72,137,108,36,8,139,
368 3,131,192,1,72,139,108,36,8,85,195,248,143,255,65,15,182,134,233,168,235, 371 108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248,137,252,239,137,
369 15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142, 372 133,233,232,251,1,22,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
370 233,252,233,244,247,255,248,144,65,15,182,134,233,168,235,15,133,244,251, 373 139,108,36,8,85,195,248,143,255,65,15,182,134,233,168,235,15,133,244,251,
371 252,233,244,247,248,145,65,15,182,134,233,168,235,15,133,244,251,168,235, 374 168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142,233,252,233,
372 15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248, 375 244,247,255,248,144,65,15,182,134,233,168,235,15,133,244,251,252,233,244,
373 1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,23,248,3,139, 376 247,248,145,65,15,182,134,233,168,235,15,133,244,251,168,235,15,132,244,251,
374 149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254, 377 65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,
375 65,252,255,164,253,252,238,233,248,146,131,195,4,139,77,232,137,76,36,4,252, 378 36,24,137,149,233,137,222,137,252,239,232,251,1,23,248,3,139,149,233,248,
376 233,244,4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194, 379 4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254,65,252,255,
377 139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233, 380 164,253,252,238,233,248,146,131,195,4,139,77,232,137,76,36,4,252,233,244,
378 137,92,36,28,232,251,1,24,252,233,244,3,255,248,148,137,92,36,28,255,248, 381 4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,
379 149,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24, 382 36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233,137,92,
380 137,149,233,137,133,233,137,222,137,252,239,232,251,1,25,199,68,36,28,0,0, 383 36,28,232,251,1,24,252,233,244,3,255,248,148,137,92,36,28,255,248,149,255,
381 0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72, 384 137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24,137,149,
382 137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,150,255,65, 385 233,137,133,233,137,222,137,252,239,232,251,1,25,199,68,36,28,0,0,0,0,255,
383 85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80, 386 131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,
384 15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68, 387 15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,150,255,65,85,65,84,
385 139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233, 388 65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,
386 72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68, 389 252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68,139,117,
387 15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242, 390 0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233,72,129,
388 68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68, 391 252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68,15,17,
389 15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109, 392 117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242,68,
390 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242, 393 15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68,15,
391 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174, 394 17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109,168,
392 233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251, 395 252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242,15,
393 1,26,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139, 396 17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,233,
394 153,233,252,233,244,247,255,248,151,255,72,131,196,16,248,1,76,139,108,36, 397 65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251,1,26,
395 8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139, 398 72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139,153,
396 191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15, 399 233,252,233,244,247,255,248,151,255,72,131,196,16,248,1,76,139,108,36,8,76,
397 182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139, 400 139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139,191,
398 68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198, 401 233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,
399 232,251,1,1,255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68, 402 204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139,68,
400 36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217, 403 36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198,232,
401 108,36,4,139,68,36,8,195,255,248,152,72,184,237,237,102,72,15,110,208,72, 404 251,1,1,255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
402 184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,
403 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,
404 184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
405 15,92,200,15,40,193,248,1,195,248,91,255,217,124,36,4,137,68,36,8,102,184,
406 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
407 252,252,217,108,36,4,139,68,36,8,195,255,248,153,72,184,237,237,102,72,15,
408 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
409 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
410 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
411 194,252,242,15,92,200,15,40,193,248,1,195,248,112,255,217,124,36,4,137,68,
412 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
413 217,108,36,4,139,68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,
414 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
415 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
416 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
417 15,92,200,102,15,86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,
418 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
419 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
420 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
421 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
422 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
423 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
424 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 405 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
425 36,4,222,201,222,252,233,195,255,248,96,217,252,234,222,201,248,156,217,84, 406 36,4,139,68,36,8,195,255,248,152,72,184,237,237,102,72,15,110,208,72,184,
426 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248, 407 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
427 0,0,128,252,255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217, 408 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
428 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 409 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
429 217,252,238,195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208, 410 200,15,40,193,248,1,195,248,91,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
430 102,15,46,202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142, 411 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
431 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, 412 217,108,36,4,139,68,36,8,195,255,248,153,72,184,237,237,102,72,15,110,208,
432 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, 413 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
433 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, 414 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
434 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216, 415 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
435 232,244,1,72,184,237,237,102,72,15,110,200,252,242,15,94,200,15,40,193,195, 416 15,92,200,15,40,193,248,1,195,248,112,255,217,124,36,4,137,68,36,8,102,184,
436 248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209, 417 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
437 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,102,72,15,126,192,72, 418 139,68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,72,184,237,237,
438 209,224,15,132,244,250,255,72,193,192,12,72,61,252,254,15,0,0,15,132,244, 419 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
439 251,252,242,15,17,76,36,252,240,252,242,15,17,68,36,252,248,221,68,36,252, 420 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
440 240,221,68,36,252,248,217,252,241,217,192,217,252,252,220,252,233,217,201, 421 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
441 217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,252,248,252,242, 422 86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,15,94,193,72,184,
442 15,16,68,36,252,248,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46, 423 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
443 194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110, 424 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
444 208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244, 425 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
445 1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72, 426 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
446 184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133, 427 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
447 244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195, 428 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
448 248,160,255,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130, 429 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
449 244,112,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252, 430 252,233,195,255,248,96,217,252,234,222,201,248,156,217,84,36,252,248,129,
450 248,221,68,36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244, 431 124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252,
451 96,252,233,244,253,248,1,232,244,156,255,252,233,244,253,248,2,131,252,255, 432 255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217,201,217,252,
452 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244, 433 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,
453 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9, 434 195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208,102,15,46,
454 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244, 435 202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142,244,252,248,
455 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244, 436 1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,
456 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216, 437 2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,
457 248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12, 438 244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,
458 221,68,36,4,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130, 439 89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216,232,244,1,
459 244,112,15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,96, 440 72,184,237,237,102,72,15,110,200,252,242,15,94,200,15,40,193,195,248,7,72,
460 15,132,244,156,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217, 441 184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,
461 201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255, 442 192,12,72,61,252,254,15,0,0,15,132,244,248,102,72,15,126,192,72,209,224,15,
462 9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248, 443 132,244,250,255,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,
463 1,217,252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, 444 15,17,76,36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,
464 252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,131, 445 36,252,248,217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,
465 252,255,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242, 446 217,232,222,193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,
466 15,92,193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15, 447 252,248,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,
467 89,193,195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,155, 448 247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,
468 15,132,244,115,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237, 449 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
469 255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200, 450 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
470 15,84,193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252, 451 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
471 248,252,242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132, 452 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,160,255,
472 244,247,217,252,243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195, 453 131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130,244,112,15,
473 248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132, 454 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,
474 244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195, 455 36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244,96,252,233,
475 248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132, 456 244,253,248,1,232,244,156,255,252,233,244,253,248,2,131,252,255,7,15,132,
476 244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248, 457 244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,
477 3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 458 1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,
459 244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,
460 1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,
461 135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,
462 92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,
463 4,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130,244,112,
464 15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,96,15,132,244,
465 156,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
466 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,
467 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
468 252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,
469 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,131,252,255,
470 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,
471 193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,
472 195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,155,15,132,
473 244,115,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,
474 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,
475 193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,
476 242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,
477 217,252,243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,
478 217,201,217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,
479 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,
480 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,
481 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,
482 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,
478 252,248,5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135, 483 252,248,5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135,
479 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 484 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,
480 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 485 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,
@@ -1528,320 +1533,320 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1528 dasm_put(Dst, 6314); 1533 dasm_put(Dst, 6314);
1529 } else { 1534 } else {
1530 } 1535 }
1531 dasm_put(Dst, 6324, LJ_TISNUM); 1536 dasm_put(Dst, 6324, 1+1, LJ_TISNUM);
1532 if (LJ_DUALNUM) { 1537 if (LJ_DUALNUM) {
1533 dasm_put(Dst, 6332); 1538 dasm_put(Dst, 6340);
1534 } else { 1539 } else {
1535 dasm_put(Dst, 2291); 1540 dasm_put(Dst, 2291);
1536 } 1541 }
1537 if (sse) { 1542 if (sse) {
1538 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1543 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1539 } else { 1544 } else {
1540 } 1545 }
1541 dasm_put(Dst, 106); 1546 dasm_put(Dst, 106);
1542 if (LJ_DUALNUM || sse) { 1547 if (LJ_DUALNUM || sse) {
1543 if (!sse) { 1548 if (!sse) {
1544 } 1549 }
1545 dasm_put(Dst, 6373); 1550 dasm_put(Dst, 6381);
1546 } else { 1551 } else {
1547 } 1552 }
1548 dasm_put(Dst, 6378); 1553 dasm_put(Dst, 6386, 1+1);
1549 if (sse) { 1554 if (sse) {
1550 dasm_put(Dst, 6381, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1555 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1551 } else { 1556 } else {
1552 dasm_put(Dst, 6391); 1557 dasm_put(Dst, 6407);
1553 } 1558 }
1554 dasm_put(Dst, 2268, LJ_TISNUM); 1559 dasm_put(Dst, 2268, LJ_TISNUM);
1555 if (LJ_DUALNUM) { 1560 if (LJ_DUALNUM) {
1556 dasm_put(Dst, 6399); 1561 dasm_put(Dst, 6415);
1557 } else { 1562 } else {
1558 dasm_put(Dst, 2291); 1563 dasm_put(Dst, 2291);
1559 } 1564 }
1560 if (sse) { 1565 if (sse) {
1561 dasm_put(Dst, 6416); 1566 dasm_put(Dst, 6432);
1562 } else { 1567 } else {
1563 } 1568 }
1564 dasm_put(Dst, 6431, LJ_TISNUM); 1569 dasm_put(Dst, 6447, LJ_TISNUM);
1565 if (LJ_DUALNUM) { 1570 if (LJ_DUALNUM) {
1566 dasm_put(Dst, 6456); 1571 dasm_put(Dst, 6472);
1567 } else { 1572 } else {
1568 dasm_put(Dst, 6476); 1573 dasm_put(Dst, 6492);
1569 } 1574 }
1570 if (sse) { 1575 if (sse) {
1571 dasm_put(Dst, 6481); 1576 dasm_put(Dst, 6497);
1572 } else { 1577 } else {
1573 } 1578 }
1574 dasm_put(Dst, 6498); 1579 dasm_put(Dst, 6514, 1+1);
1575 if (sse) { 1580 if (sse) {
1576 dasm_put(Dst, 6381, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1581 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1577 } else { 1582 } else {
1578 dasm_put(Dst, 6391); 1583 dasm_put(Dst, 6407);
1579 } 1584 }
1580 dasm_put(Dst, 2268, LJ_TISNUM); 1585 dasm_put(Dst, 2268, LJ_TISNUM);
1581 if (LJ_DUALNUM) { 1586 if (LJ_DUALNUM) {
1582 dasm_put(Dst, 6399); 1587 dasm_put(Dst, 6415);
1583 } else { 1588 } else {
1584 dasm_put(Dst, 2291); 1589 dasm_put(Dst, 2291);
1585 } 1590 }
1586 if (sse) { 1591 if (sse) {
1587 dasm_put(Dst, 6416); 1592 dasm_put(Dst, 6432);
1588 } else { 1593 } else {
1589 } 1594 }
1590 dasm_put(Dst, 6431, LJ_TISNUM); 1595 dasm_put(Dst, 6447, LJ_TISNUM);
1591 if (LJ_DUALNUM) { 1596 if (LJ_DUALNUM) {
1592 dasm_put(Dst, 6508); 1597 dasm_put(Dst, 6532);
1593 } else { 1598 } else {
1594 dasm_put(Dst, 6476); 1599 dasm_put(Dst, 6492);
1595 } 1600 }
1596 if (sse) { 1601 if (sse) {
1597 dasm_put(Dst, 6528); 1602 dasm_put(Dst, 6552);
1598 } else { 1603 } else {
1599 } 1604 }
1600 dasm_put(Dst, 6545); 1605 dasm_put(Dst, 6569, 1+1);
1601 if (sse) { 1606 if (sse) {
1602 dasm_put(Dst, 6381, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1607 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1603 } else { 1608 } else {
1604 dasm_put(Dst, 6391); 1609 dasm_put(Dst, 6407);
1605 } 1610 }
1606 dasm_put(Dst, 2268, LJ_TISNUM); 1611 dasm_put(Dst, 2268, LJ_TISNUM);
1607 if (LJ_DUALNUM) { 1612 if (LJ_DUALNUM) {
1608 dasm_put(Dst, 6399); 1613 dasm_put(Dst, 6415);
1609 } else { 1614 } else {
1610 dasm_put(Dst, 2291); 1615 dasm_put(Dst, 2291);
1611 } 1616 }
1612 if (sse) { 1617 if (sse) {
1613 dasm_put(Dst, 6416); 1618 dasm_put(Dst, 6432);
1614 } else { 1619 } else {
1615 } 1620 }
1616 dasm_put(Dst, 6431, LJ_TISNUM); 1621 dasm_put(Dst, 6447, LJ_TISNUM);
1617 if (LJ_DUALNUM) { 1622 if (LJ_DUALNUM) {
1618 dasm_put(Dst, 6555); 1623 dasm_put(Dst, 6587);
1619 } else { 1624 } else {
1620 dasm_put(Dst, 6476); 1625 dasm_put(Dst, 6492);
1621 } 1626 }
1622 if (sse) { 1627 if (sse) {
1623 dasm_put(Dst, 6575); 1628 dasm_put(Dst, 6607);
1624 } else { 1629 } else {
1625 } 1630 }
1626 dasm_put(Dst, 6592, LJ_TISNUM); 1631 dasm_put(Dst, 6624, 1+1, LJ_TISNUM);
1627 if (LJ_DUALNUM) { 1632 if (LJ_DUALNUM) {
1628 dasm_put(Dst, 6399); 1633 dasm_put(Dst, 6415);
1629 } else { 1634 } else {
1630 dasm_put(Dst, 2291); 1635 dasm_put(Dst, 2291);
1631 } 1636 }
1632 if (sse) { 1637 if (sse) {
1633 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1638 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1634 } else { 1639 } else {
1635 } 1640 }
1636 dasm_put(Dst, 6607, LJ_TISNUM); 1641 dasm_put(Dst, 6647, 1+1, LJ_TISNUM);
1637 if (LJ_DUALNUM) { 1642 if (LJ_DUALNUM) {
1638 dasm_put(Dst, 6399); 1643 dasm_put(Dst, 6415);
1639 } else { 1644 } else {
1640 dasm_put(Dst, 2291); 1645 dasm_put(Dst, 2291);
1641 } 1646 }
1642 if (sse) { 1647 if (sse) {
1643 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1648 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1644 } else { 1649 } else {
1645 } 1650 }
1646 dasm_put(Dst, 6623); 1651 dasm_put(Dst, 6671);
1647 if (LJ_DUALNUM) { 1652 if (LJ_DUALNUM) {
1648 dasm_put(Dst, 6373); 1653 dasm_put(Dst, 6381);
1649 } else if (sse) { 1654 } else if (sse) {
1650 dasm_put(Dst, 6629); 1655 dasm_put(Dst, 6677);
1651 } else { 1656 } else {
1652 } 1657 }
1653 dasm_put(Dst, 6641); 1658 dasm_put(Dst, 6689);
1654 if (LJ_DUALNUM) { 1659 if (LJ_DUALNUM) {
1655 dasm_put(Dst, 6652, LJ_TISNUM); 1660 dasm_put(Dst, 6700, 1+1, LJ_TISNUM);
1656 if (LJ_DUALNUM) { 1661 if (LJ_DUALNUM) {
1657 dasm_put(Dst, 6399); 1662 dasm_put(Dst, 6415);
1658 } else { 1663 } else {
1659 dasm_put(Dst, 2291); 1664 dasm_put(Dst, 2291);
1660 } 1665 }
1661 if (sse) { 1666 if (sse) {
1662 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1667 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1663 } else { 1668 } else {
1664 } 1669 }
1665 dasm_put(Dst, 6660, LJ_TISNUM); 1670 dasm_put(Dst, 6716, LJ_TISNUM);
1666 } else if (sse) { 1671 } else if (sse) {
1667 dasm_put(Dst, 6675, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1672 dasm_put(Dst, 6731, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1668 } else { 1673 } else {
1669 } 1674 }
1670 dasm_put(Dst, 6742); 1675 dasm_put(Dst, 6798);
1671 if (LJ_DUALNUM) { 1676 if (LJ_DUALNUM) {
1672 dasm_put(Dst, 6749, LJ_TISNUM); 1677 dasm_put(Dst, 6805, 1+1, LJ_TISNUM);
1673 if (LJ_DUALNUM) { 1678 if (LJ_DUALNUM) {
1674 dasm_put(Dst, 6399); 1679 dasm_put(Dst, 6415);
1675 } else { 1680 } else {
1676 dasm_put(Dst, 2291); 1681 dasm_put(Dst, 2291);
1677 } 1682 }
1678 if (sse) { 1683 if (sse) {
1679 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1684 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1680 } else { 1685 } else {
1681 } 1686 }
1682 dasm_put(Dst, 6660, LJ_TISNUM); 1687 dasm_put(Dst, 6716, LJ_TISNUM);
1683 } else if (sse) { 1688 } else if (sse) {
1684 dasm_put(Dst, 6757, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1689 dasm_put(Dst, 6821, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1685 } else { 1690 } else {
1686 } 1691 }
1687 dasm_put(Dst, 6824); 1692 dasm_put(Dst, 6888);
1688 if (LJ_DUALNUM) { 1693 if (LJ_DUALNUM) {
1689 dasm_put(Dst, 6832, LJ_TISNUM); 1694 dasm_put(Dst, 6896, 1+1, LJ_TISNUM);
1690 if (LJ_DUALNUM) { 1695 if (LJ_DUALNUM) {
1691 dasm_put(Dst, 6399); 1696 dasm_put(Dst, 6415);
1692 } else { 1697 } else {
1693 dasm_put(Dst, 2291); 1698 dasm_put(Dst, 2291);
1694 } 1699 }
1695 if (sse) { 1700 if (sse) {
1696 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1701 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1697 } else { 1702 } else {
1698 } 1703 }
1699 dasm_put(Dst, 6660, LJ_TISNUM); 1704 dasm_put(Dst, 6716, LJ_TISNUM);
1700 } else if (sse) { 1705 } else if (sse) {
1701 dasm_put(Dst, 6840, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1706 dasm_put(Dst, 6912, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1702 } else { 1707 } else {
1703 } 1708 }
1704 dasm_put(Dst, 6907); 1709 dasm_put(Dst, 6979);
1705 if (LJ_DUALNUM) { 1710 if (LJ_DUALNUM) {
1706 dasm_put(Dst, 6915, LJ_TISNUM); 1711 dasm_put(Dst, 6987, 1+1, LJ_TISNUM);
1707 if (LJ_DUALNUM) { 1712 if (LJ_DUALNUM) {
1708 dasm_put(Dst, 6399); 1713 dasm_put(Dst, 6415);
1709 } else { 1714 } else {
1710 dasm_put(Dst, 2291); 1715 dasm_put(Dst, 2291);
1711 } 1716 }
1712 if (sse) { 1717 if (sse) {
1713 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1718 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1714 } else { 1719 } else {
1715 } 1720 }
1716 dasm_put(Dst, 6660, LJ_TISNUM); 1721 dasm_put(Dst, 6716, LJ_TISNUM);
1717 } else if (sse) { 1722 } else if (sse) {
1718 dasm_put(Dst, 6923, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1723 dasm_put(Dst, 7003, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1719 } else { 1724 } else {
1720 } 1725 }
1721 dasm_put(Dst, 6990); 1726 dasm_put(Dst, 7070);
1722 if (LJ_DUALNUM) { 1727 if (LJ_DUALNUM) {
1723 dasm_put(Dst, 6997, LJ_TISNUM); 1728 dasm_put(Dst, 7077, 1+1, LJ_TISNUM);
1724 if (LJ_DUALNUM) { 1729 if (LJ_DUALNUM) {
1725 dasm_put(Dst, 6399); 1730 dasm_put(Dst, 6415);
1726 } else { 1731 } else {
1727 dasm_put(Dst, 2291); 1732 dasm_put(Dst, 2291);
1728 } 1733 }
1729 if (sse) { 1734 if (sse) {
1730 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1735 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1731 } else { 1736 } else {
1732 } 1737 }
1733 dasm_put(Dst, 6660, LJ_TISNUM); 1738 dasm_put(Dst, 6716, LJ_TISNUM);
1734 } else if (sse) { 1739 } else if (sse) {
1735 dasm_put(Dst, 7005, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1740 dasm_put(Dst, 7093, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1736 } else { 1741 } else {
1737 } 1742 }
1738 dasm_put(Dst, 7072, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1743 dasm_put(Dst, 7160, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1739 dasm_put(Dst, 7148, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1744 dasm_put(Dst, 7236, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1740 dasm_put(Dst, 7275, Dt1(->top), Dt1(->base), Dt1(->top)); 1745 dasm_put(Dst, 7363, Dt1(->top), Dt1(->base), Dt1(->top));
1741#if LJ_HASJIT 1746#if LJ_HASJIT
1742 dasm_put(Dst, 7314, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1747 dasm_put(Dst, 7402, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1743#endif 1748#endif
1744 dasm_put(Dst, 7347, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1749 dasm_put(Dst, 7435, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1745 dasm_put(Dst, 7401, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1750 dasm_put(Dst, 7489, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1746#if LJ_HASJIT 1751#if LJ_HASJIT
1747 dasm_put(Dst, 7468, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1752 dasm_put(Dst, 7556, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1748#endif 1753#endif
1749 dasm_put(Dst, 7515); 1754 dasm_put(Dst, 7603);
1750#if LJ_HASJIT 1755#if LJ_HASJIT
1751 dasm_put(Dst, 7342); 1756 dasm_put(Dst, 7430);
1752#endif 1757#endif
1753 dasm_put(Dst, 7522); 1758 dasm_put(Dst, 7610);
1754#if LJ_HASJIT 1759#if LJ_HASJIT
1755 dasm_put(Dst, 7525); 1760 dasm_put(Dst, 7613);
1756#endif 1761#endif
1757 dasm_put(Dst, 7535, Dt1(->base), Dt1(->top)); 1762 dasm_put(Dst, 7623, Dt1(->base), Dt1(->top));
1758#if LJ_HASJIT 1763#if LJ_HASJIT
1759 dasm_put(Dst, 7568); 1764 dasm_put(Dst, 7656);
1760#endif 1765#endif
1761 dasm_put(Dst, 7573, Dt1(->base), Dt1(->top)); 1766 dasm_put(Dst, 7661, Dt1(->base), Dt1(->top));
1762#if LJ_HASJIT 1767#if LJ_HASJIT
1763 dasm_put(Dst, 7604, 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); 1768 dasm_put(Dst, 7692, 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);
1764#endif 1769#endif
1765 dasm_put(Dst, 7843); 1770 dasm_put(Dst, 7931);
1766#if LJ_HASJIT 1771#if LJ_HASJIT
1767 dasm_put(Dst, 7846, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1772 dasm_put(Dst, 7934, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1768#endif 1773#endif
1769 dasm_put(Dst, 7946); 1774 dasm_put(Dst, 8034);
1770 if (!sse) { 1775 if (!sse) {
1771 dasm_put(Dst, 7949); 1776 dasm_put(Dst, 8037);
1772 } 1777 }
1773 dasm_put(Dst, 7994, (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)); 1778 dasm_put(Dst, 8082, (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));
1774 if (!sse) { 1779 if (!sse) {
1775 dasm_put(Dst, 8080); 1780 dasm_put(Dst, 8168);
1776 } 1781 }
1777 dasm_put(Dst, 8125, (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)); 1782 dasm_put(Dst, 8213, (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));
1778 if (!sse) { 1783 if (!sse) {
1779 dasm_put(Dst, 8211); 1784 dasm_put(Dst, 8299);
1780 } 1785 }
1781 dasm_put(Dst, 8250, (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)); 1786 dasm_put(Dst, 8338, (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));
1782 if (sse) { 1787 if (sse) {
1783 dasm_put(Dst, 8339, (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)); 1788 dasm_put(Dst, 8427, (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));
1784 } else { 1789 } else {
1785 dasm_put(Dst, 8453); 1790 dasm_put(Dst, 8541);
1786 } 1791 }
1787 dasm_put(Dst, 8500); 1792 dasm_put(Dst, 8588);
1788 if (!sse) { 1793 if (!sse) {
1789 } else { 1794 } else {
1790 dasm_put(Dst, 8577); 1795 dasm_put(Dst, 8665);
1791 } 1796 }
1792 dasm_put(Dst, 8580); 1797 dasm_put(Dst, 8668);
1793 dasm_put(Dst, 8665, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1798 dasm_put(Dst, 8753, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1794 dasm_put(Dst, 8768, (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)); 1799 dasm_put(Dst, 8856, (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));
1795 dasm_put(Dst, 8930); 1800 dasm_put(Dst, 9018);
1796#if LJ_HASJIT 1801#if LJ_HASJIT
1797 if (sse) { 1802 if (sse) {
1798 dasm_put(Dst, 8971); 1803 dasm_put(Dst, 9059);
1799 dasm_put(Dst, 9041); 1804 dasm_put(Dst, 9129);
1800 dasm_put(Dst, 9113); 1805 dasm_put(Dst, 9201);
1801 } else { 1806 } else {
1802 dasm_put(Dst, 9165); 1807 dasm_put(Dst, 9253);
1803 dasm_put(Dst, 9257); 1808 dasm_put(Dst, 9345);
1804 } 1809 }
1805 dasm_put(Dst, 9303); 1810 dasm_put(Dst, 9391);
1806#endif 1811#endif
1807 dasm_put(Dst, 9307); 1812 dasm_put(Dst, 9395);
1808 if (sse) { 1813 if (sse) {
1809 dasm_put(Dst, 9310, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1814 dasm_put(Dst, 9398, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1810 dasm_put(Dst, 9395, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1815 dasm_put(Dst, 9483, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1811 } else { 1816 } else {
1812 dasm_put(Dst, 9523); 1817 dasm_put(Dst, 9611);
1813 dasm_put(Dst, 9606); 1818 dasm_put(Dst, 9694);
1814 if (cmov) { 1819 if (cmov) {
1815 dasm_put(Dst, 9661); 1820 dasm_put(Dst, 9749);
1816 } else { 1821 } else {
1817 dasm_put(Dst, 9680); 1822 dasm_put(Dst, 9768);
1818 } 1823 }
1819 dasm_put(Dst, 9303); 1824 dasm_put(Dst, 9391);
1820 } 1825 }
1821 dasm_put(Dst, 9721); 1826 dasm_put(Dst, 9809);
1822#if LJ_HASFFI 1827#if LJ_HASFFI
1823#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1828#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1824 dasm_put(Dst, 9745, DtE(->spadj)); 1829 dasm_put(Dst, 9833, DtE(->spadj));
1825#if LJ_TARGET_WINDOWS 1830#if LJ_TARGET_WINDOWS
1826#endif 1831#endif
1827 dasm_put(Dst, 9761, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]), DtE(->fpr[1])); 1832 dasm_put(Dst, 9849, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]), DtE(->fpr[1]));
1828 dasm_put(Dst, 9840, DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1])); 1833 dasm_put(Dst, 9928, DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1]));
1829#if LJ_TARGET_WINDOWS 1834#if LJ_TARGET_WINDOWS
1830#endif 1835#endif
1831 dasm_put(Dst, 9895); 1836 dasm_put(Dst, 9983);
1832#endif 1837#endif
1833 dasm_put(Dst, 9903); 1838 dasm_put(Dst, 9991);
1834#ifdef LUA_USE_ASSERT 1839#ifdef LUA_USE_ASSERT
1835 dasm_put(Dst, 9305); 1840 dasm_put(Dst, 9393);
1836#endif 1841#endif
1837 dasm_put(Dst, 9305); 1842 dasm_put(Dst, 9393);
1838} 1843}
1839 1844
1840/* Generate the code for a single instruction. */ 1845/* Generate the code for a single instruction. */
1841static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1846static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1842{ 1847{
1843 int vk = 0; 1848 int vk = 0;
1844 dasm_put(Dst, 9906, defop); 1849 dasm_put(Dst, 9994, defop);
1845 1850
1846 switch (op) { 1851 switch (op) {
1847 1852
@@ -1852,145 +1857,145 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1852 1857
1853 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1858 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1854 if (LJ_DUALNUM) { 1859 if (LJ_DUALNUM) {
1855 dasm_put(Dst, 9908, LJ_TISNUM, LJ_TISNUM); 1860 dasm_put(Dst, 9996, LJ_TISNUM, LJ_TISNUM);
1856 switch (op) { 1861 switch (op) {
1857 case BC_ISLT: 1862 case BC_ISLT:
1858 dasm_put(Dst, 9938); 1863 dasm_put(Dst, 10026);
1859 break; 1864 break;
1860 case BC_ISGE: 1865 case BC_ISGE:
1861 dasm_put(Dst, 9943); 1866 dasm_put(Dst, 10031);
1862 break; 1867 break;
1863 case BC_ISLE: 1868 case BC_ISLE:
1864 dasm_put(Dst, 9948); 1869 dasm_put(Dst, 10036);
1865 break; 1870 break;
1866 case BC_ISGT: 1871 case BC_ISGT:
1867 dasm_put(Dst, 9953); 1872 dasm_put(Dst, 10041);
1868 break; 1873 break;
1869 default: break; /* Shut up GCC. */ 1874 default: break; /* Shut up GCC. */
1870 } 1875 }
1871 dasm_put(Dst, 9958, -BCBIAS_J*4, LJ_TISNUM); 1876 dasm_put(Dst, 10046, -BCBIAS_J*4, LJ_TISNUM);
1872 if (sse) { 1877 if (sse) {
1873 dasm_put(Dst, 10013); 1878 dasm_put(Dst, 10101);
1874 } else { 1879 } else {
1875 dasm_put(Dst, 10024); 1880 dasm_put(Dst, 10112);
1876 } 1881 }
1877 dasm_put(Dst, 10035); 1882 dasm_put(Dst, 10123);
1878 if (sse) { 1883 if (sse) {
1879 dasm_put(Dst, 10042); 1884 dasm_put(Dst, 10130);
1880 switch (op) { 1885 switch (op) {
1881 case BC_ISLT: 1886 case BC_ISLT:
1882 dasm_put(Dst, 10062); 1887 dasm_put(Dst, 10150);
1883 break; 1888 break;
1884 case BC_ISGE: 1889 case BC_ISGE:
1885 dasm_put(Dst, 10067); 1890 dasm_put(Dst, 10155);
1886 break; 1891 break;
1887 case BC_ISLE: 1892 case BC_ISLE:
1888 dasm_put(Dst, 10072); 1893 dasm_put(Dst, 10160);
1889 break; 1894 break;
1890 case BC_ISGT: 1895 case BC_ISGT:
1891 dasm_put(Dst, 10077); 1896 dasm_put(Dst, 10165);
1892 break; 1897 break;
1893 default: break; /* Shut up GCC. */ 1898 default: break; /* Shut up GCC. */
1894 } 1899 }
1895 dasm_put(Dst, 10082); 1900 dasm_put(Dst, 10170);
1896 } else { 1901 } else {
1897 dasm_put(Dst, 10087); 1902 dasm_put(Dst, 10175);
1898 } 1903 }
1899 } else { 1904 } else {
1900 dasm_put(Dst, 10095, LJ_TISNUM, LJ_TISNUM); 1905 dasm_put(Dst, 10183, LJ_TISNUM, LJ_TISNUM);
1901 } 1906 }
1902 if (sse) { 1907 if (sse) {
1903 dasm_put(Dst, 10116); 1908 dasm_put(Dst, 10204);
1904 } else { 1909 } else {
1905 dasm_put(Dst, 10137); 1910 dasm_put(Dst, 10225);
1906 if (cmov) { 1911 if (cmov) {
1907 dasm_put(Dst, 10153); 1912 dasm_put(Dst, 10241);
1908 } else { 1913 } else {
1909 dasm_put(Dst, 10159); 1914 dasm_put(Dst, 10247);
1910 } 1915 }
1911 } 1916 }
1912 if (LJ_DUALNUM) { 1917 if (LJ_DUALNUM) {
1913 switch (op) { 1918 switch (op) {
1914 case BC_ISLT: 1919 case BC_ISLT:
1915 dasm_put(Dst, 10062); 1920 dasm_put(Dst, 10150);
1916 break; 1921 break;
1917 case BC_ISGE: 1922 case BC_ISGE:
1918 dasm_put(Dst, 10067); 1923 dasm_put(Dst, 10155);
1919 break; 1924 break;
1920 case BC_ISLE: 1925 case BC_ISLE:
1921 dasm_put(Dst, 10072); 1926 dasm_put(Dst, 10160);
1922 break; 1927 break;
1923 case BC_ISGT: 1928 case BC_ISGT:
1924 dasm_put(Dst, 10077); 1929 dasm_put(Dst, 10165);
1925 break; 1930 break;
1926 default: break; /* Shut up GCC. */ 1931 default: break; /* Shut up GCC. */
1927 } 1932 }
1928 dasm_put(Dst, 10082); 1933 dasm_put(Dst, 10170);
1929 } else { 1934 } else {
1930 switch (op) { 1935 switch (op) {
1931 case BC_ISLT: 1936 case BC_ISLT:
1932 dasm_put(Dst, 10166); 1937 dasm_put(Dst, 10254);
1933 break; 1938 break;
1934 case BC_ISGE: 1939 case BC_ISGE:
1935 dasm_put(Dst, 10171); 1940 dasm_put(Dst, 10259);
1936 break; 1941 break;
1937 case BC_ISLE: 1942 case BC_ISLE:
1938 dasm_put(Dst, 10176); 1943 dasm_put(Dst, 10264);
1939 break; 1944 break;
1940 case BC_ISGT: 1945 case BC_ISGT:
1941 dasm_put(Dst, 10181); 1946 dasm_put(Dst, 10269);
1942 break; 1947 break;
1943 default: break; /* Shut up GCC. */ 1948 default: break; /* Shut up GCC. */
1944 } 1949 }
1945 dasm_put(Dst, 10186, -BCBIAS_J*4); 1950 dasm_put(Dst, 10274, -BCBIAS_J*4);
1946 } 1951 }
1947 break; 1952 break;
1948 1953
1949 case BC_ISEQV: case BC_ISNEV: 1954 case BC_ISEQV: case BC_ISNEV:
1950 vk = op == BC_ISEQV; 1955 vk = op == BC_ISEQV;
1951 dasm_put(Dst, 10219); 1956 dasm_put(Dst, 10307);
1952 if (LJ_DUALNUM) { 1957 if (LJ_DUALNUM) {
1953 dasm_put(Dst, 10227, LJ_TISNUM, LJ_TISNUM); 1958 dasm_put(Dst, 10315, LJ_TISNUM, LJ_TISNUM);
1954 if (vk) { 1959 if (vk) {
1955 dasm_put(Dst, 10252); 1960 dasm_put(Dst, 10340);
1956 } else { 1961 } else {
1957 dasm_put(Dst, 10257); 1962 dasm_put(Dst, 10345);
1958 } 1963 }
1959 dasm_put(Dst, 10262, -BCBIAS_J*4, LJ_TISNUM); 1964 dasm_put(Dst, 10350, -BCBIAS_J*4, LJ_TISNUM);
1960 if (sse) { 1965 if (sse) {
1961 dasm_put(Dst, 10315); 1966 dasm_put(Dst, 10403);
1962 } else { 1967 } else {
1963 dasm_put(Dst, 10322); 1968 dasm_put(Dst, 10410);
1964 } 1969 }
1965 dasm_put(Dst, 10326); 1970 dasm_put(Dst, 10414);
1966 if (sse) { 1971 if (sse) {
1967 dasm_put(Dst, 10337); 1972 dasm_put(Dst, 10425);
1968 } else { 1973 } else {
1969 dasm_put(Dst, 10349); 1974 dasm_put(Dst, 10437);
1970 } 1975 }
1971 dasm_put(Dst, 10356); 1976 dasm_put(Dst, 10444);
1972 } else { 1977 } else {
1973 dasm_put(Dst, 10361, LJ_TISNUM, LJ_TISNUM); 1978 dasm_put(Dst, 10449, LJ_TISNUM, LJ_TISNUM);
1974 } 1979 }
1975 if (sse) { 1980 if (sse) {
1976 dasm_put(Dst, 10380); 1981 dasm_put(Dst, 10468);
1977 } else { 1982 } else {
1978 dasm_put(Dst, 10398); 1983 dasm_put(Dst, 10486);
1979 if (cmov) { 1984 if (cmov) {
1980 dasm_put(Dst, 10153); 1985 dasm_put(Dst, 10241);
1981 } else { 1986 } else {
1982 dasm_put(Dst, 10159); 1987 dasm_put(Dst, 10247);
1983 } 1988 }
1984 } 1989 }
1985 iseqne_fp: 1990 iseqne_fp:
1986 if (vk) { 1991 if (vk) {
1987 dasm_put(Dst, 10411); 1992 dasm_put(Dst, 10499);
1988 } else { 1993 } else {
1989 dasm_put(Dst, 10420); 1994 dasm_put(Dst, 10508);
1990 } 1995 }
1991 iseqne_end: 1996 iseqne_end:
1992 if (vk) { 1997 if (vk) {
1993 dasm_put(Dst, 10429, -BCBIAS_J*4); 1998 dasm_put(Dst, 10517, -BCBIAS_J*4);
1994 if (!LJ_HASFFI) { 1999 if (!LJ_HASFFI) {
1995 dasm_put(Dst, 4655); 2000 dasm_put(Dst, 4655);
1996 } 2001 }
@@ -1998,150 +2003,150 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1998 if (!LJ_HASFFI) { 2003 if (!LJ_HASFFI) {
1999 dasm_put(Dst, 4655); 2004 dasm_put(Dst, 4655);
2000 } 2005 }
2001 dasm_put(Dst, 10444, -BCBIAS_J*4); 2006 dasm_put(Dst, 10532, -BCBIAS_J*4);
2002 } 2007 }
2003 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2008 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2004 op == BC_ISEQN || op == BC_ISNEN)) { 2009 op == BC_ISEQN || op == BC_ISNEN)) {
2005 dasm_put(Dst, 10459); 2010 dasm_put(Dst, 10547);
2006 } else { 2011 } else {
2007 dasm_put(Dst, 10198); 2012 dasm_put(Dst, 10286);
2008 } 2013 }
2009 if (op == BC_ISEQV || op == BC_ISNEV) { 2014 if (op == BC_ISEQV || op == BC_ISNEV) {
2010 dasm_put(Dst, 10464); 2015 dasm_put(Dst, 10552);
2011 if (LJ_HASFFI) { 2016 if (LJ_HASFFI) {
2012 dasm_put(Dst, 10467, LJ_TCDATA, LJ_TCDATA); 2017 dasm_put(Dst, 10555, LJ_TCDATA, LJ_TCDATA);
2013 } 2018 }
2014 dasm_put(Dst, 10486, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2019 dasm_put(Dst, 10574, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2015 if (vk) { 2020 if (vk) {
2016 dasm_put(Dst, 10542); 2021 dasm_put(Dst, 10630);
2017 } else { 2022 } else {
2018 dasm_put(Dst, 10546); 2023 dasm_put(Dst, 10634);
2019 } 2024 }
2020 dasm_put(Dst, 10552); 2025 dasm_put(Dst, 10640);
2021 } else if (LJ_HASFFI) { 2026 } else if (LJ_HASFFI) {
2022 dasm_put(Dst, 10557, LJ_TCDATA); 2027 dasm_put(Dst, 10645, LJ_TCDATA);
2023 if (LJ_DUALNUM && vk) { 2028 if (LJ_DUALNUM && vk) {
2024 dasm_put(Dst, 10564); 2029 dasm_put(Dst, 10652);
2025 } else { 2030 } else {
2026 dasm_put(Dst, 10537); 2031 dasm_put(Dst, 10625);
2027 } 2032 }
2028 dasm_put(Dst, 10569); 2033 dasm_put(Dst, 10657);
2029 } 2034 }
2030 break; 2035 break;
2031 case BC_ISEQS: case BC_ISNES: 2036 case BC_ISEQS: case BC_ISNES:
2032 vk = op == BC_ISEQS; 2037 vk = op == BC_ISEQS;
2033 dasm_put(Dst, 10574, LJ_TSTR); 2038 dasm_put(Dst, 10662, LJ_TSTR);
2034 iseqne_test: 2039 iseqne_test:
2035 if (vk) { 2040 if (vk) {
2036 dasm_put(Dst, 10415); 2041 dasm_put(Dst, 10503);
2037 } else { 2042 } else {
2038 dasm_put(Dst, 814); 2043 dasm_put(Dst, 814);
2039 } 2044 }
2040 goto iseqne_end; 2045 goto iseqne_end;
2041 case BC_ISEQN: case BC_ISNEN: 2046 case BC_ISEQN: case BC_ISNEN:
2042 vk = op == BC_ISEQN; 2047 vk = op == BC_ISEQN;
2043 dasm_put(Dst, 10601); 2048 dasm_put(Dst, 10689);
2044 if (LJ_DUALNUM) { 2049 if (LJ_DUALNUM) {
2045 dasm_put(Dst, 10609, LJ_TISNUM, LJ_TISNUM); 2050 dasm_put(Dst, 10697, LJ_TISNUM, LJ_TISNUM);
2046 if (vk) { 2051 if (vk) {
2047 dasm_put(Dst, 10252); 2052 dasm_put(Dst, 10340);
2048 } else { 2053 } else {
2049 dasm_put(Dst, 10257); 2054 dasm_put(Dst, 10345);
2050 } 2055 }
2051 dasm_put(Dst, 10636, -BCBIAS_J*4, LJ_TISNUM); 2056 dasm_put(Dst, 10724, -BCBIAS_J*4, LJ_TISNUM);
2052 if (sse) { 2057 if (sse) {
2053 dasm_put(Dst, 10686); 2058 dasm_put(Dst, 10774);
2054 } else { 2059 } else {
2055 dasm_put(Dst, 10694); 2060 dasm_put(Dst, 10782);
2056 } 2061 }
2057 dasm_put(Dst, 10699); 2062 dasm_put(Dst, 10787);
2058 if (sse) { 2063 if (sse) {
2059 dasm_put(Dst, 10706); 2064 dasm_put(Dst, 10794);
2060 } else { 2065 } else {
2061 dasm_put(Dst, 10719); 2066 dasm_put(Dst, 10807);
2062 } 2067 }
2063 dasm_put(Dst, 10356); 2068 dasm_put(Dst, 10444);
2064 } else { 2069 } else {
2065 dasm_put(Dst, 10727, LJ_TISNUM); 2070 dasm_put(Dst, 10815, LJ_TISNUM);
2066 } 2071 }
2067 if (sse) { 2072 if (sse) {
2068 dasm_put(Dst, 10736); 2073 dasm_put(Dst, 10824);
2069 } else { 2074 } else {
2070 dasm_put(Dst, 10755); 2075 dasm_put(Dst, 10843);
2071 if (cmov) { 2076 if (cmov) {
2072 dasm_put(Dst, 10153); 2077 dasm_put(Dst, 10241);
2073 } else { 2078 } else {
2074 dasm_put(Dst, 10159); 2079 dasm_put(Dst, 10247);
2075 } 2080 }
2076 } 2081 }
2077 goto iseqne_fp; 2082 goto iseqne_fp;
2078 case BC_ISEQP: case BC_ISNEP: 2083 case BC_ISEQP: case BC_ISNEP:
2079 vk = op == BC_ISEQP; 2084 vk = op == BC_ISEQP;
2080 dasm_put(Dst, 10769); 2085 dasm_put(Dst, 10857);
2081 if (!LJ_HASFFI) goto iseqne_test; 2086 if (!LJ_HASFFI) goto iseqne_test;
2082 if (vk) { 2087 if (vk) {
2083 dasm_put(Dst, 10783, -BCBIAS_J*4, LJ_TCDATA); 2088 dasm_put(Dst, 10871, -BCBIAS_J*4, LJ_TCDATA);
2084 } else { 2089 } else {
2085 dasm_put(Dst, 10834, LJ_TCDATA, -BCBIAS_J*4); 2090 dasm_put(Dst, 10922, LJ_TCDATA, -BCBIAS_J*4);
2086 } 2091 }
2087 break; 2092 break;
2088 2093
2089 /* -- Unary test and copy ops ------------------------------------------- */ 2094 /* -- Unary test and copy ops ------------------------------------------- */
2090 2095
2091 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2096 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2092 dasm_put(Dst, 10879, LJ_TISTRUECOND); 2097 dasm_put(Dst, 10967, LJ_TISTRUECOND);
2093 if (op == BC_IST || op == BC_ISTC) { 2098 if (op == BC_IST || op == BC_ISTC) {
2094 dasm_put(Dst, 10181); 2099 dasm_put(Dst, 10269);
2095 } else { 2100 } else {
2096 dasm_put(Dst, 10176); 2101 dasm_put(Dst, 10264);
2097 } 2102 }
2098 if (op == BC_ISTC || op == BC_ISFC) { 2103 if (op == BC_ISTC || op == BC_ISFC) {
2099 dasm_put(Dst, 10891); 2104 dasm_put(Dst, 10979);
2100 } 2105 }
2101 dasm_put(Dst, 10186, -BCBIAS_J*4); 2106 dasm_put(Dst, 10274, -BCBIAS_J*4);
2102 break; 2107 break;
2103 2108
2104 /* -- Unary ops --------------------------------------------------------- */ 2109 /* -- Unary ops --------------------------------------------------------- */
2105 2110
2106 case BC_MOV: 2111 case BC_MOV:
2107 dasm_put(Dst, 10902); 2112 dasm_put(Dst, 10990);
2108 break; 2113 break;
2109 case BC_NOT: 2114 case BC_NOT:
2110 dasm_put(Dst, 10931, LJ_TISTRUECOND, LJ_TTRUE); 2115 dasm_put(Dst, 11019, LJ_TISTRUECOND, LJ_TTRUE);
2111 break; 2116 break;
2112 case BC_UNM: 2117 case BC_UNM:
2113 if (LJ_DUALNUM) { 2118 if (LJ_DUALNUM) {
2114 dasm_put(Dst, 10968, LJ_TISNUM, LJ_TISNUM); 2119 dasm_put(Dst, 11056, LJ_TISNUM, LJ_TISNUM);
2115 } else { 2120 } else {
2116 dasm_put(Dst, 11046, LJ_TISNUM); 2121 dasm_put(Dst, 11134, LJ_TISNUM);
2117 } 2122 }
2118 if (sse) { 2123 if (sse) {
2119 dasm_put(Dst, 11057, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2124 dasm_put(Dst, 11145, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2120 } else { 2125 } else {
2121 dasm_put(Dst, 11082); 2126 dasm_put(Dst, 11170);
2122 } 2127 }
2123 if (LJ_DUALNUM) { 2128 if (LJ_DUALNUM) {
2124 dasm_put(Dst, 10459); 2129 dasm_put(Dst, 10547);
2125 } else { 2130 } else {
2126 dasm_put(Dst, 10198); 2131 dasm_put(Dst, 10286);
2127 } 2132 }
2128 break; 2133 break;
2129 case BC_LEN: 2134 case BC_LEN:
2130 dasm_put(Dst, 11091, LJ_TSTR); 2135 dasm_put(Dst, 11179, LJ_TSTR);
2131 if (LJ_DUALNUM) { 2136 if (LJ_DUALNUM) {
2132 dasm_put(Dst, 11105, Dt5(->len), LJ_TISNUM); 2137 dasm_put(Dst, 11193, Dt5(->len), LJ_TISNUM);
2133 } else if (sse) { 2138 } else if (sse) {
2134 dasm_put(Dst, 11119, Dt5(->len)); 2139 dasm_put(Dst, 11207, Dt5(->len));
2135 } else { 2140 } else {
2136 dasm_put(Dst, 11137, Dt5(->len)); 2141 dasm_put(Dst, 11225, Dt5(->len));
2137 } 2142 }
2138 dasm_put(Dst, 11146, LJ_TTAB); 2143 dasm_put(Dst, 11234, LJ_TTAB);
2139 if (LJ_DUALNUM) { 2144 if (LJ_DUALNUM) {
2140 } else if (sse) { 2145 } else if (sse) {
2141 dasm_put(Dst, 11188); 2146 dasm_put(Dst, 11276);
2142 } else { 2147 } else {
2143 } 2148 }
2144 dasm_put(Dst, 11194); 2149 dasm_put(Dst, 11282);
2145 break; 2150 break;
2146 2151
2147 /* -- Binary ops -------------------------------------------------------- */ 2152 /* -- Binary ops -------------------------------------------------------- */
@@ -2149,603 +2154,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2149 2154
2150 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2155 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2151 if (LJ_DUALNUM) { 2156 if (LJ_DUALNUM) {
2152 dasm_put(Dst, 11207); 2157 dasm_put(Dst, 11295);
2153 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2158 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2154 switch (vk) { 2159 switch (vk) {
2155 case 0: 2160 case 0:
2156 dasm_put(Dst, 11215, LJ_TISNUM, LJ_TISNUM); 2161 dasm_put(Dst, 11303, LJ_TISNUM, LJ_TISNUM);
2157 break; 2162 break;
2158 case 1: 2163 case 1:
2159 dasm_put(Dst, 11250, LJ_TISNUM, LJ_TISNUM); 2164 dasm_put(Dst, 11338, LJ_TISNUM, LJ_TISNUM);
2160 break; 2165 break;
2161 default: 2166 default:
2162 dasm_put(Dst, 11285, LJ_TISNUM, LJ_TISNUM); 2167 dasm_put(Dst, 11373, LJ_TISNUM, LJ_TISNUM);
2163 break; 2168 break;
2164 } 2169 }
2165 dasm_put(Dst, 11318, LJ_TISNUM); 2170 dasm_put(Dst, 11406, LJ_TISNUM);
2166 if (vk == 1) { 2171 if (vk == 1) {
2167 dasm_put(Dst, 11115); 2172 dasm_put(Dst, 11203);
2168 } else { 2173 } else {
2169 dasm_put(Dst, 10898); 2174 dasm_put(Dst, 10986);
2170 } 2175 }
2171 dasm_put(Dst, 10198); 2176 dasm_put(Dst, 10286);
2172 } else { 2177 } else {
2173 dasm_put(Dst, 11207); 2178 dasm_put(Dst, 11295);
2174 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2179 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2175 switch (vk) { 2180 switch (vk) {
2176 case 0: 2181 case 0:
2177 dasm_put(Dst, 11324, LJ_TISNUM); 2182 dasm_put(Dst, 11412, LJ_TISNUM);
2178 if (LJ_DUALNUM) { 2183 if (LJ_DUALNUM) {
2179 dasm_put(Dst, 11336, LJ_TISNUM); 2184 dasm_put(Dst, 11424, LJ_TISNUM);
2180 } 2185 }
2181 if (sse) { 2186 if (sse) {
2182 dasm_put(Dst, 11348); 2187 dasm_put(Dst, 11436);
2183 } else { 2188 } else {
2184 dasm_put(Dst, 11363); 2189 dasm_put(Dst, 11451);
2185 } 2190 }
2186 break; 2191 break;
2187 case 1: 2192 case 1:
2188 dasm_put(Dst, 11372, LJ_TISNUM); 2193 dasm_put(Dst, 11460, LJ_TISNUM);
2189 if (LJ_DUALNUM) { 2194 if (LJ_DUALNUM) {
2190 dasm_put(Dst, 11384, LJ_TISNUM); 2195 dasm_put(Dst, 11472, LJ_TISNUM);
2191 } 2196 }
2192 if (sse) { 2197 if (sse) {
2193 dasm_put(Dst, 11396); 2198 dasm_put(Dst, 11484);
2194 } else { 2199 } else {
2195 dasm_put(Dst, 11411); 2200 dasm_put(Dst, 11499);
2196 } 2201 }
2197 break; 2202 break;
2198 default: 2203 default:
2199 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2204 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2200 if (sse) { 2205 if (sse) {
2201 dasm_put(Dst, 11442); 2206 dasm_put(Dst, 11530);
2202 } else { 2207 } else {
2203 dasm_put(Dst, 11456); 2208 dasm_put(Dst, 11544);
2204 } 2209 }
2205 break; 2210 break;
2206 } 2211 }
2207 if (sse) { 2212 if (sse) {
2208 dasm_put(Dst, 11075); 2213 dasm_put(Dst, 11163);
2209 } else { 2214 } else {
2210 dasm_put(Dst, 11087); 2215 dasm_put(Dst, 11175);
2211 } 2216 }
2212 dasm_put(Dst, 10198); 2217 dasm_put(Dst, 10286);
2213 } 2218 }
2214 break; 2219 break;
2215 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2220 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2216 if (LJ_DUALNUM) { 2221 if (LJ_DUALNUM) {
2217 dasm_put(Dst, 11207); 2222 dasm_put(Dst, 11295);
2218 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2223 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2219 switch (vk) { 2224 switch (vk) {
2220 case 0: 2225 case 0:
2221 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM); 2226 dasm_put(Dst, 11552, LJ_TISNUM, LJ_TISNUM);
2222 break; 2227 break;
2223 case 1: 2228 case 1:
2224 dasm_put(Dst, 11499, LJ_TISNUM, LJ_TISNUM); 2229 dasm_put(Dst, 11587, LJ_TISNUM, LJ_TISNUM);
2225 break; 2230 break;
2226 default: 2231 default:
2227 dasm_put(Dst, 11534, LJ_TISNUM, LJ_TISNUM); 2232 dasm_put(Dst, 11622, LJ_TISNUM, LJ_TISNUM);
2228 break; 2233 break;
2229 } 2234 }
2230 dasm_put(Dst, 11318, LJ_TISNUM); 2235 dasm_put(Dst, 11406, LJ_TISNUM);
2231 if (vk == 1) { 2236 if (vk == 1) {
2232 dasm_put(Dst, 11115); 2237 dasm_put(Dst, 11203);
2233 } else { 2238 } else {
2234 dasm_put(Dst, 10898); 2239 dasm_put(Dst, 10986);
2235 } 2240 }
2236 dasm_put(Dst, 10198); 2241 dasm_put(Dst, 10286);
2237 } else { 2242 } else {
2238 dasm_put(Dst, 11207); 2243 dasm_put(Dst, 11295);
2239 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2244 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2240 switch (vk) { 2245 switch (vk) {
2241 case 0: 2246 case 0:
2242 dasm_put(Dst, 11324, LJ_TISNUM); 2247 dasm_put(Dst, 11412, LJ_TISNUM);
2243 if (LJ_DUALNUM) { 2248 if (LJ_DUALNUM) {
2244 dasm_put(Dst, 11336, LJ_TISNUM); 2249 dasm_put(Dst, 11424, LJ_TISNUM);
2245 } 2250 }
2246 if (sse) { 2251 if (sse) {
2247 dasm_put(Dst, 11567); 2252 dasm_put(Dst, 11655);
2248 } else { 2253 } else {
2249 dasm_put(Dst, 11582); 2254 dasm_put(Dst, 11670);
2250 } 2255 }
2251 break; 2256 break;
2252 case 1: 2257 case 1:
2253 dasm_put(Dst, 11372, LJ_TISNUM); 2258 dasm_put(Dst, 11460, LJ_TISNUM);
2254 if (LJ_DUALNUM) { 2259 if (LJ_DUALNUM) {
2255 dasm_put(Dst, 11384, LJ_TISNUM); 2260 dasm_put(Dst, 11472, LJ_TISNUM);
2256 } 2261 }
2257 if (sse) { 2262 if (sse) {
2258 dasm_put(Dst, 11591); 2263 dasm_put(Dst, 11679);
2259 } else { 2264 } else {
2260 dasm_put(Dst, 11606); 2265 dasm_put(Dst, 11694);
2261 } 2266 }
2262 break; 2267 break;
2263 default: 2268 default:
2264 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2269 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2265 if (sse) { 2270 if (sse) {
2266 dasm_put(Dst, 11615); 2271 dasm_put(Dst, 11703);
2267 } else { 2272 } else {
2268 dasm_put(Dst, 11629); 2273 dasm_put(Dst, 11717);
2269 } 2274 }
2270 break; 2275 break;
2271 } 2276 }
2272 if (sse) { 2277 if (sse) {
2273 dasm_put(Dst, 11075); 2278 dasm_put(Dst, 11163);
2274 } else { 2279 } else {
2275 dasm_put(Dst, 11087); 2280 dasm_put(Dst, 11175);
2276 } 2281 }
2277 dasm_put(Dst, 10198); 2282 dasm_put(Dst, 10286);
2278 } 2283 }
2279 break; 2284 break;
2280 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2285 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2281 if (LJ_DUALNUM) { 2286 if (LJ_DUALNUM) {
2282 dasm_put(Dst, 11207); 2287 dasm_put(Dst, 11295);
2283 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2288 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2284 switch (vk) { 2289 switch (vk) {
2285 case 0: 2290 case 0:
2286 dasm_put(Dst, 11637, LJ_TISNUM, LJ_TISNUM); 2291 dasm_put(Dst, 11725, LJ_TISNUM, LJ_TISNUM);
2287 break; 2292 break;
2288 case 1: 2293 case 1:
2289 dasm_put(Dst, 11673, LJ_TISNUM, LJ_TISNUM); 2294 dasm_put(Dst, 11761, LJ_TISNUM, LJ_TISNUM);
2290 break; 2295 break;
2291 default: 2296 default:
2292 dasm_put(Dst, 11709, LJ_TISNUM, LJ_TISNUM); 2297 dasm_put(Dst, 11797, LJ_TISNUM, LJ_TISNUM);
2293 break; 2298 break;
2294 } 2299 }
2295 dasm_put(Dst, 11318, LJ_TISNUM); 2300 dasm_put(Dst, 11406, LJ_TISNUM);
2296 if (vk == 1) { 2301 if (vk == 1) {
2297 dasm_put(Dst, 11115); 2302 dasm_put(Dst, 11203);
2298 } else { 2303 } else {
2299 dasm_put(Dst, 10898); 2304 dasm_put(Dst, 10986);
2300 } 2305 }
2301 dasm_put(Dst, 10198); 2306 dasm_put(Dst, 10286);
2302 } else { 2307 } else {
2303 dasm_put(Dst, 11207); 2308 dasm_put(Dst, 11295);
2304 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2309 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2305 switch (vk) { 2310 switch (vk) {
2306 case 0: 2311 case 0:
2307 dasm_put(Dst, 11324, LJ_TISNUM); 2312 dasm_put(Dst, 11412, LJ_TISNUM);
2308 if (LJ_DUALNUM) { 2313 if (LJ_DUALNUM) {
2309 dasm_put(Dst, 11336, LJ_TISNUM); 2314 dasm_put(Dst, 11424, LJ_TISNUM);
2310 } 2315 }
2311 if (sse) { 2316 if (sse) {
2312 dasm_put(Dst, 11743); 2317 dasm_put(Dst, 11831);
2313 } else { 2318 } else {
2314 dasm_put(Dst, 11758); 2319 dasm_put(Dst, 11846);
2315 } 2320 }
2316 break; 2321 break;
2317 case 1: 2322 case 1:
2318 dasm_put(Dst, 11372, LJ_TISNUM); 2323 dasm_put(Dst, 11460, LJ_TISNUM);
2319 if (LJ_DUALNUM) { 2324 if (LJ_DUALNUM) {
2320 dasm_put(Dst, 11384, LJ_TISNUM); 2325 dasm_put(Dst, 11472, LJ_TISNUM);
2321 } 2326 }
2322 if (sse) { 2327 if (sse) {
2323 dasm_put(Dst, 11767); 2328 dasm_put(Dst, 11855);
2324 } else { 2329 } else {
2325 dasm_put(Dst, 11782); 2330 dasm_put(Dst, 11870);
2326 } 2331 }
2327 break; 2332 break;
2328 default: 2333 default:
2329 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2334 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2330 if (sse) { 2335 if (sse) {
2331 dasm_put(Dst, 11791); 2336 dasm_put(Dst, 11879);
2332 } else { 2337 } else {
2333 dasm_put(Dst, 11805); 2338 dasm_put(Dst, 11893);
2334 } 2339 }
2335 break; 2340 break;
2336 } 2341 }
2337 if (sse) { 2342 if (sse) {
2338 dasm_put(Dst, 11075); 2343 dasm_put(Dst, 11163);
2339 } else { 2344 } else {
2340 dasm_put(Dst, 11087); 2345 dasm_put(Dst, 11175);
2341 } 2346 }
2342 dasm_put(Dst, 10198); 2347 dasm_put(Dst, 10286);
2343 } 2348 }
2344 break; 2349 break;
2345 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2350 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2346 dasm_put(Dst, 11207); 2351 dasm_put(Dst, 11295);
2347 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2352 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2348 switch (vk) { 2353 switch (vk) {
2349 case 0: 2354 case 0:
2350 dasm_put(Dst, 11324, LJ_TISNUM); 2355 dasm_put(Dst, 11412, LJ_TISNUM);
2351 if (LJ_DUALNUM) { 2356 if (LJ_DUALNUM) {
2352 dasm_put(Dst, 11336, LJ_TISNUM); 2357 dasm_put(Dst, 11424, LJ_TISNUM);
2353 } 2358 }
2354 if (sse) { 2359 if (sse) {
2355 dasm_put(Dst, 11813); 2360 dasm_put(Dst, 11901);
2356 } else { 2361 } else {
2357 dasm_put(Dst, 11828); 2362 dasm_put(Dst, 11916);
2358 } 2363 }
2359 break; 2364 break;
2360 case 1: 2365 case 1:
2361 dasm_put(Dst, 11372, LJ_TISNUM); 2366 dasm_put(Dst, 11460, LJ_TISNUM);
2362 if (LJ_DUALNUM) { 2367 if (LJ_DUALNUM) {
2363 dasm_put(Dst, 11384, LJ_TISNUM); 2368 dasm_put(Dst, 11472, LJ_TISNUM);
2364 } 2369 }
2365 if (sse) { 2370 if (sse) {
2366 dasm_put(Dst, 11837); 2371 dasm_put(Dst, 11925);
2367 } else { 2372 } else {
2368 dasm_put(Dst, 11852); 2373 dasm_put(Dst, 11940);
2369 } 2374 }
2370 break; 2375 break;
2371 default: 2376 default:
2372 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2377 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2373 if (sse) { 2378 if (sse) {
2374 dasm_put(Dst, 11861); 2379 dasm_put(Dst, 11949);
2375 } else { 2380 } else {
2376 dasm_put(Dst, 11875); 2381 dasm_put(Dst, 11963);
2377 } 2382 }
2378 break; 2383 break;
2379 } 2384 }
2380 if (sse) { 2385 if (sse) {
2381 dasm_put(Dst, 11075); 2386 dasm_put(Dst, 11163);
2382 } else { 2387 } else {
2383 dasm_put(Dst, 11087); 2388 dasm_put(Dst, 11175);
2384 } 2389 }
2385 dasm_put(Dst, 10198); 2390 dasm_put(Dst, 10286);
2386 break; 2391 break;
2387 case BC_MODVN: 2392 case BC_MODVN:
2388 dasm_put(Dst, 11207); 2393 dasm_put(Dst, 11295);
2389 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2394 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2390 switch (vk) { 2395 switch (vk) {
2391 case 0: 2396 case 0:
2392 dasm_put(Dst, 11324, LJ_TISNUM); 2397 dasm_put(Dst, 11412, LJ_TISNUM);
2393 if (LJ_DUALNUM) { 2398 if (LJ_DUALNUM) {
2394 dasm_put(Dst, 11336, LJ_TISNUM); 2399 dasm_put(Dst, 11424, LJ_TISNUM);
2395 } 2400 }
2396 if (sse) { 2401 if (sse) {
2397 dasm_put(Dst, 11883); 2402 dasm_put(Dst, 11971);
2398 } else { 2403 } else {
2399 dasm_put(Dst, 11898); 2404 dasm_put(Dst, 11986);
2400 } 2405 }
2401 break; 2406 break;
2402 case 1: 2407 case 1:
2403 dasm_put(Dst, 11372, LJ_TISNUM); 2408 dasm_put(Dst, 11460, LJ_TISNUM);
2404 if (LJ_DUALNUM) { 2409 if (LJ_DUALNUM) {
2405 dasm_put(Dst, 11384, LJ_TISNUM); 2410 dasm_put(Dst, 11472, LJ_TISNUM);
2406 } 2411 }
2407 if (sse) { 2412 if (sse) {
2408 dasm_put(Dst, 11907); 2413 dasm_put(Dst, 11995);
2409 } else { 2414 } else {
2410 dasm_put(Dst, 11922); 2415 dasm_put(Dst, 12010);
2411 } 2416 }
2412 break; 2417 break;
2413 default: 2418 default:
2414 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2419 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2415 if (sse) { 2420 if (sse) {
2416 dasm_put(Dst, 11931); 2421 dasm_put(Dst, 12019);
2417 } else { 2422 } else {
2418 dasm_put(Dst, 11945); 2423 dasm_put(Dst, 12033);
2419 } 2424 }
2420 break; 2425 break;
2421 } 2426 }
2422 dasm_put(Dst, 11953); 2427 dasm_put(Dst, 12041);
2423 if (sse) { 2428 if (sse) {
2424 dasm_put(Dst, 11075); 2429 dasm_put(Dst, 11163);
2425 } else { 2430 } else {
2426 dasm_put(Dst, 11087); 2431 dasm_put(Dst, 11175);
2427 } 2432 }
2428 dasm_put(Dst, 10198); 2433 dasm_put(Dst, 10286);
2429 break; 2434 break;
2430 case BC_MODNV: case BC_MODVV: 2435 case BC_MODNV: case BC_MODVV:
2431 dasm_put(Dst, 11207); 2436 dasm_put(Dst, 11295);
2432 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2437 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2433 switch (vk) { 2438 switch (vk) {
2434 case 0: 2439 case 0:
2435 dasm_put(Dst, 11324, LJ_TISNUM); 2440 dasm_put(Dst, 11412, LJ_TISNUM);
2436 if (LJ_DUALNUM) { 2441 if (LJ_DUALNUM) {
2437 dasm_put(Dst, 11336, LJ_TISNUM); 2442 dasm_put(Dst, 11424, LJ_TISNUM);
2438 } 2443 }
2439 if (sse) { 2444 if (sse) {
2440 dasm_put(Dst, 11883); 2445 dasm_put(Dst, 11971);
2441 } else { 2446 } else {
2442 dasm_put(Dst, 11898); 2447 dasm_put(Dst, 11986);
2443 } 2448 }
2444 break; 2449 break;
2445 case 1: 2450 case 1:
2446 dasm_put(Dst, 11372, LJ_TISNUM); 2451 dasm_put(Dst, 11460, LJ_TISNUM);
2447 if (LJ_DUALNUM) { 2452 if (LJ_DUALNUM) {
2448 dasm_put(Dst, 11384, LJ_TISNUM); 2453 dasm_put(Dst, 11472, LJ_TISNUM);
2449 } 2454 }
2450 if (sse) { 2455 if (sse) {
2451 dasm_put(Dst, 11907); 2456 dasm_put(Dst, 11995);
2452 } else { 2457 } else {
2453 dasm_put(Dst, 11922); 2458 dasm_put(Dst, 12010);
2454 } 2459 }
2455 break; 2460 break;
2456 default: 2461 default:
2457 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2462 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2458 if (sse) { 2463 if (sse) {
2459 dasm_put(Dst, 11931); 2464 dasm_put(Dst, 12019);
2460 } else { 2465 } else {
2461 dasm_put(Dst, 11945); 2466 dasm_put(Dst, 12033);
2462 } 2467 }
2463 break; 2468 break;
2464 } 2469 }
2465 dasm_put(Dst, 11959); 2470 dasm_put(Dst, 12047);
2466 break; 2471 break;
2467 case BC_POW: 2472 case BC_POW:
2468 dasm_put(Dst, 11207); 2473 dasm_put(Dst, 11295);
2469 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2474 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2470 switch (vk) { 2475 switch (vk) {
2471 case 0: 2476 case 0:
2472 dasm_put(Dst, 11324, LJ_TISNUM); 2477 dasm_put(Dst, 11412, LJ_TISNUM);
2473 if (LJ_DUALNUM) { 2478 if (LJ_DUALNUM) {
2474 dasm_put(Dst, 11336, LJ_TISNUM); 2479 dasm_put(Dst, 11424, LJ_TISNUM);
2475 } 2480 }
2476 if (sse) { 2481 if (sse) {
2477 dasm_put(Dst, 11883); 2482 dasm_put(Dst, 11971);
2478 } else { 2483 } else {
2479 dasm_put(Dst, 11898); 2484 dasm_put(Dst, 11986);
2480 } 2485 }
2481 break; 2486 break;
2482 case 1: 2487 case 1:
2483 dasm_put(Dst, 11372, LJ_TISNUM); 2488 dasm_put(Dst, 11460, LJ_TISNUM);
2484 if (LJ_DUALNUM) { 2489 if (LJ_DUALNUM) {
2485 dasm_put(Dst, 11384, LJ_TISNUM); 2490 dasm_put(Dst, 11472, LJ_TISNUM);
2486 } 2491 }
2487 if (sse) { 2492 if (sse) {
2488 dasm_put(Dst, 11907); 2493 dasm_put(Dst, 11995);
2489 } else { 2494 } else {
2490 dasm_put(Dst, 11922); 2495 dasm_put(Dst, 12010);
2491 } 2496 }
2492 break; 2497 break;
2493 default: 2498 default:
2494 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2499 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2495 if (sse) { 2500 if (sse) {
2496 dasm_put(Dst, 11931); 2501 dasm_put(Dst, 12019);
2497 } else { 2502 } else {
2498 dasm_put(Dst, 11945); 2503 dasm_put(Dst, 12033);
2499 } 2504 }
2500 break; 2505 break;
2501 } 2506 }
2502 dasm_put(Dst, 11964); 2507 dasm_put(Dst, 12052);
2503 if (sse) { 2508 if (sse) {
2504 dasm_put(Dst, 11075); 2509 dasm_put(Dst, 11163);
2505 } else { 2510 } else {
2506 dasm_put(Dst, 11087); 2511 dasm_put(Dst, 11175);
2507 } 2512 }
2508 dasm_put(Dst, 10198); 2513 dasm_put(Dst, 10286);
2509 break; 2514 break;
2510 2515
2511 case BC_CAT: 2516 case BC_CAT:
2512 dasm_put(Dst, 11968, Dt1(->base), Dt1(->base)); 2517 dasm_put(Dst, 12056, Dt1(->base), Dt1(->base));
2513 break; 2518 break;
2514 2519
2515 /* -- Constant ops ------------------------------------------------------ */ 2520 /* -- Constant ops ------------------------------------------------------ */
2516 2521
2517 case BC_KSTR: 2522 case BC_KSTR:
2518 dasm_put(Dst, 12052, LJ_TSTR); 2523 dasm_put(Dst, 12140, LJ_TSTR);
2519 break; 2524 break;
2520 case BC_KCDATA: 2525 case BC_KCDATA:
2521#if LJ_HASFFI 2526#if LJ_HASFFI
2522 dasm_put(Dst, 12052, LJ_TCDATA); 2527 dasm_put(Dst, 12140, LJ_TCDATA);
2523#endif 2528#endif
2524 break; 2529 break;
2525 case BC_KSHORT: 2530 case BC_KSHORT:
2526 if (LJ_DUALNUM) { 2531 if (LJ_DUALNUM) {
2527 dasm_put(Dst, 12089, LJ_TISNUM); 2532 dasm_put(Dst, 12177, LJ_TISNUM);
2528 } else if (sse) { 2533 } else if (sse) {
2529 dasm_put(Dst, 12101); 2534 dasm_put(Dst, 12189);
2530 } else { 2535 } else {
2531 dasm_put(Dst, 12116); 2536 dasm_put(Dst, 12204);
2532 } 2537 }
2533 dasm_put(Dst, 10198); 2538 dasm_put(Dst, 10286);
2534 break; 2539 break;
2535 case BC_KNUM: 2540 case BC_KNUM:
2536 if (sse) { 2541 if (sse) {
2537 dasm_put(Dst, 12124); 2542 dasm_put(Dst, 12212);
2538 } else { 2543 } else {
2539 dasm_put(Dst, 12138); 2544 dasm_put(Dst, 12226);
2540 } 2545 }
2541 dasm_put(Dst, 10198); 2546 dasm_put(Dst, 10286);
2542 break; 2547 break;
2543 case BC_KPRI: 2548 case BC_KPRI:
2544 dasm_put(Dst, 12146); 2549 dasm_put(Dst, 12234);
2545 break; 2550 break;
2546 case BC_KNIL: 2551 case BC_KNIL:
2547 dasm_put(Dst, 12175, LJ_TNIL); 2552 dasm_put(Dst, 12263, LJ_TNIL);
2548 break; 2553 break;
2549 2554
2550 /* -- Upvalue and function ops ------------------------------------------ */ 2555 /* -- Upvalue and function ops ------------------------------------------ */
2551 2556
2552 case BC_UGET: 2557 case BC_UGET:
2553 dasm_put(Dst, 12223, offsetof(GCfuncL, uvptr), DtA(->v)); 2558 dasm_put(Dst, 12311, offsetof(GCfuncL, uvptr), DtA(->v));
2554 break; 2559 break;
2555 case BC_USETV: 2560 case BC_USETV:
2556#define TV2MARKOFS \ 2561#define TV2MARKOFS \
2557 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2562 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2558 dasm_put(Dst, 12264, 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); 2563 dasm_put(Dst, 12352, 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);
2559 dasm_put(Dst, 12360); 2564 dasm_put(Dst, 12448);
2560 break; 2565 break;
2561#undef TV2MARKOFS 2566#undef TV2MARKOFS
2562 case BC_USETS: 2567 case BC_USETS:
2563 dasm_put(Dst, 12372, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2568 dasm_put(Dst, 12460, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2564 break; 2569 break;
2565 case BC_USETN: 2570 case BC_USETN:
2566 dasm_put(Dst, 12468); 2571 dasm_put(Dst, 12556);
2567 if (sse) { 2572 if (sse) {
2568 dasm_put(Dst, 12473); 2573 dasm_put(Dst, 12561);
2569 } else { 2574 } else {
2570 dasm_put(Dst, 10722); 2575 dasm_put(Dst, 10810);
2571 } 2576 }
2572 dasm_put(Dst, 12481, offsetof(GCfuncL, uvptr), DtA(->v)); 2577 dasm_put(Dst, 12569, offsetof(GCfuncL, uvptr), DtA(->v));
2573 if (sse) { 2578 if (sse) {
2574 dasm_put(Dst, 12490); 2579 dasm_put(Dst, 12578);
2575 } else { 2580 } else {
2576 dasm_put(Dst, 12496); 2581 dasm_put(Dst, 12584);
2577 } 2582 }
2578 dasm_put(Dst, 10198); 2583 dasm_put(Dst, 10286);
2579 break; 2584 break;
2580 case BC_USETP: 2585 case BC_USETP:
2581 dasm_put(Dst, 12499, offsetof(GCfuncL, uvptr), DtA(->v)); 2586 dasm_put(Dst, 12587, offsetof(GCfuncL, uvptr), DtA(->v));
2582 break; 2587 break;
2583 case BC_UCLO: 2588 case BC_UCLO:
2584 dasm_put(Dst, 12539, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2589 dasm_put(Dst, 12627, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2585 break; 2590 break;
2586 2591
2587 case BC_FNEW: 2592 case BC_FNEW:
2588 dasm_put(Dst, 12595, Dt1(->base), Dt1(->base), LJ_TFUNC); 2593 dasm_put(Dst, 12683, Dt1(->base), Dt1(->base), LJ_TFUNC);
2589 break; 2594 break;
2590 2595
2591 /* -- Table ops --------------------------------------------------------- */ 2596 /* -- Table ops --------------------------------------------------------- */
2592 2597
2593 case BC_TNEW: 2598 case BC_TNEW:
2594 dasm_put(Dst, 12662, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2599 dasm_put(Dst, 12750, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2595 break; 2600 break;
2596 case BC_TDUP: 2601 case BC_TDUP:
2597 dasm_put(Dst, 12786, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2602 dasm_put(Dst, 12874, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2598 break; 2603 break;
2599 2604
2600 case BC_GGET: 2605 case BC_GGET:
2601 dasm_put(Dst, 12885, Dt7(->env)); 2606 dasm_put(Dst, 12973, Dt7(->env));
2602 break; 2607 break;
2603 case BC_GSET: 2608 case BC_GSET:
2604 dasm_put(Dst, 12905, Dt7(->env)); 2609 dasm_put(Dst, 12993, Dt7(->env));
2605 break; 2610 break;
2606 2611
2607 case BC_TGETV: 2612 case BC_TGETV:
2608 dasm_put(Dst, 12925, LJ_TTAB); 2613 dasm_put(Dst, 13013, LJ_TTAB);
2609 if (LJ_DUALNUM) { 2614 if (LJ_DUALNUM) {
2610 dasm_put(Dst, 12948, LJ_TISNUM); 2615 dasm_put(Dst, 13036, LJ_TISNUM);
2611 } else { 2616 } else {
2612 dasm_put(Dst, 12962, LJ_TISNUM); 2617 dasm_put(Dst, 13050, LJ_TISNUM);
2613 if (sse) { 2618 if (sse) {
2614 dasm_put(Dst, 12973); 2619 dasm_put(Dst, 13061);
2615 } else { 2620 } else {
2616 } 2621 }
2617 dasm_put(Dst, 12994); 2622 dasm_put(Dst, 13082);
2618 } 2623 }
2619 dasm_put(Dst, 12999, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2624 dasm_put(Dst, 13087, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2620 dasm_put(Dst, 13091, LJ_TSTR); 2625 dasm_put(Dst, 13179, LJ_TSTR);
2621 break; 2626 break;
2622 case BC_TGETS: 2627 case BC_TGETS:
2623 dasm_put(Dst, 13109, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2628 dasm_put(Dst, 13197, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2624 dasm_put(Dst, 13194, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2629 dasm_put(Dst, 13282, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2625 break; 2630 break;
2626 case BC_TGETB: 2631 case BC_TGETB:
2627 dasm_put(Dst, 13266, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2632 dasm_put(Dst, 13354, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2628 dasm_put(Dst, 13362, LJ_TNIL); 2633 dasm_put(Dst, 13450, LJ_TNIL);
2629 break; 2634 break;
2630 2635
2631 case BC_TSETV: 2636 case BC_TSETV:
2632 dasm_put(Dst, 13379, LJ_TTAB); 2637 dasm_put(Dst, 13467, LJ_TTAB);
2633 if (LJ_DUALNUM) { 2638 if (LJ_DUALNUM) {
2634 dasm_put(Dst, 12948, LJ_TISNUM); 2639 dasm_put(Dst, 13036, LJ_TISNUM);
2635 } else { 2640 } else {
2636 dasm_put(Dst, 12962, LJ_TISNUM); 2641 dasm_put(Dst, 13050, LJ_TISNUM);
2637 if (sse) { 2642 if (sse) {
2638 dasm_put(Dst, 12973); 2643 dasm_put(Dst, 13061);
2639 } else { 2644 } else {
2640 } 2645 }
2641 dasm_put(Dst, 13402); 2646 dasm_put(Dst, 13490);
2642 } 2647 }
2643 dasm_put(Dst, 13407, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2648 dasm_put(Dst, 13495, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2644 dasm_put(Dst, 13488, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2649 dasm_put(Dst, 13576, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2645 break; 2650 break;
2646 case BC_TSETS: 2651 case BC_TSETS:
2647 dasm_put(Dst, 13547, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2652 dasm_put(Dst, 13635, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2648 dasm_put(Dst, 13624, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2653 dasm_put(Dst, 13712, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2649 dasm_put(Dst, 13711, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2654 dasm_put(Dst, 13799, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2650 break; 2655 break;
2651 case BC_TSETB: 2656 case BC_TSETB:
2652 dasm_put(Dst, 13803, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2657 dasm_put(Dst, 13891, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2653 dasm_put(Dst, 13898, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2658 dasm_put(Dst, 13986, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2654 break; 2659 break;
2655 2660
2656 case BC_TSETM: 2661 case BC_TSETM:
2657 dasm_put(Dst, 13946, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2662 dasm_put(Dst, 14034, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2658 dasm_put(Dst, 14096, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2663 dasm_put(Dst, 14184, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2659 break; 2664 break;
2660 2665
2661 /* -- Calls and vararg handling ----------------------------------------- */ 2666 /* -- Calls and vararg handling ----------------------------------------- */
2662 2667
2663 case BC_CALL: case BC_CALLM: 2668 case BC_CALL: case BC_CALLM:
2664 dasm_put(Dst, 11211); 2669 dasm_put(Dst, 11299);
2665 if (op == BC_CALLM) { 2670 if (op == BC_CALLM) {
2666 dasm_put(Dst, 14116); 2671 dasm_put(Dst, 14204);
2667 } 2672 }
2668 dasm_put(Dst, 14121, LJ_TFUNC, Dt7(->pc)); 2673 dasm_put(Dst, 14209, LJ_TFUNC, Dt7(->pc));
2669 break; 2674 break;
2670 2675
2671 case BC_CALLMT: 2676 case BC_CALLMT:
2672 dasm_put(Dst, 14116); 2677 dasm_put(Dst, 14204);
2673 break; 2678 break;
2674 case BC_CALLT: 2679 case BC_CALLT:
2675 dasm_put(Dst, 14164, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2680 dasm_put(Dst, 14252, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2676 dasm_put(Dst, 14282, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2681 dasm_put(Dst, 14370, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2677 break; 2682 break;
2678 2683
2679 case BC_ITERC: 2684 case BC_ITERC:
2680 dasm_put(Dst, 14356, LJ_TFUNC, 2+1, Dt7(->pc)); 2685 dasm_put(Dst, 14444, LJ_TFUNC, 2+1, Dt7(->pc));
2681 break; 2686 break;
2682 2687
2683 case BC_ITERN: 2688 case BC_ITERN:
2684#if LJ_HASJIT 2689#if LJ_HASJIT
2685#endif 2690#endif
2686 dasm_put(Dst, 14428, Dt6(->asize), Dt6(->array), LJ_TNIL); 2691 dasm_put(Dst, 14516, Dt6(->asize), Dt6(->array), LJ_TNIL);
2687 if (LJ_DUALNUM) { 2692 if (LJ_DUALNUM) {
2688 dasm_put(Dst, 11110, LJ_TISNUM); 2693 dasm_put(Dst, 11198, LJ_TISNUM);
2689 } else if (sse) { 2694 } else if (sse) {
2690 dasm_put(Dst, 11188); 2695 dasm_put(Dst, 11276);
2691 } else { 2696 } else {
2692 dasm_put(Dst, 14480); 2697 dasm_put(Dst, 14568);
2693 } 2698 }
2694 dasm_put(Dst, 14486); 2699 dasm_put(Dst, 14574);
2695 if (LJ_DUALNUM) { 2700 if (LJ_DUALNUM) {
2696 } else if (sse) { 2701 } else if (sse) {
2697 dasm_put(Dst, 11075); 2702 dasm_put(Dst, 11163);
2698 } else { 2703 } else {
2699 dasm_put(Dst, 11087); 2704 dasm_put(Dst, 11175);
2700 } 2705 }
2701 dasm_put(Dst, 14499, -BCBIAS_J*4); 2706 dasm_put(Dst, 14587, -BCBIAS_J*4);
2702 if (!LJ_DUALNUM && !sse) { 2707 if (!LJ_DUALNUM && !sse) {
2703 dasm_put(Dst, 14553); 2708 dasm_put(Dst, 14641);
2704 } 2709 }
2705 dasm_put(Dst, 14559, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2710 dasm_put(Dst, 14647, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2706 break; 2711 break;
2707 2712
2708 case BC_ISNEXT: 2713 case BC_ISNEXT:
2709 dasm_put(Dst, 14638, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2714 dasm_put(Dst, 14726, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2710 break; 2715 break;
2711 2716
2712 case BC_VARG: 2717 case BC_VARG:
2713 dasm_put(Dst, 14739, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2718 dasm_put(Dst, 14827, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2714 dasm_put(Dst, 14906, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2719 dasm_put(Dst, 14994, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2715 break; 2720 break;
2716 2721
2717 /* -- Returns ----------------------------------------------------------- */ 2722 /* -- Returns ----------------------------------------------------------- */
2718 2723
2719 case BC_RETM: 2724 case BC_RETM:
2720 dasm_put(Dst, 14116); 2725 dasm_put(Dst, 14204);
2721 break; 2726 break;
2722 2727
2723 case BC_RET: case BC_RET0: case BC_RET1: 2728 case BC_RET: case BC_RET0: case BC_RET1:
2724 if (op != BC_RET0) { 2729 if (op != BC_RET0) {
2725 dasm_put(Dst, 14976); 2730 dasm_put(Dst, 15064);
2726 } 2731 }
2727 dasm_put(Dst, 14980, FRAME_TYPE); 2732 dasm_put(Dst, 15068, FRAME_TYPE);
2728 switch (op) { 2733 switch (op) {
2729 case BC_RET: 2734 case BC_RET:
2730 dasm_put(Dst, 14999); 2735 dasm_put(Dst, 15087);
2731 break; 2736 break;
2732 case BC_RET1: 2737 case BC_RET1:
2733 dasm_put(Dst, 15053); 2738 dasm_put(Dst, 15141);
2734 /* fallthrough */ 2739 /* fallthrough */
2735 case BC_RET0: 2740 case BC_RET0:
2736 dasm_put(Dst, 15063); 2741 dasm_put(Dst, 15151);
2737 default: 2742 default:
2738 break; 2743 break;
2739 } 2744 }
2740 dasm_put(Dst, 15074, Dt7(->pc), PC2PROTO(k)); 2745 dasm_put(Dst, 15162, Dt7(->pc), PC2PROTO(k));
2741 if (op == BC_RET) { 2746 if (op == BC_RET) {
2742 dasm_put(Dst, 15122, LJ_TNIL); 2747 dasm_put(Dst, 15210, LJ_TNIL);
2743 } else { 2748 } else {
2744 dasm_put(Dst, 15133, LJ_TNIL); 2749 dasm_put(Dst, 15221, LJ_TNIL);
2745 } 2750 }
2746 dasm_put(Dst, 15140, -FRAME_VARG, FRAME_TYPEP); 2751 dasm_put(Dst, 15228, -FRAME_VARG, FRAME_TYPEP);
2747 if (op != BC_RET0) { 2752 if (op != BC_RET0) {
2748 dasm_put(Dst, 15164); 2753 dasm_put(Dst, 15252);
2749 } 2754 }
2750 dasm_put(Dst, 4732); 2755 dasm_put(Dst, 4732);
2751 break; 2756 break;
@@ -2755,7 +2760,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2755 2760
2756 case BC_FORL: 2761 case BC_FORL:
2757#if LJ_HASJIT 2762#if LJ_HASJIT
2758 dasm_put(Dst, 15168, HOTCOUNT_PCMASK, GG_DISP2HOT); 2763 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT);
2759#endif 2764#endif
2760 break; 2765 break;
2761 2766
@@ -2767,111 +2772,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2767 case BC_FORI: 2772 case BC_FORI:
2768 case BC_IFORL: 2773 case BC_IFORL:
2769 vk = (op == BC_IFORL || op == BC_JFORL); 2774 vk = (op == BC_IFORL || op == BC_JFORL);
2770 dasm_put(Dst, 15189); 2775 dasm_put(Dst, 15277);
2771 if (LJ_DUALNUM) { 2776 if (LJ_DUALNUM) {
2772 dasm_put(Dst, 15193, LJ_TISNUM); 2777 dasm_put(Dst, 15281, LJ_TISNUM);
2773 if (!vk) { 2778 if (!vk) {
2774 dasm_put(Dst, 15203, LJ_TISNUM, LJ_TISNUM); 2779 dasm_put(Dst, 15291, LJ_TISNUM, LJ_TISNUM);
2775 } else { 2780 } else {
2776#ifdef LUA_USE_ASSERT 2781#ifdef LUA_USE_ASSERT
2777 dasm_put(Dst, 15232, LJ_TISNUM, LJ_TISNUM); 2782 dasm_put(Dst, 15320, LJ_TISNUM, LJ_TISNUM);
2778#endif 2783#endif
2779 dasm_put(Dst, 15251); 2784 dasm_put(Dst, 15339);
2780 } 2785 }
2781 dasm_put(Dst, 15270, LJ_TISNUM); 2786 dasm_put(Dst, 15358, LJ_TISNUM);
2782 if (op == BC_FORI) { 2787 if (op == BC_FORI) {
2783 dasm_put(Dst, 15281, -BCBIAS_J*4); 2788 dasm_put(Dst, 15369, -BCBIAS_J*4);
2784 } else if (op == BC_JFORI) { 2789 } else if (op == BC_JFORI) {
2785 dasm_put(Dst, 15295, -BCBIAS_J*4, BC_JLOOP); 2790 dasm_put(Dst, 15383, -BCBIAS_J*4, BC_JLOOP);
2786 } else if (op == BC_IFORL) { 2791 } else if (op == BC_IFORL) {
2787 dasm_put(Dst, 15313, -BCBIAS_J*4); 2792 dasm_put(Dst, 15401, -BCBIAS_J*4);
2788 } else { 2793 } else {
2789 dasm_put(Dst, 15305, BC_JLOOP); 2794 dasm_put(Dst, 15393, BC_JLOOP);
2790 } 2795 }
2791 dasm_put(Dst, 15327); 2796 dasm_put(Dst, 15415);
2792 if (vk) { 2797 if (vk) {
2793 dasm_put(Dst, 15352); 2798 dasm_put(Dst, 15440);
2794 } 2799 }
2795 dasm_put(Dst, 15270, LJ_TISNUM); 2800 dasm_put(Dst, 15358, LJ_TISNUM);
2796 if (op == BC_FORI) { 2801 if (op == BC_FORI) {
2797 dasm_put(Dst, 15361); 2802 dasm_put(Dst, 15449);
2798 } else if (op == BC_JFORI) { 2803 } else if (op == BC_JFORI) {
2799 dasm_put(Dst, 15366, -BCBIAS_J*4, BC_JLOOP); 2804 dasm_put(Dst, 15454, -BCBIAS_J*4, BC_JLOOP);
2800 } else if (op == BC_IFORL) { 2805 } else if (op == BC_IFORL) {
2801 dasm_put(Dst, 15380); 2806 dasm_put(Dst, 15468);
2802 } else { 2807 } else {
2803 dasm_put(Dst, 15376, BC_JLOOP); 2808 dasm_put(Dst, 15464, BC_JLOOP);
2804 } 2809 }
2805 dasm_put(Dst, 15385); 2810 dasm_put(Dst, 15473);
2806 } else if (!vk) { 2811 } else if (!vk) {
2807 dasm_put(Dst, 15392, LJ_TISNUM); 2812 dasm_put(Dst, 15480, LJ_TISNUM);
2808 } 2813 }
2809 if (!vk) { 2814 if (!vk) {
2810 dasm_put(Dst, 15398, LJ_TISNUM); 2815 dasm_put(Dst, 15486, LJ_TISNUM);
2811 } else { 2816 } else {
2812#ifdef LUA_USE_ASSERT 2817#ifdef LUA_USE_ASSERT
2813 dasm_put(Dst, 15412, LJ_TISNUM, LJ_TISNUM); 2818 dasm_put(Dst, 15500, LJ_TISNUM, LJ_TISNUM);
2814#endif 2819#endif
2815 } 2820 }
2816 dasm_put(Dst, 15431); 2821 dasm_put(Dst, 15519);
2817 if (!vk) { 2822 if (!vk) {
2818 dasm_put(Dst, 15435, LJ_TISNUM); 2823 dasm_put(Dst, 15523, LJ_TISNUM);
2819 } 2824 }
2820 if (sse) { 2825 if (sse) {
2821 dasm_put(Dst, 15444); 2826 dasm_put(Dst, 15532);
2822 if (vk) { 2827 if (vk) {
2823 dasm_put(Dst, 15456); 2828 dasm_put(Dst, 15544);
2824 } else { 2829 } else {
2825 dasm_put(Dst, 15475); 2830 dasm_put(Dst, 15563);
2826 } 2831 }
2827 dasm_put(Dst, 15480); 2832 dasm_put(Dst, 15568);
2828 } else { 2833 } else {
2829 dasm_put(Dst, 15493); 2834 dasm_put(Dst, 15581);
2830 if (vk) { 2835 if (vk) {
2831 dasm_put(Dst, 15499); 2836 dasm_put(Dst, 15587);
2832 } else { 2837 } else {
2833 dasm_put(Dst, 15515); 2838 dasm_put(Dst, 15603);
2834 } 2839 }
2835 dasm_put(Dst, 15523); 2840 dasm_put(Dst, 15611);
2836 if (cmov) { 2841 if (cmov) {
2837 dasm_put(Dst, 10153); 2842 dasm_put(Dst, 10241);
2838 } else { 2843 } else {
2839 dasm_put(Dst, 10159); 2844 dasm_put(Dst, 10247);
2840 } 2845 }
2841 if (!cmov) { 2846 if (!cmov) {
2842 dasm_put(Dst, 15528); 2847 dasm_put(Dst, 15616);
2843 } 2848 }
2844 } 2849 }
2845 if (op == BC_FORI) { 2850 if (op == BC_FORI) {
2846 if (LJ_DUALNUM) { 2851 if (LJ_DUALNUM) {
2847 dasm_put(Dst, 15534); 2852 dasm_put(Dst, 15622);
2848 } else { 2853 } else {
2849 dasm_put(Dst, 15539, -BCBIAS_J*4); 2854 dasm_put(Dst, 15627, -BCBIAS_J*4);
2850 } 2855 }
2851 } else if (op == BC_JFORI) { 2856 } else if (op == BC_JFORI) {
2852 dasm_put(Dst, 15549, -BCBIAS_J*4, BC_JLOOP); 2857 dasm_put(Dst, 15637, -BCBIAS_J*4, BC_JLOOP);
2853 } else if (op == BC_IFORL) { 2858 } else if (op == BC_IFORL) {
2854 if (LJ_DUALNUM) { 2859 if (LJ_DUALNUM) {
2855 dasm_put(Dst, 15563); 2860 dasm_put(Dst, 15651);
2856 } else { 2861 } else {
2857 dasm_put(Dst, 15568, -BCBIAS_J*4); 2862 dasm_put(Dst, 15656, -BCBIAS_J*4);
2858 } 2863 }
2859 } else { 2864 } else {
2860 dasm_put(Dst, 15559, BC_JLOOP); 2865 dasm_put(Dst, 15647, BC_JLOOP);
2861 } 2866 }
2862 if (LJ_DUALNUM) { 2867 if (LJ_DUALNUM) {
2863 dasm_put(Dst, 10082); 2868 dasm_put(Dst, 10170);
2864 } else { 2869 } else {
2865 dasm_put(Dst, 10856); 2870 dasm_put(Dst, 10944);
2866 } 2871 }
2867 if (sse) { 2872 if (sse) {
2868 dasm_put(Dst, 15578); 2873 dasm_put(Dst, 15666);
2869 } 2874 }
2870 break; 2875 break;
2871 2876
2872 case BC_ITERL: 2877 case BC_ITERL:
2873#if LJ_HASJIT 2878#if LJ_HASJIT
2874 dasm_put(Dst, 15168, HOTCOUNT_PCMASK, GG_DISP2HOT); 2879 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT);
2875#endif 2880#endif
2876 break; 2881 break;
2877 2882
@@ -2880,33 +2885,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2880 break; 2885 break;
2881#endif 2886#endif
2882 case BC_IITERL: 2887 case BC_IITERL:
2883 dasm_put(Dst, 15589, LJ_TNIL); 2888 dasm_put(Dst, 15677, LJ_TNIL);
2884 if (op == BC_JITERL) { 2889 if (op == BC_JITERL) {
2885 dasm_put(Dst, 15604, BC_JLOOP); 2890 dasm_put(Dst, 15692, BC_JLOOP);
2886 } else { 2891 } else {
2887 dasm_put(Dst, 15618, -BCBIAS_J*4); 2892 dasm_put(Dst, 15706, -BCBIAS_J*4);
2888 } 2893 }
2889 dasm_put(Dst, 10196); 2894 dasm_put(Dst, 10284);
2890 break; 2895 break;
2891 2896
2892 case BC_LOOP: 2897 case BC_LOOP:
2893#if LJ_HASJIT 2898#if LJ_HASJIT
2894 dasm_put(Dst, 15168, HOTCOUNT_PCMASK, GG_DISP2HOT); 2899 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT);
2895#endif 2900#endif
2896 break; 2901 break;
2897 2902
2898 case BC_ILOOP: 2903 case BC_ILOOP:
2899 dasm_put(Dst, 10198); 2904 dasm_put(Dst, 10286);
2900 break; 2905 break;
2901 2906
2902 case BC_JLOOP: 2907 case BC_JLOOP:
2903#if LJ_HASJIT 2908#if LJ_HASJIT
2904 dasm_put(Dst, 15634, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2909 dasm_put(Dst, 15722, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2905#endif 2910#endif
2906 break; 2911 break;
2907 2912
2908 case BC_JMP: 2913 case BC_JMP:
2909 dasm_put(Dst, 15675, -BCBIAS_J*4); 2914 dasm_put(Dst, 15763, -BCBIAS_J*4);
2910 break; 2915 break;
2911 2916
2912 /* -- Function headers -------------------------------------------------- */ 2917 /* -- Function headers -------------------------------------------------- */
@@ -2920,7 +2925,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2920 2925
2921 case BC_FUNCF: 2926 case BC_FUNCF:
2922#if LJ_HASJIT 2927#if LJ_HASJIT
2923 dasm_put(Dst, 15701, HOTCOUNT_PCMASK, GG_DISP2HOT); 2928 dasm_put(Dst, 15789, HOTCOUNT_PCMASK, GG_DISP2HOT);
2924#endif 2929#endif
2925 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2930 case BC_FUNCV: /* NYI: compiled vararg functions. */
2926 break; 2931 break;
@@ -2930,47 +2935,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2930 break; 2935 break;
2931#endif 2936#endif
2932 case BC_IFUNCF: 2937 case BC_IFUNCF:
2933 dasm_put(Dst, 15722, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2938 dasm_put(Dst, 15810, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2934 if (op == BC_JFUNCF) { 2939 if (op == BC_JFUNCF) {
2935 dasm_put(Dst, 15753, BC_JLOOP); 2940 dasm_put(Dst, 15841, BC_JLOOP);
2936 } else { 2941 } else {
2937 dasm_put(Dst, 10198); 2942 dasm_put(Dst, 10286);
2938 } 2943 }
2939 dasm_put(Dst, 15762, LJ_TNIL); 2944 dasm_put(Dst, 15850, LJ_TNIL);
2940 break; 2945 break;
2941 2946
2942 case BC_JFUNCV: 2947 case BC_JFUNCV:
2943#if !LJ_HASJIT 2948#if !LJ_HASJIT
2944 break; 2949 break;
2945#endif 2950#endif
2946 dasm_put(Dst, 9305); 2951 dasm_put(Dst, 9393);
2947 break; /* NYI: compiled vararg functions. */ 2952 break; /* NYI: compiled vararg functions. */
2948 2953
2949 case BC_IFUNCV: 2954 case BC_IFUNCV:
2950 dasm_put(Dst, 15784, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2955 dasm_put(Dst, 15872, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2951 if (op == BC_JFUNCV) { 2956 if (op == BC_JFUNCV) {
2952 dasm_put(Dst, 15753, BC_JLOOP); 2957 dasm_put(Dst, 15841, BC_JLOOP);
2953 } else { 2958 } else {
2954 dasm_put(Dst, 15881, -4+PC2PROTO(k)); 2959 dasm_put(Dst, 15969, -4+PC2PROTO(k));
2955 } 2960 }
2956 dasm_put(Dst, 15906, LJ_TNIL); 2961 dasm_put(Dst, 15994, LJ_TNIL);
2957 break; 2962 break;
2958 2963
2959 case BC_FUNCC: 2964 case BC_FUNCC:
2960 case BC_FUNCCW: 2965 case BC_FUNCCW:
2961 dasm_put(Dst, 15928, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2966 dasm_put(Dst, 16016, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2962 if (op == BC_FUNCC) { 2967 if (op == BC_FUNCC) {
2963 dasm_put(Dst, 2404); 2968 dasm_put(Dst, 2404);
2964 } else { 2969 } else {
2965 dasm_put(Dst, 15958); 2970 dasm_put(Dst, 16046);
2966 } 2971 }
2967 dasm_put(Dst, 15966, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2972 dasm_put(Dst, 16054, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2968 if (op == BC_FUNCC) { 2973 if (op == BC_FUNCC) {
2969 dasm_put(Dst, 15976); 2974 dasm_put(Dst, 16064);
2970 } else { 2975 } else {
2971 dasm_put(Dst, 15981, DISPATCH_GL(wrapf)); 2976 dasm_put(Dst, 16069, DISPATCH_GL(wrapf));
2972 } 2977 }
2973 dasm_put(Dst, 15987, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2978 dasm_put(Dst, 16075, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2974 break; 2979 break;
2975 2980
2976 /* ---------------------------------------------------------------------- */ 2981 /* ---------------------------------------------------------------------- */
@@ -2998,7 +3003,7 @@ static int build_backend(BuildCtx *ctx)
2998 3003
2999 build_subroutines(ctx, cmov, sse); 3004 build_subroutines(ctx, cmov, sse);
3000 3005
3001 dasm_put(Dst, 16013); 3006 dasm_put(Dst, 16101);
3002 for (op = 0; op < BC__MAX; op++) 3007 for (op = 0; op < BC__MAX; op++)
3003 build_ins(ctx, (BCOp)op, op, cmov, sse); 3008 build_ins(ctx, (BCOp)op, op, cmov, sse);
3004 3009
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index f6fa13dc..59499a78 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[15870] = { 15static const unsigned char build_actionlist[15958] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237, 18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
@@ -317,472 +317,476 @@ static const unsigned char build_actionlist[15870] = {
317 136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244, 317 136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,
318 121,248,130,129,252,248,239,15,130,244,61,129,122,253,4,239,15,133,244,61, 318 121,248,130,129,252,248,239,15,130,244,61,129,122,253,4,239,15,133,244,61,
319 137,213,139,10,232,251,1,20,137,252,234,255,137,197,252,233,244,69,255,252, 319 137,213,139,10,232,251,1,20,137,252,234,255,137,197,252,233,244,69,255,252,
320 242,15,42,192,252,233,244,70,255,248,131,129,122,253,4,239,255,15,133,244, 320 242,15,42,192,252,233,244,70,255,248,131,129,252,248,239,15,130,244,61,129,
321 247,139,42,252,233,244,87,248,1,15,135,244,61,255,252,242,15,16,2,72,189, 321 122,253,4,239,255,15,133,244,247,139,42,252,233,244,87,248,1,15,135,244,61,
322 237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,233,244, 322 255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
323 87,255,248,132,255,72,189,237,237,102,72,15,110,205,255,199,68,36,80,0,0, 323 15,126,197,255,252,233,244,87,255,248,132,129,252,248,239,15,130,244,61,255,
324 192,89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135,244,61,255, 324 72,189,237,237,102,72,15,110,205,255,199,68,36,80,0,0,192,89,255,15,133,244,
325 252,242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137,68,36,84,141, 325 247,139,42,252,233,244,248,248,1,15,135,244,61,255,252,242,15,16,2,252,242,
326 68,194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15,133,244, 326 15,88,193,102,15,126,197,255,248,2,137,68,36,84,141,68,194,252,240,248,1,
327 248,35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131,244,133, 327 57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248,35,40,131,232,8,
328 255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8, 328 252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255,252,242,15,16,0,
329 252,233,244,1,248,134,255,15,133,244,248,11,40,131,232,8,252,233,244,1,248, 329 252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,233,244,1,248,134,
330 2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205, 330 129,252,248,239,15,130,244,61,255,15,133,244,248,11,40,131,232,8,252,233,
331 255,131,232,8,252,233,244,1,248,135,255,15,133,244,248,51,40,131,232,8,252, 331 244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,
332 233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102, 332 193,9,205,255,131,232,8,252,233,244,1,248,135,129,252,248,239,15,130,244,
333 15,126,193,49,205,255,131,232,8,252,233,244,1,248,136,129,122,253,4,239,255, 333 61,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248,2,15,135,244,133,
334 248,2,15,205,252,233,244,87,248,137,129,122,253,4,239,255,248,2,252,247,213, 334 255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,131,232,8,
335 255,248,87,252,242,15,42,197,252,233,244,70,255,248,133,139,68,36,84,252, 335 252,233,244,1,248,136,129,252,248,239,15,130,244,61,129,122,253,4,239,255,
336 233,244,61,255,248,138,129,122,253,4,239,255,248,2,129,122,253,12,239,15, 336 248,2,15,205,252,233,244,87,248,137,129,252,248,239,15,130,244,61,129,122,
337 133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129,122,253, 337 253,4,239,255,248,2,252,247,213,255,248,87,252,242,15,42,197,252,233,244,
338 4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252, 338 70,255,248,133,139,68,36,84,252,233,244,61,255,248,138,129,252,248,239,15,
339 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242, 339 130,244,61,129,122,253,4,239,255,248,2,129,122,253,12,239,15,133,244,61,139,
340 15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,87,255,248, 340 74,8,255,248,138,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,
341 139,129,122,253,4,239,255,248,139,129,252,248,239,15,130,244,61,129,122,253, 341 61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,
342 4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252, 342 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,15,
343 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242, 343 126,197,102,15,126,201,255,211,229,252,233,244,87,255,248,139,129,252,248,
344 15,88,202,102,15,126,197,102,15,126,201,255,211,252,237,252,233,244,87,255, 344 239,15,130,244,61,129,122,253,4,239,255,248,139,129,252,248,239,15,130,244,
345 248,140,129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,129,122, 345 61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,
346 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2, 346 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
347 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 347 194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,237,252,233,
348 242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,87, 348 244,87,255,248,140,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,
349 255,248,141,129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,61,129, 349 140,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,
350 253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
351 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,
352 15,126,201,255,211,252,253,252,233,244,87,255,248,141,129,252,248,239,15,
353 130,244,61,129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,61,129,
350 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 354 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,
351 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 355 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
352 242,15,88,202,102,15,126,197,102,15,126,201,255,211,197,252,233,244,87,255, 356 242,15,88,202,102,15,126,197,102,15,126,201,255,211,197,252,233,244,87,255,
353 248,142,129,122,253,4,239,255,248,142,129,252,248,239,15,130,244,61,129,122, 357 248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,142,129,252,
354 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2, 358 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,
355 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 359 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
356 242,15,88,202,102,15,126,197,102,15,126,201,255,211,205,252,233,244,87,248, 360 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,
357 125,184,237,252,233,244,61,248,127,184,237,248,61,139,108,36,96,139,114,252, 361 255,211,205,252,233,244,87,248,125,184,237,252,233,244,61,248,127,184,237,
358 252,137,116,36,100,137,149,233,141,68,194,252,248,141,136,233,137,133,233, 362 248,61,139,108,36,96,139,114,252,252,137,116,36,100,137,149,233,141,68,194,
359 139,66,252,248,59,141,233,15,135,244,251,137,252,233,252,255,144,233,139, 363 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,
360 149,233,133,192,15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3, 364 137,252,233,252,255,144,233,139,149,233,133,192,15,143,244,76,248,1,255,139,
361 133,192,141,65,1,139,106,252,248,15,133,244,32,139,181,233,139,14,15,182, 365 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,
362 252,233,15,182,205,131,198,4,252,255,36,252,235,248,32,137,209,252,247,198, 366 32,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,
363 237,15,133,244,249,15,182,110,252,253,72,252,247,213,141,20,252,234,252,233, 367 235,248,32,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,72,252,
364 244,28,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244,28,248,5, 368 247,213,141,20,252,234,252,233,244,28,248,3,137,252,245,131,229,252,248,41,
365 186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93, 369 252,234,252,233,244,28,248,5,186,237,137,252,233,232,251,1,0,139,149,233,
366 72,137,108,36,32,139,108,36,96,137,116,36,100,137,149,233,255,141,68,194, 370 49,192,252,233,244,1,248,73,93,72,137,108,36,32,139,108,36,96,137,116,36,
367 252,248,137,252,233,137,133,233,232,251,1,21,139,149,233,139,133,233,41,208, 371 100,137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,
368 193,232,3,131,192,1,72,139,108,36,32,85,195,248,143,255,15,182,131,233,168, 372 21,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,32,85,
369 235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,252,255, 373 195,248,143,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,
370 139,233,252,233,244,247,255,248,144,15,182,131,233,168,235,15,133,244,251, 374 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,144,15,
371 252,233,244,247,248,145,15,182,131,233,168,235,15,133,244,251,168,235,15, 375 182,131,233,168,235,15,133,244,251,252,233,244,247,248,145,15,182,131,233,
372 132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,248,1,255, 376 168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,
373 139,108,36,96,137,149,233,137,252,242,137,252,233,232,251,1,22,248,3,139, 377 247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,
374 149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183,70,252,254, 378 137,252,233,232,251,1,22,248,3,139,149,233,248,4,15,182,78,252,253,248,5,
375 252,255,164,253,252,235,233,248,146,131,198,4,139,77,232,137,76,36,84,252, 379 15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,146,
376 233,244,4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194, 380 131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,147,255,139,106,252,248,
377 139,108,36,96,137,149,233,137,133,233,137,252,242,141,139,233,72,137,171, 381 139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,137,133,233,
378 233,137,116,36,100,232,251,1,23,252,233,244,3,255,248,148,137,116,36,100, 382 137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,1,23,252,233,
379 255,248,149,255,137,116,36,100,131,206,1,248,1,255,141,68,194,252,248,139, 383 244,3,255,248,148,137,116,36,100,255,248,149,255,137,116,36,100,131,206,1,
380 108,36,96,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,24,199, 384 248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252,
381 68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,233,72,137,193,139,133, 385 242,137,252,233,232,251,1,24,199,68,36,100,0,0,0,0,255,131,230,252,254,255,
382 233,41,208,72,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248, 386 139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,
383 150,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85, 387 232,3,131,192,1,252,255,229,248,150,255,65,85,65,84,65,83,65,82,65,81,65,
384 83,82,81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117, 388 80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,
385 252,240,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,72,129, 389 240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,233,199,131,233,
386 252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68,15,17, 390 237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,128,252,242,68,
387 117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242,68, 391 15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,
388 15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68,15, 392 242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,
389 17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109,168, 393 242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,
390 252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242,15, 394 15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,
391 17,77,136,252,242,15,17,69,128,139,171,233,139,147,233,72,137,171,233,199, 395 152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,
392 131,233,0,0,0,0,137,149,233,72,141,148,253,36,233,141,139,233,232,251,1,25, 396 233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,149,233,72,141,148,
393 72,139,141,233,72,129,225,239,137,169,233,139,149,233,139,177,233,252,233, 397 253,36,233,141,139,233,232,251,1,25,72,139,141,233,72,129,225,239,137,169,
394 244,247,255,248,151,255,72,141,140,253,36,233,248,1,102,68,15,111,185,233, 398 233,139,149,233,139,177,233,252,233,244,247,255,248,151,255,72,141,140,253,
395 102,68,15,111,177,233,102,68,15,111,169,233,102,68,15,111,161,233,102,68, 399 36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169,
396 15,111,153,233,102,68,15,111,145,233,102,68,15,111,137,233,102,68,15,111, 400 233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,15,111,145,233,102,
397 129,233,102,15,111,185,233,72,137,204,102,15,111,49,76,139,124,36,16,76,139, 401 68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,233,72,137,204,102,
398 116,36,24,76,139,108,36,32,76,139,100,36,80,133,192,15,136,244,249,137,68, 402 15,111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,
399 36,84,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131, 403 80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,139,191,233,139,191,
400 233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129,252,253,239, 404 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,
401 15,130,244,248,255,139,68,36,84,248,2,252,255,36,252,235,248,3,252,247,216, 405 4,193,232,16,129,252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,
402 137,252,233,137,194,232,251,1,26,255,248,89,255,217,124,36,4,137,68,36,8, 406 36,252,235,248,3,252,247,216,137,252,233,137,194,232,251,1,26,255,248,89,
403 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, 407 255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,
404 36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,152,72,184,237,237, 408 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,
405 102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202, 409 255,248,152,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,
406 102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92, 410 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,
407 203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102, 411 242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,
408 15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,91,255,217,124,36,4,137, 412 208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,
409 68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6, 413 195,248,91,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,
410 217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,153,72,184, 414 252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
411 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102, 415 68,36,8,195,255,248,153,72,184,237,237,102,72,15,110,208,72,184,237,237,102,
412 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252, 416 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
413 242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194, 417 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,
414 193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,112,255,217, 418 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,
415 124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108, 419 193,248,1,195,248,112,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,
416 36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,154,72,184,237,237, 420 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,
417 102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202, 421 255,248,154,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,
418 102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252, 422 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,
419 242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15, 423 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,
420 84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,155,255,15, 424 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,
421 40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237, 425 193,248,1,195,248,155,255,15,40,232,252,242,15,94,193,72,184,237,237,102,
422 102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102, 426 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,
423 15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237, 427 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,
424 102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15, 428 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,
425 40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15, 429 84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,
426 40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,184, 430 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,
427 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 431 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,
428 252,252,217,108,36,4,222,201,222,252,233,195,255,248,96,217,252,234,222,201, 432 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,
429 248,156,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,124,36,8, 433 248,96,217,252,234,222,201,248,156,217,84,36,8,129,124,36,8,0,0,128,127,15,
430 0,0,128,252,255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217, 434 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,157,217,192,217,
431 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 435 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,
432 217,252,238,195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208, 436 248,1,195,248,2,221,216,217,252,238,195,255,248,115,255,248,158,252,242,15,
433 102,15,46,202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142, 437 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,
434 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, 438 159,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,
435 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, 439 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,
436 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, 440 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,
437 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216, 441 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,
438 232,244,1,72,184,237,237,102,72,15,110,200,252,242,15,94,200,15,40,193,195, 442 130,244,253,252,247,216,232,244,1,72,184,237,237,102,72,15,110,200,252,242,
439 248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209, 443 15,94,200,15,40,193,195,248,7,72,184,237,237,102,72,15,110,192,195,248,8,
440 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,102,72,15,126,192,72, 444 102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,
441 209,224,15,132,244,250,255,72,193,192,12,72,61,252,254,15,0,0,15,132,244, 445 248,102,72,15,126,192,72,209,224,15,132,244,250,255,72,193,192,12,72,61,252,
442 251,252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8, 446 254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,
443 217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222, 447 68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,252,233,217,201,
444 193,217,252,253,221,217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184, 448 217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,8,252,242,15,16,
445 237,237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195, 449 68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,
446 248,2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72, 450 247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,
447 15,110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15, 451 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
448 146,208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195, 452 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
449 248,4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193, 453 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
450 133,192,15,132,244,3,15,87,192,195,248,160,255,131,252,250,1,15,130,244,89, 454 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,160,255,
451 15,132,244,91,131,252,250,3,15,130,244,112,15,135,244,248,252,242,15,81,192, 455 131,252,250,1,15,130,244,89,15,132,244,91,131,252,250,3,15,130,244,112,15,
452 195,248,2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248, 456 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,68,36,8,
453 88,15,132,244,247,232,244,96,80,252,233,244,253,248,1,232,244,156,255,80, 457 131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,96,80,252,233,244,
454 252,233,244,253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252, 458 253,248,1,232,244,156,255,80,252,233,244,253,248,2,131,252,250,7,15,132,244,
455 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241, 459 247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,
456 252,233,244,253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252, 460 217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,15,132,244,
457 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244, 461 247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,
458 253,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233, 462 255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,247,15,135,
459 244,253,248,1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8, 463 244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,
460 195,255,139,84,36,12,221,68,36,4,131,252,250,1,15,130,244,89,15,132,244,91, 464 36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,131,252,250,1,
461 131,252,250,3,15,130,244,112,15,135,244,248,217,252,250,195,248,2,131,252, 465 15,130,244,89,15,132,244,91,131,252,250,3,15,130,244,112,15,135,244,248,217,
462 250,5,15,130,244,96,15,132,244,156,131,252,250,7,15,132,244,247,15,135,244, 466 252,250,195,248,2,131,252,250,5,15,130,244,96,15,132,244,156,131,252,250,
463 248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241, 467 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,
464 195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217, 468 217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,244,247,255,15,
465 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244, 469 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
466 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248, 470 2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
467 9,204,255,248,161,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252, 471 252,242,221,216,195,255,248,9,204,255,248,161,255,65,131,252,248,1,15,132,
468 242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132, 472 244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,
469 244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195, 473 248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,
470 248,2,65,131,252,248,5,15,130,244,155,15,132,244,115,65,131,252,248,7,15, 474 248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,155,15,132,
471 132,244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193, 475 244,115,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,237,255,
472 195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252, 476 102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,
473 248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68, 477 84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,36,8,252,
474 36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15, 478 242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,243,248,
475 16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131, 479 7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253,221,217,
476 252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252, 480 252,233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255,252,242,
477 242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131, 481 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
478 252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195, 482 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
479 248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252, 483 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
480 249,195,248,2,131,252,248,5,15,130,244,155,15,132,244,115,131,252,248,7,15, 484 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,155,15,132,
481 132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225, 485 244,115,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
482 195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248, 486 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
483 1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15, 487 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
484 135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209, 488 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
485 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248, 489 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
486 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201, 490 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
487 248,2,221,216,195,255,248,162,137,200,86,72,137,214,83,15,162,137,6,137,94, 491 244,248,217,201,248,2,221,216,195,255,248,162,137,200,86,72,137,214,83,15,
488 4,137,78,8,137,86,12,91,94,195,248,163,255,85,72,137,229,83,72,137,203,139, 492 162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,248,163,255,85,72,137,229,
489 131,233,72,41,196,255,15,182,139,233,131,252,233,1,15,136,244,248,248,1,72, 493 83,72,137,203,139,131,233,72,41,196,255,15,182,139,233,131,252,233,1,15,136,
490 139,132,253,203,233,72,137,132,253,204,233,131,252,233,1,15,137,244,1,248, 494 244,248,248,1,72,139,132,253,203,233,72,137,132,253,204,233,131,252,233,1,
491 2,15,182,131,233,72,139,139,233,72,139,147,233,76,139,131,233,76,139,139, 495 15,137,244,1,248,2,15,182,131,233,72,139,139,233,72,139,147,233,76,139,131,
492 233,133,192,15,132,244,251,15,40,131,233,15,40,139,233,15,40,147,233,15,40, 496 233,76,139,139,233,133,192,15,132,244,251,15,40,131,233,15,40,139,233,15,
493 155,233,248,5,255,252,255,147,233,72,137,131,233,15,41,131,233,255,72,139, 497 40,147,233,15,40,155,233,248,5,255,252,255,147,233,72,137,131,233,15,41,131,
494 93,252,248,201,195,255,248,164,255,249,255,129,124,253,202,4,239,15,133,244, 498 233,255,72,139,93,252,248,201,195,255,248,164,255,249,255,129,124,253,202,
495 253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,198,4,59,44,194,255, 499 4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,
496 15,141,244,255,255,15,140,244,255,255,15,143,244,255,255,15,142,244,255,255, 500 198,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244,255,
497 248,6,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182, 501 255,15,142,244,255,255,248,6,15,183,70,252,254,141,180,253,134,233,248,9,
498 232,131,198,4,193,232,16,252,255,36,252,235,248,7,15,135,244,43,129,124,253, 502 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,7,
499 194,4,239,15,130,244,247,15,133,244,43,255,252,242,15,42,4,194,252,233,244, 503 15,135,244,43,129,124,253,194,4,239,15,130,244,247,15,133,244,43,255,252,
500 248,255,221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,244,43,255,252, 504 242,15,42,4,194,252,233,244,248,255,221,4,202,219,4,194,252,233,244,249,255,
501 242,15,42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,255,15,134,244, 505 248,8,15,135,244,43,255,252,242,15,42,12,202,252,242,15,16,4,194,131,198,
502 9,255,15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,233,244,6,255, 506 4,102,15,46,193,255,15,134,244,9,255,15,135,244,9,255,15,130,244,9,255,15,
503 219,4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,244,43,129,124, 507 131,244,9,255,252,233,244,6,255,219,4,202,252,233,244,248,255,129,124,253,
504 253,194,4,239,15,131,244,43,255,248,1,252,242,15,16,4,194,248,2,131,198,4, 508 202,4,239,15,131,244,43,129,124,253,194,4,239,15,131,244,43,255,248,1,252,
505 102,15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4, 509 242,15,16,4,194,248,2,131,198,4,102,15,46,4,202,248,3,255,248,1,221,4,202,
506 255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,247,255, 510 248,2,221,4,194,248,3,131,198,4,255,223,252,233,221,216,255,218,252,233,223,
507 15,135,244,247,255,15,130,244,247,255,15,131,244,247,255,15,183,70,252,254, 511 224,158,255,15,134,244,247,255,15,135,244,247,255,15,130,244,247,255,15,131,
508 141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 512 244,247,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,
509 252,255,36,252,235,255,139,108,194,4,131,198,4,255,129,252,253,239,15,133, 513 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,
510 244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44,202,255,15, 514 198,4,255,129,252,253,239,15,133,244,253,129,124,253,202,4,239,15,133,244,
511 133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253,134,233, 515 254,139,44,194,59,44,202,255,15,133,244,255,255,15,132,244,255,255,15,183,
512 248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 516 70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,198,
513 248,7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244,251, 517 4,193,232,16,252,255,36,252,235,248,7,15,135,244,251,129,124,253,202,4,239,
514 255,252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135,244, 518 15,130,244,247,15,133,244,251,255,252,242,15,42,4,202,255,219,4,202,255,252,
515 251,255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255,252, 519 233,244,248,248,8,15,135,244,251,255,252,242,15,42,4,194,102,15,46,4,202,
516 233,244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239,15,131, 520 255,219,4,194,221,4,202,255,252,233,244,250,255,129,252,253,239,15,131,244,
517 244,251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4,255,248, 521 251,129,124,253,202,4,239,15,131,244,251,255,248,1,252,242,15,16,4,202,248,
518 1,221,4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248,255,15, 522 2,102,15,46,4,194,248,4,255,248,1,221,4,202,248,2,221,4,194,248,4,255,15,
519 138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233, 523 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,
520 248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252,233,244, 524 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,
521 9,255,129,252,253,239,15,132,244,48,129,124,253,202,4,239,15,132,244,48,255, 525 180,253,134,233,248,1,255,252,233,244,9,255,129,252,253,239,15,132,244,48,
522 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194, 526 129,124,253,202,4,239,15,132,244,48,255,57,108,202,4,15,133,244,2,129,252,
523 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237, 527 253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,
524 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0, 528 239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,
525 0,0,255,252,233,244,47,255,248,3,129,252,253,239,255,15,133,244,9,255,252, 529 15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,248,3,
526 233,244,48,255,72,252,247,208,139,108,202,4,131,198,4,129,252,253,239,15, 530 129,252,253,239,255,15,133,244,9,255,252,233,244,48,255,72,252,247,208,139,
527 133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198,4,255,129,252, 531 108,202,4,131,198,4,129,252,253,239,15,133,244,249,139,12,202,59,12,135,255,
528 253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254,139,44,199,59, 532 139,108,202,4,131,198,4,255,129,252,253,239,15,133,244,253,129,124,253,199,
529 44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15, 533 4,239,15,133,244,254,139,44,199,59,44,202,255,15,183,70,252,254,141,180,253,
530 182,232,131,198,4,193,232,16,252,255,36,252,235,248,7,15,135,244,249,129, 534 134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
531 124,253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255,219,4,199,255, 535 252,235,248,7,15,135,244,249,129,124,253,199,4,239,15,130,244,247,255,252,
532 252,233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199,255,219,4,202, 536 242,15,42,4,199,255,219,4,199,255,252,233,244,248,248,8,255,252,242,15,42,
533 221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252,242,15,16,4,199, 537 4,202,102,15,46,4,199,255,219,4,202,221,4,199,255,129,252,253,239,15,131,
534 248,2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221,4,202,248,4,255, 538 244,249,255,248,1,252,242,15,16,4,199,248,2,102,15,46,4,202,248,4,255,248,
535 72,252,247,208,139,108,202,4,131,198,4,57,197,255,15,133,244,249,15,183,70, 539 1,221,4,199,248,2,221,4,202,248,4,255,72,252,247,208,139,108,202,4,131,198,
536 252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193, 540 4,57,197,255,15,133,244,249,15,183,70,252,254,141,180,253,134,233,248,2,139,
537 232,16,252,255,36,252,235,248,3,129,252,253,239,15,133,244,2,252,233,244, 541 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,129,
538 48,255,15,132,244,248,129,252,253,239,15,132,244,48,15,183,70,252,254,141, 542 252,253,239,15,133,244,2,252,233,244,48,255,15,132,244,248,129,252,253,239,
539 180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 543 15,132,244,48,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,
540 255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,255,137,108,202, 544 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,
541 4,139,44,194,137,44,202,255,72,139,44,194,72,137,44,202,139,6,15,182,204, 545 198,4,129,252,253,239,255,137,108,202,4,139,44,194,137,44,202,255,72,139,
542 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237,129,124, 546 44,194,72,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
543 253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198, 547 255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,
544 4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,133,244,251, 548 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
545 139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,137,44,202,248,9,139, 549 129,124,253,194,4,239,15,133,244,251,139,44,194,252,247,221,15,128,244,250,
546 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,199, 550 199,68,202,4,237,137,44,202,248,9,139,6,15,182,204,15,182,232,131,198,4,193,
547 68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15,135,244,53,255, 551 232,16,252,255,36,252,235,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,
548 129,124,253,194,4,239,15,131,244,53,255,252,242,15,16,4,194,72,184,237,237, 552 252,233,244,9,248,5,15,135,244,53,255,129,124,253,194,4,239,15,131,244,53,
549 102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221, 553 255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,
550 28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,139,128,233, 554 15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,
551 248,1,199,68,202,4,237,137,4,202,255,15,87,192,252,242,15,42,128,233,248, 555 133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,
552 1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 556 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,
553 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194, 557 248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
554 4,239,15,133,244,56,139,12,194,137,213,232,251,1,20,255,252,242,15,42,192, 558 255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194,137,213,
555 255,137,252,234,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182, 559 232,251,1,20,255,252,242,15,42,192,255,137,252,234,15,182,78,252,253,252,
556 192,255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15, 560 233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,
557 133,244,50,139,44,252,234,3,44,199,15,128,244,49,255,129,124,253,252,234, 561 133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,3,44,199,15,
558 4,239,15,133,244,52,129,124,253,199,4,239,15,133,244,52,139,4,199,3,4,252, 562 128,244,49,255,129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,
559 234,15,128,244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253, 563 239,15,133,244,52,139,4,199,3,4,252,234,15,128,244,51,255,129,124,253,252,
560 194,4,239,15,133,244,55,139,44,252,234,3,44,194,15,128,244,54,255,199,68, 564 234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,
561 202,4,237,255,129,124,253,252,234,4,239,15,131,244,50,255,129,124,253,199, 565 3,44,194,15,128,244,54,255,199,68,202,4,237,255,129,124,253,252,234,4,239,
562 4,239,15,131,244,50,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221, 566 15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4,
563 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,52,255,129,124, 567 252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,
564 253,199,4,239,15,131,244,52,255,252,242,15,16,4,199,252,242,15,88,4,252,234, 568 234,4,239,15,131,244,52,255,129,124,253,199,4,239,15,131,244,52,255,252,242,
565 255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,55,129, 569 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
566 124,253,194,4,239,15,131,244,55,255,252,242,15,16,4,252,234,252,242,15,88, 570 253,252,234,4,239,15,131,244,55,129,124,253,194,4,239,15,131,244,55,255,252,
567 4,194,255,221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244, 571 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,
568 50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,43,44,199,15,128,244, 572 124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,
569 49,255,129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,15,133, 573 44,252,234,43,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,
570 244,52,139,4,199,43,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239, 574 52,129,124,253,199,4,239,15,133,244,52,139,4,199,43,4,252,234,15,128,244,
571 15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,43,44,194, 575 51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,
572 15,128,244,54,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252, 576 244,55,139,44,252,234,43,44,194,15,128,244,54,255,252,242,15,16,4,252,234,
573 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4, 577 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,
574 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221, 578 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,
575 4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,50,129,124, 579 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,
576 253,199,4,239,15,133,244,50,139,44,252,234,15,175,44,199,15,128,244,49,255, 580 252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,
577 129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,15,133,244, 581 234,15,175,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,
578 52,139,4,199,15,175,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239, 582 52,129,124,253,199,4,239,15,133,244,52,139,4,199,15,175,4,252,234,15,128,
579 15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,15,175,44, 583 244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,
580 194,15,128,244,54,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221, 584 15,133,244,55,139,44,252,234,15,175,44,194,15,128,244,54,255,252,242,15,16,
581 4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255, 585 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,
582 221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194, 586 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,
583 255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4, 587 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,
584 199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4, 588 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,
585 252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242, 589 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,
586 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252, 590 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,
587 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252, 591 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,
588 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252, 592 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,
589 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,165,232,244, 593 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,
590 155,255,252,233,244,165,255,232,244,115,255,15,182,252,236,15,182,192,139, 594 234,221,4,194,255,248,165,232,244,155,255,252,233,244,165,255,232,244,115,
591 76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,35,137,205,137,116, 595 255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,
592 36,100,232,251,1,27,139,149,233,133,192,15,133,244,44,15,182,110,252,255, 596 192,65,41,232,248,35,137,205,137,116,36,100,232,251,1,27,139,149,233,133,
593 15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204,15,182,232, 597 192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,72,139,4,252,234,72,
594 131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199, 598 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
595 68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 599 235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,
596 255,36,252,235,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252, 600 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,199,
597 242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242, 601 68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,
598 15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,247,208, 602 255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,
599 137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 603 255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204,
600 252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137, 604 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,141,
601 41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193, 605 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
602 232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,173, 606 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
603 233,72,139,69,0,72,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 607 139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,202,
604 16,252,255,36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,233, 608 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,
605 0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252, 609 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,
606 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 610 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,
607 4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134, 611 248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
608 244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1, 612 235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,
609 28,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253, 613 132,244,1,135,213,141,139,233,255,232,251,1,28,137,252,234,252,233,244,1,
610 141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15, 614 255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,
611 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 615 233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,
612 36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244, 616 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,
613 1,137,213,137,194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255, 617 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,
614 139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233, 618 233,232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,
615 255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,172, 619 15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
616 253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193, 620 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
617 232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233, 621 65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
618 0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,29,139,149, 622 255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149,
619 233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 623 233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182,204,
620 235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20, 624 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,
621 135,137,252,233,137,116,36,100,232,251,1,30,139,149,233,15,182,78,252,253, 625 108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,
626 100,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
627 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,
628 108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251,
629 248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,
630 249,248,2,137,252,233,137,194,232,251,1,31,139,149,233,15,182,78,252,253,
622 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232, 631 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,
623 16,252,255,36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233, 632 16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,
624 137,116,36,100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232, 633 251,1,32,15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96,
625 11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,31, 634 139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,
626 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204, 635 20,135,137,252,233,232,251,1,33,139,149,233,15,182,78,252,253,137,4,202,199,
627 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252, 636 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
628 233,244,2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1, 637 252,235,248,3,137,252,233,232,251,1,32,15,183,70,252,254,72,252,247,208,252,
629 255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137, 638 233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,
630 149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149, 639 244,166,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,
631 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 640 244,167,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
632 232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,32, 641 38,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,139,4,194,255,
633 15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106, 642 129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,252,242,15,45,
634 252,248,139,173,233,139,4,135,252,233,244,166,255,72,252,247,208,139,106, 643 192,252,242,15,42,200,102,15,46,193,255,15,133,244,38,255,59,133,233,15,131,
635 252,248,139,173,233,139,4,135,252,233,244,167,255,15,182,252,236,15,182,192, 644 244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139,40,72,
636 129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,255,129,124,253,194, 645 137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
637 4,239,15,133,244,251,139,4,194,255,129,124,253,194,4,239,15,131,244,251,255, 646 36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,
638 252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255, 647 235,15,132,244,38,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,
639 15,133,244,38,255,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253, 648 248,5,255,129,124,253,194,4,239,15,133,244,38,139,4,194,252,233,244,166,255,
640 4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182, 649 15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,
641 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244, 650 239,15,133,244,36,139,44,252,234,248,166,139,141,233,35,136,233,105,201,239,
642 249,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,248,3, 651 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,
643 199,68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244, 652 129,121,253,4,239,15,132,244,251,15,182,70,252,253,72,139,41,72,137,44,194,
644 38,139,4,194,252,233,244,166,255,15,182,252,236,15,182,192,72,252,247,208, 653 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
645 139,4,135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,166, 654 235,248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,
646 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133, 655 233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,
647 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182, 656 233,235,15,133,244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124,
648 70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232, 657 253,252,234,4,239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,
649 131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,252,253,199,68,194, 658 224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,
650 4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141, 659 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
651 233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,36, 660 248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,
652 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,37,139, 661 244,37,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,
653 44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4,239, 662 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,139,44,252,
654 15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232, 663 234,255,15,133,244,41,255,59,133,233,15,131,244,41,193,224,3,3,133,233,129,
655 131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249, 664 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,
656 139,141,233,252,246,129,233,235,15,132,244,37,255,15,182,78,252,253,248,3, 665 2,72,139,44,202,72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
657 199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,124,253, 666 252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129,
658 252,234,4,239,15,133,244,41,139,44,252,234,255,15,133,244,41,255,59,133,233, 667 233,235,255,15,132,244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253,
659 15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1, 668 194,4,239,15,133,244,41,139,4,194,252,233,244,167,248,7,128,165,233,235,139,
660 252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,72,137,40,139,6,15, 669 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,
661 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189, 670 252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,
662 233,0,15,132,244,1,139,141,233,252,246,129,233,235,255,15,132,244,41,15,182, 671 133,244,39,139,44,252,234,248,167,139,141,233,35,136,233,105,201,239,198,
663 78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,41,139,4, 672 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
664 194,252,233,244,167,248,7,128,165,233,235,139,139,233,137,171,233,137,141, 673 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
665 233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252, 674 133,244,253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182,
666 247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234, 675 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,
667 248,167,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1, 676 0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,39,
668 129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239, 677 139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,
669 15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182, 678 141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39,248,6,137,
670 70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182,232,131,198,4, 679 68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,
671 193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,2,137,76,36, 680 36,80,137,252,234,137,205,137,116,36,100,232,251,1,34,139,149,233,139,108,
672 80,139,141,233,252,246,129,233,235,15,132,244,39,139,76,36,80,252,233,244, 681 36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
673 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244, 682 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
674 252,252,246,129,233,235,15,132,244,39,248,6,137,68,36,80,199,68,36,84,237, 683 4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,
675 137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,234,137,205, 684 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
676 137,116,36,100,232,251,1,34,139,149,233,139,108,36,32,137,193,252,233,244, 685 253,248,2,72,139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,
677 2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3, 686 232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,
678 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139, 687 252,246,129,233,235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,
679 44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239, 688 165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,
680 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,12,202, 689 244,2,255,137,124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,
681 72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 690 133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,
682 235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235, 691 252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,
683 15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,139, 692 139,41,131,193,8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,
684 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,36, 693 36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
685 80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133, 694 248,5,139,76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,
686 244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,233, 695 100,232,251,1,35,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,
687 15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,139,41,131,193,8,72, 696 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,
688 137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,182, 697 84,255,129,124,253,202,4,239,139,44,202,15,133,244,57,141,84,202,8,137,114,
689 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,96, 698 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,
690 137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,35,139, 699 252,235,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,
691 149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131, 700 15,133,244,29,248,58,139,114,252,252,252,247,198,237,15,133,244,253,248,1,
692 233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124,253, 701 137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,
693 202,4,239,139,44,202,15,133,244,57,141,84,202,8,137,114,252,252,139,181,233, 702 193,8,72,137,47,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,
694 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141,76, 703 68,36,84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,
695 202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,58, 704 233,15,182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,
696 139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, 705 133,244,4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,
697 68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,72,137,47,131, 706 191,233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,
698 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233, 707 133,244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,
699 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 708 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
700 4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252, 709 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
701 253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252, 710 252,248,239,184,237,15,133,244,29,137,202,137,114,252,252,139,181,233,139,
702 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242, 711 14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,137,124,36,
703 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255, 712 80,137,92,36,84,139,108,202,252,240,139,68,202,252,248,139,157,233,131,198,
704 141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105, 713 4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,244,
705 224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15, 714 250,255,219,68,202,252,248,255,72,139,44,199,72,137,108,202,8,131,192,1,255,
706 133,244,29,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182, 715 137,68,202,252,248,248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,
707 205,131,198,4,252,255,36,252,235,255,137,124,36,80,137,92,36,84,139,108,202, 716 92,36,84,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
708 252,240,139,68,202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216, 717 255,36,252,235,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,
709 15,131,244,251,129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248, 718 5,41,216,248,6,59,133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,
710 255,72,139,44,199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2, 719 233,239,15,132,244,253,141,92,24,1,72,139,175,233,72,139,135,233,72,137,44,
711 15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,84,139,124,36,80,139, 720 202,72,137,68,202,8,137,92,202,252,248,252,233,244,2,248,7,131,192,1,252,
712 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131, 721 233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,
713 192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,41,216,248,6,59,133, 722 129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,
714 233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,239,15,132,244,253, 723 133,244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,
715 141,92,24,1,72,139,175,233,72,139,135,233,72,137,44,202,72,137,68,202,8,137, 724 252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
716 92,202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6,255,129,124,253, 725 255,36,252,235,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,
717 202,252,236,239,15,133,244,251,139,108,202,232,129,124,253,202,252,244,239, 726 233,244,1,255,15,182,252,236,15,182,192,137,124,36,80,141,188,253,194,233,
718 15,133,244,251,129,124,253,202,252,252,239,15,133,244,251,128,189,233,235, 727 141,12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,
719 15,133,244,251,141,180,253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6, 728 248,57,215,15,131,244,248,248,1,72,139,71,252,248,131,199,8,72,137,1,131,
720 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,198,70, 729 193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,
721 252,252,235,141,180,253,134,233,198,6,235,252,233,244,1,255,15,182,252,236, 730 193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,
722 15,182,192,137,124,36,80,141,188,253,194,233,141,12,202,43,122,252,252,133, 731 232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,
723 252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248, 732 208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,84,
724 1,72,139,71,252,248,131,199,8,72,137,1,131,193,8,57,252,233,15,131,244,249, 733 139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,72,139,71,252,248,
725 57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2, 734 131,199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,
726 248,3,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 735 149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,
727 255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3, 736 252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,
728 137,197,193,252,237,3,131,197,1,137,108,36,84,139,108,36,96,1,200,59,133, 737 3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255,
729 233,15,135,244,253,248,6,255,72,139,71,252,248,131,199,8,72,137,1,131,193, 738 248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,72,137,111,252,
730 8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116, 739 248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,
731 36,100,41,215,139,84,36,84,131,252,234,1,137,252,233,232,251,1,0,139,149, 740 248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,5,
732 233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252, 741 56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,
733 137,68,36,84,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1, 742 202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,
734 15,132,244,249,248,2,72,139,44,15,72,137,111,252,248,131,199,8,131,232,1, 743 198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,
735 15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,244, 744 8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,
736 252,255,72,139,44,10,72,137,106,252,248,255,248,5,56,70,252,255,15,135,244, 745 252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,
737 252,255,15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,248,139,191, 746 252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,255,141,12,202,
738 233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 747 255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239,15,133,244,59,
739 36,252,235,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244, 748 129,121,253,20,239,15,133,244,59,139,41,131,121,16,0,15,140,244,251,255,129,
740 237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237,15,133, 749 121,253,12,239,15,133,244,164,129,121,253,20,239,15,133,244,164,255,139,105,
741 244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229,239,102, 750 16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,
742 131,172,253,43,233,1,15,132,244,147,255,141,12,202,255,129,121,253,4,239, 751 65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,
743 15,133,244,255,255,129,121,253,12,239,15,133,244,59,129,121,253,20,239,15, 752 141,180,253,134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,
744 133,244,59,139,41,131,121,16,0,15,140,244,251,255,129,121,253,12,239,15,133, 753 253,248,6,141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,
745 244,164,129,121,253,20,239,15,133,244,164,255,139,105,16,133,252,237,15,136, 754 131,198,4,193,232,16,252,255,36,252,235,248,5,255,3,41,15,128,244,1,137,41,
746 244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,137,105,24, 755 255,15,141,244,7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,
747 255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,253,134,233, 756 15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,
748 15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,6,141,180, 757 59,129,121,253,12,239,15,131,244,59,255,129,121,253,12,239,15,131,244,164,
749 253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,4,193,232, 758 129,121,253,20,239,15,131,244,164,255,139,105,20,255,129,252,253,239,15,131,
750 16,252,255,36,252,235,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244,7, 759 244,59,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,
751 255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244,7,255, 760 242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,
752 252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,59,129,121,253,12, 761 248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,
753 239,15,131,244,59,255,129,121,253,12,239,15,131,244,164,129,121,253,20,239, 762 24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,
754 15,131,244,164,255,139,105,20,255,129,252,253,239,15,131,244,59,255,252,242, 763 1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,
755 15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252, 764 233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,
756 237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15, 765 255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,
757 17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15, 766 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,
758 136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70, 767 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,
759 252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233,255,141,180, 768 105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,139,128,233,139,108,
760 253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255,15,130,244, 769 36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,
761 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12, 770 36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,
762 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137, 771 127,185,233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,
763 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137, 772 233,102,68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,
764 65,252,248,255,139,139,233,139,4,129,72,139,128,233,139,108,36,96,137,147, 773 68,15,127,177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,
765 233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,137, 774 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137,
766 124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127,185,233, 775 252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,149,255,
767 102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233,102,68, 776 139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,24,15,182,142,
768 15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68,15,127, 777 233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,
769 177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,139,6,15, 778 3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,
770 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137,252,245, 779 141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,248,
771 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,149,255,139,190, 780 139,108,36,96,141,12,200,59,141,233,15,135,244,23,137,209,137,194,15,182,
772 233,139,108,36,96,141,12,202,59,141,233,15,135,244,24,15,182,142,233,57,200, 781 174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,
773 15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194, 782 139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,
774 252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237, 783 237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,
775 141,4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141, 784 182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237,131,
776 12,200,59,141,233,15,135,244,23,137,209,137,194,15,182,174,233,133,252,237, 785 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72,139,
777 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137, 786 189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141,233,
778 56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15, 787 137,133,233,255,72,137,252,250,137,252,233,255,15,135,244,22,199,131,233,
779 133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193, 788 237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,
780 232,16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1, 789 12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
781 15,133,244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,
782 96,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,
783 72,137,252,250,137,252,233,255,15,135,244,22,199,131,233,237,255,252,255,
784 215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,
785 217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
786}; 790};
787 791
788enum { 792enum {
@@ -1526,321 +1530,321 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1526 dasm_put(Dst, 6255); 1530 dasm_put(Dst, 6255);
1527 } else { 1531 } else {
1528 } 1532 }
1529 dasm_put(Dst, 6265, LJ_TISNUM); 1533 dasm_put(Dst, 6265, 1+1, LJ_TISNUM);
1530 if (LJ_DUALNUM) { 1534 if (LJ_DUALNUM) {
1531 dasm_put(Dst, 6273); 1535 dasm_put(Dst, 6281);
1532 } else { 1536 } else {
1533 dasm_put(Dst, 2244); 1537 dasm_put(Dst, 2244);
1534 } 1538 }
1535 if (sse) { 1539 if (sse) {
1536 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1540 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1537 } else { 1541 } else {
1538 } 1542 }
1539 dasm_put(Dst, 106); 1543 dasm_put(Dst, 106);
1540 if (LJ_DUALNUM || sse) { 1544 if (LJ_DUALNUM || sse) {
1541 if (!sse) { 1545 if (!sse) {
1542 } 1546 }
1543 dasm_put(Dst, 6314); 1547 dasm_put(Dst, 6322);
1544 } else { 1548 } else {
1545 } 1549 }
1546 dasm_put(Dst, 6319); 1550 dasm_put(Dst, 6327, 1+1);
1547 if (sse) { 1551 if (sse) {
1548 dasm_put(Dst, 6322, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1552 dasm_put(Dst, 6338, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1549 } else { 1553 } else {
1550 dasm_put(Dst, 6332); 1554 dasm_put(Dst, 6348);
1551 } 1555 }
1552 dasm_put(Dst, 2221, LJ_TISNUM); 1556 dasm_put(Dst, 2221, LJ_TISNUM);
1553 if (LJ_DUALNUM) { 1557 if (LJ_DUALNUM) {
1554 dasm_put(Dst, 6341); 1558 dasm_put(Dst, 6357);
1555 } else { 1559 } else {
1556 dasm_put(Dst, 2244); 1560 dasm_put(Dst, 2244);
1557 } 1561 }
1558 if (sse) { 1562 if (sse) {
1559 dasm_put(Dst, 6358); 1563 dasm_put(Dst, 6374);
1560 } else { 1564 } else {
1561 } 1565 }
1562 dasm_put(Dst, 6373, LJ_TISNUM); 1566 dasm_put(Dst, 6389, LJ_TISNUM);
1563 if (LJ_DUALNUM) { 1567 if (LJ_DUALNUM) {
1564 dasm_put(Dst, 6398); 1568 dasm_put(Dst, 6414);
1565 } else { 1569 } else {
1566 dasm_put(Dst, 6418); 1570 dasm_put(Dst, 6434);
1567 } 1571 }
1568 if (sse) { 1572 if (sse) {
1569 dasm_put(Dst, 6423); 1573 dasm_put(Dst, 6439);
1570 } else { 1574 } else {
1571 } 1575 }
1572 dasm_put(Dst, 6440); 1576 dasm_put(Dst, 6456, 1+1);
1573 if (sse) { 1577 if (sse) {
1574 dasm_put(Dst, 6322, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1578 dasm_put(Dst, 6338, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1575 } else { 1579 } else {
1576 dasm_put(Dst, 6332); 1580 dasm_put(Dst, 6348);
1577 } 1581 }
1578 dasm_put(Dst, 2221, LJ_TISNUM); 1582 dasm_put(Dst, 2221, LJ_TISNUM);
1579 if (LJ_DUALNUM) { 1583 if (LJ_DUALNUM) {
1580 dasm_put(Dst, 6341); 1584 dasm_put(Dst, 6357);
1581 } else { 1585 } else {
1582 dasm_put(Dst, 2244); 1586 dasm_put(Dst, 2244);
1583 } 1587 }
1584 if (sse) { 1588 if (sse) {
1585 dasm_put(Dst, 6358); 1589 dasm_put(Dst, 6374);
1586 } else { 1590 } else {
1587 } 1591 }
1588 dasm_put(Dst, 6373, LJ_TISNUM); 1592 dasm_put(Dst, 6389, LJ_TISNUM);
1589 if (LJ_DUALNUM) { 1593 if (LJ_DUALNUM) {
1590 dasm_put(Dst, 6450); 1594 dasm_put(Dst, 6474);
1591 } else { 1595 } else {
1592 dasm_put(Dst, 6418); 1596 dasm_put(Dst, 6434);
1593 } 1597 }
1594 if (sse) { 1598 if (sse) {
1595 dasm_put(Dst, 6470); 1599 dasm_put(Dst, 6494);
1596 } else { 1600 } else {
1597 } 1601 }
1598 dasm_put(Dst, 6487); 1602 dasm_put(Dst, 6511, 1+1);
1599 if (sse) { 1603 if (sse) {
1600 dasm_put(Dst, 6322, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1604 dasm_put(Dst, 6338, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1601 } else { 1605 } else {
1602 dasm_put(Dst, 6332); 1606 dasm_put(Dst, 6348);
1603 } 1607 }
1604 dasm_put(Dst, 2221, LJ_TISNUM); 1608 dasm_put(Dst, 2221, LJ_TISNUM);
1605 if (LJ_DUALNUM) { 1609 if (LJ_DUALNUM) {
1606 dasm_put(Dst, 6341); 1610 dasm_put(Dst, 6357);
1607 } else { 1611 } else {
1608 dasm_put(Dst, 2244); 1612 dasm_put(Dst, 2244);
1609 } 1613 }
1610 if (sse) { 1614 if (sse) {
1611 dasm_put(Dst, 6358); 1615 dasm_put(Dst, 6374);
1612 } else { 1616 } else {
1613 } 1617 }
1614 dasm_put(Dst, 6373, LJ_TISNUM); 1618 dasm_put(Dst, 6389, LJ_TISNUM);
1615 if (LJ_DUALNUM) { 1619 if (LJ_DUALNUM) {
1616 dasm_put(Dst, 6497); 1620 dasm_put(Dst, 6529);
1617 } else { 1621 } else {
1618 dasm_put(Dst, 6418); 1622 dasm_put(Dst, 6434);
1619 } 1623 }
1620 if (sse) { 1624 if (sse) {
1621 dasm_put(Dst, 6517); 1625 dasm_put(Dst, 6549);
1622 } else { 1626 } else {
1623 } 1627 }
1624 dasm_put(Dst, 6534, LJ_TISNUM); 1628 dasm_put(Dst, 6566, 1+1, LJ_TISNUM);
1625 if (LJ_DUALNUM) { 1629 if (LJ_DUALNUM) {
1626 dasm_put(Dst, 6341); 1630 dasm_put(Dst, 6357);
1627 } else { 1631 } else {
1628 dasm_put(Dst, 2244); 1632 dasm_put(Dst, 2244);
1629 } 1633 }
1630 if (sse) { 1634 if (sse) {
1631 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1635 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1632 } else { 1636 } else {
1633 } 1637 }
1634 dasm_put(Dst, 6549, LJ_TISNUM); 1638 dasm_put(Dst, 6589, 1+1, LJ_TISNUM);
1635 if (LJ_DUALNUM) { 1639 if (LJ_DUALNUM) {
1636 dasm_put(Dst, 6341); 1640 dasm_put(Dst, 6357);
1637 } else { 1641 } else {
1638 dasm_put(Dst, 2244); 1642 dasm_put(Dst, 2244);
1639 } 1643 }
1640 if (sse) { 1644 if (sse) {
1641 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1645 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1642 } else { 1646 } else {
1643 } 1647 }
1644 dasm_put(Dst, 6565); 1648 dasm_put(Dst, 6613);
1645 if (LJ_DUALNUM) { 1649 if (LJ_DUALNUM) {
1646 dasm_put(Dst, 6314); 1650 dasm_put(Dst, 6322);
1647 } else if (sse) { 1651 } else if (sse) {
1648 dasm_put(Dst, 6571); 1652 dasm_put(Dst, 6619);
1649 } else { 1653 } else {
1650 } 1654 }
1651 dasm_put(Dst, 6583); 1655 dasm_put(Dst, 6631);
1652 if (LJ_DUALNUM) { 1656 if (LJ_DUALNUM) {
1653 dasm_put(Dst, 6594, LJ_TISNUM); 1657 dasm_put(Dst, 6642, 1+1, LJ_TISNUM);
1654 if (LJ_DUALNUM) { 1658 if (LJ_DUALNUM) {
1655 dasm_put(Dst, 6341); 1659 dasm_put(Dst, 6357);
1656 } else { 1660 } else {
1657 dasm_put(Dst, 2244); 1661 dasm_put(Dst, 2244);
1658 } 1662 }
1659 if (sse) { 1663 if (sse) {
1660 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1664 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1661 } else { 1665 } else {
1662 } 1666 }
1663 dasm_put(Dst, 6602, LJ_TISNUM); 1667 dasm_put(Dst, 6658, LJ_TISNUM);
1664 } else if (sse) { 1668 } else if (sse) {
1665 dasm_put(Dst, 6617, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1669 dasm_put(Dst, 6673, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1666 } else { 1670 } else {
1667 } 1671 }
1668 dasm_put(Dst, 6684); 1672 dasm_put(Dst, 6740);
1669 if (LJ_DUALNUM) { 1673 if (LJ_DUALNUM) {
1670 dasm_put(Dst, 6691, LJ_TISNUM); 1674 dasm_put(Dst, 6747, 1+1, LJ_TISNUM);
1671 if (LJ_DUALNUM) { 1675 if (LJ_DUALNUM) {
1672 dasm_put(Dst, 6341); 1676 dasm_put(Dst, 6357);
1673 } else { 1677 } else {
1674 dasm_put(Dst, 2244); 1678 dasm_put(Dst, 2244);
1675 } 1679 }
1676 if (sse) { 1680 if (sse) {
1677 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1681 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1678 } else { 1682 } else {
1679 } 1683 }
1680 dasm_put(Dst, 6602, LJ_TISNUM); 1684 dasm_put(Dst, 6658, LJ_TISNUM);
1681 } else if (sse) { 1685 } else if (sse) {
1682 dasm_put(Dst, 6699, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1686 dasm_put(Dst, 6763, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1683 } else { 1687 } else {
1684 } 1688 }
1685 dasm_put(Dst, 6766); 1689 dasm_put(Dst, 6830);
1686 if (LJ_DUALNUM) { 1690 if (LJ_DUALNUM) {
1687 dasm_put(Dst, 6774, LJ_TISNUM); 1691 dasm_put(Dst, 6838, 1+1, LJ_TISNUM);
1688 if (LJ_DUALNUM) { 1692 if (LJ_DUALNUM) {
1689 dasm_put(Dst, 6341); 1693 dasm_put(Dst, 6357);
1690 } else { 1694 } else {
1691 dasm_put(Dst, 2244); 1695 dasm_put(Dst, 2244);
1692 } 1696 }
1693 if (sse) { 1697 if (sse) {
1694 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1698 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1695 } else { 1699 } else {
1696 } 1700 }
1697 dasm_put(Dst, 6602, LJ_TISNUM); 1701 dasm_put(Dst, 6658, LJ_TISNUM);
1698 } else if (sse) { 1702 } else if (sse) {
1699 dasm_put(Dst, 6782, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1703 dasm_put(Dst, 6854, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1700 } else { 1704 } else {
1701 } 1705 }
1702 dasm_put(Dst, 6849); 1706 dasm_put(Dst, 6921);
1703 if (LJ_DUALNUM) { 1707 if (LJ_DUALNUM) {
1704 dasm_put(Dst, 6857, LJ_TISNUM); 1708 dasm_put(Dst, 6929, 1+1, LJ_TISNUM);
1705 if (LJ_DUALNUM) { 1709 if (LJ_DUALNUM) {
1706 dasm_put(Dst, 6341); 1710 dasm_put(Dst, 6357);
1707 } else { 1711 } else {
1708 dasm_put(Dst, 2244); 1712 dasm_put(Dst, 2244);
1709 } 1713 }
1710 if (sse) { 1714 if (sse) {
1711 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1715 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1712 } else { 1716 } else {
1713 } 1717 }
1714 dasm_put(Dst, 6602, LJ_TISNUM); 1718 dasm_put(Dst, 6658, LJ_TISNUM);
1715 } else if (sse) { 1719 } else if (sse) {
1716 dasm_put(Dst, 6865, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1720 dasm_put(Dst, 6945, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1717 } else { 1721 } else {
1718 } 1722 }
1719 dasm_put(Dst, 6932); 1723 dasm_put(Dst, 7012);
1720 if (LJ_DUALNUM) { 1724 if (LJ_DUALNUM) {
1721 dasm_put(Dst, 6939, LJ_TISNUM); 1725 dasm_put(Dst, 7019, 1+1, LJ_TISNUM);
1722 if (LJ_DUALNUM) { 1726 if (LJ_DUALNUM) {
1723 dasm_put(Dst, 6341); 1727 dasm_put(Dst, 6357);
1724 } else { 1728 } else {
1725 dasm_put(Dst, 2244); 1729 dasm_put(Dst, 2244);
1726 } 1730 }
1727 if (sse) { 1731 if (sse) {
1728 dasm_put(Dst, 6290, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1732 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1729 } else { 1733 } else {
1730 } 1734 }
1731 dasm_put(Dst, 6602, LJ_TISNUM); 1735 dasm_put(Dst, 6658, LJ_TISNUM);
1732 } else if (sse) { 1736 } else if (sse) {
1733 dasm_put(Dst, 6947, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1737 dasm_put(Dst, 7035, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1734 } else { 1738 } else {
1735 } 1739 }
1736 dasm_put(Dst, 7014, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1740 dasm_put(Dst, 7102, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1737 dasm_put(Dst, 7090, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1741 dasm_put(Dst, 7178, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1738 dasm_put(Dst, 7217, Dt1(->top), Dt1(->base), Dt1(->top)); 1742 dasm_put(Dst, 7305, Dt1(->top), Dt1(->base), Dt1(->top));
1739#if LJ_HASJIT 1743#if LJ_HASJIT
1740 dasm_put(Dst, 7256, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1744 dasm_put(Dst, 7344, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1741#endif 1745#endif
1742 dasm_put(Dst, 7287, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1746 dasm_put(Dst, 7375, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1743 dasm_put(Dst, 7338, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1747 dasm_put(Dst, 7426, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1744#if LJ_HASJIT 1748#if LJ_HASJIT
1745 dasm_put(Dst, 7405, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1749 dasm_put(Dst, 7493, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1746#endif 1750#endif
1747 dasm_put(Dst, 7452); 1751 dasm_put(Dst, 7540);
1748#if LJ_HASJIT 1752#if LJ_HASJIT
1749 dasm_put(Dst, 7282); 1753 dasm_put(Dst, 7370);
1750#endif 1754#endif
1751 dasm_put(Dst, 7459); 1755 dasm_put(Dst, 7547);
1752#if LJ_HASJIT 1756#if LJ_HASJIT
1753 dasm_put(Dst, 7462); 1757 dasm_put(Dst, 7550);
1754#endif 1758#endif
1755 dasm_put(Dst, 7472, Dt1(->base), Dt1(->top)); 1759 dasm_put(Dst, 7560, Dt1(->base), Dt1(->top));
1756#if LJ_HASJIT 1760#if LJ_HASJIT
1757 dasm_put(Dst, 7506); 1761 dasm_put(Dst, 7594);
1758#endif 1762#endif
1759 dasm_put(Dst, 7511, Dt1(->base), Dt1(->top)); 1763 dasm_put(Dst, 7599, Dt1(->base), Dt1(->top));
1760#if LJ_HASJIT 1764#if LJ_HASJIT
1761 dasm_put(Dst, 7542, 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); 1765 dasm_put(Dst, 7630, 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);
1762#endif 1766#endif
1763 dasm_put(Dst, 7772); 1767 dasm_put(Dst, 7860);
1764#if LJ_HASJIT 1768#if LJ_HASJIT
1765 dasm_put(Dst, 7775, 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); 1769 dasm_put(Dst, 7863, 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);
1766 dasm_put(Dst, 7917); 1770 dasm_put(Dst, 8005);
1767#endif 1771#endif
1768 dasm_put(Dst, 7943); 1772 dasm_put(Dst, 8031);
1769 if (!sse) { 1773 if (!sse) {
1770 dasm_put(Dst, 7946); 1774 dasm_put(Dst, 8034);
1771 } 1775 }
1772 dasm_put(Dst, 7991, (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)); 1776 dasm_put(Dst, 8079, (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));
1773 if (!sse) { 1777 if (!sse) {
1774 dasm_put(Dst, 8077); 1778 dasm_put(Dst, 8165);
1775 } 1779 }
1776 dasm_put(Dst, 8122, (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)); 1780 dasm_put(Dst, 8210, (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));
1777 if (!sse) { 1781 if (!sse) {
1778 dasm_put(Dst, 8208); 1782 dasm_put(Dst, 8296);
1779 } 1783 }
1780 dasm_put(Dst, 8247, (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)); 1784 dasm_put(Dst, 8335, (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));
1781 if (sse) { 1785 if (sse) {
1782 dasm_put(Dst, 8336, (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)); 1786 dasm_put(Dst, 8424, (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));
1783 } else { 1787 } else {
1784 dasm_put(Dst, 8450); 1788 dasm_put(Dst, 8538);
1785 } 1789 }
1786 dasm_put(Dst, 8497); 1790 dasm_put(Dst, 8585);
1787 if (!sse) { 1791 if (!sse) {
1788 } else { 1792 } else {
1789 dasm_put(Dst, 8571); 1793 dasm_put(Dst, 8659);
1790 } 1794 }
1791 dasm_put(Dst, 8574); 1795 dasm_put(Dst, 8662);
1792 dasm_put(Dst, 8659, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1796 dasm_put(Dst, 8747, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1793 dasm_put(Dst, 8762, (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)); 1797 dasm_put(Dst, 8850, (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));
1794 dasm_put(Dst, 8918); 1798 dasm_put(Dst, 9006);
1795#if LJ_HASJIT 1799#if LJ_HASJIT
1796 if (sse) { 1800 if (sse) {
1797 dasm_put(Dst, 8959); 1801 dasm_put(Dst, 9047);
1798 dasm_put(Dst, 9029); 1802 dasm_put(Dst, 9117);
1799 dasm_put(Dst, 9102); 1803 dasm_put(Dst, 9190);
1800 } else { 1804 } else {
1801 dasm_put(Dst, 9152); 1805 dasm_put(Dst, 9240);
1802 dasm_put(Dst, 9244); 1806 dasm_put(Dst, 9332);
1803 } 1807 }
1804 dasm_put(Dst, 9290); 1808 dasm_put(Dst, 9378);
1805#endif 1809#endif
1806 dasm_put(Dst, 9294); 1810 dasm_put(Dst, 9382);
1807 if (sse) { 1811 if (sse) {
1808 dasm_put(Dst, 9297, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1812 dasm_put(Dst, 9385, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1809 dasm_put(Dst, 9386, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1813 dasm_put(Dst, 9474, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1810 } else { 1814 } else {
1811 dasm_put(Dst, 9510); 1815 dasm_put(Dst, 9598);
1812 dasm_put(Dst, 9593); 1816 dasm_put(Dst, 9681);
1813 if (cmov) { 1817 if (cmov) {
1814 dasm_put(Dst, 9648); 1818 dasm_put(Dst, 9736);
1815 } else { 1819 } else {
1816 dasm_put(Dst, 9667); 1820 dasm_put(Dst, 9755);
1817 } 1821 }
1818 dasm_put(Dst, 9290); 1822 dasm_put(Dst, 9378);
1819 } 1823 }
1820 dasm_put(Dst, 9708); 1824 dasm_put(Dst, 9796);
1821#if LJ_HASFFI 1825#if LJ_HASFFI
1822#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1826#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1823 dasm_put(Dst, 9736, DtE(->spadj)); 1827 dasm_put(Dst, 9824, DtE(->spadj));
1824#if LJ_TARGET_WINDOWS 1828#if LJ_TARGET_WINDOWS
1825#endif 1829#endif
1826 dasm_put(Dst, 9751, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3])); 1830 dasm_put(Dst, 9839, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3]));
1827 dasm_put(Dst, 9832, DtE(->func), DtE(->gpr[0]), DtE(->fpr[0])); 1831 dasm_put(Dst, 9920, DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]));
1828#if LJ_TARGET_WINDOWS 1832#if LJ_TARGET_WINDOWS
1829#endif 1833#endif
1830 dasm_put(Dst, 9845); 1834 dasm_put(Dst, 9933);
1831#endif 1835#endif
1832 dasm_put(Dst, 9853); 1836 dasm_put(Dst, 9941);
1833#ifdef LUA_USE_ASSERT 1837#ifdef LUA_USE_ASSERT
1834 dasm_put(Dst, 9292); 1838 dasm_put(Dst, 9380);
1835#endif 1839#endif
1836 dasm_put(Dst, 9292); 1840 dasm_put(Dst, 9380);
1837} 1841}
1838 1842
1839/* Generate the code for a single instruction. */ 1843/* Generate the code for a single instruction. */
1840static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1844static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1841{ 1845{
1842 int vk = 0; 1846 int vk = 0;
1843 dasm_put(Dst, 9856, defop); 1847 dasm_put(Dst, 9944, defop);
1844 1848
1845 switch (op) { 1849 switch (op) {
1846 1850
@@ -1851,145 +1855,145 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1851 1855
1852 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1856 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1853 if (LJ_DUALNUM) { 1857 if (LJ_DUALNUM) {
1854 dasm_put(Dst, 9858, LJ_TISNUM, LJ_TISNUM); 1858 dasm_put(Dst, 9946, LJ_TISNUM, LJ_TISNUM);
1855 switch (op) { 1859 switch (op) {
1856 case BC_ISLT: 1860 case BC_ISLT:
1857 dasm_put(Dst, 9888); 1861 dasm_put(Dst, 9976);
1858 break; 1862 break;
1859 case BC_ISGE: 1863 case BC_ISGE:
1860 dasm_put(Dst, 9893); 1864 dasm_put(Dst, 9981);
1861 break; 1865 break;
1862 case BC_ISLE: 1866 case BC_ISLE:
1863 dasm_put(Dst, 9898); 1867 dasm_put(Dst, 9986);
1864 break; 1868 break;
1865 case BC_ISGT: 1869 case BC_ISGT:
1866 dasm_put(Dst, 9903); 1870 dasm_put(Dst, 9991);
1867 break; 1871 break;
1868 default: break; /* Shut up GCC. */ 1872 default: break; /* Shut up GCC. */
1869 } 1873 }
1870 dasm_put(Dst, 9908, -BCBIAS_J*4, LJ_TISNUM); 1874 dasm_put(Dst, 9996, -BCBIAS_J*4, LJ_TISNUM);
1871 if (sse) { 1875 if (sse) {
1872 dasm_put(Dst, 9962); 1876 dasm_put(Dst, 10050);
1873 } else { 1877 } else {
1874 dasm_put(Dst, 9973); 1878 dasm_put(Dst, 10061);
1875 } 1879 }
1876 dasm_put(Dst, 9984); 1880 dasm_put(Dst, 10072);
1877 if (sse) { 1881 if (sse) {
1878 dasm_put(Dst, 9991); 1882 dasm_put(Dst, 10079);
1879 switch (op) { 1883 switch (op) {
1880 case BC_ISLT: 1884 case BC_ISLT:
1881 dasm_put(Dst, 10011); 1885 dasm_put(Dst, 10099);
1882 break; 1886 break;
1883 case BC_ISGE: 1887 case BC_ISGE:
1884 dasm_put(Dst, 10016); 1888 dasm_put(Dst, 10104);
1885 break; 1889 break;
1886 case BC_ISLE: 1890 case BC_ISLE:
1887 dasm_put(Dst, 10021); 1891 dasm_put(Dst, 10109);
1888 break; 1892 break;
1889 case BC_ISGT: 1893 case BC_ISGT:
1890 dasm_put(Dst, 10026); 1894 dasm_put(Dst, 10114);
1891 break; 1895 break;
1892 default: break; /* Shut up GCC. */ 1896 default: break; /* Shut up GCC. */
1893 } 1897 }
1894 dasm_put(Dst, 10031); 1898 dasm_put(Dst, 10119);
1895 } else { 1899 } else {
1896 dasm_put(Dst, 10036); 1900 dasm_put(Dst, 10124);
1897 } 1901 }
1898 } else { 1902 } else {
1899 dasm_put(Dst, 10044, LJ_TISNUM, LJ_TISNUM); 1903 dasm_put(Dst, 10132, LJ_TISNUM, LJ_TISNUM);
1900 } 1904 }
1901 if (sse) { 1905 if (sse) {
1902 dasm_put(Dst, 10065); 1906 dasm_put(Dst, 10153);
1903 } else { 1907 } else {
1904 dasm_put(Dst, 10086); 1908 dasm_put(Dst, 10174);
1905 if (cmov) { 1909 if (cmov) {
1906 dasm_put(Dst, 10102); 1910 dasm_put(Dst, 10190);
1907 } else { 1911 } else {
1908 dasm_put(Dst, 10108); 1912 dasm_put(Dst, 10196);
1909 } 1913 }
1910 } 1914 }
1911 if (LJ_DUALNUM) { 1915 if (LJ_DUALNUM) {
1912 switch (op) { 1916 switch (op) {
1913 case BC_ISLT: 1917 case BC_ISLT:
1914 dasm_put(Dst, 10011); 1918 dasm_put(Dst, 10099);
1915 break; 1919 break;
1916 case BC_ISGE: 1920 case BC_ISGE:
1917 dasm_put(Dst, 10016); 1921 dasm_put(Dst, 10104);
1918 break; 1922 break;
1919 case BC_ISLE: 1923 case BC_ISLE:
1920 dasm_put(Dst, 10021); 1924 dasm_put(Dst, 10109);
1921 break; 1925 break;
1922 case BC_ISGT: 1926 case BC_ISGT:
1923 dasm_put(Dst, 10026); 1927 dasm_put(Dst, 10114);
1924 break; 1928 break;
1925 default: break; /* Shut up GCC. */ 1929 default: break; /* Shut up GCC. */
1926 } 1930 }
1927 dasm_put(Dst, 10031); 1931 dasm_put(Dst, 10119);
1928 } else { 1932 } else {
1929 switch (op) { 1933 switch (op) {
1930 case BC_ISLT: 1934 case BC_ISLT:
1931 dasm_put(Dst, 10115); 1935 dasm_put(Dst, 10203);
1932 break; 1936 break;
1933 case BC_ISGE: 1937 case BC_ISGE:
1934 dasm_put(Dst, 10120); 1938 dasm_put(Dst, 10208);
1935 break; 1939 break;
1936 case BC_ISLE: 1940 case BC_ISLE:
1937 dasm_put(Dst, 10125); 1941 dasm_put(Dst, 10213);
1938 break; 1942 break;
1939 case BC_ISGT: 1943 case BC_ISGT:
1940 dasm_put(Dst, 10130); 1944 dasm_put(Dst, 10218);
1941 break; 1945 break;
1942 default: break; /* Shut up GCC. */ 1946 default: break; /* Shut up GCC. */
1943 } 1947 }
1944 dasm_put(Dst, 10135, -BCBIAS_J*4); 1948 dasm_put(Dst, 10223, -BCBIAS_J*4);
1945 } 1949 }
1946 break; 1950 break;
1947 1951
1948 case BC_ISEQV: case BC_ISNEV: 1952 case BC_ISEQV: case BC_ISNEV:
1949 vk = op == BC_ISEQV; 1953 vk = op == BC_ISEQV;
1950 dasm_put(Dst, 10167); 1954 dasm_put(Dst, 10255);
1951 if (LJ_DUALNUM) { 1955 if (LJ_DUALNUM) {
1952 dasm_put(Dst, 10175, LJ_TISNUM, LJ_TISNUM); 1956 dasm_put(Dst, 10263, LJ_TISNUM, LJ_TISNUM);
1953 if (vk) { 1957 if (vk) {
1954 dasm_put(Dst, 10200); 1958 dasm_put(Dst, 10288);
1955 } else { 1959 } else {
1956 dasm_put(Dst, 10205); 1960 dasm_put(Dst, 10293);
1957 } 1961 }
1958 dasm_put(Dst, 10210, -BCBIAS_J*4, LJ_TISNUM); 1962 dasm_put(Dst, 10298, -BCBIAS_J*4, LJ_TISNUM);
1959 if (sse) { 1963 if (sse) {
1960 dasm_put(Dst, 10262); 1964 dasm_put(Dst, 10350);
1961 } else { 1965 } else {
1962 dasm_put(Dst, 10269); 1966 dasm_put(Dst, 10357);
1963 } 1967 }
1964 dasm_put(Dst, 10273); 1968 dasm_put(Dst, 10361);
1965 if (sse) { 1969 if (sse) {
1966 dasm_put(Dst, 10284); 1970 dasm_put(Dst, 10372);
1967 } else { 1971 } else {
1968 dasm_put(Dst, 10296); 1972 dasm_put(Dst, 10384);
1969 } 1973 }
1970 dasm_put(Dst, 10303); 1974 dasm_put(Dst, 10391);
1971 } else { 1975 } else {
1972 dasm_put(Dst, 10308, LJ_TISNUM, LJ_TISNUM); 1976 dasm_put(Dst, 10396, LJ_TISNUM, LJ_TISNUM);
1973 } 1977 }
1974 if (sse) { 1978 if (sse) {
1975 dasm_put(Dst, 10327); 1979 dasm_put(Dst, 10415);
1976 } else { 1980 } else {
1977 dasm_put(Dst, 10345); 1981 dasm_put(Dst, 10433);
1978 if (cmov) { 1982 if (cmov) {
1979 dasm_put(Dst, 10102); 1983 dasm_put(Dst, 10190);
1980 } else { 1984 } else {
1981 dasm_put(Dst, 10108); 1985 dasm_put(Dst, 10196);
1982 } 1986 }
1983 } 1987 }
1984 iseqne_fp: 1988 iseqne_fp:
1985 if (vk) { 1989 if (vk) {
1986 dasm_put(Dst, 10358); 1990 dasm_put(Dst, 10446);
1987 } else { 1991 } else {
1988 dasm_put(Dst, 10367); 1992 dasm_put(Dst, 10455);
1989 } 1993 }
1990 iseqne_end: 1994 iseqne_end:
1991 if (vk) { 1995 if (vk) {
1992 dasm_put(Dst, 10376, -BCBIAS_J*4); 1996 dasm_put(Dst, 10464, -BCBIAS_J*4);
1993 if (!LJ_HASFFI) { 1997 if (!LJ_HASFFI) {
1994 dasm_put(Dst, 4609); 1998 dasm_put(Dst, 4609);
1995 } 1999 }
@@ -1997,150 +2001,150 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1997 if (!LJ_HASFFI) { 2001 if (!LJ_HASFFI) {
1998 dasm_put(Dst, 4609); 2002 dasm_put(Dst, 4609);
1999 } 2003 }
2000 dasm_put(Dst, 10391, -BCBIAS_J*4); 2004 dasm_put(Dst, 10479, -BCBIAS_J*4);
2001 } 2005 }
2002 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2006 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2003 op == BC_ISEQN || op == BC_ISNEN)) { 2007 op == BC_ISEQN || op == BC_ISNEN)) {
2004 dasm_put(Dst, 10406); 2008 dasm_put(Dst, 10494);
2005 } else { 2009 } else {
2006 dasm_put(Dst, 10147); 2010 dasm_put(Dst, 10235);
2007 } 2011 }
2008 if (op == BC_ISEQV || op == BC_ISNEV) { 2012 if (op == BC_ISEQV || op == BC_ISNEV) {
2009 dasm_put(Dst, 9829); 2013 dasm_put(Dst, 9917);
2010 if (LJ_HASFFI) { 2014 if (LJ_HASFFI) {
2011 dasm_put(Dst, 10411, LJ_TCDATA, LJ_TCDATA); 2015 dasm_put(Dst, 10499, LJ_TCDATA, LJ_TCDATA);
2012 } 2016 }
2013 dasm_put(Dst, 10430, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2017 dasm_put(Dst, 10518, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2014 if (vk) { 2018 if (vk) {
2015 dasm_put(Dst, 10486); 2019 dasm_put(Dst, 10574);
2016 } else { 2020 } else {
2017 dasm_put(Dst, 10490); 2021 dasm_put(Dst, 10578);
2018 } 2022 }
2019 dasm_put(Dst, 10496); 2023 dasm_put(Dst, 10584);
2020 } else if (LJ_HASFFI) { 2024 } else if (LJ_HASFFI) {
2021 dasm_put(Dst, 10501, LJ_TCDATA); 2025 dasm_put(Dst, 10589, LJ_TCDATA);
2022 if (LJ_DUALNUM && vk) { 2026 if (LJ_DUALNUM && vk) {
2023 dasm_put(Dst, 10508); 2027 dasm_put(Dst, 10596);
2024 } else { 2028 } else {
2025 dasm_put(Dst, 10481); 2029 dasm_put(Dst, 10569);
2026 } 2030 }
2027 dasm_put(Dst, 10513); 2031 dasm_put(Dst, 10601);
2028 } 2032 }
2029 break; 2033 break;
2030 case BC_ISEQS: case BC_ISNES: 2034 case BC_ISEQS: case BC_ISNES:
2031 vk = op == BC_ISEQS; 2035 vk = op == BC_ISEQS;
2032 dasm_put(Dst, 10518, LJ_TSTR); 2036 dasm_put(Dst, 10606, LJ_TSTR);
2033 iseqne_test: 2037 iseqne_test:
2034 if (vk) { 2038 if (vk) {
2035 dasm_put(Dst, 10362); 2039 dasm_put(Dst, 10450);
2036 } else { 2040 } else {
2037 dasm_put(Dst, 765); 2041 dasm_put(Dst, 765);
2038 } 2042 }
2039 goto iseqne_end; 2043 goto iseqne_end;
2040 case BC_ISEQN: case BC_ISNEN: 2044 case BC_ISEQN: case BC_ISNEN:
2041 vk = op == BC_ISEQN; 2045 vk = op == BC_ISEQN;
2042 dasm_put(Dst, 10544); 2046 dasm_put(Dst, 10632);
2043 if (LJ_DUALNUM) { 2047 if (LJ_DUALNUM) {
2044 dasm_put(Dst, 10552, LJ_TISNUM, LJ_TISNUM); 2048 dasm_put(Dst, 10640, LJ_TISNUM, LJ_TISNUM);
2045 if (vk) { 2049 if (vk) {
2046 dasm_put(Dst, 10200); 2050 dasm_put(Dst, 10288);
2047 } else { 2051 } else {
2048 dasm_put(Dst, 10205); 2052 dasm_put(Dst, 10293);
2049 } 2053 }
2050 dasm_put(Dst, 10577, -BCBIAS_J*4, LJ_TISNUM); 2054 dasm_put(Dst, 10665, -BCBIAS_J*4, LJ_TISNUM);
2051 if (sse) { 2055 if (sse) {
2052 dasm_put(Dst, 10625); 2056 dasm_put(Dst, 10713);
2053 } else { 2057 } else {
2054 dasm_put(Dst, 10632); 2058 dasm_put(Dst, 10720);
2055 } 2059 }
2056 dasm_put(Dst, 10636); 2060 dasm_put(Dst, 10724);
2057 if (sse) { 2061 if (sse) {
2058 dasm_put(Dst, 10643); 2062 dasm_put(Dst, 10731);
2059 } else { 2063 } else {
2060 dasm_put(Dst, 10655); 2064 dasm_put(Dst, 10743);
2061 } 2065 }
2062 dasm_put(Dst, 10303); 2066 dasm_put(Dst, 10391);
2063 } else { 2067 } else {
2064 dasm_put(Dst, 10662, LJ_TISNUM); 2068 dasm_put(Dst, 10750, LJ_TISNUM);
2065 } 2069 }
2066 if (sse) { 2070 if (sse) {
2067 dasm_put(Dst, 10671); 2071 dasm_put(Dst, 10759);
2068 } else { 2072 } else {
2069 dasm_put(Dst, 10689); 2073 dasm_put(Dst, 10777);
2070 if (cmov) { 2074 if (cmov) {
2071 dasm_put(Dst, 10102); 2075 dasm_put(Dst, 10190);
2072 } else { 2076 } else {
2073 dasm_put(Dst, 10108); 2077 dasm_put(Dst, 10196);
2074 } 2078 }
2075 } 2079 }
2076 goto iseqne_fp; 2080 goto iseqne_fp;
2077 case BC_ISEQP: case BC_ISNEP: 2081 case BC_ISEQP: case BC_ISNEP:
2078 vk = op == BC_ISEQP; 2082 vk = op == BC_ISEQP;
2079 dasm_put(Dst, 10702); 2083 dasm_put(Dst, 10790);
2080 if (!LJ_HASFFI) goto iseqne_test; 2084 if (!LJ_HASFFI) goto iseqne_test;
2081 if (vk) { 2085 if (vk) {
2082 dasm_put(Dst, 10716, -BCBIAS_J*4, LJ_TCDATA); 2086 dasm_put(Dst, 10804, -BCBIAS_J*4, LJ_TCDATA);
2083 } else { 2087 } else {
2084 dasm_put(Dst, 10766, LJ_TCDATA, -BCBIAS_J*4); 2088 dasm_put(Dst, 10854, LJ_TCDATA, -BCBIAS_J*4);
2085 } 2089 }
2086 break; 2090 break;
2087 2091
2088 /* -- Unary test and copy ops ------------------------------------------- */ 2092 /* -- Unary test and copy ops ------------------------------------------- */
2089 2093
2090 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2094 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2091 dasm_put(Dst, 10810, LJ_TISTRUECOND); 2095 dasm_put(Dst, 10898, LJ_TISTRUECOND);
2092 if (op == BC_IST || op == BC_ISTC) { 2096 if (op == BC_IST || op == BC_ISTC) {
2093 dasm_put(Dst, 10130); 2097 dasm_put(Dst, 10218);
2094 } else { 2098 } else {
2095 dasm_put(Dst, 10125); 2099 dasm_put(Dst, 10213);
2096 } 2100 }
2097 if (op == BC_ISTC || op == BC_ISFC) { 2101 if (op == BC_ISTC || op == BC_ISFC) {
2098 dasm_put(Dst, 10822); 2102 dasm_put(Dst, 10910);
2099 } 2103 }
2100 dasm_put(Dst, 10135, -BCBIAS_J*4); 2104 dasm_put(Dst, 10223, -BCBIAS_J*4);
2101 break; 2105 break;
2102 2106
2103 /* -- Unary ops --------------------------------------------------------- */ 2107 /* -- Unary ops --------------------------------------------------------- */
2104 2108
2105 case BC_MOV: 2109 case BC_MOV:
2106 dasm_put(Dst, 10833); 2110 dasm_put(Dst, 10921);
2107 break; 2111 break;
2108 case BC_NOT: 2112 case BC_NOT:
2109 dasm_put(Dst, 10861, LJ_TISTRUECOND, LJ_TTRUE); 2113 dasm_put(Dst, 10949, LJ_TISTRUECOND, LJ_TTRUE);
2110 break; 2114 break;
2111 case BC_UNM: 2115 case BC_UNM:
2112 if (LJ_DUALNUM) { 2116 if (LJ_DUALNUM) {
2113 dasm_put(Dst, 10897, LJ_TISNUM, LJ_TISNUM); 2117 dasm_put(Dst, 10985, LJ_TISNUM, LJ_TISNUM);
2114 } else { 2118 } else {
2115 dasm_put(Dst, 10974, LJ_TISNUM); 2119 dasm_put(Dst, 11062, LJ_TISNUM);
2116 } 2120 }
2117 if (sse) { 2121 if (sse) {
2118 dasm_put(Dst, 10985, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2122 dasm_put(Dst, 11073, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2119 } else { 2123 } else {
2120 dasm_put(Dst, 11010); 2124 dasm_put(Dst, 11098);
2121 } 2125 }
2122 if (LJ_DUALNUM) { 2126 if (LJ_DUALNUM) {
2123 dasm_put(Dst, 10406); 2127 dasm_put(Dst, 10494);
2124 } else { 2128 } else {
2125 dasm_put(Dst, 10147); 2129 dasm_put(Dst, 10235);
2126 } 2130 }
2127 break; 2131 break;
2128 case BC_LEN: 2132 case BC_LEN:
2129 dasm_put(Dst, 11019, LJ_TSTR); 2133 dasm_put(Dst, 11107, LJ_TSTR);
2130 if (LJ_DUALNUM) { 2134 if (LJ_DUALNUM) {
2131 dasm_put(Dst, 11033, Dt5(->len), LJ_TISNUM); 2135 dasm_put(Dst, 11121, Dt5(->len), LJ_TISNUM);
2132 } else if (sse) { 2136 } else if (sse) {
2133 dasm_put(Dst, 11047, Dt5(->len)); 2137 dasm_put(Dst, 11135, Dt5(->len));
2134 } else { 2138 } else {
2135 dasm_put(Dst, 11065, Dt5(->len)); 2139 dasm_put(Dst, 11153, Dt5(->len));
2136 } 2140 }
2137 dasm_put(Dst, 11074, LJ_TTAB); 2141 dasm_put(Dst, 11162, LJ_TTAB);
2138 if (LJ_DUALNUM) { 2142 if (LJ_DUALNUM) {
2139 } else if (sse) { 2143 } else if (sse) {
2140 dasm_put(Dst, 11115); 2144 dasm_put(Dst, 11203);
2141 } else { 2145 } else {
2142 } 2146 }
2143 dasm_put(Dst, 11121); 2147 dasm_put(Dst, 11209);
2144 break; 2148 break;
2145 2149
2146 /* -- Binary ops -------------------------------------------------------- */ 2150 /* -- Binary ops -------------------------------------------------------- */
@@ -2148,603 +2152,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2148 2152
2149 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2153 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2150 if (LJ_DUALNUM) { 2154 if (LJ_DUALNUM) {
2151 dasm_put(Dst, 11134); 2155 dasm_put(Dst, 11222);
2152 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2156 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2153 switch (vk) { 2157 switch (vk) {
2154 case 0: 2158 case 0:
2155 dasm_put(Dst, 11142, LJ_TISNUM, LJ_TISNUM); 2159 dasm_put(Dst, 11230, LJ_TISNUM, LJ_TISNUM);
2156 break; 2160 break;
2157 case 1: 2161 case 1:
2158 dasm_put(Dst, 11175, LJ_TISNUM, LJ_TISNUM); 2162 dasm_put(Dst, 11263, LJ_TISNUM, LJ_TISNUM);
2159 break; 2163 break;
2160 default: 2164 default:
2161 dasm_put(Dst, 11208, LJ_TISNUM, LJ_TISNUM); 2165 dasm_put(Dst, 11296, LJ_TISNUM, LJ_TISNUM);
2162 break; 2166 break;
2163 } 2167 }
2164 dasm_put(Dst, 11241, LJ_TISNUM); 2168 dasm_put(Dst, 11329, LJ_TISNUM);
2165 if (vk == 1) { 2169 if (vk == 1) {
2166 dasm_put(Dst, 11043); 2170 dasm_put(Dst, 11131);
2167 } else { 2171 } else {
2168 dasm_put(Dst, 10829); 2172 dasm_put(Dst, 10917);
2169 } 2173 }
2170 dasm_put(Dst, 10147); 2174 dasm_put(Dst, 10235);
2171 } else { 2175 } else {
2172 dasm_put(Dst, 11134); 2176 dasm_put(Dst, 11222);
2173 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2177 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2174 switch (vk) { 2178 switch (vk) {
2175 case 0: 2179 case 0:
2176 dasm_put(Dst, 11247, LJ_TISNUM); 2180 dasm_put(Dst, 11335, LJ_TISNUM);
2177 if (LJ_DUALNUM) { 2181 if (LJ_DUALNUM) {
2178 dasm_put(Dst, 11259, LJ_TISNUM); 2182 dasm_put(Dst, 11347, LJ_TISNUM);
2179 } 2183 }
2180 if (sse) { 2184 if (sse) {
2181 dasm_put(Dst, 11270); 2185 dasm_put(Dst, 11358);
2182 } else { 2186 } else {
2183 dasm_put(Dst, 11284); 2187 dasm_put(Dst, 11372);
2184 } 2188 }
2185 break; 2189 break;
2186 case 1: 2190 case 1:
2187 dasm_put(Dst, 11292, LJ_TISNUM); 2191 dasm_put(Dst, 11380, LJ_TISNUM);
2188 if (LJ_DUALNUM) { 2192 if (LJ_DUALNUM) {
2189 dasm_put(Dst, 11304, LJ_TISNUM); 2193 dasm_put(Dst, 11392, LJ_TISNUM);
2190 } 2194 }
2191 if (sse) { 2195 if (sse) {
2192 dasm_put(Dst, 11315); 2196 dasm_put(Dst, 11403);
2193 } else { 2197 } else {
2194 dasm_put(Dst, 11329); 2198 dasm_put(Dst, 11417);
2195 } 2199 }
2196 break; 2200 break;
2197 default: 2201 default:
2198 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2202 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2199 if (sse) { 2203 if (sse) {
2200 dasm_put(Dst, 11359); 2204 dasm_put(Dst, 11447);
2201 } else { 2205 } else {
2202 dasm_put(Dst, 11373); 2206 dasm_put(Dst, 11461);
2203 } 2207 }
2204 break; 2208 break;
2205 } 2209 }
2206 if (sse) { 2210 if (sse) {
2207 dasm_put(Dst, 11003); 2211 dasm_put(Dst, 11091);
2208 } else { 2212 } else {
2209 dasm_put(Dst, 11015); 2213 dasm_put(Dst, 11103);
2210 } 2214 }
2211 dasm_put(Dst, 10147); 2215 dasm_put(Dst, 10235);
2212 } 2216 }
2213 break; 2217 break;
2214 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2218 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2215 if (LJ_DUALNUM) { 2219 if (LJ_DUALNUM) {
2216 dasm_put(Dst, 11134); 2220 dasm_put(Dst, 11222);
2217 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2221 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2218 switch (vk) { 2222 switch (vk) {
2219 case 0: 2223 case 0:
2220 dasm_put(Dst, 11381, LJ_TISNUM, LJ_TISNUM); 2224 dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
2221 break; 2225 break;
2222 case 1: 2226 case 1:
2223 dasm_put(Dst, 11414, LJ_TISNUM, LJ_TISNUM); 2227 dasm_put(Dst, 11502, LJ_TISNUM, LJ_TISNUM);
2224 break; 2228 break;
2225 default: 2229 default:
2226 dasm_put(Dst, 11447, LJ_TISNUM, LJ_TISNUM); 2230 dasm_put(Dst, 11535, LJ_TISNUM, LJ_TISNUM);
2227 break; 2231 break;
2228 } 2232 }
2229 dasm_put(Dst, 11241, LJ_TISNUM); 2233 dasm_put(Dst, 11329, LJ_TISNUM);
2230 if (vk == 1) { 2234 if (vk == 1) {
2231 dasm_put(Dst, 11043); 2235 dasm_put(Dst, 11131);
2232 } else { 2236 } else {
2233 dasm_put(Dst, 10829); 2237 dasm_put(Dst, 10917);
2234 } 2238 }
2235 dasm_put(Dst, 10147); 2239 dasm_put(Dst, 10235);
2236 } else { 2240 } else {
2237 dasm_put(Dst, 11134); 2241 dasm_put(Dst, 11222);
2238 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2242 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2239 switch (vk) { 2243 switch (vk) {
2240 case 0: 2244 case 0:
2241 dasm_put(Dst, 11247, LJ_TISNUM); 2245 dasm_put(Dst, 11335, LJ_TISNUM);
2242 if (LJ_DUALNUM) { 2246 if (LJ_DUALNUM) {
2243 dasm_put(Dst, 11259, LJ_TISNUM); 2247 dasm_put(Dst, 11347, LJ_TISNUM);
2244 } 2248 }
2245 if (sse) { 2249 if (sse) {
2246 dasm_put(Dst, 11480); 2250 dasm_put(Dst, 11568);
2247 } else { 2251 } else {
2248 dasm_put(Dst, 11494); 2252 dasm_put(Dst, 11582);
2249 } 2253 }
2250 break; 2254 break;
2251 case 1: 2255 case 1:
2252 dasm_put(Dst, 11292, LJ_TISNUM); 2256 dasm_put(Dst, 11380, LJ_TISNUM);
2253 if (LJ_DUALNUM) { 2257 if (LJ_DUALNUM) {
2254 dasm_put(Dst, 11304, LJ_TISNUM); 2258 dasm_put(Dst, 11392, LJ_TISNUM);
2255 } 2259 }
2256 if (sse) { 2260 if (sse) {
2257 dasm_put(Dst, 11502); 2261 dasm_put(Dst, 11590);
2258 } else { 2262 } else {
2259 dasm_put(Dst, 11516); 2263 dasm_put(Dst, 11604);
2260 } 2264 }
2261 break; 2265 break;
2262 default: 2266 default:
2263 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2267 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2264 if (sse) { 2268 if (sse) {
2265 dasm_put(Dst, 11524); 2269 dasm_put(Dst, 11612);
2266 } else { 2270 } else {
2267 dasm_put(Dst, 11538); 2271 dasm_put(Dst, 11626);
2268 } 2272 }
2269 break; 2273 break;
2270 } 2274 }
2271 if (sse) { 2275 if (sse) {
2272 dasm_put(Dst, 11003); 2276 dasm_put(Dst, 11091);
2273 } else { 2277 } else {
2274 dasm_put(Dst, 11015); 2278 dasm_put(Dst, 11103);
2275 } 2279 }
2276 dasm_put(Dst, 10147); 2280 dasm_put(Dst, 10235);
2277 } 2281 }
2278 break; 2282 break;
2279 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2283 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2280 if (LJ_DUALNUM) { 2284 if (LJ_DUALNUM) {
2281 dasm_put(Dst, 11134); 2285 dasm_put(Dst, 11222);
2282 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2286 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2283 switch (vk) { 2287 switch (vk) {
2284 case 0: 2288 case 0:
2285 dasm_put(Dst, 11546, LJ_TISNUM, LJ_TISNUM); 2289 dasm_put(Dst, 11634, LJ_TISNUM, LJ_TISNUM);
2286 break; 2290 break;
2287 case 1: 2291 case 1:
2288 dasm_put(Dst, 11580, LJ_TISNUM, LJ_TISNUM); 2292 dasm_put(Dst, 11668, LJ_TISNUM, LJ_TISNUM);
2289 break; 2293 break;
2290 default: 2294 default:
2291 dasm_put(Dst, 11614, LJ_TISNUM, LJ_TISNUM); 2295 dasm_put(Dst, 11702, LJ_TISNUM, LJ_TISNUM);
2292 break; 2296 break;
2293 } 2297 }
2294 dasm_put(Dst, 11241, LJ_TISNUM); 2298 dasm_put(Dst, 11329, LJ_TISNUM);
2295 if (vk == 1) { 2299 if (vk == 1) {
2296 dasm_put(Dst, 11043); 2300 dasm_put(Dst, 11131);
2297 } else { 2301 } else {
2298 dasm_put(Dst, 10829); 2302 dasm_put(Dst, 10917);
2299 } 2303 }
2300 dasm_put(Dst, 10147); 2304 dasm_put(Dst, 10235);
2301 } else { 2305 } else {
2302 dasm_put(Dst, 11134); 2306 dasm_put(Dst, 11222);
2303 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2307 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2304 switch (vk) { 2308 switch (vk) {
2305 case 0: 2309 case 0:
2306 dasm_put(Dst, 11247, LJ_TISNUM); 2310 dasm_put(Dst, 11335, LJ_TISNUM);
2307 if (LJ_DUALNUM) { 2311 if (LJ_DUALNUM) {
2308 dasm_put(Dst, 11259, LJ_TISNUM); 2312 dasm_put(Dst, 11347, LJ_TISNUM);
2309 } 2313 }
2310 if (sse) { 2314 if (sse) {
2311 dasm_put(Dst, 11648); 2315 dasm_put(Dst, 11736);
2312 } else { 2316 } else {
2313 dasm_put(Dst, 11662); 2317 dasm_put(Dst, 11750);
2314 } 2318 }
2315 break; 2319 break;
2316 case 1: 2320 case 1:
2317 dasm_put(Dst, 11292, LJ_TISNUM); 2321 dasm_put(Dst, 11380, LJ_TISNUM);
2318 if (LJ_DUALNUM) { 2322 if (LJ_DUALNUM) {
2319 dasm_put(Dst, 11304, LJ_TISNUM); 2323 dasm_put(Dst, 11392, LJ_TISNUM);
2320 } 2324 }
2321 if (sse) { 2325 if (sse) {
2322 dasm_put(Dst, 11670); 2326 dasm_put(Dst, 11758);
2323 } else { 2327 } else {
2324 dasm_put(Dst, 11684); 2328 dasm_put(Dst, 11772);
2325 } 2329 }
2326 break; 2330 break;
2327 default: 2331 default:
2328 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2332 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2329 if (sse) { 2333 if (sse) {
2330 dasm_put(Dst, 11692); 2334 dasm_put(Dst, 11780);
2331 } else { 2335 } else {
2332 dasm_put(Dst, 11706); 2336 dasm_put(Dst, 11794);
2333 } 2337 }
2334 break; 2338 break;
2335 } 2339 }
2336 if (sse) { 2340 if (sse) {
2337 dasm_put(Dst, 11003); 2341 dasm_put(Dst, 11091);
2338 } else { 2342 } else {
2339 dasm_put(Dst, 11015); 2343 dasm_put(Dst, 11103);
2340 } 2344 }
2341 dasm_put(Dst, 10147); 2345 dasm_put(Dst, 10235);
2342 } 2346 }
2343 break; 2347 break;
2344 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2348 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2345 dasm_put(Dst, 11134); 2349 dasm_put(Dst, 11222);
2346 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2350 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2347 switch (vk) { 2351 switch (vk) {
2348 case 0: 2352 case 0:
2349 dasm_put(Dst, 11247, LJ_TISNUM); 2353 dasm_put(Dst, 11335, LJ_TISNUM);
2350 if (LJ_DUALNUM) { 2354 if (LJ_DUALNUM) {
2351 dasm_put(Dst, 11259, LJ_TISNUM); 2355 dasm_put(Dst, 11347, LJ_TISNUM);
2352 } 2356 }
2353 if (sse) { 2357 if (sse) {
2354 dasm_put(Dst, 11714); 2358 dasm_put(Dst, 11802);
2355 } else { 2359 } else {
2356 dasm_put(Dst, 11728); 2360 dasm_put(Dst, 11816);
2357 } 2361 }
2358 break; 2362 break;
2359 case 1: 2363 case 1:
2360 dasm_put(Dst, 11292, LJ_TISNUM); 2364 dasm_put(Dst, 11380, LJ_TISNUM);
2361 if (LJ_DUALNUM) { 2365 if (LJ_DUALNUM) {
2362 dasm_put(Dst, 11304, LJ_TISNUM); 2366 dasm_put(Dst, 11392, LJ_TISNUM);
2363 } 2367 }
2364 if (sse) { 2368 if (sse) {
2365 dasm_put(Dst, 11736); 2369 dasm_put(Dst, 11824);
2366 } else { 2370 } else {
2367 dasm_put(Dst, 11750); 2371 dasm_put(Dst, 11838);
2368 } 2372 }
2369 break; 2373 break;
2370 default: 2374 default:
2371 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2375 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2372 if (sse) { 2376 if (sse) {
2373 dasm_put(Dst, 11758); 2377 dasm_put(Dst, 11846);
2374 } else { 2378 } else {
2375 dasm_put(Dst, 11772); 2379 dasm_put(Dst, 11860);
2376 } 2380 }
2377 break; 2381 break;
2378 } 2382 }
2379 if (sse) { 2383 if (sse) {
2380 dasm_put(Dst, 11003); 2384 dasm_put(Dst, 11091);
2381 } else { 2385 } else {
2382 dasm_put(Dst, 11015); 2386 dasm_put(Dst, 11103);
2383 } 2387 }
2384 dasm_put(Dst, 10147); 2388 dasm_put(Dst, 10235);
2385 break; 2389 break;
2386 case BC_MODVN: 2390 case BC_MODVN:
2387 dasm_put(Dst, 11134); 2391 dasm_put(Dst, 11222);
2388 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2392 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2389 switch (vk) { 2393 switch (vk) {
2390 case 0: 2394 case 0:
2391 dasm_put(Dst, 11247, LJ_TISNUM); 2395 dasm_put(Dst, 11335, LJ_TISNUM);
2392 if (LJ_DUALNUM) { 2396 if (LJ_DUALNUM) {
2393 dasm_put(Dst, 11259, LJ_TISNUM); 2397 dasm_put(Dst, 11347, LJ_TISNUM);
2394 } 2398 }
2395 if (sse) { 2399 if (sse) {
2396 dasm_put(Dst, 11780); 2400 dasm_put(Dst, 11868);
2397 } else { 2401 } else {
2398 dasm_put(Dst, 11794); 2402 dasm_put(Dst, 11882);
2399 } 2403 }
2400 break; 2404 break;
2401 case 1: 2405 case 1:
2402 dasm_put(Dst, 11292, LJ_TISNUM); 2406 dasm_put(Dst, 11380, LJ_TISNUM);
2403 if (LJ_DUALNUM) { 2407 if (LJ_DUALNUM) {
2404 dasm_put(Dst, 11304, LJ_TISNUM); 2408 dasm_put(Dst, 11392, LJ_TISNUM);
2405 } 2409 }
2406 if (sse) { 2410 if (sse) {
2407 dasm_put(Dst, 11802); 2411 dasm_put(Dst, 11890);
2408 } else { 2412 } else {
2409 dasm_put(Dst, 11816); 2413 dasm_put(Dst, 11904);
2410 } 2414 }
2411 break; 2415 break;
2412 default: 2416 default:
2413 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2417 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2414 if (sse) { 2418 if (sse) {
2415 dasm_put(Dst, 11824); 2419 dasm_put(Dst, 11912);
2416 } else { 2420 } else {
2417 dasm_put(Dst, 11838); 2421 dasm_put(Dst, 11926);
2418 } 2422 }
2419 break; 2423 break;
2420 } 2424 }
2421 dasm_put(Dst, 11846); 2425 dasm_put(Dst, 11934);
2422 if (sse) { 2426 if (sse) {
2423 dasm_put(Dst, 11003); 2427 dasm_put(Dst, 11091);
2424 } else { 2428 } else {
2425 dasm_put(Dst, 11015); 2429 dasm_put(Dst, 11103);
2426 } 2430 }
2427 dasm_put(Dst, 10147); 2431 dasm_put(Dst, 10235);
2428 break; 2432 break;
2429 case BC_MODNV: case BC_MODVV: 2433 case BC_MODNV: case BC_MODVV:
2430 dasm_put(Dst, 11134); 2434 dasm_put(Dst, 11222);
2431 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2435 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2432 switch (vk) { 2436 switch (vk) {
2433 case 0: 2437 case 0:
2434 dasm_put(Dst, 11247, LJ_TISNUM); 2438 dasm_put(Dst, 11335, LJ_TISNUM);
2435 if (LJ_DUALNUM) { 2439 if (LJ_DUALNUM) {
2436 dasm_put(Dst, 11259, LJ_TISNUM); 2440 dasm_put(Dst, 11347, LJ_TISNUM);
2437 } 2441 }
2438 if (sse) { 2442 if (sse) {
2439 dasm_put(Dst, 11780); 2443 dasm_put(Dst, 11868);
2440 } else { 2444 } else {
2441 dasm_put(Dst, 11794); 2445 dasm_put(Dst, 11882);
2442 } 2446 }
2443 break; 2447 break;
2444 case 1: 2448 case 1:
2445 dasm_put(Dst, 11292, LJ_TISNUM); 2449 dasm_put(Dst, 11380, LJ_TISNUM);
2446 if (LJ_DUALNUM) { 2450 if (LJ_DUALNUM) {
2447 dasm_put(Dst, 11304, LJ_TISNUM); 2451 dasm_put(Dst, 11392, LJ_TISNUM);
2448 } 2452 }
2449 if (sse) { 2453 if (sse) {
2450 dasm_put(Dst, 11802); 2454 dasm_put(Dst, 11890);
2451 } else { 2455 } else {
2452 dasm_put(Dst, 11816); 2456 dasm_put(Dst, 11904);
2453 } 2457 }
2454 break; 2458 break;
2455 default: 2459 default:
2456 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2460 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2457 if (sse) { 2461 if (sse) {
2458 dasm_put(Dst, 11824); 2462 dasm_put(Dst, 11912);
2459 } else { 2463 } else {
2460 dasm_put(Dst, 11838); 2464 dasm_put(Dst, 11926);
2461 } 2465 }
2462 break; 2466 break;
2463 } 2467 }
2464 dasm_put(Dst, 11852); 2468 dasm_put(Dst, 11940);
2465 break; 2469 break;
2466 case BC_POW: 2470 case BC_POW:
2467 dasm_put(Dst, 11134); 2471 dasm_put(Dst, 11222);
2468 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2472 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2469 switch (vk) { 2473 switch (vk) {
2470 case 0: 2474 case 0:
2471 dasm_put(Dst, 11247, LJ_TISNUM); 2475 dasm_put(Dst, 11335, LJ_TISNUM);
2472 if (LJ_DUALNUM) { 2476 if (LJ_DUALNUM) {
2473 dasm_put(Dst, 11259, LJ_TISNUM); 2477 dasm_put(Dst, 11347, LJ_TISNUM);
2474 } 2478 }
2475 if (sse) { 2479 if (sse) {
2476 dasm_put(Dst, 11780); 2480 dasm_put(Dst, 11868);
2477 } else { 2481 } else {
2478 dasm_put(Dst, 11794); 2482 dasm_put(Dst, 11882);
2479 } 2483 }
2480 break; 2484 break;
2481 case 1: 2485 case 1:
2482 dasm_put(Dst, 11292, LJ_TISNUM); 2486 dasm_put(Dst, 11380, LJ_TISNUM);
2483 if (LJ_DUALNUM) { 2487 if (LJ_DUALNUM) {
2484 dasm_put(Dst, 11304, LJ_TISNUM); 2488 dasm_put(Dst, 11392, LJ_TISNUM);
2485 } 2489 }
2486 if (sse) { 2490 if (sse) {
2487 dasm_put(Dst, 11802); 2491 dasm_put(Dst, 11890);
2488 } else { 2492 } else {
2489 dasm_put(Dst, 11816); 2493 dasm_put(Dst, 11904);
2490 } 2494 }
2491 break; 2495 break;
2492 default: 2496 default:
2493 dasm_put(Dst, 11337, LJ_TISNUM, LJ_TISNUM); 2497 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM);
2494 if (sse) { 2498 if (sse) {
2495 dasm_put(Dst, 11824); 2499 dasm_put(Dst, 11912);
2496 } else { 2500 } else {
2497 dasm_put(Dst, 11838); 2501 dasm_put(Dst, 11926);
2498 } 2502 }
2499 break; 2503 break;
2500 } 2504 }
2501 dasm_put(Dst, 11857); 2505 dasm_put(Dst, 11945);
2502 if (sse) { 2506 if (sse) {
2503 dasm_put(Dst, 11003); 2507 dasm_put(Dst, 11091);
2504 } else { 2508 } else {
2505 dasm_put(Dst, 11015); 2509 dasm_put(Dst, 11103);
2506 } 2510 }
2507 dasm_put(Dst, 10147); 2511 dasm_put(Dst, 10235);
2508 break; 2512 break;
2509 2513
2510 case BC_CAT: 2514 case BC_CAT:
2511 dasm_put(Dst, 11861, Dt1(->base), Dt1(->base)); 2515 dasm_put(Dst, 11949, Dt1(->base), Dt1(->base));
2512 break; 2516 break;
2513 2517
2514 /* -- Constant ops ------------------------------------------------------ */ 2518 /* -- Constant ops ------------------------------------------------------ */
2515 2519
2516 case BC_KSTR: 2520 case BC_KSTR:
2517 dasm_put(Dst, 11944, LJ_TSTR); 2521 dasm_put(Dst, 12032, LJ_TSTR);
2518 break; 2522 break;
2519 case BC_KCDATA: 2523 case BC_KCDATA:
2520#if LJ_HASFFI 2524#if LJ_HASFFI
2521 dasm_put(Dst, 11944, LJ_TCDATA); 2525 dasm_put(Dst, 12032, LJ_TCDATA);
2522#endif 2526#endif
2523 break; 2527 break;
2524 case BC_KSHORT: 2528 case BC_KSHORT:
2525 if (LJ_DUALNUM) { 2529 if (LJ_DUALNUM) {
2526 dasm_put(Dst, 11979, LJ_TISNUM); 2530 dasm_put(Dst, 12067, LJ_TISNUM);
2527 } else if (sse) { 2531 } else if (sse) {
2528 dasm_put(Dst, 11991); 2532 dasm_put(Dst, 12079);
2529 } else { 2533 } else {
2530 dasm_put(Dst, 12006); 2534 dasm_put(Dst, 12094);
2531 } 2535 }
2532 dasm_put(Dst, 10147); 2536 dasm_put(Dst, 10235);
2533 break; 2537 break;
2534 case BC_KNUM: 2538 case BC_KNUM:
2535 if (sse) { 2539 if (sse) {
2536 dasm_put(Dst, 12014); 2540 dasm_put(Dst, 12102);
2537 } else { 2541 } else {
2538 dasm_put(Dst, 12027); 2542 dasm_put(Dst, 12115);
2539 } 2543 }
2540 dasm_put(Dst, 10147); 2544 dasm_put(Dst, 10235);
2541 break; 2545 break;
2542 case BC_KPRI: 2546 case BC_KPRI:
2543 dasm_put(Dst, 12034); 2547 dasm_put(Dst, 12122);
2544 break; 2548 break;
2545 case BC_KNIL: 2549 case BC_KNIL:
2546 dasm_put(Dst, 12062, LJ_TNIL); 2550 dasm_put(Dst, 12150, LJ_TNIL);
2547 break; 2551 break;
2548 2552
2549 /* -- Upvalue and function ops ------------------------------------------ */ 2553 /* -- Upvalue and function ops ------------------------------------------ */
2550 2554
2551 case BC_UGET: 2555 case BC_UGET:
2552 dasm_put(Dst, 12109, offsetof(GCfuncL, uvptr), DtA(->v)); 2556 dasm_put(Dst, 12197, offsetof(GCfuncL, uvptr), DtA(->v));
2553 break; 2557 break;
2554 case BC_USETV: 2558 case BC_USETV:
2555#define TV2MARKOFS \ 2559#define TV2MARKOFS \
2556 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2560 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2557 dasm_put(Dst, 12149, 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); 2561 dasm_put(Dst, 12237, 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);
2558 dasm_put(Dst, 12240); 2562 dasm_put(Dst, 12328);
2559 break; 2563 break;
2560#undef TV2MARKOFS 2564#undef TV2MARKOFS
2561 case BC_USETS: 2565 case BC_USETS:
2562 dasm_put(Dst, 12252, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2566 dasm_put(Dst, 12340, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2563 break; 2567 break;
2564 case BC_USETN: 2568 case BC_USETN:
2565 dasm_put(Dst, 12345); 2569 dasm_put(Dst, 12433);
2566 if (sse) { 2570 if (sse) {
2567 dasm_put(Dst, 12350); 2571 dasm_put(Dst, 12438);
2568 } else { 2572 } else {
2569 dasm_put(Dst, 10658); 2573 dasm_put(Dst, 10746);
2570 } 2574 }
2571 dasm_put(Dst, 12357, offsetof(GCfuncL, uvptr), DtA(->v)); 2575 dasm_put(Dst, 12445, offsetof(GCfuncL, uvptr), DtA(->v));
2572 if (sse) { 2576 if (sse) {
2573 dasm_put(Dst, 12366); 2577 dasm_put(Dst, 12454);
2574 } else { 2578 } else {
2575 dasm_put(Dst, 12372); 2579 dasm_put(Dst, 12460);
2576 } 2580 }
2577 dasm_put(Dst, 10147); 2581 dasm_put(Dst, 10235);
2578 break; 2582 break;
2579 case BC_USETP: 2583 case BC_USETP:
2580 dasm_put(Dst, 12375, offsetof(GCfuncL, uvptr), DtA(->v)); 2584 dasm_put(Dst, 12463, offsetof(GCfuncL, uvptr), DtA(->v));
2581 break; 2585 break;
2582 case BC_UCLO: 2586 case BC_UCLO:
2583 dasm_put(Dst, 12414, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2587 dasm_put(Dst, 12502, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2584 break; 2588 break;
2585 2589
2586 case BC_FNEW: 2590 case BC_FNEW:
2587 dasm_put(Dst, 12469, Dt1(->base), Dt1(->base), LJ_TFUNC); 2591 dasm_put(Dst, 12557, Dt1(->base), Dt1(->base), LJ_TFUNC);
2588 break; 2592 break;
2589 2593
2590 /* -- Table ops --------------------------------------------------------- */ 2594 /* -- Table ops --------------------------------------------------------- */
2591 2595
2592 case BC_TNEW: 2596 case BC_TNEW:
2593 dasm_put(Dst, 12535, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2597 dasm_put(Dst, 12623, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2594 break; 2598 break;
2595 case BC_TDUP: 2599 case BC_TDUP:
2596 dasm_put(Dst, 12657, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2600 dasm_put(Dst, 12745, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2597 break; 2601 break;
2598 2602
2599 case BC_GGET: 2603 case BC_GGET:
2600 dasm_put(Dst, 12752, Dt7(->env)); 2604 dasm_put(Dst, 12840, Dt7(->env));
2601 break; 2605 break;
2602 case BC_GSET: 2606 case BC_GSET:
2603 dasm_put(Dst, 12771, Dt7(->env)); 2607 dasm_put(Dst, 12859, Dt7(->env));
2604 break; 2608 break;
2605 2609
2606 case BC_TGETV: 2610 case BC_TGETV:
2607 dasm_put(Dst, 12790, LJ_TTAB); 2611 dasm_put(Dst, 12878, LJ_TTAB);
2608 if (LJ_DUALNUM) { 2612 if (LJ_DUALNUM) {
2609 dasm_put(Dst, 12813, LJ_TISNUM); 2613 dasm_put(Dst, 12901, LJ_TISNUM);
2610 } else { 2614 } else {
2611 dasm_put(Dst, 12827, LJ_TISNUM); 2615 dasm_put(Dst, 12915, LJ_TISNUM);
2612 if (sse) { 2616 if (sse) {
2613 dasm_put(Dst, 12838); 2617 dasm_put(Dst, 12926);
2614 } else { 2618 } else {
2615 } 2619 }
2616 dasm_put(Dst, 12859); 2620 dasm_put(Dst, 12947);
2617 } 2621 }
2618 dasm_put(Dst, 12864, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2622 dasm_put(Dst, 12952, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2619 dasm_put(Dst, 12955, LJ_TSTR); 2623 dasm_put(Dst, 13043, LJ_TSTR);
2620 break; 2624 break;
2621 case BC_TGETS: 2625 case BC_TGETS:
2622 dasm_put(Dst, 12973, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2626 dasm_put(Dst, 13061, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2623 dasm_put(Dst, 13057, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2627 dasm_put(Dst, 13145, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2624 break; 2628 break;
2625 case BC_TGETB: 2629 case BC_TGETB:
2626 dasm_put(Dst, 13128, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2630 dasm_put(Dst, 13216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2627 dasm_put(Dst, 13223, LJ_TNIL); 2631 dasm_put(Dst, 13311, LJ_TNIL);
2628 break; 2632 break;
2629 2633
2630 case BC_TSETV: 2634 case BC_TSETV:
2631 dasm_put(Dst, 13240, LJ_TTAB); 2635 dasm_put(Dst, 13328, LJ_TTAB);
2632 if (LJ_DUALNUM) { 2636 if (LJ_DUALNUM) {
2633 dasm_put(Dst, 12813, LJ_TISNUM); 2637 dasm_put(Dst, 12901, LJ_TISNUM);
2634 } else { 2638 } else {
2635 dasm_put(Dst, 12827, LJ_TISNUM); 2639 dasm_put(Dst, 12915, LJ_TISNUM);
2636 if (sse) { 2640 if (sse) {
2637 dasm_put(Dst, 12838); 2641 dasm_put(Dst, 12926);
2638 } else { 2642 } else {
2639 } 2643 }
2640 dasm_put(Dst, 13263); 2644 dasm_put(Dst, 13351);
2641 } 2645 }
2642 dasm_put(Dst, 13268, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2646 dasm_put(Dst, 13356, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2643 dasm_put(Dst, 13348, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2647 dasm_put(Dst, 13436, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2644 break; 2648 break;
2645 case BC_TSETS: 2649 case BC_TSETS:
2646 dasm_put(Dst, 13405, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2650 dasm_put(Dst, 13493, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2647 dasm_put(Dst, 13481, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2651 dasm_put(Dst, 13569, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2648 dasm_put(Dst, 13569, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2652 dasm_put(Dst, 13657, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2649 break; 2653 break;
2650 case BC_TSETB: 2654 case BC_TSETB:
2651 dasm_put(Dst, 13660, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2655 dasm_put(Dst, 13748, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2652 dasm_put(Dst, 13754, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2656 dasm_put(Dst, 13842, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2653 break; 2657 break;
2654 2658
2655 case BC_TSETM: 2659 case BC_TSETM:
2656 dasm_put(Dst, 13800, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2660 dasm_put(Dst, 13888, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2657 dasm_put(Dst, 13943, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2661 dasm_put(Dst, 14031, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2658 break; 2662 break;
2659 2663
2660 /* -- Calls and vararg handling ----------------------------------------- */ 2664 /* -- Calls and vararg handling ----------------------------------------- */
2661 2665
2662 case BC_CALL: case BC_CALLM: 2666 case BC_CALL: case BC_CALLM:
2663 dasm_put(Dst, 11138); 2667 dasm_put(Dst, 11226);
2664 if (op == BC_CALLM) { 2668 if (op == BC_CALLM) {
2665 dasm_put(Dst, 13961); 2669 dasm_put(Dst, 14049);
2666 } 2670 }
2667 dasm_put(Dst, 13966, LJ_TFUNC, Dt7(->pc)); 2671 dasm_put(Dst, 14054, LJ_TFUNC, Dt7(->pc));
2668 break; 2672 break;
2669 2673
2670 case BC_CALLMT: 2674 case BC_CALLMT:
2671 dasm_put(Dst, 13961); 2675 dasm_put(Dst, 14049);
2672 break; 2676 break;
2673 case BC_CALLT: 2677 case BC_CALLT:
2674 dasm_put(Dst, 14008, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2678 dasm_put(Dst, 14096, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2675 dasm_put(Dst, 14123, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2679 dasm_put(Dst, 14211, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2676 break; 2680 break;
2677 2681
2678 case BC_ITERC: 2682 case BC_ITERC:
2679 dasm_put(Dst, 14194, LJ_TFUNC, 2+1, Dt7(->pc)); 2683 dasm_put(Dst, 14282, LJ_TFUNC, 2+1, Dt7(->pc));
2680 break; 2684 break;
2681 2685
2682 case BC_ITERN: 2686 case BC_ITERN:
2683#if LJ_HASJIT 2687#if LJ_HASJIT
2684#endif 2688#endif
2685 dasm_put(Dst, 14265, Dt6(->asize), Dt6(->array), LJ_TNIL); 2689 dasm_put(Dst, 14353, Dt6(->asize), Dt6(->array), LJ_TNIL);
2686 if (LJ_DUALNUM) { 2690 if (LJ_DUALNUM) {
2687 dasm_put(Dst, 11038, LJ_TISNUM); 2691 dasm_put(Dst, 11126, LJ_TISNUM);
2688 } else if (sse) { 2692 } else if (sse) {
2689 dasm_put(Dst, 11115); 2693 dasm_put(Dst, 11203);
2690 } else { 2694 } else {
2691 dasm_put(Dst, 14311); 2695 dasm_put(Dst, 14399);
2692 } 2696 }
2693 dasm_put(Dst, 14317); 2697 dasm_put(Dst, 14405);
2694 if (LJ_DUALNUM) { 2698 if (LJ_DUALNUM) {
2695 } else if (sse) { 2699 } else if (sse) {
2696 dasm_put(Dst, 11003); 2700 dasm_put(Dst, 11091);
2697 } else { 2701 } else {
2698 dasm_put(Dst, 11015); 2702 dasm_put(Dst, 11103);
2699 } 2703 }
2700 dasm_put(Dst, 14330, -BCBIAS_J*4); 2704 dasm_put(Dst, 14418, -BCBIAS_J*4);
2701 if (!LJ_DUALNUM && !sse) { 2705 if (!LJ_DUALNUM && !sse) {
2702 dasm_put(Dst, 14382); 2706 dasm_put(Dst, 14470);
2703 } 2707 }
2704 dasm_put(Dst, 14388, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2708 dasm_put(Dst, 14476, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2705 break; 2709 break;
2706 2710
2707 case BC_ISNEXT: 2711 case BC_ISNEXT:
2708 dasm_put(Dst, 14460, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2712 dasm_put(Dst, 14548, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2709 break; 2713 break;
2710 2714
2711 case BC_VARG: 2715 case BC_VARG:
2712 dasm_put(Dst, 14560, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2716 dasm_put(Dst, 14648, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2713 dasm_put(Dst, 14720, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2717 dasm_put(Dst, 14808, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2714 break; 2718 break;
2715 2719
2716 /* -- Returns ----------------------------------------------------------- */ 2720 /* -- Returns ----------------------------------------------------------- */
2717 2721
2718 case BC_RETM: 2722 case BC_RETM:
2719 dasm_put(Dst, 13961); 2723 dasm_put(Dst, 14049);
2720 break; 2724 break;
2721 2725
2722 case BC_RET: case BC_RET0: case BC_RET1: 2726 case BC_RET: case BC_RET0: case BC_RET1:
2723 if (op != BC_RET0) { 2727 if (op != BC_RET0) {
2724 dasm_put(Dst, 14786); 2728 dasm_put(Dst, 14874);
2725 } 2729 }
2726 dasm_put(Dst, 14790, FRAME_TYPE); 2730 dasm_put(Dst, 14878, FRAME_TYPE);
2727 switch (op) { 2731 switch (op) {
2728 case BC_RET: 2732 case BC_RET:
2729 dasm_put(Dst, 14809); 2733 dasm_put(Dst, 14897);
2730 break; 2734 break;
2731 case BC_RET1: 2735 case BC_RET1:
2732 dasm_put(Dst, 14861); 2736 dasm_put(Dst, 14949);
2733 /* fallthrough */ 2737 /* fallthrough */
2734 case BC_RET0: 2738 case BC_RET0:
2735 dasm_put(Dst, 14871); 2739 dasm_put(Dst, 14959);
2736 default: 2740 default:
2737 break; 2741 break;
2738 } 2742 }
2739 dasm_put(Dst, 14882, Dt7(->pc), PC2PROTO(k)); 2743 dasm_put(Dst, 14970, Dt7(->pc), PC2PROTO(k));
2740 if (op == BC_RET) { 2744 if (op == BC_RET) {
2741 dasm_put(Dst, 14926, LJ_TNIL); 2745 dasm_put(Dst, 15014, LJ_TNIL);
2742 } else { 2746 } else {
2743 dasm_put(Dst, 14935, LJ_TNIL); 2747 dasm_put(Dst, 15023, LJ_TNIL);
2744 } 2748 }
2745 dasm_put(Dst, 14942, -FRAME_VARG, FRAME_TYPEP); 2749 dasm_put(Dst, 15030, -FRAME_VARG, FRAME_TYPEP);
2746 if (op != BC_RET0) { 2750 if (op != BC_RET0) {
2747 dasm_put(Dst, 14966); 2751 dasm_put(Dst, 15054);
2748 } 2752 }
2749 dasm_put(Dst, 4688); 2753 dasm_put(Dst, 4688);
2750 break; 2754 break;
@@ -2754,7 +2758,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2754 2758
2755 case BC_FORL: 2759 case BC_FORL:
2756#if LJ_HASJIT 2760#if LJ_HASJIT
2757 dasm_put(Dst, 14970, HOTCOUNT_PCMASK, GG_DISP2HOT); 2761 dasm_put(Dst, 15058, HOTCOUNT_PCMASK, GG_DISP2HOT);
2758#endif 2762#endif
2759 break; 2763 break;
2760 2764
@@ -2766,111 +2770,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2766 case BC_FORI: 2770 case BC_FORI:
2767 case BC_IFORL: 2771 case BC_IFORL:
2768 vk = (op == BC_IFORL || op == BC_JFORL); 2772 vk = (op == BC_IFORL || op == BC_JFORL);
2769 dasm_put(Dst, 14991); 2773 dasm_put(Dst, 15079);
2770 if (LJ_DUALNUM) { 2774 if (LJ_DUALNUM) {
2771 dasm_put(Dst, 14995, LJ_TISNUM); 2775 dasm_put(Dst, 15083, LJ_TISNUM);
2772 if (!vk) { 2776 if (!vk) {
2773 dasm_put(Dst, 15005, LJ_TISNUM, LJ_TISNUM); 2777 dasm_put(Dst, 15093, LJ_TISNUM, LJ_TISNUM);
2774 } else { 2778 } else {
2775#ifdef LUA_USE_ASSERT 2779#ifdef LUA_USE_ASSERT
2776 dasm_put(Dst, 15034, LJ_TISNUM, LJ_TISNUM); 2780 dasm_put(Dst, 15122, LJ_TISNUM, LJ_TISNUM);
2777#endif 2781#endif
2778 dasm_put(Dst, 15053); 2782 dasm_put(Dst, 15141);
2779 } 2783 }
2780 dasm_put(Dst, 15072, LJ_TISNUM); 2784 dasm_put(Dst, 15160, LJ_TISNUM);
2781 if (op == BC_FORI) { 2785 if (op == BC_FORI) {
2782 dasm_put(Dst, 15083, -BCBIAS_J*4); 2786 dasm_put(Dst, 15171, -BCBIAS_J*4);
2783 } else if (op == BC_JFORI) { 2787 } else if (op == BC_JFORI) {
2784 dasm_put(Dst, 15097, -BCBIAS_J*4, BC_JLOOP); 2788 dasm_put(Dst, 15185, -BCBIAS_J*4, BC_JLOOP);
2785 } else if (op == BC_IFORL) { 2789 } else if (op == BC_IFORL) {
2786 dasm_put(Dst, 15115, -BCBIAS_J*4); 2790 dasm_put(Dst, 15203, -BCBIAS_J*4);
2787 } else { 2791 } else {
2788 dasm_put(Dst, 15107, BC_JLOOP); 2792 dasm_put(Dst, 15195, BC_JLOOP);
2789 } 2793 }
2790 dasm_put(Dst, 15129); 2794 dasm_put(Dst, 15217);
2791 if (vk) { 2795 if (vk) {
2792 dasm_put(Dst, 15153); 2796 dasm_put(Dst, 15241);
2793 } 2797 }
2794 dasm_put(Dst, 15072, LJ_TISNUM); 2798 dasm_put(Dst, 15160, LJ_TISNUM);
2795 if (op == BC_FORI) { 2799 if (op == BC_FORI) {
2796 dasm_put(Dst, 15162); 2800 dasm_put(Dst, 15250);
2797 } else if (op == BC_JFORI) { 2801 } else if (op == BC_JFORI) {
2798 dasm_put(Dst, 15167, -BCBIAS_J*4, BC_JLOOP); 2802 dasm_put(Dst, 15255, -BCBIAS_J*4, BC_JLOOP);
2799 } else if (op == BC_IFORL) { 2803 } else if (op == BC_IFORL) {
2800 dasm_put(Dst, 15181); 2804 dasm_put(Dst, 15269);
2801 } else { 2805 } else {
2802 dasm_put(Dst, 15177, BC_JLOOP); 2806 dasm_put(Dst, 15265, BC_JLOOP);
2803 } 2807 }
2804 dasm_put(Dst, 15186); 2808 dasm_put(Dst, 15274);
2805 } else if (!vk) { 2809 } else if (!vk) {
2806 dasm_put(Dst, 15193, LJ_TISNUM); 2810 dasm_put(Dst, 15281, LJ_TISNUM);
2807 } 2811 }
2808 if (!vk) { 2812 if (!vk) {
2809 dasm_put(Dst, 15199, LJ_TISNUM); 2813 dasm_put(Dst, 15287, LJ_TISNUM);
2810 } else { 2814 } else {
2811#ifdef LUA_USE_ASSERT 2815#ifdef LUA_USE_ASSERT
2812 dasm_put(Dst, 15213, LJ_TISNUM, LJ_TISNUM); 2816 dasm_put(Dst, 15301, LJ_TISNUM, LJ_TISNUM);
2813#endif 2817#endif
2814 } 2818 }
2815 dasm_put(Dst, 15232); 2819 dasm_put(Dst, 15320);
2816 if (!vk) { 2820 if (!vk) {
2817 dasm_put(Dst, 15236, LJ_TISNUM); 2821 dasm_put(Dst, 15324, LJ_TISNUM);
2818 } 2822 }
2819 if (sse) { 2823 if (sse) {
2820 dasm_put(Dst, 15245); 2824 dasm_put(Dst, 15333);
2821 if (vk) { 2825 if (vk) {
2822 dasm_put(Dst, 15257); 2826 dasm_put(Dst, 15345);
2823 } else { 2827 } else {
2824 dasm_put(Dst, 15276); 2828 dasm_put(Dst, 15364);
2825 } 2829 }
2826 dasm_put(Dst, 15281); 2830 dasm_put(Dst, 15369);
2827 } else { 2831 } else {
2828 dasm_put(Dst, 15294); 2832 dasm_put(Dst, 15382);
2829 if (vk) { 2833 if (vk) {
2830 dasm_put(Dst, 15300); 2834 dasm_put(Dst, 15388);
2831 } else { 2835 } else {
2832 dasm_put(Dst, 15316); 2836 dasm_put(Dst, 15404);
2833 } 2837 }
2834 dasm_put(Dst, 15324); 2838 dasm_put(Dst, 15412);
2835 if (cmov) { 2839 if (cmov) {
2836 dasm_put(Dst, 10102); 2840 dasm_put(Dst, 10190);
2837 } else { 2841 } else {
2838 dasm_put(Dst, 10108); 2842 dasm_put(Dst, 10196);
2839 } 2843 }
2840 if (!cmov) { 2844 if (!cmov) {
2841 dasm_put(Dst, 15329); 2845 dasm_put(Dst, 15417);
2842 } 2846 }
2843 } 2847 }
2844 if (op == BC_FORI) { 2848 if (op == BC_FORI) {
2845 if (LJ_DUALNUM) { 2849 if (LJ_DUALNUM) {
2846 dasm_put(Dst, 15335); 2850 dasm_put(Dst, 15423);
2847 } else { 2851 } else {
2848 dasm_put(Dst, 15340, -BCBIAS_J*4); 2852 dasm_put(Dst, 15428, -BCBIAS_J*4);
2849 } 2853 }
2850 } else if (op == BC_JFORI) { 2854 } else if (op == BC_JFORI) {
2851 dasm_put(Dst, 15350, -BCBIAS_J*4, BC_JLOOP); 2855 dasm_put(Dst, 15438, -BCBIAS_J*4, BC_JLOOP);
2852 } else if (op == BC_IFORL) { 2856 } else if (op == BC_IFORL) {
2853 if (LJ_DUALNUM) { 2857 if (LJ_DUALNUM) {
2854 dasm_put(Dst, 15364); 2858 dasm_put(Dst, 15452);
2855 } else { 2859 } else {
2856 dasm_put(Dst, 15369, -BCBIAS_J*4); 2860 dasm_put(Dst, 15457, -BCBIAS_J*4);
2857 } 2861 }
2858 } else { 2862 } else {
2859 dasm_put(Dst, 15360, BC_JLOOP); 2863 dasm_put(Dst, 15448, BC_JLOOP);
2860 } 2864 }
2861 if (LJ_DUALNUM) { 2865 if (LJ_DUALNUM) {
2862 dasm_put(Dst, 10031); 2866 dasm_put(Dst, 10119);
2863 } else { 2867 } else {
2864 dasm_put(Dst, 10788); 2868 dasm_put(Dst, 10876);
2865 } 2869 }
2866 if (sse) { 2870 if (sse) {
2867 dasm_put(Dst, 15379); 2871 dasm_put(Dst, 15467);
2868 } 2872 }
2869 break; 2873 break;
2870 2874
2871 case BC_ITERL: 2875 case BC_ITERL:
2872#if LJ_HASJIT 2876#if LJ_HASJIT
2873 dasm_put(Dst, 14970, HOTCOUNT_PCMASK, GG_DISP2HOT); 2877 dasm_put(Dst, 15058, HOTCOUNT_PCMASK, GG_DISP2HOT);
2874#endif 2878#endif
2875 break; 2879 break;
2876 2880
@@ -2879,33 +2883,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2879 break; 2883 break;
2880#endif 2884#endif
2881 case BC_IITERL: 2885 case BC_IITERL:
2882 dasm_put(Dst, 15390, LJ_TNIL); 2886 dasm_put(Dst, 15478, LJ_TNIL);
2883 if (op == BC_JITERL) { 2887 if (op == BC_JITERL) {
2884 dasm_put(Dst, 15405, BC_JLOOP); 2888 dasm_put(Dst, 15493, BC_JLOOP);
2885 } else { 2889 } else {
2886 dasm_put(Dst, 15419, -BCBIAS_J*4); 2890 dasm_put(Dst, 15507, -BCBIAS_J*4);
2887 } 2891 }
2888 dasm_put(Dst, 10145); 2892 dasm_put(Dst, 10233);
2889 break; 2893 break;
2890 2894
2891 case BC_LOOP: 2895 case BC_LOOP:
2892#if LJ_HASJIT 2896#if LJ_HASJIT
2893 dasm_put(Dst, 14970, HOTCOUNT_PCMASK, GG_DISP2HOT); 2897 dasm_put(Dst, 15058, HOTCOUNT_PCMASK, GG_DISP2HOT);
2894#endif 2898#endif
2895 break; 2899 break;
2896 2900
2897 case BC_ILOOP: 2901 case BC_ILOOP:
2898 dasm_put(Dst, 10147); 2902 dasm_put(Dst, 10235);
2899 break; 2903 break;
2900 2904
2901 case BC_JLOOP: 2905 case BC_JLOOP:
2902#if LJ_HASJIT 2906#if LJ_HASJIT
2903 dasm_put(Dst, 15435, 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); 2907 dasm_put(Dst, 15523, 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);
2904#endif 2908#endif
2905 break; 2909 break;
2906 2910
2907 case BC_JMP: 2911 case BC_JMP:
2908 dasm_put(Dst, 15544, -BCBIAS_J*4); 2912 dasm_put(Dst, 15632, -BCBIAS_J*4);
2909 break; 2913 break;
2910 2914
2911 /* -- Function headers -------------------------------------------------- */ 2915 /* -- Function headers -------------------------------------------------- */
@@ -2919,7 +2923,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2919 2923
2920 case BC_FUNCF: 2924 case BC_FUNCF:
2921#if LJ_HASJIT 2925#if LJ_HASJIT
2922 dasm_put(Dst, 15569, HOTCOUNT_PCMASK, GG_DISP2HOT); 2926 dasm_put(Dst, 15657, HOTCOUNT_PCMASK, GG_DISP2HOT);
2923#endif 2927#endif
2924 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2928 case BC_FUNCV: /* NYI: compiled vararg functions. */
2925 break; 2929 break;
@@ -2929,47 +2933,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2929 break; 2933 break;
2930#endif 2934#endif
2931 case BC_IFUNCF: 2935 case BC_IFUNCF:
2932 dasm_put(Dst, 15590, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2936 dasm_put(Dst, 15678, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2933 if (op == BC_JFUNCF) { 2937 if (op == BC_JFUNCF) {
2934 dasm_put(Dst, 15620, BC_JLOOP); 2938 dasm_put(Dst, 15708, BC_JLOOP);
2935 } else { 2939 } else {
2936 dasm_put(Dst, 10147); 2940 dasm_put(Dst, 10235);
2937 } 2941 }
2938 dasm_put(Dst, 15629, LJ_TNIL); 2942 dasm_put(Dst, 15717, LJ_TNIL);
2939 break; 2943 break;
2940 2944
2941 case BC_JFUNCV: 2945 case BC_JFUNCV:
2942#if !LJ_HASJIT 2946#if !LJ_HASJIT
2943 break; 2947 break;
2944#endif 2948#endif
2945 dasm_put(Dst, 9292); 2949 dasm_put(Dst, 9380);
2946 break; /* NYI: compiled vararg functions. */ 2950 break; /* NYI: compiled vararg functions. */
2947 2951
2948 case BC_IFUNCV: 2952 case BC_IFUNCV:
2949 dasm_put(Dst, 15651, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2953 dasm_put(Dst, 15739, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2950 if (op == BC_JFUNCV) { 2954 if (op == BC_JFUNCV) {
2951 dasm_put(Dst, 15620, BC_JLOOP); 2955 dasm_put(Dst, 15708, BC_JLOOP);
2952 } else { 2956 } else {
2953 dasm_put(Dst, 15742, -4+PC2PROTO(k)); 2957 dasm_put(Dst, 15830, -4+PC2PROTO(k));
2954 } 2958 }
2955 dasm_put(Dst, 15765, LJ_TNIL); 2959 dasm_put(Dst, 15853, LJ_TNIL);
2956 break; 2960 break;
2957 2961
2958 case BC_FUNCC: 2962 case BC_FUNCC:
2959 case BC_FUNCCW: 2963 case BC_FUNCCW:
2960 dasm_put(Dst, 15787, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2964 dasm_put(Dst, 15875, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2961 if (op == BC_FUNCC) { 2965 if (op == BC_FUNCC) {
2962 dasm_put(Dst, 2352); 2966 dasm_put(Dst, 2352);
2963 } else { 2967 } else {
2964 dasm_put(Dst, 15817); 2968 dasm_put(Dst, 15905);
2965 } 2969 }
2966 dasm_put(Dst, 15825, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2970 dasm_put(Dst, 15913, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2967 if (op == BC_FUNCC) { 2971 if (op == BC_FUNCC) {
2968 dasm_put(Dst, 15834); 2972 dasm_put(Dst, 15922);
2969 } else { 2973 } else {
2970 dasm_put(Dst, 15838, DISPATCH_GL(wrapf)); 2974 dasm_put(Dst, 15926, DISPATCH_GL(wrapf));
2971 } 2975 }
2972 dasm_put(Dst, 15843, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2976 dasm_put(Dst, 15931, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2973 break; 2977 break;
2974 2978
2975 /* ---------------------------------------------------------------------- */ 2979 /* ---------------------------------------------------------------------- */
@@ -2997,7 +3001,7 @@ static int build_backend(BuildCtx *ctx)
2997 3001
2998 build_subroutines(ctx, cmov, sse); 3002 build_subroutines(ctx, cmov, sse);
2999 3003
3000 dasm_put(Dst, 15868); 3004 dasm_put(Dst, 15956);
3001 for (op = 0; op < BC__MAX; op++) 3005 for (op = 0; op < BC__MAX; op++)
3002 build_ins(ctx, (BCOp)op, op, cmov, sse); 3006 build_ins(ctx, (BCOp)op, op, cmov, sse);
3003 3007
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 67282163..b8be39fb 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -2551,7 +2551,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
2551 |.define TOBIT_BIAS, 0x59c00000 // 2^52 + 2^51 (float, not double!). 2551 |.define TOBIT_BIAS, 0x59c00000 // 2^52 + 2^51 (float, not double!).
2552 | 2552 |
2553 |.macro .ffunc_bit, name, kind 2553 |.macro .ffunc_bit, name, kind
2554 | .ffunc name 2554 | .ffunc_1 name
2555 |.if kind == 2 2555 |.if kind == 2
2556 ||if (sse) { 2556 ||if (sse) {
2557 | sseconst_tobit xmm1, RBa 2557 | sseconst_tobit xmm1, RBa
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 42a0b75b..1493381b 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[16970] = { 15static const unsigned char build_actionlist[17058] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -332,505 +332,510 @@ static const unsigned char build_actionlist[16970] = {
332 15,137,244,1,137,252,240,139,116,36,20,252,233,244,121,248,130,129,252,248, 332 15,137,244,1,137,252,240,139,116,36,20,252,233,244,121,248,130,129,252,248,
333 239,15,130,244,61,129,122,253,4,239,15,133,244,61,137,213,139,10,232,251, 333 239,15,130,244,61,129,122,253,4,239,15,133,244,61,137,213,139,10,232,251,
334 1,20,137,252,234,255,137,197,252,233,244,69,255,252,242,15,42,192,252,233, 334 1,20,137,252,234,255,137,197,252,233,244,69,255,252,242,15,42,192,252,233,
335 244,70,255,137,4,36,219,4,36,252,233,244,71,255,248,131,129,122,253,4,239, 335 244,70,255,137,4,36,219,4,36,252,233,244,71,255,248,131,129,252,248,239,15,
336 255,15,133,244,247,139,42,252,233,244,87,248,1,15,135,244,61,255,252,242, 336 130,244,61,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,87,248,
337 15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193, 337 1,15,135,244,61,255,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,
338 102,15,126,197,255,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,255, 338 201,81,252,242,15,88,193,102,15,126,197,255,221,2,199,68,36,16,0,0,192,89,
339 139,44,36,255,252,233,244,87,255,248,132,255,189,0,0,56,67,102,15,110,205, 339 216,68,36,16,221,28,36,255,139,44,36,255,252,233,244,87,255,248,132,129,252,
340 102,15,112,201,81,255,199,68,36,16,0,0,192,89,255,15,133,244,247,139,42,252, 340 248,239,15,130,244,61,255,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
341 233,244,248,248,1,15,135,244,61,255,252,242,15,16,2,252,242,15,88,193,102, 341 255,199,68,36,16,0,0,192,89,255,15,133,244,247,139,42,252,233,244,248,248,
342 15,126,197,255,221,2,216,68,36,16,221,28,36,139,44,36,255,248,2,137,68,36, 342 1,15,135,244,61,255,252,242,15,16,2,252,242,15,88,193,102,15,126,197,255,
343 20,141,68,194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15, 343 221,2,216,68,36,16,221,28,36,139,44,36,255,248,2,137,68,36,20,141,68,194,
344 133,244,248,35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131, 344 252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248,35,
345 244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221, 345 40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255,252,
346 0,216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,1,248,134,255, 346 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16,
347 15,133,244,248,11,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,252, 347 221,28,36,35,44,36,255,131,232,8,252,233,244,1,248,134,129,252,248,239,15,
348 242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16, 348 130,244,61,255,15,133,244,248,11,40,131,232,8,252,233,244,1,248,2,15,135,
349 221,28,36,11,44,36,255,131,232,8,252,233,244,1,248,135,255,15,133,244,248, 349 244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,
350 51,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252, 350 0,216,68,36,16,221,28,36,11,44,36,255,131,232,8,252,233,244,1,248,135,129,
351 242,15,88,193,102,15,126,193,49,205,255,221,0,216,68,36,16,221,28,36,51,44, 351 252,248,239,15,130,244,61,255,15,133,244,248,51,40,131,232,8,252,233,244,
352 36,255,131,232,8,252,233,244,1,248,136,129,122,253,4,239,255,221,2,199,68, 352 1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,
353 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,131,232,8,252,233,244,
354 1,248,136,129,252,248,239,15,130,244,61,129,122,253,4,239,255,221,2,199,68,
353 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,248,2,15,205,252,233, 355 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,248,2,15,205,252,233,
354 244,87,248,137,129,122,253,4,239,255,248,2,252,247,213,255,248,87,252,242, 356 244,87,248,137,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2,
355 15,42,197,252,233,244,70,255,248,87,137,44,36,219,4,36,252,233,244,71,255, 357 252,247,213,255,248,87,252,242,15,42,197,252,233,244,70,255,248,87,137,44,
356 248,133,139,68,36,20,252,233,244,61,255,248,138,129,122,253,4,239,255,248, 358 36,219,4,36,252,233,244,71,255,248,133,139,68,36,20,252,233,244,61,255,248,
357 2,129,122,253,12,239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15, 359 138,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2,129,122,253,
358 130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244, 360 12,239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129,
359 61,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15, 361 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,
360 112,210,81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126, 362 2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,
361 201,255,248,138,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244, 363 15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,248,138,129,
362 61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89, 364 252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,
363 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255, 365 239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,
364 211,229,252,233,244,87,255,248,139,129,122,253,4,239,255,248,139,129,252, 366 92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,229,252,233,
365 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239, 367 244,87,255,248,139,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,
366 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110, 368 139,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,
367 213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,
368 102,15,126,201,255,248,139,129,252,248,239,15,130,244,61,129,122,253,4,239,
369 15,131,244,61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,199,68,36,16,
370 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,
371 44,36,255,211,252,237,252,233,244,87,255,248,140,129,122,253,4,239,255,248,
372 140,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,
373 253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67, 369 253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,
374 102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102, 370 102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102,
375 15,126,197,102,15,126,201,255,248,140,129,252,248,239,15,130,244,61,129,122, 371 15,126,197,102,15,126,201,255,248,139,129,252,248,239,15,130,244,61,129,122,
376 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,199, 372 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,199,
377 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76, 373 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,
378 36,8,139,44,36,255,211,252,253,252,233,244,87,255,248,141,129,122,253,4,239, 374 36,8,139,44,36,255,211,252,237,252,233,244,87,255,248,140,129,252,248,239,
375 15,130,244,61,129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,
376 129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,
377 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
378 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,248,
379 140,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,
380 253,12,239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,
381 16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,252,253,
382 252,233,244,87,255,248,141,129,252,248,239,15,130,244,61,129,122,253,4,239,
379 255,248,141,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61, 383 255,248,141,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,
380 129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0, 384 129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0,
381 0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88, 385 0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,
382 202,102,15,126,197,102,15,126,201,255,248,141,129,252,248,239,15,130,244, 386 202,102,15,126,197,102,15,126,201,255,248,141,129,252,248,239,15,130,244,
383 61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,2, 387 61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,2,
384 221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221, 388 221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,
385 28,36,139,76,36,8,139,44,36,255,211,197,252,233,244,87,255,248,142,129,122, 389 28,36,139,76,36,8,139,44,36,255,211,197,252,233,244,87,255,248,142,129,252,
386 253,4,239,255,248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,15, 390 248,239,15,130,244,61,129,122,253,4,239,255,248,142,129,252,248,239,15,130,
387 131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16, 391 244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,
388 74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252, 392 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
389 242,15,88,202,102,15,126,197,102,15,126,201,255,248,142,129,252,248,239,15, 393 81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,
390 130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244, 394 248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,
391 61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68, 395 122,253,12,239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,
392 36,16,221,28,36,139,76,36,8,139,44,36,255,211,205,252,233,244,87,248,125, 396 36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,205,
393 184,237,252,233,244,61,248,127,184,237,248,61,139,108,36,48,139,114,252,252, 397 252,233,244,87,248,125,184,237,252,233,244,61,248,127,184,237,248,61,139,
394 137,116,36,24,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139, 398 108,36,48,139,114,252,252,137,116,36,24,137,149,233,141,68,194,252,248,141,
395 66,252,248,59,141,233,15,135,244,251,137,44,36,252,255,144,233,139,149,233, 399 136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,44,36,252,
396 133,192,15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3,133,192, 400 255,144,233,139,149,233,133,192,15,143,244,76,248,1,255,139,141,233,41,209,
397 141,65,1,139,106,252,248,15,133,244,32,139,181,233,139,14,15,182,252,233, 401 193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,32,139,181,233,
398 15,182,205,131,198,4,252,255,36,171,248,32,137,209,252,247,198,237,15,133, 402 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,32,137,209,
399 244,249,15,182,110,252,253,252,247,213,141,20,252,234,252,233,244,28,248, 403 252,247,198,237,15,133,244,249,15,182,110,252,253,252,247,213,141,20,252,
400 3,137,252,245,131,229,252,248,41,252,234,252,233,244,28,248,5,186,237,137, 404 234,252,233,244,28,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244,
401 252,233,232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93,137,108,36, 405 28,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1,
402 16,139,108,36,48,137,116,36,24,137,149,233,255,141,68,194,252,248,137,252, 406 248,73,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149,233,255,141,68,
403 233,137,133,233,232,251,1,21,139,149,233,139,133,233,41,208,193,232,3,131, 407 194,252,248,137,252,233,137,133,233,232,251,1,21,139,149,233,139,133,233,
404 192,1,139,108,36,16,85,195,248,143,255,15,182,131,233,168,235,15,133,244, 408 41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,143,255,15,182,131,233,
405 251,168,235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233, 409 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,252,
406 244,247,255,248,144,15,182,131,233,168,235,15,133,244,251,252,233,244,247, 410 255,139,233,252,233,244,247,255,248,144,15,182,131,233,168,235,15,133,244,
407 248,145,15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252, 411 251,252,233,244,247,248,145,15,182,131,233,168,235,15,133,244,251,168,235,
408 255,139,233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,48, 412 15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,248,
409 137,149,233,137,252,242,137,252,233,232,251,1,22,248,3,139,149,233,248,4, 413 1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,232,251,1,22,248,
410 15,182,78,252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164, 414 3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183,70,
411 253,171,233,248,146,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,147, 415 252,254,252,255,164,253,171,233,248,146,131,198,4,139,77,232,137,76,36,20,
412 255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,48,137, 416 252,233,244,4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,
413 149,233,137,133,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232, 417 4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137,171,
414 251,1,23,252,233,244,3,255,248,148,137,116,36,24,255,248,149,255,137,116, 418 233,137,116,36,24,232,251,1,23,252,233,244,3,255,248,148,137,116,36,24,255,
415 36,24,131,206,1,248,1,255,141,68,194,252,248,139,108,36,48,137,149,233,137, 419 248,149,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139,108,
416 133,233,137,252,242,137,252,233,232,251,1,24,199,68,36,24,0,0,0,0,255,131, 420 36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,24,199,68,
417 230,252,254,255,139,149,233,137,193,139,133,233,41,208,137,205,15,182,78, 421 36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233,41,
418 252,253,193,232,3,131,192,1,252,255,229,248,150,255,85,141,108,36,12,85,83, 422 208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,150,255,
419 82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,137,117,252,248, 423 85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,
420 139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,129,252,236, 424 252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,
421 239,252,242,15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252, 425 137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208,252,
422 242,15,17,101,192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17, 426 242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242,15,17,
423 77,168,252,242,15,17,69,160,139,171,233,139,147,233,137,171,233,199,131,233, 427 85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,233,
424 0,0,0,0,137,149,233,141,84,36,16,141,139,233,232,251,1,25,139,141,233,129, 428 137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233,232,
425 225,239,137,204,137,169,233,139,149,233,139,177,233,255,248,151,255,133,192, 429 251,1,25,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139,177,
426 15,136,244,249,137,68,36,20,139,122,252,248,139,191,233,139,191,233,199,131, 430 233,255,248,151,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248,139,
427 233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232, 431 191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,
428 16,129,252,253,239,15,130,244,248,139,68,36,20,248,2,252,255,36,171,248,3, 432 15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68,36,
429 252,247,216,137,252,233,137,194,232,251,1,26,255,248,89,255,217,124,36,4, 433 20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251,1,26,
430 137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68, 434 255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,
431 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,152,102, 435 252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
432 15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216, 436 68,36,8,195,255,248,152,102,15,252,239,210,102,15,118,210,102,15,115,210,
433 102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
434 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,
435 63,102,15,110,208,102,15,112,210,81,252,242,15,194,193,1,102,15,84,194,252,
436 242,15,92,200,15,40,193,248,1,195,248,91,255,217,124,36,4,137,68,36,8,102,
437 184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,
438 6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,153,102,15,252,239,210,
439 102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,
440 81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,
441 242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,
442 110,208,102,15,112,210,81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,
443 200,15,40,193,248,1,195,248,112,255,217,124,36,4,137,68,36,8,102,184,0,12,
444 102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
445 68,36,8,195,255,248,154,102,15,252,239,210,102,15,118,210,102,15,115,210,
446 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202, 437 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,
447 102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252, 438 102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,
448 242,15,92,203,184,0,0,252,240,63,102,15,110,216,102,15,112,219,81,252,242, 439 203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,
449 15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248, 440 242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,
450 1,195,248,155,255,15,40,232,252,242,15,94,193,102,15,252,239,210,102,15,118, 441 91,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,
451 210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40, 442 252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,
452 224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88, 443 195,255,248,153,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,
453 227,252,242,15,92,227,102,15,86,226,184,0,0,252,240,63,102,15,110,208,102, 444 0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,
454 15,112,210,81,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40, 445 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
455 197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40, 446 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,
456 197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0, 447 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,112,255,
457 4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 448 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,
458 252,252,217,108,36,4,222,201,222,252,233,195,255,248,96,217,252,234,222,201, 449 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,154,102,15,252,
459 248,156,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4, 450 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,
460 0,0,128,252,255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217, 451 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
461 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 452 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,
462 217,252,238,195,255,248,115,219,84,36,4,219,68,36,4,255,223,252,233,255,221, 453 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,
463 252,233,223,224,158,255,15,133,244,254,15,138,244,255,221,216,139,68,36,4, 454 92,200,102,15,86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,15,
464 131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209, 455 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
465 232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216,200,209, 456 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,
466 232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,4,255,222,201,248, 457 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,
467 5,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252,247,216,131, 458 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102,
468 252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,195,248,8,217, 459 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,
469 84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,61,0,0,0,252,255,15,132,244, 460 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,
470 248,139,68,36,8,209,224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,217, 461 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
471 252,241,252,233,244,157,248,9,255,217,232,255,223,252,234,255,221,252,234, 462 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,
472 223,224,158,255,15,132,244,247,217,201,248,1,221,216,195,248,2,217,225,217, 463 255,248,96,217,252,234,222,201,248,156,217,84,36,4,129,124,36,4,0,0,128,127,
473 232,255,15,132,244,249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208, 464 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,157,217,192,
474 209,200,51,68,36,4,15,137,244,249,217,201,248,3,221,217,217,225,195,248,4, 465 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
475 131,124,36,4,0,15,141,244,3,221,216,221,216,133,192,15,132,244,251,217,252, 466 217,248,1,195,248,2,221,216,217,252,238,195,255,248,115,219,84,36,4,219,68,
476 238,195,248,5,199,68,36,4,0,0,128,127,217,68,36,4,195,255,248,115,255,248, 467 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,
477 158,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138, 468 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,
478 244,255,248,159,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244, 469 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
479 248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 470 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,
480 15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255, 471 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,
481 252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15, 472 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,
482 132,244,5,15,130,244,253,252,247,216,232,244,1,184,0,0,252,240,63,102,15, 473 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,
483 110,200,102,15,112,201,81,252,242,15,94,200,15,40,193,195,248,7,184,0,0,252, 474 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,
484 240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12, 475 0,252,255,15,132,244,250,217,252,241,252,233,244,157,248,9,255,217,232,255,
485 252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224, 476 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,
486 61,0,0,224,252,255,15,132,244,248,248,1,131,124,36,4,0,15,133,244,247,255, 477 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,
487 139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248, 478 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,
488 1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217, 479 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,
489 201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15, 480 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,
490 16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81, 481 68,36,4,195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208,102,
491 102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210, 482 15,46,202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142,244,
492 102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110, 483 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,
493 208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192, 484 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,
494 136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110, 485 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,
495 192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87, 486 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216,232,
496 192,195,248,5,102,15,80,193,133,192,15,132,244,3,255,15,87,192,195,248,160, 487 244,1,184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,
497 255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135, 488 15,40,193,195,248,7,184,0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,
498 244,248,232,244,89,252,233,244,253,248,1,232,244,91,252,233,244,253,248,2, 489 248,8,252,242,15,17,76,36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,
499 131,252,248,3,15,132,244,247,15,135,244,248,232,244,112,255,252,233,244,253, 490 244,247,139,68,36,16,209,224,61,0,0,224,252,255,15,132,244,248,248,1,131,
500 248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2, 491 124,36,4,0,15,133,244,247,255,139,68,36,8,209,224,15,132,244,250,61,0,0,224,
501 221,68,36,4,131,252,248,5,15,130,244,96,15,132,244,156,248,2,131,252,248, 492 252,255,15,132,244,251,248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,
502 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1, 493 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
503 217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135, 494 217,221,92,36,4,252,242,15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,
504 244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248, 495 110,208,102,15,112,210,81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,
505 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217, 496 248,2,102,15,252,239,210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,
506 252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244, 497 0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,
507 89,15,132,244,91,131,252,248,3,15,130,244,112,15,135,244,248,217,252,250, 498 1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,
508 195,248,2,131,252,248,5,15,130,244,96,15,132,244,156,131,252,248,7,15,132, 499 0,0,252,240,127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,
509 244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232, 500 133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,
510 217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244, 501 3,255,15,87,192,195,248,160,255,139,68,36,12,252,242,15,16,68,36,4,131,252,
511 248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252, 502 248,1,15,132,244,247,15,135,244,248,232,244,89,252,233,244,253,248,1,232,
512 248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221, 503 244,91,252,233,244,253,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
513 216,195,255,248,9,204,255,248,161,255,139,68,36,20,252,242,15,16,68,36,4, 504 232,244,112,255,252,233,244,253,248,1,252,242,15,81,192,248,7,252,242,15,
514 252,242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242, 505 17,68,36,4,221,68,36,4,195,248,2,221,68,36,4,131,252,248,5,15,130,244,96,
515 15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92, 506 15,132,244,156,248,2,131,252,248,7,15,132,244,247,15,135,244,248,217,252,
516 193,252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242, 507 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,
517 15,89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252, 508 252,248,9,15,132,244,247,15,135,244,248,255,217,252,236,217,201,217,252,241,
518 248,5,15,132,244,247,255,15,135,244,248,232,244,155,252,233,244,7,248,1,90, 509 195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,
519 232,244,115,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244, 510 255,217,252,255,195,248,1,217,252,242,221,216,195,255,139,68,36,12,221,68,
520 248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244, 511 36,4,131,252,248,1,15,130,244,89,15,132,244,91,131,252,248,3,15,130,244,112,
521 7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252, 512 15,135,244,248,217,252,250,195,248,2,131,252,248,5,15,130,244,96,15,132,244,
522 233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12, 513 156,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
523 15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248, 514 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,
524 2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233, 515 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
525 244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221, 516 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,
526 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193, 517 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,139,68,36,
527 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 518 20,252,242,15,16,68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244,
528 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,155,15,132, 519 247,15,135,244,248,252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,
529 244,115,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195, 520 4,195,248,1,252,242,15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244,
530 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248, 521 247,15,135,244,248,252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193,
531 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 522 252,233,244,7,248,2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244,
532 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 523 155,252,233,244,7,248,1,90,232,244,115,82,252,233,244,7,248,2,131,252,248,
533 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 524 7,15,132,244,247,15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201,
534 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 525 81,15,87,193,252,233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15,
535 244,248,217,201,248,2,221,216,195,255,248,162,156,90,137,209,129,252,242, 526 115,209,1,15,84,193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248,
536 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15, 527 221,68,36,4,221,68,36,12,15,132,244,247,217,252,243,195,248,1,217,201,217,
537 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,248,163, 528 252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,252,
538 255,85,137,229,83,137,203,43,163,233,255,137,163,233,255,15,182,139,233,131, 529 242,15,93,193,252,233,244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,
539 252,233,1,15,136,244,248,248,1,139,132,253,139,233,137,4,140,131,252,233, 530 255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,
540 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233, 531 135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,
541 137,147,233,128,187,233,1,15,130,244,253,15,132,244,252,221,155,233,252,233, 532 244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,
542 244,253,248,6,255,217,155,233,248,7,255,41,163,233,255,139,93,252,252,201, 533 5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135,244,248,
543 195,255,248,164,255,249,255,129,124,253,202,4,239,15,133,244,253,129,124, 534 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,
544 253,194,4,239,15,133,244,254,139,44,202,131,198,4,59,44,194,255,15,141,244, 535 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,
545 255,255,15,140,244,255,255,15,143,244,255,255,15,142,244,255,255,248,6,15, 536 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,
537 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,
538 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,
539 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,162,
540 156,90,137,209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,
541 247,139,68,36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,
542 12,91,95,248,1,195,248,163,255,85,137,229,83,137,203,43,163,233,255,137,163,
543 233,255,15,182,139,233,131,252,233,1,15,136,244,248,248,1,139,132,253,139,
544 233,137,4,140,131,252,233,1,15,137,244,1,248,2,139,139,233,139,147,233,252,
545 255,147,233,137,131,233,137,147,233,128,187,233,1,15,130,244,253,15,132,244,
546 252,221,155,233,252,233,244,253,248,6,255,217,155,233,248,7,255,41,163,233,
547 255,139,93,252,252,201,195,255,248,164,255,249,255,129,124,253,202,4,239,
548 15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,198,4,
549 59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244,255,255,15,
550 142,244,255,255,248,6,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,
551 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135,244,43,
552 129,124,253,194,4,239,15,130,244,247,15,133,244,43,255,252,242,15,42,4,194,
553 252,233,244,248,255,221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,
554 244,43,255,252,242,15,42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,
555 255,15,134,244,9,255,15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,
556 233,244,6,255,219,4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,
557 244,43,129,124,253,194,4,239,15,131,244,43,255,248,1,252,242,15,16,4,194,
558 248,2,131,198,4,102,15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,
559 248,3,131,198,4,255,15,134,244,247,255,15,135,244,247,255,15,130,244,247,
560 255,15,131,244,247,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,
561 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,
562 4,131,198,4,255,129,252,253,239,15,133,244,253,129,124,253,202,4,239,15,133,
563 244,254,139,44,194,59,44,202,255,15,133,244,255,255,15,132,244,255,255,15,
546 183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131, 564 183,70,252,254,141,180,253,134,233,248,9,139,6,15,182,204,15,182,232,131,
547 198,4,193,232,16,252,255,36,171,248,7,15,135,244,43,129,124,253,194,4,239, 565 198,4,193,232,16,252,255,36,171,248,7,15,135,244,251,129,124,253,202,4,239,
548 15,130,244,247,15,133,244,43,255,252,242,15,42,4,194,252,233,244,248,255, 566 15,130,244,247,15,133,244,251,255,252,242,15,42,4,202,255,219,4,202,255,252,
549 221,4,202,219,4,194,252,233,244,249,255,248,8,15,135,244,43,255,252,242,15, 567 233,244,248,248,8,15,135,244,251,255,252,242,15,42,4,194,102,15,46,4,202,
550 42,12,202,252,242,15,16,4,194,131,198,4,102,15,46,193,255,15,134,244,9,255, 568 255,219,4,194,221,4,202,255,252,233,244,250,255,129,252,253,239,15,131,244,
551 15,135,244,9,255,15,130,244,9,255,15,131,244,9,255,252,233,244,6,255,219, 569 251,129,124,253,202,4,239,15,131,244,251,255,248,1,252,242,15,16,4,202,248,
552 4,202,252,233,244,248,255,129,124,253,202,4,239,15,131,244,43,129,124,253, 570 2,102,15,46,4,194,248,4,255,248,1,221,4,202,248,2,221,4,194,248,4,255,15,
553 194,4,239,15,131,244,43,255,248,1,252,242,15,16,4,194,248,2,131,198,4,102, 571 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,
554 15,46,4,202,248,3,255,248,1,221,4,202,248,2,221,4,194,248,3,131,198,4,255, 572 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,
555 15,134,244,247,255,15,135,244,247,255,15,130,244,247,255,15,131,244,247,255, 573 180,253,134,233,248,1,255,252,233,244,9,255,248,5,255,129,252,253,239,15,
556 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, 574 132,244,48,129,124,253,202,4,239,15,132,244,48,255,57,108,202,4,15,133,244,
557 198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,255,129,252,253, 575 2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
558 239,15,133,244,253,129,124,253,202,4,239,15,133,244,254,139,44,194,59,44, 576 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
559 202,255,15,133,244,255,255,15,132,244,255,255,15,183,70,252,254,141,180,253, 577 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,
560 134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 578 248,3,129,252,253,239,255,15,133,244,9,255,252,233,244,48,255,252,247,208,
561 171,248,7,15,135,244,251,129,124,253,202,4,239,15,130,244,247,15,133,244, 579 139,108,202,4,131,198,4,129,252,253,239,15,133,244,249,139,12,202,59,12,135,
562 251,255,252,242,15,42,4,202,255,219,4,202,255,252,233,244,248,248,8,15,135, 580 255,139,108,202,4,131,198,4,255,129,252,253,239,15,133,244,253,129,124,253,
563 244,251,255,252,242,15,42,4,194,102,15,46,4,202,255,219,4,194,221,4,202,255, 581 199,4,239,15,133,244,254,139,44,199,59,44,202,255,15,183,70,252,254,141,180,
564 252,233,244,250,255,129,252,253,239,15,131,244,251,129,124,253,202,4,239, 582 253,134,233,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
565 15,131,244,251,255,248,1,252,242,15,16,4,202,248,2,102,15,46,4,194,248,4, 583 36,171,248,7,15,135,244,249,129,124,253,199,4,239,15,130,244,247,255,252,
566 255,248,1,221,4,202,248,2,221,4,194,248,4,255,15,138,244,248,15,133,244,248, 584 242,15,42,4,199,255,219,4,199,255,252,233,244,248,248,8,255,252,242,15,42,
567 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253, 585 4,202,102,15,46,4,199,255,219,4,202,221,4,199,255,129,252,253,239,15,131,
568 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,252, 586 244,249,255,248,1,252,242,15,16,4,199,248,2,102,15,46,4,202,248,4,255,248,
569 233,244,9,255,248,5,255,129,252,253,239,15,132,244,48,129,124,253,202,4,239, 587 1,221,4,199,248,2,221,4,202,248,4,255,252,247,208,139,108,202,4,131,198,4,
570 15,132,244,48,255,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1, 588 57,197,255,15,133,244,249,15,183,70,252,254,141,180,253,134,233,248,2,139,
571 139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139, 589 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,129,252,
572 169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49, 590 253,239,15,133,244,2,252,233,244,48,255,15,132,244,248,129,252,253,239,15,
573 252,237,255,189,1,0,0,0,255,252,233,244,47,255,248,3,129,252,253,239,255, 591 132,244,48,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,
574 15,133,244,9,255,252,233,244,48,255,252,247,208,139,108,202,4,131,198,4,129, 592 182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,
575 252,253,239,15,133,244,249,139,12,202,59,12,135,255,139,108,202,4,131,198, 593 252,253,239,255,137,108,202,4,139,44,194,137,44,202,255,139,108,194,4,139,
576 4,255,129,252,253,239,15,133,244,253,129,124,253,199,4,239,15,133,244,254, 594 4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
577 139,44,199,59,44,202,255,15,183,70,252,254,141,180,253,134,233,248,9,139, 595 16,252,255,36,171,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,
578 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,7,15,135, 596 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
579 244,249,129,124,253,199,4,239,15,130,244,247,255,252,242,15,42,4,199,255, 597 129,124,253,194,4,239,15,133,244,251,139,44,194,252,247,221,15,128,244,250,
580 219,4,199,255,252,233,244,248,248,8,255,252,242,15,42,4,202,102,15,46,4,199, 598 199,68,202,4,237,137,44,202,248,9,139,6,15,182,204,15,182,232,131,198,4,193,
581 255,219,4,202,221,4,199,255,129,252,253,239,15,131,244,249,255,248,1,252, 599 232,16,252,255,36,171,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,
582 242,15,16,4,199,248,2,102,15,46,4,202,248,4,255,248,1,221,4,199,248,2,221, 600 233,244,9,248,5,15,135,244,53,255,129,124,253,194,4,239,15,131,244,53,255,
583 4,202,248,4,255,252,247,208,139,108,202,4,131,198,4,57,197,255,15,133,244, 601 252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,
584 249,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232, 602 193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,
585 131,198,4,193,232,16,252,255,36,171,248,3,129,252,253,239,15,133,244,2,252, 603 194,4,239,15,133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,
586 233,244,48,255,15,132,244,248,129,252,253,239,15,132,244,48,15,183,70,252, 604 137,4,202,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,
587 254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232, 605 219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,
588 16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,255,137,108, 606 232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194,
589 202,4,139,44,194,137,44,202,255,139,108,194,4,139,4,194,137,108,202,4,137, 607 137,213,232,251,1,20,255,252,242,15,42,192,255,137,4,36,219,4,36,255,137,
590 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 608 252,234,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,
591 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204, 609 129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,
592 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239, 610 50,139,44,252,234,3,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,
593 15,133,244,251,139,44,194,252,247,221,15,128,244,250,199,68,202,4,237,137, 611 133,244,52,129,124,253,199,4,239,15,133,244,52,139,4,199,3,4,252,234,15,128,
594 44,202,248,9,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 612 244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,
595 171,248,4,199,68,202,4,0,0,224,65,199,4,202,0,0,0,0,252,233,244,9,248,5,15, 613 15,133,244,55,139,44,252,234,3,44,194,15,128,244,54,255,199,68,202,4,237,
596 135,244,53,255,129,124,253,194,4,239,15,131,244,53,255,252,242,15,16,4,194, 614 255,129,124,253,252,234,4,239,15,131,244,50,255,129,124,253,199,4,239,15,
597 184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,242,15,17,4, 615 131,244,50,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,
598 202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244, 616 234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,52,255,129,124,253,
599 248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,15,87, 617 199,4,239,15,131,244,52,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,
600 192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1, 618 221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,55,129,124,
601 221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 619 253,194,4,239,15,131,244,55,255,252,242,15,16,4,252,234,252,242,15,88,4,194,
602 171,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194,137,213,232,251, 620 255,221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,50,129,
603 1,20,255,252,242,15,42,192,255,137,4,36,219,4,36,255,137,252,234,15,182,78, 621 124,253,199,4,239,15,133,244,50,139,44,252,234,43,44,199,15,128,244,49,255,
604 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234, 622 129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,15,133,244,
605 4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,3, 623 52,139,4,199,43,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239,15,
606 44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,52,129,124, 624 133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,43,44,194,15,
607 253,199,4,239,15,133,244,52,139,4,199,3,4,252,234,15,128,244,51,255,129,124, 625 128,244,54,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,
608 253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44, 626 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,
609 252,234,3,44,194,15,128,244,54,255,199,68,202,4,237,255,129,124,253,252,234, 627 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,
610 4,239,15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15, 628 4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,50,129,124,
611 16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124, 629 253,199,4,239,15,133,244,50,139,44,252,234,15,175,44,199,15,128,244,49,255,
612 253,252,234,4,239,15,131,244,52,255,129,124,253,199,4,239,15,131,244,52,255, 630 129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,15,133,244,
613 252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255, 631 52,139,4,199,15,175,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239,
614 129,124,253,252,234,4,239,15,131,244,55,129,124,253,194,4,239,15,131,244, 632 15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,15,175,44,
615 55,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220, 633 194,15,128,244,54,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,
616 4,194,255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15, 634 4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,
617 133,244,50,139,44,252,234,43,44,199,15,128,244,49,255,129,124,253,252,234, 635 221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,
618 4,239,15,133,244,52,129,124,253,199,4,239,15,133,244,52,139,4,199,43,4,252, 636 255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,
619 234,15,128,244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253, 637 199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,
620 194,4,239,15,133,244,55,139,44,252,234,43,44,194,15,128,244,54,255,252,242, 638 252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,
621 15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252, 639 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,
622 242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255, 640 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,
623 252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194, 641 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,
624 255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133, 642 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,165,232,244,
625 244,50,139,44,252,234,15,175,44,199,15,128,244,49,255,129,124,253,252,234, 643 155,255,252,233,244,165,255,232,244,115,255,15,182,252,236,15,182,192,141,
626 4,239,15,133,244,52,129,124,253,199,4,239,15,133,244,52,139,4,199,15,175, 644 12,194,41,232,137,76,36,4,137,68,36,8,248,35,139,108,36,48,137,44,36,137,
627 4,252,234,15,128,244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124, 645 149,233,137,116,36,24,232,251,1,27,139,149,233,133,192,15,133,244,44,15,182,
628 253,194,4,239,15,133,244,55,139,44,252,234,15,175,44,194,15,128,244,54,255, 646 110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,
629 252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199, 647 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
630 255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252, 648 171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,
631 234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220, 649 15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,191,192,199,68,202,
632 12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234, 650 4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,
633 220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199, 651 223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,
634 220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4, 652 221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,
635 252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221, 653 232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,
636 4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255, 654 237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,
637 221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194, 655 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,
638 255,221,4,252,234,221,4,194,255,248,165,232,244,155,255,252,233,244,165,255, 656 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,
639 232,244,115,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137, 657 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,
640 68,36,8,248,35,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251, 658 248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,
641 1,27,139,149,233,133,192,15,133,244,44,15,182,110,252,255,15,182,78,252,253, 659 137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,
642 139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204, 660 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,
643 15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135, 661 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,
644 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 662 213,141,139,233,255,232,251,1,28,137,252,234,252,233,244,1,255,252,247,208,
645 16,252,255,36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192, 663 139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,
646 252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252, 664 237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,
647 242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247, 665 131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,
648 208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 666 1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,28,137,
649 36,171,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41, 667 252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,
650 131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 668 172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,
651 16,252,255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139, 669 139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,
652 69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198, 670 15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,
653 4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189, 671 108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,
654 233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247, 672 232,251,1,29,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
655 252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131, 673 232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,
656 198,4,193,232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134, 674 48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,
657 244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1, 675 30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
658 28,137,252,234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253, 676 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,36,48,137,
659 141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15, 677 149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,1,137,193,
660 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 678 37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,132,244,249,
661 36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1, 679 248,2,137,44,36,137,68,36,4,232,251,1,31,139,149,233,15,182,78,252,253,137,
662 137,213,137,194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,
663 106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,
664 252,242,15,17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,
665 233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
666 252,255,36,171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,
667 244,247,137,149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,
668 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,
669 208,139,74,252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,
670 36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,
671 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 680 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
672 255,36,171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36, 681 255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,32,
673 24,15,131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36, 682 15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,
674 8,61,252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31, 683 137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,
675 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204, 684 252,233,232,251,1,33,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,
676 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233, 685 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,
677 244,2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255, 686 137,252,233,232,251,1,32,15,183,70,252,254,252,247,208,252,233,244,2,255,
678 252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233, 687 252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,166,255,252,
679 15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182, 688 247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,167,255,15,182,
680 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198, 689 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,
681 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252, 690 255,129,124,253,194,4,239,15,133,244,251,139,4,194,255,129,124,253,194,4,
682 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233, 691 239,15,131,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,
683 139,4,135,252,233,244,166,255,252,247,208,139,106,252,248,139,173,233,139, 692 200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,38,255,
684 4,135,252,233,244,167,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 693 59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
685 239,15,133,244,38,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251, 694 248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15,182,
686 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194, 695 232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,249,
687 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36, 696 139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,248,3,199,
688 219,4,36,255,15,133,244,38,255,59,133,233,15,131,244,38,193,224,3,3,133,233, 697 68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38,
689 129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4, 698 139,4,194,252,233,244,166,255,15,182,252,236,15,182,192,252,247,208,139,4,
690 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 699 135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,166,139,141,
691 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244, 700 233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,
692 38,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124, 701 57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,
693 253,194,4,239,15,133,244,38,139,4,194,252,233,244,166,255,15,182,252,236, 702 253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139,6,15,182,204,15,
694 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,36, 703 182,232,131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,199,68,
695 139,44,252,234,248,166,139,141,233,35,136,233,105,201,239,3,141,233,248,1, 704 194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,
696 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239, 705 141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,
697 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4, 706 36,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,37,
698 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 707 139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4,
699 248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233, 708 239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,
700 133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233, 709 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,
701 235,15,133,244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124,253, 710 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,37,255,15,182,
702 252,234,4,239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,224, 711 78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,
703 3,3,133,233,129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137, 712 192,129,124,253,252,234,4,239,15,133,244,41,139,44,252,234,255,15,133,244,
704 68,202,4,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 713 41,255,59,133,233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,
705 171,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15, 714 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,
706 132,244,37,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,255, 715 139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,
707 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,139,44, 716 16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129,
708 252,234,255,15,133,244,41,255,59,133,233,15,131,244,41,193,224,3,3,133,233, 717 233,235,255,15,132,244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253,
709 129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253, 718 194,4,239,15,133,244,41,139,4,194,252,233,244,167,248,7,128,165,233,235,139,
710 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232, 719 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,
711 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139, 720 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,
712 141,233,252,246,129,233,235,255,15,132,244,41,15,182,78,252,253,252,233,244, 721 244,39,139,44,252,234,248,167,139,141,233,35,136,233,105,201,239,198,133,
713 1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,244,167,248, 722 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,
714 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252, 723 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,
715 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253, 724 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,
716 252,234,4,239,15,133,244,39,139,44,252,234,248,167,139,141,233,35,136,233, 725 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,
717 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251, 726 233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,
718 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252, 727 39,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,
719 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139, 728 139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39,248,
720 4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 729 6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,
721 255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,252, 730 108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,34,139,
722 246,129,233,235,15,132,244,39,139,76,36,16,252,233,244,2,248,5,139,137,233, 731 149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,
723 133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233, 732 233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,
724 235,15,132,244,39,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68, 733 124,253,252,234,4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,
725 36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116, 734 40,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,
726 36,24,232,251,1,34,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7, 735 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,
727 128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15, 736 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,
728 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252, 737 233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,
729 234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132, 738 78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,
730 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139, 739 141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,139,60,199,248,
731 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 740 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,
732 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233, 741 68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,135,244,251,41,
733 235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139, 742 252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,
734 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124, 743 4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,
735 36,16,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15, 744 182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,
736 133,244,253,248,2,139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133, 745 48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,35,139,149,233,
737 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139, 746 15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137,
738 105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124, 747 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,
739 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 748 139,44,202,15,133,244,57,141,84,202,8,137,114,252,252,139,181,233,139,14,
740 5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36, 749 15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,
741 24,232,251,1,35,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128, 750 139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,58,139,114,252,
742 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36, 751 252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,
743 20,255,129,124,253,202,4,239,139,44,202,15,133,244,57,141,84,202,8,137,114, 752 232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,131,193,8,137,111,4,131,
744 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36, 753 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,
745 171,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133, 754 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
746 244,29,248,58,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106, 755 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,
747 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105, 756 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,
748 4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248, 757 4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,137,215,
749 3,139,68,36,20,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182, 758 139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,141,76,
750 252,233,15,182,205,131,198,4,252,255,36,171,248,5,255,252,247,198,237,15, 759 202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,
751 133,244,4,15,182,78,252,253,252,247,209,141,12,202,139,121,252,248,139,191, 760 244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,
752 233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,133, 761 252,129,252,248,239,184,237,15,133,244,29,137,202,137,114,252,252,139,181,
753 244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,239, 762 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,137,124,
754 252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4, 763 36,16,137,92,36,20,139,108,202,252,240,139,68,202,252,248,139,157,233,131,
755 139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228, 764 198,4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,
756 137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,29,137, 765 244,250,255,219,68,202,252,248,255,139,108,199,4,137,108,202,12,139,44,199,
757 202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 766 137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141,
758 4,252,255,36,171,255,137,124,36,16,137,92,36,20,139,108,202,252,240,139,68, 767 180,253,134,233,248,3,139,92,36,20,139,124,36,16,139,6,15,182,204,15,182,
759 202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,15,131,244,251, 768 232,131,198,4,193,232,16,252,255,36,171,248,4,131,192,1,255,137,68,202,252,
760 129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248,255,139,108,199, 769 248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252,
761 4,137,108,202,12,139,44,199,137,108,202,8,131,192,1,255,137,68,202,252,248, 770 248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,139,175,233,
762 248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,20,139,124,36, 771 139,135,233,137,44,202,137,68,202,4,139,175,233,139,135,233,137,108,202,8,
763 16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4, 772 137,68,202,12,137,92,202,252,248,252,233,244,2,248,7,255,131,192,1,252,233,
764 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,41,216,248,6,59, 773 244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129,
765 133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,239,15,132,244, 774 124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133,
766 253,141,92,24,1,139,175,233,139,135,233,137,44,202,137,68,202,4,139,175,233, 775 244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252,
767 139,135,233,137,108,202,8,137,68,202,12,137,92,202,252,248,252,233,244,2, 776 248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
768 248,7,255,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133, 777 36,171,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233,244,
769 244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124, 778 1,255,15,182,252,236,15,182,192,137,124,36,16,141,188,253,194,233,141,12,
770 253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180, 779 202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,
771 253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232, 780 215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,
772 131,198,4,193,232,16,252,255,36,171,248,5,198,70,252,252,235,141,180,253, 781 65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,
773 134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36, 782 4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182,
774 16,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251, 783 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0,
775 141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1, 784 0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,
776 139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57, 785 36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255,139,71,252,
777 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248, 786 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,
778 3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 787 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,139,84,36,
779 36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197, 788 20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,
780 193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135, 789 233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,
781 244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4, 790 237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139,
782 131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233, 791 44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,
783 137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139, 792 133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252,
784 149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252, 793 255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,
785 252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232, 794 252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122,
786 1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252, 795 252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,
787 252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255, 796 232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,
788 248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137, 797 252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237,
789 106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253, 798 15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229,
790 252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182, 799 239,102,131,172,253,43,233,1,15,132,244,147,255,141,12,202,255,129,121,253,
791 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252, 800 4,239,15,133,244,255,255,129,121,253,12,239,15,133,244,59,129,121,253,20,
792 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248, 801 239,15,133,244,59,139,41,131,121,16,0,15,140,244,251,255,129,121,253,12,239,
793 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255, 802 15,133,244,164,129,121,253,20,239,15,133,244,164,255,139,105,16,133,252,237,
794 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147, 803 15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,137,
795 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239, 804 105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,253,
796 15,133,244,59,129,121,253,20,239,15,133,244,59,139,41,131,121,16,0,15,140, 805 134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,6,
797 244,251,255,129,121,253,12,239,15,133,244,164,129,121,253,20,239,15,133,244, 806 141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,4,
798 164,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,41, 807 193,232,16,252,255,36,171,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244,
799 255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141, 808 7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244,7,255,
800 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248, 809 252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,59,129,121,253,12,
801 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139, 810 239,15,131,244,59,255,129,121,253,12,239,15,131,244,164,129,121,253,20,239,
802 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41, 811 15,131,244,164,255,139,105,20,255,129,252,253,239,15,131,244,59,255,252,242,
803 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252, 812 15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,
804 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4, 813 237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,
805 239,255,15,131,244,59,129,121,253,12,239,15,131,244,59,255,129,121,253,12, 814 17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,
806 239,15,131,244,164,129,121,253,20,239,15,131,244,164,255,139,105,20,255,129, 815 136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,
807 252,253,239,15,131,244,59,255,252,242,15,16,1,252,242,15,16,73,8,255,252, 816 252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233,255,141,180,
808 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244, 817 253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255,15,130,244,
809 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220, 818 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,
810 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244, 819 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,
811 247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,244, 820 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,
812 248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131, 821 65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48,137,147,233,
813 245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3,102, 822 137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232,
814 15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244, 823 131,198,4,193,232,16,252,255,36,171,255,137,252,245,209,252,237,129,229,239,
815 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253, 824 102,131,172,253,43,233,1,15,132,244,149,255,139,190,233,139,108,36,48,141,
816 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139, 825 12,202,59,141,233,15,135,244,24,15,182,142,233,57,200,15,134,244,249,248,
817 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253, 826 2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,
818 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 827 192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,
819 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,149, 828 122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12,200,59,141,
820 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,24,15,182, 829 233,15,135,244,23,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,
821 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255, 830 248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,
822 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2, 831 252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,
823 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252, 832 2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
824 248,139,108,36,48,141,12,200,59,141,233,15,135,244,23,137,209,137,194,15, 833 36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,
825 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244, 834 244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194,252,248,137,
826 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 835 149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255,137,124,36,4,
827 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204, 836 137,44,36,255,15,135,244,22,199,131,233,237,255,252,255,215,255,252,255,147,
828 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131, 837 233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,
829 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139,189, 838 114,252,252,252,233,244,12,255,254,0
830 233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,
831 133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,22,199,131,
832 233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,
833 141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
834}; 839};
835 840
836enum { 841enum {
@@ -1623,366 +1628,366 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1623 } else { 1628 } else {
1624 dasm_put(Dst, 6601); 1629 dasm_put(Dst, 6601);
1625 } 1630 }
1626 dasm_put(Dst, 6612, LJ_TISNUM); 1631 dasm_put(Dst, 6612, 1+1, LJ_TISNUM);
1627 if (LJ_DUALNUM) { 1632 if (LJ_DUALNUM) {
1628 dasm_put(Dst, 6620); 1633 dasm_put(Dst, 6628);
1629 } else { 1634 } else {
1630 dasm_put(Dst, 2244); 1635 dasm_put(Dst, 2244);
1631 } 1636 }
1632 if (sse) { 1637 if (sse) {
1633 dasm_put(Dst, 6637); 1638 dasm_put(Dst, 6645);
1634 } else { 1639 } else {
1635 dasm_put(Dst, 6666); 1640 dasm_put(Dst, 6674);
1636 } 1641 }
1637 dasm_put(Dst, 111); 1642 dasm_put(Dst, 111);
1638 if (LJ_DUALNUM || sse) { 1643 if (LJ_DUALNUM || sse) {
1639 if (!sse) { 1644 if (!sse) {
1640 dasm_put(Dst, 6684); 1645 dasm_put(Dst, 6692);
1641 } 1646 }
1642 dasm_put(Dst, 6688); 1647 dasm_put(Dst, 6696);
1643 } else { 1648 } else {
1644 dasm_put(Dst, 6604); 1649 dasm_put(Dst, 6604);
1645 } 1650 }
1646 dasm_put(Dst, 6693); 1651 dasm_put(Dst, 6701, 1+1);
1647 if (sse) { 1652 if (sse) {
1648 dasm_put(Dst, 6696); 1653 dasm_put(Dst, 6712);
1649 } else { 1654 } else {
1650 dasm_put(Dst, 6711); 1655 dasm_put(Dst, 6727);
1651 } 1656 }
1652 dasm_put(Dst, 2221, LJ_TISNUM); 1657 dasm_put(Dst, 2221, LJ_TISNUM);
1653 if (LJ_DUALNUM) { 1658 if (LJ_DUALNUM) {
1654 dasm_put(Dst, 6720); 1659 dasm_put(Dst, 6736);
1655 } else { 1660 } else {
1656 dasm_put(Dst, 2244); 1661 dasm_put(Dst, 2244);
1657 } 1662 }
1658 if (sse) { 1663 if (sse) {
1659 dasm_put(Dst, 6737); 1664 dasm_put(Dst, 6753);
1660 } else { 1665 } else {
1661 dasm_put(Dst, 6752); 1666 dasm_put(Dst, 6768);
1662 } 1667 }
1663 dasm_put(Dst, 6765, LJ_TISNUM); 1668 dasm_put(Dst, 6781, LJ_TISNUM);
1664 if (LJ_DUALNUM) { 1669 if (LJ_DUALNUM) {
1665 dasm_put(Dst, 6790); 1670 dasm_put(Dst, 6806);
1666 } else { 1671 } else {
1667 dasm_put(Dst, 6810); 1672 dasm_put(Dst, 6826);
1668 } 1673 }
1669 if (sse) { 1674 if (sse) {
1670 dasm_put(Dst, 6815); 1675 dasm_put(Dst, 6831);
1671 } else { 1676 } else {
1672 dasm_put(Dst, 6832); 1677 dasm_put(Dst, 6848);
1673 } 1678 }
1674 dasm_put(Dst, 6845); 1679 dasm_put(Dst, 6861, 1+1);
1675 if (sse) { 1680 if (sse) {
1676 dasm_put(Dst, 6696); 1681 dasm_put(Dst, 6712);
1677 } else { 1682 } else {
1678 dasm_put(Dst, 6711); 1683 dasm_put(Dst, 6727);
1679 } 1684 }
1680 dasm_put(Dst, 2221, LJ_TISNUM); 1685 dasm_put(Dst, 2221, LJ_TISNUM);
1681 if (LJ_DUALNUM) { 1686 if (LJ_DUALNUM) {
1682 dasm_put(Dst, 6720); 1687 dasm_put(Dst, 6736);
1683 } else { 1688 } else {
1684 dasm_put(Dst, 2244); 1689 dasm_put(Dst, 2244);
1685 } 1690 }
1686 if (sse) { 1691 if (sse) {
1687 dasm_put(Dst, 6737); 1692 dasm_put(Dst, 6753);
1688 } else { 1693 } else {
1689 dasm_put(Dst, 6752); 1694 dasm_put(Dst, 6768);
1690 } 1695 }
1691 dasm_put(Dst, 6765, LJ_TISNUM); 1696 dasm_put(Dst, 6781, LJ_TISNUM);
1692 if (LJ_DUALNUM) { 1697 if (LJ_DUALNUM) {
1693 dasm_put(Dst, 6855); 1698 dasm_put(Dst, 6879);
1694 } else { 1699 } else {
1695 dasm_put(Dst, 6810); 1700 dasm_put(Dst, 6826);
1696 } 1701 }
1697 if (sse) { 1702 if (sse) {
1698 dasm_put(Dst, 6875); 1703 dasm_put(Dst, 6899);
1699 } else { 1704 } else {
1700 dasm_put(Dst, 6892); 1705 dasm_put(Dst, 6916);
1701 } 1706 }
1702 dasm_put(Dst, 6905); 1707 dasm_put(Dst, 6929, 1+1);
1703 if (sse) { 1708 if (sse) {
1704 dasm_put(Dst, 6696); 1709 dasm_put(Dst, 6712);
1705 } else { 1710 } else {
1706 dasm_put(Dst, 6711); 1711 dasm_put(Dst, 6727);
1707 } 1712 }
1708 dasm_put(Dst, 2221, LJ_TISNUM); 1713 dasm_put(Dst, 2221, LJ_TISNUM);
1709 if (LJ_DUALNUM) { 1714 if (LJ_DUALNUM) {
1710 dasm_put(Dst, 6720); 1715 dasm_put(Dst, 6736);
1711 } else { 1716 } else {
1712 dasm_put(Dst, 2244); 1717 dasm_put(Dst, 2244);
1713 } 1718 }
1714 if (sse) { 1719 if (sse) {
1715 dasm_put(Dst, 6737); 1720 dasm_put(Dst, 6753);
1716 } else { 1721 } else {
1717 dasm_put(Dst, 6752); 1722 dasm_put(Dst, 6768);
1718 } 1723 }
1719 dasm_put(Dst, 6765, LJ_TISNUM); 1724 dasm_put(Dst, 6781, LJ_TISNUM);
1720 if (LJ_DUALNUM) { 1725 if (LJ_DUALNUM) {
1721 dasm_put(Dst, 6915); 1726 dasm_put(Dst, 6947);
1722 } else { 1727 } else {
1723 dasm_put(Dst, 6810); 1728 dasm_put(Dst, 6826);
1724 } 1729 }
1725 if (sse) { 1730 if (sse) {
1726 dasm_put(Dst, 6935); 1731 dasm_put(Dst, 6967);
1727 } else { 1732 } else {
1728 dasm_put(Dst, 6952); 1733 dasm_put(Dst, 6984);
1729 } 1734 }
1730 dasm_put(Dst, 6965, LJ_TISNUM); 1735 dasm_put(Dst, 6997, 1+1, LJ_TISNUM);
1731 if (LJ_DUALNUM) { 1736 if (LJ_DUALNUM) {
1732 dasm_put(Dst, 6720); 1737 dasm_put(Dst, 6736);
1733 } else { 1738 } else {
1734 dasm_put(Dst, 2244); 1739 dasm_put(Dst, 2244);
1735 } 1740 }
1736 if (sse) { 1741 if (sse) {
1737 dasm_put(Dst, 6637); 1742 dasm_put(Dst, 6645);
1738 } else { 1743 } else {
1739 dasm_put(Dst, 6980); 1744 dasm_put(Dst, 7020);
1740 } 1745 }
1741 dasm_put(Dst, 7001, LJ_TISNUM); 1746 dasm_put(Dst, 7041, 1+1, LJ_TISNUM);
1742 if (LJ_DUALNUM) { 1747 if (LJ_DUALNUM) {
1743 dasm_put(Dst, 6720); 1748 dasm_put(Dst, 6736);
1744 } else { 1749 } else {
1745 dasm_put(Dst, 2244); 1750 dasm_put(Dst, 2244);
1746 } 1751 }
1747 if (sse) { 1752 if (sse) {
1748 dasm_put(Dst, 6637); 1753 dasm_put(Dst, 6645);
1749 } else { 1754 } else {
1750 dasm_put(Dst, 6980); 1755 dasm_put(Dst, 7020);
1751 } 1756 }
1752 dasm_put(Dst, 7017); 1757 dasm_put(Dst, 7065);
1753 if (LJ_DUALNUM) { 1758 if (LJ_DUALNUM) {
1754 dasm_put(Dst, 6688); 1759 dasm_put(Dst, 6696);
1755 } else if (sse) { 1760 } else if (sse) {
1756 dasm_put(Dst, 7023); 1761 dasm_put(Dst, 7071);
1757 } else { 1762 } else {
1758 dasm_put(Dst, 7035); 1763 dasm_put(Dst, 7083);
1759 } 1764 }
1760 dasm_put(Dst, 7048); 1765 dasm_put(Dst, 7096);
1761 if (LJ_DUALNUM) { 1766 if (LJ_DUALNUM) {
1762 dasm_put(Dst, 7059, LJ_TISNUM); 1767 dasm_put(Dst, 7107, 1+1, LJ_TISNUM);
1763 if (LJ_DUALNUM) { 1768 if (LJ_DUALNUM) {
1764 dasm_put(Dst, 6720); 1769 dasm_put(Dst, 6736);
1765 } else { 1770 } else {
1766 dasm_put(Dst, 2244); 1771 dasm_put(Dst, 2244);
1767 } 1772 }
1768 if (sse) { 1773 if (sse) {
1769 dasm_put(Dst, 6637); 1774 dasm_put(Dst, 6645);
1770 } else { 1775 } else {
1771 dasm_put(Dst, 6980); 1776 dasm_put(Dst, 7020);
1772 } 1777 }
1773 dasm_put(Dst, 7067, LJ_TISNUM); 1778 dasm_put(Dst, 7123, LJ_TISNUM);
1774 } else if (sse) { 1779 } else if (sse) {
1775 dasm_put(Dst, 7082, 2+1, LJ_TISNUM, LJ_TISNUM); 1780 dasm_put(Dst, 7138, 2+1, LJ_TISNUM, LJ_TISNUM);
1776 } else { 1781 } else {
1777 dasm_put(Dst, 7154, 2+1, LJ_TISNUM, LJ_TISNUM); 1782 dasm_put(Dst, 7210, 2+1, LJ_TISNUM, LJ_TISNUM);
1778 } 1783 }
1779 dasm_put(Dst, 7218); 1784 dasm_put(Dst, 7274);
1780 if (LJ_DUALNUM) { 1785 if (LJ_DUALNUM) {
1781 dasm_put(Dst, 7225, LJ_TISNUM); 1786 dasm_put(Dst, 7281, 1+1, LJ_TISNUM);
1782 if (LJ_DUALNUM) { 1787 if (LJ_DUALNUM) {
1783 dasm_put(Dst, 6720); 1788 dasm_put(Dst, 6736);
1784 } else { 1789 } else {
1785 dasm_put(Dst, 2244); 1790 dasm_put(Dst, 2244);
1786 } 1791 }
1787 if (sse) { 1792 if (sse) {
1788 dasm_put(Dst, 6637); 1793 dasm_put(Dst, 6645);
1789 } else { 1794 } else {
1790 dasm_put(Dst, 6980); 1795 dasm_put(Dst, 7020);
1791 } 1796 }
1792 dasm_put(Dst, 7067, LJ_TISNUM); 1797 dasm_put(Dst, 7123, LJ_TISNUM);
1793 } else if (sse) { 1798 } else if (sse) {
1794 dasm_put(Dst, 7233, 2+1, LJ_TISNUM, LJ_TISNUM); 1799 dasm_put(Dst, 7297, 2+1, LJ_TISNUM, LJ_TISNUM);
1795 } else { 1800 } else {
1796 dasm_put(Dst, 7305, 2+1, LJ_TISNUM, LJ_TISNUM); 1801 dasm_put(Dst, 7369, 2+1, LJ_TISNUM, LJ_TISNUM);
1797 } 1802 }
1798 dasm_put(Dst, 7369); 1803 dasm_put(Dst, 7433);
1799 if (LJ_DUALNUM) { 1804 if (LJ_DUALNUM) {
1800 dasm_put(Dst, 7377, LJ_TISNUM); 1805 dasm_put(Dst, 7441, 1+1, LJ_TISNUM);
1801 if (LJ_DUALNUM) { 1806 if (LJ_DUALNUM) {
1802 dasm_put(Dst, 6720); 1807 dasm_put(Dst, 6736);
1803 } else { 1808 } else {
1804 dasm_put(Dst, 2244); 1809 dasm_put(Dst, 2244);
1805 } 1810 }
1806 if (sse) { 1811 if (sse) {
1807 dasm_put(Dst, 6637); 1812 dasm_put(Dst, 6645);
1808 } else { 1813 } else {
1809 dasm_put(Dst, 6980); 1814 dasm_put(Dst, 7020);
1810 } 1815 }
1811 dasm_put(Dst, 7067, LJ_TISNUM); 1816 dasm_put(Dst, 7123, LJ_TISNUM);
1812 } else if (sse) { 1817 } else if (sse) {
1813 dasm_put(Dst, 7385, 2+1, LJ_TISNUM, LJ_TISNUM);
1814 } else {
1815 dasm_put(Dst, 7457, 2+1, LJ_TISNUM, LJ_TISNUM); 1818 dasm_put(Dst, 7457, 2+1, LJ_TISNUM, LJ_TISNUM);
1819 } else {
1820 dasm_put(Dst, 7529, 2+1, LJ_TISNUM, LJ_TISNUM);
1816 } 1821 }
1817 dasm_put(Dst, 7521); 1822 dasm_put(Dst, 7593);
1818 if (LJ_DUALNUM) { 1823 if (LJ_DUALNUM) {
1819 dasm_put(Dst, 7529, LJ_TISNUM); 1824 dasm_put(Dst, 7601, 1+1, LJ_TISNUM);
1820 if (LJ_DUALNUM) { 1825 if (LJ_DUALNUM) {
1821 dasm_put(Dst, 6720); 1826 dasm_put(Dst, 6736);
1822 } else { 1827 } else {
1823 dasm_put(Dst, 2244); 1828 dasm_put(Dst, 2244);
1824 } 1829 }
1825 if (sse) { 1830 if (sse) {
1826 dasm_put(Dst, 6637); 1831 dasm_put(Dst, 6645);
1827 } else { 1832 } else {
1828 dasm_put(Dst, 6980); 1833 dasm_put(Dst, 7020);
1829 } 1834 }
1830 dasm_put(Dst, 7067, LJ_TISNUM); 1835 dasm_put(Dst, 7123, LJ_TISNUM);
1831 } else if (sse) { 1836 } else if (sse) {
1832 dasm_put(Dst, 7537, 2+1, LJ_TISNUM, LJ_TISNUM); 1837 dasm_put(Dst, 7617, 2+1, LJ_TISNUM, LJ_TISNUM);
1833 } else { 1838 } else {
1834 dasm_put(Dst, 7609, 2+1, LJ_TISNUM, LJ_TISNUM); 1839 dasm_put(Dst, 7689, 2+1, LJ_TISNUM, LJ_TISNUM);
1835 } 1840 }
1836 dasm_put(Dst, 7673); 1841 dasm_put(Dst, 7753);
1837 if (LJ_DUALNUM) { 1842 if (LJ_DUALNUM) {
1838 dasm_put(Dst, 7680, LJ_TISNUM); 1843 dasm_put(Dst, 7760, 1+1, LJ_TISNUM);
1839 if (LJ_DUALNUM) { 1844 if (LJ_DUALNUM) {
1840 dasm_put(Dst, 6720); 1845 dasm_put(Dst, 6736);
1841 } else { 1846 } else {
1842 dasm_put(Dst, 2244); 1847 dasm_put(Dst, 2244);
1843 } 1848 }
1844 if (sse) { 1849 if (sse) {
1845 dasm_put(Dst, 6637); 1850 dasm_put(Dst, 6645);
1846 } else { 1851 } else {
1847 dasm_put(Dst, 6980); 1852 dasm_put(Dst, 7020);
1848 } 1853 }
1849 dasm_put(Dst, 7067, LJ_TISNUM); 1854 dasm_put(Dst, 7123, LJ_TISNUM);
1850 } else if (sse) { 1855 } else if (sse) {
1851 dasm_put(Dst, 7688, 2+1, LJ_TISNUM, LJ_TISNUM); 1856 dasm_put(Dst, 7776, 2+1, LJ_TISNUM, LJ_TISNUM);
1852 } else { 1857 } else {
1853 dasm_put(Dst, 7760, 2+1, LJ_TISNUM, LJ_TISNUM); 1858 dasm_put(Dst, 7848, 2+1, LJ_TISNUM, LJ_TISNUM);
1854 } 1859 }
1855 dasm_put(Dst, 7824, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1860 dasm_put(Dst, 7912, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1856 dasm_put(Dst, 7900, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1861 dasm_put(Dst, 7988, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1857 dasm_put(Dst, 8024, Dt1(->top), Dt1(->base), Dt1(->top)); 1862 dasm_put(Dst, 8112, Dt1(->top), Dt1(->base), Dt1(->top));
1858#if LJ_HASJIT 1863#if LJ_HASJIT
1859 dasm_put(Dst, 8062, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1864 dasm_put(Dst, 8150, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1860#endif 1865#endif
1861 dasm_put(Dst, 8093, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1866 dasm_put(Dst, 8181, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1862 dasm_put(Dst, 8144, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1867 dasm_put(Dst, 8232, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1863#if LJ_HASJIT 1868#if LJ_HASJIT
1864 dasm_put(Dst, 8210, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1869 dasm_put(Dst, 8298, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1865#endif 1870#endif
1866 dasm_put(Dst, 8256); 1871 dasm_put(Dst, 8344);
1867#if LJ_HASJIT 1872#if LJ_HASJIT
1868 dasm_put(Dst, 8088); 1873 dasm_put(Dst, 8176);
1869#endif 1874#endif
1870 dasm_put(Dst, 8263); 1875 dasm_put(Dst, 8351);
1871#if LJ_HASJIT 1876#if LJ_HASJIT
1872 dasm_put(Dst, 8266); 1877 dasm_put(Dst, 8354);
1873#endif 1878#endif
1874 dasm_put(Dst, 8276, Dt1(->base), Dt1(->top)); 1879 dasm_put(Dst, 8364, Dt1(->base), Dt1(->top));
1875#if LJ_HASJIT 1880#if LJ_HASJIT
1876 dasm_put(Dst, 8310); 1881 dasm_put(Dst, 8398);
1877#endif 1882#endif
1878 dasm_put(Dst, 8315, Dt1(->base), Dt1(->top)); 1883 dasm_put(Dst, 8403, Dt1(->base), Dt1(->top));
1879#if LJ_HASJIT 1884#if LJ_HASJIT
1880 dasm_put(Dst, 8344, 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); 1885 dasm_put(Dst, 8432, 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);
1881#endif 1886#endif
1882 dasm_put(Dst, 8487); 1887 dasm_put(Dst, 8575);
1883#if LJ_HASJIT 1888#if LJ_HASJIT
1884 dasm_put(Dst, 8490, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1889 dasm_put(Dst, 8578, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1885#endif 1890#endif
1886 dasm_put(Dst, 8568); 1891 dasm_put(Dst, 8656);
1887 if (!sse) { 1892 if (!sse) {
1888 dasm_put(Dst, 8571); 1893 dasm_put(Dst, 8659);
1889 } 1894 }
1890 dasm_put(Dst, 8616); 1895 dasm_put(Dst, 8704);
1891 if (!sse) { 1896 if (!sse) {
1892 dasm_put(Dst, 8718); 1897 dasm_put(Dst, 8806);
1893 } 1898 }
1894 dasm_put(Dst, 8763); 1899 dasm_put(Dst, 8851);
1895 if (!sse) { 1900 if (!sse) {
1896 dasm_put(Dst, 8865); 1901 dasm_put(Dst, 8953);
1897 } 1902 }
1898 dasm_put(Dst, 8904); 1903 dasm_put(Dst, 8992);
1899 if (sse) { 1904 if (sse) {
1900 dasm_put(Dst, 9009); 1905 dasm_put(Dst, 9097);
1901 } else { 1906 } else {
1902 dasm_put(Dst, 9139); 1907 dasm_put(Dst, 9227);
1903 } 1908 }
1904 dasm_put(Dst, 9186); 1909 dasm_put(Dst, 9274);
1905 if (!sse) { 1910 if (!sse) {
1906 dasm_put(Dst, 9260); 1911 dasm_put(Dst, 9348);
1907 if (cmov) { 1912 if (cmov) {
1908 dasm_put(Dst, 9271); 1913 dasm_put(Dst, 9359);
1909 } else { 1914 } else {
1910 dasm_put(Dst, 9275); 1915 dasm_put(Dst, 9363);
1911 } 1916 }
1912 dasm_put(Dst, 9282); 1917 dasm_put(Dst, 9370);
1913 dasm_put(Dst, 9356); 1918 dasm_put(Dst, 9444);
1914 dasm_put(Dst, 9456); 1919 dasm_put(Dst, 9544);
1915 if (cmov) { 1920 if (cmov) {
1916 dasm_put(Dst, 9459); 1921 dasm_put(Dst, 9547);
1917 } else { 1922 } else {
1918 dasm_put(Dst, 9463); 1923 dasm_put(Dst, 9551);
1919 } 1924 }
1920 dasm_put(Dst, 9470); 1925 dasm_put(Dst, 9558);
1921 if (cmov) { 1926 if (cmov) {
1922 dasm_put(Dst, 9271); 1927 dasm_put(Dst, 9359);
1923 } else { 1928 } else {
1924 dasm_put(Dst, 9275); 1929 dasm_put(Dst, 9363);
1925 } 1930 }
1926 dasm_put(Dst, 9488); 1931 dasm_put(Dst, 9576);
1927 } else { 1932 } else {
1928 dasm_put(Dst, 9567); 1933 dasm_put(Dst, 9655);
1929 } 1934 }
1930 dasm_put(Dst, 9570); 1935 dasm_put(Dst, 9658);
1931 dasm_put(Dst, 9655); 1936 dasm_put(Dst, 9743);
1932 dasm_put(Dst, 9785); 1937 dasm_put(Dst, 9873);
1933 dasm_put(Dst, 9991); 1938 dasm_put(Dst, 10079);
1934#if LJ_HASJIT 1939#if LJ_HASJIT
1935 if (sse) { 1940 if (sse) {
1936 dasm_put(Dst, 9998); 1941 dasm_put(Dst, 10086);
1937 dasm_put(Dst, 10055); 1942 dasm_put(Dst, 10143);
1938 dasm_put(Dst, 10146); 1943 dasm_put(Dst, 10234);
1939 } else { 1944 } else {
1940 dasm_put(Dst, 10188); 1945 dasm_put(Dst, 10276);
1941 dasm_put(Dst, 10280); 1946 dasm_put(Dst, 10368);
1942 } 1947 }
1943 dasm_put(Dst, 10326); 1948 dasm_put(Dst, 10414);
1944#endif 1949#endif
1945 dasm_put(Dst, 10330); 1950 dasm_put(Dst, 10418);
1946 if (sse) { 1951 if (sse) {
1947 dasm_put(Dst, 10333); 1952 dasm_put(Dst, 10421);
1948 dasm_put(Dst, 10438); 1953 dasm_put(Dst, 10526);
1949 dasm_put(Dst, 10521); 1954 dasm_put(Dst, 10609);
1950 } else { 1955 } else {
1951 dasm_put(Dst, 10593); 1956 dasm_put(Dst, 10681);
1952 dasm_put(Dst, 10676); 1957 dasm_put(Dst, 10764);
1953 if (cmov) { 1958 if (cmov) {
1954 dasm_put(Dst, 10731); 1959 dasm_put(Dst, 10819);
1955 } else { 1960 } else {
1956 dasm_put(Dst, 10750); 1961 dasm_put(Dst, 10838);
1957 } 1962 }
1958 dasm_put(Dst, 10326); 1963 dasm_put(Dst, 10414);
1959 } 1964 }
1960 dasm_put(Dst, 10791); 1965 dasm_put(Dst, 10879);
1961#if LJ_HASFFI 1966#if LJ_HASFFI
1962#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1967#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1963 dasm_put(Dst, 10847, DtE(->spadj)); 1968 dasm_put(Dst, 10935, DtE(->spadj));
1964#if LJ_TARGET_WINDOWS 1969#if LJ_TARGET_WINDOWS
1965 dasm_put(Dst, 10857, DtE(->spadj)); 1970 dasm_put(Dst, 10945, DtE(->spadj));
1966#endif 1971#endif
1967 dasm_put(Dst, 10861, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0])); 1972 dasm_put(Dst, 10949, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0]));
1968 dasm_put(Dst, 10931, DtE(->fpr[0].f[0])); 1973 dasm_put(Dst, 11019, DtE(->fpr[0].f[0]));
1969#if LJ_TARGET_WINDOWS 1974#if LJ_TARGET_WINDOWS
1970 dasm_put(Dst, 10937, DtE(->spadj)); 1975 dasm_put(Dst, 11025, DtE(->spadj));
1971#endif 1976#endif
1972 dasm_put(Dst, 10941); 1977 dasm_put(Dst, 11029);
1973#endif 1978#endif
1974 dasm_put(Dst, 10948); 1979 dasm_put(Dst, 11036);
1975#ifdef LUA_USE_ASSERT 1980#ifdef LUA_USE_ASSERT
1976 dasm_put(Dst, 10328); 1981 dasm_put(Dst, 10416);
1977#endif 1982#endif
1978 dasm_put(Dst, 10328); 1983 dasm_put(Dst, 10416);
1979} 1984}
1980 1985
1981/* Generate the code for a single instruction. */ 1986/* Generate the code for a single instruction. */
1982static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1987static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1983{ 1988{
1984 int vk = 0; 1989 int vk = 0;
1985 dasm_put(Dst, 10951, defop); 1990 dasm_put(Dst, 11039, defop);
1986 1991
1987 switch (op) { 1992 switch (op) {
1988 1993
@@ -1993,57 +1998,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1993 1998
1994 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1999 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1995 if (LJ_DUALNUM) { 2000 if (LJ_DUALNUM) {
1996 dasm_put(Dst, 10953, LJ_TISNUM, LJ_TISNUM); 2001 dasm_put(Dst, 11041, LJ_TISNUM, LJ_TISNUM);
1997 switch (op) { 2002 switch (op) {
1998 case BC_ISLT: 2003 case BC_ISLT:
1999 dasm_put(Dst, 10983); 2004 dasm_put(Dst, 11071);
2000 break; 2005 break;
2001 case BC_ISGE: 2006 case BC_ISGE:
2002 dasm_put(Dst, 10988); 2007 dasm_put(Dst, 11076);
2003 break; 2008 break;
2004 case BC_ISLE: 2009 case BC_ISLE:
2005 dasm_put(Dst, 10993); 2010 dasm_put(Dst, 11081);
2006 break; 2011 break;
2007 case BC_ISGT: 2012 case BC_ISGT:
2008 dasm_put(Dst, 10998); 2013 dasm_put(Dst, 11086);
2009 break; 2014 break;
2010 default: break; /* Shut up GCC. */ 2015 default: break; /* Shut up GCC. */
2011 } 2016 }
2012 dasm_put(Dst, 11003, -BCBIAS_J*4, LJ_TISNUM); 2017 dasm_put(Dst, 11091, -BCBIAS_J*4, LJ_TISNUM);
2013 if (sse) { 2018 if (sse) {
2014 dasm_put(Dst, 11056); 2019 dasm_put(Dst, 11144);
2015 } else { 2020 } else {
2016 dasm_put(Dst, 11067); 2021 dasm_put(Dst, 11155);
2017 } 2022 }
2018 dasm_put(Dst, 11078); 2023 dasm_put(Dst, 11166);
2019 if (sse) { 2024 if (sse) {
2020 dasm_put(Dst, 11085); 2025 dasm_put(Dst, 11173);
2021 switch (op) { 2026 switch (op) {
2022 case BC_ISLT: 2027 case BC_ISLT:
2023 dasm_put(Dst, 11105); 2028 dasm_put(Dst, 11193);
2024 break; 2029 break;
2025 case BC_ISGE: 2030 case BC_ISGE:
2026 dasm_put(Dst, 11110); 2031 dasm_put(Dst, 11198);
2027 break; 2032 break;
2028 case BC_ISLE: 2033 case BC_ISLE:
2029 dasm_put(Dst, 11115); 2034 dasm_put(Dst, 11203);
2030 break; 2035 break;
2031 case BC_ISGT: 2036 case BC_ISGT:
2032 dasm_put(Dst, 11120); 2037 dasm_put(Dst, 11208);
2033 break; 2038 break;
2034 default: break; /* Shut up GCC. */ 2039 default: break; /* Shut up GCC. */
2035 } 2040 }
2036 dasm_put(Dst, 11125); 2041 dasm_put(Dst, 11213);
2037 } else { 2042 } else {
2038 dasm_put(Dst, 11130); 2043 dasm_put(Dst, 11218);
2039 } 2044 }
2040 } else { 2045 } else {
2041 dasm_put(Dst, 11138, LJ_TISNUM, LJ_TISNUM); 2046 dasm_put(Dst, 11226, LJ_TISNUM, LJ_TISNUM);
2042 } 2047 }
2043 if (sse) { 2048 if (sse) {
2044 dasm_put(Dst, 11159); 2049 dasm_put(Dst, 11247);
2045 } else { 2050 } else {
2046 dasm_put(Dst, 11180); 2051 dasm_put(Dst, 11268);
2047 if (cmov) { 2052 if (cmov) {
2048 dasm_put(Dst, 3924); 2053 dasm_put(Dst, 3924);
2049 } else { 2054 } else {
@@ -2053,70 +2058,70 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2053 if (LJ_DUALNUM) { 2058 if (LJ_DUALNUM) {
2054 switch (op) { 2059 switch (op) {
2055 case BC_ISLT: 2060 case BC_ISLT:
2056 dasm_put(Dst, 11105); 2061 dasm_put(Dst, 11193);
2057 break; 2062 break;
2058 case BC_ISGE: 2063 case BC_ISGE:
2059 dasm_put(Dst, 11110); 2064 dasm_put(Dst, 11198);
2060 break; 2065 break;
2061 case BC_ISLE: 2066 case BC_ISLE:
2062 dasm_put(Dst, 11115); 2067 dasm_put(Dst, 11203);
2063 break; 2068 break;
2064 case BC_ISGT: 2069 case BC_ISGT:
2065 dasm_put(Dst, 11120); 2070 dasm_put(Dst, 11208);
2066 break; 2071 break;
2067 default: break; /* Shut up GCC. */ 2072 default: break; /* Shut up GCC. */
2068 } 2073 }
2069 dasm_put(Dst, 11125); 2074 dasm_put(Dst, 11213);
2070 } else { 2075 } else {
2071 switch (op) { 2076 switch (op) {
2072 case BC_ISLT: 2077 case BC_ISLT:
2073 dasm_put(Dst, 11196); 2078 dasm_put(Dst, 11284);
2074 break; 2079 break;
2075 case BC_ISGE: 2080 case BC_ISGE:
2076 dasm_put(Dst, 11201); 2081 dasm_put(Dst, 11289);
2077 break; 2082 break;
2078 case BC_ISLE: 2083 case BC_ISLE:
2079 dasm_put(Dst, 11206); 2084 dasm_put(Dst, 11294);
2080 break; 2085 break;
2081 case BC_ISGT: 2086 case BC_ISGT:
2082 dasm_put(Dst, 11211); 2087 dasm_put(Dst, 11299);
2083 break; 2088 break;
2084 default: break; /* Shut up GCC. */ 2089 default: break; /* Shut up GCC. */
2085 } 2090 }
2086 dasm_put(Dst, 11216, -BCBIAS_J*4); 2091 dasm_put(Dst, 11304, -BCBIAS_J*4);
2087 } 2092 }
2088 break; 2093 break;
2089 2094
2090 case BC_ISEQV: case BC_ISNEV: 2095 case BC_ISEQV: case BC_ISNEV:
2091 vk = op == BC_ISEQV; 2096 vk = op == BC_ISEQV;
2092 dasm_put(Dst, 11247); 2097 dasm_put(Dst, 11335);
2093 if (LJ_DUALNUM) { 2098 if (LJ_DUALNUM) {
2094 dasm_put(Dst, 11255, LJ_TISNUM, LJ_TISNUM); 2099 dasm_put(Dst, 11343, LJ_TISNUM, LJ_TISNUM);
2095 if (vk) { 2100 if (vk) {
2096 dasm_put(Dst, 11280); 2101 dasm_put(Dst, 11368);
2097 } else { 2102 } else {
2098 dasm_put(Dst, 11285); 2103 dasm_put(Dst, 11373);
2099 } 2104 }
2100 dasm_put(Dst, 11290, -BCBIAS_J*4, LJ_TISNUM); 2105 dasm_put(Dst, 11378, -BCBIAS_J*4, LJ_TISNUM);
2101 if (sse) { 2106 if (sse) {
2102 dasm_put(Dst, 11341); 2107 dasm_put(Dst, 11429);
2103 } else { 2108 } else {
2104 dasm_put(Dst, 11348); 2109 dasm_put(Dst, 11436);
2105 } 2110 }
2106 dasm_put(Dst, 11352); 2111 dasm_put(Dst, 11440);
2107 if (sse) { 2112 if (sse) {
2108 dasm_put(Dst, 11363); 2113 dasm_put(Dst, 11451);
2109 } else { 2114 } else {
2110 dasm_put(Dst, 11375); 2115 dasm_put(Dst, 11463);
2111 } 2116 }
2112 dasm_put(Dst, 11382); 2117 dasm_put(Dst, 11470);
2113 } else { 2118 } else {
2114 dasm_put(Dst, 11387, LJ_TISNUM, LJ_TISNUM); 2119 dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM);
2115 } 2120 }
2116 if (sse) { 2121 if (sse) {
2117 dasm_put(Dst, 11406); 2122 dasm_put(Dst, 11494);
2118 } else { 2123 } else {
2119 dasm_put(Dst, 11424); 2124 dasm_put(Dst, 11512);
2120 if (cmov) { 2125 if (cmov) {
2121 dasm_put(Dst, 3924); 2126 dasm_put(Dst, 3924);
2122 } else { 2127 } else {
@@ -2125,13 +2130,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2125 } 2130 }
2126 iseqne_fp: 2131 iseqne_fp:
2127 if (vk) { 2132 if (vk) {
2128 dasm_put(Dst, 11437); 2133 dasm_put(Dst, 11525);
2129 } else { 2134 } else {
2130 dasm_put(Dst, 11446); 2135 dasm_put(Dst, 11534);
2131 } 2136 }
2132 iseqne_end: 2137 iseqne_end:
2133 if (vk) { 2138 if (vk) {
2134 dasm_put(Dst, 11455, -BCBIAS_J*4); 2139 dasm_put(Dst, 11543, -BCBIAS_J*4);
2135 if (!LJ_HASFFI) { 2140 if (!LJ_HASFFI) {
2136 dasm_put(Dst, 4824); 2141 dasm_put(Dst, 4824);
2137 } 2142 }
@@ -2139,76 +2144,76 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2139 if (!LJ_HASFFI) { 2144 if (!LJ_HASFFI) {
2140 dasm_put(Dst, 4824); 2145 dasm_put(Dst, 4824);
2141 } 2146 }
2142 dasm_put(Dst, 11470, -BCBIAS_J*4); 2147 dasm_put(Dst, 11558, -BCBIAS_J*4);
2143 } 2148 }
2144 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2149 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2145 op == BC_ISEQN || op == BC_ISNEN)) { 2150 op == BC_ISEQN || op == BC_ISNEN)) {
2146 dasm_put(Dst, 11485); 2151 dasm_put(Dst, 11573);
2147 } else { 2152 } else {
2148 dasm_put(Dst, 11228); 2153 dasm_put(Dst, 11316);
2149 } 2154 }
2150 if (op == BC_ISEQV || op == BC_ISNEV) { 2155 if (op == BC_ISEQV || op == BC_ISNEV) {
2151 dasm_put(Dst, 11490); 2156 dasm_put(Dst, 11578);
2152 if (LJ_HASFFI) { 2157 if (LJ_HASFFI) {
2153 dasm_put(Dst, 11493, LJ_TCDATA, LJ_TCDATA); 2158 dasm_put(Dst, 11581, LJ_TCDATA, LJ_TCDATA);
2154 } 2159 }
2155 dasm_put(Dst, 11512, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2160 dasm_put(Dst, 11600, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2156 if (vk) { 2161 if (vk) {
2157 dasm_put(Dst, 11568); 2162 dasm_put(Dst, 11656);
2158 } else { 2163 } else {
2159 dasm_put(Dst, 11572); 2164 dasm_put(Dst, 11660);
2160 } 2165 }
2161 dasm_put(Dst, 11578); 2166 dasm_put(Dst, 11666);
2162 } else if (LJ_HASFFI) { 2167 } else if (LJ_HASFFI) {
2163 dasm_put(Dst, 11583, LJ_TCDATA); 2168 dasm_put(Dst, 11671, LJ_TCDATA);
2164 if (LJ_DUALNUM && vk) { 2169 if (LJ_DUALNUM && vk) {
2165 dasm_put(Dst, 11590); 2170 dasm_put(Dst, 11678);
2166 } else { 2171 } else {
2167 dasm_put(Dst, 11563); 2172 dasm_put(Dst, 11651);
2168 } 2173 }
2169 dasm_put(Dst, 11595); 2174 dasm_put(Dst, 11683);
2170 } 2175 }
2171 break; 2176 break;
2172 case BC_ISEQS: case BC_ISNES: 2177 case BC_ISEQS: case BC_ISNES:
2173 vk = op == BC_ISEQS; 2178 vk = op == BC_ISEQS;
2174 dasm_put(Dst, 11600, LJ_TSTR); 2179 dasm_put(Dst, 11688, LJ_TSTR);
2175 iseqne_test: 2180 iseqne_test:
2176 if (vk) { 2181 if (vk) {
2177 dasm_put(Dst, 11441); 2182 dasm_put(Dst, 11529);
2178 } else { 2183 } else {
2179 dasm_put(Dst, 748); 2184 dasm_put(Dst, 748);
2180 } 2185 }
2181 goto iseqne_end; 2186 goto iseqne_end;
2182 case BC_ISEQN: case BC_ISNEN: 2187 case BC_ISEQN: case BC_ISNEN:
2183 vk = op == BC_ISEQN; 2188 vk = op == BC_ISEQN;
2184 dasm_put(Dst, 11625); 2189 dasm_put(Dst, 11713);
2185 if (LJ_DUALNUM) { 2190 if (LJ_DUALNUM) {
2186 dasm_put(Dst, 11633, LJ_TISNUM, LJ_TISNUM); 2191 dasm_put(Dst, 11721, LJ_TISNUM, LJ_TISNUM);
2187 if (vk) { 2192 if (vk) {
2188 dasm_put(Dst, 11280); 2193 dasm_put(Dst, 11368);
2189 } else { 2194 } else {
2190 dasm_put(Dst, 11285); 2195 dasm_put(Dst, 11373);
2191 } 2196 }
2192 dasm_put(Dst, 11658, -BCBIAS_J*4, LJ_TISNUM); 2197 dasm_put(Dst, 11746, -BCBIAS_J*4, LJ_TISNUM);
2193 if (sse) { 2198 if (sse) {
2194 dasm_put(Dst, 11705); 2199 dasm_put(Dst, 11793);
2195 } else { 2200 } else {
2196 dasm_put(Dst, 11712); 2201 dasm_put(Dst, 11800);
2197 } 2202 }
2198 dasm_put(Dst, 11716); 2203 dasm_put(Dst, 11804);
2199 if (sse) { 2204 if (sse) {
2200 dasm_put(Dst, 11723); 2205 dasm_put(Dst, 11811);
2201 } else { 2206 } else {
2202 dasm_put(Dst, 11735); 2207 dasm_put(Dst, 11823);
2203 } 2208 }
2204 dasm_put(Dst, 11382); 2209 dasm_put(Dst, 11470);
2205 } else { 2210 } else {
2206 dasm_put(Dst, 11742, LJ_TISNUM); 2211 dasm_put(Dst, 11830, LJ_TISNUM);
2207 } 2212 }
2208 if (sse) { 2213 if (sse) {
2209 dasm_put(Dst, 11751); 2214 dasm_put(Dst, 11839);
2210 } else { 2215 } else {
2211 dasm_put(Dst, 11769); 2216 dasm_put(Dst, 11857);
2212 if (cmov) { 2217 if (cmov) {
2213 dasm_put(Dst, 3924); 2218 dasm_put(Dst, 3924);
2214 } else { 2219 } else {
@@ -2218,72 +2223,72 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2218 goto iseqne_fp; 2223 goto iseqne_fp;
2219 case BC_ISEQP: case BC_ISNEP: 2224 case BC_ISEQP: case BC_ISNEP:
2220 vk = op == BC_ISEQP; 2225 vk = op == BC_ISEQP;
2221 dasm_put(Dst, 11782); 2226 dasm_put(Dst, 11870);
2222 if (!LJ_HASFFI) goto iseqne_test; 2227 if (!LJ_HASFFI) goto iseqne_test;
2223 if (vk) { 2228 if (vk) {
2224 dasm_put(Dst, 11795, -BCBIAS_J*4, LJ_TCDATA); 2229 dasm_put(Dst, 11883, -BCBIAS_J*4, LJ_TCDATA);
2225 } else { 2230 } else {
2226 dasm_put(Dst, 11844, LJ_TCDATA, -BCBIAS_J*4); 2231 dasm_put(Dst, 11932, LJ_TCDATA, -BCBIAS_J*4);
2227 } 2232 }
2228 break; 2233 break;
2229 2234
2230 /* -- Unary test and copy ops ------------------------------------------- */ 2235 /* -- Unary test and copy ops ------------------------------------------- */
2231 2236
2232 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2237 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2233 dasm_put(Dst, 11887, LJ_TISTRUECOND); 2238 dasm_put(Dst, 11975, LJ_TISTRUECOND);
2234 if (op == BC_IST || op == BC_ISTC) { 2239 if (op == BC_IST || op == BC_ISTC) {
2235 dasm_put(Dst, 11211); 2240 dasm_put(Dst, 11299);
2236 } else { 2241 } else {
2237 dasm_put(Dst, 11206); 2242 dasm_put(Dst, 11294);
2238 } 2243 }
2239 if (op == BC_ISTC || op == BC_ISFC) { 2244 if (op == BC_ISTC || op == BC_ISFC) {
2240 dasm_put(Dst, 11899); 2245 dasm_put(Dst, 11987);
2241 } 2246 }
2242 dasm_put(Dst, 11216, -BCBIAS_J*4); 2247 dasm_put(Dst, 11304, -BCBIAS_J*4);
2243 break; 2248 break;
2244 2249
2245 /* -- Unary ops --------------------------------------------------------- */ 2250 /* -- Unary ops --------------------------------------------------------- */
2246 2251
2247 case BC_MOV: 2252 case BC_MOV:
2248 dasm_put(Dst, 11910); 2253 dasm_put(Dst, 11998);
2249 break; 2254 break;
2250 case BC_NOT: 2255 case BC_NOT:
2251 dasm_put(Dst, 11943, LJ_TISTRUECOND, LJ_TTRUE); 2256 dasm_put(Dst, 12031, LJ_TISTRUECOND, LJ_TTRUE);
2252 break; 2257 break;
2253 case BC_UNM: 2258 case BC_UNM:
2254 if (LJ_DUALNUM) { 2259 if (LJ_DUALNUM) {
2255 dasm_put(Dst, 11978, LJ_TISNUM, LJ_TISNUM); 2260 dasm_put(Dst, 12066, LJ_TISNUM, LJ_TISNUM);
2256 } else { 2261 } else {
2257 dasm_put(Dst, 12054, LJ_TISNUM); 2262 dasm_put(Dst, 12142, LJ_TISNUM);
2258 } 2263 }
2259 if (sse) { 2264 if (sse) {
2260 dasm_put(Dst, 12065); 2265 dasm_put(Dst, 12153);
2261 } else { 2266 } else {
2262 dasm_put(Dst, 12095); 2267 dasm_put(Dst, 12183);
2263 } 2268 }
2264 if (LJ_DUALNUM) { 2269 if (LJ_DUALNUM) {
2265 dasm_put(Dst, 11485); 2270 dasm_put(Dst, 11573);
2266 } else { 2271 } else {
2267 dasm_put(Dst, 11228); 2272 dasm_put(Dst, 11316);
2268 } 2273 }
2269 break; 2274 break;
2270 case BC_LEN: 2275 case BC_LEN:
2271 dasm_put(Dst, 12104, LJ_TSTR); 2276 dasm_put(Dst, 12192, LJ_TSTR);
2272 if (LJ_DUALNUM) { 2277 if (LJ_DUALNUM) {
2273 dasm_put(Dst, 12118, Dt5(->len), LJ_TISNUM); 2278 dasm_put(Dst, 12206, Dt5(->len), LJ_TISNUM);
2274 } else if (sse) { 2279 } else if (sse) {
2275 dasm_put(Dst, 12132, Dt5(->len)); 2280 dasm_put(Dst, 12220, Dt5(->len));
2276 } else { 2281 } else {
2277 dasm_put(Dst, 12150, Dt5(->len)); 2282 dasm_put(Dst, 12238, Dt5(->len));
2278 } 2283 }
2279 dasm_put(Dst, 12159, LJ_TTAB); 2284 dasm_put(Dst, 12247, LJ_TTAB);
2280 if (LJ_DUALNUM) { 2285 if (LJ_DUALNUM) {
2281 } else if (sse) { 2286 } else if (sse) {
2282 dasm_put(Dst, 12199); 2287 dasm_put(Dst, 12287);
2283 } else { 2288 } else {
2284 dasm_put(Dst, 12205); 2289 dasm_put(Dst, 12293);
2285 } 2290 }
2286 dasm_put(Dst, 12212); 2291 dasm_put(Dst, 12300);
2287 break; 2292 break;
2288 2293
2289 /* -- Binary ops -------------------------------------------------------- */ 2294 /* -- Binary ops -------------------------------------------------------- */
@@ -2291,471 +2296,471 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2291 2296
2292 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2297 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2293 if (LJ_DUALNUM) { 2298 if (LJ_DUALNUM) {
2294 dasm_put(Dst, 12225); 2299 dasm_put(Dst, 12313);
2295 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2300 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2296 switch (vk) { 2301 switch (vk) {
2297 case 0: 2302 case 0:
2298 dasm_put(Dst, 12233, LJ_TISNUM, LJ_TISNUM); 2303 dasm_put(Dst, 12321, LJ_TISNUM, LJ_TISNUM);
2299 break; 2304 break;
2300 case 1: 2305 case 1:
2301 dasm_put(Dst, 12266, LJ_TISNUM, LJ_TISNUM); 2306 dasm_put(Dst, 12354, LJ_TISNUM, LJ_TISNUM);
2302 break; 2307 break;
2303 default: 2308 default:
2304 dasm_put(Dst, 12299, LJ_TISNUM, LJ_TISNUM); 2309 dasm_put(Dst, 12387, LJ_TISNUM, LJ_TISNUM);
2305 break; 2310 break;
2306 } 2311 }
2307 dasm_put(Dst, 12332, LJ_TISNUM); 2312 dasm_put(Dst, 12420, LJ_TISNUM);
2308 if (vk == 1) { 2313 if (vk == 1) {
2309 dasm_put(Dst, 12128); 2314 dasm_put(Dst, 12216);
2310 } else { 2315 } else {
2311 dasm_put(Dst, 11906); 2316 dasm_put(Dst, 11994);
2312 } 2317 }
2313 dasm_put(Dst, 11228); 2318 dasm_put(Dst, 11316);
2314 } else { 2319 } else {
2315 dasm_put(Dst, 12225); 2320 dasm_put(Dst, 12313);
2316 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2321 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2317 switch (vk) { 2322 switch (vk) {
2318 case 0: 2323 case 0:
2319 dasm_put(Dst, 12338, LJ_TISNUM); 2324 dasm_put(Dst, 12426, LJ_TISNUM);
2320 if (LJ_DUALNUM) { 2325 if (LJ_DUALNUM) {
2321 dasm_put(Dst, 12350, LJ_TISNUM); 2326 dasm_put(Dst, 12438, LJ_TISNUM);
2322 } 2327 }
2323 if (sse) { 2328 if (sse) {
2324 dasm_put(Dst, 12361); 2329 dasm_put(Dst, 12449);
2325 } else { 2330 } else {
2326 dasm_put(Dst, 12375); 2331 dasm_put(Dst, 12463);
2327 } 2332 }
2328 break; 2333 break;
2329 case 1: 2334 case 1:
2330 dasm_put(Dst, 12383, LJ_TISNUM); 2335 dasm_put(Dst, 12471, LJ_TISNUM);
2331 if (LJ_DUALNUM) { 2336 if (LJ_DUALNUM) {
2332 dasm_put(Dst, 12395, LJ_TISNUM); 2337 dasm_put(Dst, 12483, LJ_TISNUM);
2333 } 2338 }
2334 if (sse) { 2339 if (sse) {
2335 dasm_put(Dst, 12406); 2340 dasm_put(Dst, 12494);
2336 } else { 2341 } else {
2337 dasm_put(Dst, 12420); 2342 dasm_put(Dst, 12508);
2338 } 2343 }
2339 break; 2344 break;
2340 default: 2345 default:
2341 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2346 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2342 if (sse) { 2347 if (sse) {
2343 dasm_put(Dst, 12450); 2348 dasm_put(Dst, 12538);
2344 } else { 2349 } else {
2345 dasm_put(Dst, 12464); 2350 dasm_put(Dst, 12552);
2346 } 2351 }
2347 break; 2352 break;
2348 } 2353 }
2349 if (sse) { 2354 if (sse) {
2350 dasm_put(Dst, 12088); 2355 dasm_put(Dst, 12176);
2351 } else { 2356 } else {
2352 dasm_put(Dst, 12100); 2357 dasm_put(Dst, 12188);
2353 } 2358 }
2354 dasm_put(Dst, 11228); 2359 dasm_put(Dst, 11316);
2355 } 2360 }
2356 break; 2361 break;
2357 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2362 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2358 if (LJ_DUALNUM) { 2363 if (LJ_DUALNUM) {
2359 dasm_put(Dst, 12225); 2364 dasm_put(Dst, 12313);
2360 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2365 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2361 switch (vk) { 2366 switch (vk) {
2362 case 0: 2367 case 0:
2363 dasm_put(Dst, 12472, LJ_TISNUM, LJ_TISNUM); 2368 dasm_put(Dst, 12560, LJ_TISNUM, LJ_TISNUM);
2364 break; 2369 break;
2365 case 1: 2370 case 1:
2366 dasm_put(Dst, 12505, LJ_TISNUM, LJ_TISNUM); 2371 dasm_put(Dst, 12593, LJ_TISNUM, LJ_TISNUM);
2367 break; 2372 break;
2368 default: 2373 default:
2369 dasm_put(Dst, 12538, LJ_TISNUM, LJ_TISNUM); 2374 dasm_put(Dst, 12626, LJ_TISNUM, LJ_TISNUM);
2370 break; 2375 break;
2371 } 2376 }
2372 dasm_put(Dst, 12332, LJ_TISNUM); 2377 dasm_put(Dst, 12420, LJ_TISNUM);
2373 if (vk == 1) { 2378 if (vk == 1) {
2374 dasm_put(Dst, 12128); 2379 dasm_put(Dst, 12216);
2375 } else { 2380 } else {
2376 dasm_put(Dst, 11906); 2381 dasm_put(Dst, 11994);
2377 } 2382 }
2378 dasm_put(Dst, 11228); 2383 dasm_put(Dst, 11316);
2379 } else { 2384 } else {
2380 dasm_put(Dst, 12225); 2385 dasm_put(Dst, 12313);
2381 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2386 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2382 switch (vk) { 2387 switch (vk) {
2383 case 0: 2388 case 0:
2384 dasm_put(Dst, 12338, LJ_TISNUM); 2389 dasm_put(Dst, 12426, LJ_TISNUM);
2385 if (LJ_DUALNUM) { 2390 if (LJ_DUALNUM) {
2386 dasm_put(Dst, 12350, LJ_TISNUM); 2391 dasm_put(Dst, 12438, LJ_TISNUM);
2387 } 2392 }
2388 if (sse) { 2393 if (sse) {
2389 dasm_put(Dst, 12571); 2394 dasm_put(Dst, 12659);
2390 } else { 2395 } else {
2391 dasm_put(Dst, 12585); 2396 dasm_put(Dst, 12673);
2392 } 2397 }
2393 break; 2398 break;
2394 case 1: 2399 case 1:
2395 dasm_put(Dst, 12383, LJ_TISNUM); 2400 dasm_put(Dst, 12471, LJ_TISNUM);
2396 if (LJ_DUALNUM) { 2401 if (LJ_DUALNUM) {
2397 dasm_put(Dst, 12395, LJ_TISNUM); 2402 dasm_put(Dst, 12483, LJ_TISNUM);
2398 } 2403 }
2399 if (sse) { 2404 if (sse) {
2400 dasm_put(Dst, 12593); 2405 dasm_put(Dst, 12681);
2401 } else { 2406 } else {
2402 dasm_put(Dst, 12607); 2407 dasm_put(Dst, 12695);
2403 } 2408 }
2404 break; 2409 break;
2405 default: 2410 default:
2406 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2411 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2407 if (sse) { 2412 if (sse) {
2408 dasm_put(Dst, 12615); 2413 dasm_put(Dst, 12703);
2409 } else { 2414 } else {
2410 dasm_put(Dst, 12629); 2415 dasm_put(Dst, 12717);
2411 } 2416 }
2412 break; 2417 break;
2413 } 2418 }
2414 if (sse) { 2419 if (sse) {
2415 dasm_put(Dst, 12088); 2420 dasm_put(Dst, 12176);
2416 } else { 2421 } else {
2417 dasm_put(Dst, 12100); 2422 dasm_put(Dst, 12188);
2418 } 2423 }
2419 dasm_put(Dst, 11228); 2424 dasm_put(Dst, 11316);
2420 } 2425 }
2421 break; 2426 break;
2422 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2427 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2423 if (LJ_DUALNUM) { 2428 if (LJ_DUALNUM) {
2424 dasm_put(Dst, 12225); 2429 dasm_put(Dst, 12313);
2425 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2430 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2426 switch (vk) { 2431 switch (vk) {
2427 case 0: 2432 case 0:
2428 dasm_put(Dst, 12637, LJ_TISNUM, LJ_TISNUM); 2433 dasm_put(Dst, 12725, LJ_TISNUM, LJ_TISNUM);
2429 break; 2434 break;
2430 case 1: 2435 case 1:
2431 dasm_put(Dst, 12671, LJ_TISNUM, LJ_TISNUM); 2436 dasm_put(Dst, 12759, LJ_TISNUM, LJ_TISNUM);
2432 break; 2437 break;
2433 default: 2438 default:
2434 dasm_put(Dst, 12705, LJ_TISNUM, LJ_TISNUM); 2439 dasm_put(Dst, 12793, LJ_TISNUM, LJ_TISNUM);
2435 break; 2440 break;
2436 } 2441 }
2437 dasm_put(Dst, 12332, LJ_TISNUM); 2442 dasm_put(Dst, 12420, LJ_TISNUM);
2438 if (vk == 1) { 2443 if (vk == 1) {
2439 dasm_put(Dst, 12128); 2444 dasm_put(Dst, 12216);
2440 } else { 2445 } else {
2441 dasm_put(Dst, 11906); 2446 dasm_put(Dst, 11994);
2442 } 2447 }
2443 dasm_put(Dst, 11228); 2448 dasm_put(Dst, 11316);
2444 } else { 2449 } else {
2445 dasm_put(Dst, 12225); 2450 dasm_put(Dst, 12313);
2446 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2451 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2447 switch (vk) { 2452 switch (vk) {
2448 case 0: 2453 case 0:
2449 dasm_put(Dst, 12338, LJ_TISNUM); 2454 dasm_put(Dst, 12426, LJ_TISNUM);
2450 if (LJ_DUALNUM) { 2455 if (LJ_DUALNUM) {
2451 dasm_put(Dst, 12350, LJ_TISNUM); 2456 dasm_put(Dst, 12438, LJ_TISNUM);
2452 } 2457 }
2453 if (sse) { 2458 if (sse) {
2454 dasm_put(Dst, 12739); 2459 dasm_put(Dst, 12827);
2455 } else { 2460 } else {
2456 dasm_put(Dst, 12753); 2461 dasm_put(Dst, 12841);
2457 } 2462 }
2458 break; 2463 break;
2459 case 1: 2464 case 1:
2460 dasm_put(Dst, 12383, LJ_TISNUM); 2465 dasm_put(Dst, 12471, LJ_TISNUM);
2461 if (LJ_DUALNUM) { 2466 if (LJ_DUALNUM) {
2462 dasm_put(Dst, 12395, LJ_TISNUM); 2467 dasm_put(Dst, 12483, LJ_TISNUM);
2463 } 2468 }
2464 if (sse) { 2469 if (sse) {
2465 dasm_put(Dst, 12761); 2470 dasm_put(Dst, 12849);
2466 } else { 2471 } else {
2467 dasm_put(Dst, 12775); 2472 dasm_put(Dst, 12863);
2468 } 2473 }
2469 break; 2474 break;
2470 default: 2475 default:
2471 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2476 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2472 if (sse) { 2477 if (sse) {
2473 dasm_put(Dst, 12783); 2478 dasm_put(Dst, 12871);
2474 } else { 2479 } else {
2475 dasm_put(Dst, 12797); 2480 dasm_put(Dst, 12885);
2476 } 2481 }
2477 break; 2482 break;
2478 } 2483 }
2479 if (sse) { 2484 if (sse) {
2480 dasm_put(Dst, 12088); 2485 dasm_put(Dst, 12176);
2481 } else { 2486 } else {
2482 dasm_put(Dst, 12100); 2487 dasm_put(Dst, 12188);
2483 } 2488 }
2484 dasm_put(Dst, 11228); 2489 dasm_put(Dst, 11316);
2485 } 2490 }
2486 break; 2491 break;
2487 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2492 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2488 dasm_put(Dst, 12225); 2493 dasm_put(Dst, 12313);
2489 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2494 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2490 switch (vk) { 2495 switch (vk) {
2491 case 0: 2496 case 0:
2492 dasm_put(Dst, 12338, LJ_TISNUM); 2497 dasm_put(Dst, 12426, LJ_TISNUM);
2493 if (LJ_DUALNUM) { 2498 if (LJ_DUALNUM) {
2494 dasm_put(Dst, 12350, LJ_TISNUM); 2499 dasm_put(Dst, 12438, LJ_TISNUM);
2495 } 2500 }
2496 if (sse) { 2501 if (sse) {
2497 dasm_put(Dst, 12805); 2502 dasm_put(Dst, 12893);
2498 } else { 2503 } else {
2499 dasm_put(Dst, 12819); 2504 dasm_put(Dst, 12907);
2500 } 2505 }
2501 break; 2506 break;
2502 case 1: 2507 case 1:
2503 dasm_put(Dst, 12383, LJ_TISNUM); 2508 dasm_put(Dst, 12471, LJ_TISNUM);
2504 if (LJ_DUALNUM) { 2509 if (LJ_DUALNUM) {
2505 dasm_put(Dst, 12395, LJ_TISNUM); 2510 dasm_put(Dst, 12483, LJ_TISNUM);
2506 } 2511 }
2507 if (sse) { 2512 if (sse) {
2508 dasm_put(Dst, 12827); 2513 dasm_put(Dst, 12915);
2509 } else { 2514 } else {
2510 dasm_put(Dst, 12841); 2515 dasm_put(Dst, 12929);
2511 } 2516 }
2512 break; 2517 break;
2513 default: 2518 default:
2514 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2519 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2515 if (sse) { 2520 if (sse) {
2516 dasm_put(Dst, 12849); 2521 dasm_put(Dst, 12937);
2517 } else { 2522 } else {
2518 dasm_put(Dst, 12863); 2523 dasm_put(Dst, 12951);
2519 } 2524 }
2520 break; 2525 break;
2521 } 2526 }
2522 if (sse) { 2527 if (sse) {
2523 dasm_put(Dst, 12088); 2528 dasm_put(Dst, 12176);
2524 } else { 2529 } else {
2525 dasm_put(Dst, 12100); 2530 dasm_put(Dst, 12188);
2526 } 2531 }
2527 dasm_put(Dst, 11228); 2532 dasm_put(Dst, 11316);
2528 break; 2533 break;
2529 case BC_MODVN: 2534 case BC_MODVN:
2530 dasm_put(Dst, 12225); 2535 dasm_put(Dst, 12313);
2531 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2536 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2532 switch (vk) { 2537 switch (vk) {
2533 case 0: 2538 case 0:
2534 dasm_put(Dst, 12338, LJ_TISNUM); 2539 dasm_put(Dst, 12426, LJ_TISNUM);
2535 if (LJ_DUALNUM) { 2540 if (LJ_DUALNUM) {
2536 dasm_put(Dst, 12350, LJ_TISNUM); 2541 dasm_put(Dst, 12438, LJ_TISNUM);
2537 } 2542 }
2538 if (sse) { 2543 if (sse) {
2539 dasm_put(Dst, 12871); 2544 dasm_put(Dst, 12959);
2540 } else { 2545 } else {
2541 dasm_put(Dst, 12885); 2546 dasm_put(Dst, 12973);
2542 } 2547 }
2543 break; 2548 break;
2544 case 1: 2549 case 1:
2545 dasm_put(Dst, 12383, LJ_TISNUM); 2550 dasm_put(Dst, 12471, LJ_TISNUM);
2546 if (LJ_DUALNUM) { 2551 if (LJ_DUALNUM) {
2547 dasm_put(Dst, 12395, LJ_TISNUM); 2552 dasm_put(Dst, 12483, LJ_TISNUM);
2548 } 2553 }
2549 if (sse) { 2554 if (sse) {
2550 dasm_put(Dst, 12893); 2555 dasm_put(Dst, 12981);
2551 } else { 2556 } else {
2552 dasm_put(Dst, 12907); 2557 dasm_put(Dst, 12995);
2553 } 2558 }
2554 break; 2559 break;
2555 default: 2560 default:
2556 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2561 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2557 if (sse) { 2562 if (sse) {
2558 dasm_put(Dst, 12915); 2563 dasm_put(Dst, 13003);
2559 } else { 2564 } else {
2560 dasm_put(Dst, 12929); 2565 dasm_put(Dst, 13017);
2561 } 2566 }
2562 break; 2567 break;
2563 } 2568 }
2564 dasm_put(Dst, 12937); 2569 dasm_put(Dst, 13025);
2565 if (sse) { 2570 if (sse) {
2566 dasm_put(Dst, 12088); 2571 dasm_put(Dst, 12176);
2567 } else { 2572 } else {
2568 dasm_put(Dst, 12100); 2573 dasm_put(Dst, 12188);
2569 } 2574 }
2570 dasm_put(Dst, 11228); 2575 dasm_put(Dst, 11316);
2571 break; 2576 break;
2572 case BC_MODNV: case BC_MODVV: 2577 case BC_MODNV: case BC_MODVV:
2573 dasm_put(Dst, 12225); 2578 dasm_put(Dst, 12313);
2574 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2579 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2575 switch (vk) { 2580 switch (vk) {
2576 case 0: 2581 case 0:
2577 dasm_put(Dst, 12338, LJ_TISNUM); 2582 dasm_put(Dst, 12426, LJ_TISNUM);
2578 if (LJ_DUALNUM) { 2583 if (LJ_DUALNUM) {
2579 dasm_put(Dst, 12350, LJ_TISNUM); 2584 dasm_put(Dst, 12438, LJ_TISNUM);
2580 } 2585 }
2581 if (sse) { 2586 if (sse) {
2582 dasm_put(Dst, 12871); 2587 dasm_put(Dst, 12959);
2583 } else { 2588 } else {
2584 dasm_put(Dst, 12885); 2589 dasm_put(Dst, 12973);
2585 } 2590 }
2586 break; 2591 break;
2587 case 1: 2592 case 1:
2588 dasm_put(Dst, 12383, LJ_TISNUM); 2593 dasm_put(Dst, 12471, LJ_TISNUM);
2589 if (LJ_DUALNUM) { 2594 if (LJ_DUALNUM) {
2590 dasm_put(Dst, 12395, LJ_TISNUM); 2595 dasm_put(Dst, 12483, LJ_TISNUM);
2591 } 2596 }
2592 if (sse) { 2597 if (sse) {
2593 dasm_put(Dst, 12893); 2598 dasm_put(Dst, 12981);
2594 } else { 2599 } else {
2595 dasm_put(Dst, 12907); 2600 dasm_put(Dst, 12995);
2596 } 2601 }
2597 break; 2602 break;
2598 default: 2603 default:
2599 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2604 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2600 if (sse) { 2605 if (sse) {
2601 dasm_put(Dst, 12915); 2606 dasm_put(Dst, 13003);
2602 } else { 2607 } else {
2603 dasm_put(Dst, 12929); 2608 dasm_put(Dst, 13017);
2604 } 2609 }
2605 break; 2610 break;
2606 } 2611 }
2607 dasm_put(Dst, 12943); 2612 dasm_put(Dst, 13031);
2608 break; 2613 break;
2609 case BC_POW: 2614 case BC_POW:
2610 dasm_put(Dst, 12225); 2615 dasm_put(Dst, 12313);
2611 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2616 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2612 switch (vk) { 2617 switch (vk) {
2613 case 0: 2618 case 0:
2614 dasm_put(Dst, 12338, LJ_TISNUM); 2619 dasm_put(Dst, 12426, LJ_TISNUM);
2615 if (LJ_DUALNUM) { 2620 if (LJ_DUALNUM) {
2616 dasm_put(Dst, 12350, LJ_TISNUM); 2621 dasm_put(Dst, 12438, LJ_TISNUM);
2617 } 2622 }
2618 if (sse) { 2623 if (sse) {
2619 dasm_put(Dst, 12871); 2624 dasm_put(Dst, 12959);
2620 } else { 2625 } else {
2621 dasm_put(Dst, 12885); 2626 dasm_put(Dst, 12973);
2622 } 2627 }
2623 break; 2628 break;
2624 case 1: 2629 case 1:
2625 dasm_put(Dst, 12383, LJ_TISNUM); 2630 dasm_put(Dst, 12471, LJ_TISNUM);
2626 if (LJ_DUALNUM) { 2631 if (LJ_DUALNUM) {
2627 dasm_put(Dst, 12395, LJ_TISNUM); 2632 dasm_put(Dst, 12483, LJ_TISNUM);
2628 } 2633 }
2629 if (sse) { 2634 if (sse) {
2630 dasm_put(Dst, 12893); 2635 dasm_put(Dst, 12981);
2631 } else { 2636 } else {
2632 dasm_put(Dst, 12907); 2637 dasm_put(Dst, 12995);
2633 } 2638 }
2634 break; 2639 break;
2635 default: 2640 default:
2636 dasm_put(Dst, 12428, LJ_TISNUM, LJ_TISNUM); 2641 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM);
2637 if (sse) { 2642 if (sse) {
2638 dasm_put(Dst, 12915); 2643 dasm_put(Dst, 13003);
2639 } else { 2644 } else {
2640 dasm_put(Dst, 12929); 2645 dasm_put(Dst, 13017);
2641 } 2646 }
2642 break; 2647 break;
2643 } 2648 }
2644 dasm_put(Dst, 12948); 2649 dasm_put(Dst, 13036);
2645 if (sse) { 2650 if (sse) {
2646 dasm_put(Dst, 12088); 2651 dasm_put(Dst, 12176);
2647 } else { 2652 } else {
2648 dasm_put(Dst, 12100); 2653 dasm_put(Dst, 12188);
2649 } 2654 }
2650 dasm_put(Dst, 11228); 2655 dasm_put(Dst, 11316);
2651 break; 2656 break;
2652 2657
2653 case BC_CAT: 2658 case BC_CAT:
2654 dasm_put(Dst, 12952, Dt1(->base), Dt1(->base)); 2659 dasm_put(Dst, 13040, Dt1(->base), Dt1(->base));
2655 break; 2660 break;
2656 2661
2657 /* -- Constant ops ------------------------------------------------------ */ 2662 /* -- Constant ops ------------------------------------------------------ */
2658 2663
2659 case BC_KSTR: 2664 case BC_KSTR:
2660 dasm_put(Dst, 13046, LJ_TSTR); 2665 dasm_put(Dst, 13134, LJ_TSTR);
2661 break; 2666 break;
2662 case BC_KCDATA: 2667 case BC_KCDATA:
2663#if LJ_HASFFI 2668#if LJ_HASFFI
2664 dasm_put(Dst, 13046, LJ_TCDATA); 2669 dasm_put(Dst, 13134, LJ_TCDATA);
2665#endif 2670#endif
2666 break; 2671 break;
2667 case BC_KSHORT: 2672 case BC_KSHORT:
2668 if (LJ_DUALNUM) { 2673 if (LJ_DUALNUM) {
2669 dasm_put(Dst, 13079, LJ_TISNUM); 2674 dasm_put(Dst, 13167, LJ_TISNUM);
2670 } else if (sse) { 2675 } else if (sse) {
2671 dasm_put(Dst, 13091); 2676 dasm_put(Dst, 13179);
2672 } else { 2677 } else {
2673 dasm_put(Dst, 13106); 2678 dasm_put(Dst, 13194);
2674 } 2679 }
2675 dasm_put(Dst, 11228); 2680 dasm_put(Dst, 11316);
2676 break; 2681 break;
2677 case BC_KNUM: 2682 case BC_KNUM:
2678 if (sse) { 2683 if (sse) {
2679 dasm_put(Dst, 13114); 2684 dasm_put(Dst, 13202);
2680 } else { 2685 } else {
2681 dasm_put(Dst, 13127); 2686 dasm_put(Dst, 13215);
2682 } 2687 }
2683 dasm_put(Dst, 11228); 2688 dasm_put(Dst, 11316);
2684 break; 2689 break;
2685 case BC_KPRI: 2690 case BC_KPRI:
2686 dasm_put(Dst, 13134); 2691 dasm_put(Dst, 13222);
2687 break; 2692 break;
2688 case BC_KNIL: 2693 case BC_KNIL:
2689 dasm_put(Dst, 13160, LJ_TNIL); 2694 dasm_put(Dst, 13248, LJ_TNIL);
2690 break; 2695 break;
2691 2696
2692 /* -- Upvalue and function ops ------------------------------------------ */ 2697 /* -- Upvalue and function ops ------------------------------------------ */
2693 2698
2694 case BC_UGET: 2699 case BC_UGET:
2695 dasm_put(Dst, 13206, offsetof(GCfuncL, uvptr), DtA(->v)); 2700 dasm_put(Dst, 13294, offsetof(GCfuncL, uvptr), DtA(->v));
2696 break; 2701 break;
2697 case BC_USETV: 2702 case BC_USETV:
2698#define TV2MARKOFS \ 2703#define TV2MARKOFS \
2699 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2704 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2700 dasm_put(Dst, 13250, 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); 2705 dasm_put(Dst, 13338, 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);
2701 dasm_put(Dst, 13340); 2706 dasm_put(Dst, 13428);
2702 break; 2707 break;
2703#undef TV2MARKOFS 2708#undef TV2MARKOFS
2704 case BC_USETS: 2709 case BC_USETS:
2705 dasm_put(Dst, 13352, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2710 dasm_put(Dst, 13440, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2706 break; 2711 break;
2707 case BC_USETN: 2712 case BC_USETN:
2708 dasm_put(Dst, 13443); 2713 dasm_put(Dst, 13531);
2709 if (sse) { 2714 if (sse) {
2710 dasm_put(Dst, 13448); 2715 dasm_put(Dst, 13536);
2711 } else { 2716 } else {
2712 dasm_put(Dst, 11738); 2717 dasm_put(Dst, 11826);
2713 } 2718 }
2714 dasm_put(Dst, 13455, offsetof(GCfuncL, uvptr), DtA(->v)); 2719 dasm_put(Dst, 13543, offsetof(GCfuncL, uvptr), DtA(->v));
2715 if (sse) { 2720 if (sse) {
2716 dasm_put(Dst, 13464); 2721 dasm_put(Dst, 13552);
2717 } else { 2722 } else {
2718 dasm_put(Dst, 13470); 2723 dasm_put(Dst, 13558);
2719 } 2724 }
2720 dasm_put(Dst, 11228); 2725 dasm_put(Dst, 11316);
2721 break; 2726 break;
2722 case BC_USETP: 2727 case BC_USETP:
2723 dasm_put(Dst, 13473, offsetof(GCfuncL, uvptr), DtA(->v)); 2728 dasm_put(Dst, 13561, offsetof(GCfuncL, uvptr), DtA(->v));
2724 break; 2729 break;
2725 case BC_UCLO: 2730 case BC_UCLO:
2726 dasm_put(Dst, 13510, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2731 dasm_put(Dst, 13598, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2727 break; 2732 break;
2728 2733
2729 case BC_FNEW: 2734 case BC_FNEW:
2730 dasm_put(Dst, 13564, Dt1(->base), Dt1(->base), LJ_TFUNC); 2735 dasm_put(Dst, 13652, Dt1(->base), Dt1(->base), LJ_TFUNC);
2731 break; 2736 break;
2732 2737
2733 /* -- Table ops --------------------------------------------------------- */ 2738 /* -- Table ops --------------------------------------------------------- */
2734 2739
2735 case BC_TNEW: 2740 case BC_TNEW:
2736 dasm_put(Dst, 13635, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2741 dasm_put(Dst, 13723, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2737 break; 2742 break;
2738 case BC_TDUP: 2743 case BC_TDUP:
2739 dasm_put(Dst, 13761, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2744 dasm_put(Dst, 13849, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2740 break; 2745 break;
2741 2746
2742 case BC_GGET: 2747 case BC_GGET:
2743 dasm_put(Dst, 13853, Dt7(->env)); 2748 dasm_put(Dst, 13941, Dt7(->env));
2744 break; 2749 break;
2745 case BC_GSET: 2750 case BC_GSET:
2746 dasm_put(Dst, 13871, Dt7(->env)); 2751 dasm_put(Dst, 13959, Dt7(->env));
2747 break; 2752 break;
2748 2753
2749 case BC_TGETV: 2754 case BC_TGETV:
2750 dasm_put(Dst, 13889, LJ_TTAB); 2755 dasm_put(Dst, 13977, LJ_TTAB);
2751 if (LJ_DUALNUM) { 2756 if (LJ_DUALNUM) {
2752 dasm_put(Dst, 13912, LJ_TISNUM); 2757 dasm_put(Dst, 14000, LJ_TISNUM);
2753 } else { 2758 } else {
2754 dasm_put(Dst, 13926, LJ_TISNUM); 2759 dasm_put(Dst, 14014, LJ_TISNUM);
2755 if (sse) { 2760 if (sse) {
2756 dasm_put(Dst, 13937); 2761 dasm_put(Dst, 14025);
2757 } else { 2762 } else {
2758 dasm_put(Dst, 13958); 2763 dasm_put(Dst, 14046);
2759 if (cmov) { 2764 if (cmov) {
2760 dasm_put(Dst, 3924); 2765 dasm_put(Dst, 3924);
2761 } else { 2766 } else {
@@ -2763,30 +2768,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2763 } 2768 }
2764 dasm_put(Dst, 2660); 2769 dasm_put(Dst, 2660);
2765 } 2770 }
2766 dasm_put(Dst, 13968); 2771 dasm_put(Dst, 14056);
2767 } 2772 }
2768 dasm_put(Dst, 13973, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2773 dasm_put(Dst, 14061, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2769 dasm_put(Dst, 14068, LJ_TSTR); 2774 dasm_put(Dst, 14156, LJ_TSTR);
2770 break; 2775 break;
2771 case BC_TGETS: 2776 case BC_TGETS:
2772 dasm_put(Dst, 14086, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2777 dasm_put(Dst, 14174, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2773 dasm_put(Dst, 14174, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2778 dasm_put(Dst, 14262, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2774 break; 2779 break;
2775 case BC_TGETB: 2780 case BC_TGETB:
2776 dasm_put(Dst, 14244, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2781 dasm_put(Dst, 14332, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2777 dasm_put(Dst, 14343, LJ_TNIL); 2782 dasm_put(Dst, 14431, LJ_TNIL);
2778 break; 2783 break;
2779 2784
2780 case BC_TSETV: 2785 case BC_TSETV:
2781 dasm_put(Dst, 14360, LJ_TTAB); 2786 dasm_put(Dst, 14448, LJ_TTAB);
2782 if (LJ_DUALNUM) { 2787 if (LJ_DUALNUM) {
2783 dasm_put(Dst, 13912, LJ_TISNUM); 2788 dasm_put(Dst, 14000, LJ_TISNUM);
2784 } else { 2789 } else {
2785 dasm_put(Dst, 13926, LJ_TISNUM); 2790 dasm_put(Dst, 14014, LJ_TISNUM);
2786 if (sse) { 2791 if (sse) {
2787 dasm_put(Dst, 13937); 2792 dasm_put(Dst, 14025);
2788 } else { 2793 } else {
2789 dasm_put(Dst, 13958); 2794 dasm_put(Dst, 14046);
2790 if (cmov) { 2795 if (cmov) {
2791 dasm_put(Dst, 3924); 2796 dasm_put(Dst, 3924);
2792 } else { 2797 } else {
@@ -2794,115 +2799,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2794 } 2799 }
2795 dasm_put(Dst, 2660); 2800 dasm_put(Dst, 2660);
2796 } 2801 }
2797 dasm_put(Dst, 14383); 2802 dasm_put(Dst, 14471);
2798 } 2803 }
2799 dasm_put(Dst, 14388, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2804 dasm_put(Dst, 14476, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2800 dasm_put(Dst, 14472, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2805 dasm_put(Dst, 14560, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2801 break; 2806 break;
2802 case BC_TSETS: 2807 case BC_TSETS:
2803 dasm_put(Dst, 14529, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2808 dasm_put(Dst, 14617, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2804 dasm_put(Dst, 14604, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2809 dasm_put(Dst, 14692, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2805 dasm_put(Dst, 14696, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2810 dasm_put(Dst, 14784, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2806 break; 2811 break;
2807 case BC_TSETB: 2812 case BC_TSETB:
2808 dasm_put(Dst, 14792, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2813 dasm_put(Dst, 14880, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2809 dasm_put(Dst, 14890, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2814 dasm_put(Dst, 14978, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2810 break; 2815 break;
2811 2816
2812 case BC_TSETM: 2817 case BC_TSETM:
2813 dasm_put(Dst, 14936, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2818 dasm_put(Dst, 15024, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2814 dasm_put(Dst, 15085, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2819 dasm_put(Dst, 15173, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2815 break; 2820 break;
2816 2821
2817 /* -- Calls and vararg handling ----------------------------------------- */ 2822 /* -- Calls and vararg handling ----------------------------------------- */
2818 2823
2819 case BC_CALL: case BC_CALLM: 2824 case BC_CALL: case BC_CALLM:
2820 dasm_put(Dst, 12229); 2825 dasm_put(Dst, 12317);
2821 if (op == BC_CALLM) { 2826 if (op == BC_CALLM) {
2822 dasm_put(Dst, 15103); 2827 dasm_put(Dst, 15191);
2823 } 2828 }
2824 dasm_put(Dst, 15108, LJ_TFUNC, Dt7(->pc)); 2829 dasm_put(Dst, 15196, LJ_TFUNC, Dt7(->pc));
2825 break; 2830 break;
2826 2831
2827 case BC_CALLMT: 2832 case BC_CALLMT:
2828 dasm_put(Dst, 15103); 2833 dasm_put(Dst, 15191);
2829 break; 2834 break;
2830 case BC_CALLT: 2835 case BC_CALLT:
2831 dasm_put(Dst, 15149, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2836 dasm_put(Dst, 15237, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2832 dasm_put(Dst, 15267, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2837 dasm_put(Dst, 15355, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2833 break; 2838 break;
2834 2839
2835 case BC_ITERC: 2840 case BC_ITERC:
2836 dasm_put(Dst, 15337, LJ_TFUNC, 2+1, Dt7(->pc)); 2841 dasm_put(Dst, 15425, LJ_TFUNC, 2+1, Dt7(->pc));
2837 break; 2842 break;
2838 2843
2839 case BC_ITERN: 2844 case BC_ITERN:
2840#if LJ_HASJIT 2845#if LJ_HASJIT
2841#endif 2846#endif
2842 dasm_put(Dst, 15417, Dt6(->asize), Dt6(->array), LJ_TNIL); 2847 dasm_put(Dst, 15505, Dt6(->asize), Dt6(->array), LJ_TNIL);
2843 if (LJ_DUALNUM) { 2848 if (LJ_DUALNUM) {
2844 dasm_put(Dst, 12123, LJ_TISNUM); 2849 dasm_put(Dst, 12211, LJ_TISNUM);
2845 } else if (sse) { 2850 } else if (sse) {
2846 dasm_put(Dst, 12199); 2851 dasm_put(Dst, 12287);
2847 } else { 2852 } else {
2848 dasm_put(Dst, 15463); 2853 dasm_put(Dst, 15551);
2849 } 2854 }
2850 dasm_put(Dst, 15469); 2855 dasm_put(Dst, 15557);
2851 if (LJ_DUALNUM) { 2856 if (LJ_DUALNUM) {
2852 } else if (sse) { 2857 } else if (sse) {
2853 dasm_put(Dst, 12088); 2858 dasm_put(Dst, 12176);
2854 } else { 2859 } else {
2855 dasm_put(Dst, 12100); 2860 dasm_put(Dst, 12188);
2856 } 2861 }
2857 dasm_put(Dst, 15488, -BCBIAS_J*4); 2862 dasm_put(Dst, 15576, -BCBIAS_J*4);
2858 if (!LJ_DUALNUM && !sse) { 2863 if (!LJ_DUALNUM && !sse) {
2859 dasm_put(Dst, 15539); 2864 dasm_put(Dst, 15627);
2860 } 2865 }
2861 dasm_put(Dst, 15545, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2866 dasm_put(Dst, 15633, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2862 dasm_put(Dst, 15620); 2867 dasm_put(Dst, 15708);
2863 break; 2868 break;
2864 2869
2865 case BC_ISNEXT: 2870 case BC_ISNEXT:
2866 dasm_put(Dst, 15628, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2871 dasm_put(Dst, 15716, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2867 break; 2872 break;
2868 2873
2869 case BC_VARG: 2874 case BC_VARG:
2870 dasm_put(Dst, 15727, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2875 dasm_put(Dst, 15815, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2871 dasm_put(Dst, 15891, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2876 dasm_put(Dst, 15979, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2872 break; 2877 break;
2873 2878
2874 /* -- Returns ----------------------------------------------------------- */ 2879 /* -- Returns ----------------------------------------------------------- */
2875 2880
2876 case BC_RETM: 2881 case BC_RETM:
2877 dasm_put(Dst, 15103); 2882 dasm_put(Dst, 15191);
2878 break; 2883 break;
2879 2884
2880 case BC_RET: case BC_RET0: case BC_RET1: 2885 case BC_RET: case BC_RET0: case BC_RET1:
2881 if (op != BC_RET0) { 2886 if (op != BC_RET0) {
2882 dasm_put(Dst, 15962); 2887 dasm_put(Dst, 16050);
2883 } 2888 }
2884 dasm_put(Dst, 15966, FRAME_TYPE); 2889 dasm_put(Dst, 16054, FRAME_TYPE);
2885 switch (op) { 2890 switch (op) {
2886 case BC_RET: 2891 case BC_RET:
2887 dasm_put(Dst, 15985); 2892 dasm_put(Dst, 16073);
2888 break; 2893 break;
2889 case BC_RET1: 2894 case BC_RET1:
2890 dasm_put(Dst, 16043); 2895 dasm_put(Dst, 16131);
2891 /* fallthrough */ 2896 /* fallthrough */
2892 case BC_RET0: 2897 case BC_RET0:
2893 dasm_put(Dst, 16059); 2898 dasm_put(Dst, 16147);
2894 default: 2899 default:
2895 break; 2900 break;
2896 } 2901 }
2897 dasm_put(Dst, 16070, Dt7(->pc), PC2PROTO(k)); 2902 dasm_put(Dst, 16158, Dt7(->pc), PC2PROTO(k));
2898 if (op == BC_RET) { 2903 if (op == BC_RET) {
2899 dasm_put(Dst, 16112, LJ_TNIL); 2904 dasm_put(Dst, 16200, LJ_TNIL);
2900 } else { 2905 } else {
2901 dasm_put(Dst, 16121, LJ_TNIL); 2906 dasm_put(Dst, 16209, LJ_TNIL);
2902 } 2907 }
2903 dasm_put(Dst, 16128, -FRAME_VARG, FRAME_TYPEP); 2908 dasm_put(Dst, 16216, -FRAME_VARG, FRAME_TYPEP);
2904 if (op != BC_RET0) { 2909 if (op != BC_RET0) {
2905 dasm_put(Dst, 16152); 2910 dasm_put(Dst, 16240);
2906 } 2911 }
2907 dasm_put(Dst, 4908); 2912 dasm_put(Dst, 4908);
2908 break; 2913 break;
@@ -2912,7 +2917,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2912 2917
2913 case BC_FORL: 2918 case BC_FORL:
2914#if LJ_HASJIT 2919#if LJ_HASJIT
2915 dasm_put(Dst, 16156, HOTCOUNT_PCMASK, GG_DISP2HOT); 2920 dasm_put(Dst, 16244, HOTCOUNT_PCMASK, GG_DISP2HOT);
2916#endif 2921#endif
2917 break; 2922 break;
2918 2923
@@ -2924,111 +2929,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2924 case BC_FORI: 2929 case BC_FORI:
2925 case BC_IFORL: 2930 case BC_IFORL:
2926 vk = (op == BC_IFORL || op == BC_JFORL); 2931 vk = (op == BC_IFORL || op == BC_JFORL);
2927 dasm_put(Dst, 16177); 2932 dasm_put(Dst, 16265);
2928 if (LJ_DUALNUM) { 2933 if (LJ_DUALNUM) {
2929 dasm_put(Dst, 16181, LJ_TISNUM); 2934 dasm_put(Dst, 16269, LJ_TISNUM);
2930 if (!vk) { 2935 if (!vk) {
2931 dasm_put(Dst, 16191, LJ_TISNUM, LJ_TISNUM); 2936 dasm_put(Dst, 16279, LJ_TISNUM, LJ_TISNUM);
2932 } else { 2937 } else {
2933#ifdef LUA_USE_ASSERT 2938#ifdef LUA_USE_ASSERT
2934 dasm_put(Dst, 16220, LJ_TISNUM, LJ_TISNUM); 2939 dasm_put(Dst, 16308, LJ_TISNUM, LJ_TISNUM);
2935#endif 2940#endif
2936 dasm_put(Dst, 16239); 2941 dasm_put(Dst, 16327);
2937 } 2942 }
2938 dasm_put(Dst, 16258, LJ_TISNUM); 2943 dasm_put(Dst, 16346, LJ_TISNUM);
2939 if (op == BC_FORI) { 2944 if (op == BC_FORI) {
2940 dasm_put(Dst, 16269, -BCBIAS_J*4); 2945 dasm_put(Dst, 16357, -BCBIAS_J*4);
2941 } else if (op == BC_JFORI) { 2946 } else if (op == BC_JFORI) {
2942 dasm_put(Dst, 16283, -BCBIAS_J*4, BC_JLOOP); 2947 dasm_put(Dst, 16371, -BCBIAS_J*4, BC_JLOOP);
2943 } else if (op == BC_IFORL) { 2948 } else if (op == BC_IFORL) {
2944 dasm_put(Dst, 16301, -BCBIAS_J*4); 2949 dasm_put(Dst, 16389, -BCBIAS_J*4);
2945 } else { 2950 } else {
2946 dasm_put(Dst, 16293, BC_JLOOP); 2951 dasm_put(Dst, 16381, BC_JLOOP);
2947 } 2952 }
2948 dasm_put(Dst, 16315); 2953 dasm_put(Dst, 16403);
2949 if (vk) { 2954 if (vk) {
2950 dasm_put(Dst, 16338); 2955 dasm_put(Dst, 16426);
2951 } 2956 }
2952 dasm_put(Dst, 16258, LJ_TISNUM); 2957 dasm_put(Dst, 16346, LJ_TISNUM);
2953 if (op == BC_FORI) { 2958 if (op == BC_FORI) {
2954 dasm_put(Dst, 16347); 2959 dasm_put(Dst, 16435);
2955 } else if (op == BC_JFORI) { 2960 } else if (op == BC_JFORI) {
2956 dasm_put(Dst, 16352, -BCBIAS_J*4, BC_JLOOP); 2961 dasm_put(Dst, 16440, -BCBIAS_J*4, BC_JLOOP);
2957 } else if (op == BC_IFORL) { 2962 } else if (op == BC_IFORL) {
2958 dasm_put(Dst, 16366); 2963 dasm_put(Dst, 16454);
2959 } else { 2964 } else {
2960 dasm_put(Dst, 16362, BC_JLOOP); 2965 dasm_put(Dst, 16450, BC_JLOOP);
2961 } 2966 }
2962 dasm_put(Dst, 16371); 2967 dasm_put(Dst, 16459);
2963 } else if (!vk) { 2968 } else if (!vk) {
2964 dasm_put(Dst, 16378, LJ_TISNUM); 2969 dasm_put(Dst, 16466, LJ_TISNUM);
2965 } 2970 }
2966 if (!vk) { 2971 if (!vk) {
2967 dasm_put(Dst, 16384, LJ_TISNUM); 2972 dasm_put(Dst, 16472, LJ_TISNUM);
2968 } else { 2973 } else {
2969#ifdef LUA_USE_ASSERT 2974#ifdef LUA_USE_ASSERT
2970 dasm_put(Dst, 16398, LJ_TISNUM, LJ_TISNUM); 2975 dasm_put(Dst, 16486, LJ_TISNUM, LJ_TISNUM);
2971#endif 2976#endif
2972 } 2977 }
2973 dasm_put(Dst, 16417); 2978 dasm_put(Dst, 16505);
2974 if (!vk) { 2979 if (!vk) {
2975 dasm_put(Dst, 16421, LJ_TISNUM); 2980 dasm_put(Dst, 16509, LJ_TISNUM);
2976 } 2981 }
2977 if (sse) { 2982 if (sse) {
2978 dasm_put(Dst, 16430); 2983 dasm_put(Dst, 16518);
2979 if (vk) { 2984 if (vk) {
2980 dasm_put(Dst, 16442); 2985 dasm_put(Dst, 16530);
2981 } else { 2986 } else {
2982 dasm_put(Dst, 16461); 2987 dasm_put(Dst, 16549);
2983 } 2988 }
2984 dasm_put(Dst, 16466); 2989 dasm_put(Dst, 16554);
2985 } else { 2990 } else {
2986 dasm_put(Dst, 16479); 2991 dasm_put(Dst, 16567);
2987 if (vk) { 2992 if (vk) {
2988 dasm_put(Dst, 16485); 2993 dasm_put(Dst, 16573);
2989 } else { 2994 } else {
2990 dasm_put(Dst, 16501); 2995 dasm_put(Dst, 16589);
2991 } 2996 }
2992 dasm_put(Dst, 16509); 2997 dasm_put(Dst, 16597);
2993 if (cmov) { 2998 if (cmov) {
2994 dasm_put(Dst, 3924); 2999 dasm_put(Dst, 3924);
2995 } else { 3000 } else {
2996 dasm_put(Dst, 3930); 3001 dasm_put(Dst, 3930);
2997 } 3002 }
2998 if (!cmov) { 3003 if (!cmov) {
2999 dasm_put(Dst, 16514); 3004 dasm_put(Dst, 16602);
3000 } 3005 }
3001 } 3006 }
3002 if (op == BC_FORI) { 3007 if (op == BC_FORI) {
3003 if (LJ_DUALNUM) { 3008 if (LJ_DUALNUM) {
3004 dasm_put(Dst, 16520); 3009 dasm_put(Dst, 16608);
3005 } else { 3010 } else {
3006 dasm_put(Dst, 16525, -BCBIAS_J*4); 3011 dasm_put(Dst, 16613, -BCBIAS_J*4);
3007 } 3012 }
3008 } else if (op == BC_JFORI) { 3013 } else if (op == BC_JFORI) {
3009 dasm_put(Dst, 16535, -BCBIAS_J*4, BC_JLOOP); 3014 dasm_put(Dst, 16623, -BCBIAS_J*4, BC_JLOOP);
3010 } else if (op == BC_IFORL) { 3015 } else if (op == BC_IFORL) {
3011 if (LJ_DUALNUM) { 3016 if (LJ_DUALNUM) {
3012 dasm_put(Dst, 16549); 3017 dasm_put(Dst, 16637);
3013 } else { 3018 } else {
3014 dasm_put(Dst, 16554, -BCBIAS_J*4); 3019 dasm_put(Dst, 16642, -BCBIAS_J*4);
3015 } 3020 }
3016 } else { 3021 } else {
3017 dasm_put(Dst, 16545, BC_JLOOP); 3022 dasm_put(Dst, 16633, BC_JLOOP);
3018 } 3023 }
3019 if (LJ_DUALNUM) { 3024 if (LJ_DUALNUM) {
3020 dasm_put(Dst, 11125); 3025 dasm_put(Dst, 11213);
3021 } else { 3026 } else {
3022 dasm_put(Dst, 11866); 3027 dasm_put(Dst, 11954);
3023 } 3028 }
3024 if (sse) { 3029 if (sse) {
3025 dasm_put(Dst, 16564); 3030 dasm_put(Dst, 16652);
3026 } 3031 }
3027 break; 3032 break;
3028 3033
3029 case BC_ITERL: 3034 case BC_ITERL:
3030#if LJ_HASJIT 3035#if LJ_HASJIT
3031 dasm_put(Dst, 16156, HOTCOUNT_PCMASK, GG_DISP2HOT); 3036 dasm_put(Dst, 16244, HOTCOUNT_PCMASK, GG_DISP2HOT);
3032#endif 3037#endif
3033 break; 3038 break;
3034 3039
@@ -3037,33 +3042,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3037 break; 3042 break;
3038#endif 3043#endif
3039 case BC_IITERL: 3044 case BC_IITERL:
3040 dasm_put(Dst, 16575, LJ_TNIL); 3045 dasm_put(Dst, 16663, LJ_TNIL);
3041 if (op == BC_JITERL) { 3046 if (op == BC_JITERL) {
3042 dasm_put(Dst, 16590, BC_JLOOP); 3047 dasm_put(Dst, 16678, BC_JLOOP);
3043 } else { 3048 } else {
3044 dasm_put(Dst, 16604, -BCBIAS_J*4); 3049 dasm_put(Dst, 16692, -BCBIAS_J*4);
3045 } 3050 }
3046 dasm_put(Dst, 11226); 3051 dasm_put(Dst, 11314);
3047 break; 3052 break;
3048 3053
3049 case BC_LOOP: 3054 case BC_LOOP:
3050#if LJ_HASJIT 3055#if LJ_HASJIT
3051 dasm_put(Dst, 16156, HOTCOUNT_PCMASK, GG_DISP2HOT); 3056 dasm_put(Dst, 16244, HOTCOUNT_PCMASK, GG_DISP2HOT);
3052#endif 3057#endif
3053 break; 3058 break;
3054 3059
3055 case BC_ILOOP: 3060 case BC_ILOOP:
3056 dasm_put(Dst, 11228); 3061 dasm_put(Dst, 11316);
3057 break; 3062 break;
3058 3063
3059 case BC_JLOOP: 3064 case BC_JLOOP:
3060#if LJ_HASJIT 3065#if LJ_HASJIT
3061 dasm_put(Dst, 16620, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 3066 dasm_put(Dst, 16708, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
3062#endif 3067#endif
3063 break; 3068 break;
3064 3069
3065 case BC_JMP: 3070 case BC_JMP:
3066 dasm_put(Dst, 16643, -BCBIAS_J*4); 3071 dasm_put(Dst, 16731, -BCBIAS_J*4);
3067 break; 3072 break;
3068 3073
3069 /* -- Function headers -------------------------------------------------- */ 3074 /* -- Function headers -------------------------------------------------- */
@@ -3077,7 +3082,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3077 3082
3078 case BC_FUNCF: 3083 case BC_FUNCF:
3079#if LJ_HASJIT 3084#if LJ_HASJIT
3080 dasm_put(Dst, 16667, HOTCOUNT_PCMASK, GG_DISP2HOT); 3085 dasm_put(Dst, 16755, HOTCOUNT_PCMASK, GG_DISP2HOT);
3081#endif 3086#endif
3082 case BC_FUNCV: /* NYI: compiled vararg functions. */ 3087 case BC_FUNCV: /* NYI: compiled vararg functions. */
3083 break; 3088 break;
@@ -3087,47 +3092,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3087 break; 3092 break;
3088#endif 3093#endif
3089 case BC_IFUNCF: 3094 case BC_IFUNCF:
3090 dasm_put(Dst, 16688, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 3095 dasm_put(Dst, 16776, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
3091 if (op == BC_JFUNCF) { 3096 if (op == BC_JFUNCF) {
3092 dasm_put(Dst, 16718, BC_JLOOP); 3097 dasm_put(Dst, 16806, BC_JLOOP);
3093 } else { 3098 } else {
3094 dasm_put(Dst, 11228); 3099 dasm_put(Dst, 11316);
3095 } 3100 }
3096 dasm_put(Dst, 16727, LJ_TNIL); 3101 dasm_put(Dst, 16815, LJ_TNIL);
3097 break; 3102 break;
3098 3103
3099 case BC_JFUNCV: 3104 case BC_JFUNCV:
3100#if !LJ_HASJIT 3105#if !LJ_HASJIT
3101 break; 3106 break;
3102#endif 3107#endif
3103 dasm_put(Dst, 10328); 3108 dasm_put(Dst, 10416);
3104 break; /* NYI: compiled vararg functions. */ 3109 break; /* NYI: compiled vararg functions. */
3105 3110
3106 case BC_IFUNCV: 3111 case BC_IFUNCV:
3107 dasm_put(Dst, 16749, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 3112 dasm_put(Dst, 16837, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
3108 if (op == BC_JFUNCV) { 3113 if (op == BC_JFUNCV) {
3109 dasm_put(Dst, 16718, BC_JLOOP); 3114 dasm_put(Dst, 16806, BC_JLOOP);
3110 } else { 3115 } else {
3111 dasm_put(Dst, 16840, -4+PC2PROTO(k)); 3116 dasm_put(Dst, 16928, -4+PC2PROTO(k));
3112 } 3117 }
3113 dasm_put(Dst, 16862, LJ_TNIL); 3118 dasm_put(Dst, 16950, LJ_TNIL);
3114 break; 3119 break;
3115 3120
3116 case BC_FUNCC: 3121 case BC_FUNCC:
3117 case BC_FUNCCW: 3122 case BC_FUNCCW:
3118 dasm_put(Dst, 16884, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 3123 dasm_put(Dst, 16972, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
3119 if (op == BC_FUNCC) { 3124 if (op == BC_FUNCC) {
3120 dasm_put(Dst, 16913); 3125 dasm_put(Dst, 17001);
3121 } else { 3126 } else {
3122 dasm_put(Dst, 16917); 3127 dasm_put(Dst, 17005);
3123 } 3128 }
3124 dasm_put(Dst, 16925, DISPATCH_GL(vmstate), ~LJ_VMST_C); 3129 dasm_put(Dst, 17013, DISPATCH_GL(vmstate), ~LJ_VMST_C);
3125 if (op == BC_FUNCC) { 3130 if (op == BC_FUNCC) {
3126 dasm_put(Dst, 16934); 3131 dasm_put(Dst, 17022);
3127 } else { 3132 } else {
3128 dasm_put(Dst, 16938, DISPATCH_GL(wrapf)); 3133 dasm_put(Dst, 17026, DISPATCH_GL(wrapf));
3129 } 3134 }
3130 dasm_put(Dst, 16943, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 3135 dasm_put(Dst, 17031, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
3131 break; 3136 break;
3132 3137
3133 /* ---------------------------------------------------------------------- */ 3138 /* ---------------------------------------------------------------------- */
@@ -3155,7 +3160,7 @@ static int build_backend(BuildCtx *ctx)
3155 3160
3156 build_subroutines(ctx, cmov, sse); 3161 build_subroutines(ctx, cmov, sse);
3157 3162
3158 dasm_put(Dst, 16968); 3163 dasm_put(Dst, 17056);
3159 for (op = 0; op < BC__MAX; op++) 3164 for (op = 0; op < BC__MAX; op++)
3160 build_ins(ctx, (BCOp)op, op, cmov, sse); 3165 build_ins(ctx, (BCOp)op, op, cmov, sse);
3161 3166