summaryrefslogtreecommitdiff
path: root/src/buildvm_x64.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64.h')
-rw-r--r--src/buildvm_x64.h1341
1 files changed, 673 insertions, 668 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index fe439c75..918e514a 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[16015] = { 15static const unsigned char build_actionlist[16103] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -317,164 +317,169 @@ static const unsigned char build_actionlist[16015] = {
317 248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139, 317 248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,
318 92,36,4,252,233,244,121,248,130,129,252,248,239,15,130,244,61,129,122,253, 318 92,36,4,252,233,244,121,248,130,129,252,248,239,15,130,244,61,129,122,253,
319 4,239,15,133,244,61,137,213,139,58,232,251,1,21,137,252,234,255,137,197,252, 319 4,239,15,133,244,61,137,213,139,58,232,251,1,21,137,252,234,255,137,197,252,
320 233,244,69,255,252,242,15,42,192,252,233,244,70,255,248,131,129,122,253,4, 320 233,244,69,255,252,242,15,42,192,252,233,244,70,255,248,131,129,252,248,239,
321 239,255,15,133,244,247,139,42,252,233,244,87,248,1,15,135,244,61,255,252, 321 15,130,244,61,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,87,
322 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126, 322 248,1,15,135,244,61,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
323 197,255,252,233,244,87,255,248,132,255,72,189,237,237,102,72,15,110,205,255, 323 252,242,15,88,193,102,15,126,197,255,252,233,244,87,255,248,132,129,252,248,
324 199,4,36,0,0,192,89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135, 324 239,15,130,244,61,255,72,189,237,237,102,72,15,110,205,255,199,4,36,0,0,192,
325 244,61,255,252,242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137, 325 89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135,244,61,255,252,
326 68,36,4,141,68,194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255, 326 242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137,68,36,4,141,68,
327 15,133,244,248,35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15, 327 194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248,
328 131,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255, 328 35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255,
329 131,232,8,252,233,244,1,248,134,255,15,133,244,248,11,40,131,232,8,252,233, 329 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
330 244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126, 330 233,244,1,248,134,129,252,248,239,15,130,244,61,255,15,133,244,248,11,40,
331 193,9,205,255,131,232,8,252,233,244,1,248,135,255,15,133,244,248,51,40,131, 331 131,232,8,252,233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,
332 232,8,252,233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88, 332 15,88,193,102,15,126,193,9,205,255,131,232,8,252,233,244,1,248,135,129,252,
333 193,102,15,126,193,49,205,255,131,232,8,252,233,244,1,248,136,129,122,253, 333 248,239,15,130,244,61,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248,
334 4,239,255,248,2,15,205,252,233,244,87,248,137,129,122,253,4,239,255,248,2, 334 2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,
335 252,247,213,255,248,87,252,242,15,42,197,252,233,244,70,255,248,133,139,68, 335 205,255,131,232,8,252,233,244,1,248,136,129,252,248,239,15,130,244,61,129,
336 36,4,252,233,244,61,255,248,138,129,122,253,4,239,255,248,2,129,122,253,12, 336 122,253,4,239,255,248,2,15,205,252,233,244,87,248,137,129,252,248,239,15,
337 130,244,61,129,122,253,4,239,255,248,2,252,247,213,255,248,87,252,242,15,
338 42,197,252,233,244,70,255,248,133,139,68,36,4,252,233,244,61,255,248,138,
339 129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2,129,122,253,12,
337 239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129, 340 239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129,
338 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 341 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,
339 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 342 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
340 242,15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,87,255, 343 242,15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,87,255,
341 248,139,129,122,253,4,239,255,248,139,129,252,248,239,15,130,244,61,129,122, 344 248,139,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,139,129,252,
342 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2, 345 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,
343 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 346 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
344 242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,237,252,233,244,87, 347 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,
345 255,248,140,129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,129, 348 255,211,252,237,252,233,244,87,255,248,140,129,252,248,239,15,130,244,61,
346 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 349 129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,129,122,253,4,
347 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 350 239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,
348 242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,87, 351 15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,
349 255,248,141,129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,61,129, 352 88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,87,255,248,
350 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 353 141,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,141,129,252,248,
351 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 354 239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,
352 242,15,88,202,102,15,126,197,102,15,126,201,255,211,197,252,233,244,87,255, 355 244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,
353 248,142,129,122,253,4,239,255,248,142,129,252,248,239,15,130,244,61,129,122, 356 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211,
354 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2, 357 197,252,233,244,87,255,248,142,129,252,248,239,15,130,244,61,129,122,253,
355 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 358 4,239,255,248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,
356 242,15,88,202,102,15,126,197,102,15,126,201,255,211,205,252,233,244,87,248, 359 244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,
357 125,184,237,252,233,244,61,248,127,184,237,248,61,139,108,36,24,139,90,252, 360 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,
358 252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139, 361 15,126,197,102,15,126,201,255,211,205,252,233,244,87,248,125,184,237,252,
359 66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,149, 362 233,244,61,248,127,184,237,248,61,139,108,36,24,139,90,252,252,137,92,36,
360 233,133,192,15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3,133, 363 28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
361 192,141,65,1,139,106,252,248,15,133,244,32,139,157,233,139,11,15,182,252, 364 59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,149,233,133,192,
362 233,15,182,205,131,195,4,65,252,255,36,252,238,248,32,137,209,252,247,195, 365 15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,
363 237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,234,252,233, 366 139,106,252,248,15,133,244,32,139,157,233,139,11,15,182,252,233,15,182,205,
364 244,28,248,3,137,221,131,229,252,248,41,252,234,252,233,244,28,248,5,190, 367 131,195,4,65,252,255,36,252,238,248,32,137,209,252,247,195,237,15,133,244,
365 237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93,72, 368 249,15,182,107,252,253,72,252,247,213,141,20,252,234,252,233,244,28,248,3,
366 137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248, 369 137,221,131,229,252,248,41,252,234,252,233,244,28,248,5,190,237,137,252,239,
367 137,252,239,137,133,233,232,251,1,22,139,149,233,139,133,233,41,208,193,232, 370 232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93,72,137,108,36,8,139,
368 3,131,192,1,72,139,108,36,8,85,195,248,143,255,65,15,182,134,233,168,235, 371 108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248,137,252,239,137,
369 15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142, 372 133,233,232,251,1,22,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
370 233,252,233,244,247,255,248,144,65,15,182,134,233,168,235,15,133,244,251, 373 139,108,36,8,85,195,248,143,255,65,15,182,134,233,168,235,15,133,244,251,
371 252,233,244,247,248,145,65,15,182,134,233,168,235,15,133,244,251,168,235, 374 168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142,233,252,233,
372 15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248, 375 244,247,255,248,144,65,15,182,134,233,168,235,15,133,244,251,252,233,244,
373 1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,23,248,3,139, 376 247,248,145,65,15,182,134,233,168,235,15,133,244,251,168,235,15,132,244,251,
374 149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254, 377 65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,
375 65,252,255,164,253,252,238,233,248,146,131,195,4,139,77,232,137,76,36,4,252, 378 36,24,137,149,233,137,222,137,252,239,232,251,1,23,248,3,139,149,233,248,
376 233,244,4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194, 379 4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254,65,252,255,
377 139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233, 380 164,253,252,238,233,248,146,131,195,4,139,77,232,137,76,36,4,252,233,244,
378 137,92,36,28,232,251,1,24,252,233,244,3,255,248,148,137,92,36,28,255,248, 381 4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,
379 149,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24, 382 36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233,137,92,
380 137,149,233,137,133,233,137,222,137,252,239,232,251,1,25,199,68,36,28,0,0, 383 36,28,232,251,1,24,252,233,244,3,255,248,148,137,92,36,28,255,248,149,255,
381 0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72, 384 137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24,137,149,
382 137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,150,255,65, 385 233,137,133,233,137,222,137,252,239,232,251,1,25,199,68,36,28,0,0,0,0,255,
383 85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80, 386 131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,
384 15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68, 387 15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,150,255,65,85,65,84,
385 139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233, 388 65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,
386 72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68, 389 252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68,139,117,
387 15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242, 390 0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233,72,129,
388 68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68, 391 252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68,15,17,
389 15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109, 392 117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242,68,
390 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242, 393 15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68,15,
391 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174, 394 17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109,168,
392 233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251, 395 252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242,15,
393 1,26,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139, 396 17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,233,
394 153,233,252,233,244,247,255,248,151,255,72,131,196,16,248,1,76,139,108,36, 397 65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251,1,26,
395 8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139, 398 72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139,153,
396 191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15, 399 233,252,233,244,247,255,248,151,255,72,131,196,16,248,1,76,139,108,36,8,76,
397 182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139, 400 139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139,191,
398 68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198, 401 233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,
399 232,251,1,1,255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68, 402 204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139,68,
400 36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217, 403 36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198,232,
401 108,36,4,139,68,36,8,195,255,248,152,72,184,237,237,102,72,15,110,208,72, 404 251,1,1,255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
402 184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,
403 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,
404 184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
405 15,92,200,15,40,193,248,1,195,248,91,255,217,124,36,4,137,68,36,8,102,184,
406 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
407 252,252,217,108,36,4,139,68,36,8,195,255,248,153,72,184,237,237,102,72,15,
408 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
409 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
410 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
411 194,252,242,15,92,200,15,40,193,248,1,195,248,112,255,217,124,36,4,137,68,
412 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
413 217,108,36,4,139,68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,
414 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
415 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
416 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
417 15,92,200,102,15,86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,
418 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
419 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
420 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
421 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
422 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
423 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
424 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 405 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
425 36,4,222,201,222,252,233,195,255,248,96,217,252,234,222,201,248,156,217,84, 406 36,4,139,68,36,8,195,255,248,152,72,184,237,237,102,72,15,110,208,72,184,
426 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248, 407 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
427 0,0,128,252,255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217, 408 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
428 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 409 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
429 217,252,238,195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208, 410 200,15,40,193,248,1,195,248,91,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
430 102,15,46,202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142, 411 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
431 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, 412 217,108,36,4,139,68,36,8,195,255,248,153,72,184,237,237,102,72,15,110,208,
432 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, 413 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
433 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, 414 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
434 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216, 415 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
435 232,244,1,72,184,237,237,102,72,15,110,200,252,242,15,94,200,15,40,193,195, 416 15,92,200,15,40,193,248,1,195,248,112,255,217,124,36,4,137,68,36,8,102,184,
436 248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209, 417 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
437 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,102,72,15,126,192,72, 418 139,68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,72,184,237,237,
438 209,224,15,132,244,250,255,72,193,192,12,72,61,252,254,15,0,0,15,132,244, 419 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
439 251,252,242,15,17,76,36,252,240,252,242,15,17,68,36,252,248,221,68,36,252, 420 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
440 240,221,68,36,252,248,217,252,241,217,192,217,252,252,220,252,233,217,201, 421 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
441 217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,252,248,252,242, 422 86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,15,94,193,72,184,
442 15,16,68,36,252,248,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46, 423 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
443 194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110, 424 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
444 208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244, 425 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
445 1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72, 426 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
446 184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133, 427 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
447 244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195, 428 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
448 248,160,255,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130, 429 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
449 244,112,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252, 430 252,233,195,255,248,96,217,252,234,222,201,248,156,217,84,36,252,248,129,
450 248,221,68,36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244, 431 124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252,
451 96,252,233,244,253,248,1,232,244,156,255,252,233,244,253,248,2,131,252,255, 432 255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217,201,217,252,
452 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244, 433 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,
453 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9, 434 195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208,102,15,46,
454 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244, 435 202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142,244,252,248,
455 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244, 436 1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,
456 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216, 437 2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,
457 248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12, 438 244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,
458 221,68,36,4,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130, 439 89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,252,247,216,232,244,1,
459 244,112,15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,96, 440 72,184,237,237,102,72,15,110,200,252,242,15,94,200,15,40,193,195,248,7,72,
460 15,132,244,156,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217, 441 184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,
461 201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255, 442 192,12,72,61,252,254,15,0,0,15,132,244,248,102,72,15,126,192,72,209,224,15,
462 9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248, 443 132,244,250,255,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,
463 1,217,252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, 444 15,17,76,36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,
464 252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,131, 445 36,252,248,217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,
465 252,255,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242, 446 217,232,222,193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,
466 15,92,193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15, 447 252,248,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,
467 89,193,195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,155, 448 247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,
468 15,132,244,115,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237, 449 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
469 255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200, 450 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
470 15,84,193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252, 451 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
471 248,252,242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132, 452 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,160,255,
472 244,247,217,252,243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195, 453 131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130,244,112,15,
473 248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132, 454 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,
474 244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195, 455 36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244,96,252,233,
475 248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132, 456 244,253,248,1,232,244,156,255,252,233,244,253,248,2,131,252,255,7,15,132,
476 244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248, 457 244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,
477 3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 458 1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,
459 244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,
460 1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,
461 135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,
462 92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,
463 4,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130,244,112,
464 15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,96,15,132,244,
465 156,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
466 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,
467 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
468 252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,
469 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,131,252,255,
470 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,
471 193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,
472 195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,155,15,132,
473 244,115,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,
474 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,
475 193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,
476 242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,
477 217,252,243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,
478 217,201,217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,
479 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,
480 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,
481 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,
482 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,
478 252,248,5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135, 483 252,248,5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135,
479 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 484 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,
480 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 485 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,
@@ -1528,320 +1533,320 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1528 dasm_put(Dst, 6314); 1533 dasm_put(Dst, 6314);
1529 } else { 1534 } else {
1530 } 1535 }
1531 dasm_put(Dst, 6324, LJ_TISNUM); 1536 dasm_put(Dst, 6324, 1+1, LJ_TISNUM);
1532 if (LJ_DUALNUM) { 1537 if (LJ_DUALNUM) {
1533 dasm_put(Dst, 6332); 1538 dasm_put(Dst, 6340);
1534 } else { 1539 } else {
1535 dasm_put(Dst, 2291); 1540 dasm_put(Dst, 2291);
1536 } 1541 }
1537 if (sse) { 1542 if (sse) {
1538 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1543 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1539 } else { 1544 } else {
1540 } 1545 }
1541 dasm_put(Dst, 106); 1546 dasm_put(Dst, 106);
1542 if (LJ_DUALNUM || sse) { 1547 if (LJ_DUALNUM || sse) {
1543 if (!sse) { 1548 if (!sse) {
1544 } 1549 }
1545 dasm_put(Dst, 6373); 1550 dasm_put(Dst, 6381);
1546 } else { 1551 } else {
1547 } 1552 }
1548 dasm_put(Dst, 6378); 1553 dasm_put(Dst, 6386, 1+1);
1549 if (sse) { 1554 if (sse) {
1550 dasm_put(Dst, 6381, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1555 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1551 } else { 1556 } else {
1552 dasm_put(Dst, 6391); 1557 dasm_put(Dst, 6407);
1553 } 1558 }
1554 dasm_put(Dst, 2268, LJ_TISNUM); 1559 dasm_put(Dst, 2268, LJ_TISNUM);
1555 if (LJ_DUALNUM) { 1560 if (LJ_DUALNUM) {
1556 dasm_put(Dst, 6399); 1561 dasm_put(Dst, 6415);
1557 } else { 1562 } else {
1558 dasm_put(Dst, 2291); 1563 dasm_put(Dst, 2291);
1559 } 1564 }
1560 if (sse) { 1565 if (sse) {
1561 dasm_put(Dst, 6416); 1566 dasm_put(Dst, 6432);
1562 } else { 1567 } else {
1563 } 1568 }
1564 dasm_put(Dst, 6431, LJ_TISNUM); 1569 dasm_put(Dst, 6447, LJ_TISNUM);
1565 if (LJ_DUALNUM) { 1570 if (LJ_DUALNUM) {
1566 dasm_put(Dst, 6456); 1571 dasm_put(Dst, 6472);
1567 } else { 1572 } else {
1568 dasm_put(Dst, 6476); 1573 dasm_put(Dst, 6492);
1569 } 1574 }
1570 if (sse) { 1575 if (sse) {
1571 dasm_put(Dst, 6481); 1576 dasm_put(Dst, 6497);
1572 } else { 1577 } else {
1573 } 1578 }
1574 dasm_put(Dst, 6498); 1579 dasm_put(Dst, 6514, 1+1);
1575 if (sse) { 1580 if (sse) {
1576 dasm_put(Dst, 6381, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1581 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1577 } else { 1582 } else {
1578 dasm_put(Dst, 6391); 1583 dasm_put(Dst, 6407);
1579 } 1584 }
1580 dasm_put(Dst, 2268, LJ_TISNUM); 1585 dasm_put(Dst, 2268, LJ_TISNUM);
1581 if (LJ_DUALNUM) { 1586 if (LJ_DUALNUM) {
1582 dasm_put(Dst, 6399); 1587 dasm_put(Dst, 6415);
1583 } else { 1588 } else {
1584 dasm_put(Dst, 2291); 1589 dasm_put(Dst, 2291);
1585 } 1590 }
1586 if (sse) { 1591 if (sse) {
1587 dasm_put(Dst, 6416); 1592 dasm_put(Dst, 6432);
1588 } else { 1593 } else {
1589 } 1594 }
1590 dasm_put(Dst, 6431, LJ_TISNUM); 1595 dasm_put(Dst, 6447, LJ_TISNUM);
1591 if (LJ_DUALNUM) { 1596 if (LJ_DUALNUM) {
1592 dasm_put(Dst, 6508); 1597 dasm_put(Dst, 6532);
1593 } else { 1598 } else {
1594 dasm_put(Dst, 6476); 1599 dasm_put(Dst, 6492);
1595 } 1600 }
1596 if (sse) { 1601 if (sse) {
1597 dasm_put(Dst, 6528); 1602 dasm_put(Dst, 6552);
1598 } else { 1603 } else {
1599 } 1604 }
1600 dasm_put(Dst, 6545); 1605 dasm_put(Dst, 6569, 1+1);
1601 if (sse) { 1606 if (sse) {
1602 dasm_put(Dst, 6381, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1607 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1603 } else { 1608 } else {
1604 dasm_put(Dst, 6391); 1609 dasm_put(Dst, 6407);
1605 } 1610 }
1606 dasm_put(Dst, 2268, LJ_TISNUM); 1611 dasm_put(Dst, 2268, LJ_TISNUM);
1607 if (LJ_DUALNUM) { 1612 if (LJ_DUALNUM) {
1608 dasm_put(Dst, 6399); 1613 dasm_put(Dst, 6415);
1609 } else { 1614 } else {
1610 dasm_put(Dst, 2291); 1615 dasm_put(Dst, 2291);
1611 } 1616 }
1612 if (sse) { 1617 if (sse) {
1613 dasm_put(Dst, 6416); 1618 dasm_put(Dst, 6432);
1614 } else { 1619 } else {
1615 } 1620 }
1616 dasm_put(Dst, 6431, LJ_TISNUM); 1621 dasm_put(Dst, 6447, LJ_TISNUM);
1617 if (LJ_DUALNUM) { 1622 if (LJ_DUALNUM) {
1618 dasm_put(Dst, 6555); 1623 dasm_put(Dst, 6587);
1619 } else { 1624 } else {
1620 dasm_put(Dst, 6476); 1625 dasm_put(Dst, 6492);
1621 } 1626 }
1622 if (sse) { 1627 if (sse) {
1623 dasm_put(Dst, 6575); 1628 dasm_put(Dst, 6607);
1624 } else { 1629 } else {
1625 } 1630 }
1626 dasm_put(Dst, 6592, LJ_TISNUM); 1631 dasm_put(Dst, 6624, 1+1, LJ_TISNUM);
1627 if (LJ_DUALNUM) { 1632 if (LJ_DUALNUM) {
1628 dasm_put(Dst, 6399); 1633 dasm_put(Dst, 6415);
1629 } else { 1634 } else {
1630 dasm_put(Dst, 2291); 1635 dasm_put(Dst, 2291);
1631 } 1636 }
1632 if (sse) { 1637 if (sse) {
1633 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1638 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1634 } else { 1639 } else {
1635 } 1640 }
1636 dasm_put(Dst, 6607, LJ_TISNUM); 1641 dasm_put(Dst, 6647, 1+1, LJ_TISNUM);
1637 if (LJ_DUALNUM) { 1642 if (LJ_DUALNUM) {
1638 dasm_put(Dst, 6399); 1643 dasm_put(Dst, 6415);
1639 } else { 1644 } else {
1640 dasm_put(Dst, 2291); 1645 dasm_put(Dst, 2291);
1641 } 1646 }
1642 if (sse) { 1647 if (sse) {
1643 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1648 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1644 } else { 1649 } else {
1645 } 1650 }
1646 dasm_put(Dst, 6623); 1651 dasm_put(Dst, 6671);
1647 if (LJ_DUALNUM) { 1652 if (LJ_DUALNUM) {
1648 dasm_put(Dst, 6373); 1653 dasm_put(Dst, 6381);
1649 } else if (sse) { 1654 } else if (sse) {
1650 dasm_put(Dst, 6629); 1655 dasm_put(Dst, 6677);
1651 } else { 1656 } else {
1652 } 1657 }
1653 dasm_put(Dst, 6641); 1658 dasm_put(Dst, 6689);
1654 if (LJ_DUALNUM) { 1659 if (LJ_DUALNUM) {
1655 dasm_put(Dst, 6652, LJ_TISNUM); 1660 dasm_put(Dst, 6700, 1+1, LJ_TISNUM);
1656 if (LJ_DUALNUM) { 1661 if (LJ_DUALNUM) {
1657 dasm_put(Dst, 6399); 1662 dasm_put(Dst, 6415);
1658 } else { 1663 } else {
1659 dasm_put(Dst, 2291); 1664 dasm_put(Dst, 2291);
1660 } 1665 }
1661 if (sse) { 1666 if (sse) {
1662 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1667 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1663 } else { 1668 } else {
1664 } 1669 }
1665 dasm_put(Dst, 6660, LJ_TISNUM); 1670 dasm_put(Dst, 6716, LJ_TISNUM);
1666 } else if (sse) { 1671 } else if (sse) {
1667 dasm_put(Dst, 6675, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1672 dasm_put(Dst, 6731, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1668 } else { 1673 } else {
1669 } 1674 }
1670 dasm_put(Dst, 6742); 1675 dasm_put(Dst, 6798);
1671 if (LJ_DUALNUM) { 1676 if (LJ_DUALNUM) {
1672 dasm_put(Dst, 6749, LJ_TISNUM); 1677 dasm_put(Dst, 6805, 1+1, LJ_TISNUM);
1673 if (LJ_DUALNUM) { 1678 if (LJ_DUALNUM) {
1674 dasm_put(Dst, 6399); 1679 dasm_put(Dst, 6415);
1675 } else { 1680 } else {
1676 dasm_put(Dst, 2291); 1681 dasm_put(Dst, 2291);
1677 } 1682 }
1678 if (sse) { 1683 if (sse) {
1679 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1684 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1680 } else { 1685 } else {
1681 } 1686 }
1682 dasm_put(Dst, 6660, LJ_TISNUM); 1687 dasm_put(Dst, 6716, LJ_TISNUM);
1683 } else if (sse) { 1688 } else if (sse) {
1684 dasm_put(Dst, 6757, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1689 dasm_put(Dst, 6821, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1685 } else { 1690 } else {
1686 } 1691 }
1687 dasm_put(Dst, 6824); 1692 dasm_put(Dst, 6888);
1688 if (LJ_DUALNUM) { 1693 if (LJ_DUALNUM) {
1689 dasm_put(Dst, 6832, LJ_TISNUM); 1694 dasm_put(Dst, 6896, 1+1, LJ_TISNUM);
1690 if (LJ_DUALNUM) { 1695 if (LJ_DUALNUM) {
1691 dasm_put(Dst, 6399); 1696 dasm_put(Dst, 6415);
1692 } else { 1697 } else {
1693 dasm_put(Dst, 2291); 1698 dasm_put(Dst, 2291);
1694 } 1699 }
1695 if (sse) { 1700 if (sse) {
1696 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1701 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1697 } else { 1702 } else {
1698 } 1703 }
1699 dasm_put(Dst, 6660, LJ_TISNUM); 1704 dasm_put(Dst, 6716, LJ_TISNUM);
1700 } else if (sse) { 1705 } else if (sse) {
1701 dasm_put(Dst, 6840, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1706 dasm_put(Dst, 6912, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1702 } else { 1707 } else {
1703 } 1708 }
1704 dasm_put(Dst, 6907); 1709 dasm_put(Dst, 6979);
1705 if (LJ_DUALNUM) { 1710 if (LJ_DUALNUM) {
1706 dasm_put(Dst, 6915, LJ_TISNUM); 1711 dasm_put(Dst, 6987, 1+1, LJ_TISNUM);
1707 if (LJ_DUALNUM) { 1712 if (LJ_DUALNUM) {
1708 dasm_put(Dst, 6399); 1713 dasm_put(Dst, 6415);
1709 } else { 1714 } else {
1710 dasm_put(Dst, 2291); 1715 dasm_put(Dst, 2291);
1711 } 1716 }
1712 if (sse) { 1717 if (sse) {
1713 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1718 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1714 } else { 1719 } else {
1715 } 1720 }
1716 dasm_put(Dst, 6660, LJ_TISNUM); 1721 dasm_put(Dst, 6716, LJ_TISNUM);
1717 } else if (sse) { 1722 } else if (sse) {
1718 dasm_put(Dst, 6923, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1723 dasm_put(Dst, 7003, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1719 } else { 1724 } else {
1720 } 1725 }
1721 dasm_put(Dst, 6990); 1726 dasm_put(Dst, 7070);
1722 if (LJ_DUALNUM) { 1727 if (LJ_DUALNUM) {
1723 dasm_put(Dst, 6997, LJ_TISNUM); 1728 dasm_put(Dst, 7077, 1+1, LJ_TISNUM);
1724 if (LJ_DUALNUM) { 1729 if (LJ_DUALNUM) {
1725 dasm_put(Dst, 6399); 1730 dasm_put(Dst, 6415);
1726 } else { 1731 } else {
1727 dasm_put(Dst, 2291); 1732 dasm_put(Dst, 2291);
1728 } 1733 }
1729 if (sse) { 1734 if (sse) {
1730 dasm_put(Dst, 6349, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1735 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1731 } else { 1736 } else {
1732 } 1737 }
1733 dasm_put(Dst, 6660, LJ_TISNUM); 1738 dasm_put(Dst, 6716, LJ_TISNUM);
1734 } else if (sse) { 1739 } else if (sse) {
1735 dasm_put(Dst, 7005, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1740 dasm_put(Dst, 7093, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1736 } else { 1741 } else {
1737 } 1742 }
1738 dasm_put(Dst, 7072, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1743 dasm_put(Dst, 7160, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1739 dasm_put(Dst, 7148, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1744 dasm_put(Dst, 7236, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1740 dasm_put(Dst, 7275, Dt1(->top), Dt1(->base), Dt1(->top)); 1745 dasm_put(Dst, 7363, Dt1(->top), Dt1(->base), Dt1(->top));
1741#if LJ_HASJIT 1746#if LJ_HASJIT
1742 dasm_put(Dst, 7314, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1747 dasm_put(Dst, 7402, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1743#endif 1748#endif
1744 dasm_put(Dst, 7347, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1749 dasm_put(Dst, 7435, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1745 dasm_put(Dst, 7401, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1750 dasm_put(Dst, 7489, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1746#if LJ_HASJIT 1751#if LJ_HASJIT
1747 dasm_put(Dst, 7468, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1752 dasm_put(Dst, 7556, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1748#endif 1753#endif
1749 dasm_put(Dst, 7515); 1754 dasm_put(Dst, 7603);
1750#if LJ_HASJIT 1755#if LJ_HASJIT
1751 dasm_put(Dst, 7342); 1756 dasm_put(Dst, 7430);
1752#endif 1757#endif
1753 dasm_put(Dst, 7522); 1758 dasm_put(Dst, 7610);
1754#if LJ_HASJIT 1759#if LJ_HASJIT
1755 dasm_put(Dst, 7525); 1760 dasm_put(Dst, 7613);
1756#endif 1761#endif
1757 dasm_put(Dst, 7535, Dt1(->base), Dt1(->top)); 1762 dasm_put(Dst, 7623, Dt1(->base), Dt1(->top));
1758#if LJ_HASJIT 1763#if LJ_HASJIT
1759 dasm_put(Dst, 7568); 1764 dasm_put(Dst, 7656);
1760#endif 1765#endif
1761 dasm_put(Dst, 7573, Dt1(->base), Dt1(->top)); 1766 dasm_put(Dst, 7661, Dt1(->base), Dt1(->top));
1762#if LJ_HASJIT 1767#if LJ_HASJIT
1763 dasm_put(Dst, 7604, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1768 dasm_put(Dst, 7692, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1764#endif 1769#endif
1765 dasm_put(Dst, 7843); 1770 dasm_put(Dst, 7931);
1766#if LJ_HASJIT 1771#if LJ_HASJIT
1767 dasm_put(Dst, 7846, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1772 dasm_put(Dst, 7934, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1768#endif 1773#endif
1769 dasm_put(Dst, 7946); 1774 dasm_put(Dst, 8034);
1770 if (!sse) { 1775 if (!sse) {
1771 dasm_put(Dst, 7949); 1776 dasm_put(Dst, 8037);
1772 } 1777 }
1773 dasm_put(Dst, 7994, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1778 dasm_put(Dst, 8082, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1774 if (!sse) { 1779 if (!sse) {
1775 dasm_put(Dst, 8080); 1780 dasm_put(Dst, 8168);
1776 } 1781 }
1777 dasm_put(Dst, 8125, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1782 dasm_put(Dst, 8213, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1778 if (!sse) { 1783 if (!sse) {
1779 dasm_put(Dst, 8211); 1784 dasm_put(Dst, 8299);
1780 } 1785 }
1781 dasm_put(Dst, 8250, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1786 dasm_put(Dst, 8338, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1782 if (sse) { 1787 if (sse) {
1783 dasm_put(Dst, 8339, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1788 dasm_put(Dst, 8427, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1784 } else { 1789 } else {
1785 dasm_put(Dst, 8453); 1790 dasm_put(Dst, 8541);
1786 } 1791 }
1787 dasm_put(Dst, 8500); 1792 dasm_put(Dst, 8588);
1788 if (!sse) { 1793 if (!sse) {
1789 } else { 1794 } else {
1790 dasm_put(Dst, 8577); 1795 dasm_put(Dst, 8665);
1791 } 1796 }
1792 dasm_put(Dst, 8580); 1797 dasm_put(Dst, 8668);
1793 dasm_put(Dst, 8665, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1798 dasm_put(Dst, 8753, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1794 dasm_put(Dst, 8768, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1799 dasm_put(Dst, 8856, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1795 dasm_put(Dst, 8930); 1800 dasm_put(Dst, 9018);
1796#if LJ_HASJIT 1801#if LJ_HASJIT
1797 if (sse) { 1802 if (sse) {
1798 dasm_put(Dst, 8971); 1803 dasm_put(Dst, 9059);
1799 dasm_put(Dst, 9041); 1804 dasm_put(Dst, 9129);
1800 dasm_put(Dst, 9113); 1805 dasm_put(Dst, 9201);
1801 } else { 1806 } else {
1802 dasm_put(Dst, 9165); 1807 dasm_put(Dst, 9253);
1803 dasm_put(Dst, 9257); 1808 dasm_put(Dst, 9345);
1804 } 1809 }
1805 dasm_put(Dst, 9303); 1810 dasm_put(Dst, 9391);
1806#endif 1811#endif
1807 dasm_put(Dst, 9307); 1812 dasm_put(Dst, 9395);
1808 if (sse) { 1813 if (sse) {
1809 dasm_put(Dst, 9310, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1814 dasm_put(Dst, 9398, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1810 dasm_put(Dst, 9395, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1815 dasm_put(Dst, 9483, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1811 } else { 1816 } else {
1812 dasm_put(Dst, 9523); 1817 dasm_put(Dst, 9611);
1813 dasm_put(Dst, 9606); 1818 dasm_put(Dst, 9694);
1814 if (cmov) { 1819 if (cmov) {
1815 dasm_put(Dst, 9661); 1820 dasm_put(Dst, 9749);
1816 } else { 1821 } else {
1817 dasm_put(Dst, 9680); 1822 dasm_put(Dst, 9768);
1818 } 1823 }
1819 dasm_put(Dst, 9303); 1824 dasm_put(Dst, 9391);
1820 } 1825 }
1821 dasm_put(Dst, 9721); 1826 dasm_put(Dst, 9809);
1822#if LJ_HASFFI 1827#if LJ_HASFFI
1823#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1828#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1824 dasm_put(Dst, 9745, DtE(->spadj)); 1829 dasm_put(Dst, 9833, DtE(->spadj));
1825#if LJ_TARGET_WINDOWS 1830#if LJ_TARGET_WINDOWS
1826#endif 1831#endif
1827 dasm_put(Dst, 9761, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]), DtE(->fpr[1])); 1832 dasm_put(Dst, 9849, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]), DtE(->fpr[1]));
1828 dasm_put(Dst, 9840, DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1])); 1833 dasm_put(Dst, 9928, DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1]));
1829#if LJ_TARGET_WINDOWS 1834#if LJ_TARGET_WINDOWS
1830#endif 1835#endif
1831 dasm_put(Dst, 9895); 1836 dasm_put(Dst, 9983);
1832#endif 1837#endif
1833 dasm_put(Dst, 9903); 1838 dasm_put(Dst, 9991);
1834#ifdef LUA_USE_ASSERT 1839#ifdef LUA_USE_ASSERT
1835 dasm_put(Dst, 9305); 1840 dasm_put(Dst, 9393);
1836#endif 1841#endif
1837 dasm_put(Dst, 9305); 1842 dasm_put(Dst, 9393);
1838} 1843}
1839 1844
1840/* Generate the code for a single instruction. */ 1845/* Generate the code for a single instruction. */
1841static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1846static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1842{ 1847{
1843 int vk = 0; 1848 int vk = 0;
1844 dasm_put(Dst, 9906, defop); 1849 dasm_put(Dst, 9994, defop);
1845 1850
1846 switch (op) { 1851 switch (op) {
1847 1852
@@ -1852,145 +1857,145 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1852 1857
1853 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1858 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1854 if (LJ_DUALNUM) { 1859 if (LJ_DUALNUM) {
1855 dasm_put(Dst, 9908, LJ_TISNUM, LJ_TISNUM); 1860 dasm_put(Dst, 9996, LJ_TISNUM, LJ_TISNUM);
1856 switch (op) { 1861 switch (op) {
1857 case BC_ISLT: 1862 case BC_ISLT:
1858 dasm_put(Dst, 9938); 1863 dasm_put(Dst, 10026);
1859 break; 1864 break;
1860 case BC_ISGE: 1865 case BC_ISGE:
1861 dasm_put(Dst, 9943); 1866 dasm_put(Dst, 10031);
1862 break; 1867 break;
1863 case BC_ISLE: 1868 case BC_ISLE:
1864 dasm_put(Dst, 9948); 1869 dasm_put(Dst, 10036);
1865 break; 1870 break;
1866 case BC_ISGT: 1871 case BC_ISGT:
1867 dasm_put(Dst, 9953); 1872 dasm_put(Dst, 10041);
1868 break; 1873 break;
1869 default: break; /* Shut up GCC. */ 1874 default: break; /* Shut up GCC. */
1870 } 1875 }
1871 dasm_put(Dst, 9958, -BCBIAS_J*4, LJ_TISNUM); 1876 dasm_put(Dst, 10046, -BCBIAS_J*4, LJ_TISNUM);
1872 if (sse) { 1877 if (sse) {
1873 dasm_put(Dst, 10013); 1878 dasm_put(Dst, 10101);
1874 } else { 1879 } else {
1875 dasm_put(Dst, 10024); 1880 dasm_put(Dst, 10112);
1876 } 1881 }
1877 dasm_put(Dst, 10035); 1882 dasm_put(Dst, 10123);
1878 if (sse) { 1883 if (sse) {
1879 dasm_put(Dst, 10042); 1884 dasm_put(Dst, 10130);
1880 switch (op) { 1885 switch (op) {
1881 case BC_ISLT: 1886 case BC_ISLT:
1882 dasm_put(Dst, 10062); 1887 dasm_put(Dst, 10150);
1883 break; 1888 break;
1884 case BC_ISGE: 1889 case BC_ISGE:
1885 dasm_put(Dst, 10067); 1890 dasm_put(Dst, 10155);
1886 break; 1891 break;
1887 case BC_ISLE: 1892 case BC_ISLE:
1888 dasm_put(Dst, 10072); 1893 dasm_put(Dst, 10160);
1889 break; 1894 break;
1890 case BC_ISGT: 1895 case BC_ISGT:
1891 dasm_put(Dst, 10077); 1896 dasm_put(Dst, 10165);
1892 break; 1897 break;
1893 default: break; /* Shut up GCC. */ 1898 default: break; /* Shut up GCC. */
1894 } 1899 }
1895 dasm_put(Dst, 10082); 1900 dasm_put(Dst, 10170);
1896 } else { 1901 } else {
1897 dasm_put(Dst, 10087); 1902 dasm_put(Dst, 10175);
1898 } 1903 }
1899 } else { 1904 } else {
1900 dasm_put(Dst, 10095, LJ_TISNUM, LJ_TISNUM); 1905 dasm_put(Dst, 10183, LJ_TISNUM, LJ_TISNUM);
1901 } 1906 }
1902 if (sse) { 1907 if (sse) {
1903 dasm_put(Dst, 10116); 1908 dasm_put(Dst, 10204);
1904 } else { 1909 } else {
1905 dasm_put(Dst, 10137); 1910 dasm_put(Dst, 10225);
1906 if (cmov) { 1911 if (cmov) {
1907 dasm_put(Dst, 10153); 1912 dasm_put(Dst, 10241);
1908 } else { 1913 } else {
1909 dasm_put(Dst, 10159); 1914 dasm_put(Dst, 10247);
1910 } 1915 }
1911 } 1916 }
1912 if (LJ_DUALNUM) { 1917 if (LJ_DUALNUM) {
1913 switch (op) { 1918 switch (op) {
1914 case BC_ISLT: 1919 case BC_ISLT:
1915 dasm_put(Dst, 10062); 1920 dasm_put(Dst, 10150);
1916 break; 1921 break;
1917 case BC_ISGE: 1922 case BC_ISGE:
1918 dasm_put(Dst, 10067); 1923 dasm_put(Dst, 10155);
1919 break; 1924 break;
1920 case BC_ISLE: 1925 case BC_ISLE:
1921 dasm_put(Dst, 10072); 1926 dasm_put(Dst, 10160);
1922 break; 1927 break;
1923 case BC_ISGT: 1928 case BC_ISGT:
1924 dasm_put(Dst, 10077); 1929 dasm_put(Dst, 10165);
1925 break; 1930 break;
1926 default: break; /* Shut up GCC. */ 1931 default: break; /* Shut up GCC. */
1927 } 1932 }
1928 dasm_put(Dst, 10082); 1933 dasm_put(Dst, 10170);
1929 } else { 1934 } else {
1930 switch (op) { 1935 switch (op) {
1931 case BC_ISLT: 1936 case BC_ISLT:
1932 dasm_put(Dst, 10166); 1937 dasm_put(Dst, 10254);
1933 break; 1938 break;
1934 case BC_ISGE: 1939 case BC_ISGE:
1935 dasm_put(Dst, 10171); 1940 dasm_put(Dst, 10259);
1936 break; 1941 break;
1937 case BC_ISLE: 1942 case BC_ISLE:
1938 dasm_put(Dst, 10176); 1943 dasm_put(Dst, 10264);
1939 break; 1944 break;
1940 case BC_ISGT: 1945 case BC_ISGT:
1941 dasm_put(Dst, 10181); 1946 dasm_put(Dst, 10269);
1942 break; 1947 break;
1943 default: break; /* Shut up GCC. */ 1948 default: break; /* Shut up GCC. */
1944 } 1949 }
1945 dasm_put(Dst, 10186, -BCBIAS_J*4); 1950 dasm_put(Dst, 10274, -BCBIAS_J*4);
1946 } 1951 }
1947 break; 1952 break;
1948 1953
1949 case BC_ISEQV: case BC_ISNEV: 1954 case BC_ISEQV: case BC_ISNEV:
1950 vk = op == BC_ISEQV; 1955 vk = op == BC_ISEQV;
1951 dasm_put(Dst, 10219); 1956 dasm_put(Dst, 10307);
1952 if (LJ_DUALNUM) { 1957 if (LJ_DUALNUM) {
1953 dasm_put(Dst, 10227, LJ_TISNUM, LJ_TISNUM); 1958 dasm_put(Dst, 10315, LJ_TISNUM, LJ_TISNUM);
1954 if (vk) { 1959 if (vk) {
1955 dasm_put(Dst, 10252); 1960 dasm_put(Dst, 10340);
1956 } else { 1961 } else {
1957 dasm_put(Dst, 10257); 1962 dasm_put(Dst, 10345);
1958 } 1963 }
1959 dasm_put(Dst, 10262, -BCBIAS_J*4, LJ_TISNUM); 1964 dasm_put(Dst, 10350, -BCBIAS_J*4, LJ_TISNUM);
1960 if (sse) { 1965 if (sse) {
1961 dasm_put(Dst, 10315); 1966 dasm_put(Dst, 10403);
1962 } else { 1967 } else {
1963 dasm_put(Dst, 10322); 1968 dasm_put(Dst, 10410);
1964 } 1969 }
1965 dasm_put(Dst, 10326); 1970 dasm_put(Dst, 10414);
1966 if (sse) { 1971 if (sse) {
1967 dasm_put(Dst, 10337); 1972 dasm_put(Dst, 10425);
1968 } else { 1973 } else {
1969 dasm_put(Dst, 10349); 1974 dasm_put(Dst, 10437);
1970 } 1975 }
1971 dasm_put(Dst, 10356); 1976 dasm_put(Dst, 10444);
1972 } else { 1977 } else {
1973 dasm_put(Dst, 10361, LJ_TISNUM, LJ_TISNUM); 1978 dasm_put(Dst, 10449, LJ_TISNUM, LJ_TISNUM);
1974 } 1979 }
1975 if (sse) { 1980 if (sse) {
1976 dasm_put(Dst, 10380); 1981 dasm_put(Dst, 10468);
1977 } else { 1982 } else {
1978 dasm_put(Dst, 10398); 1983 dasm_put(Dst, 10486);
1979 if (cmov) { 1984 if (cmov) {
1980 dasm_put(Dst, 10153); 1985 dasm_put(Dst, 10241);
1981 } else { 1986 } else {
1982 dasm_put(Dst, 10159); 1987 dasm_put(Dst, 10247);
1983 } 1988 }
1984 } 1989 }
1985 iseqne_fp: 1990 iseqne_fp:
1986 if (vk) { 1991 if (vk) {
1987 dasm_put(Dst, 10411); 1992 dasm_put(Dst, 10499);
1988 } else { 1993 } else {
1989 dasm_put(Dst, 10420); 1994 dasm_put(Dst, 10508);
1990 } 1995 }
1991 iseqne_end: 1996 iseqne_end:
1992 if (vk) { 1997 if (vk) {
1993 dasm_put(Dst, 10429, -BCBIAS_J*4); 1998 dasm_put(Dst, 10517, -BCBIAS_J*4);
1994 if (!LJ_HASFFI) { 1999 if (!LJ_HASFFI) {
1995 dasm_put(Dst, 4655); 2000 dasm_put(Dst, 4655);
1996 } 2001 }
@@ -1998,150 +2003,150 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1998 if (!LJ_HASFFI) { 2003 if (!LJ_HASFFI) {
1999 dasm_put(Dst, 4655); 2004 dasm_put(Dst, 4655);
2000 } 2005 }
2001 dasm_put(Dst, 10444, -BCBIAS_J*4); 2006 dasm_put(Dst, 10532, -BCBIAS_J*4);
2002 } 2007 }
2003 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2008 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2004 op == BC_ISEQN || op == BC_ISNEN)) { 2009 op == BC_ISEQN || op == BC_ISNEN)) {
2005 dasm_put(Dst, 10459); 2010 dasm_put(Dst, 10547);
2006 } else { 2011 } else {
2007 dasm_put(Dst, 10198); 2012 dasm_put(Dst, 10286);
2008 } 2013 }
2009 if (op == BC_ISEQV || op == BC_ISNEV) { 2014 if (op == BC_ISEQV || op == BC_ISNEV) {
2010 dasm_put(Dst, 10464); 2015 dasm_put(Dst, 10552);
2011 if (LJ_HASFFI) { 2016 if (LJ_HASFFI) {
2012 dasm_put(Dst, 10467, LJ_TCDATA, LJ_TCDATA); 2017 dasm_put(Dst, 10555, LJ_TCDATA, LJ_TCDATA);
2013 } 2018 }
2014 dasm_put(Dst, 10486, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2019 dasm_put(Dst, 10574, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2015 if (vk) { 2020 if (vk) {
2016 dasm_put(Dst, 10542); 2021 dasm_put(Dst, 10630);
2017 } else { 2022 } else {
2018 dasm_put(Dst, 10546); 2023 dasm_put(Dst, 10634);
2019 } 2024 }
2020 dasm_put(Dst, 10552); 2025 dasm_put(Dst, 10640);
2021 } else if (LJ_HASFFI) { 2026 } else if (LJ_HASFFI) {
2022 dasm_put(Dst, 10557, LJ_TCDATA); 2027 dasm_put(Dst, 10645, LJ_TCDATA);
2023 if (LJ_DUALNUM && vk) { 2028 if (LJ_DUALNUM && vk) {
2024 dasm_put(Dst, 10564); 2029 dasm_put(Dst, 10652);
2025 } else { 2030 } else {
2026 dasm_put(Dst, 10537); 2031 dasm_put(Dst, 10625);
2027 } 2032 }
2028 dasm_put(Dst, 10569); 2033 dasm_put(Dst, 10657);
2029 } 2034 }
2030 break; 2035 break;
2031 case BC_ISEQS: case BC_ISNES: 2036 case BC_ISEQS: case BC_ISNES:
2032 vk = op == BC_ISEQS; 2037 vk = op == BC_ISEQS;
2033 dasm_put(Dst, 10574, LJ_TSTR); 2038 dasm_put(Dst, 10662, LJ_TSTR);
2034 iseqne_test: 2039 iseqne_test:
2035 if (vk) { 2040 if (vk) {
2036 dasm_put(Dst, 10415); 2041 dasm_put(Dst, 10503);
2037 } else { 2042 } else {
2038 dasm_put(Dst, 814); 2043 dasm_put(Dst, 814);
2039 } 2044 }
2040 goto iseqne_end; 2045 goto iseqne_end;
2041 case BC_ISEQN: case BC_ISNEN: 2046 case BC_ISEQN: case BC_ISNEN:
2042 vk = op == BC_ISEQN; 2047 vk = op == BC_ISEQN;
2043 dasm_put(Dst, 10601); 2048 dasm_put(Dst, 10689);
2044 if (LJ_DUALNUM) { 2049 if (LJ_DUALNUM) {
2045 dasm_put(Dst, 10609, LJ_TISNUM, LJ_TISNUM); 2050 dasm_put(Dst, 10697, LJ_TISNUM, LJ_TISNUM);
2046 if (vk) { 2051 if (vk) {
2047 dasm_put(Dst, 10252); 2052 dasm_put(Dst, 10340);
2048 } else { 2053 } else {
2049 dasm_put(Dst, 10257); 2054 dasm_put(Dst, 10345);
2050 } 2055 }
2051 dasm_put(Dst, 10636, -BCBIAS_J*4, LJ_TISNUM); 2056 dasm_put(Dst, 10724, -BCBIAS_J*4, LJ_TISNUM);
2052 if (sse) { 2057 if (sse) {
2053 dasm_put(Dst, 10686); 2058 dasm_put(Dst, 10774);
2054 } else { 2059 } else {
2055 dasm_put(Dst, 10694); 2060 dasm_put(Dst, 10782);
2056 } 2061 }
2057 dasm_put(Dst, 10699); 2062 dasm_put(Dst, 10787);
2058 if (sse) { 2063 if (sse) {
2059 dasm_put(Dst, 10706); 2064 dasm_put(Dst, 10794);
2060 } else { 2065 } else {
2061 dasm_put(Dst, 10719); 2066 dasm_put(Dst, 10807);
2062 } 2067 }
2063 dasm_put(Dst, 10356); 2068 dasm_put(Dst, 10444);
2064 } else { 2069 } else {
2065 dasm_put(Dst, 10727, LJ_TISNUM); 2070 dasm_put(Dst, 10815, LJ_TISNUM);
2066 } 2071 }
2067 if (sse) { 2072 if (sse) {
2068 dasm_put(Dst, 10736); 2073 dasm_put(Dst, 10824);
2069 } else { 2074 } else {
2070 dasm_put(Dst, 10755); 2075 dasm_put(Dst, 10843);
2071 if (cmov) { 2076 if (cmov) {
2072 dasm_put(Dst, 10153); 2077 dasm_put(Dst, 10241);
2073 } else { 2078 } else {
2074 dasm_put(Dst, 10159); 2079 dasm_put(Dst, 10247);
2075 } 2080 }
2076 } 2081 }
2077 goto iseqne_fp; 2082 goto iseqne_fp;
2078 case BC_ISEQP: case BC_ISNEP: 2083 case BC_ISEQP: case BC_ISNEP:
2079 vk = op == BC_ISEQP; 2084 vk = op == BC_ISEQP;
2080 dasm_put(Dst, 10769); 2085 dasm_put(Dst, 10857);
2081 if (!LJ_HASFFI) goto iseqne_test; 2086 if (!LJ_HASFFI) goto iseqne_test;
2082 if (vk) { 2087 if (vk) {
2083 dasm_put(Dst, 10783, -BCBIAS_J*4, LJ_TCDATA); 2088 dasm_put(Dst, 10871, -BCBIAS_J*4, LJ_TCDATA);
2084 } else { 2089 } else {
2085 dasm_put(Dst, 10834, LJ_TCDATA, -BCBIAS_J*4); 2090 dasm_put(Dst, 10922, LJ_TCDATA, -BCBIAS_J*4);
2086 } 2091 }
2087 break; 2092 break;
2088 2093
2089 /* -- Unary test and copy ops ------------------------------------------- */ 2094 /* -- Unary test and copy ops ------------------------------------------- */
2090 2095
2091 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2096 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2092 dasm_put(Dst, 10879, LJ_TISTRUECOND); 2097 dasm_put(Dst, 10967, LJ_TISTRUECOND);
2093 if (op == BC_IST || op == BC_ISTC) { 2098 if (op == BC_IST || op == BC_ISTC) {
2094 dasm_put(Dst, 10181); 2099 dasm_put(Dst, 10269);
2095 } else { 2100 } else {
2096 dasm_put(Dst, 10176); 2101 dasm_put(Dst, 10264);
2097 } 2102 }
2098 if (op == BC_ISTC || op == BC_ISFC) { 2103 if (op == BC_ISTC || op == BC_ISFC) {
2099 dasm_put(Dst, 10891); 2104 dasm_put(Dst, 10979);
2100 } 2105 }
2101 dasm_put(Dst, 10186, -BCBIAS_J*4); 2106 dasm_put(Dst, 10274, -BCBIAS_J*4);
2102 break; 2107 break;
2103 2108
2104 /* -- Unary ops --------------------------------------------------------- */ 2109 /* -- Unary ops --------------------------------------------------------- */
2105 2110
2106 case BC_MOV: 2111 case BC_MOV:
2107 dasm_put(Dst, 10902); 2112 dasm_put(Dst, 10990);
2108 break; 2113 break;
2109 case BC_NOT: 2114 case BC_NOT:
2110 dasm_put(Dst, 10931, LJ_TISTRUECOND, LJ_TTRUE); 2115 dasm_put(Dst, 11019, LJ_TISTRUECOND, LJ_TTRUE);
2111 break; 2116 break;
2112 case BC_UNM: 2117 case BC_UNM:
2113 if (LJ_DUALNUM) { 2118 if (LJ_DUALNUM) {
2114 dasm_put(Dst, 10968, LJ_TISNUM, LJ_TISNUM); 2119 dasm_put(Dst, 11056, LJ_TISNUM, LJ_TISNUM);
2115 } else { 2120 } else {
2116 dasm_put(Dst, 11046, LJ_TISNUM); 2121 dasm_put(Dst, 11134, LJ_TISNUM);
2117 } 2122 }
2118 if (sse) { 2123 if (sse) {
2119 dasm_put(Dst, 11057, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2124 dasm_put(Dst, 11145, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2120 } else { 2125 } else {
2121 dasm_put(Dst, 11082); 2126 dasm_put(Dst, 11170);
2122 } 2127 }
2123 if (LJ_DUALNUM) { 2128 if (LJ_DUALNUM) {
2124 dasm_put(Dst, 10459); 2129 dasm_put(Dst, 10547);
2125 } else { 2130 } else {
2126 dasm_put(Dst, 10198); 2131 dasm_put(Dst, 10286);
2127 } 2132 }
2128 break; 2133 break;
2129 case BC_LEN: 2134 case BC_LEN:
2130 dasm_put(Dst, 11091, LJ_TSTR); 2135 dasm_put(Dst, 11179, LJ_TSTR);
2131 if (LJ_DUALNUM) { 2136 if (LJ_DUALNUM) {
2132 dasm_put(Dst, 11105, Dt5(->len), LJ_TISNUM); 2137 dasm_put(Dst, 11193, Dt5(->len), LJ_TISNUM);
2133 } else if (sse) { 2138 } else if (sse) {
2134 dasm_put(Dst, 11119, Dt5(->len)); 2139 dasm_put(Dst, 11207, Dt5(->len));
2135 } else { 2140 } else {
2136 dasm_put(Dst, 11137, Dt5(->len)); 2141 dasm_put(Dst, 11225, Dt5(->len));
2137 } 2142 }
2138 dasm_put(Dst, 11146, LJ_TTAB); 2143 dasm_put(Dst, 11234, LJ_TTAB);
2139 if (LJ_DUALNUM) { 2144 if (LJ_DUALNUM) {
2140 } else if (sse) { 2145 } else if (sse) {
2141 dasm_put(Dst, 11188); 2146 dasm_put(Dst, 11276);
2142 } else { 2147 } else {
2143 } 2148 }
2144 dasm_put(Dst, 11194); 2149 dasm_put(Dst, 11282);
2145 break; 2150 break;
2146 2151
2147 /* -- Binary ops -------------------------------------------------------- */ 2152 /* -- Binary ops -------------------------------------------------------- */
@@ -2149,603 +2154,603 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2149 2154
2150 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2155 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2151 if (LJ_DUALNUM) { 2156 if (LJ_DUALNUM) {
2152 dasm_put(Dst, 11207); 2157 dasm_put(Dst, 11295);
2153 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2158 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2154 switch (vk) { 2159 switch (vk) {
2155 case 0: 2160 case 0:
2156 dasm_put(Dst, 11215, LJ_TISNUM, LJ_TISNUM); 2161 dasm_put(Dst, 11303, LJ_TISNUM, LJ_TISNUM);
2157 break; 2162 break;
2158 case 1: 2163 case 1:
2159 dasm_put(Dst, 11250, LJ_TISNUM, LJ_TISNUM); 2164 dasm_put(Dst, 11338, LJ_TISNUM, LJ_TISNUM);
2160 break; 2165 break;
2161 default: 2166 default:
2162 dasm_put(Dst, 11285, LJ_TISNUM, LJ_TISNUM); 2167 dasm_put(Dst, 11373, LJ_TISNUM, LJ_TISNUM);
2163 break; 2168 break;
2164 } 2169 }
2165 dasm_put(Dst, 11318, LJ_TISNUM); 2170 dasm_put(Dst, 11406, LJ_TISNUM);
2166 if (vk == 1) { 2171 if (vk == 1) {
2167 dasm_put(Dst, 11115); 2172 dasm_put(Dst, 11203);
2168 } else { 2173 } else {
2169 dasm_put(Dst, 10898); 2174 dasm_put(Dst, 10986);
2170 } 2175 }
2171 dasm_put(Dst, 10198); 2176 dasm_put(Dst, 10286);
2172 } else { 2177 } else {
2173 dasm_put(Dst, 11207); 2178 dasm_put(Dst, 11295);
2174 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2179 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2175 switch (vk) { 2180 switch (vk) {
2176 case 0: 2181 case 0:
2177 dasm_put(Dst, 11324, LJ_TISNUM); 2182 dasm_put(Dst, 11412, LJ_TISNUM);
2178 if (LJ_DUALNUM) { 2183 if (LJ_DUALNUM) {
2179 dasm_put(Dst, 11336, LJ_TISNUM); 2184 dasm_put(Dst, 11424, LJ_TISNUM);
2180 } 2185 }
2181 if (sse) { 2186 if (sse) {
2182 dasm_put(Dst, 11348); 2187 dasm_put(Dst, 11436);
2183 } else { 2188 } else {
2184 dasm_put(Dst, 11363); 2189 dasm_put(Dst, 11451);
2185 } 2190 }
2186 break; 2191 break;
2187 case 1: 2192 case 1:
2188 dasm_put(Dst, 11372, LJ_TISNUM); 2193 dasm_put(Dst, 11460, LJ_TISNUM);
2189 if (LJ_DUALNUM) { 2194 if (LJ_DUALNUM) {
2190 dasm_put(Dst, 11384, LJ_TISNUM); 2195 dasm_put(Dst, 11472, LJ_TISNUM);
2191 } 2196 }
2192 if (sse) { 2197 if (sse) {
2193 dasm_put(Dst, 11396); 2198 dasm_put(Dst, 11484);
2194 } else { 2199 } else {
2195 dasm_put(Dst, 11411); 2200 dasm_put(Dst, 11499);
2196 } 2201 }
2197 break; 2202 break;
2198 default: 2203 default:
2199 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2204 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2200 if (sse) { 2205 if (sse) {
2201 dasm_put(Dst, 11442); 2206 dasm_put(Dst, 11530);
2202 } else { 2207 } else {
2203 dasm_put(Dst, 11456); 2208 dasm_put(Dst, 11544);
2204 } 2209 }
2205 break; 2210 break;
2206 } 2211 }
2207 if (sse) { 2212 if (sse) {
2208 dasm_put(Dst, 11075); 2213 dasm_put(Dst, 11163);
2209 } else { 2214 } else {
2210 dasm_put(Dst, 11087); 2215 dasm_put(Dst, 11175);
2211 } 2216 }
2212 dasm_put(Dst, 10198); 2217 dasm_put(Dst, 10286);
2213 } 2218 }
2214 break; 2219 break;
2215 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2220 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2216 if (LJ_DUALNUM) { 2221 if (LJ_DUALNUM) {
2217 dasm_put(Dst, 11207); 2222 dasm_put(Dst, 11295);
2218 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2223 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2219 switch (vk) { 2224 switch (vk) {
2220 case 0: 2225 case 0:
2221 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM); 2226 dasm_put(Dst, 11552, LJ_TISNUM, LJ_TISNUM);
2222 break; 2227 break;
2223 case 1: 2228 case 1:
2224 dasm_put(Dst, 11499, LJ_TISNUM, LJ_TISNUM); 2229 dasm_put(Dst, 11587, LJ_TISNUM, LJ_TISNUM);
2225 break; 2230 break;
2226 default: 2231 default:
2227 dasm_put(Dst, 11534, LJ_TISNUM, LJ_TISNUM); 2232 dasm_put(Dst, 11622, LJ_TISNUM, LJ_TISNUM);
2228 break; 2233 break;
2229 } 2234 }
2230 dasm_put(Dst, 11318, LJ_TISNUM); 2235 dasm_put(Dst, 11406, LJ_TISNUM);
2231 if (vk == 1) { 2236 if (vk == 1) {
2232 dasm_put(Dst, 11115); 2237 dasm_put(Dst, 11203);
2233 } else { 2238 } else {
2234 dasm_put(Dst, 10898); 2239 dasm_put(Dst, 10986);
2235 } 2240 }
2236 dasm_put(Dst, 10198); 2241 dasm_put(Dst, 10286);
2237 } else { 2242 } else {
2238 dasm_put(Dst, 11207); 2243 dasm_put(Dst, 11295);
2239 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2244 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2240 switch (vk) { 2245 switch (vk) {
2241 case 0: 2246 case 0:
2242 dasm_put(Dst, 11324, LJ_TISNUM); 2247 dasm_put(Dst, 11412, LJ_TISNUM);
2243 if (LJ_DUALNUM) { 2248 if (LJ_DUALNUM) {
2244 dasm_put(Dst, 11336, LJ_TISNUM); 2249 dasm_put(Dst, 11424, LJ_TISNUM);
2245 } 2250 }
2246 if (sse) { 2251 if (sse) {
2247 dasm_put(Dst, 11567); 2252 dasm_put(Dst, 11655);
2248 } else { 2253 } else {
2249 dasm_put(Dst, 11582); 2254 dasm_put(Dst, 11670);
2250 } 2255 }
2251 break; 2256 break;
2252 case 1: 2257 case 1:
2253 dasm_put(Dst, 11372, LJ_TISNUM); 2258 dasm_put(Dst, 11460, LJ_TISNUM);
2254 if (LJ_DUALNUM) { 2259 if (LJ_DUALNUM) {
2255 dasm_put(Dst, 11384, LJ_TISNUM); 2260 dasm_put(Dst, 11472, LJ_TISNUM);
2256 } 2261 }
2257 if (sse) { 2262 if (sse) {
2258 dasm_put(Dst, 11591); 2263 dasm_put(Dst, 11679);
2259 } else { 2264 } else {
2260 dasm_put(Dst, 11606); 2265 dasm_put(Dst, 11694);
2261 } 2266 }
2262 break; 2267 break;
2263 default: 2268 default:
2264 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2269 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2265 if (sse) { 2270 if (sse) {
2266 dasm_put(Dst, 11615); 2271 dasm_put(Dst, 11703);
2267 } else { 2272 } else {
2268 dasm_put(Dst, 11629); 2273 dasm_put(Dst, 11717);
2269 } 2274 }
2270 break; 2275 break;
2271 } 2276 }
2272 if (sse) { 2277 if (sse) {
2273 dasm_put(Dst, 11075); 2278 dasm_put(Dst, 11163);
2274 } else { 2279 } else {
2275 dasm_put(Dst, 11087); 2280 dasm_put(Dst, 11175);
2276 } 2281 }
2277 dasm_put(Dst, 10198); 2282 dasm_put(Dst, 10286);
2278 } 2283 }
2279 break; 2284 break;
2280 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2285 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2281 if (LJ_DUALNUM) { 2286 if (LJ_DUALNUM) {
2282 dasm_put(Dst, 11207); 2287 dasm_put(Dst, 11295);
2283 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2288 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2284 switch (vk) { 2289 switch (vk) {
2285 case 0: 2290 case 0:
2286 dasm_put(Dst, 11637, LJ_TISNUM, LJ_TISNUM); 2291 dasm_put(Dst, 11725, LJ_TISNUM, LJ_TISNUM);
2287 break; 2292 break;
2288 case 1: 2293 case 1:
2289 dasm_put(Dst, 11673, LJ_TISNUM, LJ_TISNUM); 2294 dasm_put(Dst, 11761, LJ_TISNUM, LJ_TISNUM);
2290 break; 2295 break;
2291 default: 2296 default:
2292 dasm_put(Dst, 11709, LJ_TISNUM, LJ_TISNUM); 2297 dasm_put(Dst, 11797, LJ_TISNUM, LJ_TISNUM);
2293 break; 2298 break;
2294 } 2299 }
2295 dasm_put(Dst, 11318, LJ_TISNUM); 2300 dasm_put(Dst, 11406, LJ_TISNUM);
2296 if (vk == 1) { 2301 if (vk == 1) {
2297 dasm_put(Dst, 11115); 2302 dasm_put(Dst, 11203);
2298 } else { 2303 } else {
2299 dasm_put(Dst, 10898); 2304 dasm_put(Dst, 10986);
2300 } 2305 }
2301 dasm_put(Dst, 10198); 2306 dasm_put(Dst, 10286);
2302 } else { 2307 } else {
2303 dasm_put(Dst, 11207); 2308 dasm_put(Dst, 11295);
2304 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2309 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2305 switch (vk) { 2310 switch (vk) {
2306 case 0: 2311 case 0:
2307 dasm_put(Dst, 11324, LJ_TISNUM); 2312 dasm_put(Dst, 11412, LJ_TISNUM);
2308 if (LJ_DUALNUM) { 2313 if (LJ_DUALNUM) {
2309 dasm_put(Dst, 11336, LJ_TISNUM); 2314 dasm_put(Dst, 11424, LJ_TISNUM);
2310 } 2315 }
2311 if (sse) { 2316 if (sse) {
2312 dasm_put(Dst, 11743); 2317 dasm_put(Dst, 11831);
2313 } else { 2318 } else {
2314 dasm_put(Dst, 11758); 2319 dasm_put(Dst, 11846);
2315 } 2320 }
2316 break; 2321 break;
2317 case 1: 2322 case 1:
2318 dasm_put(Dst, 11372, LJ_TISNUM); 2323 dasm_put(Dst, 11460, LJ_TISNUM);
2319 if (LJ_DUALNUM) { 2324 if (LJ_DUALNUM) {
2320 dasm_put(Dst, 11384, LJ_TISNUM); 2325 dasm_put(Dst, 11472, LJ_TISNUM);
2321 } 2326 }
2322 if (sse) { 2327 if (sse) {
2323 dasm_put(Dst, 11767); 2328 dasm_put(Dst, 11855);
2324 } else { 2329 } else {
2325 dasm_put(Dst, 11782); 2330 dasm_put(Dst, 11870);
2326 } 2331 }
2327 break; 2332 break;
2328 default: 2333 default:
2329 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2334 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2330 if (sse) { 2335 if (sse) {
2331 dasm_put(Dst, 11791); 2336 dasm_put(Dst, 11879);
2332 } else { 2337 } else {
2333 dasm_put(Dst, 11805); 2338 dasm_put(Dst, 11893);
2334 } 2339 }
2335 break; 2340 break;
2336 } 2341 }
2337 if (sse) { 2342 if (sse) {
2338 dasm_put(Dst, 11075); 2343 dasm_put(Dst, 11163);
2339 } else { 2344 } else {
2340 dasm_put(Dst, 11087); 2345 dasm_put(Dst, 11175);
2341 } 2346 }
2342 dasm_put(Dst, 10198); 2347 dasm_put(Dst, 10286);
2343 } 2348 }
2344 break; 2349 break;
2345 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2350 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2346 dasm_put(Dst, 11207); 2351 dasm_put(Dst, 11295);
2347 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2352 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2348 switch (vk) { 2353 switch (vk) {
2349 case 0: 2354 case 0:
2350 dasm_put(Dst, 11324, LJ_TISNUM); 2355 dasm_put(Dst, 11412, LJ_TISNUM);
2351 if (LJ_DUALNUM) { 2356 if (LJ_DUALNUM) {
2352 dasm_put(Dst, 11336, LJ_TISNUM); 2357 dasm_put(Dst, 11424, LJ_TISNUM);
2353 } 2358 }
2354 if (sse) { 2359 if (sse) {
2355 dasm_put(Dst, 11813); 2360 dasm_put(Dst, 11901);
2356 } else { 2361 } else {
2357 dasm_put(Dst, 11828); 2362 dasm_put(Dst, 11916);
2358 } 2363 }
2359 break; 2364 break;
2360 case 1: 2365 case 1:
2361 dasm_put(Dst, 11372, LJ_TISNUM); 2366 dasm_put(Dst, 11460, LJ_TISNUM);
2362 if (LJ_DUALNUM) { 2367 if (LJ_DUALNUM) {
2363 dasm_put(Dst, 11384, LJ_TISNUM); 2368 dasm_put(Dst, 11472, LJ_TISNUM);
2364 } 2369 }
2365 if (sse) { 2370 if (sse) {
2366 dasm_put(Dst, 11837); 2371 dasm_put(Dst, 11925);
2367 } else { 2372 } else {
2368 dasm_put(Dst, 11852); 2373 dasm_put(Dst, 11940);
2369 } 2374 }
2370 break; 2375 break;
2371 default: 2376 default:
2372 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2377 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2373 if (sse) { 2378 if (sse) {
2374 dasm_put(Dst, 11861); 2379 dasm_put(Dst, 11949);
2375 } else { 2380 } else {
2376 dasm_put(Dst, 11875); 2381 dasm_put(Dst, 11963);
2377 } 2382 }
2378 break; 2383 break;
2379 } 2384 }
2380 if (sse) { 2385 if (sse) {
2381 dasm_put(Dst, 11075); 2386 dasm_put(Dst, 11163);
2382 } else { 2387 } else {
2383 dasm_put(Dst, 11087); 2388 dasm_put(Dst, 11175);
2384 } 2389 }
2385 dasm_put(Dst, 10198); 2390 dasm_put(Dst, 10286);
2386 break; 2391 break;
2387 case BC_MODVN: 2392 case BC_MODVN:
2388 dasm_put(Dst, 11207); 2393 dasm_put(Dst, 11295);
2389 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2394 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2390 switch (vk) { 2395 switch (vk) {
2391 case 0: 2396 case 0:
2392 dasm_put(Dst, 11324, LJ_TISNUM); 2397 dasm_put(Dst, 11412, LJ_TISNUM);
2393 if (LJ_DUALNUM) { 2398 if (LJ_DUALNUM) {
2394 dasm_put(Dst, 11336, LJ_TISNUM); 2399 dasm_put(Dst, 11424, LJ_TISNUM);
2395 } 2400 }
2396 if (sse) { 2401 if (sse) {
2397 dasm_put(Dst, 11883); 2402 dasm_put(Dst, 11971);
2398 } else { 2403 } else {
2399 dasm_put(Dst, 11898); 2404 dasm_put(Dst, 11986);
2400 } 2405 }
2401 break; 2406 break;
2402 case 1: 2407 case 1:
2403 dasm_put(Dst, 11372, LJ_TISNUM); 2408 dasm_put(Dst, 11460, LJ_TISNUM);
2404 if (LJ_DUALNUM) { 2409 if (LJ_DUALNUM) {
2405 dasm_put(Dst, 11384, LJ_TISNUM); 2410 dasm_put(Dst, 11472, LJ_TISNUM);
2406 } 2411 }
2407 if (sse) { 2412 if (sse) {
2408 dasm_put(Dst, 11907); 2413 dasm_put(Dst, 11995);
2409 } else { 2414 } else {
2410 dasm_put(Dst, 11922); 2415 dasm_put(Dst, 12010);
2411 } 2416 }
2412 break; 2417 break;
2413 default: 2418 default:
2414 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2419 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2415 if (sse) { 2420 if (sse) {
2416 dasm_put(Dst, 11931); 2421 dasm_put(Dst, 12019);
2417 } else { 2422 } else {
2418 dasm_put(Dst, 11945); 2423 dasm_put(Dst, 12033);
2419 } 2424 }
2420 break; 2425 break;
2421 } 2426 }
2422 dasm_put(Dst, 11953); 2427 dasm_put(Dst, 12041);
2423 if (sse) { 2428 if (sse) {
2424 dasm_put(Dst, 11075); 2429 dasm_put(Dst, 11163);
2425 } else { 2430 } else {
2426 dasm_put(Dst, 11087); 2431 dasm_put(Dst, 11175);
2427 } 2432 }
2428 dasm_put(Dst, 10198); 2433 dasm_put(Dst, 10286);
2429 break; 2434 break;
2430 case BC_MODNV: case BC_MODVV: 2435 case BC_MODNV: case BC_MODVV:
2431 dasm_put(Dst, 11207); 2436 dasm_put(Dst, 11295);
2432 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2437 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2433 switch (vk) { 2438 switch (vk) {
2434 case 0: 2439 case 0:
2435 dasm_put(Dst, 11324, LJ_TISNUM); 2440 dasm_put(Dst, 11412, LJ_TISNUM);
2436 if (LJ_DUALNUM) { 2441 if (LJ_DUALNUM) {
2437 dasm_put(Dst, 11336, LJ_TISNUM); 2442 dasm_put(Dst, 11424, LJ_TISNUM);
2438 } 2443 }
2439 if (sse) { 2444 if (sse) {
2440 dasm_put(Dst, 11883); 2445 dasm_put(Dst, 11971);
2441 } else { 2446 } else {
2442 dasm_put(Dst, 11898); 2447 dasm_put(Dst, 11986);
2443 } 2448 }
2444 break; 2449 break;
2445 case 1: 2450 case 1:
2446 dasm_put(Dst, 11372, LJ_TISNUM); 2451 dasm_put(Dst, 11460, LJ_TISNUM);
2447 if (LJ_DUALNUM) { 2452 if (LJ_DUALNUM) {
2448 dasm_put(Dst, 11384, LJ_TISNUM); 2453 dasm_put(Dst, 11472, LJ_TISNUM);
2449 } 2454 }
2450 if (sse) { 2455 if (sse) {
2451 dasm_put(Dst, 11907); 2456 dasm_put(Dst, 11995);
2452 } else { 2457 } else {
2453 dasm_put(Dst, 11922); 2458 dasm_put(Dst, 12010);
2454 } 2459 }
2455 break; 2460 break;
2456 default: 2461 default:
2457 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2462 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2458 if (sse) { 2463 if (sse) {
2459 dasm_put(Dst, 11931); 2464 dasm_put(Dst, 12019);
2460 } else { 2465 } else {
2461 dasm_put(Dst, 11945); 2466 dasm_put(Dst, 12033);
2462 } 2467 }
2463 break; 2468 break;
2464 } 2469 }
2465 dasm_put(Dst, 11959); 2470 dasm_put(Dst, 12047);
2466 break; 2471 break;
2467 case BC_POW: 2472 case BC_POW:
2468 dasm_put(Dst, 11207); 2473 dasm_put(Dst, 11295);
2469 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2474 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2470 switch (vk) { 2475 switch (vk) {
2471 case 0: 2476 case 0:
2472 dasm_put(Dst, 11324, LJ_TISNUM); 2477 dasm_put(Dst, 11412, LJ_TISNUM);
2473 if (LJ_DUALNUM) { 2478 if (LJ_DUALNUM) {
2474 dasm_put(Dst, 11336, LJ_TISNUM); 2479 dasm_put(Dst, 11424, LJ_TISNUM);
2475 } 2480 }
2476 if (sse) { 2481 if (sse) {
2477 dasm_put(Dst, 11883); 2482 dasm_put(Dst, 11971);
2478 } else { 2483 } else {
2479 dasm_put(Dst, 11898); 2484 dasm_put(Dst, 11986);
2480 } 2485 }
2481 break; 2486 break;
2482 case 1: 2487 case 1:
2483 dasm_put(Dst, 11372, LJ_TISNUM); 2488 dasm_put(Dst, 11460, LJ_TISNUM);
2484 if (LJ_DUALNUM) { 2489 if (LJ_DUALNUM) {
2485 dasm_put(Dst, 11384, LJ_TISNUM); 2490 dasm_put(Dst, 11472, LJ_TISNUM);
2486 } 2491 }
2487 if (sse) { 2492 if (sse) {
2488 dasm_put(Dst, 11907); 2493 dasm_put(Dst, 11995);
2489 } else { 2494 } else {
2490 dasm_put(Dst, 11922); 2495 dasm_put(Dst, 12010);
2491 } 2496 }
2492 break; 2497 break;
2493 default: 2498 default:
2494 dasm_put(Dst, 11420, LJ_TISNUM, LJ_TISNUM); 2499 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM);
2495 if (sse) { 2500 if (sse) {
2496 dasm_put(Dst, 11931); 2501 dasm_put(Dst, 12019);
2497 } else { 2502 } else {
2498 dasm_put(Dst, 11945); 2503 dasm_put(Dst, 12033);
2499 } 2504 }
2500 break; 2505 break;
2501 } 2506 }
2502 dasm_put(Dst, 11964); 2507 dasm_put(Dst, 12052);
2503 if (sse) { 2508 if (sse) {
2504 dasm_put(Dst, 11075); 2509 dasm_put(Dst, 11163);
2505 } else { 2510 } else {
2506 dasm_put(Dst, 11087); 2511 dasm_put(Dst, 11175);
2507 } 2512 }
2508 dasm_put(Dst, 10198); 2513 dasm_put(Dst, 10286);
2509 break; 2514 break;
2510 2515
2511 case BC_CAT: 2516 case BC_CAT:
2512 dasm_put(Dst, 11968, Dt1(->base), Dt1(->base)); 2517 dasm_put(Dst, 12056, Dt1(->base), Dt1(->base));
2513 break; 2518 break;
2514 2519
2515 /* -- Constant ops ------------------------------------------------------ */ 2520 /* -- Constant ops ------------------------------------------------------ */
2516 2521
2517 case BC_KSTR: 2522 case BC_KSTR:
2518 dasm_put(Dst, 12052, LJ_TSTR); 2523 dasm_put(Dst, 12140, LJ_TSTR);
2519 break; 2524 break;
2520 case BC_KCDATA: 2525 case BC_KCDATA:
2521#if LJ_HASFFI 2526#if LJ_HASFFI
2522 dasm_put(Dst, 12052, LJ_TCDATA); 2527 dasm_put(Dst, 12140, LJ_TCDATA);
2523#endif 2528#endif
2524 break; 2529 break;
2525 case BC_KSHORT: 2530 case BC_KSHORT:
2526 if (LJ_DUALNUM) { 2531 if (LJ_DUALNUM) {
2527 dasm_put(Dst, 12089, LJ_TISNUM); 2532 dasm_put(Dst, 12177, LJ_TISNUM);
2528 } else if (sse) { 2533 } else if (sse) {
2529 dasm_put(Dst, 12101); 2534 dasm_put(Dst, 12189);
2530 } else { 2535 } else {
2531 dasm_put(Dst, 12116); 2536 dasm_put(Dst, 12204);
2532 } 2537 }
2533 dasm_put(Dst, 10198); 2538 dasm_put(Dst, 10286);
2534 break; 2539 break;
2535 case BC_KNUM: 2540 case BC_KNUM:
2536 if (sse) { 2541 if (sse) {
2537 dasm_put(Dst, 12124); 2542 dasm_put(Dst, 12212);
2538 } else { 2543 } else {
2539 dasm_put(Dst, 12138); 2544 dasm_put(Dst, 12226);
2540 } 2545 }
2541 dasm_put(Dst, 10198); 2546 dasm_put(Dst, 10286);
2542 break; 2547 break;
2543 case BC_KPRI: 2548 case BC_KPRI:
2544 dasm_put(Dst, 12146); 2549 dasm_put(Dst, 12234);
2545 break; 2550 break;
2546 case BC_KNIL: 2551 case BC_KNIL:
2547 dasm_put(Dst, 12175, LJ_TNIL); 2552 dasm_put(Dst, 12263, LJ_TNIL);
2548 break; 2553 break;
2549 2554
2550 /* -- Upvalue and function ops ------------------------------------------ */ 2555 /* -- Upvalue and function ops ------------------------------------------ */
2551 2556
2552 case BC_UGET: 2557 case BC_UGET:
2553 dasm_put(Dst, 12223, offsetof(GCfuncL, uvptr), DtA(->v)); 2558 dasm_put(Dst, 12311, offsetof(GCfuncL, uvptr), DtA(->v));
2554 break; 2559 break;
2555 case BC_USETV: 2560 case BC_USETV:
2556#define TV2MARKOFS \ 2561#define TV2MARKOFS \
2557 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2562 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2558 dasm_put(Dst, 12264, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 2563 dasm_put(Dst, 12352, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
2559 dasm_put(Dst, 12360); 2564 dasm_put(Dst, 12448);
2560 break; 2565 break;
2561#undef TV2MARKOFS 2566#undef TV2MARKOFS
2562 case BC_USETS: 2567 case BC_USETS:
2563 dasm_put(Dst, 12372, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2568 dasm_put(Dst, 12460, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2564 break; 2569 break;
2565 case BC_USETN: 2570 case BC_USETN:
2566 dasm_put(Dst, 12468); 2571 dasm_put(Dst, 12556);
2567 if (sse) { 2572 if (sse) {
2568 dasm_put(Dst, 12473); 2573 dasm_put(Dst, 12561);
2569 } else { 2574 } else {
2570 dasm_put(Dst, 10722); 2575 dasm_put(Dst, 10810);
2571 } 2576 }
2572 dasm_put(Dst, 12481, offsetof(GCfuncL, uvptr), DtA(->v)); 2577 dasm_put(Dst, 12569, offsetof(GCfuncL, uvptr), DtA(->v));
2573 if (sse) { 2578 if (sse) {
2574 dasm_put(Dst, 12490); 2579 dasm_put(Dst, 12578);
2575 } else { 2580 } else {
2576 dasm_put(Dst, 12496); 2581 dasm_put(Dst, 12584);
2577 } 2582 }
2578 dasm_put(Dst, 10198); 2583 dasm_put(Dst, 10286);
2579 break; 2584 break;
2580 case BC_USETP: 2585 case BC_USETP:
2581 dasm_put(Dst, 12499, offsetof(GCfuncL, uvptr), DtA(->v)); 2586 dasm_put(Dst, 12587, offsetof(GCfuncL, uvptr), DtA(->v));
2582 break; 2587 break;
2583 case BC_UCLO: 2588 case BC_UCLO:
2584 dasm_put(Dst, 12539, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2589 dasm_put(Dst, 12627, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2585 break; 2590 break;
2586 2591
2587 case BC_FNEW: 2592 case BC_FNEW:
2588 dasm_put(Dst, 12595, Dt1(->base), Dt1(->base), LJ_TFUNC); 2593 dasm_put(Dst, 12683, Dt1(->base), Dt1(->base), LJ_TFUNC);
2589 break; 2594 break;
2590 2595
2591 /* -- Table ops --------------------------------------------------------- */ 2596 /* -- Table ops --------------------------------------------------------- */
2592 2597
2593 case BC_TNEW: 2598 case BC_TNEW:
2594 dasm_put(Dst, 12662, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2599 dasm_put(Dst, 12750, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2595 break; 2600 break;
2596 case BC_TDUP: 2601 case BC_TDUP:
2597 dasm_put(Dst, 12786, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2602 dasm_put(Dst, 12874, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2598 break; 2603 break;
2599 2604
2600 case BC_GGET: 2605 case BC_GGET:
2601 dasm_put(Dst, 12885, Dt7(->env)); 2606 dasm_put(Dst, 12973, Dt7(->env));
2602 break; 2607 break;
2603 case BC_GSET: 2608 case BC_GSET:
2604 dasm_put(Dst, 12905, Dt7(->env)); 2609 dasm_put(Dst, 12993, Dt7(->env));
2605 break; 2610 break;
2606 2611
2607 case BC_TGETV: 2612 case BC_TGETV:
2608 dasm_put(Dst, 12925, LJ_TTAB); 2613 dasm_put(Dst, 13013, LJ_TTAB);
2609 if (LJ_DUALNUM) { 2614 if (LJ_DUALNUM) {
2610 dasm_put(Dst, 12948, LJ_TISNUM); 2615 dasm_put(Dst, 13036, LJ_TISNUM);
2611 } else { 2616 } else {
2612 dasm_put(Dst, 12962, LJ_TISNUM); 2617 dasm_put(Dst, 13050, LJ_TISNUM);
2613 if (sse) { 2618 if (sse) {
2614 dasm_put(Dst, 12973); 2619 dasm_put(Dst, 13061);
2615 } else { 2620 } else {
2616 } 2621 }
2617 dasm_put(Dst, 12994); 2622 dasm_put(Dst, 13082);
2618 } 2623 }
2619 dasm_put(Dst, 12999, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2624 dasm_put(Dst, 13087, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2620 dasm_put(Dst, 13091, LJ_TSTR); 2625 dasm_put(Dst, 13179, LJ_TSTR);
2621 break; 2626 break;
2622 case BC_TGETS: 2627 case BC_TGETS:
2623 dasm_put(Dst, 13109, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2628 dasm_put(Dst, 13197, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2624 dasm_put(Dst, 13194, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2629 dasm_put(Dst, 13282, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2625 break; 2630 break;
2626 case BC_TGETB: 2631 case BC_TGETB:
2627 dasm_put(Dst, 13266, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2632 dasm_put(Dst, 13354, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2628 dasm_put(Dst, 13362, LJ_TNIL); 2633 dasm_put(Dst, 13450, LJ_TNIL);
2629 break; 2634 break;
2630 2635
2631 case BC_TSETV: 2636 case BC_TSETV:
2632 dasm_put(Dst, 13379, LJ_TTAB); 2637 dasm_put(Dst, 13467, LJ_TTAB);
2633 if (LJ_DUALNUM) { 2638 if (LJ_DUALNUM) {
2634 dasm_put(Dst, 12948, LJ_TISNUM); 2639 dasm_put(Dst, 13036, LJ_TISNUM);
2635 } else { 2640 } else {
2636 dasm_put(Dst, 12962, LJ_TISNUM); 2641 dasm_put(Dst, 13050, LJ_TISNUM);
2637 if (sse) { 2642 if (sse) {
2638 dasm_put(Dst, 12973); 2643 dasm_put(Dst, 13061);
2639 } else { 2644 } else {
2640 } 2645 }
2641 dasm_put(Dst, 13402); 2646 dasm_put(Dst, 13490);
2642 } 2647 }
2643 dasm_put(Dst, 13407, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2648 dasm_put(Dst, 13495, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2644 dasm_put(Dst, 13488, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2649 dasm_put(Dst, 13576, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2645 break; 2650 break;
2646 case BC_TSETS: 2651 case BC_TSETS:
2647 dasm_put(Dst, 13547, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2652 dasm_put(Dst, 13635, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2648 dasm_put(Dst, 13624, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2653 dasm_put(Dst, 13712, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2649 dasm_put(Dst, 13711, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2654 dasm_put(Dst, 13799, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2650 break; 2655 break;
2651 case BC_TSETB: 2656 case BC_TSETB:
2652 dasm_put(Dst, 13803, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2657 dasm_put(Dst, 13891, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2653 dasm_put(Dst, 13898, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2658 dasm_put(Dst, 13986, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2654 break; 2659 break;
2655 2660
2656 case BC_TSETM: 2661 case BC_TSETM:
2657 dasm_put(Dst, 13946, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2662 dasm_put(Dst, 14034, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2658 dasm_put(Dst, 14096, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2663 dasm_put(Dst, 14184, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2659 break; 2664 break;
2660 2665
2661 /* -- Calls and vararg handling ----------------------------------------- */ 2666 /* -- Calls and vararg handling ----------------------------------------- */
2662 2667
2663 case BC_CALL: case BC_CALLM: 2668 case BC_CALL: case BC_CALLM:
2664 dasm_put(Dst, 11211); 2669 dasm_put(Dst, 11299);
2665 if (op == BC_CALLM) { 2670 if (op == BC_CALLM) {
2666 dasm_put(Dst, 14116); 2671 dasm_put(Dst, 14204);
2667 } 2672 }
2668 dasm_put(Dst, 14121, LJ_TFUNC, Dt7(->pc)); 2673 dasm_put(Dst, 14209, LJ_TFUNC, Dt7(->pc));
2669 break; 2674 break;
2670 2675
2671 case BC_CALLMT: 2676 case BC_CALLMT:
2672 dasm_put(Dst, 14116); 2677 dasm_put(Dst, 14204);
2673 break; 2678 break;
2674 case BC_CALLT: 2679 case BC_CALLT:
2675 dasm_put(Dst, 14164, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2680 dasm_put(Dst, 14252, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2676 dasm_put(Dst, 14282, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2681 dasm_put(Dst, 14370, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2677 break; 2682 break;
2678 2683
2679 case BC_ITERC: 2684 case BC_ITERC:
2680 dasm_put(Dst, 14356, LJ_TFUNC, 2+1, Dt7(->pc)); 2685 dasm_put(Dst, 14444, LJ_TFUNC, 2+1, Dt7(->pc));
2681 break; 2686 break;
2682 2687
2683 case BC_ITERN: 2688 case BC_ITERN:
2684#if LJ_HASJIT 2689#if LJ_HASJIT
2685#endif 2690#endif
2686 dasm_put(Dst, 14428, Dt6(->asize), Dt6(->array), LJ_TNIL); 2691 dasm_put(Dst, 14516, Dt6(->asize), Dt6(->array), LJ_TNIL);
2687 if (LJ_DUALNUM) { 2692 if (LJ_DUALNUM) {
2688 dasm_put(Dst, 11110, LJ_TISNUM); 2693 dasm_put(Dst, 11198, LJ_TISNUM);
2689 } else if (sse) { 2694 } else if (sse) {
2690 dasm_put(Dst, 11188); 2695 dasm_put(Dst, 11276);
2691 } else { 2696 } else {
2692 dasm_put(Dst, 14480); 2697 dasm_put(Dst, 14568);
2693 } 2698 }
2694 dasm_put(Dst, 14486); 2699 dasm_put(Dst, 14574);
2695 if (LJ_DUALNUM) { 2700 if (LJ_DUALNUM) {
2696 } else if (sse) { 2701 } else if (sse) {
2697 dasm_put(Dst, 11075); 2702 dasm_put(Dst, 11163);
2698 } else { 2703 } else {
2699 dasm_put(Dst, 11087); 2704 dasm_put(Dst, 11175);
2700 } 2705 }
2701 dasm_put(Dst, 14499, -BCBIAS_J*4); 2706 dasm_put(Dst, 14587, -BCBIAS_J*4);
2702 if (!LJ_DUALNUM && !sse) { 2707 if (!LJ_DUALNUM && !sse) {
2703 dasm_put(Dst, 14553); 2708 dasm_put(Dst, 14641);
2704 } 2709 }
2705 dasm_put(Dst, 14559, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2710 dasm_put(Dst, 14647, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2706 break; 2711 break;
2707 2712
2708 case BC_ISNEXT: 2713 case BC_ISNEXT:
2709 dasm_put(Dst, 14638, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2714 dasm_put(Dst, 14726, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2710 break; 2715 break;
2711 2716
2712 case BC_VARG: 2717 case BC_VARG:
2713 dasm_put(Dst, 14739, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2718 dasm_put(Dst, 14827, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2714 dasm_put(Dst, 14906, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2719 dasm_put(Dst, 14994, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2715 break; 2720 break;
2716 2721
2717 /* -- Returns ----------------------------------------------------------- */ 2722 /* -- Returns ----------------------------------------------------------- */
2718 2723
2719 case BC_RETM: 2724 case BC_RETM:
2720 dasm_put(Dst, 14116); 2725 dasm_put(Dst, 14204);
2721 break; 2726 break;
2722 2727
2723 case BC_RET: case BC_RET0: case BC_RET1: 2728 case BC_RET: case BC_RET0: case BC_RET1:
2724 if (op != BC_RET0) { 2729 if (op != BC_RET0) {
2725 dasm_put(Dst, 14976); 2730 dasm_put(Dst, 15064);
2726 } 2731 }
2727 dasm_put(Dst, 14980, FRAME_TYPE); 2732 dasm_put(Dst, 15068, FRAME_TYPE);
2728 switch (op) { 2733 switch (op) {
2729 case BC_RET: 2734 case BC_RET:
2730 dasm_put(Dst, 14999); 2735 dasm_put(Dst, 15087);
2731 break; 2736 break;
2732 case BC_RET1: 2737 case BC_RET1:
2733 dasm_put(Dst, 15053); 2738 dasm_put(Dst, 15141);
2734 /* fallthrough */ 2739 /* fallthrough */
2735 case BC_RET0: 2740 case BC_RET0:
2736 dasm_put(Dst, 15063); 2741 dasm_put(Dst, 15151);
2737 default: 2742 default:
2738 break; 2743 break;
2739 } 2744 }
2740 dasm_put(Dst, 15074, Dt7(->pc), PC2PROTO(k)); 2745 dasm_put(Dst, 15162, Dt7(->pc), PC2PROTO(k));
2741 if (op == BC_RET) { 2746 if (op == BC_RET) {
2742 dasm_put(Dst, 15122, LJ_TNIL); 2747 dasm_put(Dst, 15210, LJ_TNIL);
2743 } else { 2748 } else {
2744 dasm_put(Dst, 15133, LJ_TNIL); 2749 dasm_put(Dst, 15221, LJ_TNIL);
2745 } 2750 }
2746 dasm_put(Dst, 15140, -FRAME_VARG, FRAME_TYPEP); 2751 dasm_put(Dst, 15228, -FRAME_VARG, FRAME_TYPEP);
2747 if (op != BC_RET0) { 2752 if (op != BC_RET0) {
2748 dasm_put(Dst, 15164); 2753 dasm_put(Dst, 15252);
2749 } 2754 }
2750 dasm_put(Dst, 4732); 2755 dasm_put(Dst, 4732);
2751 break; 2756 break;
@@ -2755,7 +2760,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2755 2760
2756 case BC_FORL: 2761 case BC_FORL:
2757#if LJ_HASJIT 2762#if LJ_HASJIT
2758 dasm_put(Dst, 15168, HOTCOUNT_PCMASK, GG_DISP2HOT); 2763 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT);
2759#endif 2764#endif
2760 break; 2765 break;
2761 2766
@@ -2767,111 +2772,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2767 case BC_FORI: 2772 case BC_FORI:
2768 case BC_IFORL: 2773 case BC_IFORL:
2769 vk = (op == BC_IFORL || op == BC_JFORL); 2774 vk = (op == BC_IFORL || op == BC_JFORL);
2770 dasm_put(Dst, 15189); 2775 dasm_put(Dst, 15277);
2771 if (LJ_DUALNUM) { 2776 if (LJ_DUALNUM) {
2772 dasm_put(Dst, 15193, LJ_TISNUM); 2777 dasm_put(Dst, 15281, LJ_TISNUM);
2773 if (!vk) { 2778 if (!vk) {
2774 dasm_put(Dst, 15203, LJ_TISNUM, LJ_TISNUM); 2779 dasm_put(Dst, 15291, LJ_TISNUM, LJ_TISNUM);
2775 } else { 2780 } else {
2776#ifdef LUA_USE_ASSERT 2781#ifdef LUA_USE_ASSERT
2777 dasm_put(Dst, 15232, LJ_TISNUM, LJ_TISNUM); 2782 dasm_put(Dst, 15320, LJ_TISNUM, LJ_TISNUM);
2778#endif 2783#endif
2779 dasm_put(Dst, 15251); 2784 dasm_put(Dst, 15339);
2780 } 2785 }
2781 dasm_put(Dst, 15270, LJ_TISNUM); 2786 dasm_put(Dst, 15358, LJ_TISNUM);
2782 if (op == BC_FORI) { 2787 if (op == BC_FORI) {
2783 dasm_put(Dst, 15281, -BCBIAS_J*4); 2788 dasm_put(Dst, 15369, -BCBIAS_J*4);
2784 } else if (op == BC_JFORI) { 2789 } else if (op == BC_JFORI) {
2785 dasm_put(Dst, 15295, -BCBIAS_J*4, BC_JLOOP); 2790 dasm_put(Dst, 15383, -BCBIAS_J*4, BC_JLOOP);
2786 } else if (op == BC_IFORL) { 2791 } else if (op == BC_IFORL) {
2787 dasm_put(Dst, 15313, -BCBIAS_J*4); 2792 dasm_put(Dst, 15401, -BCBIAS_J*4);
2788 } else { 2793 } else {
2789 dasm_put(Dst, 15305, BC_JLOOP); 2794 dasm_put(Dst, 15393, BC_JLOOP);
2790 } 2795 }
2791 dasm_put(Dst, 15327); 2796 dasm_put(Dst, 15415);
2792 if (vk) { 2797 if (vk) {
2793 dasm_put(Dst, 15352); 2798 dasm_put(Dst, 15440);
2794 } 2799 }
2795 dasm_put(Dst, 15270, LJ_TISNUM); 2800 dasm_put(Dst, 15358, LJ_TISNUM);
2796 if (op == BC_FORI) { 2801 if (op == BC_FORI) {
2797 dasm_put(Dst, 15361); 2802 dasm_put(Dst, 15449);
2798 } else if (op == BC_JFORI) { 2803 } else if (op == BC_JFORI) {
2799 dasm_put(Dst, 15366, -BCBIAS_J*4, BC_JLOOP); 2804 dasm_put(Dst, 15454, -BCBIAS_J*4, BC_JLOOP);
2800 } else if (op == BC_IFORL) { 2805 } else if (op == BC_IFORL) {
2801 dasm_put(Dst, 15380); 2806 dasm_put(Dst, 15468);
2802 } else { 2807 } else {
2803 dasm_put(Dst, 15376, BC_JLOOP); 2808 dasm_put(Dst, 15464, BC_JLOOP);
2804 } 2809 }
2805 dasm_put(Dst, 15385); 2810 dasm_put(Dst, 15473);
2806 } else if (!vk) { 2811 } else if (!vk) {
2807 dasm_put(Dst, 15392, LJ_TISNUM); 2812 dasm_put(Dst, 15480, LJ_TISNUM);
2808 } 2813 }
2809 if (!vk) { 2814 if (!vk) {
2810 dasm_put(Dst, 15398, LJ_TISNUM); 2815 dasm_put(Dst, 15486, LJ_TISNUM);
2811 } else { 2816 } else {
2812#ifdef LUA_USE_ASSERT 2817#ifdef LUA_USE_ASSERT
2813 dasm_put(Dst, 15412, LJ_TISNUM, LJ_TISNUM); 2818 dasm_put(Dst, 15500, LJ_TISNUM, LJ_TISNUM);
2814#endif 2819#endif
2815 } 2820 }
2816 dasm_put(Dst, 15431); 2821 dasm_put(Dst, 15519);
2817 if (!vk) { 2822 if (!vk) {
2818 dasm_put(Dst, 15435, LJ_TISNUM); 2823 dasm_put(Dst, 15523, LJ_TISNUM);
2819 } 2824 }
2820 if (sse) { 2825 if (sse) {
2821 dasm_put(Dst, 15444); 2826 dasm_put(Dst, 15532);
2822 if (vk) { 2827 if (vk) {
2823 dasm_put(Dst, 15456); 2828 dasm_put(Dst, 15544);
2824 } else { 2829 } else {
2825 dasm_put(Dst, 15475); 2830 dasm_put(Dst, 15563);
2826 } 2831 }
2827 dasm_put(Dst, 15480); 2832 dasm_put(Dst, 15568);
2828 } else { 2833 } else {
2829 dasm_put(Dst, 15493); 2834 dasm_put(Dst, 15581);
2830 if (vk) { 2835 if (vk) {
2831 dasm_put(Dst, 15499); 2836 dasm_put(Dst, 15587);
2832 } else { 2837 } else {
2833 dasm_put(Dst, 15515); 2838 dasm_put(Dst, 15603);
2834 } 2839 }
2835 dasm_put(Dst, 15523); 2840 dasm_put(Dst, 15611);
2836 if (cmov) { 2841 if (cmov) {
2837 dasm_put(Dst, 10153); 2842 dasm_put(Dst, 10241);
2838 } else { 2843 } else {
2839 dasm_put(Dst, 10159); 2844 dasm_put(Dst, 10247);
2840 } 2845 }
2841 if (!cmov) { 2846 if (!cmov) {
2842 dasm_put(Dst, 15528); 2847 dasm_put(Dst, 15616);
2843 } 2848 }
2844 } 2849 }
2845 if (op == BC_FORI) { 2850 if (op == BC_FORI) {
2846 if (LJ_DUALNUM) { 2851 if (LJ_DUALNUM) {
2847 dasm_put(Dst, 15534); 2852 dasm_put(Dst, 15622);
2848 } else { 2853 } else {
2849 dasm_put(Dst, 15539, -BCBIAS_J*4); 2854 dasm_put(Dst, 15627, -BCBIAS_J*4);
2850 } 2855 }
2851 } else if (op == BC_JFORI) { 2856 } else if (op == BC_JFORI) {
2852 dasm_put(Dst, 15549, -BCBIAS_J*4, BC_JLOOP); 2857 dasm_put(Dst, 15637, -BCBIAS_J*4, BC_JLOOP);
2853 } else if (op == BC_IFORL) { 2858 } else if (op == BC_IFORL) {
2854 if (LJ_DUALNUM) { 2859 if (LJ_DUALNUM) {
2855 dasm_put(Dst, 15563); 2860 dasm_put(Dst, 15651);
2856 } else { 2861 } else {
2857 dasm_put(Dst, 15568, -BCBIAS_J*4); 2862 dasm_put(Dst, 15656, -BCBIAS_J*4);
2858 } 2863 }
2859 } else { 2864 } else {
2860 dasm_put(Dst, 15559, BC_JLOOP); 2865 dasm_put(Dst, 15647, BC_JLOOP);
2861 } 2866 }
2862 if (LJ_DUALNUM) { 2867 if (LJ_DUALNUM) {
2863 dasm_put(Dst, 10082); 2868 dasm_put(Dst, 10170);
2864 } else { 2869 } else {
2865 dasm_put(Dst, 10856); 2870 dasm_put(Dst, 10944);
2866 } 2871 }
2867 if (sse) { 2872 if (sse) {
2868 dasm_put(Dst, 15578); 2873 dasm_put(Dst, 15666);
2869 } 2874 }
2870 break; 2875 break;
2871 2876
2872 case BC_ITERL: 2877 case BC_ITERL:
2873#if LJ_HASJIT 2878#if LJ_HASJIT
2874 dasm_put(Dst, 15168, HOTCOUNT_PCMASK, GG_DISP2HOT); 2879 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT);
2875#endif 2880#endif
2876 break; 2881 break;
2877 2882
@@ -2880,33 +2885,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2880 break; 2885 break;
2881#endif 2886#endif
2882 case BC_IITERL: 2887 case BC_IITERL:
2883 dasm_put(Dst, 15589, LJ_TNIL); 2888 dasm_put(Dst, 15677, LJ_TNIL);
2884 if (op == BC_JITERL) { 2889 if (op == BC_JITERL) {
2885 dasm_put(Dst, 15604, BC_JLOOP); 2890 dasm_put(Dst, 15692, BC_JLOOP);
2886 } else { 2891 } else {
2887 dasm_put(Dst, 15618, -BCBIAS_J*4); 2892 dasm_put(Dst, 15706, -BCBIAS_J*4);
2888 } 2893 }
2889 dasm_put(Dst, 10196); 2894 dasm_put(Dst, 10284);
2890 break; 2895 break;
2891 2896
2892 case BC_LOOP: 2897 case BC_LOOP:
2893#if LJ_HASJIT 2898#if LJ_HASJIT
2894 dasm_put(Dst, 15168, HOTCOUNT_PCMASK, GG_DISP2HOT); 2899 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT);
2895#endif 2900#endif
2896 break; 2901 break;
2897 2902
2898 case BC_ILOOP: 2903 case BC_ILOOP:
2899 dasm_put(Dst, 10198); 2904 dasm_put(Dst, 10286);
2900 break; 2905 break;
2901 2906
2902 case BC_JLOOP: 2907 case BC_JLOOP:
2903#if LJ_HASJIT 2908#if LJ_HASJIT
2904 dasm_put(Dst, 15634, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2909 dasm_put(Dst, 15722, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2905#endif 2910#endif
2906 break; 2911 break;
2907 2912
2908 case BC_JMP: 2913 case BC_JMP:
2909 dasm_put(Dst, 15675, -BCBIAS_J*4); 2914 dasm_put(Dst, 15763, -BCBIAS_J*4);
2910 break; 2915 break;
2911 2916
2912 /* -- Function headers -------------------------------------------------- */ 2917 /* -- Function headers -------------------------------------------------- */
@@ -2920,7 +2925,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2920 2925
2921 case BC_FUNCF: 2926 case BC_FUNCF:
2922#if LJ_HASJIT 2927#if LJ_HASJIT
2923 dasm_put(Dst, 15701, HOTCOUNT_PCMASK, GG_DISP2HOT); 2928 dasm_put(Dst, 15789, HOTCOUNT_PCMASK, GG_DISP2HOT);
2924#endif 2929#endif
2925 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2930 case BC_FUNCV: /* NYI: compiled vararg functions. */
2926 break; 2931 break;
@@ -2930,47 +2935,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2930 break; 2935 break;
2931#endif 2936#endif
2932 case BC_IFUNCF: 2937 case BC_IFUNCF:
2933 dasm_put(Dst, 15722, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2938 dasm_put(Dst, 15810, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2934 if (op == BC_JFUNCF) { 2939 if (op == BC_JFUNCF) {
2935 dasm_put(Dst, 15753, BC_JLOOP); 2940 dasm_put(Dst, 15841, BC_JLOOP);
2936 } else { 2941 } else {
2937 dasm_put(Dst, 10198); 2942 dasm_put(Dst, 10286);
2938 } 2943 }
2939 dasm_put(Dst, 15762, LJ_TNIL); 2944 dasm_put(Dst, 15850, LJ_TNIL);
2940 break; 2945 break;
2941 2946
2942 case BC_JFUNCV: 2947 case BC_JFUNCV:
2943#if !LJ_HASJIT 2948#if !LJ_HASJIT
2944 break; 2949 break;
2945#endif 2950#endif
2946 dasm_put(Dst, 9305); 2951 dasm_put(Dst, 9393);
2947 break; /* NYI: compiled vararg functions. */ 2952 break; /* NYI: compiled vararg functions. */
2948 2953
2949 case BC_IFUNCV: 2954 case BC_IFUNCV:
2950 dasm_put(Dst, 15784, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2955 dasm_put(Dst, 15872, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2951 if (op == BC_JFUNCV) { 2956 if (op == BC_JFUNCV) {
2952 dasm_put(Dst, 15753, BC_JLOOP); 2957 dasm_put(Dst, 15841, BC_JLOOP);
2953 } else { 2958 } else {
2954 dasm_put(Dst, 15881, -4+PC2PROTO(k)); 2959 dasm_put(Dst, 15969, -4+PC2PROTO(k));
2955 } 2960 }
2956 dasm_put(Dst, 15906, LJ_TNIL); 2961 dasm_put(Dst, 15994, LJ_TNIL);
2957 break; 2962 break;
2958 2963
2959 case BC_FUNCC: 2964 case BC_FUNCC:
2960 case BC_FUNCCW: 2965 case BC_FUNCCW:
2961 dasm_put(Dst, 15928, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2966 dasm_put(Dst, 16016, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2962 if (op == BC_FUNCC) { 2967 if (op == BC_FUNCC) {
2963 dasm_put(Dst, 2404); 2968 dasm_put(Dst, 2404);
2964 } else { 2969 } else {
2965 dasm_put(Dst, 15958); 2970 dasm_put(Dst, 16046);
2966 } 2971 }
2967 dasm_put(Dst, 15966, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2972 dasm_put(Dst, 16054, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2968 if (op == BC_FUNCC) { 2973 if (op == BC_FUNCC) {
2969 dasm_put(Dst, 15976); 2974 dasm_put(Dst, 16064);
2970 } else { 2975 } else {
2971 dasm_put(Dst, 15981, DISPATCH_GL(wrapf)); 2976 dasm_put(Dst, 16069, DISPATCH_GL(wrapf));
2972 } 2977 }
2973 dasm_put(Dst, 15987, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2978 dasm_put(Dst, 16075, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2974 break; 2979 break;
2975 2980
2976 /* ---------------------------------------------------------------------- */ 2981 /* ---------------------------------------------------------------------- */
@@ -2998,7 +3003,7 @@ static int build_backend(BuildCtx *ctx)
2998 3003
2999 build_subroutines(ctx, cmov, sse); 3004 build_subroutines(ctx, cmov, sse);
3000 3005
3001 dasm_put(Dst, 16013); 3006 dasm_put(Dst, 16101);
3002 for (op = 0; op < BC__MAX; op++) 3007 for (op = 0; op < BC__MAX; op++)
3003 build_ins(ctx, (BCOp)op, op, cmov, sse); 3008 build_ins(ctx, (BCOp)op, op, cmov, sse);
3004 3009