summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h2071
1 files changed, 1038 insertions, 1033 deletions
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