summaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64win.h')
-rw-r--r--src/buildvm_x64win.h747
1 files changed, 379 insertions, 368 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 8784aecf..772660d9 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[13390] = { 15static const unsigned char build_actionlist[13478] = {
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,62 +359,66 @@ static const unsigned char build_actionlist[13390] = {
359 137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5, 359 137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,
360 255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,233,248, 360 255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,
361 138,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,139,255,204,255,248, 361 138,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,139,255,204,255,248,
362 140,255,248,141,255,248,142,255,139,122,252,248,139,191,233,139,191,233,199, 362 140,255,72,199,131,233,0,0,0,0,252,233,244,247,255,248,141,255,72,137,171,
363 131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193, 363 233,248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,
364 232,16,252,255,36,252,235,255,248,82,255,217,124,36,4,137,68,36,8,102,184, 364 252,242,137,252,233,137,116,36,100,232,251,1,21,199,68,36,100,0,0,0,0,139,
365 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 365 149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,
366 252,252,217,108,36,4,139,68,36,8,195,255,248,143,72,184,237,237,102,72,15, 366 3,131,192,1,252,255,229,248,142,255,248,143,255,139,122,252,248,139,191,233,
367 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46, 367 139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,
368 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 368 131,198,4,193,232,16,252,255,36,252,235,255,248,82,255,217,124,36,4,137,68,
369 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84, 369 36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,
370 194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,
371 36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,
372 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,144,72,184,237, 370 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,144,72,184,237,
373 237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84, 371 237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,
374 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 372 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
375 15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193, 373 15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,
376 6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124, 374 1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,
377 36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6, 375 36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,
378 217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72, 376 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,
379 15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15, 377 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,
380 46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15, 378 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,
381 92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195, 379 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,
382 252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,146,255,15,40,232, 380 15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,
383 252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72, 381 255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,
384 15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85, 382 217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,
385 208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102, 383 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,
386 72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40, 384 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,
387 197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40, 385 88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,
388 197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0, 386 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,
389 4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, 387 147,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,
390 252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201, 388 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,
391 248,147,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,124,36,8, 389 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,
392 0,0,128,252,255,15,132,244,248,248,148,217,192,217,252,252,220,252,233,217, 390 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,
393 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 391 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,
394 217,252,238,195,255,248,107,255,248,149,252,242,15,45,193,252,242,15,42,208, 392 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,
395 102,15,46,202,15,133,244,254,15,138,244,255,248,150,131,252,248,1,15,142, 393 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,
396 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, 394 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,
397 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, 395 234,222,201,248,148,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,
398 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, 396 124,36,8,0,0,128,252,255,15,132,244,248,248,149,217,192,217,252,252,220,252,
399 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237, 397 233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,
400 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252, 398 2,221,216,217,252,238,195,255,248,107,255,248,150,252,242,15,45,193,252,242,
401 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195, 399 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,151,131,252,248,
402 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15, 400 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,
403 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12, 401 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,
404 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,15,17, 402 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,
405 68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,252, 403 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,
406 233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,8,252, 404 72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,
407 242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194, 405 131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,
408 15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208, 406 192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,
409 102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1, 407 0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,
410 102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184, 408 192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,
411 237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244, 409 15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,
412 3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248, 410 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,
413 151,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244, 411 8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,
414 104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221, 412 46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,
415 68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,252, 413 110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,
416 233,244,253,248,1,232,244,147,255,80,252,233,244,253,248,2,131,252,250,7, 414 244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,
417 15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244, 415 3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,
416 133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,
417 195,248,152,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,
418 130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,
419 8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,
420 252,233,244,253,248,1,232,244,148,255,80,252,233,244,253,248,2,131,252,250,
421 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,
418 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9, 422 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,
419 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244, 423 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,
420 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244, 424 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,
@@ -422,14 +426,14 @@ static const unsigned char build_actionlist[13390] = {
422 248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4, 426 248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,
423 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15, 427 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,
424 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244, 428 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244,
425 147,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 429 148,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
426 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132, 430 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,
427 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 431 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
428 252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255, 432 252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,
429 195,248,1,217,252,242,221,216,195,255,248,9,204,248,152,255,65,131,252,248, 433 195,248,1,217,252,242,221,216,195,255,248,9,204,248,153,255,65,131,252,248,
430 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92, 434 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,
431 193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89, 435 193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,
432 193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,146, 436 193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,147,
433 15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237, 437 15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,
434 237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110, 438 237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,
435 200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68, 439 200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,
@@ -439,14 +443,14 @@ static const unsigned char build_actionlist[13390] = {
439 252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36, 443 252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,
440 20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222, 444 20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,
441 193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244, 445 193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,
442 248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,146, 446 248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,147,
443 15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217, 447 15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,
444 224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135, 448 224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,
445 244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252, 449 244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,
446 248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195, 450 248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,
447 248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15, 451 248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,
448 132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1, 452 132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,
449 15,133,244,248,217,201,248,2,221,216,195,255,248,153,137,200,86,72,137,214, 453 15,133,244,248,217,201,248,2,221,216,195,255,248,154,137,200,86,72,137,214,
450 83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,249,255,129,124, 454 83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,249,255,129,124,
451 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 455 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,
452 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255, 456 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,
@@ -495,10 +499,10 @@ static const unsigned char build_actionlist[13390] = {
495 234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4, 499 234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,
496 252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16, 500 252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,
497 4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15, 501 4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,
498 16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,154, 502 16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,155,
499 232,244,146,255,252,233,244,154,255,232,244,107,255,15,182,252,236,15,182, 503 232,244,147,255,252,233,244,155,255,232,244,107,255,15,182,252,236,15,182,
500 192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205, 504 192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205,
501 137,116,36,100,232,251,1,21,139,149,233,133,192,15,133,244,42,15,182,110, 505 137,116,36,100,232,251,1,22,139,149,233,133,192,15,133,244,42,15,182,110,
502 252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137, 506 252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,
503 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 507 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
504 255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204, 508 255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,
@@ -515,33 +519,33 @@ static const unsigned char build_actionlist[13390] = {
515 132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15, 519 132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,
516 182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252, 520 182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,
517 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233, 521 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,
518 255,232,251,1,22,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252, 522 255,232,251,1,23,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,
519 248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246, 523 248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,
520 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 524 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
521 232,16,252,255,36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189, 525 232,16,252,255,36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,
522 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,22,137,252,234,252, 526 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,23,137,252,234,252,
523 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 527 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,
524 233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106, 528 233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,
525 252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182, 529 252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,
526 232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108, 530 232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,
527 36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232, 531 36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,
528 251,1,23,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 532 251,1,24,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
529 16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139, 533 16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,
530 66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,1,24,139,149,233, 534 66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,1,25,139,149,233,
531 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232, 535 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,
532 131,198,4,193,232,16,252,255,36,252,235,255,139,76,36,96,137,145,233,248, 536 131,198,4,193,232,16,252,255,36,252,235,255,139,76,36,96,137,145,233,248,
533 1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249, 537 1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249,
534 248,2,137,194,139,131,233,137,205,59,131,233,137,116,36,100,15,131,244,251, 538 248,2,137,194,139,131,233,137,205,59,131,233,137,116,36,100,15,131,244,251,
535 232,251,1,25,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 539 232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,
536 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184, 540 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,
537 1,8,0,0,252,233,244,2,248,5,232,251,1,26,15,183,70,252,254,137,252,233,252, 541 1,8,0,0,252,233,244,2,248,5,232,251,1,27,15,183,70,252,254,137,252,233,252,
538 233,244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59, 542 233,244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,
539 139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1, 543 139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,
540 27,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182, 544 28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
541 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233, 545 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,
542 232,251,1,26,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247, 546 232,251,1,27,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,
543 208,139,106,252,248,139,173,233,139,4,135,252,233,244,155,255,72,252,247, 547 208,139,106,252,248,139,173,233,139,4,135,252,233,244,156,255,72,252,247,
544 208,139,106,252,248,139,173,233,139,4,135,252,233,244,156,255,15,182,252, 548 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,15,182,252,
545 236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129, 549 236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,
546 124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192, 550 124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,
547 252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36, 551 252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,
@@ -549,9 +553,9 @@ static const unsigned char build_actionlist[13390] = {
549 4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 553 4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
550 252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 554 252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,
551 233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255,129,124,253, 555 233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255,129,124,253,
552 194,4,239,15,133,244,36,139,4,194,252,233,244,155,255,15,182,252,236,15,182, 556 194,4,239,15,133,244,36,139,4,194,252,233,244,156,255,15,182,252,236,15,182,
553 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139, 557 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
554 44,252,234,248,155,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129, 558 44,252,234,248,156,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
555 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15, 559 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
556 132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76, 560 132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,
557 194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 561 194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
@@ -569,10 +573,10 @@ static const unsigned char build_actionlist[13390] = {
569 137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 573 137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
570 36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233, 574 36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,
571 235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4, 575 235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,
572 239,15,133,244,39,139,4,194,252,233,244,156,248,7,128,165,233,235,139,139, 576 239,15,133,244,39,139,4,194,252,233,244,157,248,7,128,165,233,235,139,139,
573 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252, 577 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,
574 236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 578 236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,
575 244,37,139,44,252,234,248,156,139,141,233,35,136,233,105,201,239,198,133, 579 244,37,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,198,133,
576 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244, 580 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,
577 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133, 581 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,
578 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139, 582 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,
@@ -581,7 +585,7 @@ static const unsigned char build_actionlist[13390] = {
581 244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1, 585 244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,
582 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, 586 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,
583 248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233, 587 248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,
584 76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,28,139,149,233, 588 76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,29,139,149,233,
585 139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137, 589 139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,
586 171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253, 590 171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
587 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224, 591 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,
@@ -597,7 +601,7 @@ static const unsigned char build_actionlist[13390] = {
597 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139, 601 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,
598 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139, 602 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,
599 76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251, 603 76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,
600 1,29,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139, 604 1,30,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
601 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,84,255,129, 605 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,84,255,129,
602 124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139, 606 124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,
603 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255, 607 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,
@@ -796,6 +800,7 @@ enum {
796 GLOB_vm_hook, 800 GLOB_vm_hook,
797 GLOB_cont_hook, 801 GLOB_cont_hook,
798 GLOB_vm_hotloop, 802 GLOB_vm_hotloop,
803 GLOB_vm_callhook,
799 GLOB_vm_hotcall, 804 GLOB_vm_hotcall,
800 GLOB_vm_exit_handler, 805 GLOB_vm_exit_handler,
801 GLOB_vm_exit_interp, 806 GLOB_vm_exit_interp,
@@ -946,6 +951,7 @@ static const char *const globnames[] = {
946 "vm_hook", 951 "vm_hook",
947 "cont_hook", 952 "cont_hook",
948 "vm_hotloop", 953 "vm_hotloop",
954 "vm_callhook",
949 "vm_hotcall", 955 "vm_hotcall",
950 "vm_exit_handler", 956 "vm_exit_handler",
951 "vm_exit_interp", 957 "vm_exit_interp",
@@ -987,6 +993,7 @@ static const char *const extnames[] = {
987 "lj_tab_len@4", 993 "lj_tab_len@4",
988 "lj_gc_step@4", 994 "lj_gc_step@4",
989 "lj_dispatch_ins@8", 995 "lj_dispatch_ins@8",
996 "lj_dispatch_call@8",
990 "lj_meta_cat", 997 "lj_meta_cat",
991 "lj_gc_barrieruv@8", 998 "lj_gc_barrieruv@8",
992 "lj_func_closeuv@8", 999 "lj_func_closeuv@8",
@@ -1315,73 +1322,77 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1315#endif 1322#endif
1316 dasm_put(Dst, 7103); 1323 dasm_put(Dst, 7103);
1317#if LJ_HASJIT 1324#if LJ_HASJIT
1318 dasm_put(Dst, 7101); 1325 dasm_put(Dst, 7106, DISPATCH_J(L));
1326#endif
1327 dasm_put(Dst, 7119);
1328#if LJ_HASJIT
1329 dasm_put(Dst, 7122, DISPATCH_J(L));
1319#endif 1330#endif
1320 dasm_put(Dst, 7106); 1331 dasm_put(Dst, 7129, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1321#if LJ_HASJIT 1332#if LJ_HASJIT
1322 dasm_put(Dst, 7101); 1333 dasm_put(Dst, 7101);
1323#endif 1334#endif
1324 dasm_put(Dst, 7109); 1335 dasm_put(Dst, 7197);
1325#if LJ_HASJIT 1336#if LJ_HASJIT
1326 dasm_put(Dst, 7112, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1337 dasm_put(Dst, 7200, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1327#endif 1338#endif
1328 dasm_put(Dst, 7153); 1339 dasm_put(Dst, 7241);
1329 if (!sse) { 1340 if (!sse) {
1330 dasm_put(Dst, 7156); 1341 dasm_put(Dst, 7244);
1331 } 1342 }
1332 dasm_put(Dst, 7201, (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)); 1343 dasm_put(Dst, 7289, (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));
1333 if (!sse) { 1344 if (!sse) {
1334 dasm_put(Dst, 7287); 1345 dasm_put(Dst, 7375);
1335 } 1346 }
1336 dasm_put(Dst, 7332, (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)); 1347 dasm_put(Dst, 7420, (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));
1337 if (!sse) { 1348 if (!sse) {
1338 dasm_put(Dst, 7418); 1349 dasm_put(Dst, 7506);
1339 } 1350 }
1340 dasm_put(Dst, 7457, (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)); 1351 dasm_put(Dst, 7545, (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));
1341 if (sse) { 1352 if (sse) {
1342 dasm_put(Dst, 7546, (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)); 1353 dasm_put(Dst, 7634, (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));
1343 } else { 1354 } else {
1344 dasm_put(Dst, 7660); 1355 dasm_put(Dst, 7748);
1345 } 1356 }
1346 dasm_put(Dst, 7707); 1357 dasm_put(Dst, 7795);
1347 if (!sse) { 1358 if (!sse) {
1348 } else { 1359 } else {
1349 dasm_put(Dst, 7781); 1360 dasm_put(Dst, 7869);
1350 } 1361 }
1351 dasm_put(Dst, 7784); 1362 dasm_put(Dst, 7872);
1352 dasm_put(Dst, 7869, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1363 dasm_put(Dst, 7957, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1353 dasm_put(Dst, 7970, (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)); 1364 dasm_put(Dst, 8058, (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));
1354 dasm_put(Dst, 8138); 1365 dasm_put(Dst, 8226);
1355 if (sse) { 1366 if (sse) {
1356 dasm_put(Dst, 8179); 1367 dasm_put(Dst, 8267);
1357 dasm_put(Dst, 8249); 1368 dasm_put(Dst, 8337);
1358 dasm_put(Dst, 8322); 1369 dasm_put(Dst, 8410);
1359 } else { 1370 } else {
1360 dasm_put(Dst, 8372); 1371 dasm_put(Dst, 8460);
1361 dasm_put(Dst, 8464); 1372 dasm_put(Dst, 8552);
1362 } 1373 }
1363 dasm_put(Dst, 8510); 1374 dasm_put(Dst, 8598);
1364 if (sse) { 1375 if (sse) {
1365 dasm_put(Dst, 8516, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1376 dasm_put(Dst, 8604, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1366 dasm_put(Dst, 8605, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1377 dasm_put(Dst, 8693, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1367 } else { 1378 } else {
1368 dasm_put(Dst, 8729); 1379 dasm_put(Dst, 8817);
1369 dasm_put(Dst, 8812); 1380 dasm_put(Dst, 8900);
1370 if (cmov) { 1381 if (cmov) {
1371 dasm_put(Dst, 8867); 1382 dasm_put(Dst, 8955);
1372 } else { 1383 } else {
1373 dasm_put(Dst, 8886); 1384 dasm_put(Dst, 8974);
1374 } 1385 }
1375 dasm_put(Dst, 8725); 1386 dasm_put(Dst, 8813);
1376 } 1387 }
1377 dasm_put(Dst, 8927); 1388 dasm_put(Dst, 9015);
1378} 1389}
1379 1390
1380/* Generate the code for a single instruction. */ 1391/* Generate the code for a single instruction. */
1381static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1392static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1382{ 1393{
1383 int vk = 0; 1394 int vk = 0;
1384 dasm_put(Dst, 8953, defop); 1395 dasm_put(Dst, 9041, defop);
1385 1396
1386 switch (op) { 1397 switch (op) {
1387 1398
@@ -1390,600 +1401,600 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1390 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1401 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1391 1402
1392 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1403 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1393 dasm_put(Dst, 8955, LJ_TISNUM, LJ_TISNUM); 1404 dasm_put(Dst, 9043, LJ_TISNUM, LJ_TISNUM);
1394 if (sse) { 1405 if (sse) {
1395 dasm_put(Dst, 8976); 1406 dasm_put(Dst, 9064);
1396 } else { 1407 } else {
1397 dasm_put(Dst, 8991); 1408 dasm_put(Dst, 9079);
1398 if (cmov) { 1409 if (cmov) {
1399 dasm_put(Dst, 9001); 1410 dasm_put(Dst, 9089);
1400 } else { 1411 } else {
1401 dasm_put(Dst, 9007); 1412 dasm_put(Dst, 9095);
1402 } 1413 }
1403 } 1414 }
1404 switch (op) { 1415 switch (op) {
1405 case BC_ISLT: 1416 case BC_ISLT:
1406 dasm_put(Dst, 9014); 1417 dasm_put(Dst, 9102);
1407 break; 1418 break;
1408 case BC_ISGE: 1419 case BC_ISGE:
1409 dasm_put(Dst, 8807); 1420 dasm_put(Dst, 8895);
1410 break; 1421 break;
1411 case BC_ISLE: 1422 case BC_ISLE:
1412 dasm_put(Dst, 5872); 1423 dasm_put(Dst, 5872);
1413 break; 1424 break;
1414 case BC_ISGT: 1425 case BC_ISGT:
1415 dasm_put(Dst, 9019); 1426 dasm_put(Dst, 9107);
1416 break; 1427 break;
1417 default: break; /* Shut up GCC. */ 1428 default: break; /* Shut up GCC. */
1418 } 1429 }
1419 dasm_put(Dst, 9024, -BCBIAS_J*4); 1430 dasm_put(Dst, 9112, -BCBIAS_J*4);
1420 break; 1431 break;
1421 1432
1422 case BC_ISEQV: case BC_ISNEV: 1433 case BC_ISEQV: case BC_ISNEV:
1423 vk = op == BC_ISEQV; 1434 vk = op == BC_ISEQV;
1424 dasm_put(Dst, 9058, LJ_TISNUM, LJ_TISNUM); 1435 dasm_put(Dst, 9146, LJ_TISNUM, LJ_TISNUM);
1425 if (sse) { 1436 if (sse) {
1426 dasm_put(Dst, 9084); 1437 dasm_put(Dst, 9172);
1427 } else { 1438 } else {
1428 dasm_put(Dst, 9096); 1439 dasm_put(Dst, 9184);
1429 if (cmov) { 1440 if (cmov) {
1430 dasm_put(Dst, 9001); 1441 dasm_put(Dst, 9089);
1431 } else { 1442 } else {
1432 dasm_put(Dst, 9007); 1443 dasm_put(Dst, 9095);
1433 } 1444 }
1434 } 1445 }
1435 iseqne_fp: 1446 iseqne_fp:
1436 if (vk) { 1447 if (vk) {
1437 dasm_put(Dst, 9103); 1448 dasm_put(Dst, 9191);
1438 } else { 1449 } else {
1439 dasm_put(Dst, 9112); 1450 dasm_put(Dst, 9200);
1440 } 1451 }
1441 iseqne_end: 1452 iseqne_end:
1442 if (vk) { 1453 if (vk) {
1443 dasm_put(Dst, 9121, -BCBIAS_J*4); 1454 dasm_put(Dst, 9209, -BCBIAS_J*4);
1444 } else { 1455 } else {
1445 dasm_put(Dst, 9136, -BCBIAS_J*4); 1456 dasm_put(Dst, 9224, -BCBIAS_J*4);
1446 } 1457 }
1447 dasm_put(Dst, 7133); 1458 dasm_put(Dst, 7221);
1448 if (op == BC_ISEQV || op == BC_ISNEV) { 1459 if (op == BC_ISEQV || op == BC_ISNEV) {
1449 dasm_put(Dst, 9151, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1460 dasm_put(Dst, 9239, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1450 if (vk) { 1461 if (vk) {
1451 dasm_put(Dst, 9209); 1462 dasm_put(Dst, 9297);
1452 } else { 1463 } else {
1453 dasm_put(Dst, 9213); 1464 dasm_put(Dst, 9301);
1454 } 1465 }
1455 dasm_put(Dst, 9219); 1466 dasm_put(Dst, 9307);
1456 } 1467 }
1457 break; 1468 break;
1458 case BC_ISEQS: case BC_ISNES: 1469 case BC_ISEQS: case BC_ISNES:
1459 vk = op == BC_ISEQS; 1470 vk = op == BC_ISEQS;
1460 dasm_put(Dst, 9224, LJ_TSTR); 1471 dasm_put(Dst, 9312, LJ_TSTR);
1461 iseqne_test: 1472 iseqne_test:
1462 if (vk) { 1473 if (vk) {
1463 dasm_put(Dst, 9107); 1474 dasm_put(Dst, 9195);
1464 } else { 1475 } else {
1465 dasm_put(Dst, 2774); 1476 dasm_put(Dst, 2774);
1466 } 1477 }
1467 goto iseqne_end; 1478 goto iseqne_end;
1468 case BC_ISEQN: case BC_ISNEN: 1479 case BC_ISEQN: case BC_ISNEN:
1469 vk = op == BC_ISEQN; 1480 vk = op == BC_ISEQN;
1470 dasm_put(Dst, 9248, LJ_TISNUM); 1481 dasm_put(Dst, 9336, LJ_TISNUM);
1471 if (sse) { 1482 if (sse) {
1472 dasm_put(Dst, 9262); 1483 dasm_put(Dst, 9350);
1473 } else { 1484 } else {
1474 dasm_put(Dst, 9274); 1485 dasm_put(Dst, 9362);
1475 if (cmov) { 1486 if (cmov) {
1476 dasm_put(Dst, 9001); 1487 dasm_put(Dst, 9089);
1477 } else { 1488 } else {
1478 dasm_put(Dst, 9007); 1489 dasm_put(Dst, 9095);
1479 } 1490 }
1480 } 1491 }
1481 goto iseqne_fp; 1492 goto iseqne_fp;
1482 case BC_ISEQP: case BC_ISNEP: 1493 case BC_ISEQP: case BC_ISNEP:
1483 vk = op == BC_ISEQP; 1494 vk = op == BC_ISEQP;
1484 dasm_put(Dst, 9281); 1495 dasm_put(Dst, 9369);
1485 goto iseqne_test; 1496 goto iseqne_test;
1486 1497
1487 /* -- Unary test and copy ops ------------------------------------------- */ 1498 /* -- Unary test and copy ops ------------------------------------------- */
1488 1499
1489 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1500 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1490 dasm_put(Dst, 9293, LJ_TISTRUECOND); 1501 dasm_put(Dst, 9381, LJ_TISTRUECOND);
1491 if (op == BC_IST || op == BC_ISTC) { 1502 if (op == BC_IST || op == BC_ISTC) {
1492 dasm_put(Dst, 9305); 1503 dasm_put(Dst, 9393);
1493 } else { 1504 } else {
1494 dasm_put(Dst, 9310); 1505 dasm_put(Dst, 9398);
1495 } 1506 }
1496 if (op == BC_ISTC || op == BC_ISFC) { 1507 if (op == BC_ISTC || op == BC_ISFC) {
1497 dasm_put(Dst, 9315); 1508 dasm_put(Dst, 9403);
1498 } 1509 }
1499 dasm_put(Dst, 9326, -BCBIAS_J*4); 1510 dasm_put(Dst, 9414, -BCBIAS_J*4);
1500 break; 1511 break;
1501 1512
1502 /* -- Unary ops --------------------------------------------------------- */ 1513 /* -- Unary ops --------------------------------------------------------- */
1503 1514
1504 case BC_MOV: 1515 case BC_MOV:
1505 dasm_put(Dst, 9358); 1516 dasm_put(Dst, 9446);
1506 break; 1517 break;
1507 case BC_NOT: 1518 case BC_NOT:
1508 dasm_put(Dst, 9392, LJ_TISTRUECOND, LJ_TTRUE); 1519 dasm_put(Dst, 9480, LJ_TISTRUECOND, LJ_TTRUE);
1509 break; 1520 break;
1510 case BC_UNM: 1521 case BC_UNM:
1511 dasm_put(Dst, 9428, LJ_TISNUM); 1522 dasm_put(Dst, 9516, LJ_TISNUM);
1512 if (sse) { 1523 if (sse) {
1513 dasm_put(Dst, 9439, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1524 dasm_put(Dst, 9527, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1514 } else { 1525 } else {
1515 dasm_put(Dst, 9464); 1526 dasm_put(Dst, 9552);
1516 } 1527 }
1517 dasm_put(Dst, 7133); 1528 dasm_put(Dst, 7221);
1518 break; 1529 break;
1519 case BC_LEN: 1530 case BC_LEN:
1520 dasm_put(Dst, 9473, LJ_TSTR); 1531 dasm_put(Dst, 9561, LJ_TSTR);
1521 if (sse) { 1532 if (sse) {
1522 dasm_put(Dst, 9487, Dt5(->len)); 1533 dasm_put(Dst, 9575, Dt5(->len));
1523 } else { 1534 } else {
1524 dasm_put(Dst, 9505, Dt5(->len)); 1535 dasm_put(Dst, 9593, Dt5(->len));
1525 } 1536 }
1526 dasm_put(Dst, 9514, LJ_TTAB); 1537 dasm_put(Dst, 9602, LJ_TTAB);
1527 if (sse) { 1538 if (sse) {
1528 dasm_put(Dst, 9555); 1539 dasm_put(Dst, 9643);
1529 } else { 1540 } else {
1530 } 1541 }
1531 dasm_put(Dst, 9564); 1542 dasm_put(Dst, 9652);
1532 break; 1543 break;
1533 1544
1534 /* -- Binary ops -------------------------------------------------------- */ 1545 /* -- Binary ops -------------------------------------------------------- */
1535 1546
1536 1547
1537 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1548 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1538 dasm_put(Dst, 9574); 1549 dasm_put(Dst, 9662);
1539 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1550 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1540 switch (vk) { 1551 switch (vk) {
1541 case 0: 1552 case 0:
1542 dasm_put(Dst, 9582, LJ_TISNUM); 1553 dasm_put(Dst, 9670, LJ_TISNUM);
1543 if (sse) { 1554 if (sse) {
1544 dasm_put(Dst, 9594); 1555 dasm_put(Dst, 9682);
1545 } else { 1556 } else {
1546 dasm_put(Dst, 9608); 1557 dasm_put(Dst, 9696);
1547 } 1558 }
1548 break; 1559 break;
1549 case 1: 1560 case 1:
1550 dasm_put(Dst, 9616, LJ_TISNUM); 1561 dasm_put(Dst, 9704, LJ_TISNUM);
1551 if (sse) { 1562 if (sse) {
1552 dasm_put(Dst, 9628); 1563 dasm_put(Dst, 9716);
1553 } else { 1564 } else {
1554 dasm_put(Dst, 9642); 1565 dasm_put(Dst, 9730);
1555 } 1566 }
1556 break; 1567 break;
1557 default: 1568 default:
1558 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1569 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1559 if (sse) { 1570 if (sse) {
1560 dasm_put(Dst, 9672); 1571 dasm_put(Dst, 9760);
1561 } else { 1572 } else {
1562 dasm_put(Dst, 9686); 1573 dasm_put(Dst, 9774);
1563 } 1574 }
1564 break; 1575 break;
1565 } 1576 }
1566 if (sse) { 1577 if (sse) {
1567 dasm_put(Dst, 9457); 1578 dasm_put(Dst, 9545);
1568 } else { 1579 } else {
1569 dasm_put(Dst, 9469); 1580 dasm_put(Dst, 9557);
1570 } 1581 }
1571 dasm_put(Dst, 7133); 1582 dasm_put(Dst, 7221);
1572 break; 1583 break;
1573 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1584 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1574 dasm_put(Dst, 9574); 1585 dasm_put(Dst, 9662);
1575 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1586 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1576 switch (vk) { 1587 switch (vk) {
1577 case 0: 1588 case 0:
1578 dasm_put(Dst, 9582, LJ_TISNUM); 1589 dasm_put(Dst, 9670, LJ_TISNUM);
1579 if (sse) { 1590 if (sse) {
1580 dasm_put(Dst, 9694); 1591 dasm_put(Dst, 9782);
1581 } else { 1592 } else {
1582 dasm_put(Dst, 9708); 1593 dasm_put(Dst, 9796);
1583 } 1594 }
1584 break; 1595 break;
1585 case 1: 1596 case 1:
1586 dasm_put(Dst, 9616, LJ_TISNUM); 1597 dasm_put(Dst, 9704, LJ_TISNUM);
1587 if (sse) { 1598 if (sse) {
1588 dasm_put(Dst, 9716); 1599 dasm_put(Dst, 9804);
1589 } else { 1600 } else {
1590 dasm_put(Dst, 9730); 1601 dasm_put(Dst, 9818);
1591 } 1602 }
1592 break; 1603 break;
1593 default: 1604 default:
1594 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1605 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1595 if (sse) { 1606 if (sse) {
1596 dasm_put(Dst, 9738); 1607 dasm_put(Dst, 9826);
1597 } else { 1608 } else {
1598 dasm_put(Dst, 9752); 1609 dasm_put(Dst, 9840);
1599 } 1610 }
1600 break; 1611 break;
1601 } 1612 }
1602 if (sse) { 1613 if (sse) {
1603 dasm_put(Dst, 9457); 1614 dasm_put(Dst, 9545);
1604 } else { 1615 } else {
1605 dasm_put(Dst, 9469); 1616 dasm_put(Dst, 9557);
1606 } 1617 }
1607 dasm_put(Dst, 7133); 1618 dasm_put(Dst, 7221);
1608 break; 1619 break;
1609 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1620 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1610 dasm_put(Dst, 9574); 1621 dasm_put(Dst, 9662);
1611 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1622 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1612 switch (vk) { 1623 switch (vk) {
1613 case 0: 1624 case 0:
1614 dasm_put(Dst, 9582, LJ_TISNUM); 1625 dasm_put(Dst, 9670, LJ_TISNUM);
1615 if (sse) { 1626 if (sse) {
1616 dasm_put(Dst, 9760); 1627 dasm_put(Dst, 9848);
1617 } else { 1628 } else {
1618 dasm_put(Dst, 9774); 1629 dasm_put(Dst, 9862);
1619 } 1630 }
1620 break; 1631 break;
1621 case 1: 1632 case 1:
1622 dasm_put(Dst, 9616, LJ_TISNUM); 1633 dasm_put(Dst, 9704, LJ_TISNUM);
1623 if (sse) { 1634 if (sse) {
1624 dasm_put(Dst, 9782); 1635 dasm_put(Dst, 9870);
1625 } else { 1636 } else {
1626 dasm_put(Dst, 9796); 1637 dasm_put(Dst, 9884);
1627 } 1638 }
1628 break; 1639 break;
1629 default: 1640 default:
1630 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1641 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1631 if (sse) { 1642 if (sse) {
1632 dasm_put(Dst, 9804); 1643 dasm_put(Dst, 9892);
1633 } else { 1644 } else {
1634 dasm_put(Dst, 9818); 1645 dasm_put(Dst, 9906);
1635 } 1646 }
1636 break; 1647 break;
1637 } 1648 }
1638 if (sse) { 1649 if (sse) {
1639 dasm_put(Dst, 9457); 1650 dasm_put(Dst, 9545);
1640 } else { 1651 } else {
1641 dasm_put(Dst, 9469); 1652 dasm_put(Dst, 9557);
1642 } 1653 }
1643 dasm_put(Dst, 7133); 1654 dasm_put(Dst, 7221);
1644 break; 1655 break;
1645 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1656 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1646 dasm_put(Dst, 9574); 1657 dasm_put(Dst, 9662);
1647 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1658 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1648 switch (vk) { 1659 switch (vk) {
1649 case 0: 1660 case 0:
1650 dasm_put(Dst, 9582, LJ_TISNUM); 1661 dasm_put(Dst, 9670, LJ_TISNUM);
1651 if (sse) { 1662 if (sse) {
1652 dasm_put(Dst, 9826); 1663 dasm_put(Dst, 9914);
1653 } else { 1664 } else {
1654 dasm_put(Dst, 9840); 1665 dasm_put(Dst, 9928);
1655 } 1666 }
1656 break; 1667 break;
1657 case 1: 1668 case 1:
1658 dasm_put(Dst, 9616, LJ_TISNUM); 1669 dasm_put(Dst, 9704, LJ_TISNUM);
1659 if (sse) { 1670 if (sse) {
1660 dasm_put(Dst, 9848); 1671 dasm_put(Dst, 9936);
1661 } else { 1672 } else {
1662 dasm_put(Dst, 9862); 1673 dasm_put(Dst, 9950);
1663 } 1674 }
1664 break; 1675 break;
1665 default: 1676 default:
1666 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1677 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1667 if (sse) { 1678 if (sse) {
1668 dasm_put(Dst, 9870); 1679 dasm_put(Dst, 9958);
1669 } else { 1680 } else {
1670 dasm_put(Dst, 9884); 1681 dasm_put(Dst, 9972);
1671 } 1682 }
1672 break; 1683 break;
1673 } 1684 }
1674 if (sse) { 1685 if (sse) {
1675 dasm_put(Dst, 9457); 1686 dasm_put(Dst, 9545);
1676 } else { 1687 } else {
1677 dasm_put(Dst, 9469); 1688 dasm_put(Dst, 9557);
1678 } 1689 }
1679 dasm_put(Dst, 7133); 1690 dasm_put(Dst, 7221);
1680 break; 1691 break;
1681 case BC_MODVN: 1692 case BC_MODVN:
1682 dasm_put(Dst, 9574); 1693 dasm_put(Dst, 9662);
1683 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1694 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1684 switch (vk) { 1695 switch (vk) {
1685 case 0: 1696 case 0:
1686 dasm_put(Dst, 9582, LJ_TISNUM); 1697 dasm_put(Dst, 9670, LJ_TISNUM);
1687 if (sse) { 1698 if (sse) {
1688 dasm_put(Dst, 9892); 1699 dasm_put(Dst, 9980);
1689 } else { 1700 } else {
1690 dasm_put(Dst, 9906); 1701 dasm_put(Dst, 9994);
1691 } 1702 }
1692 break; 1703 break;
1693 case 1: 1704 case 1:
1694 dasm_put(Dst, 9616, LJ_TISNUM); 1705 dasm_put(Dst, 9704, LJ_TISNUM);
1695 if (sse) { 1706 if (sse) {
1696 dasm_put(Dst, 9914); 1707 dasm_put(Dst, 10002);
1697 } else { 1708 } else {
1698 dasm_put(Dst, 9928); 1709 dasm_put(Dst, 10016);
1699 } 1710 }
1700 break; 1711 break;
1701 default: 1712 default:
1702 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1713 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1703 if (sse) { 1714 if (sse) {
1704 dasm_put(Dst, 9936); 1715 dasm_put(Dst, 10024);
1705 } else { 1716 } else {
1706 dasm_put(Dst, 9950); 1717 dasm_put(Dst, 10038);
1707 } 1718 }
1708 break; 1719 break;
1709 } 1720 }
1710 dasm_put(Dst, 9958); 1721 dasm_put(Dst, 10046);
1711 if (sse) { 1722 if (sse) {
1712 dasm_put(Dst, 9457); 1723 dasm_put(Dst, 9545);
1713 } else { 1724 } else {
1714 dasm_put(Dst, 9469); 1725 dasm_put(Dst, 9557);
1715 } 1726 }
1716 dasm_put(Dst, 7133); 1727 dasm_put(Dst, 7221);
1717 break; 1728 break;
1718 case BC_MODNV: case BC_MODVV: 1729 case BC_MODNV: case BC_MODVV:
1719 dasm_put(Dst, 9574); 1730 dasm_put(Dst, 9662);
1720 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1731 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1721 switch (vk) { 1732 switch (vk) {
1722 case 0: 1733 case 0:
1723 dasm_put(Dst, 9582, LJ_TISNUM); 1734 dasm_put(Dst, 9670, LJ_TISNUM);
1724 if (sse) { 1735 if (sse) {
1725 dasm_put(Dst, 9892); 1736 dasm_put(Dst, 9980);
1726 } else { 1737 } else {
1727 dasm_put(Dst, 9906); 1738 dasm_put(Dst, 9994);
1728 } 1739 }
1729 break; 1740 break;
1730 case 1: 1741 case 1:
1731 dasm_put(Dst, 9616, LJ_TISNUM); 1742 dasm_put(Dst, 9704, LJ_TISNUM);
1732 if (sse) { 1743 if (sse) {
1733 dasm_put(Dst, 9914); 1744 dasm_put(Dst, 10002);
1734 } else { 1745 } else {
1735 dasm_put(Dst, 9928); 1746 dasm_put(Dst, 10016);
1736 } 1747 }
1737 break; 1748 break;
1738 default: 1749 default:
1739 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1750 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1740 if (sse) { 1751 if (sse) {
1741 dasm_put(Dst, 9936); 1752 dasm_put(Dst, 10024);
1742 } else { 1753 } else {
1743 dasm_put(Dst, 9950); 1754 dasm_put(Dst, 10038);
1744 } 1755 }
1745 break; 1756 break;
1746 } 1757 }
1747 dasm_put(Dst, 9964); 1758 dasm_put(Dst, 10052);
1748 break; 1759 break;
1749 case BC_POW: 1760 case BC_POW:
1750 dasm_put(Dst, 9574); 1761 dasm_put(Dst, 9662);
1751 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1762 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1752 switch (vk) { 1763 switch (vk) {
1753 case 0: 1764 case 0:
1754 dasm_put(Dst, 9582, LJ_TISNUM); 1765 dasm_put(Dst, 9670, LJ_TISNUM);
1755 if (sse) { 1766 if (sse) {
1756 dasm_put(Dst, 9892); 1767 dasm_put(Dst, 9980);
1757 } else { 1768 } else {
1758 dasm_put(Dst, 9906); 1769 dasm_put(Dst, 9994);
1759 } 1770 }
1760 break; 1771 break;
1761 case 1: 1772 case 1:
1762 dasm_put(Dst, 9616, LJ_TISNUM); 1773 dasm_put(Dst, 9704, LJ_TISNUM);
1763 if (sse) { 1774 if (sse) {
1764 dasm_put(Dst, 9914); 1775 dasm_put(Dst, 10002);
1765 } else { 1776 } else {
1766 dasm_put(Dst, 9928); 1777 dasm_put(Dst, 10016);
1767 } 1778 }
1768 break; 1779 break;
1769 default: 1780 default:
1770 dasm_put(Dst, 9650, LJ_TISNUM, LJ_TISNUM); 1781 dasm_put(Dst, 9738, LJ_TISNUM, LJ_TISNUM);
1771 if (sse) { 1782 if (sse) {
1772 dasm_put(Dst, 9936); 1783 dasm_put(Dst, 10024);
1773 } else { 1784 } else {
1774 dasm_put(Dst, 9950); 1785 dasm_put(Dst, 10038);
1775 } 1786 }
1776 break; 1787 break;
1777 } 1788 }
1778 dasm_put(Dst, 9969); 1789 dasm_put(Dst, 10057);
1779 if (sse) { 1790 if (sse) {
1780 dasm_put(Dst, 9457); 1791 dasm_put(Dst, 9545);
1781 } else { 1792 } else {
1782 dasm_put(Dst, 9469); 1793 dasm_put(Dst, 9557);
1783 } 1794 }
1784 dasm_put(Dst, 7133); 1795 dasm_put(Dst, 7221);
1785 break; 1796 break;
1786 1797
1787 case BC_CAT: 1798 case BC_CAT:
1788 dasm_put(Dst, 9973, Dt1(->base), Dt1(->base)); 1799 dasm_put(Dst, 10061, Dt1(->base), Dt1(->base));
1789 break; 1800 break;
1790 1801
1791 /* -- Constant ops ------------------------------------------------------ */ 1802 /* -- Constant ops ------------------------------------------------------ */
1792 1803
1793 case BC_KSTR: 1804 case BC_KSTR:
1794 dasm_put(Dst, 10063, LJ_TSTR); 1805 dasm_put(Dst, 10151, LJ_TSTR);
1795 break; 1806 break;
1796 case BC_KSHORT: 1807 case BC_KSHORT:
1797 if (sse) { 1808 if (sse) {
1798 dasm_put(Dst, 10098); 1809 dasm_put(Dst, 10186);
1799 } else { 1810 } else {
1800 dasm_put(Dst, 10113); 1811 dasm_put(Dst, 10201);
1801 } 1812 }
1802 dasm_put(Dst, 7133); 1813 dasm_put(Dst, 7221);
1803 break; 1814 break;
1804 case BC_KNUM: 1815 case BC_KNUM:
1805 if (sse) { 1816 if (sse) {
1806 dasm_put(Dst, 10121); 1817 dasm_put(Dst, 10209);
1807 } else { 1818 } else {
1808 dasm_put(Dst, 10134); 1819 dasm_put(Dst, 10222);
1809 } 1820 }
1810 dasm_put(Dst, 7133); 1821 dasm_put(Dst, 7221);
1811 break; 1822 break;
1812 case BC_KPRI: 1823 case BC_KPRI:
1813 dasm_put(Dst, 10141); 1824 dasm_put(Dst, 10229);
1814 break; 1825 break;
1815 case BC_KNIL: 1826 case BC_KNIL:
1816 dasm_put(Dst, 10169, LJ_TNIL); 1827 dasm_put(Dst, 10257, LJ_TNIL);
1817 break; 1828 break;
1818 1829
1819 /* -- Upvalue and function ops ------------------------------------------ */ 1830 /* -- Upvalue and function ops ------------------------------------------ */
1820 1831
1821 case BC_UGET: 1832 case BC_UGET:
1822 dasm_put(Dst, 10216, offsetof(GCfuncL, uvptr), DtA(->v)); 1833 dasm_put(Dst, 10304, offsetof(GCfuncL, uvptr), DtA(->v));
1823 break; 1834 break;
1824 case BC_USETV: 1835 case BC_USETV:
1825#define TV2MARKOFS \ 1836#define TV2MARKOFS \
1826 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1837 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1827 dasm_put(Dst, 10261, 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); 1838 dasm_put(Dst, 10349, 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);
1828 dasm_put(Dst, 10352); 1839 dasm_put(Dst, 10440);
1829 break; 1840 break;
1830#undef TV2MARKOFS 1841#undef TV2MARKOFS
1831 case BC_USETS: 1842 case BC_USETS:
1832 dasm_put(Dst, 10364, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1843 dasm_put(Dst, 10452, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1833 break; 1844 break;
1834 case BC_USETN: 1845 case BC_USETN:
1835 dasm_put(Dst, 10457); 1846 dasm_put(Dst, 10545);
1836 if (sse) { 1847 if (sse) {
1837 dasm_put(Dst, 10462); 1848 dasm_put(Dst, 10550);
1838 } else { 1849 } else {
1839 dasm_put(Dst, 9277); 1850 dasm_put(Dst, 9365);
1840 } 1851 }
1841 dasm_put(Dst, 10469, offsetof(GCfuncL, uvptr), DtA(->v)); 1852 dasm_put(Dst, 10557, offsetof(GCfuncL, uvptr), DtA(->v));
1842 if (sse) { 1853 if (sse) {
1843 dasm_put(Dst, 10478); 1854 dasm_put(Dst, 10566);
1844 } else { 1855 } else {
1845 dasm_put(Dst, 10484); 1856 dasm_put(Dst, 10572);
1846 } 1857 }
1847 dasm_put(Dst, 7133); 1858 dasm_put(Dst, 7221);
1848 break; 1859 break;
1849 case BC_USETP: 1860 case BC_USETP:
1850 dasm_put(Dst, 10487, offsetof(GCfuncL, uvptr), DtA(->v)); 1861 dasm_put(Dst, 10575, offsetof(GCfuncL, uvptr), DtA(->v));
1851 break; 1862 break;
1852 case BC_UCLO: 1863 case BC_UCLO:
1853 dasm_put(Dst, 10526, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1864 dasm_put(Dst, 10614, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1854 break; 1865 break;
1855 1866
1856 case BC_FNEW: 1867 case BC_FNEW:
1857 dasm_put(Dst, 10581, Dt1(->base), Dt1(->base), LJ_TFUNC); 1868 dasm_put(Dst, 10669, Dt1(->base), Dt1(->base), LJ_TFUNC);
1858 break; 1869 break;
1859 1870
1860 /* -- Table ops --------------------------------------------------------- */ 1871 /* -- Table ops --------------------------------------------------------- */
1861 1872
1862 case BC_TNEW: 1873 case BC_TNEW:
1863 dasm_put(Dst, 10647, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1874 dasm_put(Dst, 10735, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1864 break; 1875 break;
1865 case BC_TDUP: 1876 case BC_TDUP:
1866 dasm_put(Dst, 10768, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1877 dasm_put(Dst, 10856, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1867 break; 1878 break;
1868 1879
1869 case BC_GGET: 1880 case BC_GGET:
1870 dasm_put(Dst, 10863, Dt7(->env)); 1881 dasm_put(Dst, 10951, Dt7(->env));
1871 break; 1882 break;
1872 case BC_GSET: 1883 case BC_GSET:
1873 dasm_put(Dst, 10882, Dt7(->env)); 1884 dasm_put(Dst, 10970, Dt7(->env));
1874 break; 1885 break;
1875 1886
1876 case BC_TGETV: 1887 case BC_TGETV:
1877 dasm_put(Dst, 10901, LJ_TTAB, LJ_TISNUM); 1888 dasm_put(Dst, 10989, LJ_TTAB, LJ_TISNUM);
1878 if (sse) { 1889 if (sse) {
1879 dasm_put(Dst, 10934); 1890 dasm_put(Dst, 11022);
1880 } else { 1891 } else {
1881 } 1892 }
1882 dasm_put(Dst, 10955, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1893 dasm_put(Dst, 11043, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1883 dasm_put(Dst, 11048, LJ_TSTR); 1894 dasm_put(Dst, 11136, LJ_TSTR);
1884 break; 1895 break;
1885 case BC_TGETS: 1896 case BC_TGETS:
1886 dasm_put(Dst, 11066, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1897 dasm_put(Dst, 11154, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1887 dasm_put(Dst, 11151, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1898 dasm_put(Dst, 11239, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1888 break; 1899 break;
1889 case BC_TGETB: 1900 case BC_TGETB:
1890 dasm_put(Dst, 11223, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1901 dasm_put(Dst, 11311, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1891 dasm_put(Dst, 9564); 1902 dasm_put(Dst, 9652);
1892 break; 1903 break;
1893 1904
1894 case BC_TSETV: 1905 case BC_TSETV:
1895 dasm_put(Dst, 11323, LJ_TTAB, LJ_TISNUM); 1906 dasm_put(Dst, 11411, LJ_TTAB, LJ_TISNUM);
1896 if (sse) { 1907 if (sse) {
1897 dasm_put(Dst, 10934); 1908 dasm_put(Dst, 11022);
1898 } else { 1909 } else {
1899 } 1910 }
1900 dasm_put(Dst, 11356, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1911 dasm_put(Dst, 11444, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1901 dasm_put(Dst, 11440, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1912 dasm_put(Dst, 11528, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1902 break; 1913 break;
1903 case BC_TSETS: 1914 case BC_TSETS:
1904 dasm_put(Dst, 11502, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1915 dasm_put(Dst, 11590, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1905 dasm_put(Dst, 11578, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1916 dasm_put(Dst, 11666, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1906 dasm_put(Dst, 11671, 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)); 1917 dasm_put(Dst, 11759, 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));
1907 break; 1918 break;
1908 case BC_TSETB: 1919 case BC_TSETB:
1909 dasm_put(Dst, 11762, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1920 dasm_put(Dst, 11850, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1910 dasm_put(Dst, 11861, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1921 dasm_put(Dst, 11949, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1911 break; 1922 break;
1912 1923
1913 case BC_TSETM: 1924 case BC_TSETM:
1914 dasm_put(Dst, 11907); 1925 dasm_put(Dst, 11995);
1915 if (sse) { 1926 if (sse) {
1916 dasm_put(Dst, 10462); 1927 dasm_put(Dst, 10550);
1917 } else { 1928 } else {
1918 } 1929 }
1919 dasm_put(Dst, 11912, Dt6(->marked), LJ_GC_BLACK); 1930 dasm_put(Dst, 12000, Dt6(->marked), LJ_GC_BLACK);
1920 if (sse) { 1931 if (sse) {
1921 dasm_put(Dst, 11937); 1932 dasm_put(Dst, 12025);
1922 } else { 1933 } else {
1923 } 1934 }
1924 dasm_put(Dst, 11944, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1935 dasm_put(Dst, 12032, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
1925 dasm_put(Dst, 12070, Dt6(->gclist)); 1936 dasm_put(Dst, 12158, Dt6(->gclist));
1926 break; 1937 break;
1927 1938
1928 /* -- Calls and vararg handling ----------------------------------------- */ 1939 /* -- Calls and vararg handling ----------------------------------------- */
1929 1940
1930 case BC_CALL: case BC_CALLM: 1941 case BC_CALL: case BC_CALLM:
1931 dasm_put(Dst, 9578); 1942 dasm_put(Dst, 9666);
1932 if (op == BC_CALLM) { 1943 if (op == BC_CALLM) {
1933 dasm_put(Dst, 12078); 1944 dasm_put(Dst, 12166);
1934 } 1945 }
1935 dasm_put(Dst, 12083, LJ_TFUNC, Dt7(->pc)); 1946 dasm_put(Dst, 12171, LJ_TFUNC, Dt7(->pc));
1936 break; 1947 break;
1937 1948
1938 case BC_CALLMT: 1949 case BC_CALLMT:
1939 dasm_put(Dst, 12078); 1950 dasm_put(Dst, 12166);
1940 break; 1951 break;
1941 case BC_CALLT: 1952 case BC_CALLT:
1942 dasm_put(Dst, 12125, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1953 dasm_put(Dst, 12213, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1943 dasm_put(Dst, 12244, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1954 dasm_put(Dst, 12332, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1944 break; 1955 break;
1945 1956
1946 case BC_ITERC: 1957 case BC_ITERC:
1947 dasm_put(Dst, 12302, LJ_TFUNC, 2+1, Dt7(->pc)); 1958 dasm_put(Dst, 12390, LJ_TFUNC, 2+1, Dt7(->pc));
1948 break; 1959 break;
1949 1960
1950 case BC_VARG: 1961 case BC_VARG:
1951 dasm_put(Dst, 12383, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1962 dasm_put(Dst, 12471, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1952 dasm_put(Dst, 12528, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1963 dasm_put(Dst, 12616, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1953 break; 1964 break;
1954 1965
1955 /* -- Returns ----------------------------------------------------------- */ 1966 /* -- Returns ----------------------------------------------------------- */
1956 1967
1957 case BC_RETM: 1968 case BC_RETM:
1958 dasm_put(Dst, 12078); 1969 dasm_put(Dst, 12166);
1959 break; 1970 break;
1960 1971
1961 case BC_RET: case BC_RET0: case BC_RET1: 1972 case BC_RET: case BC_RET0: case BC_RET1:
1962 if (op != BC_RET0) { 1973 if (op != BC_RET0) {
1963 dasm_put(Dst, 12627); 1974 dasm_put(Dst, 12715);
1964 } 1975 }
1965 dasm_put(Dst, 12631, FRAME_TYPE); 1976 dasm_put(Dst, 12719, FRAME_TYPE);
1966 switch (op) { 1977 switch (op) {
1967 case BC_RET: 1978 case BC_RET:
1968 dasm_put(Dst, 12650); 1979 dasm_put(Dst, 12738);
1969 break; 1980 break;
1970 case BC_RET1: 1981 case BC_RET1:
1971 dasm_put(Dst, 12708); 1982 dasm_put(Dst, 12796);
1972 /* fallthrough */ 1983 /* fallthrough */
1973 case BC_RET0: 1984 case BC_RET0:
1974 dasm_put(Dst, 12724); 1985 dasm_put(Dst, 12812);
1975 default: 1986 default:
1976 break; 1987 break;
1977 } 1988 }
1978 dasm_put(Dst, 12735, Dt7(->pc), PC2PROTO(k)); 1989 dasm_put(Dst, 12823, Dt7(->pc), PC2PROTO(k));
1979 if (op == BC_RET) { 1990 if (op == BC_RET) {
1980 dasm_put(Dst, 12779, LJ_TNIL); 1991 dasm_put(Dst, 12867, LJ_TNIL);
1981 } else { 1992 } else {
1982 dasm_put(Dst, 12788, LJ_TNIL); 1993 dasm_put(Dst, 12876, LJ_TNIL);
1983 } 1994 }
1984 dasm_put(Dst, 12795); 1995 dasm_put(Dst, 12883);
1985 if (op != BC_RET0) { 1996 if (op != BC_RET0) {
1986 dasm_put(Dst, 12816); 1997 dasm_put(Dst, 12904);
1987 } 1998 }
1988 dasm_put(Dst, 4542); 1999 dasm_put(Dst, 4542);
1989 break; 2000 break;
@@ -1993,7 +2004,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1993 2004
1994 case BC_FORL: 2005 case BC_FORL:
1995#if LJ_HASJIT 2006#if LJ_HASJIT
1996 dasm_put(Dst, 12820, HOTCOUNT_PCMASK, GG_DISP2HOT); 2007 dasm_put(Dst, 12908, HOTCOUNT_PCMASK, GG_DISP2HOT);
1997#endif 2008#endif
1998 break; 2009 break;
1999 2010
@@ -2005,57 +2016,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2005 case BC_FORI: 2016 case BC_FORI:
2006 case BC_IFORL: 2017 case BC_IFORL:
2007 vk = (op == BC_IFORL || op == BC_JFORL); 2018 vk = (op == BC_IFORL || op == BC_JFORL);
2008 dasm_put(Dst, 12841); 2019 dasm_put(Dst, 12929);
2009 if (!vk) { 2020 if (!vk) {
2010 dasm_put(Dst, 12845, LJ_TISNUM, LJ_TISNUM); 2021 dasm_put(Dst, 12933, LJ_TISNUM, LJ_TISNUM);
2011 } 2022 }
2012 dasm_put(Dst, 12864); 2023 dasm_put(Dst, 12952);
2013 if (!vk) { 2024 if (!vk) {
2014 dasm_put(Dst, 12868, LJ_TISNUM); 2025 dasm_put(Dst, 12956, LJ_TISNUM);
2015 } 2026 }
2016 if (sse) { 2027 if (sse) {
2017 dasm_put(Dst, 12877); 2028 dasm_put(Dst, 12965);
2018 if (vk) { 2029 if (vk) {
2019 dasm_put(Dst, 12889); 2030 dasm_put(Dst, 12977);
2020 } else { 2031 } else {
2021 dasm_put(Dst, 12908); 2032 dasm_put(Dst, 12996);
2022 } 2033 }
2023 dasm_put(Dst, 12913); 2034 dasm_put(Dst, 13001);
2024 } else { 2035 } else {
2025 dasm_put(Dst, 12926); 2036 dasm_put(Dst, 13014);
2026 if (vk) { 2037 if (vk) {
2027 dasm_put(Dst, 12932); 2038 dasm_put(Dst, 13020);
2028 } else { 2039 } else {
2029 dasm_put(Dst, 12948); 2040 dasm_put(Dst, 13036);
2030 } 2041 }
2031 dasm_put(Dst, 12956); 2042 dasm_put(Dst, 13044);
2032 if (cmov) { 2043 if (cmov) {
2033 dasm_put(Dst, 9001); 2044 dasm_put(Dst, 9089);
2034 } else { 2045 } else {
2035 dasm_put(Dst, 9007); 2046 dasm_put(Dst, 9095);
2036 } 2047 }
2037 if (!cmov) { 2048 if (!cmov) {
2038 dasm_put(Dst, 12961); 2049 dasm_put(Dst, 13049);
2039 } 2050 }
2040 } 2051 }
2041 if (op == BC_FORI) { 2052 if (op == BC_FORI) {
2042 dasm_put(Dst, 12967, -BCBIAS_J*4); 2053 dasm_put(Dst, 13055, -BCBIAS_J*4);
2043 } else if (op == BC_JFORI) { 2054 } else if (op == BC_JFORI) {
2044 dasm_put(Dst, 12977, -BCBIAS_J*4, BC_JLOOP); 2055 dasm_put(Dst, 13065, -BCBIAS_J*4, BC_JLOOP);
2045 } else if (op == BC_IFORL) { 2056 } else if (op == BC_IFORL) {
2046 dasm_put(Dst, 12991, -BCBIAS_J*4); 2057 dasm_put(Dst, 13079, -BCBIAS_J*4);
2047 } else { 2058 } else {
2048 dasm_put(Dst, 12987, BC_JLOOP); 2059 dasm_put(Dst, 13075, BC_JLOOP);
2049 } 2060 }
2050 dasm_put(Dst, 9036); 2061 dasm_put(Dst, 9124);
2051 if (sse) { 2062 if (sse) {
2052 dasm_put(Dst, 13001); 2063 dasm_put(Dst, 13089);
2053 } 2064 }
2054 break; 2065 break;
2055 2066
2056 case BC_ITERL: 2067 case BC_ITERL:
2057#if LJ_HASJIT 2068#if LJ_HASJIT
2058 dasm_put(Dst, 12820, HOTCOUNT_PCMASK, GG_DISP2HOT); 2069 dasm_put(Dst, 12908, HOTCOUNT_PCMASK, GG_DISP2HOT);
2059#endif 2070#endif
2060 break; 2071 break;
2061 2072
@@ -2064,33 +2075,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2064 break; 2075 break;
2065#endif 2076#endif
2066 case BC_IITERL: 2077 case BC_IITERL:
2067 dasm_put(Dst, 13012, LJ_TNIL); 2078 dasm_put(Dst, 13100, LJ_TNIL);
2068 if (op == BC_JITERL) { 2079 if (op == BC_JITERL) {
2069 dasm_put(Dst, 13027, BC_JLOOP); 2080 dasm_put(Dst, 13115, BC_JLOOP);
2070 } else { 2081 } else {
2071 dasm_put(Dst, 13041, -BCBIAS_J*4); 2082 dasm_put(Dst, 13129, -BCBIAS_J*4);
2072 } 2083 }
2073 dasm_put(Dst, 9336); 2084 dasm_put(Dst, 9424);
2074 break; 2085 break;
2075 2086
2076 case BC_LOOP: 2087 case BC_LOOP:
2077#if LJ_HASJIT 2088#if LJ_HASJIT
2078 dasm_put(Dst, 12820, HOTCOUNT_PCMASK, GG_DISP2HOT); 2089 dasm_put(Dst, 12908, HOTCOUNT_PCMASK, GG_DISP2HOT);
2079#endif 2090#endif
2080 break; 2091 break;
2081 2092
2082 case BC_ILOOP: 2093 case BC_ILOOP:
2083 dasm_put(Dst, 7133); 2094 dasm_put(Dst, 7221);
2084 break; 2095 break;
2085 2096
2086 case BC_JLOOP: 2097 case BC_JLOOP:
2087#if LJ_HASJIT 2098#if LJ_HASJIT
2088 dasm_put(Dst, 13057, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2099 dasm_put(Dst, 13145, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2089#endif 2100#endif
2090 break; 2101 break;
2091 2102
2092 case BC_JMP: 2103 case BC_JMP:
2093 dasm_put(Dst, 13081, -BCBIAS_J*4); 2104 dasm_put(Dst, 13169, -BCBIAS_J*4);
2094 break; 2105 break;
2095 2106
2096 /* -- Function headers -------------------------------------------------- */ 2107 /* -- Function headers -------------------------------------------------- */
@@ -2113,13 +2124,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2113 break; 2124 break;
2114#endif 2125#endif
2115 case BC_IFUNCF: 2126 case BC_IFUNCF:
2116 dasm_put(Dst, 13106, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2127 dasm_put(Dst, 13194, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2117 if (op == BC_JFUNCF) { 2128 if (op == BC_JFUNCF) {
2118 dasm_put(Dst, 13136, BC_JLOOP); 2129 dasm_put(Dst, 13224, BC_JLOOP);
2119 } else { 2130 } else {
2120 dasm_put(Dst, 7133); 2131 dasm_put(Dst, 7221);
2121 } 2132 }
2122 dasm_put(Dst, 13145, LJ_TNIL); 2133 dasm_put(Dst, 13233, LJ_TNIL);
2123 break; 2134 break;
2124 2135
2125 case BC_JFUNCV: 2136 case BC_JFUNCV:
@@ -2130,30 +2141,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2130 break; /* NYI: compiled vararg functions. */ 2141 break; /* NYI: compiled vararg functions. */
2131 2142
2132 case BC_IFUNCV: 2143 case BC_IFUNCV:
2133 dasm_put(Dst, 13167, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2144 dasm_put(Dst, 13255, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2134 if (op == BC_JFUNCV) { 2145 if (op == BC_JFUNCV) {
2135 dasm_put(Dst, 13136, BC_JLOOP); 2146 dasm_put(Dst, 13224, BC_JLOOP);
2136 } else { 2147 } else {
2137 dasm_put(Dst, 13258, -4+PC2PROTO(k)); 2148 dasm_put(Dst, 13346, -4+PC2PROTO(k));
2138 } 2149 }
2139 dasm_put(Dst, 13281, LJ_TNIL); 2150 dasm_put(Dst, 13369, LJ_TNIL);
2140 break; 2151 break;
2141 2152
2142 case BC_FUNCC: 2153 case BC_FUNCC:
2143 case BC_FUNCCW: 2154 case BC_FUNCCW:
2144 dasm_put(Dst, 13303, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2155 dasm_put(Dst, 13391, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2145 if (op == BC_FUNCC) { 2156 if (op == BC_FUNCC) {
2146 dasm_put(Dst, 13333); 2157 dasm_put(Dst, 13421);
2147 } else { 2158 } else {
2148 dasm_put(Dst, 13337); 2159 dasm_put(Dst, 13425);
2149 } 2160 }
2150 dasm_put(Dst, 13345, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2161 dasm_put(Dst, 13433, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2151 if (op == BC_FUNCC) { 2162 if (op == BC_FUNCC) {
2152 dasm_put(Dst, 13354); 2163 dasm_put(Dst, 13442);
2153 } else { 2164 } else {
2154 dasm_put(Dst, 13358, DISPATCH_GL(wrapf)); 2165 dasm_put(Dst, 13446, DISPATCH_GL(wrapf));
2155 } 2166 }
2156 dasm_put(Dst, 13363, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2167 dasm_put(Dst, 13451, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2157 break; 2168 break;
2158 2169
2159 /* ---------------------------------------------------------------------- */ 2170 /* ---------------------------------------------------------------------- */
@@ -2181,7 +2192,7 @@ static int build_backend(BuildCtx *ctx)
2181 2192
2182 build_subroutines(ctx, cmov, sse); 2193 build_subroutines(ctx, cmov, sse);
2183 2194
2184 dasm_put(Dst, 13388); 2195 dasm_put(Dst, 13476);
2185 for (op = 0; op < BC__MAX; op++) 2196 for (op = 0; op < BC__MAX; op++)
2186 build_ins(ctx, (BCOp)op, op, cmov, sse); 2197 build_ins(ctx, (BCOp)op, op, cmov, sse);
2187 2198