summaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/buildvm_x64win.h790
1 files changed, 397 insertions, 393 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 093b5fa0..742cf19b 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[13494] = { 15static const unsigned char build_actionlist[13490] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10, 18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,
@@ -359,106 +359,106 @@ static const unsigned char build_actionlist[13494] = {
359 235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,137,252, 359 235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,137,252,
360 233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110, 360 233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,
361 252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139, 361 252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139,
362 77,232,137,76,36,84,252,233,244,4,248,140,255,204,255,248,141,255,72,199, 362 77,232,137,76,36,84,252,233,244,4,248,140,255,204,255,248,141,137,116,36,
363 131,233,0,0,0,0,252,233,244,247,255,248,142,255,72,137,171,233,248,1,255, 363 100,255,248,142,255,137,116,36,100,131,206,1,248,1,255,141,68,194,252,248,
364 141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252,242,137, 364 139,108,36,96,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,21,
365 252,233,137,116,36,100,232,251,1,21,199,68,36,100,0,0,0,0,139,149,233,72, 365 199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,233,72,137,193,139,
366 137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,3,131,192, 366 133,233,41,208,72,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,
367 1,252,255,229,248,143,255,248,144,255,139,122,252,248,139,191,233,139,191, 367 248,143,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233,
368 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198, 368 0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
369 4,193,232,16,252,255,36,252,235,255,248,82,255,217,124,36,4,137,68,36,8,102, 369 252,255,36,252,235,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
370 184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36, 370 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
371 6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102, 371 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,
372 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102, 372 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
373 15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203, 373 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
374 102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15, 374 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
375 84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137, 375 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
376 68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6, 376 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
377 217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184, 377 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
378 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102, 378 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
379 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252, 379 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
380 242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194, 380 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
381 193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217, 381 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,
382 124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108, 382 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
383 36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237, 383 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,
384 102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202, 384 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
385 102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252, 385 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
386 242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15, 386 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
387 84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15, 387 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
388 40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237, 388 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
389 102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102, 389 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
390 15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237, 390 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
391 102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15, 391 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
392 40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15, 392 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
393 40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,184, 393 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
394 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 394 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
395 252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201, 395 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
396 248,149,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,124,36,8, 396 36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,124,36,8,0,0,128,252,255,
397 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217, 397 15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,
398 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 398 217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,
399 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208, 399 255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,
400 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142, 400 15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,
401 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, 401 169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,
402 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, 402 209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,
403 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, 403 250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,
404 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237, 404 193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,
405 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252, 405 15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,
406 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195, 406 244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,
407 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15, 407 72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,
408 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12, 408 255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,
409 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,15,17, 409 15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68,
410 68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,252, 410 36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,252,233,217,201,217,
411 233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,8,252, 411 252,240,217,232,222,193,217,252,253,221,217,221,92,36,8,252,242,15,16,68,
412 242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194, 412 36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,
413 15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208, 413 247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,
414 102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1, 414 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
415 102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184, 415 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
416 237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244, 416 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
417 3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248, 417 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,
418 153,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,
419 104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,
420 68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,252,
421 233,244,253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250,7,
422 15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,
423 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,
424 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,
425 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,
426 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,
427 248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,
428 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15, 418 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,
429 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244, 419 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,68,36,8,
430 149,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 420 131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,252,233,244,
431 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132, 421 253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250,7,15,132,244,
432 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 422 247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,
433 252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255, 423 217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,15,132,244,
434 195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,65,131,252,248, 424 247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,
435 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92, 425 255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,247,15,135,
436 193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89, 426 244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,
437 193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,148, 427 36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,131,252,250,1,
438 15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237, 428 15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,217,
439 237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110, 429 252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244,149,131,252,250,
440 200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68, 430 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,
441 36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252, 431 217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,244,247,255,15,
442 243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253, 432 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
443 221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255, 433 2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
444 252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36, 434 252,242,221,216,195,255,248,9,204,248,154,255,65,131,252,248,1,15,132,244,
445 20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222, 435 247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,
446 193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244, 436 2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,
447 248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148, 437 1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,148,15,132,244,
448 15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217, 438 107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,
449 224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135, 439 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,
450 244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252, 440 193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,
451 248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195, 441 15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,
452 248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15, 442 221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,
453 132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1, 443 233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,
454 15,133,244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,72,137,214, 444 93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,
455 83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,249,255,129,124, 445 36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,
456 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 446 248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,
457 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255, 447 201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,
458 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 448 107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,
459 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15, 449 1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,
460 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194, 450 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,
461 4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244, 451 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
452 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
453 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
454 244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,
455 162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,249,255,129,124,253,202,
456 4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,
457 4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,
458 252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,
459 244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,
460 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,
461 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,
462 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15, 462 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,
463 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15, 463 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,
464 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, 464 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,
@@ -1325,77 +1325,81 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1325#endif 1325#endif
1326 dasm_put(Dst, 7119); 1326 dasm_put(Dst, 7119);
1327#if LJ_HASJIT 1327#if LJ_HASJIT
1328 dasm_put(Dst, 7122, DISPATCH_J(L)); 1328 dasm_put(Dst, 6994);
1329#endif 1329#endif
1330 dasm_put(Dst, 7135); 1330 dasm_put(Dst, 7126);
1331#if LJ_HASJIT 1331#if LJ_HASJIT
1332 dasm_put(Dst, 7138, DISPATCH_J(L)); 1332 dasm_put(Dst, 7129);
1333#endif 1333#endif
1334 dasm_put(Dst, 7145, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1334 dasm_put(Dst, 7139, Dt1(->base), Dt1(->top));
1335#if LJ_HASJIT
1336 dasm_put(Dst, 7173);
1337#endif
1338 dasm_put(Dst, 7178, Dt1(->base), Dt1(->top));
1335#if LJ_HASJIT 1339#if LJ_HASJIT
1336 dasm_put(Dst, 7117); 1340 dasm_put(Dst, 7117);
1337#endif 1341#endif
1338 dasm_put(Dst, 7213); 1342 dasm_put(Dst, 7209);
1339#if LJ_HASJIT 1343#if LJ_HASJIT
1340 dasm_put(Dst, 7216, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1344 dasm_put(Dst, 7212, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1341#endif 1345#endif
1342 dasm_put(Dst, 7257); 1346 dasm_put(Dst, 7253);
1343 if (!sse) { 1347 if (!sse) {
1344 dasm_put(Dst, 7260); 1348 dasm_put(Dst, 7256);
1345 } 1349 }
1346 dasm_put(Dst, 7305, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1350 dasm_put(Dst, 7301, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1347 if (!sse) { 1351 if (!sse) {
1348 dasm_put(Dst, 7391); 1352 dasm_put(Dst, 7387);
1349 } 1353 }
1350 dasm_put(Dst, 7436, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1354 dasm_put(Dst, 7432, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1351 if (!sse) { 1355 if (!sse) {
1352 dasm_put(Dst, 7522); 1356 dasm_put(Dst, 7518);
1353 } 1357 }
1354 dasm_put(Dst, 7561, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1358 dasm_put(Dst, 7557, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1355 if (sse) { 1359 if (sse) {
1356 dasm_put(Dst, 7650, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1360 dasm_put(Dst, 7646, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1357 } else { 1361 } else {
1358 dasm_put(Dst, 7764); 1362 dasm_put(Dst, 7760);
1359 } 1363 }
1360 dasm_put(Dst, 7811); 1364 dasm_put(Dst, 7807);
1361 if (!sse) { 1365 if (!sse) {
1362 } else { 1366 } else {
1363 dasm_put(Dst, 7885); 1367 dasm_put(Dst, 7881);
1364 } 1368 }
1365 dasm_put(Dst, 7888); 1369 dasm_put(Dst, 7884);
1366 dasm_put(Dst, 7973, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1370 dasm_put(Dst, 7969, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1367 dasm_put(Dst, 8074, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1371 dasm_put(Dst, 8070, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1368 dasm_put(Dst, 8242); 1372 dasm_put(Dst, 8238);
1369 if (sse) { 1373 if (sse) {
1370 dasm_put(Dst, 8283); 1374 dasm_put(Dst, 8279);
1371 dasm_put(Dst, 8353); 1375 dasm_put(Dst, 8349);
1372 dasm_put(Dst, 8426); 1376 dasm_put(Dst, 8422);
1373 } else { 1377 } else {
1374 dasm_put(Dst, 8476); 1378 dasm_put(Dst, 8472);
1375 dasm_put(Dst, 8568); 1379 dasm_put(Dst, 8564);
1376 } 1380 }
1377 dasm_put(Dst, 8614); 1381 dasm_put(Dst, 8610);
1378 if (sse) { 1382 if (sse) {
1379 dasm_put(Dst, 8620, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1383 dasm_put(Dst, 8616, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1380 dasm_put(Dst, 8709, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1384 dasm_put(Dst, 8705, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1381 } else { 1385 } else {
1382 dasm_put(Dst, 8833); 1386 dasm_put(Dst, 8829);
1383 dasm_put(Dst, 8916); 1387 dasm_put(Dst, 8912);
1384 if (cmov) { 1388 if (cmov) {
1385 dasm_put(Dst, 8971); 1389 dasm_put(Dst, 8967);
1386 } else { 1390 } else {
1387 dasm_put(Dst, 8990); 1391 dasm_put(Dst, 8986);
1388 } 1392 }
1389 dasm_put(Dst, 8829); 1393 dasm_put(Dst, 8825);
1390 } 1394 }
1391 dasm_put(Dst, 9031); 1395 dasm_put(Dst, 9027);
1392} 1396}
1393 1397
1394/* Generate the code for a single instruction. */ 1398/* Generate the code for a single instruction. */
1395static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1399static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1396{ 1400{
1397 int vk = 0; 1401 int vk = 0;
1398 dasm_put(Dst, 9057, defop); 1402 dasm_put(Dst, 9053, defop);
1399 1403
1400 switch (op) { 1404 switch (op) {
1401 1405
@@ -1404,600 +1408,600 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1404 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1408 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1405 1409
1406 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1410 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1407 dasm_put(Dst, 9059, LJ_TISNUM, LJ_TISNUM); 1411 dasm_put(Dst, 9055, LJ_TISNUM, LJ_TISNUM);
1408 if (sse) { 1412 if (sse) {
1409 dasm_put(Dst, 9080); 1413 dasm_put(Dst, 9076);
1410 } else { 1414 } else {
1411 dasm_put(Dst, 9095); 1415 dasm_put(Dst, 9091);
1412 if (cmov) { 1416 if (cmov) {
1413 dasm_put(Dst, 9105); 1417 dasm_put(Dst, 9101);
1414 } else { 1418 } else {
1415 dasm_put(Dst, 9111); 1419 dasm_put(Dst, 9107);
1416 } 1420 }
1417 } 1421 }
1418 switch (op) { 1422 switch (op) {
1419 case BC_ISLT: 1423 case BC_ISLT:
1420 dasm_put(Dst, 9118); 1424 dasm_put(Dst, 9114);
1421 break; 1425 break;
1422 case BC_ISGE: 1426 case BC_ISGE:
1423 dasm_put(Dst, 8911); 1427 dasm_put(Dst, 8907);
1424 break; 1428 break;
1425 case BC_ISLE: 1429 case BC_ISLE:
1426 dasm_put(Dst, 5872); 1430 dasm_put(Dst, 5872);
1427 break; 1431 break;
1428 case BC_ISGT: 1432 case BC_ISGT:
1429 dasm_put(Dst, 9123); 1433 dasm_put(Dst, 9119);
1430 break; 1434 break;
1431 default: break; /* Shut up GCC. */ 1435 default: break; /* Shut up GCC. */
1432 } 1436 }
1433 dasm_put(Dst, 9128, -BCBIAS_J*4); 1437 dasm_put(Dst, 9124, -BCBIAS_J*4);
1434 break; 1438 break;
1435 1439
1436 case BC_ISEQV: case BC_ISNEV: 1440 case BC_ISEQV: case BC_ISNEV:
1437 vk = op == BC_ISEQV; 1441 vk = op == BC_ISEQV;
1438 dasm_put(Dst, 9162, LJ_TISNUM, LJ_TISNUM); 1442 dasm_put(Dst, 9158, LJ_TISNUM, LJ_TISNUM);
1439 if (sse) { 1443 if (sse) {
1440 dasm_put(Dst, 9188); 1444 dasm_put(Dst, 9184);
1441 } else { 1445 } else {
1442 dasm_put(Dst, 9200); 1446 dasm_put(Dst, 9196);
1443 if (cmov) { 1447 if (cmov) {
1444 dasm_put(Dst, 9105); 1448 dasm_put(Dst, 9101);
1445 } else { 1449 } else {
1446 dasm_put(Dst, 9111); 1450 dasm_put(Dst, 9107);
1447 } 1451 }
1448 } 1452 }
1449 iseqne_fp: 1453 iseqne_fp:
1450 if (vk) { 1454 if (vk) {
1451 dasm_put(Dst, 9207); 1455 dasm_put(Dst, 9203);
1452 } else { 1456 } else {
1453 dasm_put(Dst, 9216); 1457 dasm_put(Dst, 9212);
1454 } 1458 }
1455 iseqne_end: 1459 iseqne_end:
1456 if (vk) { 1460 if (vk) {
1457 dasm_put(Dst, 9225, -BCBIAS_J*4); 1461 dasm_put(Dst, 9221, -BCBIAS_J*4);
1458 } else { 1462 } else {
1459 dasm_put(Dst, 9240, -BCBIAS_J*4); 1463 dasm_put(Dst, 9236, -BCBIAS_J*4);
1460 } 1464 }
1461 dasm_put(Dst, 7237); 1465 dasm_put(Dst, 7233);
1462 if (op == BC_ISEQV || op == BC_ISNEV) { 1466 if (op == BC_ISEQV || op == BC_ISNEV) {
1463 dasm_put(Dst, 9255, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1467 dasm_put(Dst, 9251, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1464 if (vk) { 1468 if (vk) {
1465 dasm_put(Dst, 9313); 1469 dasm_put(Dst, 9309);
1466 } else { 1470 } else {
1467 dasm_put(Dst, 9317); 1471 dasm_put(Dst, 9313);
1468 } 1472 }
1469 dasm_put(Dst, 9323); 1473 dasm_put(Dst, 9319);
1470 } 1474 }
1471 break; 1475 break;
1472 case BC_ISEQS: case BC_ISNES: 1476 case BC_ISEQS: case BC_ISNES:
1473 vk = op == BC_ISEQS; 1477 vk = op == BC_ISEQS;
1474 dasm_put(Dst, 9328, LJ_TSTR); 1478 dasm_put(Dst, 9324, LJ_TSTR);
1475 iseqne_test: 1479 iseqne_test:
1476 if (vk) { 1480 if (vk) {
1477 dasm_put(Dst, 9211); 1481 dasm_put(Dst, 9207);
1478 } else { 1482 } else {
1479 dasm_put(Dst, 2774); 1483 dasm_put(Dst, 2774);
1480 } 1484 }
1481 goto iseqne_end; 1485 goto iseqne_end;
1482 case BC_ISEQN: case BC_ISNEN: 1486 case BC_ISEQN: case BC_ISNEN:
1483 vk = op == BC_ISEQN; 1487 vk = op == BC_ISEQN;
1484 dasm_put(Dst, 9352, LJ_TISNUM); 1488 dasm_put(Dst, 9348, LJ_TISNUM);
1485 if (sse) { 1489 if (sse) {
1486 dasm_put(Dst, 9366); 1490 dasm_put(Dst, 9362);
1487 } else { 1491 } else {
1488 dasm_put(Dst, 9378); 1492 dasm_put(Dst, 9374);
1489 if (cmov) { 1493 if (cmov) {
1490 dasm_put(Dst, 9105); 1494 dasm_put(Dst, 9101);
1491 } else { 1495 } else {
1492 dasm_put(Dst, 9111); 1496 dasm_put(Dst, 9107);
1493 } 1497 }
1494 } 1498 }
1495 goto iseqne_fp; 1499 goto iseqne_fp;
1496 case BC_ISEQP: case BC_ISNEP: 1500 case BC_ISEQP: case BC_ISNEP:
1497 vk = op == BC_ISEQP; 1501 vk = op == BC_ISEQP;
1498 dasm_put(Dst, 9385); 1502 dasm_put(Dst, 9381);
1499 goto iseqne_test; 1503 goto iseqne_test;
1500 1504
1501 /* -- Unary test and copy ops ------------------------------------------- */ 1505 /* -- Unary test and copy ops ------------------------------------------- */
1502 1506
1503 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1507 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1504 dasm_put(Dst, 9397, LJ_TISTRUECOND); 1508 dasm_put(Dst, 9393, LJ_TISTRUECOND);
1505 if (op == BC_IST || op == BC_ISTC) { 1509 if (op == BC_IST || op == BC_ISTC) {
1506 dasm_put(Dst, 9409); 1510 dasm_put(Dst, 9405);
1507 } else { 1511 } else {
1508 dasm_put(Dst, 9414); 1512 dasm_put(Dst, 9410);
1509 } 1513 }
1510 if (op == BC_ISTC || op == BC_ISFC) { 1514 if (op == BC_ISTC || op == BC_ISFC) {
1511 dasm_put(Dst, 9419); 1515 dasm_put(Dst, 9415);
1512 } 1516 }
1513 dasm_put(Dst, 9430, -BCBIAS_J*4); 1517 dasm_put(Dst, 9426, -BCBIAS_J*4);
1514 break; 1518 break;
1515 1519
1516 /* -- Unary ops --------------------------------------------------------- */ 1520 /* -- Unary ops --------------------------------------------------------- */
1517 1521
1518 case BC_MOV: 1522 case BC_MOV:
1519 dasm_put(Dst, 9462); 1523 dasm_put(Dst, 9458);
1520 break; 1524 break;
1521 case BC_NOT: 1525 case BC_NOT:
1522 dasm_put(Dst, 9496, LJ_TISTRUECOND, LJ_TTRUE); 1526 dasm_put(Dst, 9492, LJ_TISTRUECOND, LJ_TTRUE);
1523 break; 1527 break;
1524 case BC_UNM: 1528 case BC_UNM:
1525 dasm_put(Dst, 9532, LJ_TISNUM); 1529 dasm_put(Dst, 9528, LJ_TISNUM);
1526 if (sse) { 1530 if (sse) {
1527 dasm_put(Dst, 9543, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1531 dasm_put(Dst, 9539, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1528 } else { 1532 } else {
1529 dasm_put(Dst, 9568); 1533 dasm_put(Dst, 9564);
1530 } 1534 }
1531 dasm_put(Dst, 7237); 1535 dasm_put(Dst, 7233);
1532 break; 1536 break;
1533 case BC_LEN: 1537 case BC_LEN:
1534 dasm_put(Dst, 9577, LJ_TSTR); 1538 dasm_put(Dst, 9573, LJ_TSTR);
1535 if (sse) { 1539 if (sse) {
1536 dasm_put(Dst, 9591, Dt5(->len)); 1540 dasm_put(Dst, 9587, Dt5(->len));
1537 } else { 1541 } else {
1538 dasm_put(Dst, 9609, Dt5(->len)); 1542 dasm_put(Dst, 9605, Dt5(->len));
1539 } 1543 }
1540 dasm_put(Dst, 9618, LJ_TTAB); 1544 dasm_put(Dst, 9614, LJ_TTAB);
1541 if (sse) { 1545 if (sse) {
1542 dasm_put(Dst, 9659); 1546 dasm_put(Dst, 9655);
1543 } else { 1547 } else {
1544 } 1548 }
1545 dasm_put(Dst, 9668); 1549 dasm_put(Dst, 9664);
1546 break; 1550 break;
1547 1551
1548 /* -- Binary ops -------------------------------------------------------- */ 1552 /* -- Binary ops -------------------------------------------------------- */
1549 1553
1550 1554
1551 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1555 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1552 dasm_put(Dst, 9678); 1556 dasm_put(Dst, 9674);
1553 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1557 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1554 switch (vk) { 1558 switch (vk) {
1555 case 0: 1559 case 0:
1556 dasm_put(Dst, 9686, LJ_TISNUM); 1560 dasm_put(Dst, 9682, LJ_TISNUM);
1557 if (sse) { 1561 if (sse) {
1558 dasm_put(Dst, 9698); 1562 dasm_put(Dst, 9694);
1559 } else { 1563 } else {
1560 dasm_put(Dst, 9712); 1564 dasm_put(Dst, 9708);
1561 } 1565 }
1562 break; 1566 break;
1563 case 1: 1567 case 1:
1564 dasm_put(Dst, 9720, LJ_TISNUM); 1568 dasm_put(Dst, 9716, LJ_TISNUM);
1565 if (sse) { 1569 if (sse) {
1566 dasm_put(Dst, 9732); 1570 dasm_put(Dst, 9728);
1567 } else { 1571 } else {
1568 dasm_put(Dst, 9746); 1572 dasm_put(Dst, 9742);
1569 } 1573 }
1570 break; 1574 break;
1571 default: 1575 default:
1572 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1576 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1573 if (sse) { 1577 if (sse) {
1574 dasm_put(Dst, 9776); 1578 dasm_put(Dst, 9772);
1575 } else { 1579 } else {
1576 dasm_put(Dst, 9790); 1580 dasm_put(Dst, 9786);
1577 } 1581 }
1578 break; 1582 break;
1579 } 1583 }
1580 if (sse) { 1584 if (sse) {
1581 dasm_put(Dst, 9561); 1585 dasm_put(Dst, 9557);
1582 } else { 1586 } else {
1583 dasm_put(Dst, 9573); 1587 dasm_put(Dst, 9569);
1584 } 1588 }
1585 dasm_put(Dst, 7237); 1589 dasm_put(Dst, 7233);
1586 break; 1590 break;
1587 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1591 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1588 dasm_put(Dst, 9678); 1592 dasm_put(Dst, 9674);
1589 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1593 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1590 switch (vk) { 1594 switch (vk) {
1591 case 0: 1595 case 0:
1592 dasm_put(Dst, 9686, LJ_TISNUM); 1596 dasm_put(Dst, 9682, LJ_TISNUM);
1593 if (sse) { 1597 if (sse) {
1594 dasm_put(Dst, 9798); 1598 dasm_put(Dst, 9794);
1595 } else { 1599 } else {
1596 dasm_put(Dst, 9812); 1600 dasm_put(Dst, 9808);
1597 } 1601 }
1598 break; 1602 break;
1599 case 1: 1603 case 1:
1600 dasm_put(Dst, 9720, LJ_TISNUM); 1604 dasm_put(Dst, 9716, LJ_TISNUM);
1601 if (sse) { 1605 if (sse) {
1602 dasm_put(Dst, 9820); 1606 dasm_put(Dst, 9816);
1603 } else { 1607 } else {
1604 dasm_put(Dst, 9834); 1608 dasm_put(Dst, 9830);
1605 } 1609 }
1606 break; 1610 break;
1607 default: 1611 default:
1608 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1612 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1609 if (sse) { 1613 if (sse) {
1610 dasm_put(Dst, 9842); 1614 dasm_put(Dst, 9838);
1611 } else { 1615 } else {
1612 dasm_put(Dst, 9856); 1616 dasm_put(Dst, 9852);
1613 } 1617 }
1614 break; 1618 break;
1615 } 1619 }
1616 if (sse) { 1620 if (sse) {
1617 dasm_put(Dst, 9561); 1621 dasm_put(Dst, 9557);
1618 } else { 1622 } else {
1619 dasm_put(Dst, 9573); 1623 dasm_put(Dst, 9569);
1620 } 1624 }
1621 dasm_put(Dst, 7237); 1625 dasm_put(Dst, 7233);
1622 break; 1626 break;
1623 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1627 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1624 dasm_put(Dst, 9678); 1628 dasm_put(Dst, 9674);
1625 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1629 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1626 switch (vk) { 1630 switch (vk) {
1627 case 0: 1631 case 0:
1628 dasm_put(Dst, 9686, LJ_TISNUM); 1632 dasm_put(Dst, 9682, LJ_TISNUM);
1629 if (sse) { 1633 if (sse) {
1630 dasm_put(Dst, 9864); 1634 dasm_put(Dst, 9860);
1631 } else { 1635 } else {
1632 dasm_put(Dst, 9878); 1636 dasm_put(Dst, 9874);
1633 } 1637 }
1634 break; 1638 break;
1635 case 1: 1639 case 1:
1636 dasm_put(Dst, 9720, LJ_TISNUM); 1640 dasm_put(Dst, 9716, LJ_TISNUM);
1637 if (sse) { 1641 if (sse) {
1638 dasm_put(Dst, 9886); 1642 dasm_put(Dst, 9882);
1639 } else { 1643 } else {
1640 dasm_put(Dst, 9900); 1644 dasm_put(Dst, 9896);
1641 } 1645 }
1642 break; 1646 break;
1643 default: 1647 default:
1644 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1648 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1645 if (sse) { 1649 if (sse) {
1646 dasm_put(Dst, 9908); 1650 dasm_put(Dst, 9904);
1647 } else { 1651 } else {
1648 dasm_put(Dst, 9922); 1652 dasm_put(Dst, 9918);
1649 } 1653 }
1650 break; 1654 break;
1651 } 1655 }
1652 if (sse) { 1656 if (sse) {
1653 dasm_put(Dst, 9561); 1657 dasm_put(Dst, 9557);
1654 } else { 1658 } else {
1655 dasm_put(Dst, 9573); 1659 dasm_put(Dst, 9569);
1656 } 1660 }
1657 dasm_put(Dst, 7237); 1661 dasm_put(Dst, 7233);
1658 break; 1662 break;
1659 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1663 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1660 dasm_put(Dst, 9678); 1664 dasm_put(Dst, 9674);
1661 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1665 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1662 switch (vk) { 1666 switch (vk) {
1663 case 0: 1667 case 0:
1664 dasm_put(Dst, 9686, LJ_TISNUM); 1668 dasm_put(Dst, 9682, LJ_TISNUM);
1665 if (sse) { 1669 if (sse) {
1666 dasm_put(Dst, 9930); 1670 dasm_put(Dst, 9926);
1667 } else { 1671 } else {
1668 dasm_put(Dst, 9944); 1672 dasm_put(Dst, 9940);
1669 } 1673 }
1670 break; 1674 break;
1671 case 1: 1675 case 1:
1672 dasm_put(Dst, 9720, LJ_TISNUM); 1676 dasm_put(Dst, 9716, LJ_TISNUM);
1673 if (sse) { 1677 if (sse) {
1674 dasm_put(Dst, 9952); 1678 dasm_put(Dst, 9948);
1675 } else { 1679 } else {
1676 dasm_put(Dst, 9966); 1680 dasm_put(Dst, 9962);
1677 } 1681 }
1678 break; 1682 break;
1679 default: 1683 default:
1680 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1684 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1681 if (sse) { 1685 if (sse) {
1682 dasm_put(Dst, 9974); 1686 dasm_put(Dst, 9970);
1683 } else { 1687 } else {
1684 dasm_put(Dst, 9988); 1688 dasm_put(Dst, 9984);
1685 } 1689 }
1686 break; 1690 break;
1687 } 1691 }
1688 if (sse) { 1692 if (sse) {
1689 dasm_put(Dst, 9561); 1693 dasm_put(Dst, 9557);
1690 } else { 1694 } else {
1691 dasm_put(Dst, 9573); 1695 dasm_put(Dst, 9569);
1692 } 1696 }
1693 dasm_put(Dst, 7237); 1697 dasm_put(Dst, 7233);
1694 break; 1698 break;
1695 case BC_MODVN: 1699 case BC_MODVN:
1696 dasm_put(Dst, 9678); 1700 dasm_put(Dst, 9674);
1697 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1701 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1698 switch (vk) { 1702 switch (vk) {
1699 case 0: 1703 case 0:
1700 dasm_put(Dst, 9686, LJ_TISNUM); 1704 dasm_put(Dst, 9682, LJ_TISNUM);
1701 if (sse) { 1705 if (sse) {
1702 dasm_put(Dst, 9996); 1706 dasm_put(Dst, 9992);
1703 } else { 1707 } else {
1704 dasm_put(Dst, 10010); 1708 dasm_put(Dst, 10006);
1705 } 1709 }
1706 break; 1710 break;
1707 case 1: 1711 case 1:
1708 dasm_put(Dst, 9720, LJ_TISNUM); 1712 dasm_put(Dst, 9716, LJ_TISNUM);
1709 if (sse) { 1713 if (sse) {
1710 dasm_put(Dst, 10018); 1714 dasm_put(Dst, 10014);
1711 } else { 1715 } else {
1712 dasm_put(Dst, 10032); 1716 dasm_put(Dst, 10028);
1713 } 1717 }
1714 break; 1718 break;
1715 default: 1719 default:
1716 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1720 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1717 if (sse) { 1721 if (sse) {
1718 dasm_put(Dst, 10040); 1722 dasm_put(Dst, 10036);
1719 } else { 1723 } else {
1720 dasm_put(Dst, 10054); 1724 dasm_put(Dst, 10050);
1721 } 1725 }
1722 break; 1726 break;
1723 } 1727 }
1724 dasm_put(Dst, 10062); 1728 dasm_put(Dst, 10058);
1725 if (sse) { 1729 if (sse) {
1726 dasm_put(Dst, 9561); 1730 dasm_put(Dst, 9557);
1727 } else { 1731 } else {
1728 dasm_put(Dst, 9573); 1732 dasm_put(Dst, 9569);
1729 } 1733 }
1730 dasm_put(Dst, 7237); 1734 dasm_put(Dst, 7233);
1731 break; 1735 break;
1732 case BC_MODNV: case BC_MODVV: 1736 case BC_MODNV: case BC_MODVV:
1733 dasm_put(Dst, 9678); 1737 dasm_put(Dst, 9674);
1734 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1738 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1735 switch (vk) { 1739 switch (vk) {
1736 case 0: 1740 case 0:
1737 dasm_put(Dst, 9686, LJ_TISNUM); 1741 dasm_put(Dst, 9682, LJ_TISNUM);
1738 if (sse) { 1742 if (sse) {
1739 dasm_put(Dst, 9996); 1743 dasm_put(Dst, 9992);
1740 } else { 1744 } else {
1741 dasm_put(Dst, 10010); 1745 dasm_put(Dst, 10006);
1742 } 1746 }
1743 break; 1747 break;
1744 case 1: 1748 case 1:
1745 dasm_put(Dst, 9720, LJ_TISNUM); 1749 dasm_put(Dst, 9716, LJ_TISNUM);
1746 if (sse) { 1750 if (sse) {
1747 dasm_put(Dst, 10018); 1751 dasm_put(Dst, 10014);
1748 } else { 1752 } else {
1749 dasm_put(Dst, 10032); 1753 dasm_put(Dst, 10028);
1750 } 1754 }
1751 break; 1755 break;
1752 default: 1756 default:
1753 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1757 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1754 if (sse) { 1758 if (sse) {
1755 dasm_put(Dst, 10040); 1759 dasm_put(Dst, 10036);
1756 } else { 1760 } else {
1757 dasm_put(Dst, 10054); 1761 dasm_put(Dst, 10050);
1758 } 1762 }
1759 break; 1763 break;
1760 } 1764 }
1761 dasm_put(Dst, 10068); 1765 dasm_put(Dst, 10064);
1762 break; 1766 break;
1763 case BC_POW: 1767 case BC_POW:
1764 dasm_put(Dst, 9678); 1768 dasm_put(Dst, 9674);
1765 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1766 switch (vk) { 1770 switch (vk) {
1767 case 0: 1771 case 0:
1768 dasm_put(Dst, 9686, LJ_TISNUM); 1772 dasm_put(Dst, 9682, LJ_TISNUM);
1769 if (sse) { 1773 if (sse) {
1770 dasm_put(Dst, 9996); 1774 dasm_put(Dst, 9992);
1771 } else { 1775 } else {
1772 dasm_put(Dst, 10010); 1776 dasm_put(Dst, 10006);
1773 } 1777 }
1774 break; 1778 break;
1775 case 1: 1779 case 1:
1776 dasm_put(Dst, 9720, LJ_TISNUM); 1780 dasm_put(Dst, 9716, LJ_TISNUM);
1777 if (sse) { 1781 if (sse) {
1778 dasm_put(Dst, 10018); 1782 dasm_put(Dst, 10014);
1779 } else { 1783 } else {
1780 dasm_put(Dst, 10032); 1784 dasm_put(Dst, 10028);
1781 } 1785 }
1782 break; 1786 break;
1783 default: 1787 default:
1784 dasm_put(Dst, 9754, LJ_TISNUM, LJ_TISNUM); 1788 dasm_put(Dst, 9750, LJ_TISNUM, LJ_TISNUM);
1785 if (sse) { 1789 if (sse) {
1786 dasm_put(Dst, 10040); 1790 dasm_put(Dst, 10036);
1787 } else { 1791 } else {
1788 dasm_put(Dst, 10054); 1792 dasm_put(Dst, 10050);
1789 } 1793 }
1790 break; 1794 break;
1791 } 1795 }
1792 dasm_put(Dst, 10073); 1796 dasm_put(Dst, 10069);
1793 if (sse) { 1797 if (sse) {
1794 dasm_put(Dst, 9561); 1798 dasm_put(Dst, 9557);
1795 } else { 1799 } else {
1796 dasm_put(Dst, 9573); 1800 dasm_put(Dst, 9569);
1797 } 1801 }
1798 dasm_put(Dst, 7237); 1802 dasm_put(Dst, 7233);
1799 break; 1803 break;
1800 1804
1801 case BC_CAT: 1805 case BC_CAT:
1802 dasm_put(Dst, 10077, Dt1(->base), Dt1(->base)); 1806 dasm_put(Dst, 10073, Dt1(->base), Dt1(->base));
1803 break; 1807 break;
1804 1808
1805 /* -- Constant ops ------------------------------------------------------ */ 1809 /* -- Constant ops ------------------------------------------------------ */
1806 1810
1807 case BC_KSTR: 1811 case BC_KSTR:
1808 dasm_put(Dst, 10167, LJ_TSTR); 1812 dasm_put(Dst, 10163, LJ_TSTR);
1809 break; 1813 break;
1810 case BC_KSHORT: 1814 case BC_KSHORT:
1811 if (sse) { 1815 if (sse) {
1812 dasm_put(Dst, 10202); 1816 dasm_put(Dst, 10198);
1813 } else { 1817 } else {
1814 dasm_put(Dst, 10217); 1818 dasm_put(Dst, 10213);
1815 } 1819 }
1816 dasm_put(Dst, 7237); 1820 dasm_put(Dst, 7233);
1817 break; 1821 break;
1818 case BC_KNUM: 1822 case BC_KNUM:
1819 if (sse) { 1823 if (sse) {
1820 dasm_put(Dst, 10225); 1824 dasm_put(Dst, 10221);
1821 } else { 1825 } else {
1822 dasm_put(Dst, 10238); 1826 dasm_put(Dst, 10234);
1823 } 1827 }
1824 dasm_put(Dst, 7237); 1828 dasm_put(Dst, 7233);
1825 break; 1829 break;
1826 case BC_KPRI: 1830 case BC_KPRI:
1827 dasm_put(Dst, 10245); 1831 dasm_put(Dst, 10241);
1828 break; 1832 break;
1829 case BC_KNIL: 1833 case BC_KNIL:
1830 dasm_put(Dst, 10273, LJ_TNIL); 1834 dasm_put(Dst, 10269, LJ_TNIL);
1831 break; 1835 break;
1832 1836
1833 /* -- Upvalue and function ops ------------------------------------------ */ 1837 /* -- Upvalue and function ops ------------------------------------------ */
1834 1838
1835 case BC_UGET: 1839 case BC_UGET:
1836 dasm_put(Dst, 10320, offsetof(GCfuncL, uvptr), DtA(->v)); 1840 dasm_put(Dst, 10316, offsetof(GCfuncL, uvptr), DtA(->v));
1837 break; 1841 break;
1838 case BC_USETV: 1842 case BC_USETV:
1839#define TV2MARKOFS \ 1843#define TV2MARKOFS \
1840 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1844 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1841 dasm_put(Dst, 10365, 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); 1845 dasm_put(Dst, 10361, 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);
1842 dasm_put(Dst, 10456); 1846 dasm_put(Dst, 10452);
1843 break; 1847 break;
1844#undef TV2MARKOFS 1848#undef TV2MARKOFS
1845 case BC_USETS: 1849 case BC_USETS:
1846 dasm_put(Dst, 10468, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1850 dasm_put(Dst, 10464, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1847 break; 1851 break;
1848 case BC_USETN: 1852 case BC_USETN:
1849 dasm_put(Dst, 10561); 1853 dasm_put(Dst, 10557);
1850 if (sse) { 1854 if (sse) {
1851 dasm_put(Dst, 10566); 1855 dasm_put(Dst, 10562);
1852 } else { 1856 } else {
1853 dasm_put(Dst, 9381); 1857 dasm_put(Dst, 9377);
1854 } 1858 }
1855 dasm_put(Dst, 10573, offsetof(GCfuncL, uvptr), DtA(->v)); 1859 dasm_put(Dst, 10569, offsetof(GCfuncL, uvptr), DtA(->v));
1856 if (sse) { 1860 if (sse) {
1857 dasm_put(Dst, 10582); 1861 dasm_put(Dst, 10578);
1858 } else { 1862 } else {
1859 dasm_put(Dst, 10588); 1863 dasm_put(Dst, 10584);
1860 } 1864 }
1861 dasm_put(Dst, 7237); 1865 dasm_put(Dst, 7233);
1862 break; 1866 break;
1863 case BC_USETP: 1867 case BC_USETP:
1864 dasm_put(Dst, 10591, offsetof(GCfuncL, uvptr), DtA(->v)); 1868 dasm_put(Dst, 10587, offsetof(GCfuncL, uvptr), DtA(->v));
1865 break; 1869 break;
1866 case BC_UCLO: 1870 case BC_UCLO:
1867 dasm_put(Dst, 10630, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1871 dasm_put(Dst, 10626, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1868 break; 1872 break;
1869 1873
1870 case BC_FNEW: 1874 case BC_FNEW:
1871 dasm_put(Dst, 10685, Dt1(->base), Dt1(->base), LJ_TFUNC); 1875 dasm_put(Dst, 10681, Dt1(->base), Dt1(->base), LJ_TFUNC);
1872 break; 1876 break;
1873 1877
1874 /* -- Table ops --------------------------------------------------------- */ 1878 /* -- Table ops --------------------------------------------------------- */
1875 1879
1876 case BC_TNEW: 1880 case BC_TNEW:
1877 dasm_put(Dst, 10751, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1881 dasm_put(Dst, 10747, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1878 break; 1882 break;
1879 case BC_TDUP: 1883 case BC_TDUP:
1880 dasm_put(Dst, 10872, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1884 dasm_put(Dst, 10868, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1881 break; 1885 break;
1882 1886
1883 case BC_GGET: 1887 case BC_GGET:
1884 dasm_put(Dst, 10967, Dt7(->env)); 1888 dasm_put(Dst, 10963, Dt7(->env));
1885 break; 1889 break;
1886 case BC_GSET: 1890 case BC_GSET:
1887 dasm_put(Dst, 10986, Dt7(->env)); 1891 dasm_put(Dst, 10982, Dt7(->env));
1888 break; 1892 break;
1889 1893
1890 case BC_TGETV: 1894 case BC_TGETV:
1891 dasm_put(Dst, 11005, LJ_TTAB, LJ_TISNUM); 1895 dasm_put(Dst, 11001, LJ_TTAB, LJ_TISNUM);
1892 if (sse) { 1896 if (sse) {
1893 dasm_put(Dst, 11038); 1897 dasm_put(Dst, 11034);
1894 } else { 1898 } else {
1895 } 1899 }
1896 dasm_put(Dst, 11059, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1900 dasm_put(Dst, 11055, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1897 dasm_put(Dst, 11152, LJ_TSTR); 1901 dasm_put(Dst, 11148, LJ_TSTR);
1898 break; 1902 break;
1899 case BC_TGETS: 1903 case BC_TGETS:
1900 dasm_put(Dst, 11170, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1904 dasm_put(Dst, 11166, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1901 dasm_put(Dst, 11255, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1905 dasm_put(Dst, 11251, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1902 break; 1906 break;
1903 case BC_TGETB: 1907 case BC_TGETB:
1904 dasm_put(Dst, 11327, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1908 dasm_put(Dst, 11323, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1905 dasm_put(Dst, 9668); 1909 dasm_put(Dst, 9664);
1906 break; 1910 break;
1907 1911
1908 case BC_TSETV: 1912 case BC_TSETV:
1909 dasm_put(Dst, 11427, LJ_TTAB, LJ_TISNUM); 1913 dasm_put(Dst, 11423, LJ_TTAB, LJ_TISNUM);
1910 if (sse) { 1914 if (sse) {
1911 dasm_put(Dst, 11038); 1915 dasm_put(Dst, 11034);
1912 } else { 1916 } else {
1913 } 1917 }
1914 dasm_put(Dst, 11460, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1918 dasm_put(Dst, 11456, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1915 dasm_put(Dst, 11544, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1919 dasm_put(Dst, 11540, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1916 break; 1920 break;
1917 case BC_TSETS: 1921 case BC_TSETS:
1918 dasm_put(Dst, 11606, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1922 dasm_put(Dst, 11602, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1919 dasm_put(Dst, 11682, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1923 dasm_put(Dst, 11678, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1920 dasm_put(Dst, 11775, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1924 dasm_put(Dst, 11771, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1921 break; 1925 break;
1922 case BC_TSETB: 1926 case BC_TSETB:
1923 dasm_put(Dst, 11866, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1927 dasm_put(Dst, 11862, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1924 dasm_put(Dst, 11965, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1928 dasm_put(Dst, 11961, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1925 break; 1929 break;
1926 1930
1927 case BC_TSETM: 1931 case BC_TSETM:
1928 dasm_put(Dst, 12011); 1932 dasm_put(Dst, 12007);
1929 if (sse) { 1933 if (sse) {
1930 dasm_put(Dst, 10566); 1934 dasm_put(Dst, 10562);
1931 } else { 1935 } else {
1932 } 1936 }
1933 dasm_put(Dst, 12016, Dt6(->marked), LJ_GC_BLACK); 1937 dasm_put(Dst, 12012, Dt6(->marked), LJ_GC_BLACK);
1934 if (sse) { 1938 if (sse) {
1935 dasm_put(Dst, 12041); 1939 dasm_put(Dst, 12037);
1936 } else { 1940 } else {
1937 } 1941 }
1938 dasm_put(Dst, 12048, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1942 dasm_put(Dst, 12044, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
1939 dasm_put(Dst, 12174, Dt6(->gclist)); 1943 dasm_put(Dst, 12170, Dt6(->gclist));
1940 break; 1944 break;
1941 1945
1942 /* -- Calls and vararg handling ----------------------------------------- */ 1946 /* -- Calls and vararg handling ----------------------------------------- */
1943 1947
1944 case BC_CALL: case BC_CALLM: 1948 case BC_CALL: case BC_CALLM:
1945 dasm_put(Dst, 9682); 1949 dasm_put(Dst, 9678);
1946 if (op == BC_CALLM) { 1950 if (op == BC_CALLM) {
1947 dasm_put(Dst, 12182); 1951 dasm_put(Dst, 12178);
1948 } 1952 }
1949 dasm_put(Dst, 12187, LJ_TFUNC, Dt7(->pc)); 1953 dasm_put(Dst, 12183, LJ_TFUNC, Dt7(->pc));
1950 break; 1954 break;
1951 1955
1952 case BC_CALLMT: 1956 case BC_CALLMT:
1953 dasm_put(Dst, 12182); 1957 dasm_put(Dst, 12178);
1954 break; 1958 break;
1955 case BC_CALLT: 1959 case BC_CALLT:
1956 dasm_put(Dst, 12229, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1960 dasm_put(Dst, 12225, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1957 dasm_put(Dst, 12348, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1961 dasm_put(Dst, 12344, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1958 break; 1962 break;
1959 1963
1960 case BC_ITERC: 1964 case BC_ITERC:
1961 dasm_put(Dst, 12406, LJ_TFUNC, 2+1, Dt7(->pc)); 1965 dasm_put(Dst, 12402, LJ_TFUNC, 2+1, Dt7(->pc));
1962 break; 1966 break;
1963 1967
1964 case BC_VARG: 1968 case BC_VARG:
1965 dasm_put(Dst, 12487, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1969 dasm_put(Dst, 12483, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1966 dasm_put(Dst, 12632, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1970 dasm_put(Dst, 12628, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1967 break; 1971 break;
1968 1972
1969 /* -- Returns ----------------------------------------------------------- */ 1973 /* -- Returns ----------------------------------------------------------- */
1970 1974
1971 case BC_RETM: 1975 case BC_RETM:
1972 dasm_put(Dst, 12182); 1976 dasm_put(Dst, 12178);
1973 break; 1977 break;
1974 1978
1975 case BC_RET: case BC_RET0: case BC_RET1: 1979 case BC_RET: case BC_RET0: case BC_RET1:
1976 if (op != BC_RET0) { 1980 if (op != BC_RET0) {
1977 dasm_put(Dst, 12731); 1981 dasm_put(Dst, 12727);
1978 } 1982 }
1979 dasm_put(Dst, 12735, FRAME_TYPE); 1983 dasm_put(Dst, 12731, FRAME_TYPE);
1980 switch (op) { 1984 switch (op) {
1981 case BC_RET: 1985 case BC_RET:
1982 dasm_put(Dst, 12754); 1986 dasm_put(Dst, 12750);
1983 break; 1987 break;
1984 case BC_RET1: 1988 case BC_RET1:
1985 dasm_put(Dst, 12812); 1989 dasm_put(Dst, 12808);
1986 /* fallthrough */ 1990 /* fallthrough */
1987 case BC_RET0: 1991 case BC_RET0:
1988 dasm_put(Dst, 12828); 1992 dasm_put(Dst, 12824);
1989 default: 1993 default:
1990 break; 1994 break;
1991 } 1995 }
1992 dasm_put(Dst, 12839, Dt7(->pc), PC2PROTO(k)); 1996 dasm_put(Dst, 12835, Dt7(->pc), PC2PROTO(k));
1993 if (op == BC_RET) { 1997 if (op == BC_RET) {
1994 dasm_put(Dst, 12883, LJ_TNIL); 1998 dasm_put(Dst, 12879, LJ_TNIL);
1995 } else { 1999 } else {
1996 dasm_put(Dst, 12892, LJ_TNIL); 2000 dasm_put(Dst, 12888, LJ_TNIL);
1997 } 2001 }
1998 dasm_put(Dst, 12899); 2002 dasm_put(Dst, 12895);
1999 if (op != BC_RET0) { 2003 if (op != BC_RET0) {
2000 dasm_put(Dst, 12920); 2004 dasm_put(Dst, 12916);
2001 } 2005 }
2002 dasm_put(Dst, 4542); 2006 dasm_put(Dst, 4542);
2003 break; 2007 break;
@@ -2007,7 +2011,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2007 2011
2008 case BC_FORL: 2012 case BC_FORL:
2009#if LJ_HASJIT 2013#if LJ_HASJIT
2010 dasm_put(Dst, 12924, HOTCOUNT_PCMASK, GG_DISP2HOT); 2014 dasm_put(Dst, 12920, HOTCOUNT_PCMASK, GG_DISP2HOT);
2011#endif 2015#endif
2012 break; 2016 break;
2013 2017
@@ -2019,57 +2023,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2019 case BC_FORI: 2023 case BC_FORI:
2020 case BC_IFORL: 2024 case BC_IFORL:
2021 vk = (op == BC_IFORL || op == BC_JFORL); 2025 vk = (op == BC_IFORL || op == BC_JFORL);
2022 dasm_put(Dst, 12945); 2026 dasm_put(Dst, 12941);
2023 if (!vk) { 2027 if (!vk) {
2024 dasm_put(Dst, 12949, LJ_TISNUM, LJ_TISNUM); 2028 dasm_put(Dst, 12945, LJ_TISNUM, LJ_TISNUM);
2025 } 2029 }
2026 dasm_put(Dst, 12968); 2030 dasm_put(Dst, 12964);
2027 if (!vk) { 2031 if (!vk) {
2028 dasm_put(Dst, 12972, LJ_TISNUM); 2032 dasm_put(Dst, 12968, LJ_TISNUM);
2029 } 2033 }
2030 if (sse) { 2034 if (sse) {
2031 dasm_put(Dst, 12981); 2035 dasm_put(Dst, 12977);
2032 if (vk) { 2036 if (vk) {
2033 dasm_put(Dst, 12993); 2037 dasm_put(Dst, 12989);
2034 } else { 2038 } else {
2035 dasm_put(Dst, 13012); 2039 dasm_put(Dst, 13008);
2036 } 2040 }
2037 dasm_put(Dst, 13017); 2041 dasm_put(Dst, 13013);
2038 } else { 2042 } else {
2039 dasm_put(Dst, 13030); 2043 dasm_put(Dst, 13026);
2040 if (vk) { 2044 if (vk) {
2041 dasm_put(Dst, 13036); 2045 dasm_put(Dst, 13032);
2042 } else { 2046 } else {
2043 dasm_put(Dst, 13052); 2047 dasm_put(Dst, 13048);
2044 } 2048 }
2045 dasm_put(Dst, 13060); 2049 dasm_put(Dst, 13056);
2046 if (cmov) { 2050 if (cmov) {
2047 dasm_put(Dst, 9105); 2051 dasm_put(Dst, 9101);
2048 } else { 2052 } else {
2049 dasm_put(Dst, 9111); 2053 dasm_put(Dst, 9107);
2050 } 2054 }
2051 if (!cmov) { 2055 if (!cmov) {
2052 dasm_put(Dst, 13065); 2056 dasm_put(Dst, 13061);
2053 } 2057 }
2054 } 2058 }
2055 if (op == BC_FORI) { 2059 if (op == BC_FORI) {
2056 dasm_put(Dst, 13071, -BCBIAS_J*4); 2060 dasm_put(Dst, 13067, -BCBIAS_J*4);
2057 } else if (op == BC_JFORI) { 2061 } else if (op == BC_JFORI) {
2058 dasm_put(Dst, 13081, -BCBIAS_J*4, BC_JLOOP); 2062 dasm_put(Dst, 13077, -BCBIAS_J*4, BC_JLOOP);
2059 } else if (op == BC_IFORL) { 2063 } else if (op == BC_IFORL) {
2060 dasm_put(Dst, 13095, -BCBIAS_J*4); 2064 dasm_put(Dst, 13091, -BCBIAS_J*4);
2061 } else { 2065 } else {
2062 dasm_put(Dst, 13091, BC_JLOOP); 2066 dasm_put(Dst, 13087, BC_JLOOP);
2063 } 2067 }
2064 dasm_put(Dst, 9140); 2068 dasm_put(Dst, 9136);
2065 if (sse) { 2069 if (sse) {
2066 dasm_put(Dst, 13105); 2070 dasm_put(Dst, 13101);
2067 } 2071 }
2068 break; 2072 break;
2069 2073
2070 case BC_ITERL: 2074 case BC_ITERL:
2071#if LJ_HASJIT 2075#if LJ_HASJIT
2072 dasm_put(Dst, 12924, HOTCOUNT_PCMASK, GG_DISP2HOT); 2076 dasm_put(Dst, 12920, HOTCOUNT_PCMASK, GG_DISP2HOT);
2073#endif 2077#endif
2074 break; 2078 break;
2075 2079
@@ -2078,33 +2082,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2078 break; 2082 break;
2079#endif 2083#endif
2080 case BC_IITERL: 2084 case BC_IITERL:
2081 dasm_put(Dst, 13116, LJ_TNIL); 2085 dasm_put(Dst, 13112, LJ_TNIL);
2082 if (op == BC_JITERL) { 2086 if (op == BC_JITERL) {
2083 dasm_put(Dst, 13131, BC_JLOOP); 2087 dasm_put(Dst, 13127, BC_JLOOP);
2084 } else { 2088 } else {
2085 dasm_put(Dst, 13145, -BCBIAS_J*4); 2089 dasm_put(Dst, 13141, -BCBIAS_J*4);
2086 } 2090 }
2087 dasm_put(Dst, 9440); 2091 dasm_put(Dst, 9436);
2088 break; 2092 break;
2089 2093
2090 case BC_LOOP: 2094 case BC_LOOP:
2091#if LJ_HASJIT 2095#if LJ_HASJIT
2092 dasm_put(Dst, 12924, HOTCOUNT_PCMASK, GG_DISP2HOT); 2096 dasm_put(Dst, 12920, HOTCOUNT_PCMASK, GG_DISP2HOT);
2093#endif 2097#endif
2094 break; 2098 break;
2095 2099
2096 case BC_ILOOP: 2100 case BC_ILOOP:
2097 dasm_put(Dst, 7237); 2101 dasm_put(Dst, 7233);
2098 break; 2102 break;
2099 2103
2100 case BC_JLOOP: 2104 case BC_JLOOP:
2101#if LJ_HASJIT 2105#if LJ_HASJIT
2102 dasm_put(Dst, 13161, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2106 dasm_put(Dst, 13157, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2103#endif 2107#endif
2104 break; 2108 break;
2105 2109
2106 case BC_JMP: 2110 case BC_JMP:
2107 dasm_put(Dst, 13185, -BCBIAS_J*4); 2111 dasm_put(Dst, 13181, -BCBIAS_J*4);
2108 break; 2112 break;
2109 2113
2110 /* -- Function headers -------------------------------------------------- */ 2114 /* -- Function headers -------------------------------------------------- */
@@ -2127,13 +2131,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2127 break; 2131 break;
2128#endif 2132#endif
2129 case BC_IFUNCF: 2133 case BC_IFUNCF:
2130 dasm_put(Dst, 13210, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2134 dasm_put(Dst, 13206, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2131 if (op == BC_JFUNCF) { 2135 if (op == BC_JFUNCF) {
2132 dasm_put(Dst, 13240, BC_JLOOP); 2136 dasm_put(Dst, 13236, BC_JLOOP);
2133 } else { 2137 } else {
2134 dasm_put(Dst, 7237); 2138 dasm_put(Dst, 7233);
2135 } 2139 }
2136 dasm_put(Dst, 13249, LJ_TNIL); 2140 dasm_put(Dst, 13245, LJ_TNIL);
2137 break; 2141 break;
2138 2142
2139 case BC_JFUNCV: 2143 case BC_JFUNCV:
@@ -2144,30 +2148,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2144 break; /* NYI: compiled vararg functions. */ 2148 break; /* NYI: compiled vararg functions. */
2145 2149
2146 case BC_IFUNCV: 2150 case BC_IFUNCV:
2147 dasm_put(Dst, 13271, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2151 dasm_put(Dst, 13267, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2148 if (op == BC_JFUNCV) { 2152 if (op == BC_JFUNCV) {
2149 dasm_put(Dst, 13240, BC_JLOOP); 2153 dasm_put(Dst, 13236, BC_JLOOP);
2150 } else { 2154 } else {
2151 dasm_put(Dst, 13362, -4+PC2PROTO(k)); 2155 dasm_put(Dst, 13358, -4+PC2PROTO(k));
2152 } 2156 }
2153 dasm_put(Dst, 13385, LJ_TNIL); 2157 dasm_put(Dst, 13381, LJ_TNIL);
2154 break; 2158 break;
2155 2159
2156 case BC_FUNCC: 2160 case BC_FUNCC:
2157 case BC_FUNCCW: 2161 case BC_FUNCCW:
2158 dasm_put(Dst, 13407, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2162 dasm_put(Dst, 13403, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2159 if (op == BC_FUNCC) { 2163 if (op == BC_FUNCC) {
2160 dasm_put(Dst, 13437); 2164 dasm_put(Dst, 13433);
2161 } else { 2165 } else {
2162 dasm_put(Dst, 13441); 2166 dasm_put(Dst, 13437);
2163 } 2167 }
2164 dasm_put(Dst, 13449, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2168 dasm_put(Dst, 13445, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2165 if (op == BC_FUNCC) { 2169 if (op == BC_FUNCC) {
2166 dasm_put(Dst, 13458); 2170 dasm_put(Dst, 13454);
2167 } else { 2171 } else {
2168 dasm_put(Dst, 13462, DISPATCH_GL(wrapf)); 2172 dasm_put(Dst, 13458, DISPATCH_GL(wrapf));
2169 } 2173 }
2170 dasm_put(Dst, 13467, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2174 dasm_put(Dst, 13463, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2171 break; 2175 break;
2172 2176
2173 /* ---------------------------------------------------------------------- */ 2177 /* ---------------------------------------------------------------------- */
@@ -2195,7 +2199,7 @@ static int build_backend(BuildCtx *ctx)
2195 2199
2196 build_subroutines(ctx, cmov, sse); 2200 build_subroutines(ctx, cmov, sse);
2197 2201
2198 dasm_put(Dst, 13492); 2202 dasm_put(Dst, 13488);
2199 for (op = 0; op < BC__MAX; op++) 2203 for (op = 0; op < BC__MAX; op++)
2200 build_ins(ctx, (BCOp)op, op, cmov, sse); 2204 build_ins(ctx, (BCOp)op, op, cmov, sse);
2201 2205