From fce05fd6e18a9b1f032f5c7409e1516214220f3c Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 30 Sep 2010 17:47:32 +0200 Subject: [PATCH] x64: Use 64 bit slot copies in the interpreter. --- src/buildvm_x64.h | 1984 +++++++++++++++++++------------------ src/buildvm_x64win.h | 2252 +++++++++++++++++++++--------------------- src/buildvm_x86.dasc | 226 ++++- src/buildvm_x86.h | 383 +++---- 4 files changed, 2493 insertions(+), 2352 deletions(-) diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h index b22c68a1..b3022a17 100644 --- a/src/buildvm_x64.h +++ b/src/buildvm_x64.h @@ -12,396 +12,393 @@ #define DASM_SECTION_CODE_OP 0 #define DASM_SECTION_CODE_SUB 1 #define DASM_MAXSECTION 2 -static const unsigned char build_actionlist[14093] = { +static const unsigned char build_actionlist[13946] = { 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, 244,10,65,199,134,233,237,131,227,252,248,41,211,252,247,219,131,232,1,15, - 132,244,248,248,1,139,44,10,137,106,252,248,139,108,10,4,137,106,252,252, - 131,194,8,131,232,1,15,133,244,1,248,2,255,139,108,36,24,137,157,233,248, - 3,139,68,36,4,139,76,36,16,248,4,57,193,15,133,244,252,248,5,131,252,234, - 8,137,149,233,248,15,72,139,76,36,32,72,137,141,233,49,192,248,16,72,131, - 196,40,65,94,65,95,91,93,195,248,6,15,130,244,253,59,149,233,15,135,244,254, - 199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7,255,133,201,15, - 132,244,5,41,193,141,20,202,252,233,244,5,248,8,137,149,233,137,68,36,4,137, - 206,137,252,239,232,251,1,0,139,149,233,252,233,244,3,248,17,137,252,240, - 72,137,252,252,248,18,139,108,36,24,139,173,233,199,133,233,237,252,233,244, - 16,248,19,72,129,231,239,72,137,252,252,248,20,139,108,36,24,72,199,193,252, - 248,252,255,252,255,252,255,184,237,255,139,149,233,68,139,181,233,65,129, - 198,239,139,90,252,252,199,66,252,252,237,65,199,134,233,237,252,233,244, - 12,248,21,190,237,252,233,244,248,248,22,131,232,8,252,233,244,247,248,23, - 141,68,194,252,248,248,1,15,182,139,233,131,195,4,137,149,233,137,133,233, - 255,137,92,36,28,137,206,248,2,137,252,239,232,251,1,0,139,149,233,139,133, - 233,139,106,252,248,41,208,193,232,3,131,192,1,139,157,233,139,11,15,182, - 252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,24,85,83,65,87,65, - 86,72,131,252,236,40,137,252,253,137,124,36,24,137,252,241,187,237,49,192, - 76,141,188,253,36,233,68,139,181,233,65,129,198,239,76,137,189,233,137,68, - 36,28,72,137,68,36,32,137,68,36,16,137,68,36,20,56,133,233,15,132,244,249, - 65,199,134,233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131, - 192,1,41,209,139,90,252,252,137,68,36,4,252,247,195,237,15,132,244,13,255, - 252,233,244,14,248,25,85,83,65,87,65,86,72,131,252,236,40,187,237,137,76, - 36,20,252,233,244,247,248,26,85,83,65,87,65,86,72,131,252,236,40,187,237, - 248,1,137,84,36,16,137,252,253,137,124,36,24,137,252,241,76,139,189,233,76, - 137,124,36,32,137,108,36,28,72,137,165,233,248,2,68,139,181,233,65,129,198, - 239,248,3,65,199,134,233,237,139,149,233,1,203,41,211,139,133,233,41,200, - 193,232,3,131,192,1,248,27,255,139,105,252,248,129,121,253,252,252,239,15, - 133,244,28,248,29,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,248,30,85,83,65,87,65,86,72,131, - 252,236,40,137,252,253,137,124,36,24,137,108,36,28,68,139,189,233,68,43,189, - 233,199,68,36,20,0,0,0,0,68,137,124,36,16,76,139,189,233,76,137,124,36,32, - 72,137,165,233,252,255,209,133,192,15,132,244,15,137,193,187,237,252,233, - 244,2,248,11,1,209,131,227,252,248,137,213,41,218,199,68,193,252,252,237, - 137,200,139,93,252,244,72,99,77,252,240,76,141,61,245,76,1,252,249,68,139, - 122,252,248,69,139,191,233,255,69,139,191,233,252,255,225,248,31,15,182,75, - 252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,32,252,247,217,193, - 252,233,3,139,124,36,24,137,151,233,137,202,139,72,4,139,0,137,77,4,137,69, - 0,137,252,238,252,233,244,33,248,34,137,4,36,199,68,36,4,237,72,141,4,36, - 128,123,252,252,235,15,133,244,247,65,141,142,233,137,41,199,65,4,237,137, - 205,252,233,244,248,248,35,15,182,67,252,254,255,252,242,15,42,192,252,242, - 15,17,4,36,255,72,141,4,36,252,233,244,247,248,36,15,182,67,252,254,141,4, - 194,248,1,15,182,107,252,255,141,44,252,234,248,2,139,124,36,24,137,151,233, - 137,252,238,72,137,194,137,252,253,137,92,36,28,232,251,1,1,139,149,233,133, - 192,15,132,244,249,248,32,15,182,75,252,253,139,104,4,139,0,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,248,3,139,141,233,137,89,252,244,141,153,233,41,211,139,105,252,248, - 184,237,252,233,244,29,248,37,137,4,36,199,68,36,4,237,72,141,4,36,128,123, - 252,252,235,15,133,244,247,255,65,141,142,233,137,41,199,65,4,237,137,205, - 252,233,244,248,248,38,15,182,67,252,254,255,72,141,4,36,252,233,244,247, - 248,39,15,182,67,252,254,141,4,194,248,1,15,182,107,252,255,141,44,252,234, - 248,2,139,124,36,24,137,151,233,137,252,238,72,137,194,137,252,253,137,92, - 36,28,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,75,252,253,139, - 108,202,4,139,12,202,137,104,4,137,8,248,40,139,3,15,182,204,15,182,232,131, - 195,4,193,232,16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244,15, - 182,67,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,153,233,41, - 211,139,105,252,248,184,237,252,233,244,29,248,41,139,108,36,24,137,149,233, - 141,52,202,141,20,194,137,252,239,15,182,75,252,252,137,92,36,28,232,251, - 1,3,248,3,139,149,233,255,131,252,248,1,15,135,244,42,248,4,141,91,4,15,130, - 244,252,248,5,15,183,67,252,254,141,156,253,131,233,248,6,139,3,15,182,204, - 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,43,131,195,4,129, - 120,253,4,239,15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233, - 244,4,248,45,131,252,235,4,137,206,137,252,233,139,108,36,24,137,149,233, - 255,137,194,137,252,239,137,92,36,28,232,251,1,4,252,233,244,3,248,46,65, - 141,4,199,252,233,244,247,248,47,65,141,4,199,141,44,252,234,149,252,233, - 244,248,248,48,141,4,194,137,197,252,233,244,248,248,49,141,4,194,248,1,141, - 44,252,234,248,2,141,12,202,68,15,182,67,252,252,137,206,137,193,139,124, - 36,24,137,151,233,137,252,234,137,252,253,137,92,36,28,232,251,1,5,139,149, - 233,133,192,15,132,244,40,248,42,137,193,41,208,137,89,252,244,141,152,233, - 255,184,237,252,233,244,27,248,50,139,108,36,24,137,149,233,141,52,194,137, - 252,239,137,92,36,28,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76, - 202,8,248,28,137,76,36,4,137,4,36,131,252,233,8,139,108,36,24,137,149,233, - 137,206,141,20,193,137,252,239,137,92,36,28,232,251,1,7,139,149,233,139,76, - 36,4,139,4,36,139,105,252,248,131,192,1,65,57,215,15,132,244,52,137,202,137, + 132,244,248,248,1,72,139,44,10,72,137,106,252,248,131,194,8,131,232,1,15, + 133,244,1,248,2,255,139,108,36,24,137,157,233,248,3,139,68,36,4,139,76,36, + 16,248,4,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,15,72, + 139,76,36,32,72,137,141,233,49,192,248,16,72,131,196,40,65,94,65,95,91,93, + 195,248,6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131, + 194,8,131,192,1,252,233,244,4,248,7,255,133,201,15,132,244,5,41,193,141,20, + 202,252,233,244,5,248,8,137,149,233,137,68,36,4,137,206,137,252,239,232,251, + 1,0,139,149,233,252,233,244,3,248,17,137,252,240,72,137,252,252,248,18,139, + 108,36,24,139,173,233,199,133,233,237,252,233,244,16,248,19,72,129,231,239, + 72,137,252,252,248,20,139,108,36,24,72,199,193,252,248,252,255,252,255,252, + 255,184,237,255,139,149,233,68,139,181,233,65,129,198,239,139,90,252,252, + 199,66,252,252,237,65,199,134,233,237,252,233,244,12,248,21,190,237,252,233, + 244,248,248,22,131,232,8,252,233,244,247,248,23,141,68,194,252,248,248,1, + 15,182,139,233,131,195,4,137,149,233,137,133,233,255,137,92,36,28,137,206, + 248,2,137,252,239,232,251,1,0,139,149,233,139,133,233,139,106,252,248,41, + 208,193,232,3,131,192,1,139,157,233,139,11,15,182,252,233,15,182,205,131, + 195,4,65,252,255,36,252,238,248,24,85,83,65,87,65,86,72,131,252,236,40,137, + 252,253,137,124,36,24,137,252,241,187,237,49,192,76,141,188,253,36,233,68, + 139,181,233,65,129,198,239,76,137,189,233,137,68,36,28,72,137,68,36,32,137, + 68,36,16,137,68,36,20,56,133,233,15,132,244,249,65,199,134,233,237,136,133, + 233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41,209,139,90,252, + 252,137,68,36,4,252,247,195,237,15,132,244,13,255,252,233,244,14,248,25,85, + 83,65,87,65,86,72,131,252,236,40,187,237,137,76,36,20,252,233,244,247,248, + 26,85,83,65,87,65,86,72,131,252,236,40,187,237,248,1,137,84,36,16,137,252, + 253,137,124,36,24,137,252,241,76,139,189,233,76,137,124,36,32,137,108,36, + 28,72,137,165,233,248,2,68,139,181,233,65,129,198,239,248,3,65,199,134,233, + 237,139,149,233,1,203,41,211,139,133,233,41,200,193,232,3,131,192,1,248,27, + 255,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,29,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,248,30,85,83,65,87,65,86,72,131,252,236,40,137,252,253, + 137,124,36,24,137,108,36,28,68,139,189,233,68,43,189,233,199,68,36,20,0,0, + 0,0,68,137,124,36,16,76,139,189,233,76,137,124,36,32,72,137,165,233,252,255, + 209,133,192,15,132,244,15,137,193,187,237,252,233,244,2,248,11,1,209,131, + 227,252,248,137,213,41,218,199,68,193,252,252,237,137,200,139,93,252,244, + 72,99,77,252,240,76,141,61,245,76,1,252,249,68,139,122,252,248,69,139,191, + 233,255,69,139,191,233,252,255,225,248,31,15,182,75,252,255,131,252,237,16, + 141,12,202,41,252,233,15,132,244,32,252,247,217,193,252,233,3,139,124,36, + 24,137,151,233,137,202,72,139,8,72,137,77,0,137,252,238,252,233,244,33,248, + 34,137,4,36,199,68,36,4,237,72,141,4,36,128,123,252,252,235,15,133,244,247, + 65,141,142,233,137,41,199,65,4,237,137,205,252,233,244,248,248,35,15,182, + 67,252,254,255,252,242,15,42,192,252,242,15,17,4,36,255,72,141,4,36,252,233, + 244,247,248,36,15,182,67,252,254,141,4,194,248,1,15,182,107,252,255,141,44, + 252,234,248,2,139,124,36,24,137,151,233,137,252,238,72,137,194,137,252,253, + 137,92,36,28,232,251,1,1,139,149,233,133,192,15,132,244,249,248,32,15,182, + 75,252,253,72,139,40,72,137,44,202,139,3,15,182,204,15,182,232,131,195,4, + 193,232,16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244,141,153, + 233,41,211,139,105,252,248,184,237,252,233,244,29,248,37,137,4,36,199,68, + 36,4,237,72,141,4,36,128,123,252,252,235,15,133,244,247,255,65,141,142,233, + 137,41,199,65,4,237,137,205,252,233,244,248,248,38,15,182,67,252,254,255, + 72,141,4,36,252,233,244,247,248,39,15,182,67,252,254,141,4,194,248,1,15,182, + 107,252,255,141,44,252,234,248,2,139,124,36,24,137,151,233,137,252,238,72, + 137,194,137,252,253,137,92,36,28,232,251,1,2,139,149,233,133,192,15,132,244, + 249,15,182,75,252,253,72,139,44,202,72,137,40,248,40,139,3,15,182,204,15, + 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,139,141,233,137, + 89,252,244,15,182,67,252,253,72,139,44,194,72,137,105,16,141,153,233,41,211, + 139,105,252,248,184,237,252,233,244,29,248,41,139,108,36,24,137,149,233,141, + 52,202,141,20,194,137,252,239,15,182,75,252,252,137,92,36,28,232,251,1,3, + 248,3,139,149,233,255,131,252,248,1,15,135,244,42,248,4,141,91,4,15,130,244, + 252,248,5,15,183,67,252,254,141,156,253,131,233,248,6,139,3,15,182,204,15, + 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,43,131,195,4,129,120, + 253,4,239,15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233,244, + 4,248,45,131,252,235,4,137,206,137,252,233,139,108,36,24,137,149,233,255, + 137,194,137,252,239,137,92,36,28,232,251,1,4,252,233,244,3,248,46,65,141, + 4,199,252,233,244,247,248,47,65,141,4,199,141,44,252,234,149,252,233,244, + 248,248,48,141,4,194,137,197,252,233,244,248,248,49,141,4,194,248,1,141,44, + 252,234,248,2,141,12,202,68,15,182,67,252,252,137,206,137,193,139,124,36, + 24,137,151,233,137,252,234,137,252,253,137,92,36,28,232,251,1,5,139,149,233, + 133,192,15,132,244,40,248,42,137,193,41,208,137,89,252,244,141,152,233,255, + 184,237,252,233,244,27,248,50,139,108,36,24,137,149,233,141,52,194,137,252, + 239,137,92,36,28,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76,202, + 8,248,28,137,76,36,4,137,4,36,131,252,233,8,139,108,36,24,137,149,233,137, + 206,141,20,193,137,252,239,137,92,36,28,232,251,1,7,139,149,233,139,76,36, + 4,139,4,36,139,105,252,248,131,192,1,65,57,215,15,132,244,52,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,248,53,139,108,36,24,137,149,233,137,206,137,252,239,137,92, 36,28,232,251,1,8,139,149,233,139,67,252,252,15,182,204,15,182,232,193,232, 16,65,252,255,164,253,252,238,233,248,54,255,129,252,248,239,15,130,244,55, 139,106,4,129,252,253,239,15,131,244,55,139,90,252,252,137,68,36,4,137,106, 252,252,139,42,137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131, - 193,8,139,105,4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244, - 1,248,2,139,68,36,4,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139, - 106,4,137,252,233,193,252,249,15,131,252,249,252,254,15,132,244,249,255,184, - 237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255, - 248,2,139,106,252,248,139,132,253,197,233,139,90,252,252,199,66,252,252,237, - 137,66,252,248,252,233,244,58,248,3,184,237,252,233,244,2,248,59,129,252, - 248,239,15,130,244,55,139,106,4,139,90,252,252,129,252,253,239,15,133,244, - 252,248,1,139,42,139,173,233,248,2,133,252,237,199,66,252,252,237,255,15, - 132,244,58,65,139,134,233,199,66,252,252,237,137,106,252,248,139,141,233, - 35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57, - 129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,255,252,233, - 244,58,248,5,139,105,4,129,252,253,239,15,132,244,58,139,1,137,106,252,252, - 137,66,252,248,252,233,244,58,248,6,129,252,253,239,15,132,244,1,129,252, - 253,239,15,135,244,253,189,237,248,7,252,247,213,65,139,172,253,174,233,252, - 233,244,2,248,60,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133, - 244,55,139,42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133,244,55, - 139,66,8,137,133,233,139,90,252,252,199,66,252,252,237,137,106,252,248,252, - 246,133,233,235,15,132,244,247,128,165,233,235,255,65,139,134,233,65,137, - 174,233,137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244, - 55,129,122,253,4,239,15,133,244,55,137,213,139,50,141,82,8,139,124,36,24, - 232,251,1,9,137,252,234,139,40,139,64,4,139,90,252,252,137,106,252,248,137, - 66,252,252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253, - 4,239,255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252, - 233,244,64,255,248,65,129,252,248,239,15,130,244,55,139,90,252,252,129,122, - 253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252, - 233,244,58,248,3,129,122,253,4,239,15,135,244,55,65,131,190,233,0,15,133, - 244,55,65,139,174,233,65,59,174,233,255,15,130,244,247,232,244,66,248,1,139, - 108,36,24,137,149,233,137,92,36,28,137,214,137,252,239,232,251,1,10,139,149, - 233,252,233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248, - 1,129,122,253,4,239,15,133,244,55,139,108,36,24,137,149,233,255,137,149,233, - 139,90,252,252,139,50,141,82,8,137,252,239,137,92,36,28,232,251,1,11,139, - 149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66, - 252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69, - 248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58, - 248,70,129,252,248,239,15,130,244,55,255,139,106,252,248,129,122,253,4,239, - 15,133,244,55,139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248, - 199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55, - 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,90,252, - 252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88, - 193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131, - 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40, - 139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72, - 137,252,239,137,213,137,198,232,251,1,12,137,252,234,133,192,15,133,244,1, - 248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139, - 106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,90,252,252,199, - 66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252, - 238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244, - 55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237,235,131, - 229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122, - 253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139, - 90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129, - 252,248,239,15,130,244,55,139,42,139,90,252,252,137,92,36,28,137,44,36,129, - 122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235, - 15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248, - 1,141,92,193,252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137, - 149,233,131,194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244, - 249,248,2,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, - 255,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,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,2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199, - 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,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,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,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, + 193,8,72,139,41,72,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36, + 4,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,137,252,233, + 193,252,249,15,131,252,249,252,254,15,132,244,249,255,184,237,252,247,213, + 57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,106,252, + 248,139,132,253,197,233,139,90,252,252,199,66,252,252,237,137,66,252,248, + 252,233,244,58,248,3,184,237,252,233,244,2,248,59,129,252,248,239,15,130, + 244,55,139,106,4,139,90,252,252,129,252,253,239,15,133,244,252,248,1,139, + 42,139,173,233,248,2,133,252,237,199,66,252,252,237,255,15,132,244,58,65, + 139,134,233,199,66,252,252,237,137,106,252,248,139,141,233,35,136,233,105, + 201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57,129,233,15,132, + 244,251,248,4,139,137,233,133,201,15,133,244,3,255,252,233,244,58,248,5,139, + 105,4,129,252,253,239,15,132,244,58,139,1,137,106,252,252,137,66,252,248, + 252,233,244,58,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15,135, + 244,253,189,237,248,7,252,247,213,65,139,172,253,174,233,252,233,244,2,248, + 60,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139, + 42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133,244,55,139,66,8, + 137,133,233,139,90,252,252,199,66,252,252,237,137,106,252,248,252,246,133, + 233,235,15,132,244,247,128,165,233,235,255,65,139,134,233,65,137,174,233, + 137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,133,244,55,137,213,139,50,141,82,8,139,124,36,24,232,251, + 1,9,137,252,234,72,139,40,139,90,252,252,72,137,106,252,248,252,233,244,58, + 248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,255,15,135,244,55, + 255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,255,248,65,129, + 252,248,239,15,130,244,55,139,90,252,252,129,122,253,4,239,15,133,244,249, + 139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,129,122, + 253,4,239,15,135,244,55,65,131,190,233,0,15,133,244,55,65,139,174,233,65, + 59,174,233,255,15,130,244,247,232,244,66,248,1,139,108,36,24,137,149,233, + 137,92,36,28,137,214,137,252,239,232,251,1,10,139,149,233,252,233,244,2,248, + 67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,15, + 133,244,55,139,108,36,24,137,149,233,255,137,149,233,139,90,252,252,139,50, + 141,82,8,137,252,239,137,92,36,28,232,251,1,11,139,149,233,133,192,15,132, + 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184, + 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252, + 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,106,252,248, + 129,122,253,4,239,15,133,244,55,139,133,233,139,90,252,252,199,66,252,252, + 237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,248,71,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, + 244,55,139,90,252,252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110, + 205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,139, + 42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239, + 15,132,244,72,72,139,40,72,137,42,252,233,244,68,248,2,131,189,233,0,15,132, + 244,72,137,252,239,137,213,137,198,232,251,1,12,137,252,234,133,192,15,133, + 244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244, + 55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,90,252, + 252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255, + 217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15, + 130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237, + 235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15,130,244, + 55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237, + 139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252,233,244, + 1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137,92,36,28, + 137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55, + 128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15, + 132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157,233, + 139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,221, + 57,203,15,132,244,249,248,2,72,139,4,43,72,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,255, + 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,137,213,72,41,205,248,5, + 72,139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,2, + 199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,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,72,139,1,72,137, + 2,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,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,72,139,4,43,72,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,72, + 139,1,72,137,4,41,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,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, - 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,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,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, + 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,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,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,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, @@ -491,50 +488,49 @@ static const unsigned char build_actionlist[14093] = { 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, + 16,65,252,255,36,252,238,255,72,139,44,194,72,137,44,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,72, + 139,4,252,234,72,137,4,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,72,139,69,0,72,137,4,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, @@ -571,129 +567,127 @@ static const unsigned char build_actionlist[14093] = { 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, + 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139, + 40,72,137,44,202,248,1,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,249,139,141,233,252,246, + 129,233,235,15,132,244,36,15,182,75,252,253,248,3,255,199,68,202,4,237,252, + 233,244,1,248,5,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,72,139,41, + 72,137,44,194,248,2,255,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,199,68,194,4,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,72, + 139,40,72,137,44,202,248,1,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,249,139,141,233,252, + 246,129,233,235,15,132,244,35,255,15,182,75,252,253,248,3,199,68,202,4,237, + 252,233,244,1,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,72,139,44,202, + 72,137,40,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,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, + 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,72,139,44,194,72,137,41,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,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, + 2,72,139,12,202,72,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,72,139,41,131,193,8,73,137,47,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 + 248,2,72,139,41,131,193,8,73,137,47,65,131,199,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,72,139, + 105,232,72,139,65,252,240,72,137,41,72,137,65,8,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,73,139,71,252,248,65,131,199, + 8,72,137,1,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,73,139,71,252,248,65,131,199,8,72,137,1,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,73,139,44,15,73,137,111,252,248,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,72, + 139,44,10,72,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 { @@ -1060,379 +1054,379 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) { dasm_put(Dst, 0); dasm_put(Dst, 2, FRAME_P, LJ_TTRUE, FRAME_TYPE, FRAME_C, FRAME_TYPE, DISPATCH_GL(vmstate), ~LJ_VMST_C); - dasm_put(Dst, 115, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); - dasm_put(Dst, 206, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); - dasm_put(Dst, 302, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); - dasm_put(Dst, 371, Dt1(->base), Dt1(->top), Dt7(->pc), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE); - dasm_put(Dst, 535, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); - dasm_put(Dst, 648, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc)); - dasm_put(Dst, 813, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); + dasm_put(Dst, 109, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); + dasm_put(Dst, 200, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); + dasm_put(Dst, 296, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 365, Dt1(->base), Dt1(->top), Dt7(->pc), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE); + dasm_put(Dst, 529, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 642, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc)); + dasm_put(Dst, 807, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); if (sse) { - dasm_put(Dst, 922); + dasm_put(Dst, 912); } else { } - dasm_put(Dst, 934, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); - dasm_put(Dst, 1085, DISPATCH_GL(tmptv), LJ_TTAB); + dasm_put(Dst, 924, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); + dasm_put(Dst, 1070, DISPATCH_GL(tmptv), LJ_TTAB); if (sse) { - dasm_put(Dst, 922); + dasm_put(Dst, 912); } else { } - dasm_put(Dst, 1109, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); - dasm_put(Dst, 1291, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); - dasm_put(Dst, 1390, Dt1(->base), Dt1(->base), FRAME_CONT); - dasm_put(Dst, 1513, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); - dasm_put(Dst, 1691, 1+1, LJ_TISTRUECOND, 1+1); - dasm_put(Dst, 1802, ~LJ_TNUMX); + dasm_put(Dst, 1094, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 1266, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); + dasm_put(Dst, 1365, Dt1(->base), Dt1(->base), FRAME_CONT); + dasm_put(Dst, 1488, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); + dasm_put(Dst, 1666, 1+1, LJ_TISTRUECOND, 1+1); + dasm_put(Dst, 1772, ~LJ_TNUMX); if (cmov) { - dasm_put(Dst, 1810); + dasm_put(Dst, 1780); } else { - dasm_put(Dst, 1814); + dasm_put(Dst, 1784); } - dasm_put(Dst, 1823, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); - dasm_put(Dst, 1902, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); - dasm_put(Dst, 1960, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); - dasm_put(Dst, 2029, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK)); - dasm_put(Dst, 2098, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM); - dasm_put(Dst, 2189); + dasm_put(Dst, 1793, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); + dasm_put(Dst, 1872, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); + dasm_put(Dst, 1930, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); + dasm_put(Dst, 1999, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK)); + dasm_put(Dst, 2068, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM); + dasm_put(Dst, 2154); if (sse) { - dasm_put(Dst, 2194); + dasm_put(Dst, 2159); } else { - dasm_put(Dst, 2204); + dasm_put(Dst, 2169); } - dasm_put(Dst, 2211, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); - dasm_put(Dst, 2280, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); - dasm_put(Dst, 2349, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); - dasm_put(Dst, 2446, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 2176, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); + dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); + dasm_put(Dst, 2402, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 2518, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); + dasm_put(Dst, 2474, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); } else { } - dasm_put(Dst, 2551, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); - dasm_put(Dst, 2632, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); + dasm_put(Dst, 2507, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); + dasm_put(Dst, 2584, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); if (sse) { - dasm_put(Dst, 2670); + dasm_put(Dst, 2622); } else { - dasm_put(Dst, 2680); + dasm_put(Dst, 2632); } - dasm_put(Dst, 2687, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); - dasm_put(Dst, 2752, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); - 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, 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)); + dasm_put(Dst, 2639, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); + dasm_put(Dst, 2704, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); + dasm_put(Dst, 2793, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); + dasm_put(Dst, 2880, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); + dasm_put(Dst, 2995, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); + dasm_put(Dst, 3090, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 3156, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); + dasm_put(Dst, 3245, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); + dasm_put(Dst, 3355, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); if (sse) { - dasm_put(Dst, 3456, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); + dasm_put(Dst, 3382, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 3520, 1+1, LJ_TISNUM); + dasm_put(Dst, 3446, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3556, 1+1, FRAME_TYPE, LJ_TNIL); + dasm_put(Dst, 3482, 1+1, FRAME_TYPE, LJ_TNIL); if (sse) { - dasm_put(Dst, 3651, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3713, 1+1, LJ_TISNUM); + dasm_put(Dst, 3577, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3639, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 3743, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3802, 1+1, LJ_TISNUM); + dasm_put(Dst, 3669, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3728, 1+1, LJ_TISNUM); } - 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); + dasm_put(Dst, 3755, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3824, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3881, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3944, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 4034); if (sse) { - dasm_put(Dst, 4120, 1+1, LJ_TISNUM); + dasm_put(Dst, 4046, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4145); + dasm_put(Dst, 4071); if (sse) { - dasm_put(Dst, 4159, 1+1, LJ_TISNUM); + dasm_put(Dst, 4085, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4184); + dasm_put(Dst, 4110); if (sse) { - dasm_put(Dst, 4198, 1+1, LJ_TISNUM); + dasm_put(Dst, 4124, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4223); + dasm_put(Dst, 4149); if (sse) { - dasm_put(Dst, 4239, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4165, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } else { - dasm_put(Dst, 4278, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4204, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } - dasm_put(Dst, 4311, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); - dasm_put(Dst, 4376, 1+1, LJ_TISNUM); + dasm_put(Dst, 4237, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4302, 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4475); + dasm_put(Dst, 4401); } else { - dasm_put(Dst, 4481); + dasm_put(Dst, 4407); } - dasm_put(Dst, 4488); + dasm_put(Dst, 4414); if (sse) { - dasm_put(Dst, 4513); + dasm_put(Dst, 4439); } else { - dasm_put(Dst, 4519); + dasm_put(Dst, 4445); } - dasm_put(Dst, 4522, 1+2); + dasm_put(Dst, 4448, 1+2); if (sse) { - dasm_put(Dst, 4531); + dasm_put(Dst, 4457); } else { - dasm_put(Dst, 4539); + dasm_put(Dst, 4465); } - dasm_put(Dst, 4547); + dasm_put(Dst, 4473); if (sse) { - dasm_put(Dst, 4550, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); + dasm_put(Dst, 4476, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); } else { - dasm_put(Dst, 4577); + dasm_put(Dst, 4503); } - dasm_put(Dst, 4594); + dasm_put(Dst, 4520); if (sse) { - dasm_put(Dst, 4610, 1+1, LJ_TISNUM); + dasm_put(Dst, 4536, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4635, 1+1, LJ_TISNUM); + dasm_put(Dst, 4561, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4657); + dasm_put(Dst, 4583); if (sse) { - dasm_put(Dst, 4679); + dasm_put(Dst, 4605); } else { - dasm_put(Dst, 4705); + dasm_put(Dst, 4631); } - dasm_put(Dst, 4722, 1+2); + dasm_put(Dst, 4648, 1+2); if (sse) { - dasm_put(Dst, 4762); + dasm_put(Dst, 4688); } else { - dasm_put(Dst, 4770); + dasm_put(Dst, 4696); } - dasm_put(Dst, 4780, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4706, 2+1, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4832, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4758, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 4879, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4805, 2+1, LJ_TISNUM, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 4920, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4846, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (sse) { - dasm_put(Dst, 4991, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4917, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (!sse) { - dasm_put(Dst, 5062); + dasm_put(Dst, 4988); } - dasm_put(Dst, 5071, 1+1, LJ_TSTR); + dasm_put(Dst, 4997, 1+1, LJ_TSTR); if (sse) { - dasm_put(Dst, 5093, Dt5(->len)); + dasm_put(Dst, 5019, Dt5(->len)); } else { - dasm_put(Dst, 5104, Dt5(->len)); + dasm_put(Dst, 5030, Dt5(->len)); } - dasm_put(Dst, 5112, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); + dasm_put(Dst, 5038, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); if (sse) { - dasm_put(Dst, 5150); + dasm_put(Dst, 5076); } else { - dasm_put(Dst, 5160); + dasm_put(Dst, 5086); } - dasm_put(Dst, 5171, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); + dasm_put(Dst, 5097, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5208); + dasm_put(Dst, 5134); } else { - dasm_put(Dst, 5230); + dasm_put(Dst, 5156); } - 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); + dasm_put(Dst, 5176, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); + dasm_put(Dst, 2154); if (sse) { - dasm_put(Dst, 5359); + dasm_put(Dst, 5285); } else { - dasm_put(Dst, 5370); + dasm_put(Dst, 5296); } - dasm_put(Dst, 5378, LJ_TSTR, LJ_TISNUM, Dt5(->len)); + dasm_put(Dst, 5304, LJ_TSTR, LJ_TISNUM, Dt5(->len)); if (sse) { - dasm_put(Dst, 5408); + dasm_put(Dst, 5334); } else { } - 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); + dasm_put(Dst, 5341, sizeof(GCstr)-1); + dasm_put(Dst, 5416, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 5477, LJ_TSTR, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5572); + dasm_put(Dst, 5498); } else { - dasm_put(Dst, 5579); + dasm_put(Dst, 5505); } - 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); + dasm_put(Dst, 5517, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5585, 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, 5652, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); + dasm_put(Dst, 5725, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5810, 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, 5884, 1+1, LJ_TTAB); if (sse) { - dasm_put(Dst, 6025); + dasm_put(Dst, 5951); } else { } if (sse) { - dasm_put(Dst, 6035, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 5961, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } if (sse) { - dasm_put(Dst, 6087, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6013, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6130, LJ_TISNUM); + dasm_put(Dst, 6056, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6157); + dasm_put(Dst, 6083); } else { } - dasm_put(Dst, 6174); + dasm_put(Dst, 6100); if (sse) { - dasm_put(Dst, 6182, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6108, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6130, LJ_TISNUM); + dasm_put(Dst, 6056, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6225); + dasm_put(Dst, 6151); } else { } - dasm_put(Dst, 6174); + dasm_put(Dst, 6100); if (sse) { - dasm_put(Dst, 6242, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6168, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6130, LJ_TISNUM); + dasm_put(Dst, 6056, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6285); + dasm_put(Dst, 6211); } else { } - dasm_put(Dst, 6174); + dasm_put(Dst, 6100); if (sse) { - dasm_put(Dst, 6302, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6228, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6345); + dasm_put(Dst, 6271); if (sse) { - dasm_put(Dst, 6352, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6278, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6395); + dasm_put(Dst, 6321); if (sse) { - dasm_put(Dst, 6399); + dasm_put(Dst, 6325); } else { } - dasm_put(Dst, 6411); + dasm_put(Dst, 6337); if (sse) { - dasm_put(Dst, 6422, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6348, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6491); + dasm_put(Dst, 6417); if (sse) { - dasm_put(Dst, 6500, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6426, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6569); + dasm_put(Dst, 6495); if (sse) { - dasm_put(Dst, 6579, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6505, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6648); + dasm_put(Dst, 6574); if (sse) { - dasm_put(Dst, 6658, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6584, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6727); + dasm_put(Dst, 6653); if (sse) { - dasm_put(Dst, 6736, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6662, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - 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)); + dasm_put(Dst, 6731, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); + dasm_put(Dst, 6809, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 6936, Dt1(->top), Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7049, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); + dasm_put(Dst, 6975, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); #endif - 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); + dasm_put(Dst, 7008, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); + dasm_put(Dst, 7062, Dt1(->base), Dt1(->base), GG_DISP2STATIC); #if LJ_HASJIT - dasm_put(Dst, 7203, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); + dasm_put(Dst, 7129, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); #endif - dasm_put(Dst, 7250); + dasm_put(Dst, 7176); #if LJ_HASJIT - dasm_put(Dst, 7077); + dasm_put(Dst, 7003); #endif - dasm_put(Dst, 7257); + dasm_put(Dst, 7183); #if LJ_HASJIT - dasm_put(Dst, 7260); + dasm_put(Dst, 7186); #endif - dasm_put(Dst, 7270, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7196, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7303); + dasm_put(Dst, 7229); #endif - dasm_put(Dst, 7308, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7234, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - 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); + dasm_put(Dst, 7265, 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, 7578); + dasm_put(Dst, 7504); #if LJ_HASJIT - dasm_put(Dst, 7581, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); + dasm_put(Dst, 7507, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); #endif - dasm_put(Dst, 7681); + dasm_put(Dst, 7607); if (!sse) { - dasm_put(Dst, 7684); + dasm_put(Dst, 7610); } - 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)); + dasm_put(Dst, 7655, (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, 7815); + dasm_put(Dst, 7741); } - 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)); + dasm_put(Dst, 7786, (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, 7946); + dasm_put(Dst, 7872); } - 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)); + dasm_put(Dst, 7911, (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, 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)); + dasm_put(Dst, 8000, (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, 8188); + dasm_put(Dst, 8114); } - dasm_put(Dst, 8235); + dasm_put(Dst, 8161); if (!sse) { } else { - dasm_put(Dst, 8312); + dasm_put(Dst, 8238); } - 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); + dasm_put(Dst, 8241); + dasm_put(Dst, 8326, (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, 8427, (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, 8601); #if LJ_HASJIT if (sse) { - dasm_put(Dst, 8716); - dasm_put(Dst, 8786); - dasm_put(Dst, 8858); + dasm_put(Dst, 8642); + dasm_put(Dst, 8712); + dasm_put(Dst, 8784); } else { - dasm_put(Dst, 8910); - dasm_put(Dst, 9002); + dasm_put(Dst, 8836); + dasm_put(Dst, 8928); } - dasm_put(Dst, 9048); + dasm_put(Dst, 8974); #endif - dasm_put(Dst, 9052); + dasm_put(Dst, 8978); if (sse) { - 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)); + dasm_put(Dst, 8981, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); + dasm_put(Dst, 9066, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 9268); - dasm_put(Dst, 9351); + dasm_put(Dst, 9194); + dasm_put(Dst, 9277); if (cmov) { - dasm_put(Dst, 9406); + dasm_put(Dst, 9332); } else { - dasm_put(Dst, 9425); + dasm_put(Dst, 9351); } - dasm_put(Dst, 9048); + dasm_put(Dst, 8974); } - dasm_put(Dst, 9466); + dasm_put(Dst, 9392); } /* 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, 1800, defop); + dasm_put(Dst, 1770, defop); switch (op) { @@ -1441,592 +1435,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, 9488, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9414, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9509); + dasm_put(Dst, 9435); } else { - dasm_put(Dst, 9524); + dasm_put(Dst, 9450); if (cmov) { - dasm_put(Dst, 9534); + dasm_put(Dst, 9460); } else { - dasm_put(Dst, 9540); + dasm_put(Dst, 9466); } } switch (op) { case BC_ISLT: - dasm_put(Dst, 9547); + dasm_put(Dst, 9473); break; case BC_ISGE: - dasm_put(Dst, 9346); + dasm_put(Dst, 9272); break; case BC_ISLE: - dasm_put(Dst, 5953); + dasm_put(Dst, 5879); break; case BC_ISGT: - dasm_put(Dst, 9552); + dasm_put(Dst, 9478); break; default: break; /* Shut up GCC. */ } - dasm_put(Dst, 9557, -BCBIAS_J*4); + dasm_put(Dst, 9483, -BCBIAS_J*4); break; case BC_ISEQV: case BC_ISNEV: vk = op == BC_ISEQV; - dasm_put(Dst, 9592, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9518, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9618); + dasm_put(Dst, 9544); } else { - dasm_put(Dst, 9630); + dasm_put(Dst, 9556); if (cmov) { - dasm_put(Dst, 9534); + dasm_put(Dst, 9460); } else { - dasm_put(Dst, 9540); + dasm_put(Dst, 9466); } } iseqne_fp: if (vk) { - dasm_put(Dst, 9637); + dasm_put(Dst, 9563); } else { - dasm_put(Dst, 9646); + dasm_put(Dst, 9572); } iseqne_end: if (vk) { - dasm_put(Dst, 9655, -BCBIAS_J*4); + dasm_put(Dst, 9581, -BCBIAS_J*4); } else { - dasm_put(Dst, 9670, -BCBIAS_J*4); + dasm_put(Dst, 9596, -BCBIAS_J*4); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); if (op == BC_ISEQV || op == BC_ISNEV) { - dasm_put(Dst, 9685, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt6(->nomm), 1<>32)); + dasm_put(Dst, 9899, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); } else { - dasm_put(Dst, 10004); + dasm_put(Dst, 9924); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_LEN: - dasm_put(Dst, 10013, LJ_TSTR); + dasm_put(Dst, 9933, LJ_TSTR); if (sse) { - dasm_put(Dst, 10027, Dt5(->len)); + dasm_put(Dst, 9947, Dt5(->len)); } else { - dasm_put(Dst, 10045, Dt5(->len)); + dasm_put(Dst, 9965, Dt5(->len)); } - dasm_put(Dst, 10054, LJ_TTAB); + dasm_put(Dst, 9974, LJ_TTAB); if (sse) { - dasm_put(Dst, 10096); + dasm_put(Dst, 10016); } else { } - dasm_put(Dst, 10105); + dasm_put(Dst, 10025); break; /* -- Binary ops -------------------------------------------------------- */ case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10135); + dasm_put(Dst, 10055); } else { - dasm_put(Dst, 10150); + dasm_put(Dst, 10070); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10171); + dasm_put(Dst, 10091); } else { - dasm_put(Dst, 10186); + dasm_put(Dst, 10106); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10217); + dasm_put(Dst, 10137); } else { - dasm_put(Dst, 10231); + dasm_put(Dst, 10151); } break; } if (sse) { - dasm_put(Dst, 9997); + dasm_put(Dst, 9917); } else { - dasm_put(Dst, 10009); + dasm_put(Dst, 9929); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10239); + dasm_put(Dst, 10159); } else { - dasm_put(Dst, 10254); + dasm_put(Dst, 10174); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10263); + dasm_put(Dst, 10183); } else { - dasm_put(Dst, 10278); + dasm_put(Dst, 10198); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10287); + dasm_put(Dst, 10207); } else { - dasm_put(Dst, 10301); + dasm_put(Dst, 10221); } break; } if (sse) { - dasm_put(Dst, 9997); + dasm_put(Dst, 9917); } else { - dasm_put(Dst, 10009); + dasm_put(Dst, 9929); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_MULVN: case BC_MULNV: case BC_MULVV: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10309); + dasm_put(Dst, 10229); } else { - dasm_put(Dst, 10324); + dasm_put(Dst, 10244); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10333); + dasm_put(Dst, 10253); } else { - dasm_put(Dst, 10348); + dasm_put(Dst, 10268); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10357); + dasm_put(Dst, 10277); } else { - dasm_put(Dst, 10371); + dasm_put(Dst, 10291); } break; } if (sse) { - dasm_put(Dst, 9997); + dasm_put(Dst, 9917); } else { - dasm_put(Dst, 10009); + dasm_put(Dst, 9929); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10379); + dasm_put(Dst, 10299); } else { - dasm_put(Dst, 10394); + dasm_put(Dst, 10314); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10403); + dasm_put(Dst, 10323); } else { - dasm_put(Dst, 10418); + dasm_put(Dst, 10338); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10427); + dasm_put(Dst, 10347); } else { - dasm_put(Dst, 10441); + dasm_put(Dst, 10361); } break; } if (sse) { - dasm_put(Dst, 9997); + dasm_put(Dst, 9917); } else { - dasm_put(Dst, 10009); + dasm_put(Dst, 9929); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_MODVN: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10449); + dasm_put(Dst, 10369); } else { - dasm_put(Dst, 10464); + dasm_put(Dst, 10384); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10473); + dasm_put(Dst, 10393); } else { - dasm_put(Dst, 10488); + dasm_put(Dst, 10408); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10497); + dasm_put(Dst, 10417); } else { - dasm_put(Dst, 10511); + dasm_put(Dst, 10431); } break; } - dasm_put(Dst, 10519); + dasm_put(Dst, 10439); if (sse) { - dasm_put(Dst, 9997); + dasm_put(Dst, 9917); } else { - dasm_put(Dst, 10009); + dasm_put(Dst, 9929); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_MODNV: case BC_MODVV: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10449); + dasm_put(Dst, 10369); } else { - dasm_put(Dst, 10464); + dasm_put(Dst, 10384); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10473); + dasm_put(Dst, 10393); } else { - dasm_put(Dst, 10488); + dasm_put(Dst, 10408); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10497); + dasm_put(Dst, 10417); } else { - dasm_put(Dst, 10511); + dasm_put(Dst, 10431); } break; } - dasm_put(Dst, 10525); + dasm_put(Dst, 10445); break; case BC_POW: - dasm_put(Dst, 10115); + dasm_put(Dst, 10035); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10123, LJ_TISNUM); + dasm_put(Dst, 10043, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10449); + dasm_put(Dst, 10369); } else { - dasm_put(Dst, 10464); + dasm_put(Dst, 10384); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10473); + dasm_put(Dst, 10393); } else { - dasm_put(Dst, 10488); + dasm_put(Dst, 10408); } break; default: - dasm_put(Dst, 10195, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10497); + dasm_put(Dst, 10417); } else { - dasm_put(Dst, 10511); + dasm_put(Dst, 10431); } break; } - dasm_put(Dst, 10530); + dasm_put(Dst, 10450); if (sse) { - dasm_put(Dst, 9997); + dasm_put(Dst, 9917); } else { - dasm_put(Dst, 10009); + dasm_put(Dst, 9929); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_CAT: - dasm_put(Dst, 10534, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 10454, Dt1(->base), Dt1(->base)); break; /* -- Constant ops ------------------------------------------------------ */ case BC_KSTR: - dasm_put(Dst, 10625, LJ_TSTR); + dasm_put(Dst, 10538, LJ_TSTR); break; case BC_KSHORT: if (sse) { - dasm_put(Dst, 10662); + dasm_put(Dst, 10575); } else { - dasm_put(Dst, 10677); + dasm_put(Dst, 10590); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_KNUM: if (sse) { - dasm_put(Dst, 10685); + dasm_put(Dst, 10598); } else { - dasm_put(Dst, 10699); + dasm_put(Dst, 10612); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_KPRI: - dasm_put(Dst, 10707); + dasm_put(Dst, 10620); break; case BC_KNIL: - dasm_put(Dst, 10736, LJ_TNIL); + dasm_put(Dst, 10649, LJ_TNIL); break; /* -- Upvalue and function ops ------------------------------------------ */ case BC_UGET: - dasm_put(Dst, 10784, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10697, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETV: #define TV2MARKOFS \ ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) - 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); + dasm_put(Dst, 10738, 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, 10834); break; #undef TV2MARKOFS case BC_USETS: - 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); + dasm_put(Dst, 10846, 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, 11034); + dasm_put(Dst, 10942); if (sse) { - dasm_put(Dst, 11039); + dasm_put(Dst, 10947); } else { - dasm_put(Dst, 9813); + dasm_put(Dst, 9739); } - dasm_put(Dst, 11047, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10955, offsetof(GCfuncL, uvptr), DtA(->v)); if (sse) { - dasm_put(Dst, 11056); + dasm_put(Dst, 10964); } else { - dasm_put(Dst, 11062); + dasm_put(Dst, 10970); } - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_USETP: - dasm_put(Dst, 11065, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10973, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_UCLO: - dasm_put(Dst, 11105, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 11013, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); break; case BC_FNEW: - dasm_put(Dst, 11161, Dt1(->base), Dt1(->base), LJ_TFUNC); + dasm_put(Dst, 11069, Dt1(->base), Dt1(->base), LJ_TFUNC); break; /* -- Table ops --------------------------------------------------------- */ case BC_TNEW: - dasm_put(Dst, 11228, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11136, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); break; case BC_TDUP: - dasm_put(Dst, 11352, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11260, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); break; case BC_GGET: - dasm_put(Dst, 11451, Dt7(->env)); + dasm_put(Dst, 11359, Dt7(->env)); break; case BC_GSET: - dasm_put(Dst, 11471, Dt7(->env)); + dasm_put(Dst, 11379, Dt7(->env)); break; case BC_TGETV: - dasm_put(Dst, 11491, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 11399, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11524); + dasm_put(Dst, 11432); } else { } - dasm_put(Dst, 11545, 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, 11743, 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, 11652, 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, 12035, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 11870, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); + dasm_put(Dst, 11950, 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, 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)); + dasm_put(Dst, 12014, 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, 12091, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); + dasm_put(Dst, 12178, 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, 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)); + dasm_put(Dst, 12270, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); + dasm_put(Dst, 12365, 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, 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)); + dasm_put(Dst, 12413, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 12563, 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, 10119); + dasm_put(Dst, 10039); if (op == BC_CALLM) { - dasm_put(Dst, 12684); + dasm_put(Dst, 12583); } - dasm_put(Dst, 12689, LJ_TFUNC, Dt7(->pc)); + dasm_put(Dst, 12588, LJ_TFUNC, Dt7(->pc)); break; case BC_CALLMT: - dasm_put(Dst, 12684); + dasm_put(Dst, 12583); break; case BC_CALLT: - 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); + dasm_put(Dst, 12631, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); + dasm_put(Dst, 12749, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); break; case BC_ITERC: - dasm_put(Dst, 12930, LJ_TFUNC, 2+1, Dt7(->pc)); + dasm_put(Dst, 12823, LJ_TFUNC, 2+1, Dt7(->pc)); break; case BC_VARG: - dasm_put(Dst, 13012, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); - dasm_put(Dst, 13186, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 12895, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); + dasm_put(Dst, 13062, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 12684); + dasm_put(Dst, 12583); break; case BC_RET: case BC_RET0: case BC_RET1: if (op != BC_RET0) { - dasm_put(Dst, 13263); + dasm_put(Dst, 13132); } - dasm_put(Dst, 13267, FRAME_TYPE); + dasm_put(Dst, 13136, FRAME_TYPE); switch (op) { case BC_RET: - dasm_put(Dst, 13286); + dasm_put(Dst, 13155); break; case BC_RET1: - dasm_put(Dst, 13350); + dasm_put(Dst, 13209); /* fallthrough */ case BC_RET0: - dasm_put(Dst, 13366); + dasm_put(Dst, 13219); default: break; } - dasm_put(Dst, 13377, Dt7(->pc), PC2PROTO(k)); + dasm_put(Dst, 13230, Dt7(->pc), PC2PROTO(k)); if (op == BC_RET) { - dasm_put(Dst, 13425, LJ_TNIL); + dasm_put(Dst, 13278, LJ_TNIL); } else { - dasm_put(Dst, 13436, LJ_TNIL); + dasm_put(Dst, 13289, LJ_TNIL); } - dasm_put(Dst, 13443, -FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 13296, -FRAME_VARG, FRAME_TYPEP); if (op != BC_RET0) { - dasm_put(Dst, 13467); + dasm_put(Dst, 13320); } - dasm_put(Dst, 4605); + dasm_put(Dst, 4531); break; /* -- Loops and branches ------------------------------------------------ */ @@ -2034,7 +2028,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 13471, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13324, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2046,57 +2040,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, 13492); + dasm_put(Dst, 13345); if (!vk) { - dasm_put(Dst, 13496, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 13349, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 13515); + dasm_put(Dst, 13368); if (!vk) { - dasm_put(Dst, 13519, LJ_TISNUM); + dasm_put(Dst, 13372, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 13528); + dasm_put(Dst, 13381); if (vk) { - dasm_put(Dst, 13540); + dasm_put(Dst, 13393); } else { - dasm_put(Dst, 13559); + dasm_put(Dst, 13412); } - dasm_put(Dst, 13564); + dasm_put(Dst, 13417); } else { - dasm_put(Dst, 13577); + dasm_put(Dst, 13430); if (vk) { - dasm_put(Dst, 13583); + dasm_put(Dst, 13436); } else { - dasm_put(Dst, 13599); + dasm_put(Dst, 13452); } - dasm_put(Dst, 13607); + dasm_put(Dst, 13460); if (cmov) { - dasm_put(Dst, 9534); + dasm_put(Dst, 9460); } else { - dasm_put(Dst, 9540); + dasm_put(Dst, 9466); } if (!cmov) { - dasm_put(Dst, 13612); + dasm_put(Dst, 13465); } } if (op == BC_FORI) { - dasm_put(Dst, 13618, -BCBIAS_J*4); + dasm_put(Dst, 13471, -BCBIAS_J*4); } else if (op == BC_JFORI) { - dasm_put(Dst, 13628, -BCBIAS_J*4, BC_JLOOP); + dasm_put(Dst, 13481, -BCBIAS_J*4, BC_JLOOP); } else if (op == BC_IFORL) { - dasm_put(Dst, 13642, -BCBIAS_J*4); + dasm_put(Dst, 13495, -BCBIAS_J*4); } else { - dasm_put(Dst, 13638, BC_JLOOP); + dasm_put(Dst, 13491, BC_JLOOP); } - dasm_put(Dst, 9569); + dasm_put(Dst, 9495); if (sse) { - dasm_put(Dst, 13652); + dasm_put(Dst, 13505); } break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 13471, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13324, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2105,33 +2099,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IITERL: - dasm_put(Dst, 13663, LJ_TNIL); + dasm_put(Dst, 13516, LJ_TNIL); if (op == BC_JITERL) { - dasm_put(Dst, 13678, BC_JLOOP); + dasm_put(Dst, 13531, BC_JLOOP); } else { - dasm_put(Dst, 13692, -BCBIAS_J*4); + dasm_put(Dst, 13545, -BCBIAS_J*4); } - dasm_put(Dst, 9873); + dasm_put(Dst, 9799); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 13471, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13324, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; case BC_ILOOP: - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); break; case BC_JLOOP: #if LJ_HASJIT - dasm_put(Dst, 13708, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); + dasm_put(Dst, 13561, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); #endif break; case BC_JMP: - dasm_put(Dst, 13749, -BCBIAS_J*4); + dasm_put(Dst, 13602, -BCBIAS_J*4); break; /* -- Function headers -------------------------------------------------- */ @@ -2145,7 +2139,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 13775, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13628, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -2155,47 +2149,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IFUNCF: - dasm_put(Dst, 13796, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); + dasm_put(Dst, 13649, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); if (op == BC_JFUNCF) { - dasm_put(Dst, 13827, BC_JLOOP); + dasm_put(Dst, 13680, BC_JLOOP); } else { - dasm_put(Dst, 9571); + dasm_put(Dst, 9497); } - dasm_put(Dst, 13836, LJ_TNIL); + dasm_put(Dst, 13689, LJ_TNIL); break; case BC_JFUNCV: #if !LJ_HASJIT break; #endif - dasm_put(Dst, 9050); + dasm_put(Dst, 8976); break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 13858, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); + dasm_put(Dst, 13711, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); if (op == BC_JFUNCV) { - dasm_put(Dst, 13827, BC_JLOOP); + dasm_put(Dst, 13680, BC_JLOOP); } else { - dasm_put(Dst, 13955, -4+PC2PROTO(k)); + dasm_put(Dst, 13808, -4+PC2PROTO(k)); } - dasm_put(Dst, 13980, LJ_TNIL); + dasm_put(Dst, 13833, LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: - dasm_put(Dst, 14002, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); + dasm_put(Dst, 13855, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); if (op == BC_FUNCC) { - dasm_put(Dst, 14032); + dasm_put(Dst, 13885); } else { - dasm_put(Dst, 14036); + dasm_put(Dst, 13889); } - dasm_put(Dst, 14044, DISPATCH_GL(vmstate), ~LJ_VMST_C); + dasm_put(Dst, 13897, DISPATCH_GL(vmstate), ~LJ_VMST_C); if (op == BC_FUNCC) { - dasm_put(Dst, 14054); + dasm_put(Dst, 13907); } else { - dasm_put(Dst, 14059, DISPATCH_GL(wrapf)); + dasm_put(Dst, 13912, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 14065, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 13918, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); break; /* ---------------------------------------------------------------------- */ @@ -2223,7 +2217,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx, cmov, sse); - dasm_put(Dst, 14091); + dasm_put(Dst, 13944); 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 6ef2e063..dba00741 100644 --- a/src/buildvm_x64win.h +++ b/src/buildvm_x64win.h @@ -12,689 +12,683 @@ #define DASM_SECTION_CODE_OP 0 #define DASM_SECTION_CODE_SUB 1 #define DASM_MAXSECTION 2 -static const unsigned char build_actionlist[14042] = { +static const unsigned char build_actionlist[13907] = { 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, 15,133,244,10,199,131,233,237,131,230,252,248,41,214,252,247,222,131,232, - 1,15,132,244,248,248,1,139,44,10,137,106,252,248,139,108,10,4,137,106,252, - 252,131,194,8,131,232,1,15,133,244,1,248,2,255,139,108,36,96,137,181,233, - 248,3,139,68,36,84,139,76,36,88,248,4,57,193,15,133,244,252,248,5,131,252, - 234,8,137,149,233,248,15,72,139,76,36,104,72,137,141,233,49,192,248,16,72, - 131,196,40,91,94,95,93,195,248,6,15,130,244,253,59,149,233,15,135,244,254, - 199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7,255,133,201,15, - 132,244,5,41,193,141,20,202,252,233,244,5,248,8,137,149,233,137,68,36,84, - 137,202,137,252,233,232,251,1,0,139,149,233,252,233,244,3,248,17,137,208, - 72,137,204,248,18,139,108,36,96,139,173,233,199,133,233,237,252,233,244,16, - 248,19,72,129,225,239,72,137,204,248,20,139,108,36,96,72,199,193,252,248, - 252,255,252,255,252,255,184,237,255,139,149,233,139,157,233,129,195,239,139, - 114,252,252,199,66,252,252,237,199,131,233,237,252,233,244,12,248,21,186, - 237,252,233,244,248,248,22,131,232,8,252,233,244,247,248,23,141,68,194,252, - 248,248,1,15,182,142,233,131,198,4,137,149,233,137,133,233,255,137,116,36, - 100,137,202,248,2,137,252,233,232,251,1,0,139,149,233,139,133,233,139,106, - 252,248,41,208,193,232,3,131,192,1,139,181,233,139,14,15,182,252,233,15,182, - 205,131,198,4,252,255,36,252,235,248,24,85,87,86,83,72,131,252,236,40,137, - 205,137,76,36,96,137,209,190,237,49,192,72,141,188,253,36,233,139,157,233, - 129,195,239,72,137,189,233,137,68,36,100,72,137,68,36,104,137,68,36,88,137, - 68,36,92,56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233, - 139,133,233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,84, - 252,247,198,237,15,132,244,13,255,252,233,244,14,248,25,85,87,86,83,72,131, - 252,236,40,190,237,68,137,76,36,92,252,233,244,247,248,26,85,87,86,83,72, - 131,252,236,40,190,237,248,1,68,137,68,36,88,137,205,137,76,36,96,137,209, - 72,139,189,233,72,137,124,36,104,137,108,36,100,72,137,165,233,248,2,139, - 157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133, - 233,41,200,193,232,3,131,192,1,248,27,255,139,105,252,248,129,121,253,252, - 252,239,15,133,244,28,248,29,137,202,137,114,252,252,139,181,233,139,14,15, - 182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,30,85,87,86,83,72, - 131,252,236,40,137,205,137,76,36,96,137,108,36,100,139,189,233,43,189,233, - 199,68,36,92,0,0,0,0,137,124,36,88,72,139,189,233,72,137,124,36,104,72,137, - 165,233,65,252,255,209,133,192,15,132,244,15,137,193,190,237,252,233,244, - 2,248,11,1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237, - 137,200,139,117,252,244,72,99,77,252,240,72,141,61,245,72,1,252,249,139,122, - 252,248,139,191,233,255,139,191,233,252,255,225,248,31,15,182,78,252,255, - 131,252,237,16,141,12,202,41,252,233,15,132,244,32,252,247,217,193,252,233, - 3,65,137,200,139,76,36,96,137,145,233,139,80,4,139,0,137,85,4,137,69,0,137, - 252,234,252,233,244,33,248,34,137,68,36,80,199,68,36,84,237,72,141,68,36, - 80,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137, - 205,252,233,244,248,248,35,15,182,70,252,254,255,252,242,15,42,192,252,242, - 15,17,68,36,80,255,72,141,68,36,80,252,233,244,247,248,36,15,182,70,252,254, - 141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,139,76,36,96,137, - 145,233,137,252,234,73,137,192,137,205,137,116,36,100,232,251,1,1,139,149, - 233,133,192,15,132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108, - 202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, - 36,252,235,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,252, - 248,184,237,252,233,244,29,248,37,137,68,36,80,199,68,36,84,237,72,141,68, - 36,80,128,126,252,252,235,15,133,244,247,255,141,139,233,137,41,199,65,4, - 237,137,205,252,233,244,248,248,38,15,182,70,252,254,255,72,141,68,36,80, - 252,233,244,247,248,39,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255, + 1,15,132,244,248,248,1,72,139,44,10,72,137,106,252,248,131,194,8,131,232, + 1,15,133,244,1,248,2,255,139,108,36,96,137,181,233,248,3,139,68,36,84,139, + 76,36,88,248,4,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248, + 15,72,139,76,36,104,72,137,141,233,49,192,248,16,72,131,196,40,91,94,95,93, + 195,248,6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131, + 194,8,131,192,1,252,233,244,4,248,7,255,133,201,15,132,244,5,41,193,141,20, + 202,252,233,244,5,248,8,137,149,233,137,68,36,84,137,202,137,252,233,232, + 251,1,0,139,149,233,252,233,244,3,248,17,137,208,72,137,204,248,18,139,108, + 36,96,139,173,233,199,133,233,237,252,233,244,16,248,19,72,129,225,239,72, + 137,204,248,20,139,108,36,96,72,199,193,252,248,252,255,252,255,252,255,184, + 237,255,139,149,233,139,157,233,129,195,239,139,114,252,252,199,66,252,252, + 237,199,131,233,237,252,233,244,12,248,21,186,237,252,233,244,248,248,22, + 131,232,8,252,233,244,247,248,23,141,68,194,252,248,248,1,15,182,142,233, + 131,198,4,137,149,233,137,133,233,255,137,116,36,100,137,202,248,2,137,252, + 233,232,251,1,0,139,149,233,139,133,233,139,106,252,248,41,208,193,232,3, + 131,192,1,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255, + 36,252,235,248,24,85,87,86,83,72,131,252,236,40,137,205,137,76,36,96,137, + 209,190,237,49,192,72,141,188,253,36,233,139,157,233,129,195,239,72,137,189, + 233,137,68,36,100,72,137,68,36,104,137,68,36,88,137,68,36,92,56,133,233,15, + 132,244,249,199,131,233,237,136,133,233,139,149,233,139,133,233,41,200,193, + 232,3,131,192,1,41,209,139,114,252,252,137,68,36,84,252,247,198,237,15,132, + 244,13,255,252,233,244,14,248,25,85,87,86,83,72,131,252,236,40,190,237,68, + 137,76,36,92,252,233,244,247,248,26,85,87,86,83,72,131,252,236,40,190,237, + 248,1,68,137,68,36,88,137,205,137,76,36,96,137,209,72,139,189,233,72,137, + 124,36,104,137,108,36,100,72,137,165,233,248,2,139,157,233,129,195,239,248, + 3,199,131,233,237,139,149,233,1,206,41,214,139,133,233,41,200,193,232,3,131, + 192,1,248,27,255,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248, + 29,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131, + 198,4,252,255,36,252,235,248,30,85,87,86,83,72,131,252,236,40,137,205,137, + 76,36,96,137,108,36,100,139,189,233,43,189,233,199,68,36,92,0,0,0,0,137,124, + 36,88,72,139,189,233,72,137,124,36,104,72,137,165,233,65,252,255,209,133, + 192,15,132,244,15,137,193,190,237,252,233,244,2,248,11,1,209,131,230,252, + 248,137,213,41,252,242,199,68,193,252,252,237,137,200,139,117,252,244,72, + 99,77,252,240,72,141,61,245,72,1,252,249,139,122,252,248,139,191,233,255, + 139,191,233,252,255,225,248,31,15,182,78,252,255,131,252,237,16,141,12,202, + 41,252,233,15,132,244,32,252,247,217,193,252,233,3,65,137,200,139,76,36,96, + 137,145,233,72,139,0,72,137,69,0,137,252,234,252,233,244,33,248,34,137,68, + 36,80,199,68,36,84,237,72,141,68,36,80,128,126,252,252,235,15,133,244,247, + 141,139,233,137,41,199,65,4,237,137,205,252,233,244,248,248,35,15,182,70, + 252,254,255,252,242,15,42,192,252,242,15,17,68,36,80,255,72,141,68,36,80, + 252,233,244,247,248,36,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255, 141,44,252,234,248,2,139,76,36,96,137,145,233,137,252,234,73,137,192,137, - 205,137,116,36,100,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182, - 78,252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,40,139,6,15,182,204, - 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,139,141,233,137, - 113,252,244,15,182,70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16, - 141,177,233,41,214,139,105,252,248,184,237,252,233,244,29,248,41,139,108, - 36,96,137,149,233,68,141,4,194,141,20,202,137,252,233,68,15,182,78,252,252, - 137,116,36,100,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135,244, - 42,248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,134, - 233,248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, - 235,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44, - 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,65,137,192,65,137,252, - 233,139,108,36,96,137,149,233,255,137,202,137,252,233,137,116,36,100,232, - 251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141, - 44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248, - 49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,65,137,232,65,137,193, - 15,182,70,252,252,137,68,36,32,139,108,36,96,137,149,233,137,202,137,252, - 233,137,116,36,100,232,251,1,5,139,149,233,133,192,15,132,244,40,248,42,137, - 193,41,208,137,113,252,244,141,176,233,255,184,237,252,233,244,27,248,50, - 139,108,36,96,137,149,233,141,20,194,137,252,233,137,116,36,100,232,251,1, - 6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137,76,36,84,137, - 68,36,80,131,252,233,8,139,108,36,96,137,149,233,137,202,68,141,4,193,137, - 252,233,137,116,36,100,232,251,1,7,139,149,233,139,76,36,84,139,68,36,80, - 139,105,252,248,131,192,1,57,215,15,132,244,52,137,202,137,114,252,252,139, - 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248, - 53,139,108,36,96,137,149,233,137,202,137,252,233,137,116,36,100,232,251,1, - 8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164, - 253,252,235,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,252, - 253,239,15,131,244,55,139,114,252,252,137,68,36,84,137,106,252,252,139,42, - 137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105, - 4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139, - 68,36,84,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,137, - 252,233,193,252,249,15,131,252,249,252,254,15,132,244,249,255,184,237,252, - 247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139, - 106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,137,66, - 252,248,252,233,244,58,248,3,184,237,252,233,244,2,248,59,129,252,248,239, - 15,130,244,55,139,106,4,139,114,252,252,129,252,253,239,15,133,244,252,248, - 1,139,42,139,173,233,248,2,133,252,237,199,66,252,252,237,255,15,132,244, - 58,139,131,233,199,66,252,252,237,137,106,252,248,139,141,233,35,136,233, - 105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57,129,233,15, - 132,244,251,248,4,139,137,233,133,201,15,133,244,3,255,252,233,244,58,248, - 5,139,105,4,129,252,253,239,15,132,244,58,139,1,137,106,252,252,137,66,252, - 248,252,233,244,58,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15, - 135,244,253,189,237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248, - 60,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139, - 42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133,244,55,139,66,8, - 137,133,233,139,114,252,252,199,66,252,252,237,137,106,252,248,252,246,133, - 233,235,15,132,244,247,128,165,233,235,255,139,131,233,137,171,233,137,133, - 233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,55,129,122,253, - 4,239,15,133,244,55,137,213,68,141,66,8,139,18,139,76,36,96,232,251,1,9,137, - 252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252, - 233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,255,15, - 135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64,255, - 248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239,15, - 133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,58, - 248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139,171, - 233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36,96,137,149, - 233,137,116,36,100,137,252,233,232,251,1,10,139,149,233,252,233,244,2,248, - 67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,15, - 133,244,55,139,108,36,96,137,149,233,255,137,149,233,139,114,252,252,68,141, - 66,8,139,18,137,252,233,137,116,36,100,232,251,1,11,139,149,233,133,192,15, - 132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,16, - 139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12,237, - 252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252,248, - 239,15,130,244,55,255,139,106,252,248,129,122,253,4,239,15,133,244,55,139, - 133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184, - 237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239, - 15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242, - 15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,15, - 45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193, - 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137, - 42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233, - 137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184, - 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,106,252,248, - 129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252, - 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90, - 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74, - 8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,1,252, - 238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239, - 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,8,137, - 106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,248, - 239,15,130,244,55,139,42,139,114,252,252,137,116,36,100,137,108,36,80,129, - 122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235, - 15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248, - 1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,96, - 137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,206,15, - 132,244,249,248,2,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,255,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,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,2,199,66,252,252,237,248,7,139,116,36,100,137,68,36,84,72, - 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,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, - 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, + 205,137,116,36,100,232,251,1,1,139,149,233,133,192,15,132,244,249,248,32, + 15,182,78,252,253,72,139,40,72,137,44,202,139,6,15,182,204,15,182,232,131, + 198,4,193,232,16,252,255,36,252,235,248,3,139,141,233,137,113,252,244,141, + 177,233,41,214,139,105,252,248,184,237,252,233,244,29,248,37,137,68,36,80, + 199,68,36,84,237,72,141,68,36,80,128,126,252,252,235,15,133,244,247,255,141, + 139,233,137,41,199,65,4,237,137,205,252,233,244,248,248,38,15,182,70,252, + 254,255,72,141,68,36,80,252,233,244,247,248,39,15,182,70,252,254,141,4,194, + 248,1,15,182,110,252,255,141,44,252,234,248,2,139,76,36,96,137,145,233,137, + 252,234,73,137,192,137,205,137,116,36,100,232,251,1,2,139,149,233,133,192, + 15,132,244,249,15,182,78,252,253,72,139,44,202,72,137,40,248,40,139,6,15, + 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,139,141, + 233,137,113,252,244,15,182,70,252,253,72,139,44,194,72,137,105,16,141,177, + 233,41,214,139,105,252,248,184,237,252,233,244,29,248,41,139,108,36,96,137, + 149,233,68,141,4,194,141,20,202,137,252,233,68,15,182,78,252,252,137,116, + 36,100,232,251,1,3,248,3,139,149,233,255,131,252,248,1,15,135,244,42,248, + 4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,134,233,248, + 6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248, + 43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44,129,120, + 253,4,239,252,233,244,4,248,45,131,252,238,4,65,137,192,65,137,252,233,139, + 108,36,96,137,149,233,255,137,202,137,252,233,137,116,36,100,232,251,1,4, + 252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141,44,252, + 234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248,49,141, + 4,194,248,1,141,44,252,234,248,2,141,12,202,65,137,232,65,137,193,15,182, + 70,252,252,137,68,36,32,139,108,36,96,137,149,233,137,202,137,252,233,137, + 116,36,100,232,251,1,5,139,149,233,133,192,15,132,244,40,248,42,137,193,41, + 208,137,113,252,244,141,176,233,255,184,237,252,233,244,27,248,50,139,108, + 36,96,137,149,233,141,20,194,137,252,233,137,116,36,100,232,251,1,6,139,149, + 233,252,233,244,42,248,51,141,76,202,8,248,28,137,76,36,84,137,68,36,80,131, + 252,233,8,139,108,36,96,137,149,233,137,202,68,141,4,193,137,252,233,137, + 116,36,100,232,251,1,7,139,149,233,139,76,36,84,139,68,36,80,139,105,252, + 248,131,192,1,57,215,15,132,244,52,137,202,137,114,252,252,139,181,233,139, + 14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,53,139,108, + 36,96,137,149,233,137,202,137,252,233,137,116,36,100,232,251,1,8,139,149, + 233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,252,235, + 233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15, + 131,244,55,139,114,252,252,137,68,36,84,137,106,252,252,139,42,137,106,252, + 248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,72,139,41,72,137,105, + 252,248,131,232,1,15,133,244,1,248,2,139,68,36,84,252,233,244,56,248,57,129, + 252,248,239,15,130,244,55,139,106,4,137,252,233,193,252,249,15,131,252,249, + 252,254,15,132,244,249,255,184,237,252,247,213,57,232,255,15,71,197,255,15, + 134,244,247,137,232,248,1,255,248,2,139,106,252,248,139,132,253,197,233,139, + 114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,184,237, + 252,233,244,2,248,59,129,252,248,239,15,130,244,55,139,106,4,139,114,252, + 252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252, + 237,199,66,252,252,237,255,15,132,244,58,139,131,233,199,66,252,252,237,137, + 106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233, + 239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15, + 133,244,3,255,252,233,244,58,248,5,139,105,4,129,252,253,239,15,132,244,58, + 139,1,137,106,252,252,137,66,252,248,252,233,244,58,248,6,129,252,253,239, + 15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,139, + 172,253,171,233,252,233,244,2,248,60,255,129,252,248,239,15,130,244,55,129, + 122,253,4,239,15,133,244,55,139,42,131,189,233,0,15,133,244,55,129,122,253, + 12,239,15,133,244,55,139,66,8,137,133,233,139,114,252,252,199,66,252,252, + 237,137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,255, + 139,131,233,137,171,233,137,133,233,248,1,252,233,244,58,248,61,129,252,248, + 239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,68,141,66,8,139, + 18,139,76,36,96,232,251,1,9,137,252,234,72,139,40,139,114,252,252,72,137, + 106,252,248,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253, + 4,239,255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252, + 233,244,64,255,248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122, + 253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252, + 233,244,58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244, + 55,139,171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36, + 96,137,149,233,137,116,36,100,137,252,233,232,251,1,10,139,149,233,252,233, + 244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253, + 4,239,15,133,244,55,139,108,36,96,137,149,233,255,137,149,233,139,114,252, + 252,68,141,66,8,139,18,137,252,233,137,116,36,100,232,251,1,11,139,149,233, + 133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137, + 2,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199, + 66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139, + 106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199, + 66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,248,71, + 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,122,253, + 12,239,15,135,244,55,139,114,252,252,255,252,242,15,16,66,8,72,189,237,237, + 102,72,15,110,205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252, + 248,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120, + 253,4,239,15,132,244,72,72,139,40,72,137,42,252,233,244,68,248,2,131,189, + 233,0,15,132,244,72,137,252,233,137,213,137,194,232,251,1,12,137,252,234, + 133,192,15,133,244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248, + 239,15,130,244,55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133, + 233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242, + 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129, + 252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233, + 193,252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239, + 15,130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, + 66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252, + 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137, + 116,36,100,137,108,36,80,129,122,253,4,239,15,133,244,55,72,131,189,233,0, + 15,133,244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255, + 59,141,233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244, + 55,137,181,233,139,108,36,96,137,149,233,131,194,8,137,149,233,141,108,194, + 232,72,41,252,245,57,206,15,132,244,249,248,2,72,139,4,46,72,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,255,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,137,213,72, + 41,205,248,5,72,139,1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6, + 141,70,2,199,66,252,252,237,248,7,139,116,36,100,137,68,36,84,72,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,72, + 139,1,72,137,2,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,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,72,139,4,46, + 72,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,72,139,1,72,137,4,41,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,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,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, - 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,84,139,68,36,84,255,133,192,15,142,244,115, - 131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15, - 182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15, - 133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130, + 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,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,84,139,68,36,84,255, + 133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117,57,131, + 233,15,130,244,117,15,182,141,233,139,171,233,137,68,36,32,248,1,136,77,0, + 131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,113,248,118,129, + 252,248,239,255,15,130,244,55,139,171,233,59,171,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,57,131,233,15,130,244,119,129,197,239,137,116,36,84,137,68,36,32, + 139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244, + 1,137,252,240,139,116,36,84,252,233,244,113,248,120,129,252,248,239,15,130, 244,55,139,171,233,59,171,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,57,131,233, - 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,248,1,255, - 15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116, - 36,84,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59, - 171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139, - 42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,84,137, - 68,36,32,139,179,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,6,248, - 3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113,248,121, - 129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232, - 244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233, - 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,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,6,248,3,131,232,1,15,137,244, - 1,137,252,240,139,116,36,84,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,10,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, + 4,239,15,133,244,55,139,42,139,133,233,57,131,233,255,15,130,244,119,129, + 197,239,137,116,36,84,137,68,36,32,139,179,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,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36, + 84,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,139,171,233, + 59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55, + 139,42,139,133,233,57,131,233,15,130,244,119,129,197,239,137,116,36,84,137, + 68,36,32,139,179,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, + 6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,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,10,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,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,84,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, + 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,84,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,252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255,248, - 126,139,68,36,84,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,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,205,137,193,252,233,244,125,248,117,184,237,252, - 233,244,55,248,119,184,237,248,55,139,108,36,96,139,114,252,252,137,116,36, - 100,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,233,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,181,233,139,14,15,182,252,233,15,182,205, - 131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,249, - 15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,137, - 252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,233, - 232,251,1,0,139,149,233,49,192,252,233,244,1,248,66,93,72,137,108,36,32,139, - 108,36,96,137,116,36,100,137,149,233,255,141,68,194,252,248,137,252,233,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,32,85,195,248,136,255,15,182,131,233,168,235,15,133,244,251,168, - 235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247, - 255,248,137,15,182,131,233,168,235,15,133,244,251,252,233,244,247,248,138, - 15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139, - 233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149, - 233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78, - 252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235, - 233,248,139,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,140,255,139, - 106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233, - 137,133,233,137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251, - 1,21,252,233,244,3,255,248,141,137,116,36,100,255,248,142,255,137,116,36, - 100,131,206,1,248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137, - 133,233,137,252,242,137,252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131, - 230,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182, - 78,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,139,93,0,139,139, - 233,199,131,233,237,137,131,233,137,139,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,139,171,233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137, - 149,233,72,141,148,253,36,233,141,139,233,232,251,1,23,72,139,141,233,72, - 129,225,239,137,169,233,139,149,233,139,177,233,252,233,244,247,255,248,144, - 255,72,141,140,253,36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233, - 102,68,15,111,169,233,102,68,15,111,161,233,102,68,15,111,153,233,102,68, - 15,111,145,233,102,68,15,111,137,233,102,68,15,111,129,233,102,15,111,185, - 233,72,137,204,102,15,111,49,76,139,124,36,16,76,139,116,36,24,76,139,108, - 36,32,76,139,100,36,80,133,192,15,136,244,249,137,68,36,84,139,122,252,248, - 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182, - 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,255,139, - 68,36,84,248,2,252,255,36,252,235,248,3,252,247,216,137,252,233,137,194,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,8,129,124,36, - 8,0,0,128,127,15,132,244,247,129,124,36,8,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,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,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,8,252,242,15,16,68,36,8,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,250,1,15,130,244,82,15, - 132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192, - 195,248,2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248, - 88,15,132,244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80, - 252,233,244,253,248,2,131,252,250,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,250,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,250,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,8,252,242,15,16,68,36,8, - 195,255,139,84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84, - 131,252,250,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252, - 250,5,15,130,244,88,15,132,244,149,131,252,250,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,250,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,250,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,65,131,252,248,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,65,131,252,248,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,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,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,65,131,252, - 248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68, - 36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15, - 16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131, - 252,248,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,200,86,72,137,214,83,15,162,137,6,137,94, - 4,137,78,8,137,86,12,91,94,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,198,4,102,15, - 46,4,202,255,221,4,202,221,4,194,131,198,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, - 70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198, - 4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198,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,70,252,254,141,180,253, - 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,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,198,4,129,124,253,202,4, - 239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239, - 15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221, - 4,199,255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198, - 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,70,252,254,141,180,253,134,233,248,1,139, - 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108, - 194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198, - 4,193,232,16,252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129, - 213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, - 255,36,252,235,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,6,15,182,204,15,182,232,131,198,4,193,232, - 16,252,255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194, - 137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,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,15,88,4,199,255,221, - 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242, - 15,16,4,199,252,242,15,88,4,252,234,255,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,15,92,4,199,255,221,4,252,234,220,36,199,255, - 252,242,15,16,4,199,252,242,15,92,4,252,234,255,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,15,89,4,199,255,221,4,252,234,220, - 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,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,15,94,4,199,255,221,4, - 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,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,15,16,12,199, - 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252, - 234,255,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,76,36,96,137,145,233, - 141,20,194,65,137,192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,25, - 139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139, - 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, - 232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135, - 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232, - 16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202, - 255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202, - 255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204, - 15,182,232,131,198,4,193,232,16,252,255,36,252,235,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,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,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,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, - 36,252,235,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,6,15,182,204,15,182,232,131,198,4,193,232, - 16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252, - 246,129,233,235,15,132,244,1,135,213,141,139,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, - 139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244, - 248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, - 235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137, - 213,137,194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,139,106, - 252,248,255,252,242,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,6,15,182,204,15,182,232,131,198,4,193,232,16, - 252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233,0,15, - 132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,27,139,149,233,248, - 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255, - 72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20,135,137, - 252,233,137,116,36,100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202, - 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, - 36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233,137,116,36, - 100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252, - 255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,29,139,149,233, - 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232, - 131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248, - 5,137,252,233,232,251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247, - 208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137,149,233,15,131, - 244,249,248,2,139,20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252, - 253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193, - 232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254, - 72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233, - 139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,233, - 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,6,15, - 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189, - 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78, - 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,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,70,252,253, - 139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182, - 232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,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,6,15,182,204,15,182, - 232,131,198,4,193,232,16,252,255,36,252,235,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,6,15,182,204,15, - 182,232,131,198,4,193,232,16,252,255,36,252,235,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,78,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,139,139,233,137,171,233,137,141,233,15,182, - 78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,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,70,252,253, - 139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198, - 4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,2,137,76,36, - 80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80,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,68,36,80,199,68,36,84,237, - 137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,234,137,205, - 137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193,252,233,244, - 2,248,7,128,165,233,235,139,131,233,137,171,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,6,15,182,204,15,182,232,131,198,4,193,232, - 16,252,255,36,252,235,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,78,252,253,252,233,244,1,248,7,128,165, - 233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244, - 2,255,137,124,36,80,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,84,131,232,1,15,132,244,250,1,252, - 248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,139,41, - 137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248, - 4,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, - 36,252,235,248,5,139,76,36,96,137,145,233,137,252,234,65,137,192,137,205, - 137,116,36,100,232,251,1,33,139,149,233,15,182,78,252,253,252,233,244,1,248, - 7,255,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255, - 3,68,36,84,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,202, - 8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4, - 252,255,36,252,235,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252, - 252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237,15,133,244,253, - 248,1,137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,139,41, - 137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139, - 106,252,248,248,3,139,68,36,84,128,189,233,1,15,135,244,251,248,4,139,181, - 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,5,255, - 252,247,198,237,15,133,244,4,15,182,78,252,253,72,252,247,209,141,12,202, - 139,121,252,248,139,191,233,139,191,233,252,233,244,4,248,7,129,252,238,239, - 252,247,198,237,15,133,244,254,41,252,242,137,215,139,114,252,252,252,233, - 244,1,248,8,129,198,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,114,252,252,139,181,233,139,14,15,182,252,233, - 15,182,205,131,198,4,252,255,36,252,235,255,15,182,252,236,15,182,192,137, - 124,36,80,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132, - 244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248, - 137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249, - 57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2, - 248,3,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, - 255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3, - 137,197,193,252,237,3,131,197,1,137,108,36,84,139,108,36,96,1,200,59,133, - 233,15,135,244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199, - 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233, - 137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,252,233, - 232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255, - 248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255,248, - 13,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108, - 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84, - 15,182,110,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,70,252,255,15,135,244,252,255, - 15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,248,139,191,233,139, - 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, - 248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131, - 192,1,252,233,244,5,248,7,141,174,233,252,247,197,237,15,133,244,14,41,252, - 234,255,1,252,233,255,137,252,245,209,252,237,129,229,239,102,131,172,253, - 43,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,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180, - 253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134, - 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,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139, - 139,233,139,4,129,72,139,128,233,139,108,36,96,137,147,233,137,171,233,76, - 137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225, - 72,129,252,236,239,102,15,127,49,102,15,127,185,233,102,68,15,127,129,233, - 102,68,15,127,137,233,102,68,15,127,145,233,102,68,15,127,153,233,102,68, - 15,127,161,233,102,68,15,127,169,233,102,68,15,127,177,233,102,68,15,127, - 185,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232,131, - 198,4,193,232,16,252,255,36,252,235,255,137,252,245,209,252,237,129,229,239, - 102,131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141, - 12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244,249,248, - 2,255,15,183,70,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,139, - 122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,12,200,59,141, - 233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248, - 248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252, - 252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248, - 2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, - 36,252,235,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,72,139,189,233,139,108,36,96,141,68,194,252, - 248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,252,233,255,72, - 137,252,250,137,252,233,255,15,135,244,21,199,131,233,237,255,252,255,215, - 255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,217, - 3,141,233,139,114,252,252,252,233,244,12,255,254,0 + 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,84,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,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,205,137,193,252, + 233,244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108, + 36,96,139,114,252,252,137,116,36,100,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,233,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,181,233, + 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,2,137,209, + 252,247,198,237,15,133,244,249,15,182,110,252,253,72,252,247,213,141,20,252, + 234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244, + 27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1, + 248,66,93,72,137,108,36,32,139,108,36,96,137,116,36,100,137,149,233,255,141, + 68,194,252,248,137,252,233,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,32,85,195,248,136,255,15,182,131, + 233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247, + 252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235,15,133, + 244,251,252,233,244,247,248,138,15,182,131,233,168,235,15,133,244,251,168, + 235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251, + 248,1,255,139,108,36,96,137,149,233,137,252,242,137,252,233,232,251,1,20, + 248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183, + 70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139,77,232,137,76, + 36,84,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233, + 141,4,194,139,108,36,96,137,149,233,137,133,233,137,252,242,141,139,233,72, + 137,171,233,137,116,36,100,232,251,1,21,252,233,244,3,255,248,141,137,116, + 36,100,255,248,142,255,137,116,36,100,131,206,1,248,1,255,141,68,194,252, + 248,139,108,36,96,137,149,233,137,133,233,137,252,242,137,252,233,232,251, + 1,22,199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,233,72,137,193, + 139,133,233,41,208,72,137,205,15,182,78,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,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139, + 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,139,171,233,139,147,233,72,137,171, + 233,199,131,233,0,0,0,0,137,149,233,72,141,148,253,36,233,141,139,233,232, + 251,1,23,72,139,141,233,72,129,225,239,137,169,233,139,149,233,139,177,233, + 252,233,244,247,255,248,144,255,72,141,140,253,36,233,248,1,102,68,15,111, + 185,233,102,68,15,111,177,233,102,68,15,111,169,233,102,68,15,111,161,233, + 102,68,15,111,153,233,102,68,15,111,145,233,102,68,15,111,137,233,102,68, + 15,111,129,233,102,15,111,185,233,72,137,204,102,15,111,49,76,139,124,36, + 16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80,133,192,15,136,244, + 249,137,68,36,84,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0, + 0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129, + 252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,36,252,235,248, + 3,252,247,216,137,252,233,137,194,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,8,129,124,36,8,0,0,128,127,15,132,244,247,129, + 124,36,8,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,16,252,242, + 15,17,68,36,8,221,68,36,16,221,68,36,8,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, + 8,252,242,15,16,68,36,8,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,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15, + 130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36, + 8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80, + 252,233,244,253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250, + 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,250,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,250,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,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4, + 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15, + 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244, + 149,131,252,250,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,250,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,250,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,65,131,252, + 248,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,65,131,252,248,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,65,131,252,248,5,15,130,244, + 148,15,132,244,107,65,131,252,248,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,65,131,252,248,9,15,135,244,248,252,242,15,17, + 68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217, + 252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252, + 253,221,217,252,233,244,7,248,2,65,131,252,248,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,200,86, + 72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,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,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198, + 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,70,252,254,141,180,253,134,233,248,2, + 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139, + 108,194,4,131,198,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,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70, + 252,254,141,180,253,134,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,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59, + 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15, + 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,198, + 4,57,68,202,4,255,139,108,194,4,131,198,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, + 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198, + 4,193,232,16,252,255,36,252,235,255,72,139,44,194,72,137,44,202,139,6,15, + 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237, + 129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232, + 131,198,4,193,232,16,252,255,36,252,235,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,6,15,182,204, + 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194, + 4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192, + 137,252,234,255,15,182,78,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,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4, + 239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,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,15,92,4,199,255, + 221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234, + 255,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,15,89, + 4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89, + 4,252,234,255,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,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252, + 242,15,94,4,252,234,255,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,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16, + 4,199,252,242,15,16,12,252,234,255,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,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205, + 137,116,36,100,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110, + 252,255,15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204, + 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139, + 4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193, + 232,16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17, + 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17, + 4,202,255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182, + 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,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,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, + 255,139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4, + 202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,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,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, + 252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235, + 15,132,244,1,135,213,141,139,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,139,12,135,139,133, + 233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15, + 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246, + 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139, + 233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, + 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,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, + 255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149, + 233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204, + 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139, + 108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36, + 100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237, + 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139, + 108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251, + 248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244, + 249,248,2,137,252,233,137,194,232,251,1,29,139,149,233,15,182,78,252,253, + 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232, + 16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232, + 251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96, + 139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139, + 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199, + 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, + 252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252, + 233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, + 244,157,255,72,252,247,208,139,106,252,248,139,173,233,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,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193, + 232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233, + 252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,255,199,68,202, + 4,237,252,233,244,1,248,5,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,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,70,252,253,72,139, + 41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232, + 16,252,255,36,252,235,248,3,15,182,70,252,253,199,68,194,4,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,72, + 139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, + 16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,252, + 246,129,233,235,15,132,244,35,255,15,182,78,252,253,248,3,199,68,202,4,237, + 252,233,244,1,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,72,139,44,202, + 72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, + 235,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,78,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,139,139,233, + 137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236, + 15,182,192,72,252,247,208,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,70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182, + 232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244, + 2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80, + 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,68,36,80,199, + 68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252, + 234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193, + 252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,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,72, + 139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, + 255,36,252,235,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,78,252,253,252,233,244,1,248,7,128,165,233,235, + 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137, + 124,36,80,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,84,131,232,1,15,132,244,250,1,252,248,59,133, + 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,139,41,131,193, + 8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15, + 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36, + 96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33, + 139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139, + 131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124, + 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181, + 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141, + 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248, + 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, + 68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,72,137,47,131, + 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233, + 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, + 4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252, + 253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252, + 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242, + 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255, + 141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,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,114,252,252,139,181,233,139,14,15,182,252,233,15,182, + 205,131,198,4,252,255,36,252,235,255,15,182,252,236,15,182,192,137,124,36, + 80,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251, + 141,108,252,233,252,248,57,215,15,131,244,248,248,1,72,139,71,252,248,131, + 199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248, + 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139, + 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,199, + 68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131, + 197,1,137,108,36,84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,255, + 72,139,71,252,248,131,199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233, + 244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131, + 252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244, + 6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15, + 133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15, + 72,137,111,252,248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15, + 182,110,252,255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252, + 248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247, + 209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15, + 182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252, + 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248, + 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255, + 137,252,245,209,252,237,129,229,239,102,131,172,253,43,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,70,252,254, + 255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70, + 252,254,15,131,245,255,15,130,244,248,141,180,253,134,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,180,253, + 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72, + 139,128,233,139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137, + 108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239, + 102,15,127,49,102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137, + 233,102,68,15,127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102, + 68,15,127,169,233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224, + 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, + 252,255,36,252,235,255,137,252,245,209,252,237,129,229,239,102,131,172,253, + 43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141,12,202,59,141,233, + 15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,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,139,122,252,248,137,104, + 252,252,137,120,252,248,139,108,36,96,141,12,200,59,141,233,15,135,244,22, + 137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8, + 57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131, + 192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233, + 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,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,72,139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141, + 136,233,59,141,233,137,133,233,255,137,252,233,255,72,137,252,250,137,252, + 233,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,233, + 255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,114, + 252,252,252,233,244,12,255,254,0 }; enum { @@ -1061,380 +1055,380 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) { dasm_put(Dst, 0); dasm_put(Dst, 2, FRAME_P, LJ_TTRUE, FRAME_TYPE, FRAME_C, FRAME_TYPE, DISPATCH_GL(vmstate), ~LJ_VMST_C); - dasm_put(Dst, 115, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); - dasm_put(Dst, 204, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); - dasm_put(Dst, 297, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); - dasm_put(Dst, 363, Dt1(->base), Dt1(->top), Dt7(->pc), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE); - dasm_put(Dst, 519, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); - dasm_put(Dst, 625, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc)); - dasm_put(Dst, 783, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); + dasm_put(Dst, 109, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); + dasm_put(Dst, 198, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1); + dasm_put(Dst, 291, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, LUA_MINSTACK, -4+PC2PROTO(framesize), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 357, Dt1(->base), Dt1(->top), Dt7(->pc), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE); + dasm_put(Dst, 513, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 619, LJ_TFUNC, Dt7(->pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, 0, Dt7(->pc)); + dasm_put(Dst, 777, PC2PROTO(k), Dt1(->base), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); if (sse) { - dasm_put(Dst, 893); + dasm_put(Dst, 883); } else { } - dasm_put(Dst, 906, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); - dasm_put(Dst, 1058, DISPATCH_GL(tmptv), LJ_TTAB); + dasm_put(Dst, 896, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 2+1, LJ_TSTR, BC_GSET); + dasm_put(Dst, 1043, DISPATCH_GL(tmptv), LJ_TTAB); if (sse) { - dasm_put(Dst, 893); + dasm_put(Dst, 883); } else { } - dasm_put(Dst, 1081, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); - dasm_put(Dst, 1264, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); - dasm_put(Dst, 1364, Dt1(->base), Dt1(->base), FRAME_CONT); - dasm_put(Dst, 1489, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); - dasm_put(Dst, 1667, 1+1, LJ_TISTRUECOND, 1+1); - dasm_put(Dst, 1778, ~LJ_TNUMX); + dasm_put(Dst, 1066, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 1239, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); + dasm_put(Dst, 1339, Dt1(->base), Dt1(->base), FRAME_CONT); + dasm_put(Dst, 1464, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); + dasm_put(Dst, 1642, 1+1, LJ_TISTRUECOND, 1+1); + dasm_put(Dst, 1748, ~LJ_TNUMX); if (cmov) { - dasm_put(Dst, 1786); + dasm_put(Dst, 1756); } else { - dasm_put(Dst, 1790); + dasm_put(Dst, 1760); } - dasm_put(Dst, 1799, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); - dasm_put(Dst, 1878, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); - dasm_put(Dst, 1935, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); - dasm_put(Dst, 2003, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK)); - dasm_put(Dst, 2072, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM); - dasm_put(Dst, 2162); + dasm_put(Dst, 1769, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); + dasm_put(Dst, 1848, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); + dasm_put(Dst, 1905, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); + dasm_put(Dst, 1973, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK)); + dasm_put(Dst, 2042, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM); + dasm_put(Dst, 2127); if (sse) { - dasm_put(Dst, 2167); + dasm_put(Dst, 2132); } else { - dasm_put(Dst, 2177); + dasm_put(Dst, 2142); } - dasm_put(Dst, 2184, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); - dasm_put(Dst, 2250, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); - dasm_put(Dst, 2317, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); - dasm_put(Dst, 2415, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 2149, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 2215, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); + dasm_put(Dst, 2282, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); + dasm_put(Dst, 2371, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 2487, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); + dasm_put(Dst, 2443, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); } else { } - dasm_put(Dst, 2520, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); - dasm_put(Dst, 2601, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); + dasm_put(Dst, 2476, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); + dasm_put(Dst, 2553, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); if (sse) { - dasm_put(Dst, 2639); + dasm_put(Dst, 2591); } else { - dasm_put(Dst, 2649); + dasm_put(Dst, 2601); } - dasm_put(Dst, 2656, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); - dasm_put(Dst, 2720, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); - 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, 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)); + dasm_put(Dst, 2608, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); + dasm_put(Dst, 2672, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); + dasm_put(Dst, 2762, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); + dasm_put(Dst, 2850, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); + dasm_put(Dst, 2963, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); + dasm_put(Dst, 3061, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 3128, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); + dasm_put(Dst, 3216, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); + dasm_put(Dst, 3328, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); if (sse) { - dasm_put(Dst, 3429, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); + dasm_put(Dst, 3355, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 3493, 1+1, LJ_TISNUM); + dasm_put(Dst, 3419, 1+1, LJ_TISNUM); } - dasm_put(Dst, 3529, 1+1, FRAME_TYPE, LJ_TNIL); + dasm_put(Dst, 3455, 1+1, FRAME_TYPE, LJ_TNIL); if (sse) { - dasm_put(Dst, 3623, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3685, 1+1, LJ_TISNUM); + dasm_put(Dst, 3549, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3611, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 3715, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); - dasm_put(Dst, 3774, 1+1, LJ_TISNUM); + dasm_put(Dst, 3641, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 3700, 1+1, LJ_TISNUM); } - 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); + dasm_put(Dst, 3727, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3796, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3853, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); + dasm_put(Dst, 3916, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); + dasm_put(Dst, 4006); if (sse) { - dasm_put(Dst, 4092, 1+1, LJ_TISNUM); + dasm_put(Dst, 4018, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4117); + dasm_put(Dst, 4043); if (sse) { - dasm_put(Dst, 4131, 1+1, LJ_TISNUM); + dasm_put(Dst, 4057, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4156); + dasm_put(Dst, 4082); if (sse) { - dasm_put(Dst, 4170, 1+1, LJ_TISNUM); + dasm_put(Dst, 4096, 1+1, LJ_TISNUM); } else { } - dasm_put(Dst, 4195); + dasm_put(Dst, 4121); if (sse) { - dasm_put(Dst, 4211, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4137, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } else { - dasm_put(Dst, 4250, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); + dasm_put(Dst, 4176, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); } - dasm_put(Dst, 4283, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); - dasm_put(Dst, 4348, 1+1, LJ_TISNUM); + dasm_put(Dst, 4209, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4274, 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4447); + dasm_put(Dst, 4373); } else { - dasm_put(Dst, 4453); + dasm_put(Dst, 4379); } - dasm_put(Dst, 4462); + dasm_put(Dst, 4388); if (sse) { - dasm_put(Dst, 4487); + dasm_put(Dst, 4413); } else { - dasm_put(Dst, 4493); + dasm_put(Dst, 4419); } - dasm_put(Dst, 4496, 1+2); + dasm_put(Dst, 4422, 1+2); if (sse) { - dasm_put(Dst, 4505); + dasm_put(Dst, 4431); } else { - dasm_put(Dst, 4513); + dasm_put(Dst, 4439); } - dasm_put(Dst, 4521); + dasm_put(Dst, 4447); if (sse) { - dasm_put(Dst, 4524, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); + dasm_put(Dst, 4450, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); } else { - dasm_put(Dst, 4551); + dasm_put(Dst, 4477); } - dasm_put(Dst, 4570); + dasm_put(Dst, 4496); if (sse) { - dasm_put(Dst, 4586, 1+1, LJ_TISNUM); + dasm_put(Dst, 4512, 1+1, LJ_TISNUM); } else { - dasm_put(Dst, 4611, 1+1, LJ_TISNUM); + dasm_put(Dst, 4537, 1+1, LJ_TISNUM); } - dasm_put(Dst, 4633); + dasm_put(Dst, 4559); if (sse) { - dasm_put(Dst, 4655); + dasm_put(Dst, 4581); } else { - dasm_put(Dst, 4681); + dasm_put(Dst, 4607); } - dasm_put(Dst, 4698, 1+2); + dasm_put(Dst, 4624, 1+2); if (sse) { - dasm_put(Dst, 4738); + dasm_put(Dst, 4664); } else { - dasm_put(Dst, 4746); + dasm_put(Dst, 4672); } - dasm_put(Dst, 4756, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4682, 2+1, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 4808, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4734, 2+1, LJ_TISNUM, LJ_TISNUM); } else { - dasm_put(Dst, 4855, 2+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4781, 2+1, LJ_TISNUM, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 4896, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4822, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (sse) { - dasm_put(Dst, 4967, 1+1, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 4893, 1+1, LJ_TISNUM, LJ_TISNUM); } else { } if (!sse) { - dasm_put(Dst, 5038); + dasm_put(Dst, 4964); } - dasm_put(Dst, 5047, 1+1, LJ_TSTR); + dasm_put(Dst, 4973, 1+1, LJ_TSTR); if (sse) { - dasm_put(Dst, 5069, Dt5(->len)); + dasm_put(Dst, 4995, Dt5(->len)); } else { - dasm_put(Dst, 5080, Dt5(->len)); + dasm_put(Dst, 5006, Dt5(->len)); } - dasm_put(Dst, 5088, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); + dasm_put(Dst, 5014, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); if (sse) { - dasm_put(Dst, 5126); + dasm_put(Dst, 5052); } else { - dasm_put(Dst, 5136); + dasm_put(Dst, 5062); } - dasm_put(Dst, 5149, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); + dasm_put(Dst, 5075, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5184); + dasm_put(Dst, 5110); } else { - dasm_put(Dst, 5206); + dasm_put(Dst, 5132); } - 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); + dasm_put(Dst, 5152, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); + dasm_put(Dst, 2127); if (sse) { - dasm_put(Dst, 5334); + dasm_put(Dst, 5260); } else { - dasm_put(Dst, 5345); + dasm_put(Dst, 5271); } - dasm_put(Dst, 5353, LJ_TSTR, LJ_TISNUM, Dt5(->len)); + dasm_put(Dst, 5279, LJ_TSTR, LJ_TISNUM, Dt5(->len)); if (sse) { - dasm_put(Dst, 5383); + dasm_put(Dst, 5309); } else { } - 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); + dasm_put(Dst, 5316, sizeof(GCstr)-1); + dasm_put(Dst, 5391, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); + dasm_put(Dst, 5450, LJ_TSTR, LJ_TISNUM); if (sse) { - dasm_put(Dst, 5545); + dasm_put(Dst, 5471); } else { - dasm_put(Dst, 5552); + dasm_put(Dst, 5478); } - 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); + dasm_put(Dst, 5490, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5555, 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, 5618, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); + dasm_put(Dst, 5689, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); + dasm_put(Dst, 5774, 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, 5844, 1+1, LJ_TTAB); if (sse) { - dasm_put(Dst, 5986); + dasm_put(Dst, 5912); } else { } if (sse) { - dasm_put(Dst, 5996, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 5922, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } if (sse) { - dasm_put(Dst, 6048, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 5974, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6091, LJ_TISNUM); + dasm_put(Dst, 6017, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6118); + dasm_put(Dst, 6044); } else { } - dasm_put(Dst, 6135); + dasm_put(Dst, 6061); if (sse) { - dasm_put(Dst, 6143, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6069, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6091, LJ_TISNUM); + dasm_put(Dst, 6017, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6186); + dasm_put(Dst, 6112); } else { } - dasm_put(Dst, 6135); + dasm_put(Dst, 6061); if (sse) { - dasm_put(Dst, 6203, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6129, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6091, LJ_TISNUM); + dasm_put(Dst, 6017, LJ_TISNUM); if (sse) { - dasm_put(Dst, 6246); + dasm_put(Dst, 6172); } else { } - dasm_put(Dst, 6135); + dasm_put(Dst, 6061); if (sse) { - dasm_put(Dst, 6263, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6189, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6306); + dasm_put(Dst, 6232); if (sse) { - dasm_put(Dst, 6313, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6239, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6356); + dasm_put(Dst, 6282); if (sse) { - dasm_put(Dst, 6360); + dasm_put(Dst, 6286); } else { } - dasm_put(Dst, 6372); + dasm_put(Dst, 6298); if (sse) { - dasm_put(Dst, 6383, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6309, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6452); + dasm_put(Dst, 6378); if (sse) { - dasm_put(Dst, 6461, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6387, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6530); + dasm_put(Dst, 6456); if (sse) { - dasm_put(Dst, 6540, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6466, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6609); + dasm_put(Dst, 6535); if (sse) { - dasm_put(Dst, 6619, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6545, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - dasm_put(Dst, 6688); + dasm_put(Dst, 6614); if (sse) { - dasm_put(Dst, 6697, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); + dasm_put(Dst, 6623, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); } else { } - 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)); + dasm_put(Dst, 6692, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); + dasm_put(Dst, 6770, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 6897, Dt1(->top), Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7010, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); + dasm_put(Dst, 6936, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); #endif - 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); + dasm_put(Dst, 6967, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); + dasm_put(Dst, 7018, Dt1(->base), Dt1(->base), GG_DISP2STATIC); #if LJ_HASJIT - dasm_put(Dst, 7159, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); + dasm_put(Dst, 7085, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); #endif - dasm_put(Dst, 7206); + dasm_put(Dst, 7132); #if LJ_HASJIT - dasm_put(Dst, 7036); + dasm_put(Dst, 6962); #endif - dasm_put(Dst, 7213); + dasm_put(Dst, 7139); #if LJ_HASJIT - dasm_put(Dst, 7216); + dasm_put(Dst, 7142); #endif - dasm_put(Dst, 7226, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7152, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - dasm_put(Dst, 7260); + dasm_put(Dst, 7186); #endif - dasm_put(Dst, 7265, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 7191, Dt1(->base), Dt1(->top)); #if LJ_HASJIT - 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); + dasm_put(Dst, 7222, 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, 7526); + dasm_put(Dst, 7452); #if LJ_HASJIT - 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); + dasm_put(Dst, 7455, 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, 7597); #endif - dasm_put(Dst, 7697); + dasm_put(Dst, 7623); if (!sse) { - dasm_put(Dst, 7700); + dasm_put(Dst, 7626); } - 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)); + dasm_put(Dst, 7671, (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, 7831); + dasm_put(Dst, 7757); } - 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)); + dasm_put(Dst, 7802, (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, 7962); + dasm_put(Dst, 7888); } - 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)); + dasm_put(Dst, 7927, (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, 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)); + dasm_put(Dst, 8016, (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, 8204); + dasm_put(Dst, 8130); } - dasm_put(Dst, 8251); + dasm_put(Dst, 8177); if (!sse) { } else { - dasm_put(Dst, 8325); + dasm_put(Dst, 8251); } - 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); + dasm_put(Dst, 8254); + dasm_put(Dst, 8339, (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, 8440, (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, 8608); #if LJ_HASJIT if (sse) { - dasm_put(Dst, 8723); - dasm_put(Dst, 8793); - dasm_put(Dst, 8866); + dasm_put(Dst, 8649); + dasm_put(Dst, 8719); + dasm_put(Dst, 8792); } else { - dasm_put(Dst, 8916); - dasm_put(Dst, 9008); + dasm_put(Dst, 8842); + dasm_put(Dst, 8934); } - dasm_put(Dst, 9054); + dasm_put(Dst, 8980); #endif - dasm_put(Dst, 9058); + dasm_put(Dst, 8984); if (sse) { - 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)); + dasm_put(Dst, 8987, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); + dasm_put(Dst, 9076, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); } else { - dasm_put(Dst, 9274); - dasm_put(Dst, 9357); + dasm_put(Dst, 9200); + dasm_put(Dst, 9283); if (cmov) { - dasm_put(Dst, 9412); + dasm_put(Dst, 9338); } else { - dasm_put(Dst, 9431); + dasm_put(Dst, 9357); } - dasm_put(Dst, 9054); + dasm_put(Dst, 8980); } - dasm_put(Dst, 9472); + dasm_put(Dst, 9398); } /* 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, 1776, defop); + dasm_put(Dst, 1746, defop); switch (op) { @@ -1443,592 +1437,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, 9498, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9424, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9519); + dasm_put(Dst, 9445); } else { - dasm_put(Dst, 9534); + dasm_put(Dst, 9460); if (cmov) { - dasm_put(Dst, 9544); + dasm_put(Dst, 9470); } else { - dasm_put(Dst, 9550); + dasm_put(Dst, 9476); } } switch (op) { case BC_ISLT: - dasm_put(Dst, 9557); + dasm_put(Dst, 9483); break; case BC_ISGE: - dasm_put(Dst, 9352); + dasm_put(Dst, 9278); break; case BC_ISLE: - dasm_put(Dst, 5913); + dasm_put(Dst, 5839); break; case BC_ISGT: - dasm_put(Dst, 9562); + dasm_put(Dst, 9488); break; default: break; /* Shut up GCC. */ } - dasm_put(Dst, 9567, -BCBIAS_J*4); + dasm_put(Dst, 9493, -BCBIAS_J*4); break; case BC_ISEQV: case BC_ISNEV: vk = op == BC_ISEQV; - dasm_put(Dst, 9601, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 9527, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 9627); + dasm_put(Dst, 9553); } else { - dasm_put(Dst, 9639); + dasm_put(Dst, 9565); if (cmov) { - dasm_put(Dst, 9544); + dasm_put(Dst, 9470); } else { - dasm_put(Dst, 9550); + dasm_put(Dst, 9476); } } iseqne_fp: if (vk) { - dasm_put(Dst, 9646); + dasm_put(Dst, 9572); } else { - dasm_put(Dst, 9655); + dasm_put(Dst, 9581); } iseqne_end: if (vk) { - dasm_put(Dst, 9664, -BCBIAS_J*4); + dasm_put(Dst, 9590, -BCBIAS_J*4); } else { - dasm_put(Dst, 9679, -BCBIAS_J*4); + dasm_put(Dst, 9605, -BCBIAS_J*4); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); if (op == BC_ISEQV || op == BC_ISNEV) { - dasm_put(Dst, 9694, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt6(->nomm), 1<>32)); + dasm_put(Dst, 9902, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); } else { - dasm_put(Dst, 10007); + dasm_put(Dst, 9927); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_LEN: - dasm_put(Dst, 10016, LJ_TSTR); + dasm_put(Dst, 9936, LJ_TSTR); if (sse) { - dasm_put(Dst, 10030, Dt5(->len)); + dasm_put(Dst, 9950, Dt5(->len)); } else { - dasm_put(Dst, 10048, Dt5(->len)); + dasm_put(Dst, 9968, Dt5(->len)); } - dasm_put(Dst, 10057, LJ_TTAB); + dasm_put(Dst, 9977, LJ_TTAB); if (sse) { - dasm_put(Dst, 10098); + dasm_put(Dst, 10018); } else { } - dasm_put(Dst, 10107); + dasm_put(Dst, 10027); break; /* -- Binary ops -------------------------------------------------------- */ case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10137); + dasm_put(Dst, 10057); } else { - dasm_put(Dst, 10151); + dasm_put(Dst, 10071); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10171); + dasm_put(Dst, 10091); } else { - dasm_put(Dst, 10185); + dasm_put(Dst, 10105); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10215); + dasm_put(Dst, 10135); } else { - dasm_put(Dst, 10229); + dasm_put(Dst, 10149); } break; } if (sse) { - dasm_put(Dst, 10000); + dasm_put(Dst, 9920); } else { - dasm_put(Dst, 10012); + dasm_put(Dst, 9932); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10237); + dasm_put(Dst, 10157); } else { - dasm_put(Dst, 10251); + dasm_put(Dst, 10171); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10259); + dasm_put(Dst, 10179); } else { - dasm_put(Dst, 10273); + dasm_put(Dst, 10193); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10281); + dasm_put(Dst, 10201); } else { - dasm_put(Dst, 10295); + dasm_put(Dst, 10215); } break; } if (sse) { - dasm_put(Dst, 10000); + dasm_put(Dst, 9920); } else { - dasm_put(Dst, 10012); + dasm_put(Dst, 9932); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_MULVN: case BC_MULNV: case BC_MULVV: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10303); + dasm_put(Dst, 10223); } else { - dasm_put(Dst, 10317); + dasm_put(Dst, 10237); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10325); + dasm_put(Dst, 10245); } else { - dasm_put(Dst, 10339); + dasm_put(Dst, 10259); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10347); + dasm_put(Dst, 10267); } else { - dasm_put(Dst, 10361); + dasm_put(Dst, 10281); } break; } if (sse) { - dasm_put(Dst, 10000); + dasm_put(Dst, 9920); } else { - dasm_put(Dst, 10012); + dasm_put(Dst, 9932); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10369); + dasm_put(Dst, 10289); } else { - dasm_put(Dst, 10383); + dasm_put(Dst, 10303); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10391); + dasm_put(Dst, 10311); } else { - dasm_put(Dst, 10405); + dasm_put(Dst, 10325); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10413); + dasm_put(Dst, 10333); } else { - dasm_put(Dst, 10427); + dasm_put(Dst, 10347); } break; } if (sse) { - dasm_put(Dst, 10000); + dasm_put(Dst, 9920); } else { - dasm_put(Dst, 10012); + dasm_put(Dst, 9932); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_MODVN: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10435); + dasm_put(Dst, 10355); } else { - dasm_put(Dst, 10449); + dasm_put(Dst, 10369); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10457); + dasm_put(Dst, 10377); } else { - dasm_put(Dst, 10471); + dasm_put(Dst, 10391); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10479); + dasm_put(Dst, 10399); } else { - dasm_put(Dst, 10493); + dasm_put(Dst, 10413); } break; } - dasm_put(Dst, 10501); + dasm_put(Dst, 10421); if (sse) { - dasm_put(Dst, 10000); + dasm_put(Dst, 9920); } else { - dasm_put(Dst, 10012); + dasm_put(Dst, 9932); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_MODNV: case BC_MODVV: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10435); + dasm_put(Dst, 10355); } else { - dasm_put(Dst, 10449); + dasm_put(Dst, 10369); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10457); + dasm_put(Dst, 10377); } else { - dasm_put(Dst, 10471); + dasm_put(Dst, 10391); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10479); + dasm_put(Dst, 10399); } else { - dasm_put(Dst, 10493); + dasm_put(Dst, 10413); } break; } - dasm_put(Dst, 10507); + dasm_put(Dst, 10427); break; case BC_POW: - dasm_put(Dst, 10117); + dasm_put(Dst, 10037); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 10125, LJ_TISNUM); + dasm_put(Dst, 10045, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10435); + dasm_put(Dst, 10355); } else { - dasm_put(Dst, 10449); + dasm_put(Dst, 10369); } break; case 1: - dasm_put(Dst, 10159, LJ_TISNUM); + dasm_put(Dst, 10079, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10457); + dasm_put(Dst, 10377); } else { - dasm_put(Dst, 10471); + dasm_put(Dst, 10391); } break; default: - dasm_put(Dst, 10193, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); if (sse) { - dasm_put(Dst, 10479); + dasm_put(Dst, 10399); } else { - dasm_put(Dst, 10493); + dasm_put(Dst, 10413); } break; } - dasm_put(Dst, 10512); + dasm_put(Dst, 10432); if (sse) { - dasm_put(Dst, 10000); + dasm_put(Dst, 9920); } else { - dasm_put(Dst, 10012); + dasm_put(Dst, 9932); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_CAT: - dasm_put(Dst, 10516, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 10436, Dt1(->base), Dt1(->base)); break; /* -- Constant ops ------------------------------------------------------ */ case BC_KSTR: - dasm_put(Dst, 10606, LJ_TSTR); + dasm_put(Dst, 10519, LJ_TSTR); break; case BC_KSHORT: if (sse) { - dasm_put(Dst, 10641); + dasm_put(Dst, 10554); } else { - dasm_put(Dst, 10656); + dasm_put(Dst, 10569); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_KNUM: if (sse) { - dasm_put(Dst, 10664); + dasm_put(Dst, 10577); } else { - dasm_put(Dst, 10677); + dasm_put(Dst, 10590); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_KPRI: - dasm_put(Dst, 10684); + dasm_put(Dst, 10597); break; case BC_KNIL: - dasm_put(Dst, 10712, LJ_TNIL); + dasm_put(Dst, 10625, LJ_TNIL); break; /* -- Upvalue and function ops ------------------------------------------ */ case BC_UGET: - dasm_put(Dst, 10759, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10672, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETV: #define TV2MARKOFS \ ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) - 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); + dasm_put(Dst, 10712, 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, 10803); break; #undef TV2MARKOFS case BC_USETS: - 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); + dasm_put(Dst, 10815, 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, 11000); + dasm_put(Dst, 10908); if (sse) { - dasm_put(Dst, 11005); + dasm_put(Dst, 10913); } else { - dasm_put(Dst, 9820); + dasm_put(Dst, 9746); } - dasm_put(Dst, 11012, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10920, offsetof(GCfuncL, uvptr), DtA(->v)); if (sse) { - dasm_put(Dst, 11021); + dasm_put(Dst, 10929); } else { - dasm_put(Dst, 11027); + dasm_put(Dst, 10935); } - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_USETP: - dasm_put(Dst, 11030, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 10938, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_UCLO: - dasm_put(Dst, 11069, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 10977, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); break; case BC_FNEW: - dasm_put(Dst, 11124, Dt1(->base), Dt1(->base), LJ_TFUNC); + dasm_put(Dst, 11032, Dt1(->base), Dt1(->base), LJ_TFUNC); break; /* -- Table ops --------------------------------------------------------- */ case BC_TNEW: - dasm_put(Dst, 11190, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11098, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); break; case BC_TDUP: - dasm_put(Dst, 11312, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); + dasm_put(Dst, 11220, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); break; case BC_GGET: - dasm_put(Dst, 11407, Dt7(->env)); + dasm_put(Dst, 11315, Dt7(->env)); break; case BC_GSET: - dasm_put(Dst, 11426, Dt7(->env)); + dasm_put(Dst, 11334, Dt7(->env)); break; case BC_TGETV: - dasm_put(Dst, 11445, LJ_TTAB, LJ_TISNUM); + dasm_put(Dst, 11353, LJ_TTAB, LJ_TISNUM); if (sse) { - dasm_put(Dst, 11478); + dasm_put(Dst, 11386); } else { } - dasm_put(Dst, 11499, 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, 11695, 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, 11604, 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, 11984, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 11820, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); + dasm_put(Dst, 11899, 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, 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)); + dasm_put(Dst, 11961, 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, 12037, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); + dasm_put(Dst, 12125, 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, 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)); + dasm_put(Dst, 12216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); + dasm_put(Dst, 12310, 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, 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)); + dasm_put(Dst, 12356, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 12499, 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, 10121); + dasm_put(Dst, 10041); if (op == BC_CALLM) { - dasm_put(Dst, 12616); + dasm_put(Dst, 12517); } - dasm_put(Dst, 12621, LJ_TFUNC, Dt7(->pc)); + dasm_put(Dst, 12522, LJ_TFUNC, Dt7(->pc)); break; case BC_CALLMT: - dasm_put(Dst, 12616); + dasm_put(Dst, 12517); break; case BC_CALLT: - 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); + dasm_put(Dst, 12564, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); + dasm_put(Dst, 12679, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); break; case BC_ITERC: - dasm_put(Dst, 12853, LJ_TFUNC, 2+1, Dt7(->pc)); + dasm_put(Dst, 12750, LJ_TFUNC, 2+1, Dt7(->pc)); break; case BC_VARG: - dasm_put(Dst, 12934, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); - dasm_put(Dst, 13099, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 12821, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); + dasm_put(Dst, 12981, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 12616); + dasm_put(Dst, 12517); break; case BC_RET: case BC_RET0: case BC_RET1: if (op != BC_RET0) { - dasm_put(Dst, 13170); + dasm_put(Dst, 13047); } - dasm_put(Dst, 13174, FRAME_TYPE); + dasm_put(Dst, 13051, FRAME_TYPE); switch (op) { case BC_RET: - dasm_put(Dst, 13193); + dasm_put(Dst, 13070); break; case BC_RET1: - dasm_put(Dst, 13251); + dasm_put(Dst, 13122); /* fallthrough */ case BC_RET0: - dasm_put(Dst, 13267); + dasm_put(Dst, 13132); default: break; } - dasm_put(Dst, 13278, Dt7(->pc), PC2PROTO(k)); + dasm_put(Dst, 13143, Dt7(->pc), PC2PROTO(k)); if (op == BC_RET) { - dasm_put(Dst, 13322, LJ_TNIL); + dasm_put(Dst, 13187, LJ_TNIL); } else { - dasm_put(Dst, 13331, LJ_TNIL); + dasm_put(Dst, 13196, LJ_TNIL); } - dasm_put(Dst, 13338, -FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 13203, -FRAME_VARG, FRAME_TYPEP); if (op != BC_RET0) { - dasm_put(Dst, 13362); + dasm_put(Dst, 13227); } - dasm_put(Dst, 4581); + dasm_put(Dst, 4507); break; /* -- Loops and branches ------------------------------------------------ */ @@ -2036,7 +2030,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 13366, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13231, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2048,57 +2042,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, 13387); + dasm_put(Dst, 13252); if (!vk) { - dasm_put(Dst, 13391, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 13256, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 13410); + dasm_put(Dst, 13275); if (!vk) { - dasm_put(Dst, 13414, LJ_TISNUM); + dasm_put(Dst, 13279, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 13423); + dasm_put(Dst, 13288); if (vk) { - dasm_put(Dst, 13435); + dasm_put(Dst, 13300); } else { - dasm_put(Dst, 13454); + dasm_put(Dst, 13319); } - dasm_put(Dst, 13459); + dasm_put(Dst, 13324); } else { - dasm_put(Dst, 13472); + dasm_put(Dst, 13337); if (vk) { - dasm_put(Dst, 13478); + dasm_put(Dst, 13343); } else { - dasm_put(Dst, 13494); + dasm_put(Dst, 13359); } - dasm_put(Dst, 13502); + dasm_put(Dst, 13367); if (cmov) { - dasm_put(Dst, 9544); + dasm_put(Dst, 9470); } else { - dasm_put(Dst, 9550); + dasm_put(Dst, 9476); } if (!cmov) { - dasm_put(Dst, 13507); + dasm_put(Dst, 13372); } } if (op == BC_FORI) { - dasm_put(Dst, 13513, -BCBIAS_J*4); + dasm_put(Dst, 13378, -BCBIAS_J*4); } else if (op == BC_JFORI) { - dasm_put(Dst, 13523, -BCBIAS_J*4, BC_JLOOP); + dasm_put(Dst, 13388, -BCBIAS_J*4, BC_JLOOP); } else if (op == BC_IFORL) { - dasm_put(Dst, 13537, -BCBIAS_J*4); + dasm_put(Dst, 13402, -BCBIAS_J*4); } else { - dasm_put(Dst, 13533, BC_JLOOP); + dasm_put(Dst, 13398, BC_JLOOP); } - dasm_put(Dst, 9579); + dasm_put(Dst, 9505); if (sse) { - dasm_put(Dst, 13547); + dasm_put(Dst, 13412); } break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 13366, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13231, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2107,33 +2101,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IITERL: - dasm_put(Dst, 13558, LJ_TNIL); + dasm_put(Dst, 13423, LJ_TNIL); if (op == BC_JITERL) { - dasm_put(Dst, 13573, BC_JLOOP); + dasm_put(Dst, 13438, BC_JLOOP); } else { - dasm_put(Dst, 13587, -BCBIAS_J*4); + dasm_put(Dst, 13452, -BCBIAS_J*4); } - dasm_put(Dst, 9879); + dasm_put(Dst, 9805); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 13366, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13231, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; case BC_ILOOP: - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); break; case BC_JLOOP: #if LJ_HASJIT - 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); + dasm_put(Dst, 13468, 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, 13712, -BCBIAS_J*4); + dasm_put(Dst, 13577, -BCBIAS_J*4); break; /* -- Function headers -------------------------------------------------- */ @@ -2147,7 +2141,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 13737, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 13602, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -2157,47 +2151,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IFUNCF: - dasm_put(Dst, 13758, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); + dasm_put(Dst, 13623, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); if (op == BC_JFUNCF) { - dasm_put(Dst, 13788, BC_JLOOP); + dasm_put(Dst, 13653, BC_JLOOP); } else { - dasm_put(Dst, 9581); + dasm_put(Dst, 9507); } - dasm_put(Dst, 13797, LJ_TNIL); + dasm_put(Dst, 13662, LJ_TNIL); break; case BC_JFUNCV: #if !LJ_HASJIT break; #endif - dasm_put(Dst, 9056); + dasm_put(Dst, 8982); break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 13819, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); + dasm_put(Dst, 13684, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); if (op == BC_JFUNCV) { - dasm_put(Dst, 13788, BC_JLOOP); + dasm_put(Dst, 13653, BC_JLOOP); } else { - dasm_put(Dst, 13910, -4+PC2PROTO(k)); + dasm_put(Dst, 13775, -4+PC2PROTO(k)); } - dasm_put(Dst, 13933, LJ_TNIL); + dasm_put(Dst, 13798, LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: - dasm_put(Dst, 13955, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); + dasm_put(Dst, 13820, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); if (op == BC_FUNCC) { - dasm_put(Dst, 13985); + dasm_put(Dst, 13850); } else { - dasm_put(Dst, 13989); + dasm_put(Dst, 13854); } - dasm_put(Dst, 13997, DISPATCH_GL(vmstate), ~LJ_VMST_C); + dasm_put(Dst, 13862, DISPATCH_GL(vmstate), ~LJ_VMST_C); if (op == BC_FUNCC) { - dasm_put(Dst, 14006); + dasm_put(Dst, 13871); } else { - dasm_put(Dst, 14010, DISPATCH_GL(wrapf)); + dasm_put(Dst, 13875, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 14015, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 13880, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); break; /* ---------------------------------------------------------------------- */ @@ -2225,7 +2219,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx, cmov, sse); - dasm_put(Dst, 14040); + dasm_put(Dst, 13905); 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 3d28102e..6ac2646c 100644 --- a/src/buildvm_x86.dasc +++ b/src/buildvm_x86.dasc @@ -449,11 +449,16 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | | sub RD, 1 | jz >2 - |1: - | mov RB, [BASE+RA] // Move results down. + |1: // Move results down. + |.if X64 + | mov RBa, [BASE+RA] + | mov [BASE-8], RBa + |.else + | mov RB, [BASE+RA] | mov [BASE-8], RB | mov RB, [BASE+RA+4] | mov [BASE-4], RB + |.endif | add BASE, 8 | sub RD, 1 | jnz <1 @@ -769,19 +774,15 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov CARG3d, RA | mov L:CARG1d, SAVE_L | mov L:CARG1d->base, BASE - | mov CARG2d, [RC+4] - | mov RC, [RC] - | mov [RB+4], CARG2d - | mov [RB], RC + | mov RCa, [RC] + | mov [RB], RCa | mov CARG2d, RB |.elif X64 | mov L:CARG1d, SAVE_L | mov L:CARG1d->base, BASE | mov CARG3d, RA - | mov RA, [RC+4] - | mov RC, [RC] - | mov [RB+4], RA - | mov [RB], RC + | mov RAa, [RC] + | mov [RB], RAa | mov CARG2d, RB |.else | mov ARG3, RA @@ -850,10 +851,15 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | jz >3 |->cont_ra: // BASE = base, RC = result | movzx RA, PC_RA + |.if X64 + | mov RBa, [RC] + | mov [BASE+RA*8], RBa + |.else | mov RB, [RC+4] | mov RC, [RC] | mov [BASE+RA*8+4], RB | mov [BASE+RA*8], RC + |.endif | ins_next | |3: // Call __index metamethod. @@ -923,10 +929,15 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | jz >3 | // NOBARRIER: lj_meta_tset ensures the table is not black. | movzx RA, PC_RA + |.if X64 + | mov RBa, [BASE+RA*8] + | mov [RC], RBa + |.else | mov RB, [BASE+RA*8+4] | mov RA, [BASE+RA*8] | mov [RC+4], RB | mov [RC], RA + |.endif |->cont_nop: // BASE = base, (RC = result) | ins_next | @@ -935,10 +946,16 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov RA, L:RB->top | mov [RA-12], PC // [cont|PC] | movzx RC, PC_RA - | mov RB, [BASE+RC*8+4] // Copy value to third argument. + | // Copy value to third argument. + |.if X64 + | mov RBa, [BASE+RC*8] + | mov [RA+16], RBa + |.else + | mov RB, [BASE+RC*8+4] | mov RC, [BASE+RC*8] | mov [RA+20], RB | mov [RA+16], RC + |.endif | lea PC, [RA+FRAME_CONT] | sub PC, BASE | mov LFUNC:RB, [RA-8] // Guaranteed to be a function here. @@ -1249,10 +1266,15 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov RA, BASE |1: | add RA, 8 + |.if X64 + | mov RBa, [RA] + | mov [RA-8], RBa + |.else | mov RB, [RA+4] | mov [RA-4], RB | mov RB, [RA] | mov [RA-8], RB + |.endif | sub RD, 1 | jnz <1 |2: @@ -1377,11 +1399,18 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | call extern lj_tab_get // (lua_State *L, GCtab *t, cTValue *key) | // cTValue * returned in eax (RD). | mov BASE, RB // Restore BASE. - | mov RB, [RD] // Copy table slot. + | // Copy table slot. + |.if X64 + | mov RBa, [RD] + | mov PC, [BASE-4] + | mov [BASE-8], RBa + |.else + | mov RB, [RD] | mov RD, [RD+4] | mov PC, [BASE-4] | mov [BASE-8], RB | mov [BASE-4], RD + |.endif | jmp ->fff_res1 | |//-- Base library: conversions ------------------------------------------ @@ -1453,7 +1482,14 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | // Flag returned in eax (RD). | mov BASE, L:RB->base | test RD, RD; jz >3 // End of traversal? - | mov RB, [BASE+8] // Copy key and value to results. + | // Copy key and value to results. + |.if X64 + | mov RBa, [BASE+8] + | mov RDa, [BASE+16] + | mov [BASE-8], RBa + | mov [BASE], RDa + |.else + | mov RB, [BASE+8] | mov RD, [BASE+12] | mov [BASE-8], RB | mov [BASE-4], RD @@ -1461,6 +1497,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov RD, [BASE+20] | mov [BASE], RB | mov [BASE+4], RD + |.endif |->fff_res2: | mov RD, 1+2 | jmp ->fff_res @@ -1508,10 +1545,16 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | add RD, TAB:RB->array |1: | cmp dword [RD+4], LJ_TNIL; je ->fff_res0 - | mov RB, [RD] // Copy array slot. + | // Copy array slot. + |.if X64 + | mov RBa, [RD] + | mov [BASE], RBa + |.else + | mov RB, [RD] | mov RD, [RD+4] | mov [BASE], RB | mov [BASE+4], RD + |.endif | jmp ->fff_res2 |2: // Check for empty hash part first. Otherwise call C function. | cmp dword TAB:RB->hmask, 0; je ->fff_res0 @@ -1623,10 +1666,15 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | cmp PC, RA | je >3 |2: // Move args to coroutine. + |.if X64 + | mov RCa, [PC+RB] + | mov [PC-8], RCa + |.else | mov RC, [PC+RB+4] | mov [PC-4], RC | mov RC, [PC+RB] | mov [PC-8], RC + |.endif | sub PC, 8 | cmp PC, RA | jne <2 @@ -1667,10 +1715,15 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov RB, BASE | sub RBa, RAa |5: // Move results from coroutine. + |.if X64 + | mov RDa, [RA] + | mov [RA+RB], RDa + |.else | mov RD, [RA] | mov [RA+RB], RD | mov RD, [RA+4] | mov [RA+RB+4], RD + |.endif | add RA, 8 | cmp RA, KBASE | jne <5 @@ -1699,10 +1752,16 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | mov RA, L:PC->top | sub RA, 8 | mov L:PC->top, RA // Clear error from coroutine stack. - | mov RD, [RA] // Copy error message. + | // Copy error message. + |.if X64 + | mov RDa, [RA] + | mov [BASE], RDa + |.else + | mov RD, [RA] | mov [BASE], RD | mov RD, [RA+4] | mov [BASE+4], RD + |.endif | mov RD, 1+2 // nresults+1 = 1 + false + error. | jmp <7 |.else @@ -3525,10 +3584,15 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_MOV: | ins_AD // RA = dst, RD = src + |.if X64 + | mov RBa, [BASE+RD*8] + | mov [BASE+RA*8], RBa + |.else | mov RB, [BASE+RD*8+4] - | mov RD, [BASE+RD*8] // Overwrites RD. + | mov RD, [BASE+RD*8] | mov [BASE+RA*8+4], RB | mov [BASE+RA*8], RD + |.endif | ins_next_ break; case BC_NOT: @@ -3702,10 +3766,15 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | jnz ->vmeta_binop | movzx RB, PC_RB // Copy result to Stk[RA] from Stk[RB]. | movzx RA, PC_RA + |.if X64 + | mov RCa, [BASE+RB*8] + | mov [BASE+RA*8], RCa + |.else | mov RC, [BASE+RB*8+4] | mov RB, [BASE+RB*8] | mov [BASE+RA*8+4], RC | mov [BASE+RA*8], RB + |.endif | ins_next break; @@ -3767,10 +3836,15 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | mov LFUNC:RB, [BASE-8] | mov UPVAL:RB, [LFUNC:RB+RD*4+offsetof(GCfuncL, uvptr)] | mov RB, UPVAL:RB->v + |.if X64 + | mov RDa, [RB] + | mov [BASE+RA*8], RDa + |.else | mov RD, [RB+4] | mov RB, [RB] | mov [BASE+RA*8+4], RD | mov [BASE+RA*8], RB + |.endif | ins_next break; case BC_USETV: @@ -4021,20 +4095,28 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | add RC, TAB:RB->array | cmp dword [RC+4], LJ_TNIL // Avoid overwriting RB in fastpath. | je >2 - |1: - | mov RB, [RC] // Get array slot. + | // Get array slot. + |.if X64 + | mov RBa, [RC] + | mov [BASE+RA*8], RBa + |.else + | mov RB, [RC] | mov RC, [RC+4] | mov [BASE+RA*8], RB | mov [BASE+RA*8+4], RC + |.endif + |1: | ins_next | |2: // Check for __index if table value is nil. | cmp dword TAB:RB->metatable, 0 // Shouldn't overwrite RA for fastpath. - | jz <1 + | jz >3 | mov TAB:RA, TAB:RB->metatable | test byte TAB:RA->nomm, 1<vmeta_tgetv // 'no __index' flag NOT set: check. | movzx RA, PC_RA // Restore RA. + |3: + | mov dword [BASE+RA*8+4], LJ_TNIL | jmp <1 | |5: // String key? @@ -4062,16 +4144,22 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | cmp dword [RA+4], LJ_TNIL // Avoid overwriting RB in fastpath. | je >5 // Key found, but nil value? | movzx RC, PC_RA - | mov RB, [RA] // Get node value. + | // Get node value. + |.if X64 + | mov RBa, [RA] + | mov [BASE+RC*8], RBa + |.else + | mov RB, [RA] | mov RA, [RA+4] | mov [BASE+RC*8], RB - |2: | mov [BASE+RC*8+4], RA + |.endif + |2: | ins_next | |3: | movzx RC, PC_RA - | mov RA, LJ_TNIL + | mov dword [BASE+RC*8+4], LJ_TNIL | jmp <2 | |4: // Follow hash chain. @@ -4098,20 +4186,28 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | add RC, TAB:RB->array | cmp dword [RC+4], LJ_TNIL // Avoid overwriting RB in fastpath. | je >2 - |1: - | mov RB, [RC] // Get array slot. + | // Get array slot. + |.if X64 + | mov RBa, [RC] + | mov [BASE+RA*8], RBa + |.else + | mov RB, [RC] | mov RC, [RC+4] | mov [BASE+RA*8], RB | mov [BASE+RA*8+4], RC + |.endif + |1: | ins_next | |2: // Check for __index if table value is nil. | cmp dword TAB:RB->metatable, 0 // Shouldn't overwrite RA for fastpath. - | jz <1 + | jz >3 | mov TAB:RA, TAB:RB->metatable | test byte TAB:RA->nomm, 1<vmeta_tgetb // 'no __index' flag NOT set: check. | movzx RA, PC_RA // Restore RA. + |3: + | mov dword [BASE+RA*8+4], LJ_TNIL | jmp <1 break; @@ -4146,11 +4242,16 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) |1: | test byte TAB:RB->marked, LJ_GC_BLACK // isblack(table) | jnz >7 - |2: - | mov RB, [BASE+RA*8+4] // Set array slot. + |2: // Set array slot. + |.if X64 + | mov RBa, [BASE+RA*8] + | mov [RC], RBa + |.else + | mov RB, [BASE+RA*8+4] | mov RA, [BASE+RA*8] | mov [RC+4], RB | mov [RC], RA + |.endif | ins_next | |3: // Check for __newindex if previous value is nil. @@ -4195,12 +4296,17 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) |2: | test byte TAB:RB->marked, LJ_GC_BLACK // isblack(table) | jnz >7 - |3: + |3: // Set node value. | movzx RC, PC_RA - | mov RB, [BASE+RC*8+4] // Set node value. + |.if X64 + | mov RBa, [BASE+RC*8] + | mov [RA], RBa + |.else + | mov RB, [BASE+RC*8+4] | mov RC, [BASE+RC*8] | mov [RA+4], RB | mov [RA], RC + |.endif | ins_next | |4: // Check for __newindex if previous value is nil. @@ -4268,11 +4374,16 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) |1: | test byte TAB:RB->marked, LJ_GC_BLACK // isblack(table) | jnz >7 - |2: - | mov RB, [BASE+RA*8+4] // Set array slot. + |2: // Set array slot. + |.if X64 + | mov RAa, [BASE+RA*8] + | mov [RC], RAa + |.else + | mov RB, [BASE+RA*8+4] | mov RA, [BASE+RA*8] | mov [RC+4], RB | mov [RC], RA + |.endif | ins_next | |3: // Check for __newindex if previous value is nil. @@ -4310,11 +4421,17 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | shl KBASE, 3 | add KBASE, TAB:RB->array |3: // Copy result slots to table. + |.if X64 + | mov RBa, [RA] + | add RA, 8 + | mov [KBASE], RBa + |.else | mov RB, [RA] | mov [KBASE], RB | mov RB, [RA+4] | add RA, 8 | mov [KBASE+4], RB + |.endif | add KBASE, 8 | sub RD, 1 | jnz <3 @@ -4382,13 +4499,19 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | mov MULTRES, NARGS:RD | sub NARGS:RD, 1 | jz >3 - |2: - | mov RB, [RA] // Move args down. + |2: // Move args down. + |.if X64 + | mov RBa, [RA] + | add RA, 8 + | mov [KBASE], RBa + |.else + | mov RB, [RA] | mov [KBASE], RB | mov RB, [RA+4] - | mov [KBASE+4], RB - | add KBASE, 8 | add RA, 8 + | mov [KBASE+4], RB + |.endif + | add KBASE, 8 | sub NARGS:RD, 1 | jnz <2 | @@ -4427,6 +4550,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_ITERC: | ins_A // RA = base, (RB = nresults+1,) RC = nargs+1 (2+1) | lea RA, [BASE+RA*8+8] // fb = base+1 + |.if X64 + | mov RBa, [RA-24] // Copy state. fb[0] = fb[-3]. + | mov RCa, [RA-16] // Copy control var. fb[1] = fb[-2]. + | mov [RA], RBa + | mov [RA+8], RCa + |.else | mov RB, [RA-24] // Copy state. fb[0] = fb[-3]. | mov RC, [RA-20] | mov [RA], RB @@ -4435,6 +4564,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | mov RC, [RA-12] | mov [RA+8], RB | mov [RA+12], RC + |.endif | mov LFUNC:RB, [RA-32] // Copy callable. fb[-1] = fb[-4] | mov RC, [RA-28] | mov [RA-8], LFUNC:RB @@ -4459,11 +4589,17 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | cmp KBASE, BASE // No vararg slots? | jnb >2 |1: // Copy vararg slots to destination slots. + |.if X64 + | mov RCa, [KBASE-8] + | add KBASE, 8 + | mov [RA], RCa + |.else | mov RC, [KBASE-8] | mov [RA], RC | mov RC, [KBASE-4] | add KBASE, 8 | mov [RA+4], RC + |.endif | add RA, 8 | cmp RA, RB // All destination slots filled? | jnb >3 @@ -4492,11 +4628,17 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | cmp RC, L:RB->maxstack | ja >7 // Need to grow stack? |6: // Copy all vararg slots. + |.if X64 + | mov RCa, [KBASE-8] + | add KBASE, 8 + | mov [RA], RCa + |.else | mov RC, [KBASE-8] | mov [RA], RC | mov RC, [KBASE-4] | add KBASE, 8 | mov [RA+4], RC + |.endif | add RA, 8 | cmp KBASE, BASE // No more vararg slots? | jb <6 @@ -4541,11 +4683,16 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | mov KBASE, BASE // Use KBASE for result move. | sub RD, 1 | jz >3 - |2: - | mov RB, [KBASE+RA] // Move results down. + |2: // Move results down. + |.if X64 + | mov RBa, [KBASE+RA] + | mov [KBASE-8], RBa + |.else + | mov RB, [KBASE+RA] | mov [KBASE-8], RB | mov RB, [KBASE+RA+4] | mov [KBASE-4], RB + |.endif | add KBASE, 8 | sub RD, 1 | jnz <2 @@ -4557,10 +4704,15 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) | ja >6 break; case BC_RET1: + |.if X64 + | mov RBa, [BASE+RA] + | mov [BASE-8], RBa + |.else | mov RB, [BASE+RA+4] | mov [BASE-4], RB | mov RB, [BASE+RA] | mov [BASE-8], RB + |.endif /* fallthrough */ case BC_RET0: |5: diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h index e5a43031..6b8f4af4 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[15233] = { +static const unsigned char build_actionlist[15260] = { 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, @@ -630,124 +630,125 @@ static const unsigned char build_actionlist[15233] = { 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,221,4,194,219,20,36,219, 4,36,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, + 253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139, 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189, - 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78, - 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,252,247,208,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,70,252,253,139, - 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232, - 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,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,6,15,182,204,15,182,232, - 131,198,4,193,232,16,252,255,36,171,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,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,182, + 78,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,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, + 252,247,208,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,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139, + 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,15,182, + 70,252,253,199,68,194,4,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,139,40,139,64,4,137,44,202,137,68,202,4, + 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, + 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244, + 35,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,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,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,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,78,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,139,139,233,137,171,233,137, + 141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,252, + 247,208,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, + 70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182, + 232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,2, + 137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,16,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,68,36,16,199,68, + 36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68,36, + 8,137,44,36,137,149,233,137,116,36,24,232,251,1,32,139,149,233,139,108,36, + 12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,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,6,15,182,204,15,182, 232,131,198,4,193,232,16,252,255,36,171,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,78,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,139,139,233,137,171,233,137,141,233,15,182,78,252,253, - 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,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,70,252,253,139,108,194,4, - 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16, - 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233, - 252,246,129,233,235,15,132,244,37,139,76,36,16,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,68,36,16,199,68,36,20,237,137,108,36,12,141, - 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137, - 116,36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248, - 7,128,165,233,235,139,131,233,137,171,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,6,15,182,204,15,182,232,131,198,4,193,232,16,252, - 255,36,171,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,78,252,253,252,233,244,1,248,7,128,165,233,235,139, - 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124, - 36,16,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,20,131,232,1,15,132,244,250,1,252,248,59,133, - 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139, - 105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124, - 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, - 5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36, - 24,232,251,1,33,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128, - 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36, - 20,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114, - 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36, - 171,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133, - 244,28,248,52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106, - 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105, - 4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248, - 3,139,68,36,20,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182, - 252,233,15,182,205,131,198,4,252,255,36,171,248,5,255,252,247,198,237,15, - 133,244,4,15,182,78,252,253,252,247,209,141,12,202,139,121,252,248,139,191, - 233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,133, - 244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,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,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198, - 4,252,255,36,171,255,15,182,252,236,15,182,192,137,124,36,16,141,188,253, - 194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252, - 233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252, - 131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244, - 1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16, - 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199, - 68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131, - 197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255, - 139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15, - 130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215, - 139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233, - 1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20, - 252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249, - 248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131, - 232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,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,70,252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141, - 20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232, - 131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199, - 8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233, - 252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209, - 252,237,129,229,239,102,131,172,253,43,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,70,252,254,255,15,131, - 244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15, - 131,245,255,15,130,244,248,141,180,253,134,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,180,253,134,233,139, - 1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139, - 108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139, - 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137,252,245, - 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,142,255,139,190, - 233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200, - 15,134,244,249,248,2,255,15,183,70,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,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141, - 12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237, - 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137, - 56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15, - 133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193, - 232,16,252,255,36,171,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,139,189,233,139,108,36,48,141,68, - 194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,44,36, - 255,137,124,36,4,137,44,36,255,15,135,244,21,199,131,233,237,255,252,255, - 215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247, - 217,3,141,233,139,114,252,252,252,233,244,12,255,254,0 + 255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233, + 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78, + 252,253,252,233,244,2,255,137,124,36,16,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,20,131,232,1,15, + 132,244,250,1,252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189, + 233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1, + 15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193, + 232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68, + 36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,233,15,182,78,252,253,252, + 233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233,137,133,233,252, + 233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44,202,15,133,244, + 51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182, + 205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139,105,252,248,129, + 121,253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237, + 15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15,132,244,249, + 248,2,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15, + 133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1,15,135,244,251, + 248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171, + 248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,252,247,209,141, + 12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,248,7,129,252, + 238,239,252,247,198,237,15,133,244,254,41,252,242,137,215,139,114,252,252, + 252,233,244,1,248,8,129,198,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,114,252,252,139,181,233,139,14,15,182,252, + 233,15,182,205,131,198,4,252,255,36,171,255,15,182,252,236,15,182,192,137, + 124,36,16,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132, + 244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248, + 137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249, + 57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2, + 248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, + 255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,137, + 197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233, + 15,135,244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137, + 65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141, + 233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1, + 0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139, + 114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215, + 131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137, + 111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110, + 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,70,252,255,15,135,244,252,255,15,182,78, + 252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139, + 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199, + 71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233, + 244,5,248,7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252, + 233,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,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, + 70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233, + 15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,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, + 180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139, + 4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141, + 180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, + 36,171,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15, + 132,244,142,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244, + 23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,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,139,122,252,248,137,104,252,252,137,120, + 252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194, + 15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244, + 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, + 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204, + 15,182,232,131,198,4,193,232,16,252,255,36,171,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,139,189, + 233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137, + 133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,21,199,131, + 233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233, + 141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0 }; enum { @@ -2050,19 +2051,19 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) dasm_put(Dst, 2527); } dasm_put(Dst, 12787, Dt6(->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, 12981, 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, 12992, 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, 13267, Dt6(->nomm), 1<marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); + dasm_put(Dst, 13211, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); + dasm_put(Dst, 13294, 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, 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)); + dasm_put(Dst, 13356, 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, 13431, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<next)); + dasm_put(Dst, 13523, 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, 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)); + dasm_put(Dst, 13619, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); + dasm_put(Dst, 13717, 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, 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)); + dasm_put(Dst, 13763, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 13912, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); break; /* -- Calls and vararg handling ----------------------------------------- */ @@ -2097,60 +2098,60 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_CALL: case BC_CALLM: dasm_put(Dst, 11403); if (op == BC_CALLM) { - dasm_put(Dst, 13903); + dasm_put(Dst, 13930); } - dasm_put(Dst, 13908, LJ_TFUNC, Dt7(->pc)); + dasm_put(Dst, 13935, LJ_TFUNC, Dt7(->pc)); break; case BC_CALLMT: - dasm_put(Dst, 13903); + dasm_put(Dst, 13930); break; case BC_CALLT: - 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); + dasm_put(Dst, 13976, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); + dasm_put(Dst, 14094, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); break; case BC_ITERC: - dasm_put(Dst, 14137, LJ_TFUNC, 2+1, Dt7(->pc)); + dasm_put(Dst, 14164, LJ_TFUNC, 2+1, Dt7(->pc)); break; case BC_VARG: - dasm_put(Dst, 14217, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); - dasm_put(Dst, 14381, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 14244, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); + dasm_put(Dst, 14408, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 13903); + dasm_put(Dst, 13930); break; case BC_RET: case BC_RET0: case BC_RET1: if (op != BC_RET0) { - dasm_put(Dst, 14452); + dasm_put(Dst, 14479); } - dasm_put(Dst, 14456, FRAME_TYPE); + dasm_put(Dst, 14483, FRAME_TYPE); switch (op) { case BC_RET: - dasm_put(Dst, 14475); + dasm_put(Dst, 14502); break; case BC_RET1: - dasm_put(Dst, 14533); + dasm_put(Dst, 14560); /* fallthrough */ case BC_RET0: - dasm_put(Dst, 14549); + dasm_put(Dst, 14576); default: break; } - dasm_put(Dst, 14560, Dt7(->pc), PC2PROTO(k)); + dasm_put(Dst, 14587, Dt7(->pc), PC2PROTO(k)); if (op == BC_RET) { - dasm_put(Dst, 14602, LJ_TNIL); + dasm_put(Dst, 14629, LJ_TNIL); } else { - dasm_put(Dst, 14611, LJ_TNIL); + dasm_put(Dst, 14638, LJ_TNIL); } - dasm_put(Dst, 14618, -FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 14645, -FRAME_VARG, FRAME_TYPEP); if (op != BC_RET0) { - dasm_put(Dst, 14642); + dasm_put(Dst, 14669); } dasm_put(Dst, 4689); break; @@ -2160,7 +2161,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 14646, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14673, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2172,57 +2173,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, 14667); + dasm_put(Dst, 14694); if (!vk) { - dasm_put(Dst, 14671, LJ_TISNUM, LJ_TISNUM); + dasm_put(Dst, 14698, LJ_TISNUM, LJ_TISNUM); } - dasm_put(Dst, 14690); + dasm_put(Dst, 14717); if (!vk) { - dasm_put(Dst, 14694, LJ_TISNUM); + dasm_put(Dst, 14721, LJ_TISNUM); } if (sse) { - dasm_put(Dst, 14703); + dasm_put(Dst, 14730); if (vk) { - dasm_put(Dst, 14715); + dasm_put(Dst, 14742); } else { - dasm_put(Dst, 14734); + dasm_put(Dst, 14761); } - dasm_put(Dst, 14739); + dasm_put(Dst, 14766); } else { - dasm_put(Dst, 14752); + dasm_put(Dst, 14779); if (vk) { - dasm_put(Dst, 14758); + dasm_put(Dst, 14785); } else { - dasm_put(Dst, 14774); + dasm_put(Dst, 14801); } - dasm_put(Dst, 14782); + dasm_put(Dst, 14809); if (cmov) { dasm_put(Dst, 10818); } else { dasm_put(Dst, 10824); } if (!cmov) { - dasm_put(Dst, 14787); + dasm_put(Dst, 14814); } } if (op == BC_FORI) { - dasm_put(Dst, 14793, -BCBIAS_J*4); + dasm_put(Dst, 14820, -BCBIAS_J*4); } else if (op == BC_JFORI) { - dasm_put(Dst, 14803, -BCBIAS_J*4, BC_JLOOP); + dasm_put(Dst, 14830, -BCBIAS_J*4, BC_JLOOP); } else if (op == BC_IFORL) { - dasm_put(Dst, 14817, -BCBIAS_J*4); + dasm_put(Dst, 14844, -BCBIAS_J*4); } else { - dasm_put(Dst, 14813, BC_JLOOP); + dasm_put(Dst, 14840, BC_JLOOP); } dasm_put(Dst, 10853); if (sse) { - dasm_put(Dst, 14827); + dasm_put(Dst, 14854); } break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 14646, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14673, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2231,18 +2232,18 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IITERL: - dasm_put(Dst, 14838, LJ_TNIL); + dasm_put(Dst, 14865, LJ_TNIL); if (op == BC_JITERL) { - dasm_put(Dst, 14853, BC_JLOOP); + dasm_put(Dst, 14880, BC_JLOOP); } else { - dasm_put(Dst, 14867, -BCBIAS_J*4); + dasm_put(Dst, 14894, -BCBIAS_J*4); } dasm_put(Dst, 11150); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 14646, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14673, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif break; @@ -2252,12 +2253,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_JLOOP: #if LJ_HASJIT - dasm_put(Dst, 14883, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); + dasm_put(Dst, 14910, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); #endif break; case BC_JMP: - dasm_put(Dst, 14906, -BCBIAS_J*4); + dasm_put(Dst, 14933, -BCBIAS_J*4); break; /* -- Function headers -------------------------------------------------- */ @@ -2271,7 +2272,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 14930, HOTCOUNT_PCMASK, GG_DISP2HOT); + dasm_put(Dst, 14957, HOTCOUNT_PCMASK, GG_DISP2HOT); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -2281,13 +2282,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; #endif case BC_IFUNCF: - dasm_put(Dst, 14951, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); + dasm_put(Dst, 14978, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); if (op == BC_JFUNCF) { - dasm_put(Dst, 14981, BC_JLOOP); + dasm_put(Dst, 15008, BC_JLOOP); } else { dasm_put(Dst, 10855); } - dasm_put(Dst, 14990, LJ_TNIL); + dasm_put(Dst, 15017, LJ_TNIL); break; case BC_JFUNCV: @@ -2298,30 +2299,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 15012, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); + dasm_put(Dst, 15039, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); if (op == BC_JFUNCV) { - dasm_put(Dst, 14981, BC_JLOOP); + dasm_put(Dst, 15008, BC_JLOOP); } else { - dasm_put(Dst, 15103, -4+PC2PROTO(k)); + dasm_put(Dst, 15130, -4+PC2PROTO(k)); } - dasm_put(Dst, 15125, LJ_TNIL); + dasm_put(Dst, 15152, LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: - dasm_put(Dst, 15147, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); + dasm_put(Dst, 15174, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); if (op == BC_FUNCC) { - dasm_put(Dst, 15176); + dasm_put(Dst, 15203); } else { - dasm_put(Dst, 15180); + dasm_put(Dst, 15207); } - dasm_put(Dst, 15188, DISPATCH_GL(vmstate), ~LJ_VMST_C); + dasm_put(Dst, 15215, DISPATCH_GL(vmstate), ~LJ_VMST_C); if (op == BC_FUNCC) { - dasm_put(Dst, 15197); + dasm_put(Dst, 15224); } else { - dasm_put(Dst, 15201, DISPATCH_GL(wrapf)); + dasm_put(Dst, 15228, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 15206, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); + dasm_put(Dst, 15233, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); break; /* ---------------------------------------------------------------------- */ @@ -2349,7 +2350,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx, cmov, sse); - dasm_put(Dst, 15231); + dasm_put(Dst, 15258); for (op = 0; op < BC__MAX; op++) build_ins(ctx, (BCOp)op, op, cmov, sse);