diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h index 1a0cc248..b22c68a1 100644 --- a/src/buildvm_x64.h +++ b/src/buildvm_x64.h @@ -12,7 +12,7 @@ #define DASM_SECTION_CODE_OP 0 #define DASM_SECTION_CODE_SUB 1 #define DASM_MAXSECTION 2 -static const unsigned char build_actionlist[14087] = { +static const unsigned char build_actionlist[14093] = { 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, @@ -163,537 +163,537 @@ static const unsigned char build_actionlist[14087] = { 193,252,248,252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252, 233,244,14,248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233, 139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,68,137, - 185,233,137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4,248,77, - 139,106,252,248,139,173,233,139,90,252,252,137,92,36,28,137,44,36,72,131, - 189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15, - 132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252,248,59,157,233, - 15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149,233,141,108,194, - 252,240,72,41,221,57,203,15,132,244,249,248,2,255,139,68,43,4,137,67,252, - 252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206, - 139,60,36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149,233, - 129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233, - 68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15, - 135,244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, - 4,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,28, - 137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,14,248,8,137, - 222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252, - 239,232,251,1,0,139,149,233,252,233,244,4,248,78,139,108,36,24,72,252,247, - 133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233, - 49,192,72,137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90, - 252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15, - 110,200,15,84,193,248,63,139,90,252,252,252,242,15,17,66,252,248,255,248, - 79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217, - 225,248,63,248,64,139,90,252,252,221,90,252,248,255,248,58,184,237,248,69, - 137,68,36,4,248,56,252,247,195,237,15,133,244,253,248,5,56,67,252,255,15, - 135,244,252,15,182,75,252,253,72,252,247,209,141,20,202,139,3,15,182,204, - 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,199,68,194,252, - 244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255, - 252,255,252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253, - 4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239, - 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82, - 252,233,244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252, - 233,244,64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,221,2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130, - 244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255, - 248,85,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217, - 252,237,221,2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233, - 244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135, - 244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90, - 129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217, - 252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4, - 239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252, - 248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216, - 200,217,232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200, - 217,232,222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129, - 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232, - 217,252,243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122, - 253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252, - 234,252,233,244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4, - 239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252, - 233,244,63,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15, - 135,244,55,252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244, - 63,248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244, - 63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, - 55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248, - 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135, - 244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239, - 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135, - 244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252, - 248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90,252, - 252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252, - 255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0, - 32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255, - 137,44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129, - 205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184, - 237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252, - 233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205, - 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90, - 216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233, - 244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,122, - 253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129,252, - 253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,15,92, - 224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,104, - 220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232, - 15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137, - 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217, - 201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4, - 239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217, - 252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252, + 185,233,137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,233,244, + 4,248,77,139,106,252,248,139,173,233,139,90,252,252,137,92,36,28,137,44,36, + 72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141, + 233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252,248,59,157, + 233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149,233,141,108, + 194,252,240,72,41,221,57,203,15,132,244,249,248,2,255,139,68,43,4,137,67, + 252,252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137, + 206,139,60,36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149, + 233,129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139, + 233,68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233, + 15,135,244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68, + 41,4,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36, + 28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,14,248,8, + 137,222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,137,222,137, + 252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,78,139,108,36, + 24,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248, + 137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233,244,16,255, + 248,64,139,90,252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,184,237, + 237,102,72,15,110,200,15,84,193,248,63,139,90,252,252,252,242,15,17,66,252, + 248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, + 55,221,2,217,225,248,63,248,64,139,90,252,252,221,90,252,248,255,248,58,184, + 237,248,69,137,68,36,4,248,56,252,247,195,237,15,133,244,253,248,5,56,67, + 252,255,15,135,244,252,15,182,75,252,253,72,252,247,209,141,20,202,139,3, + 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,199, + 68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248,252,255, + 252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252, + 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232, + 244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253, + 4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80, + 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252, + 250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244, + 64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, + 55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252,248,239,15, + 130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252,241, + 252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4,239, + 15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130, + 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248, + 90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221, + 2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129, + 252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192, + 216,200,217,232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129, + 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216, + 200,217,232,222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94, + 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217, + 232,217,252,243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137, + 252,234,252,233,244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253, + 4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234, + 252,233,244,63,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233, + 244,63,248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233, + 244,63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, + 244,55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252, 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, - 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244, - 63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, - 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244, - 64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, - 55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252, - 234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15, - 93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197, - 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16, - 76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221, - 216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,253, - 4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219, - 133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,122, - 253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244,72, - 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36, - 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232, - 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55, - 255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,4, - 255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68, - 36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8, - 72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252, - 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65, - 59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252, - 255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239, - 255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1, - 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137, - 108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68,36,4,57,197,15,130, - 244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244, - 115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113, - 248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244, - 2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0, - 0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15, - 130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255, - 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255, - 252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142, - 244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130, - 244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197, - 1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248, - 239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244, - 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132, - 244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8, - 65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133, - 244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130, - 244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122, - 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119, - 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1, - 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248, - 131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92, - 36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174, - 233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133, - 244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92, - 36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252, - 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248, - 2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113, - 248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137, - 213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63, - 255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, - 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15, - 126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130, - 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102, - 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194, - 252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255, - 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252, - 233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15, + 15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255, + 15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129, + 252,248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90, + 252,252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224, + 252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253, + 0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197, + 255,137,44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128, + 129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255, + 184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238, + 252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110, + 205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128, + 90,216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252, + 233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15, + 135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129, + 252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242, + 15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232, + 244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106, + 4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0, + 0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217, + 252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221, + 2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248, + 106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, + 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252, + 233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15, + 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252, + 233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15, + 135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124, + 253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252, + 242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130, + 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1, + 57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242, + 15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248, + 5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255, + 219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129, + 122,253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244, + 72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219, + 4,36,252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247, + 232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244, + 55,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36, + 4,255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199, + 68,36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36, + 8,72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252, + 252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233, + 65,59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255, + 252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253, + 20,239,255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255, + 248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139, + 42,137,108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68,36,4,57,197, + 15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15, + 140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233, + 244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252, + 233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8, + 185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248, + 239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66, + 248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55, + 139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133, + 192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134, + 233,15,130,244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77, + 0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118, + 129,252,248,239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244, + 247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133, + 192,15,132,244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137, + 68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3, + 15,133,244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239, + 15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248, + 1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15, + 130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244, + 249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135, + 244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216, + 139,92,36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65, + 139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239, + 15,133,244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239, + 137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5, + 0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252, + 241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252, + 233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133, + 244,55,137,213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252, + 233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88, - 193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9, - 205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, - 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102, - 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255, - 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, - 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126, - 197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15, - 110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252, - 242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248, - 131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, + 193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189, + 237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36, + 4,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135, + 244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131, + 232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253, + 4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252, + 242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15, + 126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15, + 88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, + 49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, + 244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193, + 102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15, + 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237, + 102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248, + 125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244, + 55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, + 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72, + 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200, + 102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248, + 132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237, 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126, - 197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, - 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15, - 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15, - 126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239, - 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, - 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252, - 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255, - 211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244, + 197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129, + 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12, + 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72, + 15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102, + 15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135, + 244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213, + 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, + 255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15,130,244, 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242, 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88, - 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137, - 193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253, - 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252, - 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242, - 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233, - 244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36, - 24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233, - 137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255, - 144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209,193, - 252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,157,233,139, - 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209, - 252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252, - 234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27, - 248,5,190,237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248, - 66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194, - 252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208, - 193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233, - 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252, - 255,142,233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133, - 244,251,252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251, - 168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244, - 251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20, - 248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183, - 67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137, - 76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133, - 233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233, - 73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92, - 36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248, - 139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199, - 68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233, - 41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143, - 255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82, - 81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252, - 240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137, - 142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252, - 242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224, - 252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252, - 242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15, - 17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144, - 252,242,15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73, - 137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233, - 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149, - 233,139,153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139, - 108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248, - 69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139, - 3,15,182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248, - 139,68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137, - 198,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102, - 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252, - 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208, - 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15, - 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202, - 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242, - 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184, - 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217, - 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15, - 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46, - 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, - 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84, - 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68, - 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252, - 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208, - 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15, - 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72, - 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242, - 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242, - 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, - 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242, - 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208, - 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15, - 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15, - 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36, - 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, - 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84, - 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248, - 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217, - 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, - 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208, - 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142, - 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, - 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, - 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, - 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237, - 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252, - 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195, - 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15, - 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12, - 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15, - 17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192, - 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, - 217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237, - 102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2, - 72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110, - 208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208, - 48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4, - 102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133, - 192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15, - 132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192, - 195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15, - 135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255, - 252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252, - 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241, - 252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252, - 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244, - 253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233, - 244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68, - 36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82, - 15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195, - 248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244, - 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217, - 201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248, - 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255, - 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216, - 195,255,248,9,204,255,248,154,255,131,252,255,1,15,132,244,247,15,135,244, - 248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3, - 15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193, - 195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132, - 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195, - 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9, - 15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221, - 68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36, - 252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217, - 252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242, - 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221, - 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193, - 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248, - 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132, - 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195, - 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248, - 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, - 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, - 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, - 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, - 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6, - 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41, - 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102, - 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255, - 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15, - 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131, - 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252, - 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15, - 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133, - 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141, - 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248, - 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12, - 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233, - 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237, - 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253, - 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253, - 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221, - 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194, - 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137, - 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233, - 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, - 238,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204, - 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129, - 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131, - 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244, - 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252, - 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239, - 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242, - 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182, - 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239, - 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, - 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, - 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242, - 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239, - 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221, - 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253, - 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, - 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199, - 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92, - 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252, - 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234, - 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15, - 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252, - 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, - 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52, - 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220, - 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252, - 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221, - 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234, - 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, - 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244, - 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233, - 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25, - 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,139, - 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182, - 232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139, - 4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193, - 232,16,65,252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15, - 17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242, - 15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139, - 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141, - 76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57, - 193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, - 255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69, - 4,139,109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4, - 193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233, - 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132, - 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182, - 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252, - 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213, - 65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247, - 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199, - 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182, - 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235, - 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232, - 251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15, - 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, - 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137, - 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, - 255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149, - 233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204, - 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208, - 139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92, - 36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, - 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, - 139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131, - 244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15, - 132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15,182,75, - 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4, - 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137, - 252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139, - 108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244, - 249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252, - 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193, - 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252, - 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173, - 233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173, - 233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253, - 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244, - 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46, - 193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120, - 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139, - 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2, - 131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36, - 15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244, - 36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208, - 65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157, - 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133, - 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182, - 67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182, - 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67, - 252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248, - 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233, - 244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, - 35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253, - 4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3, - 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131, - 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,35,255, - 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44, - 252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233, - 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1, - 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104, - 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, - 238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235, - 15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239, - 15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142, - 233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182, - 252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239, - 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, - 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, - 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, - 133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137, - 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, - 248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235, - 15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244, - 1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, - 248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72, - 141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,149,233,139, - 108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137, - 174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253, - 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224, - 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15, - 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204, - 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0, - 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75, - 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233, - 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,199, - 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2, - 139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,251, - 68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,41,65,137,47,139,105,4, - 131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60, - 36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, - 248,5,139,124,36,24,137,151,233,137,252,238,137,194,137,252,253,137,92,36, - 28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,244,1,248,7,255,128, - 165,233,235,65,139,134,233,65,137,174,233,137,133,233,252,233,244,2,255,3, - 68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137, - 90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252, - 255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,129,121,253,252, - 252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237,15,133,244,253, - 248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,248,2,139,41,65, - 137,47,139,105,4,65,137,111,4,65,131,199,8,131,193,8,131,232,1,15,133,244, - 2,139,106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,244,251,248,4,139, + 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137, + 193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55, + 139,108,36,24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248, + 141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252, + 239,252,255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233, + 41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139, 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238, - 248,5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,252,247,209,141, - 12,202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,233,244,4,248, - 7,129,252,235,239,252,247,195,237,15,133,244,254,41,218,65,137,215,139,90, - 252,252,252,233,244,1,248,8,129,195,239,252,233,244,1,255,141,76,202,8,139, - 105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,137, - 105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129, - 252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139, - 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,15,182,252, - 236,15,182,192,68,137,60,36,68,141,188,253,194,233,141,12,202,68,43,122,252, - 252,133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215,15,131,244, - 248,248,1,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4, - 131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,199,65,4, - 237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204, - 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1, - 0,0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1, - 137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255,65,139, - 71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,65,57, - 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28, - 65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233, - 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252, - 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232, - 1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,248,65,139,108,15,4,65, - 137,111,252,252,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15, - 182,107,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252, - 252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255, - 15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191, - 233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, - 255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194, - 252,244,237,255,131,192,1,252,233,244,5,248,7,141,171,233,252,247,197,237, - 15,133,244,14,41,252,234,255,1,252,233,255,137,221,209,252,237,129,229,239, - 102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253, - 4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129, - 252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252, - 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244, - 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220, - 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244, - 247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253, - 131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244, - 248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12, - 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137, - 105,252,248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137, - 65,252,248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,24,65,137, - 150,233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252, - 255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193, - 232,16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,239,102,65,131, - 172,253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,36,24,141,12,202, - 59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15, - 183,67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57, - 200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,252, - 248,137,104,252,252,68,137,120,252,248,139,108,36,24,141,12,200,59,141,233, - 15,135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,248, - 1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121, - 252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244, - 1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232, - 16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15, - 133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,24, - 141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137, - 252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,237, - 255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,149, - 233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,254, - 0 + 248,2,137,209,252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247, + 213,141,20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234, + 252,233,244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233,49,192,252, + 233,244,1,248,66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233, + 255,141,68,194,252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139, + 133,233,41,208,193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65, + 15,182,134,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132, + 244,247,65,252,255,142,233,252,233,244,247,255,248,137,65,15,182,134,233, + 168,235,15,133,244,251,252,233,244,247,248,138,65,15,182,134,233,168,235, + 15,133,244,251,168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168, + 235,15,132,244,251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239, + 232,251,1,20,248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252, + 252,15,183,67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139, + 77,232,137,76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233, + 15,182,133,233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65, + 141,190,233,73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248, + 141,137,92,36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68, + 194,252,248,139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232, + 251,1,22,199,68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137, + 193,139,133,233,41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252, + 255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108, + 36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248, + 76,137,117,252,240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137, + 134,233,65,137,142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17, + 125,252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242, + 68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242, + 68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,15, + 17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152, + 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,65,139,174, + 233,65,139,150,233,73,137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137, + 230,65,141,190,233,232,251,1,23,72,139,141,233,72,129,225,239,72,137,204, + 137,169,233,139,149,233,139,153,233,252,233,244,247,255,248,144,255,72,131, + 196,16,248,1,76,139,108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36, + 4,68,139,122,252,248,69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0, + 65,199,134,233,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,129,252, + 253,239,15,130,244,248,139,68,36,4,248,2,65,252,255,36,252,238,248,3,252, + 247,216,137,252,239,137,198,232,251,1,24,255,248,82,255,217,124,36,4,137, + 68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6, + 217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72,184, + 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102, + 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252, + 242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194, + 193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217, + 124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102, + 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248, + 146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15, + 40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15, + 88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252, + 242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248, + 104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36, + 6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,72,184, + 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102, + 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15, + 88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194, + 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248, + 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184, + 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244, + 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184, + 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92, + 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89, + 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4, + 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, + 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252, + 234,222,201,248,149,217,84,36,252,248,129,124,36,252,248,0,0,128,127,15,132, + 244,247,129,124,36,252,248,0,0,128,252,255,15,132,244,248,248,150,217,192, + 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, + 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242, + 15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, + 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, + 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, + 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, + 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, + 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, + 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, + 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, + 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, + 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, + 36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,36,252,248, + 217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222, + 193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,252,248,195, + 248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40, + 193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184, + 237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87, + 192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72, + 15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248, + 5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,131,252,255, + 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, + 252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248, + 131,252,255,5,15,135,244,248,15,132,244,247,232,244,88,252,233,244,253,248, + 1,232,244,149,255,252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135, + 244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,217,232,217, + 201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135, + 244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,255,217,252, + 254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, + 252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248, + 252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255, + 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, + 217,252,250,195,248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252, + 255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248, + 1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255, + 15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195, + 248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1, + 217,252,242,221,216,195,255,248,9,204,255,248,154,255,131,252,255,1,15,132, + 244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195, + 248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248, + 1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,148,15,132,244,107, + 131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,72,15, + 110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195, + 248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,242,15, + 17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,217,252, + 243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,217,201, + 217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,247,15, + 135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255, + 139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135, + 244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244, + 247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5, + 15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248, + 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, + 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, + 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, + 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, + 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, + 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155, + 137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,129,124, + 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, + 15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,4,255, + 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, + 131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15, + 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108, + 194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135, + 244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255, + 15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1, + 15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,252,254,141, + 156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, + 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, + 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, + 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208, + 131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202,65,59,12,135,255, + 131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242,65,15,16,4,199, + 102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247,208,131,195,4,57, + 68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255,15,131,244,247,255, + 15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,67,252, + 254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, + 16,65,252,255,36,252,238,255,139,108,194,4,139,4,194,137,108,202,4,137,4, + 202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, + 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182, + 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,129,124,253, + 194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15, + 110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255, + 129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42, + 128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139, + 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2, + 129,124,253,194,4,239,15,133,244,50,139,60,194,137,213,232,251,1,18,255,252, + 242,15,42,192,137,252,234,255,15,182,75,252,253,252,233,244,1,255,15,182, + 252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242, + 15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,255, + 129,124,253,252,234,4,239,15,135,244,47,255,252,242,65,15,16,4,199,252,242, + 15,88,4,252,234,255,65,221,4,199,220,4,252,234,255,129,124,253,252,234,4, + 239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4, + 252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16, + 4,252,234,252,242,65,15,92,4,199,255,221,4,252,234,65,220,36,199,255,252, + 242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221,4,199,220,36,252,234, + 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36, + 194,255,252,242,15,16,4,252,234,252,242,65,15,89,4,199,255,221,4,252,234, + 65,220,12,199,255,252,242,65,15,16,4,199,252,242,15,89,4,252,234,255,65,221, + 4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255, + 221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,65,15,94,4,199, + 255,221,4,252,234,65,220,52,199,255,252,242,65,15,16,4,199,252,242,15,94, + 4,252,234,255,65,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252, + 242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234, + 252,242,65,15,16,12,199,255,221,4,252,234,65,221,4,199,255,252,242,65,15, + 16,4,199,252,242,15,16,12,252,234,255,65,221,4,199,221,4,252,234,255,252, + 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255, + 248,156,232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236, + 15,182,192,139,124,36,24,137,151,233,141,52,194,137,194,41,252,234,248,33, + 137,252,253,137,92,36,28,232,251,1,25,139,149,233,133,192,15,133,244,42,15, + 182,107,252,255,15,182,75,252,253,139,68,252,234,4,139,44,252,234,137,68, + 202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, + 255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202, + 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, + 15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28, + 202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28, + 202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4, + 193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137, + 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15, + 182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139, + 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139, + 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139, + 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139, + 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244, + 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, + 252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235, + 15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,26,137,252, + 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233, + 65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244, + 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, + 252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1, + 137,213,137,198,65,141,190,233,232,251,1,26,137,252,234,252,233,244,1,255, + 139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141, + 233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139, + 172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195, + 4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,24, + 131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1, + 27,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, + 252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,139,82,252, + 248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,28,139,149,233,15,182, + 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, + 4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137,149,233,65,139,142, + 233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137,194,37,252,255,7, + 0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,239,137, + 198,232,251,1,29,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, + 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, + 3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251,1,30,15,183,67,252, + 254,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,233,137,92, + 36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252, + 239,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, + 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, + 3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,247,208,252,233,244,2, + 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157, + 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158, + 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139, + 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, + 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233, + 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, + 139,40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195, + 4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141, + 233,252,246,129,233,235,15,132,244,36,15,182,75,252,253,252,233,244,1,248, + 5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15, + 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4, + 239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239, + 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250, + 129,121,253,4,239,15,132,244,251,15,182,67,252,253,139,41,139,73,4,137,44, + 194,248,2,255,137,76,194,4,139,3,15,182,204,15,182,232,131,195,4,193,232, + 16,65,252,255,36,252,238,248,3,15,182,67,252,253,185,237,252,233,244,2,248, + 4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3, + 252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182, + 192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15, + 131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139, + 40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4, + 193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,1,139,141, + 233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124, + 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135, + 244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129, + 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, + 2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,15,182,232,131, + 195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139, + 141,233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244, + 1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248, + 7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252, + 253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135, + 129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233, + 35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133, + 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2, + 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,139,108,194, + 4,139,4,194,137,105,4,137,1,139,3,15,182,204,15,182,232,131,195,4,193,232, + 16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141, + 233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137, + 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129, + 233,235,15,132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124, + 36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251, + 1,32,139,149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235, + 65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236, + 15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133, + 233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248, + 1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104, + 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, + 238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235, + 15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139, + 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68, + 137,60,36,69,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233, + 235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248, + 59,133,233,15,135,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139, + 41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133, + 244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16, + 65,252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194, + 137,252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233, + 244,1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233, + 252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244, + 51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205, + 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248, + 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237, + 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249, + 248,2,139,41,65,137,47,139,105,4,65,137,111,4,65,131,199,8,131,193,8,131, + 232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,128,189,233,1,15,135, + 244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252, + 255,36,252,238,248,5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72, + 252,247,209,141,12,202,68,139,121,252,248,69,139,191,233,69,139,191,233,252, + 233,244,4,248,7,129,252,235,239,252,247,195,237,15,133,244,254,41,218,65, + 137,215,139,90,252,252,252,233,244,1,248,8,129,195,239,252,233,244,1,255, + 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139, + 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137, + 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139, + 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238, + 255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253,194,233,141,12, + 202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248, + 65,57,215,15,131,244,248,248,1,65,139,71,252,248,137,1,65,139,71,252,252, + 65,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130, + 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60, + 36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, + 248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137,197,193, + 252,237,3,131,197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244, + 253,248,6,255,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,8,137, + 65,4,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137, + 141,233,137,92,36,28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232, + 251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,255, + 248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,13, + 65,137,215,131,232,1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,248, + 65,139,108,15,4,65,137,111,252,252,65,131,199,8,131,232,1,15,133,244,2,248, + 3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,139,108, + 10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,15, + 135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252, + 248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193, + 232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8, + 255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,171,233, + 252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,221,209,252, + 237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202, + 255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255, + 139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242, + 15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244, + 249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221, + 65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255, + 221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131, + 244,248,141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15, + 131,245,255,15,130,244,248,141,156,253,131,233,255,248,3,102,15,46,193,252, + 233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137, + 105,252,252,139,41,137,105,252,248,252,233,245,255,141,156,253,131,233,139, + 1,137,105,252,252,137,65,252,248,255,65,139,142,233,139,4,129,72,139,128, + 233,139,108,36,24,65,137,150,233,65,137,174,233,76,137,36,36,76,137,108,36, + 8,72,131,252,236,16,252,255,224,255,141,156,253,131,233,139,3,15,182,204, + 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,137,221,209,252, + 237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,142,255,68,139,187, + 233,139,108,36,24,141,12,202,59,141,233,15,135,244,23,15,182,139,233,57,200, + 15,134,244,249,248,2,255,15,183,67,252,254,252,233,245,255,248,3,199,68,194, + 252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237, + 141,4,194,68,139,122,252,248,137,104,252,252,68,137,120,252,248,139,108,36, + 24,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,171,233,133, + 252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,68,139,121,252, + 248,68,137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237, + 131,252,237,1,15,133,244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182, + 232,131,195,4,193,232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131, + 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139, + 189,233,139,108,36,24,141,68,194,252,248,137,149,233,141,136,233,59,141,233, + 137,133,233,255,137,252,239,255,76,137,252,254,137,252,239,255,15,135,244, + 21,65,199,134,233,237,255,65,252,255,215,255,65,252,255,150,233,255,65,199, + 134,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252, + 233,244,12,255,254,0 }; enum { @@ -1119,313 +1119,313 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) dasm_put(Dst, 2841, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); dasm_put(Dst, 2934, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); dasm_put(Dst, 3054, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); - dasm_put(Dst, 3150, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); - dasm_put(Dst, 3216, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); - dasm_put(Dst, 3311, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); - dasm_put(Dst, 3423, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); + dasm_put(Dst, 3153, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 3219, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); + dasm_put(Dst, 3314, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); + dasm_put(Dst, 3429, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); if (sse) { - dasm_put(Dst, 3450, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); + dasm_put(Dst, 3456, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 3514, 1+1, LJ_TISNUM); + dasm_put(Dst, 3520, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3550, 1+1, FRAME_TYPE, LJ_TNIL); + dasm_put(Dst, 3556, 1+1, FRAME_TYPE, LJ_TNIL); if (sse) { - dasm_put(Dst, 3645, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3707, 1+1, LJ_TISNUM); + dasm_put(Dst, 3651, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3713, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 3737, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3796, 1+1, LJ_TISNUM); + dasm_put(Dst, 3743, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3802, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3823, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3892, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3949, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 4012, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 4102); + dasm_put(Dst, 3829, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3898, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3955, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 4018, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 4108); if (sse) { - dasm_put(Dst, 4114, 1+1, LJ_TISNUM); + dasm_put(Dst, 4120, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4139); + dasm_put(Dst, 4145); if (sse) { - dasm_put(Dst, 4153, 1+1, LJ_TISNUM); + dasm_put(Dst, 4159, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4178); + dasm_put(Dst, 4184); if (sse) { - dasm_put(Dst, 4192, 1+1, LJ_TISNUM); + dasm_put(Dst, 4198, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4217); + dasm_put(Dst, 4223); if (sse) { - dasm_put(Dst, 4233, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4239, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } else { - dasm_put(Dst, 4272, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4278, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } - dasm_put(Dst, 4305, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); - dasm_put(Dst, 4370, 1+1, LJ_TISNUM); + dasm_put(Dst, 4311, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4376, 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4469); - } else { dasm_put(Dst, 4475); - } - dasm_put(Dst, 4482); - if (sse) { - dasm_put(Dst, 4507); } else { + dasm_put(Dst, 4481); + } + dasm_put(Dst, 4488); + if (sse) { dasm_put(Dst, 4513); - } - dasm_put(Dst, 4516, 1+2); - if (sse) { - dasm_put(Dst, 4525); } else { - dasm_put(Dst, 4533); + dasm_put(Dst, 4519); } - dasm_put(Dst, 4541); + dasm_put(Dst, 4522, 1+2); if (sse) { - dasm_put(Dst, 4544, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); + dasm_put(Dst, 4531); } else { - dasm_put(Dst, 4571); + dasm_put(Dst, 4539); } - dasm_put(Dst, 4588); + dasm_put(Dst, 4547); if (sse) { - dasm_put(Dst, 4604, 1+1, LJ_TISNUM); + dasm_put(Dst, 4550, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); } else { - dasm_put(Dst, 4629, 1+1, LJ_TISNUM); + dasm_put(Dst, 4577); } - dasm_put(Dst, 4651); + dasm_put(Dst, 4594); if (sse) { - dasm_put(Dst, 4673); + dasm_put(Dst, 4610, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4699); + dasm_put(Dst, 4635, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4716, 1+2); + dasm_put(Dst, 4657); if (sse) { - dasm_put(Dst, 4756); + dasm_put(Dst, 4679); } else { - dasm_put(Dst, 4764); + dasm_put(Dst, 4705); } - dasm_put(Dst, 4774, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4722, 1+2); if (sse) { - dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4762); } else { - dasm_put(Dst, 4873, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4770); + } + dasm_put(Dst, 4780, 2+1, LJ_TISNUM, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 4832, 2+1, LJ_TISNUM, LJ_TISNUM); + } else { + dasm_put(Dst, 4879, 2+1, LJ_TISNUM, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 4914, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4920, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (sse) { - dasm_put(Dst, 4985, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4991, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (!sse) { - dasm_put(Dst, 5056); + dasm_put(Dst, 5062); } - dasm_put(Dst, 5065, 1+1, LJ_TSTR); + dasm_put(Dst, 5071, 1+1, LJ_TSTR); if (sse) { - dasm_put(Dst, 5087, Dt5(->len)); + dasm_put(Dst, 5093, Dt5(->len)); } else { - dasm_put(Dst, 5098, Dt5(->len)); + dasm_put(Dst, 5104, Dt5(->len)); } - dasm_put(Dst, 5106, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); + dasm_put(Dst, 5112, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); if (sse) { - dasm_put(Dst, 5144); + dasm_put(Dst, 5150); } else { - dasm_put(Dst, 5154); + dasm_put(Dst, 5160); } - dasm_put(Dst, 5165, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); + dasm_put(Dst, 5171, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5202); + dasm_put(Dst, 5208); } else { - dasm_put(Dst, 5224); + dasm_put(Dst, 5230); } - dasm_put(Dst, 5244, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); + dasm_put(Dst, 5250, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); dasm_put(Dst, 2189); if (sse) { - dasm_put(Dst, 5353); + dasm_put(Dst, 5359); } else { - dasm_put(Dst, 5364); + dasm_put(Dst, 5370); } - dasm_put(Dst, 5372, LJ_TSTR, LJ_TISNUM, Dt5(->len)); + dasm_put(Dst, 5378, LJ_TSTR, LJ_TISNUM, Dt5(->len)); if (sse) { - dasm_put(Dst, 5402); + dasm_put(Dst, 5408); } else { } - dasm_put(Dst, 5409, sizeof(GCstr)-1); - dasm_put(Dst, 5484, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); - dasm_put(Dst, 5545, LJ_TSTR, LJ_TISNUM); + dasm_put(Dst, 5415, sizeof(GCstr)-1); + dasm_put(Dst, 5490, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 5551, LJ_TSTR, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5566); + dasm_put(Dst, 5572); } else { - dasm_put(Dst, 5573); + dasm_put(Dst, 5579); } - dasm_put(Dst, 5585, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); - dasm_put(Dst, 5653, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); - dasm_put(Dst, 5720, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); - dasm_put(Dst, 5793, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); - dasm_put(Dst, 5878, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); - dasm_put(Dst, 5952, 1+1, LJ_TTAB); + dasm_put(Dst, 5591, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5659, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); + dasm_put(Dst, 5726, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); + dasm_put(Dst, 5799, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5884, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); + dasm_put(Dst, 5958, 1+1, LJ_TTAB); if (sse) { - dasm_put(Dst, 6019); + dasm_put(Dst, 6025); } else { } if (sse) { - dasm_put(Dst, 6029, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6035, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } if (sse) { - dasm_put(Dst, 6081, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6087, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6124, LJ_TISNUM); + dasm_put(Dst, 6130, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6151); + dasm_put(Dst, 6157); } else { } - dasm_put(Dst, 6168); + dasm_put(Dst, 6174); if (sse) { - dasm_put(Dst, 6176, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6182, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6124, LJ_TISNUM); + dasm_put(Dst, 6130, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6219); + dasm_put(Dst, 6225); } else { } - dasm_put(Dst, 6168); + dasm_put(Dst, 6174); if (sse) { - dasm_put(Dst, 6236, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6242, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6124, LJ_TISNUM); + dasm_put(Dst, 6130, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6279); + dasm_put(Dst, 6285); } else { } - dasm_put(Dst, 6168); + dasm_put(Dst, 6174); if (sse) { - dasm_put(Dst, 6296, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6302, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6339); + dasm_put(Dst, 6345); if (sse) { - dasm_put(Dst, 6346, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6352, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6389); + dasm_put(Dst, 6395); if (sse) { - dasm_put(Dst, 6393); + dasm_put(Dst, 6399); } else { } - dasm_put(Dst, 6405); + dasm_put(Dst, 6411); if (sse) { - dasm_put(Dst, 6416, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6422, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6485); + dasm_put(Dst, 6491); if (sse) { - dasm_put(Dst, 6494, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6500, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6563); + dasm_put(Dst, 6569); if (sse) { - dasm_put(Dst, 6573, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6579, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6642); + dasm_put(Dst, 6648); if (sse) { - dasm_put(Dst, 6652, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6658, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6721); + dasm_put(Dst, 6727); if (sse) { - dasm_put(Dst, 6730, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6736, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6799, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); - dasm_put(Dst, 6877, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); - dasm_put(Dst, 7004, Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 6805, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); + dasm_put(Dst, 6883, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 7010, Dt1(->top), Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7043, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); + dasm_put(Dst, 7049, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); #endif - dasm_put(Dst, 7076, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); - dasm_put(Dst, 7130, Dt1(->base), Dt1(->base), GG_DISP2STATIC); + dasm_put(Dst, 7082, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); + dasm_put(Dst, 7136, Dt1(->base), Dt1(->base), GG_DISP2STATIC); #if LJ_HASJIT - dasm_put(Dst, 7197, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); + dasm_put(Dst, 7203, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); #endif - dasm_put(Dst, 7244); + dasm_put(Dst, 7250); #if LJ_HASJIT - dasm_put(Dst, 7071); + dasm_put(Dst, 7077); #endif - dasm_put(Dst, 7251); + dasm_put(Dst, 7257); #if LJ_HASJIT - dasm_put(Dst, 7254); + dasm_put(Dst, 7260); #endif - dasm_put(Dst, 7264, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7270, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7297); + dasm_put(Dst, 7303); #endif - dasm_put(Dst, 7302, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7308, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7333, 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); + dasm_put(Dst, 7339, 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); #endif - dasm_put(Dst, 7572); + dasm_put(Dst, 7578); #if LJ_HASJIT - dasm_put(Dst, 7575, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); + dasm_put(Dst, 7581, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); #endif - dasm_put(Dst, 7675); + dasm_put(Dst, 7681); if (!sse) { - dasm_put(Dst, 7678); + dasm_put(Dst, 7684); } - dasm_put(Dst, 7723, (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)); + dasm_put(Dst, 7729, (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)); if (!sse) { - dasm_put(Dst, 7809); + dasm_put(Dst, 7815); } - dasm_put(Dst, 7854, (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)); + dasm_put(Dst, 7860, (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)); if (!sse) { - dasm_put(Dst, 7940); + dasm_put(Dst, 7946); } - dasm_put(Dst, 7979, (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)); + dasm_put(Dst, 7985, (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)); if (sse) { - dasm_put(Dst, 8068, (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)); + dasm_put(Dst, 8074, (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)); } else { - dasm_put(Dst, 8182); + dasm_put(Dst, 8188); } - dasm_put(Dst, 8229); + dasm_put(Dst, 8235); if (!sse) { } else { - dasm_put(Dst, 8306); + dasm_put(Dst, 8312); } - dasm_put(Dst, 8309); - dasm_put(Dst, 8394, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); - dasm_put(Dst, 8495, (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)); - dasm_put(Dst, 8669); + dasm_put(Dst, 8315); + dasm_put(Dst, 8400, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); + dasm_put(Dst, 8501, (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)); + dasm_put(Dst, 8675); #if LJ_HASJIT if (sse) { - dasm_put(Dst, 8710); - dasm_put(Dst, 8780); - dasm_put(Dst, 8852); + dasm_put(Dst, 8716); + dasm_put(Dst, 8786); + dasm_put(Dst, 8858); } else { - dasm_put(Dst, 8904); - dasm_put(Dst, 8996); + dasm_put(Dst, 8910); + dasm_put(Dst, 9002); } - dasm_put(Dst, 9042); + dasm_put(Dst, 9048); #endif - dasm_put(Dst, 9046); + dasm_put(Dst, 9052); if (sse) { - dasm_put(Dst, 9049, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); - dasm_put(Dst, 9134, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); + dasm_put(Dst, 9055, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); + dasm_put(Dst, 9140, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 9262); - dasm_put(Dst, 9345); + dasm_put(Dst, 9268); + dasm_put(Dst, 9351); if (cmov) { - dasm_put(Dst, 9400); + dasm_put(Dst, 9406); } else { - dasm_put(Dst, 9419); + dasm_put(Dst, 9425); } - dasm_put(Dst, 9042); + dasm_put(Dst, 9048); } - dasm_put(Dst, 9460); + dasm_put(Dst, 9466); } /* Generate the code for a single instruction. */ @@ -1441,592 +1441,592 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) /* Remember: all ops branch for a true comparison, fall through otherwise. */ case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: - dasm_put(Dst, 9482, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9488, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9503); + dasm_put(Dst, 9509); } else { - dasm_put(Dst, 9518); + dasm_put(Dst, 9524); if (cmov) { - dasm_put(Dst, 9528); - } else { dasm_put(Dst, 9534); + } else { + dasm_put(Dst, 9540); } } switch (op) { case BC_ISLT: - dasm_put(Dst, 9541); + dasm_put(Dst, 9547); break; case BC_ISGE: - dasm_put(Dst, 9340); + dasm_put(Dst, 9346); break; case BC_ISLE: - dasm_put(Dst, 5947); + dasm_put(Dst, 5953); break; case BC_ISGT: - dasm_put(Dst, 9546); + dasm_put(Dst, 9552); break; default: break; /* Shut up GCC. */ } - dasm_put(Dst, 9551, -BCBIAS_J*4); + dasm_put(Dst, 9557, -BCBIAS_J*4); break; case BC_ISEQV: case BC_ISNEV: vk = op == BC_ISEQV; - dasm_put(Dst, 9586, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9592, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9612); + dasm_put(Dst, 9618); } else { - dasm_put(Dst, 9624); + dasm_put(Dst, 9630); if (cmov) { - dasm_put(Dst, 9528); - } else { dasm_put(Dst, 9534); + } else { + dasm_put(Dst, 9540); } } iseqne_fp: if (vk) { - dasm_put(Dst, 9631); + dasm_put(Dst, 9637); } else { - dasm_put(Dst, 9640); + dasm_put(Dst, 9646); } iseqne_end: if (vk) { - dasm_put(Dst, 9649, -BCBIAS_J*4); + dasm_put(Dst, 9655, -BCBIAS_J*4); } else { - dasm_put(Dst, 9664, -BCBIAS_J*4); + dasm_put(Dst, 9670, -BCBIAS_J*4); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); if (op == BC_ISEQV || op == BC_ISNEV) { - dasm_put(Dst, 9679, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt6(->nomm), 1<>32)); + dasm_put(Dst, 9979, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); } else { - dasm_put(Dst, 9998); + dasm_put(Dst, 10004); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_LEN: - dasm_put(Dst, 10007, LJ_TSTR); + dasm_put(Dst, 10013, LJ_TSTR); if (sse) { - dasm_put(Dst, 10021, Dt5(->len)); + dasm_put(Dst, 10027, Dt5(->len)); } else { - dasm_put(Dst, 10039, Dt5(->len)); + dasm_put(Dst, 10045, Dt5(->len)); } - dasm_put(Dst, 10048, LJ_TTAB); + dasm_put(Dst, 10054, LJ_TTAB); if (sse) { - dasm_put(Dst, 10090); + dasm_put(Dst, 10096); } else { } - dasm_put(Dst, 10099); + dasm_put(Dst, 10105); break; /* -- Binary ops -------------------------------------------------------- */ case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10115); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10129); + dasm_put(Dst, 10135); } else { - dasm_put(Dst, 10144); + dasm_put(Dst, 10150); } break; case 1: - dasm_put(Dst, 10153, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10165); + dasm_put(Dst, 10171); } else { - dasm_put(Dst, 10180); + dasm_put(Dst, 10186); } break; default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10211); + dasm_put(Dst, 10217); } else { - dasm_put(Dst, 10225); + dasm_put(Dst, 10231); } break; } if (sse) { - dasm_put(Dst, 9991); + dasm_put(Dst, 9997); } else { - dasm_put(Dst, 10003); + dasm_put(Dst, 10009); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10115); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10233); + dasm_put(Dst, 10239); } else { - dasm_put(Dst, 10248); + dasm_put(Dst, 10254); } break; case 1: - dasm_put(Dst, 10153, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10257); + dasm_put(Dst, 10263); } else { - dasm_put(Dst, 10272); + dasm_put(Dst, 10278); } break; default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10281); + dasm_put(Dst, 10287); } else { - dasm_put(Dst, 10295); + dasm_put(Dst, 10301); } break; } if (sse) { - dasm_put(Dst, 9991); + dasm_put(Dst, 9997); } else { - dasm_put(Dst, 10003); + dasm_put(Dst, 10009); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_MULVN: case BC_MULNV: case BC_MULVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10115); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10303); + dasm_put(Dst, 10309); } else { - dasm_put(Dst, 10318); + dasm_put(Dst, 10324); } break; case 1: - dasm_put(Dst, 10153, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10327); + dasm_put(Dst, 10333); } else { - dasm_put(Dst, 10342); + dasm_put(Dst, 10348); } break; default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10351); + dasm_put(Dst, 10357); } else { - dasm_put(Dst, 10365); + dasm_put(Dst, 10371); } break; } if (sse) { - dasm_put(Dst, 9991); + dasm_put(Dst, 9997); } else { - dasm_put(Dst, 10003); + dasm_put(Dst, 10009); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10115); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10373); + dasm_put(Dst, 10379); } else { - dasm_put(Dst, 10388); + dasm_put(Dst, 10394); } break; case 1: - dasm_put(Dst, 10153, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10397); + dasm_put(Dst, 10403); } else { - dasm_put(Dst, 10412); + dasm_put(Dst, 10418); } break; default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10421); + dasm_put(Dst, 10427); } else { - dasm_put(Dst, 10435); + dasm_put(Dst, 10441); } break; } if (sse) { - dasm_put(Dst, 9991); + dasm_put(Dst, 9997); } else { - dasm_put(Dst, 10003); + dasm_put(Dst, 10009); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_MODVN: - dasm_put(Dst, 10109); + dasm_put(Dst, 10115); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10443); + dasm_put(Dst, 10449); } else { - dasm_put(Dst, 10458); + dasm_put(Dst, 10464); } break; case 1: - dasm_put(Dst, 10153, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10467); + dasm_put(Dst, 10473); } else { - dasm_put(Dst, 10482); + dasm_put(Dst, 10488); } break; default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10491); + dasm_put(Dst, 10497); } else { - dasm_put(Dst, 10505); - } - break; - } - dasm_put(Dst, 10513); - if (sse) { - dasm_put(Dst, 9991); - } else { - dasm_put(Dst, 10003); - } - dasm_put(Dst, 9565); - break; - case BC_MODNV: case BC_MODVV: - dasm_put(Dst, 10109); - vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); - switch (vk) { - case 0: - dasm_put(Dst, 10117, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 10443); - } else { - dasm_put(Dst, 10458); - } - break; - case 1: - dasm_put(Dst, 10153, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 10467); - } else { - dasm_put(Dst, 10482); - } - break; - default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 10491); - } else { - dasm_put(Dst, 10505); + dasm_put(Dst, 10511); } break; } dasm_put(Dst, 10519); + if (sse) { + dasm_put(Dst, 9997); + } else { + dasm_put(Dst, 10009); + } + dasm_put(Dst, 9571); break; - case BC_POW: - dasm_put(Dst, 10109); + case BC_MODNV: case BC_MODVV: + dasm_put(Dst, 10115); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10443); + dasm_put(Dst, 10449); } else { - dasm_put(Dst, 10458); + dasm_put(Dst, 10464); } break; case 1: - dasm_put(Dst, 10153, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10467); + dasm_put(Dst, 10473); } else { - dasm_put(Dst, 10482); + dasm_put(Dst, 10488); } break; default: - dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10491); + dasm_put(Dst, 10497); } else { - dasm_put(Dst, 10505); + dasm_put(Dst, 10511); } break; } - dasm_put(Dst, 10524); + dasm_put(Dst, 10525); + break; + case BC_POW: + dasm_put(Dst, 10115); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 10123, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9991); + dasm_put(Dst, 10449); } else { - dasm_put(Dst, 10003); + dasm_put(Dst, 10464); } - dasm_put(Dst, 9565); + break; + case 1: + dasm_put(Dst, 10159, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 10473); + } else { + dasm_put(Dst, 10488); + } + break; + default: + dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 10497); + } else { + dasm_put(Dst, 10511); + } + break; + } + dasm_put(Dst, 10530); + if (sse) { + dasm_put(Dst, 9997); + } else { + dasm_put(Dst, 10009); + } + dasm_put(Dst, 9571); break; case BC_CAT: - dasm_put(Dst, 10528, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 10534, Dt1(->base), Dt1(->base)); break; /* -- Constant ops ------------------------------------------------------ */ case BC_KSTR: - dasm_put(Dst, 10619, LJ_TSTR); + dasm_put(Dst, 10625, LJ_TSTR); break; case BC_KSHORT: if (sse) { - dasm_put(Dst, 10656); + dasm_put(Dst, 10662); } else { - dasm_put(Dst, 10671); + dasm_put(Dst, 10677); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_KNUM: if (sse) { - dasm_put(Dst, 10679); + dasm_put(Dst, 10685); } else { - dasm_put(Dst, 10693); + dasm_put(Dst, 10699); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_KPRI: - dasm_put(Dst, 10701); + dasm_put(Dst, 10707); break; case BC_KNIL: - dasm_put(Dst, 10730, LJ_TNIL); + dasm_put(Dst, 10736, LJ_TNIL); break; /* -- Upvalue and function ops ------------------------------------------ */ case BC_UGET: - dasm_put(Dst, 10778, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10784, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETV: #define TV2MARKOFS \ ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) - dasm_put(Dst, 10824, 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); - dasm_put(Dst, 10920); + dasm_put(Dst, 10830, 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); + dasm_put(Dst, 10926); break; #undef TV2MARKOFS case BC_USETS: - dasm_put(Dst, 10932, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); + dasm_put(Dst, 10938, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); break; case BC_USETN: - dasm_put(Dst, 11028); + dasm_put(Dst, 11034); if (sse) { - dasm_put(Dst, 11033); + dasm_put(Dst, 11039); } else { - dasm_put(Dst, 9807); + dasm_put(Dst, 9813); } - dasm_put(Dst, 11041, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 11047, offsetof(GCfuncL, uvptr), DtA(->v)); if (sse) { - dasm_put(Dst, 11050); - } else { dasm_put(Dst, 11056); + } else { + dasm_put(Dst, 11062); } - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_USETP: - dasm_put(Dst, 11059, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 11065, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_UCLO: - dasm_put(Dst, 11099, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 11105, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); break; case BC_FNEW: - dasm_put(Dst, 11155, Dt1(->base), Dt1(->base), LJ_TFUNC); + dasm_put(Dst, 11161, Dt1(->base), Dt1(->base), LJ_TFUNC); break; /* -- Table ops --------------------------------------------------------- */ case BC_TNEW: - dasm_put(Dst, 11222, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11228, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); break; case BC_TDUP: - dasm_put(Dst, 11346, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11352, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); break; case BC_GGET: - dasm_put(Dst, 11445, Dt7(->env)); + dasm_put(Dst, 11451, Dt7(->env)); break; case BC_GSET: - dasm_put(Dst, 11465, Dt7(->env)); + dasm_put(Dst, 11471, Dt7(->env)); break; case BC_TGETV: - dasm_put(Dst, 11485, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 11491, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11518); + dasm_put(Dst, 11524); } else { } - dasm_put(Dst, 11539, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); - dasm_put(Dst, 11737, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); + dasm_put(Dst, 11743, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); - dasm_put(Dst, 12029, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 11950, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); + dasm_put(Dst, 12035, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETS: - dasm_put(Dst, 12093, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); - dasm_put(Dst, 12170, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); - dasm_put(Dst, 12262, Dt6(->metatable), Dt6(->nomm), 1<base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 12099, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); + dasm_put(Dst, 12176, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); + dasm_put(Dst, 12268, Dt6(->metatable), Dt6(->nomm), 1<base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETB: - dasm_put(Dst, 12354, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); - dasm_put(Dst, 12454, Dt6(->metatable), Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 12360, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); + dasm_put(Dst, 12460, Dt6(->metatable), Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETM: - dasm_put(Dst, 12502, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); - dasm_put(Dst, 12658, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 12508, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 12664, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; /* -- Calls and vararg handling ----------------------------------------- */ case BC_CALL: case BC_CALLM: - dasm_put(Dst, 10113); + dasm_put(Dst, 10119); if (op == BC_CALLM) { - dasm_put(Dst, 12678); + dasm_put(Dst, 12684); } - dasm_put(Dst, 12683, LJ_TFUNC, Dt7(->pc)); + dasm_put(Dst, 12689, LJ_TFUNC, Dt7(->pc)); break; case BC_CALLMT: - dasm_put(Dst, 12678); + dasm_put(Dst, 12684); break; case BC_CALLT: - dasm_put(Dst, 12726, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); - dasm_put(Dst, 12850, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); + dasm_put(Dst, 12732, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); + dasm_put(Dst, 12856, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); break; case BC_ITERC: - dasm_put(Dst, 12924, LJ_TFUNC, 2+1, Dt7(->pc)); + dasm_put(Dst, 12930, LJ_TFUNC, 2+1, Dt7(->pc)); break; case BC_VARG: - dasm_put(Dst, 13006, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); - dasm_put(Dst, 13180, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 13012, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); + dasm_put(Dst, 13186, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 12678); + dasm_put(Dst, 12684); break; case BC_RET: case BC_RET0: case BC_RET1: if (op != BC_RET0) { - dasm_put(Dst, 13257); + dasm_put(Dst, 13263); } - dasm_put(Dst, 13261, FRAME_TYPE); + dasm_put(Dst, 13267, FRAME_TYPE); switch (op) { case BC_RET: - dasm_put(Dst, 13280); + dasm_put(Dst, 13286); break; case BC_RET1: - dasm_put(Dst, 13344); + dasm_put(Dst, 13350); /* fallthrough */ case BC_RET0: - dasm_put(Dst, 13360); + dasm_put(Dst, 13366); default: break; } - dasm_put(Dst, 13371, Dt7(->pc), PC2PROTO(k)); + dasm_put(Dst, 13377, Dt7(->pc), PC2PROTO(k)); if (op == BC_RET) { - dasm_put(Dst, 13419, LJ_TNIL); + dasm_put(Dst, 13425, LJ_TNIL); } else { - dasm_put(Dst, 13430, LJ_TNIL); + dasm_put(Dst, 13436, LJ_TNIL); } - dasm_put(Dst, 13437, -FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 13443, -FRAME_VARG, FRAME_TYPEP); if (op != BC_RET0) { - dasm_put(Dst, 13461); + dasm_put(Dst, 13467); } - dasm_put(Dst, 4599); + dasm_put(Dst, 4605); break; /* -- Loops and branches ------------------------------------------------ */ @@ -2034,7 +2034,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 13465, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13471, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2046,57 +2046,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORI: case BC_IFORL: vk = (op == BC_IFORL || op == BC_JFORL); - dasm_put(Dst, 13486); + dasm_put(Dst, 13492); if (!vk) { - dasm_put(Dst, 13490, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 13496, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 13509); + dasm_put(Dst, 13515); if (!vk) { - dasm_put(Dst, 13513, LJ_TISNUM); + dasm_put(Dst, 13519, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 13522); + dasm_put(Dst, 13528); if (vk) { - dasm_put(Dst, 13534); + dasm_put(Dst, 13540); } else { - dasm_put(Dst, 13553); + dasm_put(Dst, 13559); } - dasm_put(Dst, 13558); + dasm_put(Dst, 13564); } else { - dasm_put(Dst, 13571); + dasm_put(Dst, 13577); if (vk) { - dasm_put(Dst, 13577); + dasm_put(Dst, 13583); } else { - dasm_put(Dst, 13593); + dasm_put(Dst, 13599); } - dasm_put(Dst, 13601); + dasm_put(Dst, 13607); if (cmov) { - dasm_put(Dst, 9528); - } else { dasm_put(Dst, 9534); + } else { + dasm_put(Dst, 9540); } if (!cmov) { - dasm_put(Dst, 13606); + dasm_put(Dst, 13612); } } if (op == BC_FORI) { - dasm_put(Dst, 13612, -BCBIAS_J*4); + dasm_put(Dst, 13618, -BCBIAS_J*4); } else if (op == BC_JFORI) { - dasm_put(Dst, 13622, -BCBIAS_J*4, BC_JLOOP); + dasm_put(Dst, 13628, -BCBIAS_J*4, BC_JLOOP); } else if (op == BC_IFORL) { - dasm_put(Dst, 13636, -BCBIAS_J*4); + dasm_put(Dst, 13642, -BCBIAS_J*4); } else { - dasm_put(Dst, 13632, BC_JLOOP); + dasm_put(Dst, 13638, BC_JLOOP); } - dasm_put(Dst, 9563); + dasm_put(Dst, 9569); if (sse) { - dasm_put(Dst, 13646); + dasm_put(Dst, 13652); } break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 13465, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13471, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2105,33 +2105,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IITERL: - dasm_put(Dst, 13657, LJ_TNIL); + dasm_put(Dst, 13663, LJ_TNIL); if (op == BC_JITERL) { - dasm_put(Dst, 13672, BC_JLOOP); + dasm_put(Dst, 13678, BC_JLOOP); } else { - dasm_put(Dst, 13686, -BCBIAS_J*4); + dasm_put(Dst, 13692, -BCBIAS_J*4); } - dasm_put(Dst, 9867); + dasm_put(Dst, 9873); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 13465, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13471, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; case BC_ILOOP: - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); break; case BC_JLOOP: #if LJ_HASJIT - dasm_put(Dst, 13702, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); + dasm_put(Dst, 13708, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); #endif break; case BC_JMP: - dasm_put(Dst, 13743, -BCBIAS_J*4); + dasm_put(Dst, 13749, -BCBIAS_J*4); break; /* -- Function headers -------------------------------------------------- */ @@ -2145,7 +2145,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 13769, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13775, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -2155,47 +2155,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IFUNCF: - dasm_put(Dst, 13790, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); + dasm_put(Dst, 13796, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); if (op == BC_JFUNCF) { - dasm_put(Dst, 13821, BC_JLOOP); + dasm_put(Dst, 13827, BC_JLOOP); } else { - dasm_put(Dst, 9565); + dasm_put(Dst, 9571); } - dasm_put(Dst, 13830, LJ_TNIL); + dasm_put(Dst, 13836, LJ_TNIL); break; case BC_JFUNCV: #if !LJ_HASJIT break; #endif - dasm_put(Dst, 9044); + dasm_put(Dst, 9050); break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 13852, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); + dasm_put(Dst, 13858, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); if (op == BC_JFUNCV) { - dasm_put(Dst, 13821, BC_JLOOP); + dasm_put(Dst, 13827, BC_JLOOP); } else { - dasm_put(Dst, 13949, -4+PC2PROTO(k)); + dasm_put(Dst, 13955, -4+PC2PROTO(k)); } - dasm_put(Dst, 13974, LJ_TNIL); + dasm_put(Dst, 13980, LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: - dasm_put(Dst, 13996, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); + dasm_put(Dst, 14002, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); if (op == BC_FUNCC) { - dasm_put(Dst, 14026); + dasm_put(Dst, 14032); } else { - dasm_put(Dst, 14030); + dasm_put(Dst, 14036); } - dasm_put(Dst, 14038, DISPATCH_GL(vmstate), ~LJ_VMST_C); + dasm_put(Dst, 14044, DISPATCH_GL(vmstate), ~LJ_VMST_C); if (op == BC_FUNCC) { - dasm_put(Dst, 14048); + dasm_put(Dst, 14054); } else { - dasm_put(Dst, 14053, DISPATCH_GL(wrapf)); + dasm_put(Dst, 14059, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 14059, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 14065, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); break; /* ---------------------------------------------------------------------- */ @@ -2223,7 +2223,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx, cmov, sse); - dasm_put(Dst, 14085); + dasm_put(Dst, 14091); for (op = 0; op < BC__MAX; op++) build_ins(ctx, (BCOp)op, op, cmov, sse); diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h index 07c36207..6ef2e063 100644 --- a/src/buildvm_x64win.h +++ b/src/buildvm_x64win.h @@ -12,7 +12,7 @@ #define DASM_SECTION_CODE_OP 0 #define DASM_SECTION_CODE_SUB 1 #define DASM_MAXSECTION 2 -static const unsigned char build_actionlist[14034] = { +static const unsigned char build_actionlist[14042] = { 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237, @@ -163,122 +163,122 @@ static const unsigned char build_actionlist[14034] = { 199,193,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,13, 252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,142, 233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,76,36,80, - 137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4, - 248,77,139,106,252,248,139,173,233,139,114,252,252,137,116,36,100,137,108, - 36,80,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139, - 141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248, - 59,181,233,15,135,244,55,137,181,233,139,108,36,96,137,149,233,137,149,233, - 141,108,194,252,240,72,41,252,245,57,206,15,132,244,249,248,2,255,139,68, - 46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244, - 2,248,3,137,202,139,76,36,80,232,244,24,199,131,233,237,139,108,36,96,139, - 116,36,80,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139, - 190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238, - 3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139, - 65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139, - 116,36,100,137,68,36,84,49,201,252,247,198,237,15,132,244,13,252,233,244, - 14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,76,36,80,137,185, - 233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,248,78, - 139,108,36,96,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68, - 194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233, - 244,16,255,248,64,139,114,252,252,221,90,252,248,252,233,244,58,248,79,129, + 137,185,233,137,252,242,137,252,233,232,251,1,0,139,116,36,80,139,149,233, + 252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,252,252,137,116, + 36,100,137,108,36,80,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15, + 135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141, + 116,193,252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,96,137,149, + 233,137,149,233,141,108,194,252,240,72,41,252,245,57,206,15,132,244,249,248, + 2,255,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57, + 206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131,233,237,139, + 108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,244,254,248,4, + 139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141, + 4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5, + 139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248, + 6,141,70,1,248,7,139,116,36,100,137,68,36,84,49,201,252,247,198,237,15,132, + 244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139, + 76,36,80,137,185,233,137,252,242,137,252,233,232,251,1,0,139,116,36,80,139, + 149,233,252,233,244,4,248,78,139,108,36,96,72,252,247,133,233,237,15,132, + 244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,133,233, + 176,235,136,133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252, + 248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193, + 248,63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,64, + 139,114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,84,248, + 56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182, + 78,252,253,72,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,198, + 4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244,237,131,192,1,252, + 233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,14, + 255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, + 252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83, + 255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, + 15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55, + 129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129, + 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82, + 252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241, + 252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15, + 135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248, + 239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252, + 233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, + 244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130, + 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248, + 91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217, + 252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129, + 122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252, + 250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250, + 217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64, + 255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, + 252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248, + 96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, + 15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129, 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, - 72,184,237,237,102,72,15,110,200,15,84,193,248,63,139,114,252,252,252,242, - 15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,135,244,55,221,2,217,225,248,63,248,64,139,114,252,252,221,90,252,248, - 255,248,58,184,237,248,69,137,68,36,84,248,56,252,247,198,237,15,133,244, - 253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,72,252,247,209,141, - 20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, - 248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252, - 248,252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15, - 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63, - 248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, - 242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244, - 63,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, - 55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255, - 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244, - 84,252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4, - 239,15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129, - 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221, - 2,217,252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129, - 122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252, - 233,244,64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15, - 135,244,55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130, - 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233, - 244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135, - 244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252, - 233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252, - 243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129, + 255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129, 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, - 255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252,248, - 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137, - 213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239,15, - 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232, - 251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239,15, - 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248, - 252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252, - 233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15, - 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252, - 233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221, - 217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252, - 253,239,15,135,244,55,139,114,252,252,139,2,137,106,252,252,137,66,252,248, - 209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184, - 252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41, - 197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,139,106,252, - 252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248, - 2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,69,248,3,255,15, - 87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242, - 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,15,17, - 66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,248, - 255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255, - 248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, - 2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,132, - 244,250,255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66, - 252,248,252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90, - 252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184, - 237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248, - 4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248, - 105,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, - 253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15, - 138,244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242, - 15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, - 15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,108,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189, - 2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135, - 244,55,252,242,15,16,76,252,234,252,248,252,242,15,93,193,131,197,1,252,233, - 244,1,255,248,109,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253, - 252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242, - 15,95,193,131,197,1,252,233,244,1,255,248,5,221,216,252,233,244,55,255,248, - 110,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,42, - 255,252,242,15,42,133,233,252,233,244,63,255,219,133,233,252,233,244,64,255, - 248,111,129,252,248,239,15,133,244,55,129,122,253,4,239,15,133,244,55,139, - 42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,255,252,242, - 15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,244,64,255, - 248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248, - 239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,15,44,42,129, - 252,253,252,255,0,0,0,15,135,244,55,137,108,36,84,255,221,2,219,92,36,84, - 129,124,36,84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,0,0,0,72,141, - 68,36,84,248,113,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137, - 252,233,137,116,36,100,232,251,1,17,139,149,233,139,114,252,252,199,66,252, - 252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171,233,15,130, - 244,247,232,244,66,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129, - 252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,15, - 44,106,16,137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,122,253, - 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,32, - 139,173,233,255,252,242,15,44,74,8,255,139,68,36,84,57,197,15,130,244,251, - 248,2,133,201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,141, - 172,253,13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,5, - 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248, + 139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220, + 141,233,252,233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217, + 252,243,252,233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253, + 4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217, + 252,253,221,217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139, + 106,4,129,252,253,239,15,135,244,55,139,114,252,252,139,2,137,106,252,252, + 137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15, + 132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193, + 252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255, + 139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106, + 252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,69,248, + 3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255, + 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242, + 15,17,66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252, + 248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129, + 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, + 255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, + 221,2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15, + 132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15, + 17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1, + 221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249, + 248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233, + 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244, + 1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, + 55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223, + 224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15, + 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, + 55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248, + 106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, + 253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,64,255,248, + 108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, + 15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,234,252,252, + 239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,93,193,131, + 197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,129,122,253, + 4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63, + 129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252, + 248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,216,252,233,244, + 55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244, + 55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,133,233,252,233, + 244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,253,4,239,15,133, + 244,55,139,42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233, + 255,252,242,15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233, + 244,64,255,248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1, + 129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242, + 15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,84,255,221,2, + 219,92,36,84,129,124,36,84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1, + 0,0,0,72,141,68,36,84,248,113,139,108,36,96,137,149,233,68,139,68,36,32,72, + 137,194,137,252,233,137,116,36,100,232,251,1,17,139,149,233,139,114,252,252, + 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171, + 233,15,130,244,247,232,244,66,248,1,199,68,36,84,252,255,252,255,252,255, + 252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255, + 252,242,15,44,106,16,137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129, + 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108, + 36,32,139,173,233,255,252,242,15,44,74,8,255,139,68,36,84,57,197,15,130,244, + 251,248,2,133,201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115, + 141,172,253,13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248, + 5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248, 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252, 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244, 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253, @@ -1120,314 +1120,314 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) dasm_put(Dst, 2810, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); dasm_put(Dst, 2904, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); dasm_put(Dst, 3022, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); - dasm_put(Dst, 3120, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); - dasm_put(Dst, 3187, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); - dasm_put(Dst, 3281, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); - dasm_put(Dst, 3394, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); + dasm_put(Dst, 3124, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 3191, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); + dasm_put(Dst, 3285, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); + dasm_put(Dst, 3402, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); if (sse) { - dasm_put(Dst, 3421, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); + dasm_put(Dst, 3429, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 3485, 1+1, LJ_TISNUM); + dasm_put(Dst, 3493, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3521, 1+1, FRAME_TYPE, LJ_TNIL); + dasm_put(Dst, 3529, 1+1, FRAME_TYPE, LJ_TNIL); if (sse) { - dasm_put(Dst, 3615, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3677, 1+1, LJ_TISNUM); + dasm_put(Dst, 3623, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3685, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 3707, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3766, 1+1, LJ_TISNUM); + dasm_put(Dst, 3715, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3774, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3793, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3862, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3919, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3982, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 4072); + dasm_put(Dst, 3801, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3870, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3927, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3990, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 4080); if (sse) { - dasm_put(Dst, 4084, 1+1, LJ_TISNUM); + dasm_put(Dst, 4092, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4109); + dasm_put(Dst, 4117); if (sse) { - dasm_put(Dst, 4123, 1+1, LJ_TISNUM); + dasm_put(Dst, 4131, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4148); + dasm_put(Dst, 4156); if (sse) { - dasm_put(Dst, 4162, 1+1, LJ_TISNUM); + dasm_put(Dst, 4170, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4187); + dasm_put(Dst, 4195); if (sse) { - dasm_put(Dst, 4203, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4211, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } else { - dasm_put(Dst, 4242, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4250, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } - dasm_put(Dst, 4275, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); - dasm_put(Dst, 4340, 1+1, LJ_TISNUM); + dasm_put(Dst, 4283, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4348, 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4439); + dasm_put(Dst, 4447); } else { - dasm_put(Dst, 4445); + dasm_put(Dst, 4453); } - dasm_put(Dst, 4454); + dasm_put(Dst, 4462); if (sse) { - dasm_put(Dst, 4479); + dasm_put(Dst, 4487); } else { - dasm_put(Dst, 4485); + dasm_put(Dst, 4493); } - dasm_put(Dst, 4488, 1+2); + dasm_put(Dst, 4496, 1+2); if (sse) { - dasm_put(Dst, 4497); - } else { dasm_put(Dst, 4505); - } - dasm_put(Dst, 4513); - if (sse) { - dasm_put(Dst, 4516, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); } else { - dasm_put(Dst, 4543); + dasm_put(Dst, 4513); } - dasm_put(Dst, 4562); + dasm_put(Dst, 4521); if (sse) { - dasm_put(Dst, 4578, 1+1, LJ_TISNUM); + dasm_put(Dst, 4524, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); } else { - dasm_put(Dst, 4603, 1+1, LJ_TISNUM); + dasm_put(Dst, 4551); } - dasm_put(Dst, 4625); + dasm_put(Dst, 4570); if (sse) { - dasm_put(Dst, 4647); + dasm_put(Dst, 4586, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4673); + dasm_put(Dst, 4611, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4690, 1+2); + dasm_put(Dst, 4633); if (sse) { - dasm_put(Dst, 4730); + dasm_put(Dst, 4655); } else { + dasm_put(Dst, 4681); + } + dasm_put(Dst, 4698, 1+2); + if (sse) { dasm_put(Dst, 4738); - } - dasm_put(Dst, 4748, 2+1, LJ_TISNUM, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 4800, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 4847, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4746); + } + dasm_put(Dst, 4756, 2+1, LJ_TISNUM, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 4808, 2+1, LJ_TISNUM, LJ_TISNUM); + } else { + dasm_put(Dst, 4855, 2+1, LJ_TISNUM, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 4888, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4896, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (sse) { - dasm_put(Dst, 4959, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4967, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (!sse) { - dasm_put(Dst, 5030); + dasm_put(Dst, 5038); } - dasm_put(Dst, 5039, 1+1, LJ_TSTR); + dasm_put(Dst, 5047, 1+1, LJ_TSTR); if (sse) { - dasm_put(Dst, 5061, Dt5(->len)); + dasm_put(Dst, 5069, Dt5(->len)); } else { - dasm_put(Dst, 5072, Dt5(->len)); + dasm_put(Dst, 5080, Dt5(->len)); } - dasm_put(Dst, 5080, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); + dasm_put(Dst, 5088, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); if (sse) { - dasm_put(Dst, 5118); + dasm_put(Dst, 5126); } else { - dasm_put(Dst, 5128); + dasm_put(Dst, 5136); } - dasm_put(Dst, 5141, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); + dasm_put(Dst, 5149, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5176); + dasm_put(Dst, 5184); } else { - dasm_put(Dst, 5198); + dasm_put(Dst, 5206); } - dasm_put(Dst, 5218, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); + dasm_put(Dst, 5226, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); dasm_put(Dst, 2162); if (sse) { - dasm_put(Dst, 5326); + dasm_put(Dst, 5334); } else { - dasm_put(Dst, 5337); + dasm_put(Dst, 5345); } - dasm_put(Dst, 5345, LJ_TSTR, LJ_TISNUM, Dt5(->len)); + dasm_put(Dst, 5353, LJ_TSTR, LJ_TISNUM, Dt5(->len)); if (sse) { - dasm_put(Dst, 5375); + dasm_put(Dst, 5383); } else { } - dasm_put(Dst, 5382, sizeof(GCstr)-1); - dasm_put(Dst, 5457, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); - dasm_put(Dst, 5516, LJ_TSTR, LJ_TISNUM); + dasm_put(Dst, 5390, sizeof(GCstr)-1); + dasm_put(Dst, 5465, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 5524, LJ_TSTR, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5537); + dasm_put(Dst, 5545); } else { - dasm_put(Dst, 5544); + dasm_put(Dst, 5552); } - dasm_put(Dst, 5556, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); - dasm_put(Dst, 5621, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); - dasm_put(Dst, 5684, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); - dasm_put(Dst, 5755, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); - dasm_put(Dst, 5840, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); - dasm_put(Dst, 5910, 1+1, LJ_TTAB); + dasm_put(Dst, 5564, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5629, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); + dasm_put(Dst, 5692, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); + dasm_put(Dst, 5763, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5848, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); + dasm_put(Dst, 5918, 1+1, LJ_TTAB); if (sse) { - dasm_put(Dst, 5978); + dasm_put(Dst, 5986); } else { } if (sse) { - dasm_put(Dst, 5988, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 5996, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } if (sse) { - dasm_put(Dst, 6040, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6048, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6083, LJ_TISNUM); + dasm_put(Dst, 6091, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6110); + dasm_put(Dst, 6118); } else { } - dasm_put(Dst, 6127); + dasm_put(Dst, 6135); if (sse) { - dasm_put(Dst, 6135, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6143, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6083, LJ_TISNUM); + dasm_put(Dst, 6091, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6178); + dasm_put(Dst, 6186); } else { } - dasm_put(Dst, 6127); + dasm_put(Dst, 6135); if (sse) { - dasm_put(Dst, 6195, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6203, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6083, LJ_TISNUM); + dasm_put(Dst, 6091, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6238); + dasm_put(Dst, 6246); } else { } - dasm_put(Dst, 6127); + dasm_put(Dst, 6135); if (sse) { - dasm_put(Dst, 6255, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6263, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6298); + dasm_put(Dst, 6306); if (sse) { - dasm_put(Dst, 6305, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6313, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6348); + dasm_put(Dst, 6356); if (sse) { - dasm_put(Dst, 6352); + dasm_put(Dst, 6360); } else { } - dasm_put(Dst, 6364); + dasm_put(Dst, 6372); if (sse) { - dasm_put(Dst, 6375, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6383, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6444); + dasm_put(Dst, 6452); if (sse) { - dasm_put(Dst, 6453, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6461, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6522); + dasm_put(Dst, 6530); if (sse) { - dasm_put(Dst, 6532, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6540, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6601); + dasm_put(Dst, 6609); if (sse) { - dasm_put(Dst, 6611, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6619, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6680); + dasm_put(Dst, 6688); if (sse) { - dasm_put(Dst, 6689, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6697, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); - dasm_put(Dst, 6836, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); - dasm_put(Dst, 6963, Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 6766, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); + dasm_put(Dst, 6844, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 6971, Dt1(->top), Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7002, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); + dasm_put(Dst, 7010, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); #endif - dasm_put(Dst, 7033, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); - dasm_put(Dst, 7084, Dt1(->base), Dt1(->base), GG_DISP2STATIC); + dasm_put(Dst, 7041, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); + dasm_put(Dst, 7092, Dt1(->base), Dt1(->base), GG_DISP2STATIC); #if LJ_HASJIT - dasm_put(Dst, 7151, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); + dasm_put(Dst, 7159, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); #endif - dasm_put(Dst, 7198); + dasm_put(Dst, 7206); #if LJ_HASJIT - dasm_put(Dst, 7028); + dasm_put(Dst, 7036); #endif - dasm_put(Dst, 7205); + dasm_put(Dst, 7213); #if LJ_HASJIT - dasm_put(Dst, 7208); + dasm_put(Dst, 7216); #endif - dasm_put(Dst, 7218, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7226, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7252); + dasm_put(Dst, 7260); #endif - dasm_put(Dst, 7257, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7265, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7288, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); + dasm_put(Dst, 7296, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); #endif - dasm_put(Dst, 7518); + dasm_put(Dst, 7526); #if LJ_HASJIT - dasm_put(Dst, 7521, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); - dasm_put(Dst, 7663); + dasm_put(Dst, 7529, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); + dasm_put(Dst, 7671); #endif - dasm_put(Dst, 7689); + dasm_put(Dst, 7697); if (!sse) { - dasm_put(Dst, 7692); + dasm_put(Dst, 7700); } - dasm_put(Dst, 7737, (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)); + dasm_put(Dst, 7745, (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)); if (!sse) { - dasm_put(Dst, 7823); + dasm_put(Dst, 7831); } - dasm_put(Dst, 7868, (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)); + dasm_put(Dst, 7876, (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)); if (!sse) { - dasm_put(Dst, 7954); + dasm_put(Dst, 7962); } - dasm_put(Dst, 7993, (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)); + dasm_put(Dst, 8001, (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)); if (sse) { - 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)); + dasm_put(Dst, 8090, (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)); } else { - dasm_put(Dst, 8196); + dasm_put(Dst, 8204); } - dasm_put(Dst, 8243); + dasm_put(Dst, 8251); if (!sse) { } else { - dasm_put(Dst, 8317); + dasm_put(Dst, 8325); } - dasm_put(Dst, 8320); - dasm_put(Dst, 8405, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); - dasm_put(Dst, 8506, (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)); - dasm_put(Dst, 8674); + dasm_put(Dst, 8328); + dasm_put(Dst, 8413, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); + dasm_put(Dst, 8514, (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)); + dasm_put(Dst, 8682); #if LJ_HASJIT if (sse) { - dasm_put(Dst, 8715); - dasm_put(Dst, 8785); - dasm_put(Dst, 8858); + dasm_put(Dst, 8723); + dasm_put(Dst, 8793); + dasm_put(Dst, 8866); } else { - dasm_put(Dst, 8908); - dasm_put(Dst, 9000); + dasm_put(Dst, 8916); + dasm_put(Dst, 9008); } - dasm_put(Dst, 9046); + dasm_put(Dst, 9054); #endif - dasm_put(Dst, 9050); + dasm_put(Dst, 9058); if (sse) { - dasm_put(Dst, 9053, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); - dasm_put(Dst, 9142, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); + dasm_put(Dst, 9061, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); + dasm_put(Dst, 9150, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 9266); - dasm_put(Dst, 9349); + dasm_put(Dst, 9274); + dasm_put(Dst, 9357); if (cmov) { - dasm_put(Dst, 9404); + dasm_put(Dst, 9412); } else { - dasm_put(Dst, 9423); + dasm_put(Dst, 9431); } - dasm_put(Dst, 9046); + dasm_put(Dst, 9054); } - dasm_put(Dst, 9464); + dasm_put(Dst, 9472); } /* Generate the code for a single instruction. */ @@ -1443,592 +1443,592 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) /* Remember: all ops branch for a true comparison, fall through otherwise. */ case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: - dasm_put(Dst, 9490, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9498, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9511); + dasm_put(Dst, 9519); } else { - dasm_put(Dst, 9526); + dasm_put(Dst, 9534); if (cmov) { - dasm_put(Dst, 9536); + dasm_put(Dst, 9544); } else { - dasm_put(Dst, 9542); + dasm_put(Dst, 9550); } } switch (op) { case BC_ISLT: - dasm_put(Dst, 9549); + dasm_put(Dst, 9557); break; case BC_ISGE: - dasm_put(Dst, 9344); + dasm_put(Dst, 9352); break; case BC_ISLE: - dasm_put(Dst, 5905); + dasm_put(Dst, 5913); break; case BC_ISGT: - dasm_put(Dst, 9554); + dasm_put(Dst, 9562); break; default: break; /* Shut up GCC. */ } - dasm_put(Dst, 9559, -BCBIAS_J*4); + dasm_put(Dst, 9567, -BCBIAS_J*4); break; case BC_ISEQV: case BC_ISNEV: vk = op == BC_ISEQV; - dasm_put(Dst, 9593, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9601, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9619); + dasm_put(Dst, 9627); } else { - dasm_put(Dst, 9631); + dasm_put(Dst, 9639); if (cmov) { - dasm_put(Dst, 9536); + dasm_put(Dst, 9544); } else { - dasm_put(Dst, 9542); + dasm_put(Dst, 9550); } } iseqne_fp: if (vk) { - dasm_put(Dst, 9638); + dasm_put(Dst, 9646); } else { - dasm_put(Dst, 9647); + dasm_put(Dst, 9655); } iseqne_end: if (vk) { - dasm_put(Dst, 9656, -BCBIAS_J*4); + dasm_put(Dst, 9664, -BCBIAS_J*4); } else { - dasm_put(Dst, 9671, -BCBIAS_J*4); + dasm_put(Dst, 9679, -BCBIAS_J*4); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); if (op == BC_ISEQV || op == BC_ISNEV) { - dasm_put(Dst, 9686, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt6(->nomm), 1<>32)); + dasm_put(Dst, 9982, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); } else { - dasm_put(Dst, 9999); + dasm_put(Dst, 10007); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_LEN: - dasm_put(Dst, 10008, LJ_TSTR); + dasm_put(Dst, 10016, LJ_TSTR); if (sse) { - dasm_put(Dst, 10022, Dt5(->len)); + dasm_put(Dst, 10030, Dt5(->len)); } else { - dasm_put(Dst, 10040, Dt5(->len)); + dasm_put(Dst, 10048, Dt5(->len)); } - dasm_put(Dst, 10049, LJ_TTAB); + dasm_put(Dst, 10057, LJ_TTAB); if (sse) { - dasm_put(Dst, 10090); + dasm_put(Dst, 10098); } else { } - dasm_put(Dst, 10099); + dasm_put(Dst, 10107); break; /* -- Binary ops -------------------------------------------------------- */ case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10129); + dasm_put(Dst, 10137); } else { - dasm_put(Dst, 10143); + dasm_put(Dst, 10151); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10163); + dasm_put(Dst, 10171); } else { - dasm_put(Dst, 10177); + dasm_put(Dst, 10185); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10207); + dasm_put(Dst, 10215); } else { - dasm_put(Dst, 10221); + dasm_put(Dst, 10229); } break; } if (sse) { - dasm_put(Dst, 9992); + dasm_put(Dst, 10000); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 10012); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10229); + dasm_put(Dst, 10237); } else { - dasm_put(Dst, 10243); + dasm_put(Dst, 10251); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10251); + dasm_put(Dst, 10259); } else { - dasm_put(Dst, 10265); + dasm_put(Dst, 10273); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10273); + dasm_put(Dst, 10281); } else { - dasm_put(Dst, 10287); + dasm_put(Dst, 10295); } break; } if (sse) { - dasm_put(Dst, 9992); + dasm_put(Dst, 10000); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 10012); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_MULVN: case BC_MULNV: case BC_MULVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10295); + dasm_put(Dst, 10303); } else { - dasm_put(Dst, 10309); + dasm_put(Dst, 10317); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10317); + dasm_put(Dst, 10325); } else { - dasm_put(Dst, 10331); + dasm_put(Dst, 10339); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10339); + dasm_put(Dst, 10347); } else { - dasm_put(Dst, 10353); + dasm_put(Dst, 10361); } break; } if (sse) { - dasm_put(Dst, 9992); + dasm_put(Dst, 10000); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 10012); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10361); + dasm_put(Dst, 10369); } else { - dasm_put(Dst, 10375); + dasm_put(Dst, 10383); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10383); + dasm_put(Dst, 10391); } else { - dasm_put(Dst, 10397); + dasm_put(Dst, 10405); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10405); + dasm_put(Dst, 10413); } else { - dasm_put(Dst, 10419); + dasm_put(Dst, 10427); } break; } if (sse) { - dasm_put(Dst, 9992); + dasm_put(Dst, 10000); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 10012); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_MODVN: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10427); + dasm_put(Dst, 10435); } else { - dasm_put(Dst, 10441); + dasm_put(Dst, 10449); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10449); + dasm_put(Dst, 10457); } else { - dasm_put(Dst, 10463); + dasm_put(Dst, 10471); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10471); + dasm_put(Dst, 10479); } else { - dasm_put(Dst, 10485); + dasm_put(Dst, 10493); } break; } - dasm_put(Dst, 10493); + dasm_put(Dst, 10501); if (sse) { - dasm_put(Dst, 9992); + dasm_put(Dst, 10000); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 10012); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_MODNV: case BC_MODVV: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10427); + dasm_put(Dst, 10435); } else { - dasm_put(Dst, 10441); + dasm_put(Dst, 10449); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10449); + dasm_put(Dst, 10457); } else { - dasm_put(Dst, 10463); + dasm_put(Dst, 10471); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10471); + dasm_put(Dst, 10479); } else { - dasm_put(Dst, 10485); + dasm_put(Dst, 10493); } break; } - dasm_put(Dst, 10499); + dasm_put(Dst, 10507); break; case BC_POW: - dasm_put(Dst, 10109); + dasm_put(Dst, 10117); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10117, LJ_TISNUM); + dasm_put(Dst, 10125, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10427); + dasm_put(Dst, 10435); } else { - dasm_put(Dst, 10441); + dasm_put(Dst, 10449); } break; case 1: - dasm_put(Dst, 10151, LJ_TISNUM); + dasm_put(Dst, 10159, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10449); + dasm_put(Dst, 10457); } else { - dasm_put(Dst, 10463); + dasm_put(Dst, 10471); } break; default: - dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10471); + dasm_put(Dst, 10479); } else { - dasm_put(Dst, 10485); + dasm_put(Dst, 10493); } break; } - dasm_put(Dst, 10504); + dasm_put(Dst, 10512); if (sse) { - dasm_put(Dst, 9992); + dasm_put(Dst, 10000); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 10012); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_CAT: - dasm_put(Dst, 10508, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 10516, Dt1(->base), Dt1(->base)); break; /* -- Constant ops ------------------------------------------------------ */ case BC_KSTR: - dasm_put(Dst, 10598, LJ_TSTR); + dasm_put(Dst, 10606, LJ_TSTR); break; case BC_KSHORT: if (sse) { - dasm_put(Dst, 10633); + dasm_put(Dst, 10641); } else { - dasm_put(Dst, 10648); + dasm_put(Dst, 10656); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_KNUM: if (sse) { - dasm_put(Dst, 10656); + dasm_put(Dst, 10664); } else { - dasm_put(Dst, 10669); + dasm_put(Dst, 10677); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_KPRI: - dasm_put(Dst, 10676); + dasm_put(Dst, 10684); break; case BC_KNIL: - dasm_put(Dst, 10704, LJ_TNIL); + dasm_put(Dst, 10712, LJ_TNIL); break; /* -- Upvalue and function ops ------------------------------------------ */ case BC_UGET: - dasm_put(Dst, 10751, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10759, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETV: #define TV2MARKOFS \ ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) - dasm_put(Dst, 10796, 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); - dasm_put(Dst, 10887); + dasm_put(Dst, 10804, 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); + dasm_put(Dst, 10895); break; #undef TV2MARKOFS case BC_USETS: - dasm_put(Dst, 10899, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); + dasm_put(Dst, 10907, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); break; case BC_USETN: - dasm_put(Dst, 10992); + dasm_put(Dst, 11000); if (sse) { - dasm_put(Dst, 10997); + dasm_put(Dst, 11005); } else { - dasm_put(Dst, 9812); + dasm_put(Dst, 9820); } - dasm_put(Dst, 11004, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 11012, offsetof(GCfuncL, uvptr), DtA(->v)); if (sse) { - dasm_put(Dst, 11013); + dasm_put(Dst, 11021); } else { - dasm_put(Dst, 11019); + dasm_put(Dst, 11027); } - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_USETP: - dasm_put(Dst, 11022, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 11030, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_UCLO: - dasm_put(Dst, 11061, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 11069, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); break; case BC_FNEW: - dasm_put(Dst, 11116, Dt1(->base), Dt1(->base), LJ_TFUNC); + dasm_put(Dst, 11124, Dt1(->base), Dt1(->base), LJ_TFUNC); break; /* -- Table ops --------------------------------------------------------- */ case BC_TNEW: - dasm_put(Dst, 11182, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11190, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); break; case BC_TDUP: - dasm_put(Dst, 11304, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11312, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); break; case BC_GGET: - dasm_put(Dst, 11399, Dt7(->env)); + dasm_put(Dst, 11407, Dt7(->env)); break; case BC_GSET: - dasm_put(Dst, 11418, Dt7(->env)); + dasm_put(Dst, 11426, Dt7(->env)); break; case BC_TGETV: - dasm_put(Dst, 11437, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 11445, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11470); + dasm_put(Dst, 11478); } else { } - dasm_put(Dst, 11491, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); - dasm_put(Dst, 11687, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); + dasm_put(Dst, 11695, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); - dasm_put(Dst, 11976, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 11900, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); + dasm_put(Dst, 11984, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETS: - dasm_put(Dst, 12038, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); - dasm_put(Dst, 12114, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); - dasm_put(Dst, 12207, Dt6(->metatable), Dt6(->nomm), 1<base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 12046, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); + dasm_put(Dst, 12122, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); + dasm_put(Dst, 12215, Dt6(->metatable), Dt6(->nomm), 1<base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETB: - dasm_put(Dst, 12298, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); - dasm_put(Dst, 12397, Dt6(->metatable), Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 12306, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); + dasm_put(Dst, 12405, Dt6(->metatable), Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETM: - dasm_put(Dst, 12443, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); - dasm_put(Dst, 12590, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 12451, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 12598, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; /* -- Calls and vararg handling ----------------------------------------- */ case BC_CALL: case BC_CALLM: - dasm_put(Dst, 10113); + dasm_put(Dst, 10121); if (op == BC_CALLM) { - dasm_put(Dst, 12608); + dasm_put(Dst, 12616); } - dasm_put(Dst, 12613, LJ_TFUNC, Dt7(->pc)); + dasm_put(Dst, 12621, LJ_TFUNC, Dt7(->pc)); break; case BC_CALLMT: - dasm_put(Dst, 12608); + dasm_put(Dst, 12616); break; case BC_CALLT: - dasm_put(Dst, 12655, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); - dasm_put(Dst, 12774, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); + dasm_put(Dst, 12663, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); + dasm_put(Dst, 12782, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); break; case BC_ITERC: - dasm_put(Dst, 12845, LJ_TFUNC, 2+1, Dt7(->pc)); + dasm_put(Dst, 12853, LJ_TFUNC, 2+1, Dt7(->pc)); break; case BC_VARG: - dasm_put(Dst, 12926, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); - dasm_put(Dst, 13091, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 12934, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); + dasm_put(Dst, 13099, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 12608); + dasm_put(Dst, 12616); break; case BC_RET: case BC_RET0: case BC_RET1: if (op != BC_RET0) { - dasm_put(Dst, 13162); + dasm_put(Dst, 13170); } - dasm_put(Dst, 13166, FRAME_TYPE); + dasm_put(Dst, 13174, FRAME_TYPE); switch (op) { case BC_RET: - dasm_put(Dst, 13185); + dasm_put(Dst, 13193); break; case BC_RET1: - dasm_put(Dst, 13243); + dasm_put(Dst, 13251); /* fallthrough */ case BC_RET0: - dasm_put(Dst, 13259); + dasm_put(Dst, 13267); default: break; } - dasm_put(Dst, 13270, Dt7(->pc), PC2PROTO(k)); + dasm_put(Dst, 13278, Dt7(->pc), PC2PROTO(k)); if (op == BC_RET) { - dasm_put(Dst, 13314, LJ_TNIL); + dasm_put(Dst, 13322, LJ_TNIL); } else { - dasm_put(Dst, 13323, LJ_TNIL); + dasm_put(Dst, 13331, LJ_TNIL); } - dasm_put(Dst, 13330, -FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 13338, -FRAME_VARG, FRAME_TYPEP); if (op != BC_RET0) { - dasm_put(Dst, 13354); + dasm_put(Dst, 13362); } - dasm_put(Dst, 4573); + dasm_put(Dst, 4581); break; /* -- Loops and branches ------------------------------------------------ */ @@ -2036,7 +2036,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 13358, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13366, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2048,57 +2048,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORI: case BC_IFORL: vk = (op == BC_IFORL || op == BC_JFORL); - dasm_put(Dst, 13379); + dasm_put(Dst, 13387); if (!vk) { - dasm_put(Dst, 13383, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 13391, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 13402); + dasm_put(Dst, 13410); if (!vk) { - dasm_put(Dst, 13406, LJ_TISNUM); + dasm_put(Dst, 13414, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 13415); + dasm_put(Dst, 13423); if (vk) { - dasm_put(Dst, 13427); + dasm_put(Dst, 13435); } else { - dasm_put(Dst, 13446); + dasm_put(Dst, 13454); } - dasm_put(Dst, 13451); + dasm_put(Dst, 13459); } else { - dasm_put(Dst, 13464); + dasm_put(Dst, 13472); if (vk) { - dasm_put(Dst, 13470); + dasm_put(Dst, 13478); } else { - dasm_put(Dst, 13486); + dasm_put(Dst, 13494); } - dasm_put(Dst, 13494); + dasm_put(Dst, 13502); if (cmov) { - dasm_put(Dst, 9536); + dasm_put(Dst, 9544); } else { - dasm_put(Dst, 9542); + dasm_put(Dst, 9550); } if (!cmov) { - dasm_put(Dst, 13499); + dasm_put(Dst, 13507); } } if (op == BC_FORI) { - dasm_put(Dst, 13505, -BCBIAS_J*4); + dasm_put(Dst, 13513, -BCBIAS_J*4); } else if (op == BC_JFORI) { - dasm_put(Dst, 13515, -BCBIAS_J*4, BC_JLOOP); + dasm_put(Dst, 13523, -BCBIAS_J*4, BC_JLOOP); } else if (op == BC_IFORL) { - dasm_put(Dst, 13529, -BCBIAS_J*4); + dasm_put(Dst, 13537, -BCBIAS_J*4); } else { - dasm_put(Dst, 13525, BC_JLOOP); + dasm_put(Dst, 13533, BC_JLOOP); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9579); if (sse) { - dasm_put(Dst, 13539); + dasm_put(Dst, 13547); } break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 13358, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13366, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2107,33 +2107,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IITERL: - dasm_put(Dst, 13550, LJ_TNIL); + dasm_put(Dst, 13558, LJ_TNIL); if (op == BC_JITERL) { - dasm_put(Dst, 13565, BC_JLOOP); + dasm_put(Dst, 13573, BC_JLOOP); } else { - dasm_put(Dst, 13579, -BCBIAS_J*4); + dasm_put(Dst, 13587, -BCBIAS_J*4); } - dasm_put(Dst, 9871); + dasm_put(Dst, 9879); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 13358, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13366, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; case BC_ILOOP: - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); break; case BC_JLOOP: #if LJ_HASJIT - dasm_put(Dst, 13595, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16); + dasm_put(Dst, 13603, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16); #endif break; case BC_JMP: - dasm_put(Dst, 13704, -BCBIAS_J*4); + dasm_put(Dst, 13712, -BCBIAS_J*4); break; /* -- Function headers -------------------------------------------------- */ @@ -2147,7 +2147,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 13729, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13737, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -2157,47 +2157,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IFUNCF: - dasm_put(Dst, 13750, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); + dasm_put(Dst, 13758, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); if (op == BC_JFUNCF) { - dasm_put(Dst, 13780, BC_JLOOP); + dasm_put(Dst, 13788, BC_JLOOP); } else { - dasm_put(Dst, 9573); + dasm_put(Dst, 9581); } - dasm_put(Dst, 13789, LJ_TNIL); + dasm_put(Dst, 13797, LJ_TNIL); break; case BC_JFUNCV: #if !LJ_HASJIT break; #endif - dasm_put(Dst, 9048); + dasm_put(Dst, 9056); break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 13811, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); + dasm_put(Dst, 13819, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); if (op == BC_JFUNCV) { - dasm_put(Dst, 13780, BC_JLOOP); + dasm_put(Dst, 13788, BC_JLOOP); } else { - dasm_put(Dst, 13902, -4+PC2PROTO(k)); + dasm_put(Dst, 13910, -4+PC2PROTO(k)); } - dasm_put(Dst, 13925, LJ_TNIL); + dasm_put(Dst, 13933, LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: - dasm_put(Dst, 13947, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); + dasm_put(Dst, 13955, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); if (op == BC_FUNCC) { - dasm_put(Dst, 13977); + dasm_put(Dst, 13985); } else { - dasm_put(Dst, 13981); + dasm_put(Dst, 13989); } - dasm_put(Dst, 13989, DISPATCH_GL(vmstate), ~LJ_VMST_C); + dasm_put(Dst, 13997, DISPATCH_GL(vmstate), ~LJ_VMST_C); if (op == BC_FUNCC) { - dasm_put(Dst, 13998); + dasm_put(Dst, 14006); } else { - dasm_put(Dst, 14002, DISPATCH_GL(wrapf)); + dasm_put(Dst, 14010, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 14007, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 14015, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); break; /* ---------------------------------------------------------------------- */ @@ -2225,7 +2225,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx, cmov, sse); - dasm_put(Dst, 14032); + dasm_put(Dst, 14040); for (op = 0; op < BC__MAX; op++) build_ins(ctx, (BCOp)op, op, cmov, sse); diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc index ae225f52..3d28102e 100644 --- a/src/buildvm_x86.dasc +++ b/src/buildvm_x86.dasc @@ -1722,6 +1722,11 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov FCARG2, PC | mov FCARG1, L:RB | call extern lj_state_growstack@8 // (lua_State *L, int n) + |.if X64 + | mov L:PC, TMP1 + |.else + | mov L:PC, ARG1 + |.endif | mov BASE, L:RB->base | jmp <4 // Retry the stack move. |.endmacro diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h index baca59fe..e5a43031 100644 --- a/src/buildvm_x86.h +++ b/src/buildvm_x86.h @@ -12,7 +12,7 @@ #define DASM_SECTION_CODE_OP 0 #define DASM_SECTION_CODE_SUB 1 #define DASM_MAXSECTION 2 -static const unsigned char build_actionlist[15227] = { +static const unsigned char build_actionlist[15233] = { 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, @@ -163,98 +163,98 @@ static const unsigned char build_actionlist[15227] = { 198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,142, 233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233, 244,7,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139, - 149,233,252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,252,252, - 137,116,36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233,235,15, - 135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141, - 116,193,252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,149, - 233,137,149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248, - 2,255,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57, - 206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244, - 24,199,131,233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15, - 135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206, - 15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213, - 41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15, - 133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247, - 198,237,15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251, - 1,13,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139, - 149,233,252,233,244,4,248,78,139,108,36,48,252,247,133,233,237,15,132,244, - 55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176, - 235,136,133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248, - 252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15, - 135,244,55,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209, - 1,15,84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129, - 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248, - 63,248,64,139,114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68, - 36,20,248,56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244, - 252,15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15,182,232, - 131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237,131,192, - 1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233,244,14, - 255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, - 252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122, - 253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83, - 255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, - 15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129, - 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82, - 252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239, - 15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241, - 252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15, - 135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248, - 239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252, - 233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130, - 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248, - 91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217, - 252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129, - 122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252, - 250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122, - 253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250, - 217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129, - 122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64, - 255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, - 252,242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1, - 14,137,252,234,252,233,244,64,255,248,96,129,252,248,239,15,130,244,55,129, - 122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,96, - 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28, - 36,255,137,213,232,251,1,15,137,252,234,252,233,244,64,255,248,97,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252, - 242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,16,137,252,234,252,233, - 244,64,248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233, - 244,63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, - 244,55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, - 15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248, - 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255, - 15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129, - 252,248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114, - 252,252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224, - 252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253, - 0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197, - 255,137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252,255,252,255, - 15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221, - 26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252, - 238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110, - 205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252,248,255,221, - 2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139,106,252,252, - 184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248, - 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139, - 114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40, - 224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242, - 15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,221,26, - 255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,233, - 244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87, - 228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,129,252, - 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, - 15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221, - 217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,122,253, - 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252, - 242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,15, - 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, + 52,36,139,149,233,252,233,244,4,248,77,139,106,252,248,139,173,233,139,114, + 252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233, + 235,15,135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248, + 1,141,116,193,252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48, + 137,149,233,137,149,233,141,108,194,252,240,41,252,245,57,206,15,132,244, + 249,248,2,255,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252, + 238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36, + 8,232,244,24,199,131,233,237,139,108,36,48,139,52,36,139,149,233,129,252, + 248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252, + 254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255, + 255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57, + 252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201, + 252,247,198,237,15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233, + 232,251,1,13,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251, + 1,0,139,52,36,139,149,233,252,233,244,4,248,78,139,108,36,48,252,247,133, + 233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192, + 137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,114,252,252, + 221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,252,242,15,16,2,102,15,252,239,201,102,15,118,201, + 102,15,115,209,1,15,84,193,248,63,139,114,252,252,252,242,15,17,66,252,248, + 255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, + 221,2,217,225,248,63,248,64,139,114,252,252,221,90,252,248,255,248,58,184, + 237,248,69,137,68,36,20,248,56,252,247,198,237,15,133,244,253,248,5,56,70, + 252,255,15,135,244,252,15,182,78,252,253,252,247,209,141,20,202,139,6,15, + 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252, + 244,237,131,192,1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255, + 252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239, + 15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130, + 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233, + 244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, + 244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244, + 64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, + 2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129, + 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221, + 2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248, + 87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221, + 2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122, + 253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248, + 239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252, + 233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, + 244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15, + 130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217, + 232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232, + 222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252, + 243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4, + 239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137, + 213,232,251,1,14,137,252,234,252,233,244,64,255,248,96,129,252,248,239,15, + 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17, + 4,36,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, + 55,221,2,221,28,36,255,137,213,232,251,1,15,137,252,234,252,233,244,64,255, + 248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, + 242,15,16,2,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,16,137, + 252,234,252,233,244,64,248,98,255,248,99,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15,89, + 133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122,253, + 4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64,255, + 248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, + 122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64,248, + 101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, + 253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233,244, + 64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15,135, + 244,55,139,114,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129,252, + 253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0, + 129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242, + 15,42,197,255,137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252, + 255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15, + 17,2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244, + 2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80, + 67,102,15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252, + 248,255,221,2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139, + 106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103, + 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139, + 106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250, + 255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248, + 252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248, + 221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252, + 233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255, + 15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105, + 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, + 12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138, + 244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16, + 2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239, + 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239, 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0, 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55, @@ -1174,376 +1174,376 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) dasm_put(Dst, 2819, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); dasm_put(Dst, 2920, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); dasm_put(Dst, 3034, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); - dasm_put(Dst, 3129, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); - dasm_put(Dst, 3195, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); - dasm_put(Dst, 3296, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); - dasm_put(Dst, 3406, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); + dasm_put(Dst, 3132, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 3198, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); + dasm_put(Dst, 3299, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); + dasm_put(Dst, 3412, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); if (sse) { - dasm_put(Dst, 3432, 1+1, LJ_TISNUM); + dasm_put(Dst, 3438, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 3501, 1+1, LJ_TISNUM); + dasm_put(Dst, 3507, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3537, 1+1, FRAME_TYPE, LJ_TNIL); + dasm_put(Dst, 3543, 1+1, FRAME_TYPE, LJ_TNIL); if (sse) { - dasm_put(Dst, 3627, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3689, 1+1, LJ_TISNUM); + dasm_put(Dst, 3633, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3695, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 3719, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3778, 1+1, LJ_TISNUM); + dasm_put(Dst, 3725, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3784, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3805, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3874, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3931, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); - dasm_put(Dst, 3994, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 4084); + dasm_put(Dst, 3811, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3880, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3937, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 4000, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 4090); if (sse) { - dasm_put(Dst, 4096, 1+1, LJ_TISNUM); + dasm_put(Dst, 4102, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4127, 1+1, LJ_TISNUM); + dasm_put(Dst, 4133, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4152); + dasm_put(Dst, 4158); if (sse) { - dasm_put(Dst, 4166, 1+1, LJ_TISNUM); + dasm_put(Dst, 4172, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4197, 1+1, LJ_TISNUM); + dasm_put(Dst, 4203, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4222); + dasm_put(Dst, 4228); if (sse) { - dasm_put(Dst, 4236, 1+1, LJ_TISNUM); + dasm_put(Dst, 4242, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4267, 1+1, LJ_TISNUM); + dasm_put(Dst, 4273, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4292); + dasm_put(Dst, 4298); if (sse) { - dasm_put(Dst, 4308, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4314, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } else { - dasm_put(Dst, 4347, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4353, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } - dasm_put(Dst, 4380, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); - dasm_put(Dst, 4445, 1+1, LJ_TISNUM); + dasm_put(Dst, 4386, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4451, 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4544); - } else { dasm_put(Dst, 4550); - } - dasm_put(Dst, 4559); - if (sse) { - dasm_put(Dst, 4584); } else { + dasm_put(Dst, 4556); + } + dasm_put(Dst, 4565); + if (sse) { dasm_put(Dst, 4590); - } - dasm_put(Dst, 4593, 1+2); - if (sse) { - dasm_put(Dst, 4602); } else { - dasm_put(Dst, 4610); + dasm_put(Dst, 4596); } - dasm_put(Dst, 4618); + dasm_put(Dst, 4599, 1+2); if (sse) { - dasm_put(Dst, 4621); + dasm_put(Dst, 4608); } else { - dasm_put(Dst, 4653); + dasm_put(Dst, 4616); } - dasm_put(Dst, 4672); + dasm_put(Dst, 4624); if (sse) { - dasm_put(Dst, 4688, 1+1, LJ_TISNUM); + dasm_put(Dst, 4627); } else { - dasm_put(Dst, 4713, 1+1, LJ_TISNUM); + dasm_put(Dst, 4659); } - dasm_put(Dst, 4735); + dasm_put(Dst, 4678); if (sse) { - dasm_put(Dst, 4757); + dasm_put(Dst, 4694, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4783); + dasm_put(Dst, 4719, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4800, 1+2); + dasm_put(Dst, 4741); if (sse) { - dasm_put(Dst, 4840); + dasm_put(Dst, 4763); } else { - dasm_put(Dst, 4848); + dasm_put(Dst, 4789); } - dasm_put(Dst, 4858, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4806, 1+2); if (sse) { - dasm_put(Dst, 4910, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4846); } else { - dasm_put(Dst, 4957, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4854); + } + dasm_put(Dst, 4864, 2+1, LJ_TISNUM, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 4916, 2+1, LJ_TISNUM, LJ_TISNUM); + } else { + dasm_put(Dst, 4963, 2+1, LJ_TISNUM, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 4998, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 5004, 1+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 5069, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 5075, 1+1, LJ_TISNUM, LJ_TISNUM); if (cmov) { - dasm_put(Dst, 5122); + dasm_put(Dst, 5128); } else { - dasm_put(Dst, 5130); + dasm_put(Dst, 5136); } - dasm_put(Dst, 5061); + dasm_put(Dst, 5067); } if (sse) { - dasm_put(Dst, 5151, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 5157, 1+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 5222, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 5228, 1+1, LJ_TISNUM, LJ_TISNUM); if (cmov) { - dasm_put(Dst, 5275); + dasm_put(Dst, 5281); } else { - dasm_put(Dst, 5283); + dasm_put(Dst, 5289); } - dasm_put(Dst, 5061); + dasm_put(Dst, 5067); } if (!sse) { - dasm_put(Dst, 5304); + dasm_put(Dst, 5310); } - dasm_put(Dst, 5313, 1+1, LJ_TSTR); + dasm_put(Dst, 5319, 1+1, LJ_TSTR); if (sse) { - dasm_put(Dst, 5335, Dt5(->len)); + dasm_put(Dst, 5341, Dt5(->len)); } else { - dasm_put(Dst, 5346, Dt5(->len)); + dasm_put(Dst, 5352, Dt5(->len)); } - dasm_put(Dst, 5354, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); + dasm_put(Dst, 5360, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); if (sse) { - dasm_put(Dst, 5392); + dasm_put(Dst, 5398); } else { - dasm_put(Dst, 5402); + dasm_put(Dst, 5408); } - dasm_put(Dst, 5415, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); + dasm_put(Dst, 5421, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5450); + dasm_put(Dst, 5456); } else { - dasm_put(Dst, 5472); + dasm_put(Dst, 5478); } - dasm_put(Dst, 5492, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); + dasm_put(Dst, 5498, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); dasm_put(Dst, 2142); if (sse) { - dasm_put(Dst, 5595); + dasm_put(Dst, 5601); } else { - dasm_put(Dst, 5606); + dasm_put(Dst, 5612); } - dasm_put(Dst, 5614, LJ_TSTR, LJ_TISNUM, Dt5(->len)); + dasm_put(Dst, 5620, LJ_TSTR, LJ_TISNUM, Dt5(->len)); if (sse) { - dasm_put(Dst, 5644); + dasm_put(Dst, 5650); } else { - dasm_put(Dst, 5651); + dasm_put(Dst, 5657); } - dasm_put(Dst, 5663, sizeof(GCstr)-1); - dasm_put(Dst, 5738, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); - dasm_put(Dst, 5797, LJ_TSTR, LJ_TISNUM); + dasm_put(Dst, 5669, sizeof(GCstr)-1); + dasm_put(Dst, 5744, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 5803, LJ_TSTR, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5818); + dasm_put(Dst, 5824); } else { - dasm_put(Dst, 5825); + dasm_put(Dst, 5831); } - dasm_put(Dst, 5837, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); - dasm_put(Dst, 5902, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); - dasm_put(Dst, 5965, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); - dasm_put(Dst, 6036, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); - dasm_put(Dst, 6121, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); - dasm_put(Dst, 6191, 1+1, LJ_TTAB); + dasm_put(Dst, 5843, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5908, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); + dasm_put(Dst, 5971, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); + dasm_put(Dst, 6042, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 6127, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); + dasm_put(Dst, 6197, 1+1, LJ_TTAB); if (sse) { - dasm_put(Dst, 6259); + dasm_put(Dst, 6265); } else { - dasm_put(Dst, 6269); + dasm_put(Dst, 6275); } if (sse) { - dasm_put(Dst, 6280, 1+1, LJ_TISNUM); + dasm_put(Dst, 6286, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 6337, 1+1, LJ_TISNUM); + dasm_put(Dst, 6343, 1+1, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 6381, 1+1, LJ_TISNUM); + dasm_put(Dst, 6387, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 6429, 1+1, LJ_TISNUM); + dasm_put(Dst, 6435, 1+1, LJ_TISNUM); } - dasm_put(Dst, 6469, LJ_TISNUM); + dasm_put(Dst, 6475, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6496); + dasm_put(Dst, 6502); } else { - dasm_put(Dst, 6513); + dasm_put(Dst, 6519); } - dasm_put(Dst, 6526); + dasm_put(Dst, 6532); if (sse) { - dasm_put(Dst, 6534, 1+1, LJ_TISNUM); + dasm_put(Dst, 6540, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 6582, 1+1, LJ_TISNUM); + dasm_put(Dst, 6588, 1+1, LJ_TISNUM); } - dasm_put(Dst, 6469, LJ_TISNUM); + dasm_put(Dst, 6475, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6622); + dasm_put(Dst, 6628); } else { - dasm_put(Dst, 6639); + dasm_put(Dst, 6645); } - dasm_put(Dst, 6526); + dasm_put(Dst, 6532); if (sse) { - dasm_put(Dst, 6652, 1+1, LJ_TISNUM); + dasm_put(Dst, 6658, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 6700, 1+1, LJ_TISNUM); + dasm_put(Dst, 6706, 1+1, LJ_TISNUM); } - dasm_put(Dst, 6469, LJ_TISNUM); + dasm_put(Dst, 6475, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6740); + dasm_put(Dst, 6746); } else { - dasm_put(Dst, 6757); + dasm_put(Dst, 6763); } - dasm_put(Dst, 6526); + dasm_put(Dst, 6532); if (sse) { - dasm_put(Dst, 6770, 1+1, LJ_TISNUM); + dasm_put(Dst, 6776, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 6818, 1+1, LJ_TISNUM); + dasm_put(Dst, 6824, 1+1, LJ_TISNUM); } - dasm_put(Dst, 6858); + dasm_put(Dst, 6864); if (sse) { - dasm_put(Dst, 6865, 1+1, LJ_TISNUM); + dasm_put(Dst, 6871, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 6913, 1+1, LJ_TISNUM); + dasm_put(Dst, 6919, 1+1, LJ_TISNUM); } - dasm_put(Dst, 6953); + dasm_put(Dst, 6959); if (sse) { - dasm_put(Dst, 6957); + dasm_put(Dst, 6963); } else { - dasm_put(Dst, 6969); + dasm_put(Dst, 6975); } - dasm_put(Dst, 6982); + dasm_put(Dst, 6988); if (sse) { - dasm_put(Dst, 6993, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 6999, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 7067, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7073, 2+1, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 7133); + dasm_put(Dst, 7139); if (sse) { - dasm_put(Dst, 7142, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7148, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 7216, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7222, 2+1, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 7282); + dasm_put(Dst, 7288); if (sse) { - dasm_put(Dst, 7292, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7298, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 7366, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7372, 2+1, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 7432); + dasm_put(Dst, 7438); if (sse) { - dasm_put(Dst, 7442, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7448, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 7516, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7522, 2+1, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 7582); + dasm_put(Dst, 7588); if (sse) { - dasm_put(Dst, 7591, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7597, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 7665, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 7671, 2+1, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 7731, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); - dasm_put(Dst, 7809, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); - dasm_put(Dst, 7933, Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7737, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); + dasm_put(Dst, 7815, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 7939, Dt1(->top), Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7971, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); + dasm_put(Dst, 7977, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); #endif - dasm_put(Dst, 8002, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); - dasm_put(Dst, 8053, Dt1(->base), Dt1(->base), GG_DISP2STATIC); + dasm_put(Dst, 8008, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); + dasm_put(Dst, 8059, Dt1(->base), Dt1(->base), GG_DISP2STATIC); #if LJ_HASJIT - dasm_put(Dst, 8119, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); + dasm_put(Dst, 8125, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); #endif - dasm_put(Dst, 8165); + dasm_put(Dst, 8171); #if LJ_HASJIT - dasm_put(Dst, 7997); + dasm_put(Dst, 8003); #endif - dasm_put(Dst, 8172); + dasm_put(Dst, 8178); #if LJ_HASJIT - dasm_put(Dst, 8175); + dasm_put(Dst, 8181); #endif - dasm_put(Dst, 8185, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 8191, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 8219); + dasm_put(Dst, 8225); #endif - dasm_put(Dst, 8224, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 8230, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 8253, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); + dasm_put(Dst, 8259, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); #endif - dasm_put(Dst, 8396); + dasm_put(Dst, 8402); #if LJ_HASJIT - dasm_put(Dst, 8399, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); + dasm_put(Dst, 8405, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); #endif - dasm_put(Dst, 8477); + dasm_put(Dst, 8483); if (!sse) { - dasm_put(Dst, 8480); + dasm_put(Dst, 8486); } - dasm_put(Dst, 8525); + dasm_put(Dst, 8531); if (!sse) { - dasm_put(Dst, 8627); + dasm_put(Dst, 8633); } - dasm_put(Dst, 8672); + dasm_put(Dst, 8678); if (!sse) { - dasm_put(Dst, 8774); + dasm_put(Dst, 8780); } - dasm_put(Dst, 8813); + dasm_put(Dst, 8819); if (sse) { - dasm_put(Dst, 8918); + dasm_put(Dst, 8924); } else { - dasm_put(Dst, 9048); + dasm_put(Dst, 9054); } - dasm_put(Dst, 9095); + dasm_put(Dst, 9101); if (!sse) { - dasm_put(Dst, 9169); + dasm_put(Dst, 9175); if (cmov) { - dasm_put(Dst, 9180); + dasm_put(Dst, 9186); } else { - dasm_put(Dst, 9184); + dasm_put(Dst, 9190); } - dasm_put(Dst, 9191); - dasm_put(Dst, 9265); - dasm_put(Dst, 9365); + dasm_put(Dst, 9197); + dasm_put(Dst, 9271); + dasm_put(Dst, 9371); if (cmov) { - dasm_put(Dst, 9368); + dasm_put(Dst, 9374); } else { - dasm_put(Dst, 9372); + dasm_put(Dst, 9378); } - dasm_put(Dst, 9379); + dasm_put(Dst, 9385); if (cmov) { - dasm_put(Dst, 9180); + dasm_put(Dst, 9186); } else { - dasm_put(Dst, 9184); + dasm_put(Dst, 9190); } - dasm_put(Dst, 9397); + dasm_put(Dst, 9403); } else { - dasm_put(Dst, 9476); + dasm_put(Dst, 9482); } - dasm_put(Dst, 9479); - dasm_put(Dst, 9564); - dasm_put(Dst, 9695); - dasm_put(Dst, 9894); + dasm_put(Dst, 9485); + dasm_put(Dst, 9570); + dasm_put(Dst, 9701); + dasm_put(Dst, 9900); #if LJ_HASJIT if (sse) { - dasm_put(Dst, 9917); - dasm_put(Dst, 9974); - dasm_put(Dst, 10065); + dasm_put(Dst, 9923); + dasm_put(Dst, 9980); + dasm_put(Dst, 10071); } else { - dasm_put(Dst, 10107); - dasm_put(Dst, 10199); + dasm_put(Dst, 10113); + dasm_put(Dst, 10205); } - dasm_put(Dst, 10245); + dasm_put(Dst, 10251); #endif - dasm_put(Dst, 10249); + dasm_put(Dst, 10255); if (sse) { - dasm_put(Dst, 10252); - dasm_put(Dst, 10357); - dasm_put(Dst, 10440); + dasm_put(Dst, 10258); + dasm_put(Dst, 10363); + dasm_put(Dst, 10446); } else { - dasm_put(Dst, 10512); - dasm_put(Dst, 10595); + dasm_put(Dst, 10518); + dasm_put(Dst, 10601); if (cmov) { - dasm_put(Dst, 10650); + dasm_put(Dst, 10656); } else { - dasm_put(Dst, 10669); + dasm_put(Dst, 10675); } - dasm_put(Dst, 10245); + dasm_put(Dst, 10251); } - dasm_put(Dst, 10710); + dasm_put(Dst, 10716); } /* Generate the code for a single instruction. */ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) { int vk = 0; - dasm_put(Dst, 10764, defop); + dasm_put(Dst, 10770, defop); switch (op) { @@ -1552,607 +1552,607 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) /* Remember: all ops branch for a true comparison, fall through otherwise. */ case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: - dasm_put(Dst, 10766, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10772, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10787); + dasm_put(Dst, 10793); } else { - dasm_put(Dst, 10802); + dasm_put(Dst, 10808); if (cmov) { - dasm_put(Dst, 10812); - } else { dasm_put(Dst, 10818); + } else { + dasm_put(Dst, 10824); } } switch (op) { case BC_ISLT: - dasm_put(Dst, 10825); + dasm_put(Dst, 10831); break; case BC_ISGE: - dasm_put(Dst, 10060); + dasm_put(Dst, 10066); break; case BC_ISLE: - dasm_put(Dst, 6186); + dasm_put(Dst, 6192); break; case BC_ISGT: - dasm_put(Dst, 10830); + dasm_put(Dst, 10836); break; default: break; /* Shut up GCC. */ } - dasm_put(Dst, 10835, -BCBIAS_J*4); + dasm_put(Dst, 10841, -BCBIAS_J*4); break; case BC_ISEQV: case BC_ISNEV: vk = op == BC_ISEQV; - dasm_put(Dst, 10868, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10874, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10894); + dasm_put(Dst, 10900); } else { - dasm_put(Dst, 10906); + dasm_put(Dst, 10912); if (cmov) { - dasm_put(Dst, 10812); - } else { dasm_put(Dst, 10818); + } else { + dasm_put(Dst, 10824); } } iseqne_fp: if (vk) { - dasm_put(Dst, 10913); + dasm_put(Dst, 10919); } else { - dasm_put(Dst, 10922); + dasm_put(Dst, 10928); } iseqne_end: if (vk) { - dasm_put(Dst, 10931, -BCBIAS_J*4); + dasm_put(Dst, 10937, -BCBIAS_J*4); } else { - dasm_put(Dst, 10946, -BCBIAS_J*4); + dasm_put(Dst, 10952, -BCBIAS_J*4); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); if (op == BC_ISEQV || op == BC_ISNEV) { - dasm_put(Dst, 10961, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt6(->nomm), 1<len)); + dasm_put(Dst, 11303, Dt5(->len)); } else { - dasm_put(Dst, 11315, Dt5(->len)); + dasm_put(Dst, 11321, Dt5(->len)); } - dasm_put(Dst, 11324, LJ_TTAB); + dasm_put(Dst, 11330, LJ_TTAB); if (sse) { - dasm_put(Dst, 11364); + dasm_put(Dst, 11370); } else { - dasm_put(Dst, 11373); + dasm_put(Dst, 11379); } - dasm_put(Dst, 11383); + dasm_put(Dst, 11389); break; /* -- Binary ops -------------------------------------------------------- */ case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: - dasm_put(Dst, 11393); + dasm_put(Dst, 11399); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 11401, LJ_TISNUM); + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11413); + dasm_put(Dst, 11419); } else { - dasm_put(Dst, 11427); + dasm_put(Dst, 11433); } break; case 1: - dasm_put(Dst, 11435, LJ_TISNUM); + dasm_put(Dst, 11441, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11447); + dasm_put(Dst, 11453); } else { - dasm_put(Dst, 11461); + dasm_put(Dst, 11467); } break; default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11491); + dasm_put(Dst, 11497); } else { - dasm_put(Dst, 11505); + dasm_put(Dst, 11511); } break; } if (sse) { - dasm_put(Dst, 11267); + dasm_put(Dst, 11273); } else { - dasm_put(Dst, 11279); + dasm_put(Dst, 11285); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: - dasm_put(Dst, 11393); + dasm_put(Dst, 11399); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 11401, LJ_TISNUM); + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11513); + dasm_put(Dst, 11519); } else { - dasm_put(Dst, 11527); + dasm_put(Dst, 11533); } break; case 1: - dasm_put(Dst, 11435, LJ_TISNUM); + dasm_put(Dst, 11441, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11535); + dasm_put(Dst, 11541); } else { - dasm_put(Dst, 11549); + dasm_put(Dst, 11555); } break; default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11557); + dasm_put(Dst, 11563); } else { - dasm_put(Dst, 11571); + dasm_put(Dst, 11577); } break; } if (sse) { - dasm_put(Dst, 11267); + dasm_put(Dst, 11273); } else { - dasm_put(Dst, 11279); + dasm_put(Dst, 11285); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_MULVN: case BC_MULNV: case BC_MULVV: - dasm_put(Dst, 11393); + dasm_put(Dst, 11399); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 11401, LJ_TISNUM); + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11579); + dasm_put(Dst, 11585); } else { - dasm_put(Dst, 11593); + dasm_put(Dst, 11599); } break; case 1: - dasm_put(Dst, 11435, LJ_TISNUM); + dasm_put(Dst, 11441, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11601); + dasm_put(Dst, 11607); } else { - dasm_put(Dst, 11615); + dasm_put(Dst, 11621); } break; default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11623); + dasm_put(Dst, 11629); } else { - dasm_put(Dst, 11637); + dasm_put(Dst, 11643); } break; } if (sse) { - dasm_put(Dst, 11267); + dasm_put(Dst, 11273); } else { - dasm_put(Dst, 11279); + dasm_put(Dst, 11285); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: - dasm_put(Dst, 11393); + dasm_put(Dst, 11399); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 11401, LJ_TISNUM); + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11645); + dasm_put(Dst, 11651); } else { - dasm_put(Dst, 11659); + dasm_put(Dst, 11665); } break; case 1: - dasm_put(Dst, 11435, LJ_TISNUM); + dasm_put(Dst, 11441, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11667); + dasm_put(Dst, 11673); } else { - dasm_put(Dst, 11681); + dasm_put(Dst, 11687); } break; default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11689); + dasm_put(Dst, 11695); } else { - dasm_put(Dst, 11703); + dasm_put(Dst, 11709); } break; } if (sse) { - dasm_put(Dst, 11267); + dasm_put(Dst, 11273); } else { - dasm_put(Dst, 11279); + dasm_put(Dst, 11285); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_MODVN: - dasm_put(Dst, 11393); + dasm_put(Dst, 11399); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 11401, LJ_TISNUM); + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11711); + dasm_put(Dst, 11717); } else { - dasm_put(Dst, 11725); + dasm_put(Dst, 11731); } break; case 1: - dasm_put(Dst, 11435, LJ_TISNUM); + dasm_put(Dst, 11441, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11733); + dasm_put(Dst, 11739); } else { - dasm_put(Dst, 11747); + dasm_put(Dst, 11753); } break; default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11755); + dasm_put(Dst, 11761); } else { - dasm_put(Dst, 11769); - } - break; - } - dasm_put(Dst, 11777); - if (sse) { - dasm_put(Dst, 11267); - } else { - dasm_put(Dst, 11279); - } - dasm_put(Dst, 10849); - break; - case BC_MODNV: case BC_MODVV: - dasm_put(Dst, 11393); - vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); - switch (vk) { - case 0: - dasm_put(Dst, 11401, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 11711); - } else { - dasm_put(Dst, 11725); - } - break; - case 1: - dasm_put(Dst, 11435, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 11733); - } else { - dasm_put(Dst, 11747); - } - break; - default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); - if (sse) { - dasm_put(Dst, 11755); - } else { - dasm_put(Dst, 11769); + dasm_put(Dst, 11775); } break; } dasm_put(Dst, 11783); + if (sse) { + dasm_put(Dst, 11273); + } else { + dasm_put(Dst, 11285); + } + dasm_put(Dst, 10855); break; - case BC_POW: - dasm_put(Dst, 11393); + case BC_MODNV: case BC_MODVV: + dasm_put(Dst, 11399); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 11401, LJ_TISNUM); + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11711); + dasm_put(Dst, 11717); } else { - dasm_put(Dst, 11725); + dasm_put(Dst, 11731); } break; case 1: - dasm_put(Dst, 11435, LJ_TISNUM); + dasm_put(Dst, 11441, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11733); + dasm_put(Dst, 11739); } else { - dasm_put(Dst, 11747); + dasm_put(Dst, 11753); } break; default: - dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11755); + dasm_put(Dst, 11761); } else { - dasm_put(Dst, 11769); + dasm_put(Dst, 11775); } break; } - dasm_put(Dst, 11788); + dasm_put(Dst, 11789); + break; + case BC_POW: + dasm_put(Dst, 11399); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 11407, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11267); + dasm_put(Dst, 11717); } else { - dasm_put(Dst, 11279); + dasm_put(Dst, 11731); } - dasm_put(Dst, 10849); + break; + case 1: + dasm_put(Dst, 11441, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 11739); + } else { + dasm_put(Dst, 11753); + } + break; + default: + dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); + if (sse) { + dasm_put(Dst, 11761); + } else { + dasm_put(Dst, 11775); + } + break; + } + dasm_put(Dst, 11794); + if (sse) { + dasm_put(Dst, 11273); + } else { + dasm_put(Dst, 11285); + } + dasm_put(Dst, 10855); break; case BC_CAT: - dasm_put(Dst, 11792, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 11798, Dt1(->base), Dt1(->base)); break; /* -- Constant ops ------------------------------------------------------ */ case BC_KSTR: - dasm_put(Dst, 11886, LJ_TSTR); + dasm_put(Dst, 11892, LJ_TSTR); break; case BC_KSHORT: if (sse) { - dasm_put(Dst, 11919); + dasm_put(Dst, 11925); } else { - dasm_put(Dst, 11934); + dasm_put(Dst, 11940); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_KNUM: if (sse) { - dasm_put(Dst, 11942); + dasm_put(Dst, 11948); } else { - dasm_put(Dst, 11955); + dasm_put(Dst, 11961); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_KPRI: - dasm_put(Dst, 11962); + dasm_put(Dst, 11968); break; case BC_KNIL: - dasm_put(Dst, 11988, LJ_TNIL); + dasm_put(Dst, 11994, LJ_TNIL); break; /* -- Upvalue and function ops ------------------------------------------ */ case BC_UGET: - dasm_put(Dst, 12034, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 12040, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETV: #define TV2MARKOFS \ ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) - dasm_put(Dst, 12078, 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); - dasm_put(Dst, 12168); + dasm_put(Dst, 12084, 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); + dasm_put(Dst, 12174); break; #undef TV2MARKOFS case BC_USETS: - dasm_put(Dst, 12180, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); + dasm_put(Dst, 12186, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); break; case BC_USETN: - dasm_put(Dst, 12271); + dasm_put(Dst, 12277); if (sse) { - dasm_put(Dst, 12276); + dasm_put(Dst, 12282); } else { - dasm_put(Dst, 11086); + dasm_put(Dst, 11092); } - dasm_put(Dst, 12283, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 12289, offsetof(GCfuncL, uvptr), DtA(->v)); if (sse) { - dasm_put(Dst, 12292); - } else { dasm_put(Dst, 12298); + } else { + dasm_put(Dst, 12304); } - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_USETP: - dasm_put(Dst, 12301, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 12307, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_UCLO: - dasm_put(Dst, 12338, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 12344, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); break; case BC_FNEW: - dasm_put(Dst, 12392, Dt1(->base), Dt1(->base), LJ_TFUNC); + dasm_put(Dst, 12398, Dt1(->base), Dt1(->base), LJ_TFUNC); break; /* -- Table ops --------------------------------------------------------- */ case BC_TNEW: - dasm_put(Dst, 12463, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 12469, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); break; case BC_TDUP: - dasm_put(Dst, 12589, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 12595, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); break; case BC_GGET: - dasm_put(Dst, 12681, Dt7(->env)); + dasm_put(Dst, 12687, Dt7(->env)); break; case BC_GSET: - dasm_put(Dst, 12699, Dt7(->env)); + dasm_put(Dst, 12705, Dt7(->env)); break; case BC_TGETV: - dasm_put(Dst, 12717, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 12723, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 12750); + dasm_put(Dst, 12756); } else { - dasm_put(Dst, 12771); + dasm_put(Dst, 12777); if (cmov) { - dasm_put(Dst, 10812); - } else { dasm_put(Dst, 10818); + } else { + dasm_put(Dst, 10824); } dasm_put(Dst, 2527); } - dasm_put(Dst, 12781, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); - dasm_put(Dst, 12975, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); + dasm_put(Dst, 12981, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); - dasm_put(Dst, 13261, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 13184, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); + dasm_put(Dst, 13267, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETS: - dasm_put(Dst, 13323, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); - dasm_put(Dst, 13398, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); - dasm_put(Dst, 13490, Dt6(->metatable), Dt6(->nomm), 1<base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 13329, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); + dasm_put(Dst, 13404, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); + dasm_put(Dst, 13496, Dt6(->metatable), Dt6(->nomm), 1<base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETB: - dasm_put(Dst, 13586, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); - dasm_put(Dst, 13684, Dt6(->metatable), Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 13592, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); + dasm_put(Dst, 13690, Dt6(->metatable), Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; case BC_TSETM: - dasm_put(Dst, 13730, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); - dasm_put(Dst, 13879, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 13736, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 13885, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; /* -- Calls and vararg handling ----------------------------------------- */ case BC_CALL: case BC_CALLM: - dasm_put(Dst, 11397); + dasm_put(Dst, 11403); if (op == BC_CALLM) { - dasm_put(Dst, 13897); + dasm_put(Dst, 13903); } - dasm_put(Dst, 13902, LJ_TFUNC, Dt7(->pc)); + dasm_put(Dst, 13908, LJ_TFUNC, Dt7(->pc)); break; case BC_CALLMT: - dasm_put(Dst, 13897); + dasm_put(Dst, 13903); break; case BC_CALLT: - dasm_put(Dst, 13943, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); - dasm_put(Dst, 14061, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); + dasm_put(Dst, 13949, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); + dasm_put(Dst, 14067, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); break; case BC_ITERC: - dasm_put(Dst, 14131, LJ_TFUNC, 2+1, Dt7(->pc)); + dasm_put(Dst, 14137, LJ_TFUNC, 2+1, Dt7(->pc)); break; case BC_VARG: - dasm_put(Dst, 14211, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); - dasm_put(Dst, 14375, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 14217, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); + dasm_put(Dst, 14381, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 13897); + dasm_put(Dst, 13903); break; case BC_RET: case BC_RET0: case BC_RET1: if (op != BC_RET0) { - dasm_put(Dst, 14446); + dasm_put(Dst, 14452); } - dasm_put(Dst, 14450, FRAME_TYPE); + dasm_put(Dst, 14456, FRAME_TYPE); switch (op) { case BC_RET: - dasm_put(Dst, 14469); + dasm_put(Dst, 14475); break; case BC_RET1: - dasm_put(Dst, 14527); + dasm_put(Dst, 14533); /* fallthrough */ case BC_RET0: - dasm_put(Dst, 14543); + dasm_put(Dst, 14549); default: break; } - dasm_put(Dst, 14554, Dt7(->pc), PC2PROTO(k)); + dasm_put(Dst, 14560, Dt7(->pc), PC2PROTO(k)); if (op == BC_RET) { - dasm_put(Dst, 14596, LJ_TNIL); + dasm_put(Dst, 14602, LJ_TNIL); } else { - dasm_put(Dst, 14605, LJ_TNIL); + dasm_put(Dst, 14611, LJ_TNIL); } - dasm_put(Dst, 14612, -FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 14618, -FRAME_VARG, FRAME_TYPEP); if (op != BC_RET0) { - dasm_put(Dst, 14636); + dasm_put(Dst, 14642); } - dasm_put(Dst, 4683); + dasm_put(Dst, 4689); break; /* -- Loops and branches ------------------------------------------------ */ @@ -2160,7 +2160,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 14640, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14646, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2172,57 +2172,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORI: case BC_IFORL: vk = (op == BC_IFORL || op == BC_JFORL); - dasm_put(Dst, 14661); + dasm_put(Dst, 14667); if (!vk) { - dasm_put(Dst, 14665, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 14671, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 14684); + dasm_put(Dst, 14690); if (!vk) { - dasm_put(Dst, 14688, LJ_TISNUM); + dasm_put(Dst, 14694, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 14697); + dasm_put(Dst, 14703); if (vk) { - dasm_put(Dst, 14709); + dasm_put(Dst, 14715); } else { - dasm_put(Dst, 14728); + dasm_put(Dst, 14734); } - dasm_put(Dst, 14733); + dasm_put(Dst, 14739); } else { - dasm_put(Dst, 14746); + dasm_put(Dst, 14752); if (vk) { - dasm_put(Dst, 14752); + dasm_put(Dst, 14758); } else { - dasm_put(Dst, 14768); + dasm_put(Dst, 14774); } - dasm_put(Dst, 14776); + dasm_put(Dst, 14782); if (cmov) { - dasm_put(Dst, 10812); - } else { dasm_put(Dst, 10818); + } else { + dasm_put(Dst, 10824); } if (!cmov) { - dasm_put(Dst, 14781); + dasm_put(Dst, 14787); } } if (op == BC_FORI) { - dasm_put(Dst, 14787, -BCBIAS_J*4); + dasm_put(Dst, 14793, -BCBIAS_J*4); } else if (op == BC_JFORI) { - dasm_put(Dst, 14797, -BCBIAS_J*4, BC_JLOOP); + dasm_put(Dst, 14803, -BCBIAS_J*4, BC_JLOOP); } else if (op == BC_IFORL) { - dasm_put(Dst, 14811, -BCBIAS_J*4); + dasm_put(Dst, 14817, -BCBIAS_J*4); } else { - dasm_put(Dst, 14807, BC_JLOOP); + dasm_put(Dst, 14813, BC_JLOOP); } - dasm_put(Dst, 10847); + dasm_put(Dst, 10853); if (sse) { - dasm_put(Dst, 14821); + dasm_put(Dst, 14827); } break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 14640, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14646, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2231,33 +2231,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IITERL: - dasm_put(Dst, 14832, LJ_TNIL); + dasm_put(Dst, 14838, LJ_TNIL); if (op == BC_JITERL) { - dasm_put(Dst, 14847, BC_JLOOP); + dasm_put(Dst, 14853, BC_JLOOP); } else { - dasm_put(Dst, 14861, -BCBIAS_J*4); + dasm_put(Dst, 14867, -BCBIAS_J*4); } - dasm_put(Dst, 11144); + dasm_put(Dst, 11150); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 14640, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14646, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; case BC_ILOOP: - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); break; case BC_JLOOP: #if LJ_HASJIT - dasm_put(Dst, 14877, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); + dasm_put(Dst, 14883, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); #endif break; case BC_JMP: - dasm_put(Dst, 14900, -BCBIAS_J*4); + dasm_put(Dst, 14906, -BCBIAS_J*4); break; /* -- Function headers -------------------------------------------------- */ @@ -2271,7 +2271,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 14924, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14930, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -2281,47 +2281,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IFUNCF: - dasm_put(Dst, 14945, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); + dasm_put(Dst, 14951, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); if (op == BC_JFUNCF) { - dasm_put(Dst, 14975, BC_JLOOP); + dasm_put(Dst, 14981, BC_JLOOP); } else { - dasm_put(Dst, 10849); + dasm_put(Dst, 10855); } - dasm_put(Dst, 14984, LJ_TNIL); + dasm_put(Dst, 14990, LJ_TNIL); break; case BC_JFUNCV: #if !LJ_HASJIT break; #endif - dasm_put(Dst, 10247); + dasm_put(Dst, 10253); break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 15006, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); + dasm_put(Dst, 15012, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); if (op == BC_JFUNCV) { - dasm_put(Dst, 14975, BC_JLOOP); + dasm_put(Dst, 14981, BC_JLOOP); } else { - dasm_put(Dst, 15097, -4+PC2PROTO(k)); + dasm_put(Dst, 15103, -4+PC2PROTO(k)); } - dasm_put(Dst, 15119, LJ_TNIL); + dasm_put(Dst, 15125, LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: - dasm_put(Dst, 15141, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); + dasm_put(Dst, 15147, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); if (op == BC_FUNCC) { - dasm_put(Dst, 15170); + dasm_put(Dst, 15176); } else { - dasm_put(Dst, 15174); + dasm_put(Dst, 15180); } - dasm_put(Dst, 15182, DISPATCH_GL(vmstate), ~LJ_VMST_C); + dasm_put(Dst, 15188, DISPATCH_GL(vmstate), ~LJ_VMST_C); if (op == BC_FUNCC) { - dasm_put(Dst, 15191); + dasm_put(Dst, 15197); } else { - dasm_put(Dst, 15195, DISPATCH_GL(wrapf)); + dasm_put(Dst, 15201, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 15200, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 15206, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); break; /* ---------------------------------------------------------------------- */ @@ -2349,7 +2349,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx, cmov, sse); - dasm_put(Dst, 15225); + dasm_put(Dst, 15231); for (op = 0; op < BC__MAX; op++) build_ins(ctx, (BCOp)op, op, cmov, sse);