aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-11-19 17:00:11 +0100
committerMike Pall <mike>2010-11-19 17:00:11 +0100
commit57cd5026ebe6be2c7f1c2851557b9b7e2261a3d3 (patch)
tree1310b981adee73d6d8a5720e658562c32540ed84 /src
parentba602c9578e01b1d692beddf7e974fa70b6eecf2 (diff)
downloadluajit-57cd5026ebe6be2c7f1c2851557b9b7e2261a3d3.tar.gz
luajit-57cd5026ebe6be2c7f1c2851557b9b7e2261a3d3.tar.bz2
luajit-57cd5026ebe6be2c7f1c2851557b9b7e2261a3d3.zip
Disable Lua 5.2 features by default. See -DLUAJIT_ENABLE_LUA52COMPAT.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile5
-rw-r--r--src/buildvm_ppc.dasc22
-rw-r--r--src/buildvm_ppcspe.h450
-rw-r--r--src/buildvm_x64.h1999
-rw-r--r--src/buildvm_x64win.h2016
-rw-r--r--src/buildvm_x86.dasc4
-rw-r--r--src/buildvm_x86.h1227
-rw-r--r--src/lib_base.c4
-rw-r--r--src/lj_obj.h8
-rw-r--r--src/lj_record.c5
10 files changed, 2906 insertions, 2834 deletions
diff --git a/src/Makefile b/src/Makefile
index da9f67b2..0417b1cb 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -62,6 +62,11 @@ CCWARN= -Wall
62# Note that most of these are NOT suitable for benchmarking or release mode! 62# Note that most of these are NOT suitable for benchmarking or release mode!
63XCFLAGS= 63XCFLAGS=
64# 64#
65# Enable some upwards-compatible features from Lua 5.2 that are unlikely
66# to break existing code (e.g. __pairs). Note that this does not provide
67# full compatibility with Lua 5.2 at this time.
68#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
69#
65# Disable the use of CMOV and FCOMI*/FUCOMI* instructions in the interpreter. 70# Disable the use of CMOV and FCOMI*/FUCOMI* instructions in the interpreter.
66# This is only necessary if you intend to run the code on REALLY ANCIENT CPUs 71# This is only necessary if you intend to run the code on REALLY ANCIENT CPUs
67# (before Pentium Pro, or on the VIA C3). This generally slows down the 72# (before Pentium Pro, or on the VIA C3). This generally slows down the
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc
index 06fc5078..108363e5 100644
--- a/src/buildvm_ppc.dasc
+++ b/src/buildvm_ppc.dasc
@@ -1098,11 +1098,16 @@ static void build_subroutines(BuildCtx *ctx)
1098 | checktab TAB:CARG1 1098 | checktab TAB:CARG1
1099 | lwz PC, FRAME_PC(BASE) 1099 | lwz PC, FRAME_PC(BASE)
1100 | checkfail ->fff_fallback 1100 | checkfail ->fff_fallback
1101 | lwz TAB:TMP2, TAB:CARG1->metatable 1101#ifdef LUAJIT_ENABLE_LUA52COMPAT
1102 | lwz TAB:TMP2, TAB:CARG1->metatable
1102 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] 1103 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
1103 | cmplwi TAB:TMP2, 0 1104 | cmplwi TAB:TMP2, 0
1104 | la RA, -8(BASE) 1105 | la RA, -8(BASE)
1105 | bne ->fff_fallback 1106 | bne ->fff_fallback
1107#else
1108 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
1109 | la RA, -8(BASE)
1110#endif
1106 | evstdd TAB:CARG1, 0(BASE) 1111 | evstdd TAB:CARG1, 0(BASE)
1107 | evstdd TISNIL, 8(BASE) 1112 | evstdd TISNIL, 8(BASE)
1108 | li RD, (3+1)*8 1113 | li RD, (3+1)*8
@@ -1153,11 +1158,16 @@ static void build_subroutines(BuildCtx *ctx)
1153 | checktab TAB:CARG1 1158 | checktab TAB:CARG1
1154 | lwz PC, FRAME_PC(BASE) 1159 | lwz PC, FRAME_PC(BASE)
1155 | checkfail ->fff_fallback 1160 | checkfail ->fff_fallback
1156 | lwz TAB:TMP2, TAB:CARG1->metatable 1161#ifdef LUAJIT_ENABLE_LUA52COMPAT
1162 | lwz TAB:TMP2, TAB:CARG1->metatable
1157 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] 1163 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
1158 | cmplwi TAB:TMP2, 0 1164 | cmplwi TAB:TMP2, 0
1159 | la RA, -8(BASE) 1165 | la RA, -8(BASE)
1160 | bne ->fff_fallback 1166 | bne ->fff_fallback
1167#else
1168 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
1169 | la RA, -8(BASE)
1170#endif
1161 | evsplati TMP1, 0 1171 | evsplati TMP1, 0
1162 | evstdd TAB:CARG1, 0(BASE) 1172 | evstdd TAB:CARG1, 0(BASE)
1163 | evstdd TMP1, 8(BASE) 1173 | evstdd TMP1, 8(BASE)
diff --git a/src/buildvm_ppcspe.h b/src/buildvm_ppcspe.h
index f3af36b0..0855fda8 100644
--- a/src/buildvm_ppcspe.h
+++ b/src/buildvm_ppcspe.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned int build_actionlist[4918] = { 15static const unsigned int build_actionlist[4928] = {
160x00010001, 160x00010001,
170x00060014, 170x00060014,
180x72000000, 180x72000000,
@@ -1064,6 +1064,11 @@ static const unsigned int build_actionlist[4918] = {
10640x3a8efff8, 10640x3a8efff8,
10650x40820000, 10650x40820000,
10660x00050842, 10660x00050842,
10670x00000000,
10680x100a0301,
10690x00090cab,
10700x3a8efff8,
10710x00000000,
10670x106e0321, 10720x106e0321,
10680x134e0b21, 10730x134e0b21,
10690x39800000, 10740x39800000,
@@ -1120,7 +1125,6 @@ static const unsigned int build_actionlist[4918] = {
11200x00098200, 11250x00098200,
11210x41820000, 11260x41820000,
11220x00050843, 11270x00050843,
11230x00000000,
11240x7d244b78, 11280x7d244b78,
11250x48000001, 11290x48000001,
11260x0003000c, 11300x0003000c,
@@ -1129,6 +1133,7 @@ static const unsigned int build_actionlist[4918] = {
11290x00098200, 11330x00098200,
11300x41820000, 11340x41820000,
11310x00050843, 11350x00050843,
11360x00000000,
11320x11030301, 11370x11030301,
11330x48000000, 11380x48000000,
11340x0005000b, 11390x0005000b,
@@ -1141,6 +1146,7 @@ static const unsigned int build_actionlist[4918] = {
11410x820efff8, 11460x820efff8,
11420x40800000, 11470x40800000,
11430x00050842, 11480x00050842,
11490x00000000,
11440x81230000, 11500x81230000,
11450x00098200, 11510x00098200,
11460x100a0301, 11520x100a0301,
@@ -1149,6 +1155,11 @@ static const unsigned int build_actionlist[4918] = {
11490x3a8efff8, 11550x3a8efff8,
11500x40820000, 11560x40820000,
11510x00050842, 11570x00050842,
11580x00000000,
11590x100a0301,
11600x00090cab,
11610x3a8efff8,
11620x00000000,
11520x11000229, 11630x11000229,
11530x106e0321, 11640x106e0321,
11540x110e0b21, 11650x110e0b21,
@@ -1184,7 +1195,6 @@ static const unsigned int build_actionlist[4918] = {
11840x1004ca34, 11950x1004ca34,
11850x40800000, 11960x40800000,
11860x00050842, 11970x00050842,
11870x00000000,
11880x39ce0010, 11980x39ce0010,
11890x54c607fe, 11990x54c607fe,
11900x000900ab, 12000x000900ab,
@@ -1211,6 +1221,7 @@ static const unsigned int build_actionlist[4918] = {
12110x00098200, 12210x00098200,
12120x80830000, 12220x80830000,
12130x00098200, 12230x00098200,
12240x00000000,
12140x28000000, 12250x28000000,
12150x00090200, 12260x00090200,
12160x81230000, 12270x81230000,
@@ -1250,7 +1261,6 @@ static const unsigned int build_actionlist[4918] = {
12500x48000000, 12610x48000000,
12510x0005000c, 12620x0005000c,
12520x0006000d, 12630x0006000d,
12530x00000000,
12540x38a00000, 12640x38a00000,
12550x7c751b78, 12650x7c751b78,
12560x38c00000, 12660x38c00000,
@@ -1274,6 +1284,7 @@ static const unsigned int build_actionlist[4918] = {
12740x7d893050, 12840x7d893050,
12750x80120000, 12850x80120000,
12760x00098200, 12860x00098200,
12870x00000000,
12770x280c0000, 12880x280c0000,
12780x7d0e6214, 12890x7d0e6214,
12790x41820000, 12900x41820000,
@@ -1308,7 +1319,6 @@ static const unsigned int build_actionlist[4918] = {
13080x48000000, 13190x48000000,
13090x00050018, 13200x00050018,
13100x00060012, 13210x00060012,
13110x00000000,
13120x72000000, 13220x72000000,
13130x00090200, 13230x00090200,
13140x38c6fff8, 13240x38c6fff8,
@@ -1334,6 +1344,7 @@ static const unsigned int build_actionlist[4918] = {
13340x48000000, 13440x48000000,
13350x0005000e, 13450x0005000e,
13360x00060053, 13460x00060053,
13470x00000000,
13370x806a0000, 13480x806a0000,
13380x00098200, 13490x00098200,
13390x88030000, 13500x88030000,
@@ -1369,7 +1380,6 @@ static const unsigned int build_actionlist[4918] = {
13690x91d20000, 13800x91d20000,
13700x00098200, 13810x00098200,
13710x0006000c, 13820x0006000c,
13720x00000000,
13730x7c085800, 13830x7c085800,
13740x100e4300, 13840x100e4300,
13750x41820000, 13850x41820000,
@@ -1393,6 +1403,7 @@ static const unsigned int build_actionlist[4918] = {
13930x00098200, 14030x00098200,
13940x38000000, 14040x38000000,
13950x00098200, 14050x00098200,
14060x00000000,
13960x81d20000, 14070x81d20000,
13970x00098200, 14080x00098200,
13980x90110000, 14090x90110000,
@@ -1430,7 +1441,6 @@ static const unsigned int build_actionlist[4918] = {
14300x7d936378, 14410x7d936378,
14310x41820000, 14420x41820000,
14320x00050817, 14430x00050817,
14330x00000000,
14340x48000000, 14440x48000000,
14350x00050018, 14450x00050018,
14360x00060012, 14460x00060012,
@@ -1450,6 +1460,7 @@ static const unsigned int build_actionlist[4918] = {
14500x00060054, 14600x00060054,
14510x80120000, 14610x80120000,
14520x00098200, 14620x00098200,
14630x00000000,
14530x7d0e5a14, 14640x7d0e5a14,
14540x91d20000, 14650x91d20000,
14550x00098200, 14660x00098200,
@@ -1481,7 +1492,6 @@ static const unsigned int build_actionlist[4918] = {
14810x3a8efff8, 14920x3a8efff8,
14820x10740321, 14930x10740321,
14830x00060056, 14940x00060056,
14840x00000000,
14850x39800000, 14950x39800000,
14860x00098200, 14960x00098200,
14870x00060043, 14970x00060043,
@@ -1515,6 +1525,7 @@ static const unsigned int build_actionlist[4918] = {
15150x48000000, 15250x48000000,
15160x0005000f, 15260x0005000f,
15170x00060057, 15270x00060057,
15280x00000000,
15180x280b0008, 15290x280b0008,
15190x108e0301, 15300x108e0301,
15200x41800000, 15310x41800000,
@@ -1557,7 +1568,6 @@ static const unsigned int build_actionlist[4918] = {
15570x00050842, 15680x00050842,
15580x48000001, 15690x48000001,
15590x0003000e, 15700x0003000e,
15600x00000000,
15610x1063222d, 15710x1063222d,
15620x48000000, 15720x48000000,
15630x00050045, 15730x00050045,
@@ -1584,6 +1594,7 @@ static const unsigned int build_actionlist[4918] = {
15840x1064222c, 15940x1064222c,
15850x40800000, 15950x40800000,
15860x00050842, 15960x00050842,
15970x00000000,
15870x48000001, 15980x48000001,
15880x00030010, 15990x00030010,
15890x1063222d, 16000x1063222d,
@@ -1618,7 +1629,6 @@ static const unsigned int build_actionlist[4918] = {
16180x48000000, 16290x48000000,
16190x00050045, 16300x00050045,
16200x00060060, 16310x00060060,
16210x00000000,
16220x280b0008, 16320x280b0008,
16230x108e0301, 16330x108e0301,
16240x41800000, 16340x41800000,
@@ -1647,6 +1657,7 @@ static const unsigned int build_actionlist[4918] = {
16470x48000000, 16570x48000000,
16480x00050045, 16580x00050045,
16490x00060062, 16590x00060062,
16600x00000000,
16500x280b0008, 16610x280b0008,
16510x108e0301, 16620x108e0301,
16520x41800000, 16630x41800000,
@@ -1683,7 +1694,6 @@ static const unsigned int build_actionlist[4918] = {
16830x1064222c, 16940x1064222c,
16840x40800000, 16950x40800000,
16850x00050842, 16960x00050842,
16860x00000000,
16870x48000001, 16970x48000001,
16880x00030017, 16980x00030017,
16890x1063222d, 16990x1063222d,
@@ -1712,6 +1722,7 @@ static const unsigned int build_actionlist[4918] = {
17120x1064222c, 17220x1064222c,
17130x40800000, 17230x40800000,
17140x00050842, 17240x00050842,
17250x00000000,
17150x48000001, 17260x48000001,
17160x00030019, 17270x00030019,
17170x1063222d, 17280x1063222d,
@@ -1748,7 +1759,6 @@ static const unsigned int build_actionlist[4918] = {
17480x48000000, 17590x48000000,
17490x00050045, 17600x00050045,
17500x00060069, 17610x00060069,
17510x00000000,
17520x280b0010, 17620x280b0010,
17530x108e0301, 17630x108e0301,
17540x10ce0b01, 17640x10ce0b01,
@@ -1782,6 +1792,7 @@ static const unsigned int build_actionlist[4918] = {
17820x00050045, 17920x00050045,
17830x0006006b, 17930x0006006b,
17840x0006006c, 17940x0006006c,
17950x00000000,
17850x280b0008, 17960x280b0008,
17860x106e0301, 17970x106e0301,
17870x41800000, 17980x41800000,
@@ -1815,7 +1826,6 @@ static const unsigned int build_actionlist[4918] = {
18150x108e0301, 18260x108e0301,
18160x41800000, 18270x41800000,
18170x00050842, 18280x00050842,
18180x00000000,
18190x1004b232, 18290x1004b232,
18200x1064222c, 18300x1064222c,
18210x40800000, 18310x40800000,
@@ -1854,6 +1864,7 @@ static const unsigned int build_actionlist[4918] = {
18540x106e0321, 18640x106e0321,
18550x39800000, 18650x39800000,
18560x00098200, 18660x00098200,
18670x00000000,
18570x48000000, 18680x48000000,
18580x00050043, 18690x00050043,
18590x00060070, 18700x00060070,
@@ -1889,7 +1900,6 @@ static const unsigned int build_actionlist[4918] = {
18890x40800000, 19000x40800000,
18900x00050842, 19010x00050842,
18910x0006000b, 19020x0006000b,
18920x00000000,
18930x108e4300, 19030x108e4300,
18940x7c885840, 19040x7c885840,
18950x1004b232, 19050x1004b232,
@@ -1921,6 +1931,7 @@ static const unsigned int build_actionlist[4918] = {
19210x106e0301, 19310x106e0301,
19220x40820000, 19320x40820000,
19230x00050842, 19330x00050842,
19340x00000000,
19240x1003ba34, 19350x1003ba34,
19250x3a8efff8, 19360x3a8efff8,
19260x40800000, 19370x40800000,
@@ -1955,7 +1966,6 @@ static const unsigned int build_actionlist[4918] = {
19550x1003b232, 19660x1003b232,
19560x38910000, 19670x38910000,
19570x00098200, 19680x00098200,
19580x00000000,
19590x40800000, 19690x40800000,
19600x00050842, 19700x00050842,
19610x10001afa, 19710x10001afa,
@@ -1981,6 +1991,7 @@ static const unsigned int build_actionlist[4918] = {
19810x00098200, 19910x00098200,
19820x81110000, 19920x81110000,
19830x00098200, 19930x00098200,
19940x00000000,
19840x7c004040, 19950x7c004040,
19850x40800001, 19960x40800001,
19860x0005084b, 19970x0005084b,
@@ -2017,7 +2028,6 @@ static const unsigned int build_actionlist[4918] = {
20170x40810000, 20280x40810000,
20180x00050807, 20290x00050807,
20190x0006000d, 20300x0006000d,
20200x00000000,
20210x7ca84851, 20310x7ca84851,
20220x38830000, 20320x38830000,
20230x00098200, 20330x00098200,
@@ -2047,6 +2057,7 @@ static const unsigned int build_actionlist[4918] = {
20470x7c004040, 20570x7c004040,
20480x40800001, 20580x40800001,
20490x0005084b, 20590x0005084b,
20600x00000000,
20500x280b0010, 20610x280b0010,
20510x106e0301, 20620x106e0301,
20520x108e0b01, 20630x108e0b01,
@@ -2080,7 +2091,6 @@ static const unsigned int build_actionlist[4918] = {
20800x41840000, 20910x41840000,
20810x00050842, 20920x00050842,
20820x0006000b, 20930x0006000b,
20830x00000000,
20840x28090000, 20940x28090000,
20850x7c0449ae, 20950x7c0449ae,
20860x3929ffff, 20960x3929ffff,
@@ -2106,6 +2116,7 @@ static const unsigned int build_actionlist[4918] = {
21060x106e0301, 21160x106e0301,
21070x41800000, 21170x41800000,
21080x00050842, 21180x00050842,
21190x00000000,
21090x1003ba34, 21200x1003ba34,
21100x81110000, 21210x81110000,
21110x00098200, 21220x00098200,
@@ -2137,7 +2148,6 @@ static const unsigned int build_actionlist[4918] = {
21370x00098200, 21480x00098200,
21380x81110000, 21490x81110000,
21390x00098200, 21500x00098200,
21400x00000000,
21410x7c004040, 21510x7c004040,
21420x40800001, 21520x40800001,
21430x0005084b, 21530x0005084b,
@@ -2165,6 +2175,7 @@ static const unsigned int build_actionlist[4918] = {
21650x7d0348ae, 21750x7d0348ae,
21660x40800000, 21760x40800000,
21670x00050875, 21770x00050875,
21780x00000000,
21680x3808ffbf, 21790x3808ffbf,
21690x69060020, 21800x69060020,
21700x2800001a, 21810x2800001a,
@@ -2201,7 +2212,6 @@ static const unsigned int build_actionlist[4918] = {
22010x41800000, 22120x41800000,
22020x00050842, 22130x00050842,
22030x0006000b, 22140x0006000b,
22040x00000000,
22050x7c092840, 22150x7c092840,
22060x7d0348ae, 22160x7d0348ae,
22070x40800000, 22170x40800000,
@@ -2232,6 +2242,7 @@ static const unsigned int build_actionlist[4918] = {
22320x106e0301, 22420x106e0301,
22330x41800000, 22430x41800000,
22340x00050842, 22440x00050842,
22450x00000000,
22350x1003b232, 22460x1003b232,
22360x40800000, 22470x40800000,
22370x00050842, 22480x00050842,
@@ -2271,7 +2282,6 @@ static const unsigned int build_actionlist[4918] = {
22710x1003b232, 22820x1003b232,
22720x40800000, 22830x40800000,
22730x00050842, 22840x00050842,
22740x00000000,
22750x1063dae0, 22850x1063dae0,
22760x39000008, 22860x39000008,
22770x0006000b, 22870x0006000b,
@@ -2303,6 +2313,7 @@ static const unsigned int build_actionlist[4918] = {
23030x1004b232, 23130x1004b232,
23040x40840000, 23140x40840000,
23050x0005087d, 23150x0005087d,
23160x00000000,
23060x40800000, 23170x40800000,
23070x00050842, 23180x00050842,
23080x1084dae0, 23190x1084dae0,
@@ -2348,7 +2359,6 @@ static const unsigned int build_actionlist[4918] = {
23480x1000b232, 23590x1000b232,
23490x40830000, 23600x40830000,
23500x00050842, 23610x00050842,
23510x00000000,
23520x1084dae0, 23620x1084dae0,
23530x1063dae0, 23630x1063dae0,
23540x548406fe, 23640x548406fe,
@@ -2391,6 +2401,7 @@ static const unsigned int build_actionlist[4918] = {
23910x48000000, 24010x48000000,
23920x00050045, 24020x00050045,
23930x00060086, 24030x00060086,
24040x00000000,
23940x280b0010, 24050x280b0010,
23950x106e0301, 24060x106e0301,
23960x108e0b01, 24070x108e0b01,
@@ -2436,7 +2447,6 @@ static const unsigned int build_actionlist[4918] = {
24360x7c004840, 24470x7c004840,
24370x91d20000, 24480x91d20000,
24380x00098200, 24490x00098200,
24390x00000000,
24400x91120000, 24500x91120000,
24410x00098200, 24510x00098200,
24420x7e439378, 24520x7e439378,
@@ -2470,6 +2480,7 @@ static const unsigned int build_actionlist[4918] = {
24700x7c0903a6, 24800x7c0903a6,
24710x4e800420, 24810x4e800420,
24720x0006000c, 24820x0006000c,
24830x00000000,
24730x72000000, 24840x72000000,
24740x00090200, 24850x00090200,
24750x56080038, 24860x56080038,
@@ -2500,7 +2511,6 @@ static const unsigned int build_actionlist[4918] = {
25000x9201000c, 25110x9201000c,
25010x90120000, 25120x90120000,
25020x00098200, 25130x00098200,
25030x00000000,
25040x7e439378, 25140x7e439378,
25050x48000001, 25150x48000001,
25060x00030023, 25160x00030023,
@@ -5308,75 +5318,85 @@ static void build_subroutines(BuildCtx *ctx)
5308 dasm_put(Dst, 854, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), LJ_TUDATA, 31-2, 4*~LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT])); 5318 dasm_put(Dst, 854, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), LJ_TUDATA, 31-2, 4*~LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]));
5309 dasm_put(Dst, 910, Dt6(->metatable), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 5319 dasm_put(Dst, 910, Dt6(->metatable), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
5310 dasm_put(Dst, 970, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->top), (2+1)*8); 5320 dasm_put(Dst, 970, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->top), (2+1)*8);
5311 dasm_put(Dst, 1043, Dt6(->metatable), Dt8(->upvalue[0]), (3+1)*8, Dt6(->asize), Dt6(->array), 31-3, (0+1)*8, (2+1)*8, Dt6(->hmask), (0+1)*8); 5321#ifdef LUAJIT_ENABLE_LUA52COMPAT
5312 dasm_put(Dst, 1108, (0+1)*8, Dt6(->metatable), Dt8(->upvalue[0]), (3+1)*8, DISPATCH_GL(hookmask), 32-HOOK_ACTIVE_SHIFT, 8+FRAME_PCALL, DISPATCH_GL(hookmask)); 5322 dasm_put(Dst, 1043, Dt6(->metatable), Dt8(->upvalue[0]));
5313 dasm_put(Dst, 1172, 32-HOOK_ACTIVE_SHIFT, 16+FRAME_PCALL, LJ_TTHREAD, Dt1(->status), Dt1(->cframe), Dt1(->top), LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top)); 5323#else
5314 dasm_put(Dst, 1238, Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, LJ_TTRUE); 5324 dasm_put(Dst, 1052, Dt8(->upvalue[0]));
5315 dasm_put(Dst, 1296, FRAME_TYPE, LJ_TFALSE, Dt1(->top), (2+1)*8, 32-3, Dt8(->upvalue[0].gcr), Dt1(->status), Dt1(->cframe), Dt1(->top), LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top)); 5325#endif
5316 dasm_put(Dst, 1357, Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE); 5326 dasm_put(Dst, 1056, (3+1)*8, Dt6(->asize), Dt6(->array), 31-3, (0+1)*8, (2+1)*8, Dt6(->hmask), (0+1)*8, (0+1)*8);
5317 dasm_put(Dst, 1418, 32-3, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top), LUA_YIELD, Dt1(->cframe), Dt1(->status)); 5327 dasm_put(Dst, 1121);
5318 dasm_put(Dst, 1469, (1+1)*8, FRAME_TYPE); 5328#ifdef LUAJIT_ENABLE_LUA52COMPAT
5319 dasm_put(Dst, 1545); 5329 dasm_put(Dst, 1134, Dt6(->metatable), Dt8(->upvalue[0]));
5320 dasm_put(Dst, 1606); 5330#else
5321 dasm_put(Dst, 1671); 5331 dasm_put(Dst, 1143, Dt8(->upvalue[0]));
5322 dasm_put(Dst, 1736, Dt8(->upvalue[0])); 5332#endif
5323 dasm_put(Dst, 1803, DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), (2+1)*8, (2+1)*8); 5333 dasm_put(Dst, 1147, (3+1)*8, DISPATCH_GL(hookmask), 32-HOOK_ACTIVE_SHIFT, 8+FRAME_PCALL, DISPATCH_GL(hookmask), 32-HOOK_ACTIVE_SHIFT, 16+FRAME_PCALL, LJ_TTHREAD, Dt1(->status), Dt1(->cframe), Dt1(->top));
5324 dasm_put(Dst, 1877, Dt5(->len), Dt5(->len), (0+1)*8, Dt5([1]), (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmptv)); 5334 dasm_put(Dst, 1209, LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack));
5325 dasm_put(Dst, 1943, Dt1(->base), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt5(->len)); 5335 dasm_put(Dst, 1272, Dt1(->top), FRAME_TYPE, LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), (2+1)*8, 32-3);
5326 dasm_put(Dst, 2005, sizeof(GCstr)-1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf)); 5336 dasm_put(Dst, 1332, Dt8(->upvalue[0].gcr), Dt1(->status), Dt1(->cframe), Dt1(->top), LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP);
5327 dasm_put(Dst, 2068, DISPATCH_GL(strempty), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 5337 dasm_put(Dst, 1391, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, 32-3, Dt1(->cframe));
5328 dasm_put(Dst, 2125, DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 5338 dasm_put(Dst, 1448, Dt1(->base), CFRAME_RESUME, Dt1(->top), LUA_YIELD, Dt1(->cframe), Dt1(->status), (1+1)*8, FRAME_TYPE);
5329 dasm_put(Dst, 2189); 5339 dasm_put(Dst, 1513);
5330 dasm_put(Dst, 2259); 5340 dasm_put(Dst, 1582);
5331 dasm_put(Dst, 2336, Dt8(->f), 8*LUA_MINSTACK-8, Dt1(->maxstack), Dt1(->base)); 5341 dasm_put(Dst, 1645);
5332 dasm_put(Dst, 2424, Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top)); 5342 dasm_put(Dst, 1710);
5333 dasm_put(Dst, 2488, Dt1(->base), Dt1(->top)); 5343 dasm_put(Dst, 1780, Dt8(->upvalue[0]), DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), (2+1)*8, (2+1)*8);
5344 dasm_put(Dst, 1852, Dt5(->len));
5345 dasm_put(Dst, 1919, Dt5(->len), (0+1)*8, Dt5([1]), (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmptv), Dt1(->base), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
5346 dasm_put(Dst, 1979, Dt5(->len), sizeof(GCstr)-1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
5347 dasm_put(Dst, 2045, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(strempty), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
5348 dasm_put(Dst, 2104, DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
5349 dasm_put(Dst, 2163, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
5350 dasm_put(Dst, 2230);
5351 dasm_put(Dst, 2301);
5352 dasm_put(Dst, 2389, Dt8(->f), 8*LUA_MINSTACK-8, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc));
5353 dasm_put(Dst, 2468, FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
5334#if LJ_HASJIT 5354#if LJ_HASJIT
5335 dasm_put(Dst, 2501); 5355 dasm_put(Dst, 2511);
5336#endif 5356#endif
5337 dasm_put(Dst, 2503, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, 31-LUA_HOOKLINE, DISPATCH_GL(hookcount), Dt1(->base), Dt1(->base)); 5357 dasm_put(Dst, 2513, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, 31-LUA_HOOKLINE, DISPATCH_GL(hookcount), Dt1(->base), Dt1(->base));
5338 dasm_put(Dst, 2550, GG_DISP2STATIC); 5358 dasm_put(Dst, 2560, GG_DISP2STATIC);
5339#if LJ_HASJIT 5359#if LJ_HASJIT
5340 dasm_put(Dst, 2568); 5360 dasm_put(Dst, 2578);
5341#endif 5361#endif
5342 dasm_put(Dst, 2570); 5362 dasm_put(Dst, 2580);
5343#if LJ_HASJIT 5363#if LJ_HASJIT
5344 dasm_put(Dst, 2573); 5364 dasm_put(Dst, 2583);
5345#endif 5365#endif
5346 dasm_put(Dst, 2576); 5366 dasm_put(Dst, 2586);
5347#if LJ_HASJIT 5367#if LJ_HASJIT
5348 dasm_put(Dst, 2578); 5368 dasm_put(Dst, 2588);
5349#endif 5369#endif
5350 dasm_put(Dst, 2581, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 5370 dasm_put(Dst, 2591, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
5351#if LJ_HASJIT 5371#if LJ_HASJIT
5352 dasm_put(Dst, 2603); 5372 dasm_put(Dst, 2613);
5353#endif 5373#endif
5354 dasm_put(Dst, 2605); 5374 dasm_put(Dst, 2615);
5355#if LJ_HASJIT 5375#if LJ_HASJIT
5356 dasm_put(Dst, 2607); 5376 dasm_put(Dst, 2617);
5357#endif 5377#endif
5358 dasm_put(Dst, 2609); 5378 dasm_put(Dst, 2619);
5359#if LJ_HASJIT 5379#if LJ_HASJIT
5360 dasm_put(Dst, 2686); 5380 dasm_put(Dst, 2696);
5361#else 5381#else
5362 dasm_put(Dst, 2709); 5382 dasm_put(Dst, 2719);
5363#endif 5383#endif
5364 dasm_put(Dst, 2712); 5384 dasm_put(Dst, 2722);
5365#if LJ_HASJIT 5385#if LJ_HASJIT
5366 dasm_put(Dst, 2714); 5386 dasm_put(Dst, 2724);
5367#endif 5387#endif
5368 dasm_put(Dst, 2716); 5388 dasm_put(Dst, 2726);
5369#if LJ_HASJIT 5389#if LJ_HASJIT
5370 dasm_put(Dst, 2718); 5390 dasm_put(Dst, 2728);
5371#endif 5391#endif
5372 dasm_put(Dst, 2720); 5392 dasm_put(Dst, 2730);
5373} 5393}
5374 5394
5375/* Generate the code for a single instruction. */ 5395/* Generate the code for a single instruction. */
5376static void build_ins(BuildCtx *ctx, BCOp op, int defop) 5396static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5377{ 5397{
5378 int vk = 0; 5398 int vk = 0;
5379 dasm_put(Dst, 2782, defop); 5399 dasm_put(Dst, 2792, defop);
5380 5400
5381 switch (op) { 5401 switch (op) {
5382 5402
@@ -5385,112 +5405,112 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5385 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 5405 /* Remember: all ops branch for a true comparison, fall through otherwise. */
5386 5406
5387 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 5407 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
5388 dasm_put(Dst, 2784, -(BCBIAS_J*4 >> 16)); 5408 dasm_put(Dst, 2794, -(BCBIAS_J*4 >> 16));
5389 if (op == BC_ISLE || op == BC_ISGT) { 5409 if (op == BC_ISLE || op == BC_ISGT) {
5390 dasm_put(Dst, 2798); 5410 dasm_put(Dst, 2808);
5391 } 5411 }
5392 if (op == BC_ISLT || op == BC_ISLE) { 5412 if (op == BC_ISLT || op == BC_ISLE) {
5393 dasm_put(Dst, 2801); 5413 dasm_put(Dst, 2811);
5394 } else { 5414 } else {
5395 dasm_put(Dst, 2803); 5415 dasm_put(Dst, 2813);
5396 } 5416 }
5397 dasm_put(Dst, 2805); 5417 dasm_put(Dst, 2815);
5398 break; 5418 break;
5399 5419
5400 case BC_ISEQV: case BC_ISNEV: 5420 case BC_ISEQV: case BC_ISNEV:
5401 vk = op == BC_ISEQV; 5421 vk = op == BC_ISEQV;
5402 dasm_put(Dst, 2816, -(BCBIAS_J*4 >> 16)); 5422 dasm_put(Dst, 2826, -(BCBIAS_J*4 >> 16));
5403 if (vk) { 5423 if (vk) {
5404 dasm_put(Dst, 2830); 5424 dasm_put(Dst, 2840);
5405 } else { 5425 } else {
5406 dasm_put(Dst, 2832); 5426 dasm_put(Dst, 2842);
5407 } 5427 }
5408 dasm_put(Dst, 2834, ~LJ_TISPRI, ~LJ_TISTABUD); 5428 dasm_put(Dst, 2844, ~LJ_TISPRI, ~LJ_TISTABUD);
5409 if (vk) { 5429 if (vk) {
5410 dasm_put(Dst, 2856); 5430 dasm_put(Dst, 2866);
5411 } else { 5431 } else {
5412 dasm_put(Dst, 2858); 5432 dasm_put(Dst, 2868);
5413 } 5433 }
5414 dasm_put(Dst, 2860); 5434 dasm_put(Dst, 2870);
5415 if (vk) { 5435 if (vk) {
5416 dasm_put(Dst, 2862); 5436 dasm_put(Dst, 2872);
5417 } else { 5437 } else {
5418 dasm_put(Dst, 2864); 5438 dasm_put(Dst, 2874);
5419 } 5439 }
5420 dasm_put(Dst, 2866, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq); 5440 dasm_put(Dst, 2876, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq);
5421 break; 5441 break;
5422 5442
5423 case BC_ISEQS: case BC_ISNES: 5443 case BC_ISEQS: case BC_ISNES:
5424 vk = op == BC_ISEQS; 5444 vk = op == BC_ISEQS;
5425 dasm_put(Dst, 2887, 32-1, -(BCBIAS_J*4 >> 16)); 5445 dasm_put(Dst, 2897, 32-1, -(BCBIAS_J*4 >> 16));
5426 if (vk) { 5446 if (vk) {
5427 dasm_put(Dst, 2901); 5447 dasm_put(Dst, 2911);
5428 } else { 5448 } else {
5429 dasm_put(Dst, 2903); 5449 dasm_put(Dst, 2913);
5430 } 5450 }
5431 dasm_put(Dst, 2905); 5451 dasm_put(Dst, 2915);
5432 break; 5452 break;
5433 5453
5434 case BC_ISEQN: case BC_ISNEN: 5454 case BC_ISEQN: case BC_ISNEN:
5435 vk = op == BC_ISEQN; 5455 vk = op == BC_ISEQN;
5436 dasm_put(Dst, 2916, -(BCBIAS_J*4 >> 16)); 5456 dasm_put(Dst, 2926, -(BCBIAS_J*4 >> 16));
5437 if (vk) { 5457 if (vk) {
5438 dasm_put(Dst, 2930); 5458 dasm_put(Dst, 2940);
5439 } else { 5459 } else {
5440 dasm_put(Dst, 2933); 5460 dasm_put(Dst, 2943);
5441 } 5461 }
5442 dasm_put(Dst, 2935); 5462 dasm_put(Dst, 2945);
5443 if (!vk) { 5463 if (!vk) {
5444 dasm_put(Dst, 2947); 5464 dasm_put(Dst, 2957);
5445 } 5465 }
5446 break; 5466 break;
5447 5467
5448 case BC_ISEQP: case BC_ISNEP: 5468 case BC_ISEQP: case BC_ISNEP:
5449 vk = op == BC_ISEQP; 5469 vk = op == BC_ISEQP;
5450 dasm_put(Dst, 2953, 32-3, -(BCBIAS_J*4 >> 16)); 5470 dasm_put(Dst, 2963, 32-3, -(BCBIAS_J*4 >> 16));
5451 if (vk) { 5471 if (vk) {
5452 dasm_put(Dst, 2965); 5472 dasm_put(Dst, 2975);
5453 } else { 5473 } else {
5454 dasm_put(Dst, 2967); 5474 dasm_put(Dst, 2977);
5455 } 5475 }
5456 dasm_put(Dst, 2969); 5476 dasm_put(Dst, 2979);
5457 break; 5477 break;
5458 5478
5459 /* -- Unary test and copy ops ------------------------------------------- */ 5479 /* -- Unary test and copy ops ------------------------------------------- */
5460 5480
5461 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 5481 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
5462 dasm_put(Dst, 2980); 5482 dasm_put(Dst, 2990);
5463 if (op == BC_IST || op == BC_ISF) { 5483 if (op == BC_IST || op == BC_ISF) {
5464 dasm_put(Dst, 2986, -(BCBIAS_J*4 >> 16)); 5484 dasm_put(Dst, 2996, -(BCBIAS_J*4 >> 16));
5465 if (op == BC_IST) { 5485 if (op == BC_IST) {
5466 dasm_put(Dst, 2991); 5486 dasm_put(Dst, 3001);
5467 } else { 5487 } else {
5468 dasm_put(Dst, 2993); 5488 dasm_put(Dst, 3003);
5469 } 5489 }
5470 } else { 5490 } else {
5471 if (op == BC_ISTC) { 5491 if (op == BC_ISTC) {
5472 dasm_put(Dst, 2995); 5492 dasm_put(Dst, 3005);
5473 } else { 5493 } else {
5474 dasm_put(Dst, 2998); 5494 dasm_put(Dst, 3008);
5475 } 5495 }
5476 dasm_put(Dst, 3001, -(BCBIAS_J*4 >> 16)); 5496 dasm_put(Dst, 3011, -(BCBIAS_J*4 >> 16));
5477 } 5497 }
5478 dasm_put(Dst, 3008); 5498 dasm_put(Dst, 3018);
5479 break; 5499 break;
5480 5500
5481 /* -- Unary ops --------------------------------------------------------- */ 5501 /* -- Unary ops --------------------------------------------------------- */
5482 5502
5483 case BC_MOV: 5503 case BC_MOV:
5484 dasm_put(Dst, 3019); 5504 dasm_put(Dst, 3029);
5485 break; 5505 break;
5486 case BC_NOT: 5506 case BC_NOT:
5487 dasm_put(Dst, 3032, LJ_TTRUE); 5507 dasm_put(Dst, 3042, LJ_TTRUE);
5488 break; 5508 break;
5489 case BC_UNM: 5509 case BC_UNM:
5490 dasm_put(Dst, 3048); 5510 dasm_put(Dst, 3058);
5491 break; 5511 break;
5492 case BC_LEN: 5512 case BC_LEN:
5493 dasm_put(Dst, 3065, Dt5(->len)); 5513 dasm_put(Dst, 3075, Dt5(->len));
5494 break; 5514 break;
5495 5515
5496 /* -- Binary ops -------------------------------------------------------- */ 5516 /* -- Binary ops -------------------------------------------------------- */
@@ -5500,257 +5520,257 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5500 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5520 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5501 switch (vk) { 5521 switch (vk) {
5502 case 0: 5522 case 0:
5503 dasm_put(Dst, 3093); 5523 dasm_put(Dst, 3103);
5504 break; 5524 break;
5505 case 1: 5525 case 1:
5506 dasm_put(Dst, 3099); 5526 dasm_put(Dst, 3109);
5507 break; 5527 break;
5508 default: 5528 default:
5509 dasm_put(Dst, 3105); 5529 dasm_put(Dst, 3115);
5510 break; 5530 break;
5511 } 5531 }
5512 dasm_put(Dst, 3112); 5532 dasm_put(Dst, 3122);
5513 break; 5533 break;
5514 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 5534 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
5515 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5535 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5516 switch (vk) { 5536 switch (vk) {
5517 case 0: 5537 case 0:
5518 dasm_put(Dst, 3125); 5538 dasm_put(Dst, 3135);
5519 break; 5539 break;
5520 case 1: 5540 case 1:
5521 dasm_put(Dst, 3131); 5541 dasm_put(Dst, 3141);
5522 break; 5542 break;
5523 default: 5543 default:
5524 dasm_put(Dst, 3137); 5544 dasm_put(Dst, 3147);
5525 break; 5545 break;
5526 } 5546 }
5527 dasm_put(Dst, 3144); 5547 dasm_put(Dst, 3154);
5528 break; 5548 break;
5529 case BC_MULVN: case BC_MULNV: case BC_MULVV: 5549 case BC_MULVN: case BC_MULNV: case BC_MULVV:
5530 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5550 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5531 switch (vk) { 5551 switch (vk) {
5532 case 0: 5552 case 0:
5533 dasm_put(Dst, 3157); 5553 dasm_put(Dst, 3167);
5534 break; 5554 break;
5535 case 1: 5555 case 1:
5536 dasm_put(Dst, 3163); 5556 dasm_put(Dst, 3173);
5537 break; 5557 break;
5538 default: 5558 default:
5539 dasm_put(Dst, 3169); 5559 dasm_put(Dst, 3179);
5540 break; 5560 break;
5541 } 5561 }
5542 dasm_put(Dst, 3176); 5562 dasm_put(Dst, 3186);
5543 break; 5563 break;
5544 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 5564 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
5545 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5565 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5546 switch (vk) { 5566 switch (vk) {
5547 case 0: 5567 case 0:
5548 dasm_put(Dst, 3189); 5568 dasm_put(Dst, 3199);
5549 break; 5569 break;
5550 case 1: 5570 case 1:
5551 dasm_put(Dst, 3195); 5571 dasm_put(Dst, 3205);
5552 break; 5572 break;
5553 default: 5573 default:
5554 dasm_put(Dst, 3201); 5574 dasm_put(Dst, 3211);
5555 break; 5575 break;
5556 } 5576 }
5557 dasm_put(Dst, 3208); 5577 dasm_put(Dst, 3218);
5558 break; 5578 break;
5559 case BC_MODVN: 5579 case BC_MODVN:
5560 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5580 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5561 switch (vk) { 5581 switch (vk) {
5562 case 0: 5582 case 0:
5563 dasm_put(Dst, 3221); 5583 dasm_put(Dst, 3231);
5564 break; 5584 break;
5565 case 1: 5585 case 1:
5566 dasm_put(Dst, 3227); 5586 dasm_put(Dst, 3237);
5567 break; 5587 break;
5568 default: 5588 default:
5569 dasm_put(Dst, 3233); 5589 dasm_put(Dst, 3243);
5570 break; 5590 break;
5571 } 5591 }
5572 dasm_put(Dst, 3240); 5592 dasm_put(Dst, 3250);
5573 break; 5593 break;
5574 case BC_MODNV: case BC_MODVV: 5594 case BC_MODNV: case BC_MODVV:
5575 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5595 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5576 switch (vk) { 5596 switch (vk) {
5577 case 0: 5597 case 0:
5578 dasm_put(Dst, 3258); 5598 dasm_put(Dst, 3268);
5579 break; 5599 break;
5580 case 1: 5600 case 1:
5581 dasm_put(Dst, 3264); 5601 dasm_put(Dst, 3274);
5582 break; 5602 break;
5583 default: 5603 default:
5584 dasm_put(Dst, 3270); 5604 dasm_put(Dst, 3280);
5585 break; 5605 break;
5586 } 5606 }
5587 dasm_put(Dst, 3277); 5607 dasm_put(Dst, 3287);
5588 break; 5608 break;
5589 case BC_POW: 5609 case BC_POW:
5590 dasm_put(Dst, 3280); 5610 dasm_put(Dst, 3290);
5591 break; 5611 break;
5592 5612
5593 case BC_CAT: 5613 case BC_CAT:
5594 dasm_put(Dst, 3302, Dt1(->base), 32-3, Dt1(->base)); 5614 dasm_put(Dst, 3312, Dt1(->base), 32-3, Dt1(->base));
5595 break; 5615 break;
5596 5616
5597 /* -- Constant ops ------------------------------------------------------ */ 5617 /* -- Constant ops ------------------------------------------------------ */
5598 5618
5599 case BC_KSTR: 5619 case BC_KSTR:
5600 dasm_put(Dst, 3332, 32-1); 5620 dasm_put(Dst, 3342, 32-1);
5601 break; 5621 break;
5602 case BC_KSHORT: 5622 case BC_KSHORT:
5603 dasm_put(Dst, 3349, 32-3); 5623 dasm_put(Dst, 3359, 32-3);
5604 break; 5624 break;
5605 case BC_KNUM: 5625 case BC_KNUM:
5606 dasm_put(Dst, 3365); 5626 dasm_put(Dst, 3375);
5607 break; 5627 break;
5608 case BC_KPRI: 5628 case BC_KPRI:
5609 dasm_put(Dst, 3378, 32-3); 5629 dasm_put(Dst, 3388, 32-3);
5610 break; 5630 break;
5611 case BC_KNIL: 5631 case BC_KNIL:
5612 dasm_put(Dst, 3393); 5632 dasm_put(Dst, 3403);
5613 break; 5633 break;
5614 5634
5615 /* -- Upvalue and function ops ------------------------------------------ */ 5635 /* -- Upvalue and function ops ------------------------------------------ */
5616 5636
5617 case BC_UGET: 5637 case BC_UGET:
5618 dasm_put(Dst, 3412, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); 5638 dasm_put(Dst, 3422, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
5619 break; 5639 break;
5620 case BC_USETV: 5640 case BC_USETV:
5621 dasm_put(Dst, 3433, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -LJ_TISNUM, LJ_TISGCV - LJ_TISNUM, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 5641 dasm_put(Dst, 3443, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -LJ_TISNUM, LJ_TISGCV - LJ_TISNUM, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
5622 break; 5642 break;
5623 case BC_USETS: 5643 case BC_USETS:
5624 dasm_put(Dst, 3485, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_GC_WHITES, GG_DISP2G); 5644 dasm_put(Dst, 3495, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_GC_WHITES, GG_DISP2G);
5625 break; 5645 break;
5626 case BC_USETN: 5646 case BC_USETN:
5627 dasm_put(Dst, 3534, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); 5647 dasm_put(Dst, 3544, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
5628 break; 5648 break;
5629 case BC_USETP: 5649 case BC_USETP:
5630 dasm_put(Dst, 3555, 32-1, offsetof(GCfuncL, uvptr), 32-3, DtA(->v)); 5650 dasm_put(Dst, 3565, 32-1, offsetof(GCfuncL, uvptr), 32-3, DtA(->v));
5631 break; 5651 break;
5632 5652
5633 case BC_UCLO: 5653 case BC_UCLO:
5634 dasm_put(Dst, 3578, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base)); 5654 dasm_put(Dst, 3588, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base));
5635 break; 5655 break;
5636 5656
5637 case BC_FNEW: 5657 case BC_FNEW:
5638 dasm_put(Dst, 3608, 32-1, Dt1(->base), Dt1(->base)); 5658 dasm_put(Dst, 3618, 32-1, Dt1(->base), Dt1(->base));
5639 break; 5659 break;
5640 5660
5641 /* -- Table ops --------------------------------------------------------- */ 5661 /* -- Table ops --------------------------------------------------------- */
5642 5662
5643 case BC_TNEW: 5663 case BC_TNEW:
5644 case BC_TDUP: 5664 case BC_TDUP:
5645 dasm_put(Dst, 3634, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); 5665 dasm_put(Dst, 3644, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base));
5646 if (op == BC_TNEW) { 5666 if (op == BC_TNEW) {
5647 dasm_put(Dst, 3647); 5667 dasm_put(Dst, 3657);
5648 } else { 5668 } else {
5649 dasm_put(Dst, 3655, 32-1); 5669 dasm_put(Dst, 3665, 32-1);
5650 } 5670 }
5651 dasm_put(Dst, 3662, Dt1(->base)); 5671 dasm_put(Dst, 3672, Dt1(->base));
5652 break; 5672 break;
5653 5673
5654 case BC_GGET: 5674 case BC_GGET:
5655 case BC_GSET: 5675 case BC_GSET:
5656 dasm_put(Dst, 3685, 32-1, Dt7(->env)); 5676 dasm_put(Dst, 3695, 32-1, Dt7(->env));
5657 if (op == BC_GGET) { 5677 if (op == BC_GGET) {
5658 dasm_put(Dst, 3693); 5678 dasm_put(Dst, 3703);
5659 } else { 5679 } else {
5660 dasm_put(Dst, 3696); 5680 dasm_put(Dst, 3706);
5661 } 5681 }
5662 break; 5682 break;
5663 5683
5664 case BC_TGETV: 5684 case BC_TGETV:
5665 dasm_put(Dst, 3699, Dt6(->asize), Dt6(->array), 31-3, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 5685 dasm_put(Dst, 3709, Dt6(->asize), Dt6(->array), 31-3, Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
5666 break; 5686 break;
5667 case BC_TGETS: 5687 case BC_TGETS:
5668 dasm_put(Dst, 3757, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 5688 dasm_put(Dst, 3767, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
5669 dasm_put(Dst, 3821); 5689 dasm_put(Dst, 3831);
5670 break; 5690 break;
5671 case BC_TGETB: 5691 case BC_TGETB:
5672 dasm_put(Dst, 3826, 32-3, Dt6(->asize), Dt6(->array), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 5692 dasm_put(Dst, 3836, 32-3, Dt6(->asize), Dt6(->array), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
5673 break; 5693 break;
5674 5694
5675 case BC_TSETV: 5695 case BC_TSETV:
5676 dasm_put(Dst, 3870, Dt6(->asize), Dt6(->array), 31-3, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 5696 dasm_put(Dst, 3880, Dt6(->asize), Dt6(->array), 31-3, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
5677 dasm_put(Dst, 3937, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 5697 dasm_put(Dst, 3947, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
5678 break; 5698 break;
5679 case BC_TSETS: 5699 case BC_TSETS:
5680 dasm_put(Dst, 3949, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), 31-5, 31-3, Dt6(->marked), DtB(->key), DtB(->val), LJ_GC_BLACK, DtB(->val), Dt6(->metatable)); 5700 dasm_put(Dst, 3959, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), 31-5, 31-3, Dt6(->marked), DtB(->key), DtB(->val), LJ_GC_BLACK, DtB(->val), Dt6(->metatable));
5681 dasm_put(Dst, 4010, Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), DISPATCH_GL(tmptv), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 5701 dasm_put(Dst, 4020, Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), DISPATCH_GL(tmptv), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
5682 dasm_put(Dst, 4061, Dt6(->marked), Dt6(->gclist)); 5702 dasm_put(Dst, 4071, Dt6(->marked), Dt6(->gclist));
5683 break; 5703 break;
5684 case BC_TSETB: 5704 case BC_TSETB:
5685 dasm_put(Dst, 4068, 32-3, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked)); 5705 dasm_put(Dst, 4078, 32-3, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked));
5686 dasm_put(Dst, 4128, Dt6(->gclist)); 5706 dasm_put(Dst, 4138, Dt6(->gclist));
5687 break; 5707 break;
5688 5708
5689 case BC_TSETM: 5709 case BC_TSETM:
5690 dasm_put(Dst, 4133, 32-3, Dt6(->asize), 31-3, Dt6(->marked), Dt6(->array), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 5710 dasm_put(Dst, 4143, 32-3, Dt6(->asize), 31-3, Dt6(->marked), Dt6(->array), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
5691 dasm_put(Dst, 4202); 5711 dasm_put(Dst, 4212);
5692 break; 5712 break;
5693 5713
5694 /* -- Calls and vararg handling ----------------------------------------- */ 5714 /* -- Calls and vararg handling ----------------------------------------- */
5695 5715
5696 case BC_CALLM: 5716 case BC_CALLM:
5697 dasm_put(Dst, 4205); 5717 dasm_put(Dst, 4215);
5698 break; 5718 break;
5699 case BC_CALL: 5719 case BC_CALL:
5700 dasm_put(Dst, 4207, Dt7(->pc)); 5720 dasm_put(Dst, 4217, Dt7(->pc));
5701 break; 5721 break;
5702 5722
5703 case BC_CALLMT: 5723 case BC_CALLMT:
5704 dasm_put(Dst, 4227); 5724 dasm_put(Dst, 4237);
5705 break; 5725 break;
5706 case BC_CALLT: 5726 case BC_CALLT:
5707 dasm_put(Dst, 4229, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); 5727 dasm_put(Dst, 4239, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
5708 dasm_put(Dst, 4294, FRAME_TYPE); 5728 dasm_put(Dst, 4304, FRAME_TYPE);
5709 break; 5729 break;
5710 5730
5711 case BC_ITERC: 5731 case BC_ITERC:
5712 dasm_put(Dst, 4301, Dt7(->pc)); 5732 dasm_put(Dst, 4311, Dt7(->pc));
5713 break; 5733 break;
5714 5734
5715 case BC_ITERN: 5735 case BC_ITERN:
5716#if LJ_HASJIT 5736#if LJ_HASJIT
5717#endif 5737#endif
5718 dasm_put(Dst, 4327, Dt6(->asize), Dt6(->array), 31-3, -(BCBIAS_J*4 >> 16), Dt6(->hmask), Dt6(->node), 31-5, 31-3, DtB(->key), -(BCBIAS_J*4 >> 16)); 5738 dasm_put(Dst, 4337, Dt6(->asize), Dt6(->array), 31-3, -(BCBIAS_J*4 >> 16), Dt6(->hmask), Dt6(->node), 31-5, 31-3, DtB(->key), -(BCBIAS_J*4 >> 16));
5719 dasm_put(Dst, 4406); 5739 dasm_put(Dst, 4416);
5720 break; 5740 break;
5721 5741
5722 case BC_ISNEXT: 5742 case BC_ISNEXT:
5723 dasm_put(Dst, 4410, LJ_TTAB, LJ_TFUNC, LJ_TNIL, Dt8(->ffid), FF_next_N, 32-1, -(BCBIAS_J*4 >> 16), BC_JMP, BC_ITERC, -(BCBIAS_J*4 >> 16)); 5743 dasm_put(Dst, 4420, LJ_TTAB, LJ_TFUNC, LJ_TNIL, Dt8(->ffid), FF_next_N, 32-1, -(BCBIAS_J*4 >> 16), BC_JMP, BC_ITERC, -(BCBIAS_J*4 >> 16));
5724 break; 5744 break;
5725 5745
5726 case BC_VARG: 5746 case BC_VARG:
5727 dasm_put(Dst, 4461, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base)); 5747 dasm_put(Dst, 4471, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base));
5728 dasm_put(Dst, 4541); 5748 dasm_put(Dst, 4551);
5729 break; 5749 break;
5730 5750
5731 /* -- Returns ----------------------------------------------------------- */ 5751 /* -- Returns ----------------------------------------------------------- */
5732 5752
5733 case BC_RETM: 5753 case BC_RETM:
5734 dasm_put(Dst, 4547); 5754 dasm_put(Dst, 4557);
5735 break; 5755 break;
5736 5756
5737 case BC_RET: 5757 case BC_RET:
5738 dasm_put(Dst, 4549, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); 5758 dasm_put(Dst, 4559, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
5739 break; 5759 break;
5740 5760
5741 case BC_RET0: case BC_RET1: 5761 case BC_RET0: case BC_RET1:
5742 dasm_put(Dst, 4619, FRAME_TYPE, FRAME_VARG); 5762 dasm_put(Dst, 4629, FRAME_TYPE, FRAME_VARG);
5743 if (op == BC_RET1) { 5763 if (op == BC_RET1) {
5744 dasm_put(Dst, 4632); 5764 dasm_put(Dst, 4642);
5745 } 5765 }
5746 dasm_put(Dst, 4635, Dt7(->pc), PC2PROTO(k)); 5766 dasm_put(Dst, 4645, Dt7(->pc), PC2PROTO(k));
5747 break; 5767 break;
5748 5768
5749 /* -- Loops and branches ------------------------------------------------ */ 5769 /* -- Loops and branches ------------------------------------------------ */
5750 5770
5751 case BC_FORL: 5771 case BC_FORL:
5752#if LJ_HASJIT 5772#if LJ_HASJIT
5753 dasm_put(Dst, 4663); 5773 dasm_put(Dst, 4673);
5754#endif 5774#endif
5755 break; 5775 break;
5756 5776
@@ -5762,35 +5782,35 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5762 case BC_FORI: 5782 case BC_FORI:
5763 case BC_IFORL: 5783 case BC_IFORL:
5764 vk = (op == BC_IFORL || op == BC_JFORL); 5784 vk = (op == BC_IFORL || op == BC_JFORL);
5765 dasm_put(Dst, 4665, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8); 5785 dasm_put(Dst, 4675, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8);
5766 if (!vk) { 5786 if (!vk) {
5767 dasm_put(Dst, 4673); 5787 dasm_put(Dst, 4683);
5768 } 5788 }
5769 if (vk) { 5789 if (vk) {
5770 dasm_put(Dst, 4681, FORL_IDX*8); 5790 dasm_put(Dst, 4691, FORL_IDX*8);
5771 } 5791 }
5772 dasm_put(Dst, 4685, FORL_EXT*8); 5792 dasm_put(Dst, 4695, FORL_EXT*8);
5773 if (op != BC_JFORL) { 5793 if (op != BC_JFORL) {
5774 dasm_put(Dst, 4693, 32-1); 5794 dasm_put(Dst, 4703, 32-1);
5775 if (op == BC_JFORI) { 5795 if (op == BC_JFORI) {
5776 dasm_put(Dst, 4697, -(BCBIAS_J*4 >> 16)); 5796 dasm_put(Dst, 4707, -(BCBIAS_J*4 >> 16));
5777 } else { 5797 } else {
5778 dasm_put(Dst, 4700, -(BCBIAS_J*4 >> 16)); 5798 dasm_put(Dst, 4710, -(BCBIAS_J*4 >> 16));
5779 } 5799 }
5780 } 5800 }
5781 if (op == BC_FORI) { 5801 if (op == BC_FORI) {
5782 dasm_put(Dst, 4703); 5802 dasm_put(Dst, 4713);
5783 } else if (op == BC_IFORL) { 5803 } else if (op == BC_IFORL) {
5784 dasm_put(Dst, 4705); 5804 dasm_put(Dst, 4715);
5785 } else { 5805 } else {
5786 dasm_put(Dst, 4707, BC_JLOOP); 5806 dasm_put(Dst, 4717, BC_JLOOP);
5787 } 5807 }
5788 dasm_put(Dst, 4710); 5808 dasm_put(Dst, 4720);
5789 break; 5809 break;
5790 5810
5791 case BC_ITERL: 5811 case BC_ITERL:
5792#if LJ_HASJIT 5812#if LJ_HASJIT
5793 dasm_put(Dst, 4725); 5813 dasm_put(Dst, 4735);
5794#endif 5814#endif
5795 break; 5815 break;
5796 5816
@@ -5799,40 +5819,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5799 break; 5819 break;
5800#endif 5820#endif
5801 case BC_IITERL: 5821 case BC_IITERL:
5802 dasm_put(Dst, 4727); 5822 dasm_put(Dst, 4737);
5803 if (op == BC_JITERL) { 5823 if (op == BC_JITERL) {
5804 dasm_put(Dst, 4733); 5824 dasm_put(Dst, 4743);
5805 } else { 5825 } else {
5806 dasm_put(Dst, 4735, 32-1, -(BCBIAS_J*4 >> 16)); 5826 dasm_put(Dst, 4745, 32-1, -(BCBIAS_J*4 >> 16));
5807 } 5827 }
5808 dasm_put(Dst, 4742); 5828 dasm_put(Dst, 4752);
5809 break; 5829 break;
5810 5830
5811 case BC_LOOP: 5831 case BC_LOOP:
5812#if LJ_HASJIT 5832#if LJ_HASJIT
5813 dasm_put(Dst, 4754); 5833 dasm_put(Dst, 4764);
5814#endif 5834#endif
5815 break; 5835 break;
5816 5836
5817 case BC_ILOOP: 5837 case BC_ILOOP:
5818 dasm_put(Dst, 4756); 5838 dasm_put(Dst, 4766);
5819 break; 5839 break;
5820 5840
5821 case BC_JLOOP: 5841 case BC_JLOOP:
5822#if LJ_HASJIT 5842#if LJ_HASJIT
5823 dasm_put(Dst, 4767); 5843 dasm_put(Dst, 4777);
5824#endif 5844#endif
5825 break; 5845 break;
5826 5846
5827 case BC_JMP: 5847 case BC_JMP:
5828 dasm_put(Dst, 4769, 32-1, -(BCBIAS_J*4 >> 16)); 5848 dasm_put(Dst, 4779, 32-1, -(BCBIAS_J*4 >> 16));
5829 break; 5849 break;
5830 5850
5831 /* -- Function headers -------------------------------------------------- */ 5851 /* -- Function headers -------------------------------------------------- */
5832 5852
5833 case BC_FUNCF: 5853 case BC_FUNCF:
5834#if LJ_HASJIT 5854#if LJ_HASJIT
5835 dasm_put(Dst, 4785); 5855 dasm_put(Dst, 4795);
5836#endif 5856#endif
5837 case BC_FUNCV: /* NYI: compiled vararg functions. */ 5857 case BC_FUNCV: /* NYI: compiled vararg functions. */
5838 break; 5858 break;
@@ -5842,38 +5862,38 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5842 break; 5862 break;
5843#endif 5863#endif
5844 case BC_IFUNCF: 5864 case BC_IFUNCF:
5845 dasm_put(Dst, 4787, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3); 5865 dasm_put(Dst, 4797, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3);
5846 if (op == BC_JFUNCF) { 5866 if (op == BC_JFUNCF) {
5847 dasm_put(Dst, 4805); 5867 dasm_put(Dst, 4815);
5848 } else { 5868 } else {
5849 dasm_put(Dst, 4807); 5869 dasm_put(Dst, 4817);
5850 } 5870 }
5851 dasm_put(Dst, 4816); 5871 dasm_put(Dst, 4826);
5852 break; 5872 break;
5853 5873
5854 case BC_JFUNCV: 5874 case BC_JFUNCV:
5855#if !LJ_HASJIT 5875#if !LJ_HASJIT
5856 break; 5876 break;
5857#endif 5877#endif
5858 dasm_put(Dst, 4822); 5878 dasm_put(Dst, 4832);
5859 break; /* NYI: compiled vararg functions. */ 5879 break; /* NYI: compiled vararg functions. */
5860 5880
5861 case BC_IFUNCV: 5881 case BC_IFUNCV:
5862 dasm_put(Dst, 4824, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams)); 5882 dasm_put(Dst, 4834, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams));
5863 break; 5883 break;
5864 5884
5865 case BC_FUNCC: 5885 case BC_FUNCC:
5866 case BC_FUNCCW: 5886 case BC_FUNCCW:
5867 if (op == BC_FUNCC) { 5887 if (op == BC_FUNCC) {
5868 dasm_put(Dst, 4874, Dt8(->f)); 5888 dasm_put(Dst, 4884, Dt8(->f));
5869 } else { 5889 } else {
5870 dasm_put(Dst, 4877, DISPATCH_GL(wrapf)); 5890 dasm_put(Dst, 4887, DISPATCH_GL(wrapf));
5871 } 5891 }
5872 dasm_put(Dst, 4880, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C); 5892 dasm_put(Dst, 4890, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C);
5873 if (op == BC_FUNCCW) { 5893 if (op == BC_FUNCCW) {
5874 dasm_put(Dst, 4893, Dt8(->f)); 5894 dasm_put(Dst, 4903, Dt8(->f));
5875 } 5895 }
5876 dasm_put(Dst, 4896, DISPATCH_GL(vmstate), Dt1(->top), 31-3, Dt1(->base), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate)); 5896 dasm_put(Dst, 4906, DISPATCH_GL(vmstate), Dt1(->top), 31-3, Dt1(->base), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate));
5877 break; 5897 break;
5878 5898
5879 /* ---------------------------------------------------------------------- */ 5899 /* ---------------------------------------------------------------------- */
@@ -5893,7 +5913,7 @@ static int build_backend(BuildCtx *ctx)
5893 5913
5894 build_subroutines(ctx); 5914 build_subroutines(ctx);
5895 5915
5896 dasm_put(Dst, 4917); 5916 dasm_put(Dst, 4927);
5897 for (op = 0; op < BC__MAX; op++) 5917 for (op = 0; op < BC__MAX; op++)
5898 build_ins(ctx, (BCOp)op, op); 5918 build_ins(ctx, (BCOp)op, op);
5899 5919
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index af5c0b73..c40abbd8 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14284] = { 15static const unsigned char build_actionlist[14278] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -130,580 +130,580 @@ static const unsigned char build_actionlist[14284] = {
130 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184, 130 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184,
131 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252, 131 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,
132 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122, 132 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,
133 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133, 133 253,4,239,15,133,244,55,255,131,189,233,0,15,133,244,55,255,139,106,252,248,
134 233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237, 134 139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,
135 252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 135 184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,
136 133,244,55,129,122,253,12,239,255,15,135,244,55,139,90,252,252,255,252,242, 136 239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,90,252,252,255,252,
137 15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,15, 137 242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,
138 45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193, 138 15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,40,72,137,42, 139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,40,72,137,42,
140 252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,137,213,137, 140 252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,137,213,137,
141 198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,233, 141 198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,233,
142 244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,239, 142 244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,239,
143 15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,139, 143 15,133,244,55,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252,
144 90,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17, 144 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,
145 66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248, 145 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74,
146 239,15,130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193, 146 8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237,235,131,229,1,1,252,
147 252,237,235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15, 147 235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
148 130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, 148 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,90,8,137,106,
149 66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252, 149 8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,252,248,239,
150 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137, 150 15,130,244,55,139,42,139,90,252,252,137,92,36,28,137,44,36,129,122,253,4,
151 92,36,28,137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133, 151 239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,15,135,244,
152 244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141, 152 55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,92,193,
153 233,15,132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157, 153 252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,131,
154 233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41, 154 194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,249,248,2,72,
155 221,57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131,252,235, 155 139,4,43,72,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,
156 8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237, 156 139,60,36,232,244,24,65,199,134,233,237,255,139,108,36,24,139,28,36,139,149,
157 255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248, 157 233,129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,
158 4,139,139,233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244, 158 233,68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,
159 252,141,4,26,193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248, 159 15,135,244,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,68,
160 5,72,139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67, 160 57,252,249,15,133,244,5,248,6,141,67,2,199,66,252,252,237,248,7,139,92,36,
161 2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,193,252,248,252, 161 28,137,68,36,4,72,199,193,252,248,252,255,252,255,252,255,252,247,195,237,
162 255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,248, 162 255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,139,233,131,
163 8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139,1,72,137, 163 252,233,8,137,139,233,72,139,1,72,137,2,184,237,252,233,244,7,248,9,139,12,
164 2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137,252,239, 164 36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,
165 232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,77,139,106,252,248,139, 165 233,244,4,248,77,139,106,252,248,139,173,233,139,90,252,252,137,92,36,28,
166 173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,189,233,0,15,133,244, 166 137,44,36,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,
167 55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,59,141,233, 167 139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252,
168 15,132,244,55,248,1,141,92,193,252,248,59,157,233,15,135,244,55,137,157,233, 168 248,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149,
169 139,108,36,24,137,149,233,137,149,233,141,108,194,252,240,72,41,221,57,203, 169 233,141,108,194,252,240,72,41,221,57,203,15,132,244,249,248,2,255,72,139,
170 15,132,244,249,248,2,255,72,139,4,43,72,137,67,252,248,131,252,235,8,57,203, 170 4,43,72,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,
171 15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,139,108, 171 60,36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149,233,129,
172 36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139, 172 252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68,
173 233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4, 173 137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135,
174 26,193,252,235,3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,72, 174 244,255,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,68,57,
175 139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248, 175 252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,28,137,68,36,4,49,201,
176 7,139,92,36,28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233,244, 176 252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,222,137,252,239,232,
177 14,248,8,137,222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185,233, 177 251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,
178 137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,78, 178 28,36,139,149,233,252,233,244,4,248,78,139,108,36,24,72,252,247,133,233,237,
179 139,108,36,24,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68, 179 15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,
180 194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233, 180 133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,252,252,221,
181 244,16,255,248,64,139,90,252,252,221,90,252,248,252,233,244,58,248,79,129, 181 90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,
182 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 182 4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,
183 72,184,237,237,102,72,15,110,200,15,84,193,248,63,139,90,252,252,252,242, 183 193,248,63,139,90,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,
184 15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239, 184 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,
185 15,135,244,55,221,2,217,225,248,63,248,64,139,90,252,252,221,90,252,248,255, 185 64,139,90,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,4,248,
186 248,58,184,237,248,69,137,68,36,4,248,56,252,247,195,237,15,133,244,253,248, 186 56,252,247,195,237,15,133,244,253,248,5,56,67,252,255,15,135,244,252,15,182,
187 5,56,67,252,255,15,135,244,252,15,182,75,252,253,72,252,247,209,141,20,202, 187 75,252,253,72,252,247,209,141,20,202,139,3,15,182,204,15,182,232,131,195,
188 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 188 4,193,232,16,65,252,255,36,252,238,248,6,199,68,194,252,244,237,131,192,1,
189 6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248, 189 252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,
190 252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130, 190 14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
191 244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248, 191 55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,
192 81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 192 122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,
193 15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55, 193 83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
194 129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63, 194 242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,
195 255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 195 55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,
196 221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129, 196 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,
197 122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129, 197 82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,
198 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84, 198 239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,
199 252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239, 199 239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,
200 15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252, 200 241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,
201 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217, 201 15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,
202 252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253, 202 248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,
203 4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239, 203 252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
204 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244, 204 135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,
205 64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244, 205 130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,
206 55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55, 206 64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
207 129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64, 207 2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,
208 248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55, 208 255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
209 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244, 209 217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,
210 64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 210 55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
211 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233, 211 217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,
212 244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 212 130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,
213 55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,252,248,239, 213 252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,
214 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213, 214 15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,
215 232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252,248,239,15,130, 215 244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
216 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251, 216 244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,
217 1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239,15,130,244,55, 217 255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
218 129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,16, 218 252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,
219 137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239,15,130,244,55, 219 255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
220 129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15, 220 252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,
221 89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122, 221 248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
222 253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64, 222 2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,
223 255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 223 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
224 129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64, 224 55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,
225 248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 225 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,
226 122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233, 226 55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,
227 244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15, 227 239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90,252,252,
228 135,244,55,139,90,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129, 228 139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,
229 252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3, 229 15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,
230 0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252, 230 0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,
231 242,15,42,197,255,137,44,36,219,4,36,255,139,106,252,252,129,229,252,255, 231 44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,
232 252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17, 232 0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,
233 2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2, 233 252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,
234 255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237, 234 244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,
235 102,72,15,110,205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199, 235 242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90,216,
236 4,36,0,0,128,90,216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0, 236 12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,
237 209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253, 237 1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
238 4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244, 238 55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,122,253,
239 55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209, 239 4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129,252,253,
240 229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104, 240 0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,
241 252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217, 241 248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,
242 192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252, 242 252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,
243 139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252, 243 136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,
244 245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255, 244 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,
245 217,252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244, 245 201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,
246 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66, 246 239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,
247 8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64, 247 252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,
248 255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 248 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
249 129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244, 249 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,
250 107,252,233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253, 250 63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
251 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244, 251 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,
252 107,252,233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253, 252 64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
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, 253 55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,
254 129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252, 254 234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,
255 248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239, 255 93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,
256 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0, 256 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,
257 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55, 257 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,
258 252,242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244, 258 76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,
259 1,255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244, 259 216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,
260 55,129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233, 260 4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,
261 244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133, 261 133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,
262 244,55,129,122,253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233, 262 253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244,72,
263 1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137, 263 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36,
264 44,36,219,4,36,252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15, 264 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
265 130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4, 265 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
266 239,15,135,244,55,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244, 266 255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,4,
267 55,137,108,36,4,255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244, 267 255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,
268 55,255,199,68,36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233, 268 36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,
269 139,84,36,8,72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233, 269 72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,
270 139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65, 270 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,
271 139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252, 271 59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,
272 255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247, 272 255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,
273 129,122,253,20,239,255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219, 273 255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,
274 92,36,4,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 274 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,
275 244,55,139,42,137,108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68, 275 108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68,36,4,57,197,15,130,
276 36,4,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36, 276 244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,
277 8,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137, 277 115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,
278 232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6, 278 248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,
279 137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143, 279 2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,
280 244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116, 280 0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,
281 129,252,248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247, 281 130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,
282 232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15, 282 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,
283 135,244,55,139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68, 283 252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,
284 36,4,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117, 284 244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,
285 65,57,134,233,15,130,244,117,15,182,141,233,65,139,174,233,137,68,36,8,248, 285 244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,
286 1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113, 286 1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,
287 248,118,129,252,248,239,255,15,130,244,55,65,139,174,233,65,59,174,233,15, 287 239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,
288 130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133, 288 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
289 233,133,192,15,132,244,115,65,57,134,233,15,130,244,119,129,197,239,137,92, 289 244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,
290 36,4,137,68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1, 290 65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,
291 136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252, 291 244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,
292 248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244, 292 244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,
293 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233, 293 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,
294 255,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252, 294 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,
295 233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249, 295 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,
296 90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244, 296 131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,
297 1,137,216,139,92,36,4,252,233,244,113,248,121,129,252,248,239,15,130,244, 297 36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,
298 55,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122, 298 233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,
299 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129, 299 244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,
300 197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182, 300 36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
301 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131, 301 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
302 252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36, 302 2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,
303 4,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,239, 303 248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
304 15,133,244,55,137,213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192, 304 213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,
305 252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239, 305 255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
306 15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15, 306 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,
307 88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252, 307 126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,
308 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72, 308 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
309 189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68, 309 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,
310 36,4,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15, 310 252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,
311 135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255, 311 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
312 131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122, 312 233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
313 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
314 252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,
315 15,126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,
316 239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,
317 15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,
318 193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
319 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88, 313 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,
320 193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252,248,239, 314 193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,
321 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237, 315 205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
322 237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255, 316 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
323 248,125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233, 317 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,
324 244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 318 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
325 244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74, 319 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
326 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137, 320 197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,
327 200,102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255, 321 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
328 248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 322 110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,
329 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 323 242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,
330 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 324 131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
331 126,197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133, 325 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
332 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 326 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
333 12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102, 327 197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,
334 72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,
335 102,15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,
336 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, 328 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
337 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15, 329 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
338 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15, 330 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,
339 126,201,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15, 331 126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,
340 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 332 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
341 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252, 333 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,
342 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255, 334 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,
343 211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184, 335 211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,
344 237,248,55,139,108,36,24,139,90,252,252,137,92,36,28,137,149,233,141,68,194, 336 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
345 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251, 337 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
346 137,252,239,252,255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139, 338 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,
347 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244, 339 193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,
348 248,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36, 340 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
349 252,238,248,2,137,209,252,247,195,237,15,133,244,249,15,182,107,252,253,72, 341 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
350 252,247,213,141,20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41, 342 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,
351 252,234,252,233,244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233, 343 244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,
352 49,192,252,233,244,1,248,66,93,72,137,108,36,8,139,108,36,24,137,92,36,28, 344 24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,
353 137,149,233,255,141,68,194,252,248,137,252,239,137,133,233,232,251,1,19,139, 345 137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,
354 149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,8,85,195,248, 346 144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209,193,
355 136,255,65,15,182,134,233,168,235,15,133,244,251,168,235,15,133,244,247,168, 347 252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,157,233,139,
356 235,15,132,244,247,65,252,255,142,233,252,233,244,247,255,248,137,65,15,182, 348 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209,
357 134,233,168,235,15,133,244,251,252,233,244,247,248,138,65,15,182,134,233, 349 252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,
358 168,235,15,133,244,251,168,235,15,132,244,251,65,252,255,142,233,15,132,244, 350 234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,
359 247,168,235,15,132,244,251,248,1,255,139,108,36,24,137,149,233,137,222,137, 351 248,5,190,237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248,
360 252,239,232,251,1,20,248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182, 352 66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,
361 107,252,252,15,183,67,252,254,65,252,255,164,253,252,238,233,248,139,131, 353 252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,
362 195,4,139,77,232,137,76,36,4,252,233,244,4,248,140,255,139,106,252,248,139, 354 193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,
363 173,233,15,182,133,233,141,4,194,139,108,36,24,137,149,233,137,133,233,137, 355 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,
364 222,65,141,190,233,73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3, 356 255,142,233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,
365 255,248,141,137,92,36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255, 357 244,251,252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,
366 141,68,194,252,248,139,108,36,24,137,149,233,137,133,233,137,222,137,252, 358 168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,
367 239,232,251,1,22,199,68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233, 359 251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,
368 72,137,193,139,133,233,41,208,72,137,205,15,182,75,252,253,193,232,3,131, 360 248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,
369 192,1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85, 361 67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,
370 72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137, 362 76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,
371 125,252,248,76,137,117,252,240,68,139,117,0,65,139,142,233,65,199,134,233, 363 233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,
372 237,65,137,134,233,65,137,142,233,72,129,252,236,239,72,131,197,128,252,242, 364 73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,
373 68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232, 365 36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,
374 252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208, 366 139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,
375 252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252, 367 68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,
376 242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15, 368 41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,
377 17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128, 369 255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,
378 65,139,174,233,65,139,150,233,73,137,174,233,65,199,134,233,0,0,0,0,137,149, 370 81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,
379 233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72,129,225,239, 371 240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,
380 72,137,204,137,169,233,139,149,233,139,153,233,252,233,244,247,255,248,144, 372 142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,
381 255,72,131,196,16,248,1,76,139,108,36,8,76,139,36,36,133,192,15,136,244,249, 373 242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,
382 137,68,36,4,68,139,122,252,248,69,139,191,233,69,139,191,233,65,199,134,233, 374 252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,
383 0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131,195,4,193,232, 375 242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,
384 16,129,252,253,239,15,130,244,248,139,68,36,4,248,2,65,252,255,36,252,238, 376 17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,
385 248,3,252,247,216,137,252,239,137,198,232,251,1,24,255,248,82,255,217,124, 377 252,242,15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,
386 36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 378 137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,
387 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145, 379 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,
388 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 380 233,139,153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,
389 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203, 381 108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,
390 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242, 382 69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,
391 15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255, 383 3,15,182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,
392 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251, 384 139,68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,
393 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 385 198,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
394 248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 386 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
395 15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242, 387 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,
396 15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208, 388 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
397 252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 389 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
398 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 390 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
399 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 391 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
400 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 392 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
401 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242, 393 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
402 15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194, 394 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
403 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248, 395 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
404 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184, 396 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
405 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244, 397 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,
406 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184, 398 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
407 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92, 399 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,
408 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89, 400 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
409 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4, 401 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
410 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, 402 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
411 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252, 403 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
412 234,222,201,248,149,217,84,36,252,248,129,124,36,252,248,0,0,128,127,15,132, 404 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
413 244,247,129,124,36,252,248,0,0,128,252,255,15,132,244,248,248,150,217,192, 405 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
406 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
407 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
408 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
409 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
410 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
411 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
412 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,
413 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,
414 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,
415 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,
416 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,
417 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,
418 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,
419 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,
420 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,
421 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,
422 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,
423 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,
424 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,
425 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,
426 17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,
414 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 427 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
415 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242, 428 217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,
416 15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 429 102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,
417 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 430 72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,
418 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 431 208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,
419 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 432 48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,
420 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 433 102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
421 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, 434 192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,
422 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, 435 132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
423 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, 436 195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,
424 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, 437 135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,
425 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, 438 252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,
426 36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,36,252,248, 439 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
427 217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222, 440 252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,
428 193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,252,248,195, 441 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
429 248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40, 442 253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
430 193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184, 443 244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,
431 237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87, 444 36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,
432 192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72, 445 15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,
433 15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248, 446 248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,
434 5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,131,252,255, 447 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,
435 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, 448 201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,
436 252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248, 449 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,
437 131,252,255,5,15,135,244,248,15,132,244,247,232,244,88,252,233,244,253,248, 450 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,
438 1,232,244,149,255,252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135, 451 195,255,248,9,204,255,248,154,255,131,252,255,1,15,132,244,247,15,135,244,
439 244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,217,232,217, 452 248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,
440 201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135, 453 15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,
441 244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,255,217,252, 454 195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,
442 254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, 455 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
443 252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248, 456 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,
444 252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255, 457 15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,
445 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, 458 68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,
446 217,252,250,195,248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252, 459 252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,
447 255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248, 460 252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,
448 1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255, 461 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
449 15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195, 462 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
450 248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1, 463 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
451 217,252,242,221,216,195,255,248,9,204,255,248,154,255,131,252,255,1,15,132, 464 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
452 244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195, 465 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
453 248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248, 466 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
454 1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,148,15,132,244,107, 467 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
455 131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,72,15, 468 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
456 110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195, 469 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
457 248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,242,15, 470 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
458 17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,217,252, 471 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
459 243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,217,201, 472 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,
460 217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,247,15, 473 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,
461 135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255, 474 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,
462 139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135, 475 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,
463 244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244, 476 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
464 247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5, 477 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
465 15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248, 478 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,
466 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, 479 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,
467 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, 480 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,
468 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, 481 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,
469 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, 482 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
470 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, 483 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
471 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155, 484 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
472 137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,129,124, 485 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,
473 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 486 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,
474 15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,4,255, 487 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,
475 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 488 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,
476 131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15, 489 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
477 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108, 490 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,
478 194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135, 491 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
479 244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255, 492 238,255,72,139,44,194,72,137,44,202,139,3,15,182,204,15,182,232,131,195,4,
480 15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1, 493 193,232,16,65,252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,129,
481 15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,252,254,141, 494 213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
482 156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 495 252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,
483 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 496 16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,
484 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 497 221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,
485 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208, 498 4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,
486 131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202,65,59,12,135,255, 499 128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,
487 131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242,65,15,16,4,199, 500 16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,60,
488 102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247,208,131,195,4,57, 501 194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75,
489 68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255,15,131,244,247,255, 502 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
490 15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,67,252, 503 4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255,
491 254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, 504 221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,
492 16,65,252,255,36,252,238,255,72,139,44,194,72,137,44,202,139,3,15,182,204, 505 252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,
493 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129, 506 234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,
494 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131, 507 135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,
495 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244, 508 234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,
496 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252, 509 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,
497 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239, 510 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,
498 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242, 511 4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65,
499 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182, 512 15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252,
500 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239, 513 242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,
501 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 514 234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,
502 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, 515 252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242,
503 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242, 516 65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,
504 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239, 517 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,
505 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221, 518 255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65,
506 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253, 519 221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,
507 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, 520 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,
508 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199, 521 221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,
509 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92, 522 244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,
510 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252, 523 137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,139,149,233,
511 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234, 524 133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234,
512 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15, 525 72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
513 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252, 526 36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,
514 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 527 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,
515 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52, 528 191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,
516 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220, 529 255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,
517 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252, 530 255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,
518 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221, 531 232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,
519 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234, 532 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182,
520 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, 533 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,
521 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244, 534 253,133,233,139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182,
522 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233, 535 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,
523 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25, 536 253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,
524 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72, 537 69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,
525 139,4,252,234,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232, 538 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,
526 16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237, 539 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,
527 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 540 137,213,65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,
528 252,238,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252, 541 252,247,208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,
529 254,221,28,202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221, 542 137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,
530 4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182, 543 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,
531 232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194, 544 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,
532 4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139, 545 233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,
533 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139, 546 65,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,
534 106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,202,139, 547 221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,
535 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139, 548 137,65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
536 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139, 549 238,255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,
537 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244, 550 149,233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,
538 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 551 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,
539 252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235, 552 208,139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,
540 15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,26,137,252, 553 92,36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,
541 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233, 554 4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
542 65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244, 555 238,255,139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,
543 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 556 28,15,131,244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,
544 252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1, 557 7,0,0,15,132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15,
545 137,213,137,198,65,141,190,233,232,251,1,26,137,252,234,252,233,244,1,255, 558 182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,
546 139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141, 559 195,4,193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,
547 233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139, 560 5,137,252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247,
548 172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195, 561 208,139,108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,
549 4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,24, 562 131,244,249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,
550 131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1,
551 27,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
552 252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,139,82,252,
553 248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,28,139,149,233,15,182,
554 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, 563 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,
555 4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137,149,233,65,139,142, 564 4,193,232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,
556 233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137,194,37,252,255,7, 565 67,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,
557 0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,239,137, 566 139,173,233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,
558 198,232,251,1,29,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 567 139,173,233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,
559 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 568 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,
560 3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251,1,30,15,183,67,252, 569 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,
561 254,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,233,137,92, 570 102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,
562 36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252, 571 233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,
563 239,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 572 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
564 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 573 189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,
565 3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,247,208,252,233,244,2, 574 182,75,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,
566 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157, 575 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,
567 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158, 576 192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
568 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139, 577 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
569 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 578 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
570 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233, 579 132,244,251,15,182,67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15,
571 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139, 580 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,
572 40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 581 67,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,
573 252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246, 582 244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,
574 129,233,235,15,132,244,36,15,182,75,252,253,248,3,255,199,68,202,4,237,252, 583 3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,
575 233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244, 584 15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,
576 157,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253, 585 129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,
577 252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233, 586 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,
578 105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15, 587 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,
579 133,244,250,129,121,253,4,239,15,132,244,251,15,182,67,252,253,72,139,41, 588 75,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,
580 72,137,44,194,248,2,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16, 589 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,
581 65,252,255,36,252,238,248,3,15,182,67,252,253,199,68,194,4,237,252,233,244, 590 4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,
582 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132, 591 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,
583 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236, 592 244,253,248,2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,232,131,195,
584 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133, 593 4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,141,
585 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72, 594 233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,1,
586 139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, 595 248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,
587 16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252, 596 128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,
588 246,129,233,235,15,132,244,35,255,15,182,75,252,253,248,3,199,68,202,4,237, 597 252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,
589 252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 598 124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,
590 133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133, 599 136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,
591 244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15, 600 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,
592 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202, 601 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,72,139,44,
593 72,137,40,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 602 194,72,137,41,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
594 252,238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233, 603 36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,
595 235,15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4, 604 129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,
596 239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139, 605 15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,
597 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15, 606 132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,
598 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4, 607 151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,
599 239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239, 608 149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,
600 198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15, 609 233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,
601 133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235, 610 129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,
602 15,133,244,253,248,3,15,182,67,252,253,72,139,44,194,72,137,41,139,3,15,182, 611 244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,
603 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,189,233, 612 133,233,235,15,133,244,253,248,2,72,139,12,202,72,137,8,139,3,15,182,204,
604 0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,15,132,244,37,139, 613 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
605 12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233, 614 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
606 133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,4,36,199, 615 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
607 68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,141,20,36,137,252,238, 616 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,199,
608 137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,108,36,8,137,193,252, 617 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
609 233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233, 618 139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,251,
610 252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 619 68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,137,
611 133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129, 620 47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,
612 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, 621 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,
613 2,72,139,12,202,72,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16, 622 137,151,233,137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,
614 65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252, 623 149,233,15,182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,139,
615 246,129,233,235,15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165, 624 134,233,65,137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,
616 233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233, 625 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,
617 244,2,255,68,137,60,36,69,139,60,199,248,1,141,12,202,139,105,252,248,252, 626 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,
618 246,133,233,235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250, 627 141,76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,
619 68,1,252,248,59,133,233,15,135,244,251,68,41,252,248,65,193,231,3,68,3,189, 628 28,248,52,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,
620 233,248,3,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244, 629 248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,73,137,
621 3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 630 47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,
622 252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,137, 631 128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,
623 252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,244, 632 205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,244,
624 1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252, 633 4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,191,
625 233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,51, 634 233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247,195,237,15,
626 141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205, 635 133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248,8,129,195,
627 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248, 636 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
628 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237, 637 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
629 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249, 638 252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,
630 248,2,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,2,139, 639 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,68,137,60,
631 106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,244,251,248,4,139,157, 640 36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,139,181,233,
632 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248, 641 131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,129,124,253,
633 5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,252,247,209,141,12, 642 199,4,239,15,132,244,250,255,252,242,15,42,192,255,219,68,202,252,248,255,
634 202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,233,244,4,248,7, 643 73,139,44,199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,
635 129,252,235,239,252,247,195,237,15,133,244,254,41,218,65,137,215,139,90,252, 644 183,67,252,254,141,156,253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,
636 252,252,233,244,1,248,8,129,195,239,252,233,244,1,255,141,76,202,8,72,139, 645 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,
637 105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,224,139,65,228,137, 646 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,68,41,252,240,248,
638 105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202, 647 6,59,133,233,15,135,244,3,68,105,252,248,239,68,3,189,233,65,129,191,233,
639 137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65, 648 239,15,132,244,253,70,141,116,48,1,73,139,175,233,73,139,135,233,72,137,44,
640 252,255,36,252,238,255,68,137,60,36,68,137,116,36,4,139,108,202,252,240,139, 649 202,72,137,68,202,8,68,137,116,202,252,248,252,233,244,2,248,7,131,192,1,
641 68,202,252,248,68,139,181,233,131,195,4,68,139,189,233,248,1,68,57,252,240, 650 252,233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,
642 15,131,244,251,65,129,124,253,199,4,239,15,132,244,250,255,252,242,15,42, 651 232,129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,
643 192,255,219,68,202,252,248,255,73,139,44,199,72,137,108,202,8,131,192,1,255, 652 15,133,244,251,128,189,233,235,15,133,244,251,141,156,253,131,233,199,68,
644 137,68,202,252,248,248,2,15,183,67,252,254,141,156,253,131,233,248,3,68,139, 653 202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
645 116,36,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 654 65,252,255,36,252,238,248,5,198,67,252,252,235,141,156,253,131,233,198,3,
646 252,255,36,252,238,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244, 655 235,252,233,244,1,255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253,
647 1,248,5,68,41,252,240,248,6,59,133,233,15,135,244,3,68,105,252,248,239,68, 656 194,233,141,12,202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,
648 3,189,233,65,129,191,233,239,15,132,244,253,70,141,116,48,1,73,139,175,233, 657 233,252,248,65,57,215,15,131,244,248,248,1,73,139,71,252,248,65,131,199,8,
649 73,139,135,233,72,137,44,202,72,137,68,202,8,68,137,116,202,252,248,252,233, 658 72,137,1,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,
650 244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133, 659 199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,
651 244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124, 660 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,
652 253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,156, 661 36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131,
653 253,131,233,199,68,202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232, 662 197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255,
654 131,195,4,193,232,16,65,252,255,36,252,238,248,5,198,67,252,252,235,141,156, 663 73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65,57,215,15,130,244,6,
655 253,131,233,198,3,235,252,233,244,1,255,15,182,252,236,15,182,192,68,137, 664 252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116,
656 60,36,68,141,188,253,194,233,141,12,202,68,43,122,252,252,133,252,237,15, 665 36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215,
657 132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,248,248,1,73,139, 666 252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247,
658 71,252,248,65,131,199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,65,57, 667 195,237,15,133,244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248,
659 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248, 668 2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232,1,15,133,244,2,248,
660 3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 669 3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,72,139,44,
661 36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137, 670 10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,
662 197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15, 671 252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191,233,69,139,
663 135,244,253,248,6,255,73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65, 672 191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
664 57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36, 673 238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,
665 28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233, 674 255,131,192,1,252,233,244,5,248,7,141,171,233,252,247,197,237,15,133,244,
666 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252, 675 14,41,252,234,255,1,252,233,255,137,221,209,252,237,129,229,239,102,65,131,
667 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232, 676 172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,
668 1,15,132,244,249,248,2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232, 677 244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,
669 1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244, 678 15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,
670 252,255,72,139,44,10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244, 679 16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,
671 252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69, 680 15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,
672 139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232, 681 17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,
673 16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255, 682 217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253,131,233,
674 199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,171,233,252, 683 255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141,
675 247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,221,209,252,237, 684 156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,
676 129,229,239,102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255, 685 105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,
677 129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139, 686 248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,
678 105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16, 687 248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,24,65,137,150,
679 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255, 688 233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,
680 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221, 689 224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
681 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24, 690 16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,239,102,65,131,172,
682 15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248, 691 253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,36,24,141,12,202,59,
683 141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245, 692 141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,
684 255,15,130,244,248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244, 693 67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,
685 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252, 694 15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,
686 252,139,41,137,105,252,248,252,233,245,255,141,156,253,131,233,139,1,137, 695 137,104,252,252,68,137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,
687 105,252,252,137,65,252,248,255,65,139,142,233,139,4,129,72,139,128,233,139, 696 135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,248,
688 108,36,24,65,137,150,233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131, 697 1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,
689 252,236,16,252,255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232, 698 252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,
690 131,195,4,193,232,16,65,252,255,36,252,238,255,137,221,209,252,237,129,229, 699 1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
691 239,102,65,131,172,253,46,233,1,15,132,244,142,255,68,139,187,233,139,108, 700 16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,
692 36,24,141,12,202,59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244, 701 133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,24,
693 249,248,2,255,15,183,67,252,254,252,233,245,255,248,3,199,68,194,252,252, 702 141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,
694 237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4, 703 252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,237,
695 194,68,139,122,252,248,137,104,252,252,68,137,120,252,248,139,108,36,24,141, 704 255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,149,
696 12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,171,233,133,252,237, 705 233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,254,
697 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68, 706 0
698 137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,
699 237,1,15,133,244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,
700 195,4,193,232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,
701 252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,
702 108,36,24,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,
703 255,137,252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,
704 233,237,255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,
705 139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,
706 255,254,0
707}; 707};
708 708
709enum { 709enum {
@@ -1112,331 +1112,338 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1112 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)); 1112 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));
1113 dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1113 dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1114 dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1114 dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1115 dasm_put(Dst, 2402, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1115 dasm_put(Dst, 2402, LJ_TTAB);
1116 dasm_put(Dst, 2476); 1116#ifdef LUAJIT_ENABLE_LUA52COMPAT
1117 dasm_put(Dst, 2414, Dt6(->metatable));
1118#endif
1119 dasm_put(Dst, 2423, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1117 if (sse) { 1120 if (sse) {
1118 dasm_put(Dst, 2485, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1121 dasm_put(Dst, 2486, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1119 } else { 1122 } else {
1120 } 1123 }
1121 dasm_put(Dst, 2518, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1124 dasm_put(Dst, 2519, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1122 dasm_put(Dst, 2595, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC); 1125 dasm_put(Dst, 2596, 1+1, LJ_TTAB);
1126#ifdef LUAJIT_ENABLE_LUA52COMPAT
1127 dasm_put(Dst, 2414, Dt6(->metatable));
1128#endif
1129 dasm_put(Dst, 2616, Dt8(->upvalue[0]), LJ_TFUNC);
1123 if (sse) { 1130 if (sse) {
1124 dasm_put(Dst, 2643); 1131 dasm_put(Dst, 2637);
1125 } else { 1132 } else {
1126 dasm_put(Dst, 2653); 1133 dasm_put(Dst, 2647);
1127 } 1134 }
1128 dasm_put(Dst, 2660, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1135 dasm_put(Dst, 2654, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1129 dasm_put(Dst, 2725, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1136 dasm_put(Dst, 2719, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1130 dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1137 dasm_put(Dst, 2808, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1131 dasm_put(Dst, 2901, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1138 dasm_put(Dst, 2895, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1132 dasm_put(Dst, 3016, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1139 dasm_put(Dst, 3010, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1133 dasm_put(Dst, 3111, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1140 dasm_put(Dst, 3105, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1134 dasm_put(Dst, 3177, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1141 dasm_put(Dst, 3171, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1135 dasm_put(Dst, 3266, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1142 dasm_put(Dst, 3260, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1136 dasm_put(Dst, 3376, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1143 dasm_put(Dst, 3370, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1137 if (sse) { 1144 if (sse) {
1138 dasm_put(Dst, 3403, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1145 dasm_put(Dst, 3397, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1139 } else { 1146 } else {
1140 dasm_put(Dst, 3467, 1+1, LJ_TISNUM); 1147 dasm_put(Dst, 3461, 1+1, LJ_TISNUM);
1141 } 1148 }
1142 dasm_put(Dst, 3503, 1+1, FRAME_TYPE, LJ_TNIL); 1149 dasm_put(Dst, 3497, 1+1, FRAME_TYPE, LJ_TNIL);
1143 if (sse) { 1150 if (sse) {
1144 dasm_put(Dst, 3598, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1151 dasm_put(Dst, 3592, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1145 dasm_put(Dst, 3660, 1+1, LJ_TISNUM); 1152 dasm_put(Dst, 3654, 1+1, LJ_TISNUM);
1146 } else { 1153 } else {
1147 dasm_put(Dst, 3690, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1154 dasm_put(Dst, 3684, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1148 dasm_put(Dst, 3749, 1+1, LJ_TISNUM); 1155 dasm_put(Dst, 3743, 1+1, LJ_TISNUM);
1149 } 1156 }
1150 dasm_put(Dst, 3776, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1157 dasm_put(Dst, 3770, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1151 dasm_put(Dst, 3845, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1158 dasm_put(Dst, 3839, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1152 dasm_put(Dst, 3902, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1159 dasm_put(Dst, 3896, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1153 dasm_put(Dst, 3965, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1160 dasm_put(Dst, 3959, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1154 dasm_put(Dst, 4055); 1161 dasm_put(Dst, 4049);
1155 if (sse) { 1162 if (sse) {
1156 dasm_put(Dst, 4067, 1+1, LJ_TISNUM); 1163 dasm_put(Dst, 4061, 1+1, LJ_TISNUM);
1157 } else { 1164 } else {
1158 } 1165 }
1159 dasm_put(Dst, 4092); 1166 dasm_put(Dst, 4086);
1160 if (sse) { 1167 if (sse) {
1161 dasm_put(Dst, 4106, 1+1, LJ_TISNUM); 1168 dasm_put(Dst, 4100, 1+1, LJ_TISNUM);
1162 } else { 1169 } else {
1163 } 1170 }
1164 dasm_put(Dst, 4131); 1171 dasm_put(Dst, 4125);
1165 if (sse) { 1172 if (sse) {
1166 dasm_put(Dst, 4145, 1+1, LJ_TISNUM); 1173 dasm_put(Dst, 4139, 1+1, LJ_TISNUM);
1167 } else { 1174 } else {
1168 } 1175 }
1169 dasm_put(Dst, 4170); 1176 dasm_put(Dst, 4164);
1170 if (sse) { 1177 if (sse) {
1171 dasm_put(Dst, 4186, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1178 dasm_put(Dst, 4180, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1172 } else { 1179 } else {
1173 dasm_put(Dst, 4225, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1180 dasm_put(Dst, 4219, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1174 } 1181 }
1175 dasm_put(Dst, 4258, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1182 dasm_put(Dst, 4252, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1176 dasm_put(Dst, 4323, 1+1, LJ_TISNUM); 1183 dasm_put(Dst, 4317, 1+1, LJ_TISNUM);
1177 if (sse) { 1184 if (sse) {
1178 dasm_put(Dst, 4422); 1185 dasm_put(Dst, 4416);
1179 } else { 1186 } else {
1180 dasm_put(Dst, 4428); 1187 dasm_put(Dst, 4422);
1181 } 1188 }
1182 dasm_put(Dst, 4435); 1189 dasm_put(Dst, 4429);
1183 if (sse) { 1190 if (sse) {
1184 dasm_put(Dst, 4460); 1191 dasm_put(Dst, 4454);
1185 } else { 1192 } else {
1186 dasm_put(Dst, 4466); 1193 dasm_put(Dst, 4460);
1187 } 1194 }
1188 dasm_put(Dst, 4469, 1+2); 1195 dasm_put(Dst, 4463, 1+2);
1189 if (sse) { 1196 if (sse) {
1190 dasm_put(Dst, 4478); 1197 dasm_put(Dst, 4472);
1191 } else { 1198 } else {
1192 dasm_put(Dst, 4486); 1199 dasm_put(Dst, 4480);
1193 } 1200 }
1194 dasm_put(Dst, 4494); 1201 dasm_put(Dst, 4488);
1195 if (sse) { 1202 if (sse) {
1196 dasm_put(Dst, 4497, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1203 dasm_put(Dst, 4491, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1197 } else { 1204 } else {
1198 dasm_put(Dst, 4524); 1205 dasm_put(Dst, 4518);
1199 } 1206 }
1200 dasm_put(Dst, 4541); 1207 dasm_put(Dst, 4535);
1201 if (sse) { 1208 if (sse) {
1202 dasm_put(Dst, 4557, 1+1, LJ_TISNUM); 1209 dasm_put(Dst, 4551, 1+1, LJ_TISNUM);
1203 } else { 1210 } else {
1204 dasm_put(Dst, 4582, 1+1, LJ_TISNUM); 1211 dasm_put(Dst, 4576, 1+1, LJ_TISNUM);
1205 } 1212 }
1206 dasm_put(Dst, 4604); 1213 dasm_put(Dst, 4598);
1207 if (sse) { 1214 if (sse) {
1208 dasm_put(Dst, 4626); 1215 dasm_put(Dst, 4620);
1209 } else { 1216 } else {
1210 dasm_put(Dst, 4652); 1217 dasm_put(Dst, 4646);
1211 } 1218 }
1212 dasm_put(Dst, 4669, 1+2); 1219 dasm_put(Dst, 4663, 1+2);
1213 if (sse) { 1220 if (sse) {
1214 dasm_put(Dst, 4709); 1221 dasm_put(Dst, 4703);
1215 } else { 1222 } else {
1216 dasm_put(Dst, 4717); 1223 dasm_put(Dst, 4711);
1217 } 1224 }
1218 dasm_put(Dst, 4727, 2+1, LJ_TISNUM, LJ_TISNUM); 1225 dasm_put(Dst, 4721, 2+1, LJ_TISNUM, LJ_TISNUM);
1219 if (sse) { 1226 if (sse) {
1220 dasm_put(Dst, 4779, 2+1, LJ_TISNUM, LJ_TISNUM); 1227 dasm_put(Dst, 4773, 2+1, LJ_TISNUM, LJ_TISNUM);
1221 } else { 1228 } else {
1222 dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM); 1229 dasm_put(Dst, 4820, 2+1, LJ_TISNUM, LJ_TISNUM);
1223 } 1230 }
1224 if (sse) { 1231 if (sse) {
1225 dasm_put(Dst, 4867, 1+1, LJ_TISNUM, LJ_TISNUM); 1232 dasm_put(Dst, 4861, 1+1, LJ_TISNUM, LJ_TISNUM);
1226 } else { 1233 } else {
1227 } 1234 }
1228 if (sse) { 1235 if (sse) {
1229 dasm_put(Dst, 4938, 1+1, LJ_TISNUM, LJ_TISNUM); 1236 dasm_put(Dst, 4932, 1+1, LJ_TISNUM, LJ_TISNUM);
1230 } else { 1237 } else {
1231 } 1238 }
1232 if (!sse) { 1239 if (!sse) {
1233 dasm_put(Dst, 5009); 1240 dasm_put(Dst, 5003);
1234 } 1241 }
1235 dasm_put(Dst, 5018, 1+1, LJ_TSTR); 1242 dasm_put(Dst, 5012, 1+1, LJ_TSTR);
1236 if (sse) { 1243 if (sse) {
1237 dasm_put(Dst, 5040, Dt5(->len)); 1244 dasm_put(Dst, 5034, Dt5(->len));
1238 } else { 1245 } else {
1239 dasm_put(Dst, 5051, Dt5(->len)); 1246 dasm_put(Dst, 5045, Dt5(->len));
1240 } 1247 }
1241 dasm_put(Dst, 5059, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1248 dasm_put(Dst, 5053, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1242 if (sse) { 1249 if (sse) {
1243 dasm_put(Dst, 5097); 1250 dasm_put(Dst, 5091);
1244 } else { 1251 } else {
1245 dasm_put(Dst, 5107); 1252 dasm_put(Dst, 5101);
1246 } 1253 }
1247 dasm_put(Dst, 5118, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1254 dasm_put(Dst, 5112, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1248 if (sse) { 1255 if (sse) {
1249 dasm_put(Dst, 5155); 1256 dasm_put(Dst, 5149);
1250 } else { 1257 } else {
1251 dasm_put(Dst, 5177); 1258 dasm_put(Dst, 5171);
1252 } 1259 }
1253 dasm_put(Dst, 5197, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1260 dasm_put(Dst, 5191, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1254 dasm_put(Dst, 2154); 1261 dasm_put(Dst, 2154);
1255 if (sse) { 1262 if (sse) {
1256 dasm_put(Dst, 5306); 1263 dasm_put(Dst, 5300);
1257 } else { 1264 } else {
1258 dasm_put(Dst, 5317); 1265 dasm_put(Dst, 5311);
1259 } 1266 }
1260 dasm_put(Dst, 5325, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1267 dasm_put(Dst, 5319, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1261 if (sse) { 1268 if (sse) {
1262 dasm_put(Dst, 5355); 1269 dasm_put(Dst, 5349);
1263 } else { 1270 } else {
1264 } 1271 }
1265 dasm_put(Dst, 5362, sizeof(GCstr)-1); 1272 dasm_put(Dst, 5356, sizeof(GCstr)-1);
1266 dasm_put(Dst, 5437, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1273 dasm_put(Dst, 5431, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1267 dasm_put(Dst, 5498, LJ_TSTR, LJ_TISNUM); 1274 dasm_put(Dst, 5492, LJ_TSTR, LJ_TISNUM);
1268 if (sse) { 1275 if (sse) {
1269 dasm_put(Dst, 5519); 1276 dasm_put(Dst, 5513);
1270 } else { 1277 } else {
1271 dasm_put(Dst, 5526); 1278 dasm_put(Dst, 5520);
1272 } 1279 }
1273 dasm_put(Dst, 5538, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1280 dasm_put(Dst, 5532, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1274 dasm_put(Dst, 5606, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1281 dasm_put(Dst, 5600, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1275 dasm_put(Dst, 5673, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1282 dasm_put(Dst, 5667, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1276 dasm_put(Dst, 5746, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1283 dasm_put(Dst, 5740, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1277 dasm_put(Dst, 5831, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1284 dasm_put(Dst, 5825, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1278 dasm_put(Dst, 5905, 1+1, LJ_TTAB); 1285 dasm_put(Dst, 5899, 1+1, LJ_TTAB);
1279 if (sse) { 1286 if (sse) {
1280 dasm_put(Dst, 5972); 1287 dasm_put(Dst, 5966);
1281 } else { 1288 } else {
1282 } 1289 }
1283 if (sse) { 1290 if (sse) {
1284 dasm_put(Dst, 5982, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1291 dasm_put(Dst, 5976, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1285 } else { 1292 } else {
1286 } 1293 }
1287 if (sse) { 1294 if (sse) {
1288 dasm_put(Dst, 6034, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1295 dasm_put(Dst, 6028, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1289 } else { 1296 } else {
1290 } 1297 }
1291 dasm_put(Dst, 6077, LJ_TISNUM); 1298 dasm_put(Dst, 6071, LJ_TISNUM);
1292 if (sse) { 1299 if (sse) {
1293 dasm_put(Dst, 6104); 1300 dasm_put(Dst, 6098);
1294 } else { 1301 } else {
1295 } 1302 }
1296 dasm_put(Dst, 6121); 1303 dasm_put(Dst, 6115);
1297 if (sse) { 1304 if (sse) {
1298 dasm_put(Dst, 6129, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1305 dasm_put(Dst, 6123, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1299 } else { 1306 } else {
1300 } 1307 }
1301 dasm_put(Dst, 6077, LJ_TISNUM); 1308 dasm_put(Dst, 6071, LJ_TISNUM);
1302 if (sse) { 1309 if (sse) {
1303 dasm_put(Dst, 6172); 1310 dasm_put(Dst, 6166);
1304 } else { 1311 } else {
1305 } 1312 }
1306 dasm_put(Dst, 6121); 1313 dasm_put(Dst, 6115);
1307 if (sse) { 1314 if (sse) {
1308 dasm_put(Dst, 6189, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1315 dasm_put(Dst, 6183, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1309 } else { 1316 } else {
1310 } 1317 }
1311 dasm_put(Dst, 6077, LJ_TISNUM); 1318 dasm_put(Dst, 6071, LJ_TISNUM);
1312 if (sse) { 1319 if (sse) {
1313 dasm_put(Dst, 6232); 1320 dasm_put(Dst, 6226);
1314 } else { 1321 } else {
1315 } 1322 }
1316 dasm_put(Dst, 6121); 1323 dasm_put(Dst, 6115);
1317 if (sse) { 1324 if (sse) {
1318 dasm_put(Dst, 6249, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1325 dasm_put(Dst, 6243, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1319 } else { 1326 } else {
1320 } 1327 }
1321 dasm_put(Dst, 6292); 1328 dasm_put(Dst, 6286);
1322 if (sse) { 1329 if (sse) {
1323 dasm_put(Dst, 6299, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1330 dasm_put(Dst, 6293, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1324 } else { 1331 } else {
1325 } 1332 }
1326 dasm_put(Dst, 6342); 1333 dasm_put(Dst, 6336);
1327 if (sse) { 1334 if (sse) {
1328 dasm_put(Dst, 6346); 1335 dasm_put(Dst, 6340);
1329 } else { 1336 } else {
1330 } 1337 }
1331 dasm_put(Dst, 6358); 1338 dasm_put(Dst, 6352);
1332 if (sse) { 1339 if (sse) {
1333 dasm_put(Dst, 6369, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1340 dasm_put(Dst, 6363, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1334 } else { 1341 } else {
1335 } 1342 }
1336 dasm_put(Dst, 6438); 1343 dasm_put(Dst, 6432);
1337 if (sse) { 1344 if (sse) {
1338 dasm_put(Dst, 6447, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1345 dasm_put(Dst, 6441, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1339 } else { 1346 } else {
1340 } 1347 }
1341 dasm_put(Dst, 6516); 1348 dasm_put(Dst, 6510);
1342 if (sse) { 1349 if (sse) {
1343 dasm_put(Dst, 6526, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1350 dasm_put(Dst, 6520, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1344 } else { 1351 } else {
1345 } 1352 }
1346 dasm_put(Dst, 6595); 1353 dasm_put(Dst, 6589);
1347 if (sse) { 1354 if (sse) {
1348 dasm_put(Dst, 6605, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1355 dasm_put(Dst, 6599, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1349 } else { 1356 } else {
1350 } 1357 }
1351 dasm_put(Dst, 6674); 1358 dasm_put(Dst, 6668);
1352 if (sse) { 1359 if (sse) {
1353 dasm_put(Dst, 6683, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1360 dasm_put(Dst, 6677, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1354 } else { 1361 } else {
1355 } 1362 }
1356 dasm_put(Dst, 6752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1363 dasm_put(Dst, 6746, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1357 dasm_put(Dst, 6830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1364 dasm_put(Dst, 6824, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1358 dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top)); 1365 dasm_put(Dst, 6951, Dt1(->top), Dt1(->base), Dt1(->top));
1359#if LJ_HASJIT 1366#if LJ_HASJIT
1360 dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1367 dasm_put(Dst, 6990, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1361#endif 1368#endif
1362 dasm_put(Dst, 7029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1369 dasm_put(Dst, 7023, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1363 dasm_put(Dst, 7083, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1370 dasm_put(Dst, 7077, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1364#if LJ_HASJIT 1371#if LJ_HASJIT
1365 dasm_put(Dst, 7150, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1372 dasm_put(Dst, 7144, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1366#endif 1373#endif
1367 dasm_put(Dst, 7197); 1374 dasm_put(Dst, 7191);
1368#if LJ_HASJIT 1375#if LJ_HASJIT
1369 dasm_put(Dst, 7024); 1376 dasm_put(Dst, 7018);
1370#endif 1377#endif
1371 dasm_put(Dst, 7204); 1378 dasm_put(Dst, 7198);
1372#if LJ_HASJIT 1379#if LJ_HASJIT
1373 dasm_put(Dst, 7207); 1380 dasm_put(Dst, 7201);
1374#endif 1381#endif
1375 dasm_put(Dst, 7217, Dt1(->base), Dt1(->top)); 1382 dasm_put(Dst, 7211, Dt1(->base), Dt1(->top));
1376#if LJ_HASJIT 1383#if LJ_HASJIT
1377 dasm_put(Dst, 7250); 1384 dasm_put(Dst, 7244);
1378#endif 1385#endif
1379 dasm_put(Dst, 7255, Dt1(->base), Dt1(->top)); 1386 dasm_put(Dst, 7249, Dt1(->base), Dt1(->top));
1380#if LJ_HASJIT 1387#if LJ_HASJIT
1381 dasm_put(Dst, 7286, 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); 1388 dasm_put(Dst, 7280, 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);
1382#endif 1389#endif
1383 dasm_put(Dst, 7525); 1390 dasm_put(Dst, 7519);
1384#if LJ_HASJIT 1391#if LJ_HASJIT
1385 dasm_put(Dst, 7528, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1392 dasm_put(Dst, 7522, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1386#endif 1393#endif
1387 dasm_put(Dst, 7628); 1394 dasm_put(Dst, 7622);
1388 if (!sse) { 1395 if (!sse) {
1389 dasm_put(Dst, 7631); 1396 dasm_put(Dst, 7625);
1390 } 1397 }
1391 dasm_put(Dst, 7676, (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)); 1398 dasm_put(Dst, 7670, (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));
1392 if (!sse) { 1399 if (!sse) {
1393 dasm_put(Dst, 7762); 1400 dasm_put(Dst, 7756);
1394 } 1401 }
1395 dasm_put(Dst, 7807, (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)); 1402 dasm_put(Dst, 7801, (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));
1396 if (!sse) { 1403 if (!sse) {
1397 dasm_put(Dst, 7893); 1404 dasm_put(Dst, 7887);
1398 } 1405 }
1399 dasm_put(Dst, 7932, (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)); 1406 dasm_put(Dst, 7926, (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));
1400 if (sse) { 1407 if (sse) {
1401 dasm_put(Dst, 8021, (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)); 1408 dasm_put(Dst, 8015, (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));
1402 } else { 1409 } else {
1403 dasm_put(Dst, 8135); 1410 dasm_put(Dst, 8129);
1404 } 1411 }
1405 dasm_put(Dst, 8182); 1412 dasm_put(Dst, 8176);
1406 if (!sse) { 1413 if (!sse) {
1407 } else { 1414 } else {
1408 dasm_put(Dst, 8259); 1415 dasm_put(Dst, 8253);
1409 } 1416 }
1410 dasm_put(Dst, 8262); 1417 dasm_put(Dst, 8256);
1411 dasm_put(Dst, 8347, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1418 dasm_put(Dst, 8341, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1412 dasm_put(Dst, 8448, (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)); 1419 dasm_put(Dst, 8442, (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));
1413 dasm_put(Dst, 8622); 1420 dasm_put(Dst, 8616);
1414#if LJ_HASJIT 1421#if LJ_HASJIT
1415 if (sse) { 1422 if (sse) {
1416 dasm_put(Dst, 8663); 1423 dasm_put(Dst, 8657);
1417 dasm_put(Dst, 8733); 1424 dasm_put(Dst, 8727);
1418 dasm_put(Dst, 8805); 1425 dasm_put(Dst, 8799);
1419 } else { 1426 } else {
1420 dasm_put(Dst, 8857); 1427 dasm_put(Dst, 8851);
1421 dasm_put(Dst, 8949); 1428 dasm_put(Dst, 8943);
1422 } 1429 }
1423 dasm_put(Dst, 8995); 1430 dasm_put(Dst, 8989);
1424#endif 1431#endif
1425 dasm_put(Dst, 8999); 1432 dasm_put(Dst, 8993);
1426 if (sse) { 1433 if (sse) {
1427 dasm_put(Dst, 9002, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1434 dasm_put(Dst, 8996, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1428 dasm_put(Dst, 9087, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1435 dasm_put(Dst, 9081, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1429 } else { 1436 } else {
1430 dasm_put(Dst, 9215); 1437 dasm_put(Dst, 9209);
1431 dasm_put(Dst, 9298); 1438 dasm_put(Dst, 9292);
1432 if (cmov) { 1439 if (cmov) {
1433 dasm_put(Dst, 9353); 1440 dasm_put(Dst, 9347);
1434 } else { 1441 } else {
1435 dasm_put(Dst, 9372); 1442 dasm_put(Dst, 9366);
1436 } 1443 }
1437 dasm_put(Dst, 8995); 1444 dasm_put(Dst, 8989);
1438 } 1445 }
1439 dasm_put(Dst, 9413); 1446 dasm_put(Dst, 9407);
1440} 1447}
1441 1448
1442/* Generate the code for a single instruction. */ 1449/* Generate the code for a single instruction. */
@@ -1452,618 +1459,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1452 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1459 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1453 1460
1454 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1461 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1455 dasm_put(Dst, 9435, LJ_TISNUM, LJ_TISNUM); 1462 dasm_put(Dst, 9429, LJ_TISNUM, LJ_TISNUM);
1456 if (sse) { 1463 if (sse) {
1457 dasm_put(Dst, 9456); 1464 dasm_put(Dst, 9450);
1458 } else { 1465 } else {
1459 dasm_put(Dst, 9471); 1466 dasm_put(Dst, 9465);
1460 if (cmov) { 1467 if (cmov) {
1461 dasm_put(Dst, 9481); 1468 dasm_put(Dst, 9475);
1462 } else { 1469 } else {
1463 dasm_put(Dst, 9487); 1470 dasm_put(Dst, 9481);
1464 } 1471 }
1465 } 1472 }
1466 switch (op) { 1473 switch (op) {
1467 case BC_ISLT: 1474 case BC_ISLT:
1468 dasm_put(Dst, 9494); 1475 dasm_put(Dst, 9488);
1469 break; 1476 break;
1470 case BC_ISGE: 1477 case BC_ISGE:
1471 dasm_put(Dst, 9293); 1478 dasm_put(Dst, 9287);
1472 break; 1479 break;
1473 case BC_ISLE: 1480 case BC_ISLE:
1474 dasm_put(Dst, 5900); 1481 dasm_put(Dst, 5894);
1475 break; 1482 break;
1476 case BC_ISGT: 1483 case BC_ISGT:
1477 dasm_put(Dst, 9499); 1484 dasm_put(Dst, 9493);
1478 break; 1485 break;
1479 default: break; /* Shut up GCC. */ 1486 default: break; /* Shut up GCC. */
1480 } 1487 }
1481 dasm_put(Dst, 9504, -BCBIAS_J*4); 1488 dasm_put(Dst, 9498, -BCBIAS_J*4);
1482 break; 1489 break;
1483 1490
1484 case BC_ISEQV: case BC_ISNEV: 1491 case BC_ISEQV: case BC_ISNEV:
1485 vk = op == BC_ISEQV; 1492 vk = op == BC_ISEQV;
1486 dasm_put(Dst, 9539, LJ_TISNUM, LJ_TISNUM); 1493 dasm_put(Dst, 9533, LJ_TISNUM, LJ_TISNUM);
1487 if (sse) { 1494 if (sse) {
1488 dasm_put(Dst, 9565); 1495 dasm_put(Dst, 9559);
1489 } else { 1496 } else {
1490 dasm_put(Dst, 9577); 1497 dasm_put(Dst, 9571);
1491 if (cmov) { 1498 if (cmov) {
1492 dasm_put(Dst, 9481); 1499 dasm_put(Dst, 9475);
1493 } else { 1500 } else {
1494 dasm_put(Dst, 9487); 1501 dasm_put(Dst, 9481);
1495 } 1502 }
1496 } 1503 }
1497 iseqne_fp: 1504 iseqne_fp:
1498 if (vk) { 1505 if (vk) {
1499 dasm_put(Dst, 9584); 1506 dasm_put(Dst, 9578);
1500 } else { 1507 } else {
1501 dasm_put(Dst, 9593); 1508 dasm_put(Dst, 9587);
1502 } 1509 }
1503 iseqne_end: 1510 iseqne_end:
1504 if (vk) { 1511 if (vk) {
1505 dasm_put(Dst, 9602, -BCBIAS_J*4); 1512 dasm_put(Dst, 9596, -BCBIAS_J*4);
1506 } else { 1513 } else {
1507 dasm_put(Dst, 9617, -BCBIAS_J*4); 1514 dasm_put(Dst, 9611, -BCBIAS_J*4);
1508 } 1515 }
1509 dasm_put(Dst, 9518); 1516 dasm_put(Dst, 9512);
1510 if (op == BC_ISEQV || op == BC_ISNEV) { 1517 if (op == BC_ISEQV || op == BC_ISNEV) {
1511 dasm_put(Dst, 9632, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1518 dasm_put(Dst, 9626, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1512 if (vk) { 1519 if (vk) {
1513 dasm_put(Dst, 9690); 1520 dasm_put(Dst, 9684);
1514 } else { 1521 } else {
1515 dasm_put(Dst, 9694); 1522 dasm_put(Dst, 9688);
1516 } 1523 }
1517 dasm_put(Dst, 9700); 1524 dasm_put(Dst, 9694);
1518 } 1525 }
1519 break; 1526 break;
1520 case BC_ISEQS: case BC_ISNES: 1527 case BC_ISEQS: case BC_ISNES:
1521 vk = op == BC_ISEQS; 1528 vk = op == BC_ISEQS;
1522 dasm_put(Dst, 9705, LJ_TSTR); 1529 dasm_put(Dst, 9699, LJ_TSTR);
1523 iseqne_test: 1530 iseqne_test:
1524 if (vk) { 1531 if (vk) {
1525 dasm_put(Dst, 9588); 1532 dasm_put(Dst, 9582);
1526 } else { 1533 } else {
1527 dasm_put(Dst, 2809); 1534 dasm_put(Dst, 2803);
1528 } 1535 }
1529 goto iseqne_end; 1536 goto iseqne_end;
1530 case BC_ISEQN: case BC_ISNEN: 1537 case BC_ISEQN: case BC_ISNEN:
1531 vk = op == BC_ISEQN; 1538 vk = op == BC_ISEQN;
1532 dasm_put(Dst, 9730, LJ_TISNUM); 1539 dasm_put(Dst, 9724, LJ_TISNUM);
1533 if (sse) { 1540 if (sse) {
1534 dasm_put(Dst, 9744); 1541 dasm_put(Dst, 9738);
1535 } else { 1542 } else {
1536 dasm_put(Dst, 9757); 1543 dasm_put(Dst, 9751);
1537 if (cmov) { 1544 if (cmov) {
1538 dasm_put(Dst, 9481); 1545 dasm_put(Dst, 9475);
1539 } else { 1546 } else {
1540 dasm_put(Dst, 9487); 1547 dasm_put(Dst, 9481);
1541 } 1548 }
1542 } 1549 }
1543 goto iseqne_fp; 1550 goto iseqne_fp;
1544 case BC_ISEQP: case BC_ISNEP: 1551 case BC_ISEQP: case BC_ISNEP:
1545 vk = op == BC_ISEQP; 1552 vk = op == BC_ISEQP;
1546 dasm_put(Dst, 9765); 1553 dasm_put(Dst, 9759);
1547 goto iseqne_test; 1554 goto iseqne_test;
1548 1555
1549 /* -- Unary test and copy ops ------------------------------------------- */ 1556 /* -- Unary test and copy ops ------------------------------------------- */
1550 1557
1551 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1558 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1552 dasm_put(Dst, 9777, LJ_TISTRUECOND); 1559 dasm_put(Dst, 9771, LJ_TISTRUECOND);
1553 if (op == BC_IST || op == BC_ISTC) { 1560 if (op == BC_IST || op == BC_ISTC) {
1554 dasm_put(Dst, 9789); 1561 dasm_put(Dst, 9783);
1555 } else { 1562 } else {
1556 dasm_put(Dst, 9794); 1563 dasm_put(Dst, 9788);
1557 } 1564 }
1558 if (op == BC_ISTC || op == BC_ISFC) { 1565 if (op == BC_ISTC || op == BC_ISFC) {
1559 dasm_put(Dst, 9799); 1566 dasm_put(Dst, 9793);
1560 } 1567 }
1561 dasm_put(Dst, 9810, -BCBIAS_J*4); 1568 dasm_put(Dst, 9804, -BCBIAS_J*4);
1562 break; 1569 break;
1563 1570
1564 /* -- Unary ops --------------------------------------------------------- */ 1571 /* -- Unary ops --------------------------------------------------------- */
1565 1572
1566 case BC_MOV: 1573 case BC_MOV:
1567 dasm_put(Dst, 9843); 1574 dasm_put(Dst, 9837);
1568 break; 1575 break;
1569 case BC_NOT: 1576 case BC_NOT:
1570 dasm_put(Dst, 9872, LJ_TISTRUECOND, LJ_TTRUE); 1577 dasm_put(Dst, 9866, LJ_TISTRUECOND, LJ_TTRUE);
1571 break; 1578 break;
1572 case BC_UNM: 1579 case BC_UNM:
1573 dasm_put(Dst, 9909, LJ_TISNUM); 1580 dasm_put(Dst, 9903, LJ_TISNUM);
1574 if (sse) { 1581 if (sse) {
1575 dasm_put(Dst, 9920, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1582 dasm_put(Dst, 9914, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1576 } else { 1583 } else {
1577 dasm_put(Dst, 9945); 1584 dasm_put(Dst, 9939);
1578 } 1585 }
1579 dasm_put(Dst, 9518); 1586 dasm_put(Dst, 9512);
1580 break; 1587 break;
1581 case BC_LEN: 1588 case BC_LEN:
1582 dasm_put(Dst, 9954, LJ_TSTR); 1589 dasm_put(Dst, 9948, LJ_TSTR);
1583 if (sse) { 1590 if (sse) {
1584 dasm_put(Dst, 9968, Dt5(->len)); 1591 dasm_put(Dst, 9962, Dt5(->len));
1585 } else { 1592 } else {
1586 dasm_put(Dst, 9986, Dt5(->len)); 1593 dasm_put(Dst, 9980, Dt5(->len));
1587 } 1594 }
1588 dasm_put(Dst, 9995, LJ_TTAB); 1595 dasm_put(Dst, 9989, LJ_TTAB);
1589 if (sse) { 1596 if (sse) {
1590 dasm_put(Dst, 10037); 1597 dasm_put(Dst, 10031);
1591 } else { 1598 } else {
1592 } 1599 }
1593 dasm_put(Dst, 10046); 1600 dasm_put(Dst, 10040);
1594 break; 1601 break;
1595 1602
1596 /* -- Binary ops -------------------------------------------------------- */ 1603 /* -- Binary ops -------------------------------------------------------- */
1597 1604
1598 1605
1599 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1606 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1600 dasm_put(Dst, 10056); 1607 dasm_put(Dst, 10050);
1601 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1608 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1602 switch (vk) { 1609 switch (vk) {
1603 case 0: 1610 case 0:
1604 dasm_put(Dst, 10064, LJ_TISNUM); 1611 dasm_put(Dst, 10058, LJ_TISNUM);
1605 if (sse) { 1612 if (sse) {
1606 dasm_put(Dst, 10076); 1613 dasm_put(Dst, 10070);
1607 } else { 1614 } else {
1608 dasm_put(Dst, 10091); 1615 dasm_put(Dst, 10085);
1609 } 1616 }
1610 break; 1617 break;
1611 case 1: 1618 case 1:
1612 dasm_put(Dst, 10100, LJ_TISNUM); 1619 dasm_put(Dst, 10094, LJ_TISNUM);
1613 if (sse) { 1620 if (sse) {
1614 dasm_put(Dst, 10112); 1621 dasm_put(Dst, 10106);
1615 } else { 1622 } else {
1616 dasm_put(Dst, 10127); 1623 dasm_put(Dst, 10121);
1617 } 1624 }
1618 break; 1625 break;
1619 default: 1626 default:
1620 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1627 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1621 if (sse) { 1628 if (sse) {
1622 dasm_put(Dst, 10158); 1629 dasm_put(Dst, 10152);
1623 } else { 1630 } else {
1624 dasm_put(Dst, 10172); 1631 dasm_put(Dst, 10166);
1625 } 1632 }
1626 break; 1633 break;
1627 } 1634 }
1628 if (sse) { 1635 if (sse) {
1629 dasm_put(Dst, 9938); 1636 dasm_put(Dst, 9932);
1630 } else { 1637 } else {
1631 dasm_put(Dst, 9950); 1638 dasm_put(Dst, 9944);
1632 } 1639 }
1633 dasm_put(Dst, 9518); 1640 dasm_put(Dst, 9512);
1634 break; 1641 break;
1635 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1642 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1636 dasm_put(Dst, 10056); 1643 dasm_put(Dst, 10050);
1637 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1644 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1638 switch (vk) { 1645 switch (vk) {
1639 case 0: 1646 case 0:
1640 dasm_put(Dst, 10064, LJ_TISNUM); 1647 dasm_put(Dst, 10058, LJ_TISNUM);
1641 if (sse) { 1648 if (sse) {
1642 dasm_put(Dst, 10180); 1649 dasm_put(Dst, 10174);
1643 } else { 1650 } else {
1644 dasm_put(Dst, 10195); 1651 dasm_put(Dst, 10189);
1645 } 1652 }
1646 break; 1653 break;
1647 case 1: 1654 case 1:
1648 dasm_put(Dst, 10100, LJ_TISNUM); 1655 dasm_put(Dst, 10094, LJ_TISNUM);
1649 if (sse) { 1656 if (sse) {
1650 dasm_put(Dst, 10204); 1657 dasm_put(Dst, 10198);
1651 } else { 1658 } else {
1652 dasm_put(Dst, 10219); 1659 dasm_put(Dst, 10213);
1653 } 1660 }
1654 break; 1661 break;
1655 default: 1662 default:
1656 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1663 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1657 if (sse) { 1664 if (sse) {
1658 dasm_put(Dst, 10228); 1665 dasm_put(Dst, 10222);
1659 } else { 1666 } else {
1660 dasm_put(Dst, 10242); 1667 dasm_put(Dst, 10236);
1661 } 1668 }
1662 break; 1669 break;
1663 } 1670 }
1664 if (sse) { 1671 if (sse) {
1665 dasm_put(Dst, 9938); 1672 dasm_put(Dst, 9932);
1666 } else { 1673 } else {
1667 dasm_put(Dst, 9950); 1674 dasm_put(Dst, 9944);
1668 } 1675 }
1669 dasm_put(Dst, 9518); 1676 dasm_put(Dst, 9512);
1670 break; 1677 break;
1671 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1678 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1672 dasm_put(Dst, 10056); 1679 dasm_put(Dst, 10050);
1673 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1680 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1674 switch (vk) { 1681 switch (vk) {
1675 case 0: 1682 case 0:
1676 dasm_put(Dst, 10064, LJ_TISNUM); 1683 dasm_put(Dst, 10058, LJ_TISNUM);
1677 if (sse) { 1684 if (sse) {
1678 dasm_put(Dst, 10250); 1685 dasm_put(Dst, 10244);
1679 } else { 1686 } else {
1680 dasm_put(Dst, 10265); 1687 dasm_put(Dst, 10259);
1681 } 1688 }
1682 break; 1689 break;
1683 case 1: 1690 case 1:
1684 dasm_put(Dst, 10100, LJ_TISNUM); 1691 dasm_put(Dst, 10094, LJ_TISNUM);
1685 if (sse) { 1692 if (sse) {
1686 dasm_put(Dst, 10274); 1693 dasm_put(Dst, 10268);
1687 } else { 1694 } else {
1688 dasm_put(Dst, 10289); 1695 dasm_put(Dst, 10283);
1689 } 1696 }
1690 break; 1697 break;
1691 default: 1698 default:
1692 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1699 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1693 if (sse) { 1700 if (sse) {
1694 dasm_put(Dst, 10298); 1701 dasm_put(Dst, 10292);
1695 } else { 1702 } else {
1696 dasm_put(Dst, 10312); 1703 dasm_put(Dst, 10306);
1697 } 1704 }
1698 break; 1705 break;
1699 } 1706 }
1700 if (sse) { 1707 if (sse) {
1701 dasm_put(Dst, 9938); 1708 dasm_put(Dst, 9932);
1702 } else { 1709 } else {
1703 dasm_put(Dst, 9950); 1710 dasm_put(Dst, 9944);
1704 } 1711 }
1705 dasm_put(Dst, 9518); 1712 dasm_put(Dst, 9512);
1706 break; 1713 break;
1707 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1714 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1708 dasm_put(Dst, 10056); 1715 dasm_put(Dst, 10050);
1709 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1716 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1710 switch (vk) { 1717 switch (vk) {
1711 case 0: 1718 case 0:
1712 dasm_put(Dst, 10064, LJ_TISNUM); 1719 dasm_put(Dst, 10058, LJ_TISNUM);
1713 if (sse) { 1720 if (sse) {
1714 dasm_put(Dst, 10320); 1721 dasm_put(Dst, 10314);
1715 } else { 1722 } else {
1716 dasm_put(Dst, 10335); 1723 dasm_put(Dst, 10329);
1717 } 1724 }
1718 break; 1725 break;
1719 case 1: 1726 case 1:
1720 dasm_put(Dst, 10100, LJ_TISNUM); 1727 dasm_put(Dst, 10094, LJ_TISNUM);
1721 if (sse) { 1728 if (sse) {
1722 dasm_put(Dst, 10344); 1729 dasm_put(Dst, 10338);
1723 } else { 1730 } else {
1724 dasm_put(Dst, 10359); 1731 dasm_put(Dst, 10353);
1725 } 1732 }
1726 break; 1733 break;
1727 default: 1734 default:
1728 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1735 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1729 if (sse) { 1736 if (sse) {
1730 dasm_put(Dst, 10368); 1737 dasm_put(Dst, 10362);
1731 } else { 1738 } else {
1732 dasm_put(Dst, 10382); 1739 dasm_put(Dst, 10376);
1733 } 1740 }
1734 break; 1741 break;
1735 } 1742 }
1736 if (sse) { 1743 if (sse) {
1737 dasm_put(Dst, 9938); 1744 dasm_put(Dst, 9932);
1738 } else { 1745 } else {
1739 dasm_put(Dst, 9950); 1746 dasm_put(Dst, 9944);
1740 } 1747 }
1741 dasm_put(Dst, 9518); 1748 dasm_put(Dst, 9512);
1742 break; 1749 break;
1743 case BC_MODVN: 1750 case BC_MODVN:
1744 dasm_put(Dst, 10056); 1751 dasm_put(Dst, 10050);
1745 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1752 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1746 switch (vk) { 1753 switch (vk) {
1747 case 0: 1754 case 0:
1748 dasm_put(Dst, 10064, LJ_TISNUM); 1755 dasm_put(Dst, 10058, LJ_TISNUM);
1749 if (sse) { 1756 if (sse) {
1750 dasm_put(Dst, 10390); 1757 dasm_put(Dst, 10384);
1751 } else { 1758 } else {
1752 dasm_put(Dst, 10405); 1759 dasm_put(Dst, 10399);
1753 } 1760 }
1754 break; 1761 break;
1755 case 1: 1762 case 1:
1756 dasm_put(Dst, 10100, LJ_TISNUM); 1763 dasm_put(Dst, 10094, LJ_TISNUM);
1757 if (sse) { 1764 if (sse) {
1758 dasm_put(Dst, 10414); 1765 dasm_put(Dst, 10408);
1759 } else { 1766 } else {
1760 dasm_put(Dst, 10429); 1767 dasm_put(Dst, 10423);
1761 } 1768 }
1762 break; 1769 break;
1763 default: 1770 default:
1764 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1771 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1765 if (sse) { 1772 if (sse) {
1766 dasm_put(Dst, 10438); 1773 dasm_put(Dst, 10432);
1767 } else { 1774 } else {
1768 dasm_put(Dst, 10452); 1775 dasm_put(Dst, 10446);
1769 } 1776 }
1770 break; 1777 break;
1771 } 1778 }
1772 dasm_put(Dst, 10460); 1779 dasm_put(Dst, 10454);
1773 if (sse) { 1780 if (sse) {
1774 dasm_put(Dst, 9938); 1781 dasm_put(Dst, 9932);
1775 } else { 1782 } else {
1776 dasm_put(Dst, 9950); 1783 dasm_put(Dst, 9944);
1777 } 1784 }
1778 dasm_put(Dst, 9518); 1785 dasm_put(Dst, 9512);
1779 break; 1786 break;
1780 case BC_MODNV: case BC_MODVV: 1787 case BC_MODNV: case BC_MODVV:
1781 dasm_put(Dst, 10056); 1788 dasm_put(Dst, 10050);
1782 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1783 switch (vk) { 1790 switch (vk) {
1784 case 0: 1791 case 0:
1785 dasm_put(Dst, 10064, LJ_TISNUM); 1792 dasm_put(Dst, 10058, LJ_TISNUM);
1786 if (sse) { 1793 if (sse) {
1787 dasm_put(Dst, 10390); 1794 dasm_put(Dst, 10384);
1788 } else { 1795 } else {
1789 dasm_put(Dst, 10405); 1796 dasm_put(Dst, 10399);
1790 } 1797 }
1791 break; 1798 break;
1792 case 1: 1799 case 1:
1793 dasm_put(Dst, 10100, LJ_TISNUM); 1800 dasm_put(Dst, 10094, LJ_TISNUM);
1794 if (sse) { 1801 if (sse) {
1795 dasm_put(Dst, 10414); 1802 dasm_put(Dst, 10408);
1796 } else { 1803 } else {
1797 dasm_put(Dst, 10429); 1804 dasm_put(Dst, 10423);
1798 } 1805 }
1799 break; 1806 break;
1800 default: 1807 default:
1801 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1808 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1802 if (sse) { 1809 if (sse) {
1803 dasm_put(Dst, 10438); 1810 dasm_put(Dst, 10432);
1804 } else { 1811 } else {
1805 dasm_put(Dst, 10452); 1812 dasm_put(Dst, 10446);
1806 } 1813 }
1807 break; 1814 break;
1808 } 1815 }
1809 dasm_put(Dst, 10466); 1816 dasm_put(Dst, 10460);
1810 break; 1817 break;
1811 case BC_POW: 1818 case BC_POW:
1812 dasm_put(Dst, 10056); 1819 dasm_put(Dst, 10050);
1813 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1820 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1814 switch (vk) { 1821 switch (vk) {
1815 case 0: 1822 case 0:
1816 dasm_put(Dst, 10064, LJ_TISNUM); 1823 dasm_put(Dst, 10058, LJ_TISNUM);
1817 if (sse) { 1824 if (sse) {
1818 dasm_put(Dst, 10390); 1825 dasm_put(Dst, 10384);
1819 } else { 1826 } else {
1820 dasm_put(Dst, 10405); 1827 dasm_put(Dst, 10399);
1821 } 1828 }
1822 break; 1829 break;
1823 case 1: 1830 case 1:
1824 dasm_put(Dst, 10100, LJ_TISNUM); 1831 dasm_put(Dst, 10094, LJ_TISNUM);
1825 if (sse) { 1832 if (sse) {
1826 dasm_put(Dst, 10414); 1833 dasm_put(Dst, 10408);
1827 } else { 1834 } else {
1828 dasm_put(Dst, 10429); 1835 dasm_put(Dst, 10423);
1829 } 1836 }
1830 break; 1837 break;
1831 default: 1838 default:
1832 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1839 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1833 if (sse) { 1840 if (sse) {
1834 dasm_put(Dst, 10438); 1841 dasm_put(Dst, 10432);
1835 } else { 1842 } else {
1836 dasm_put(Dst, 10452); 1843 dasm_put(Dst, 10446);
1837 } 1844 }
1838 break; 1845 break;
1839 } 1846 }
1840 dasm_put(Dst, 10471); 1847 dasm_put(Dst, 10465);
1841 if (sse) { 1848 if (sse) {
1842 dasm_put(Dst, 9938); 1849 dasm_put(Dst, 9932);
1843 } else { 1850 } else {
1844 dasm_put(Dst, 9950); 1851 dasm_put(Dst, 9944);
1845 } 1852 }
1846 dasm_put(Dst, 9518); 1853 dasm_put(Dst, 9512);
1847 break; 1854 break;
1848 1855
1849 case BC_CAT: 1856 case BC_CAT:
1850 dasm_put(Dst, 10475, Dt1(->base), Dt1(->base)); 1857 dasm_put(Dst, 10469, Dt1(->base), Dt1(->base));
1851 break; 1858 break;
1852 1859
1853 /* -- Constant ops ------------------------------------------------------ */ 1860 /* -- Constant ops ------------------------------------------------------ */
1854 1861
1855 case BC_KSTR: 1862 case BC_KSTR:
1856 dasm_put(Dst, 10559, LJ_TSTR); 1863 dasm_put(Dst, 10553, LJ_TSTR);
1857 break; 1864 break;
1858 case BC_KSHORT: 1865 case BC_KSHORT:
1859 if (sse) { 1866 if (sse) {
1860 dasm_put(Dst, 10596); 1867 dasm_put(Dst, 10590);
1861 } else { 1868 } else {
1862 dasm_put(Dst, 10611); 1869 dasm_put(Dst, 10605);
1863 } 1870 }
1864 dasm_put(Dst, 9518); 1871 dasm_put(Dst, 9512);
1865 break; 1872 break;
1866 case BC_KNUM: 1873 case BC_KNUM:
1867 if (sse) { 1874 if (sse) {
1868 dasm_put(Dst, 10619); 1875 dasm_put(Dst, 10613);
1869 } else { 1876 } else {
1870 dasm_put(Dst, 10633); 1877 dasm_put(Dst, 10627);
1871 } 1878 }
1872 dasm_put(Dst, 9518); 1879 dasm_put(Dst, 9512);
1873 break; 1880 break;
1874 case BC_KPRI: 1881 case BC_KPRI:
1875 dasm_put(Dst, 10641); 1882 dasm_put(Dst, 10635);
1876 break; 1883 break;
1877 case BC_KNIL: 1884 case BC_KNIL:
1878 dasm_put(Dst, 10670, LJ_TNIL); 1885 dasm_put(Dst, 10664, LJ_TNIL);
1879 break; 1886 break;
1880 1887
1881 /* -- Upvalue and function ops ------------------------------------------ */ 1888 /* -- Upvalue and function ops ------------------------------------------ */
1882 1889
1883 case BC_UGET: 1890 case BC_UGET:
1884 dasm_put(Dst, 10718, offsetof(GCfuncL, uvptr), DtA(->v)); 1891 dasm_put(Dst, 10712, offsetof(GCfuncL, uvptr), DtA(->v));
1885 break; 1892 break;
1886 case BC_USETV: 1893 case BC_USETV:
1887#define TV2MARKOFS \ 1894#define TV2MARKOFS \
1888 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1895 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1889 dasm_put(Dst, 10759, 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); 1896 dasm_put(Dst, 10753, 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);
1890 dasm_put(Dst, 10855); 1897 dasm_put(Dst, 10849);
1891 break; 1898 break;
1892#undef TV2MARKOFS 1899#undef TV2MARKOFS
1893 case BC_USETS: 1900 case BC_USETS:
1894 dasm_put(Dst, 10867, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1901 dasm_put(Dst, 10861, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1895 break; 1902 break;
1896 case BC_USETN: 1903 case BC_USETN:
1897 dasm_put(Dst, 10963); 1904 dasm_put(Dst, 10957);
1898 if (sse) { 1905 if (sse) {
1899 dasm_put(Dst, 10968); 1906 dasm_put(Dst, 10962);
1900 } else { 1907 } else {
1901 dasm_put(Dst, 9760); 1908 dasm_put(Dst, 9754);
1902 } 1909 }
1903 dasm_put(Dst, 10976, offsetof(GCfuncL, uvptr), DtA(->v)); 1910 dasm_put(Dst, 10970, offsetof(GCfuncL, uvptr), DtA(->v));
1904 if (sse) { 1911 if (sse) {
1905 dasm_put(Dst, 10985); 1912 dasm_put(Dst, 10979);
1906 } else { 1913 } else {
1907 dasm_put(Dst, 10991); 1914 dasm_put(Dst, 10985);
1908 } 1915 }
1909 dasm_put(Dst, 9518); 1916 dasm_put(Dst, 9512);
1910 break; 1917 break;
1911 case BC_USETP: 1918 case BC_USETP:
1912 dasm_put(Dst, 10994, offsetof(GCfuncL, uvptr), DtA(->v)); 1919 dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v));
1913 break; 1920 break;
1914 case BC_UCLO: 1921 case BC_UCLO:
1915 dasm_put(Dst, 11034, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1922 dasm_put(Dst, 11028, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1916 break; 1923 break;
1917 1924
1918 case BC_FNEW: 1925 case BC_FNEW:
1919 dasm_put(Dst, 11090, Dt1(->base), Dt1(->base), LJ_TFUNC); 1926 dasm_put(Dst, 11084, Dt1(->base), Dt1(->base), LJ_TFUNC);
1920 break; 1927 break;
1921 1928
1922 /* -- Table ops --------------------------------------------------------- */ 1929 /* -- Table ops --------------------------------------------------------- */
1923 1930
1924 case BC_TNEW: 1931 case BC_TNEW:
1925 dasm_put(Dst, 11157, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1932 dasm_put(Dst, 11151, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1926 break; 1933 break;
1927 case BC_TDUP: 1934 case BC_TDUP:
1928 dasm_put(Dst, 11281, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1935 dasm_put(Dst, 11275, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1929 break; 1936 break;
1930 1937
1931 case BC_GGET: 1938 case BC_GGET:
1932 dasm_put(Dst, 11380, Dt7(->env)); 1939 dasm_put(Dst, 11374, Dt7(->env));
1933 break; 1940 break;
1934 case BC_GSET: 1941 case BC_GSET:
1935 dasm_put(Dst, 11400, Dt7(->env)); 1942 dasm_put(Dst, 11394, Dt7(->env));
1936 break; 1943 break;
1937 1944
1938 case BC_TGETV: 1945 case BC_TGETV:
1939 dasm_put(Dst, 11420, LJ_TTAB, LJ_TISNUM); 1946 dasm_put(Dst, 11414, LJ_TTAB, LJ_TISNUM);
1940 if (sse) { 1947 if (sse) {
1941 dasm_put(Dst, 11453); 1948 dasm_put(Dst, 11447);
1942 } else { 1949 } else {
1943 } 1950 }
1944 dasm_put(Dst, 11474, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1951 dasm_put(Dst, 11468, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1945 dasm_put(Dst, 11559, LJ_TNIL, LJ_TSTR); 1952 dasm_put(Dst, 11553, LJ_TNIL, LJ_TSTR);
1946 break; 1953 break;
1947 case BC_TGETS: 1954 case BC_TGETS:
1948 dasm_put(Dst, 11588, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1955 dasm_put(Dst, 11582, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1949 dasm_put(Dst, 11673, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1956 dasm_put(Dst, 11667, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1950 break; 1957 break;
1951 case BC_TGETB: 1958 case BC_TGETB:
1952 dasm_put(Dst, 11745, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1959 dasm_put(Dst, 11739, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1953 dasm_put(Dst, 11841, LJ_TNIL); 1960 dasm_put(Dst, 11835, LJ_TNIL);
1954 break; 1961 break;
1955 1962
1956 case BC_TSETV: 1963 case BC_TSETV:
1957 dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM); 1964 dasm_put(Dst, 11852, LJ_TTAB, LJ_TISNUM);
1958 if (sse) { 1965 if (sse) {
1959 dasm_put(Dst, 11453); 1966 dasm_put(Dst, 11447);
1960 } else { 1967 } else {
1961 } 1968 }
1962 dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1969 dasm_put(Dst, 11885, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1963 dasm_put(Dst, 11971, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1970 dasm_put(Dst, 11965, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1964 break; 1971 break;
1965 case BC_TSETS: 1972 case BC_TSETS:
1966 dasm_put(Dst, 12035, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1973 dasm_put(Dst, 12029, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1967 dasm_put(Dst, 12112, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1974 dasm_put(Dst, 12106, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1968 dasm_put(Dst, 12199, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1975 dasm_put(Dst, 12193, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1969 break; 1976 break;
1970 case BC_TSETB: 1977 case BC_TSETB:
1971 dasm_put(Dst, 12291, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1978 dasm_put(Dst, 12285, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1972 dasm_put(Dst, 12386, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1979 dasm_put(Dst, 12380, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1973 break; 1980 break;
1974 1981
1975 case BC_TSETM: 1982 case BC_TSETM:
1976 dasm_put(Dst, 12434, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1983 dasm_put(Dst, 12428, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1977 dasm_put(Dst, 12584, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1984 dasm_put(Dst, 12578, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1978 break; 1985 break;
1979 1986
1980 /* -- Calls and vararg handling ----------------------------------------- */ 1987 /* -- Calls and vararg handling ----------------------------------------- */
1981 1988
1982 case BC_CALL: case BC_CALLM: 1989 case BC_CALL: case BC_CALLM:
1983 dasm_put(Dst, 10060); 1990 dasm_put(Dst, 10054);
1984 if (op == BC_CALLM) { 1991 if (op == BC_CALLM) {
1985 dasm_put(Dst, 12604); 1992 dasm_put(Dst, 12598);
1986 } 1993 }
1987 dasm_put(Dst, 12609, LJ_TFUNC, Dt7(->pc)); 1994 dasm_put(Dst, 12603, LJ_TFUNC, Dt7(->pc));
1988 break; 1995 break;
1989 1996
1990 case BC_CALLMT: 1997 case BC_CALLMT:
1991 dasm_put(Dst, 12604); 1998 dasm_put(Dst, 12598);
1992 break; 1999 break;
1993 case BC_CALLT: 2000 case BC_CALLT:
1994 dasm_put(Dst, 12652, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2001 dasm_put(Dst, 12646, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1995 dasm_put(Dst, 12770, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2002 dasm_put(Dst, 12764, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1996 break; 2003 break;
1997 2004
1998 case BC_ITERC: 2005 case BC_ITERC:
1999 dasm_put(Dst, 12844, LJ_TFUNC, 2+1, Dt7(->pc)); 2006 dasm_put(Dst, 12838, LJ_TFUNC, 2+1, Dt7(->pc));
2000 break; 2007 break;
2001 2008
2002 case BC_ITERN: 2009 case BC_ITERN:
2003#if LJ_HASJIT 2010#if LJ_HASJIT
2004#endif 2011#endif
2005 dasm_put(Dst, 12916, Dt6(->asize), Dt6(->array), LJ_TNIL); 2012 dasm_put(Dst, 12910, Dt6(->asize), Dt6(->array), LJ_TNIL);
2006 if (sse) { 2013 if (sse) {
2007 dasm_put(Dst, 12968); 2014 dasm_put(Dst, 12962);
2008 } else { 2015 } else {
2009 dasm_put(Dst, 12974); 2016 dasm_put(Dst, 12968);
2010 } 2017 }
2011 dasm_put(Dst, 12980); 2018 dasm_put(Dst, 12974);
2012 if (sse) { 2019 if (sse) {
2013 dasm_put(Dst, 9938); 2020 dasm_put(Dst, 9932);
2014 } else { 2021 } else {
2015 dasm_put(Dst, 9950); 2022 dasm_put(Dst, 9944);
2016 } 2023 }
2017 dasm_put(Dst, 12993, -BCBIAS_J*4); 2024 dasm_put(Dst, 12987, -BCBIAS_J*4);
2018 if (!sse) { 2025 if (!sse) {
2019 dasm_put(Dst, 13047); 2026 dasm_put(Dst, 13041);
2020 } 2027 }
2021 dasm_put(Dst, 13053, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2028 dasm_put(Dst, 13047, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2022 break; 2029 break;
2023 2030
2024 case BC_ISNEXT: 2031 case BC_ISNEXT:
2025 dasm_put(Dst, 13132, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2032 dasm_put(Dst, 13126, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2026 break; 2033 break;
2027 2034
2028 case BC_VARG: 2035 case BC_VARG:
2029 dasm_put(Dst, 13233, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2036 dasm_put(Dst, 13227, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2030 dasm_put(Dst, 13400, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2037 dasm_put(Dst, 13394, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2031 break; 2038 break;
2032 2039
2033 /* -- Returns ----------------------------------------------------------- */ 2040 /* -- Returns ----------------------------------------------------------- */
2034 2041
2035 case BC_RETM: 2042 case BC_RETM:
2036 dasm_put(Dst, 12604); 2043 dasm_put(Dst, 12598);
2037 break; 2044 break;
2038 2045
2039 case BC_RET: case BC_RET0: case BC_RET1: 2046 case BC_RET: case BC_RET0: case BC_RET1:
2040 if (op != BC_RET0) { 2047 if (op != BC_RET0) {
2041 dasm_put(Dst, 13470); 2048 dasm_put(Dst, 13464);
2042 } 2049 }
2043 dasm_put(Dst, 13474, FRAME_TYPE); 2050 dasm_put(Dst, 13468, FRAME_TYPE);
2044 switch (op) { 2051 switch (op) {
2045 case BC_RET: 2052 case BC_RET:
2046 dasm_put(Dst, 13493); 2053 dasm_put(Dst, 13487);
2047 break; 2054 break;
2048 case BC_RET1: 2055 case BC_RET1:
2049 dasm_put(Dst, 13547); 2056 dasm_put(Dst, 13541);
2050 /* fallthrough */ 2057 /* fallthrough */
2051 case BC_RET0: 2058 case BC_RET0:
2052 dasm_put(Dst, 13557); 2059 dasm_put(Dst, 13551);
2053 default: 2060 default:
2054 break; 2061 break;
2055 } 2062 }
2056 dasm_put(Dst, 13568, Dt7(->pc), PC2PROTO(k)); 2063 dasm_put(Dst, 13562, Dt7(->pc), PC2PROTO(k));
2057 if (op == BC_RET) { 2064 if (op == BC_RET) {
2058 dasm_put(Dst, 13616, LJ_TNIL); 2065 dasm_put(Dst, 13610, LJ_TNIL);
2059 } else { 2066 } else {
2060 dasm_put(Dst, 13627, LJ_TNIL); 2067 dasm_put(Dst, 13621, LJ_TNIL);
2061 } 2068 }
2062 dasm_put(Dst, 13634, -FRAME_VARG, FRAME_TYPEP); 2069 dasm_put(Dst, 13628, -FRAME_VARG, FRAME_TYPEP);
2063 if (op != BC_RET0) { 2070 if (op != BC_RET0) {
2064 dasm_put(Dst, 13658); 2071 dasm_put(Dst, 13652);
2065 } 2072 }
2066 dasm_put(Dst, 4552); 2073 dasm_put(Dst, 4546);
2067 break; 2074 break;
2068 2075
2069 /* -- Loops and branches ------------------------------------------------ */ 2076 /* -- Loops and branches ------------------------------------------------ */
@@ -2071,7 +2078,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2071 2078
2072 case BC_FORL: 2079 case BC_FORL:
2073#if LJ_HASJIT 2080#if LJ_HASJIT
2074 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT); 2081 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
2075#endif 2082#endif
2076 break; 2083 break;
2077 2084
@@ -2083,57 +2090,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2083 case BC_FORI: 2090 case BC_FORI:
2084 case BC_IFORL: 2091 case BC_IFORL:
2085 vk = (op == BC_IFORL || op == BC_JFORL); 2092 vk = (op == BC_IFORL || op == BC_JFORL);
2086 dasm_put(Dst, 13683); 2093 dasm_put(Dst, 13677);
2087 if (!vk) { 2094 if (!vk) {
2088 dasm_put(Dst, 13687, LJ_TISNUM, LJ_TISNUM); 2095 dasm_put(Dst, 13681, LJ_TISNUM, LJ_TISNUM);
2089 } 2096 }
2090 dasm_put(Dst, 13706); 2097 dasm_put(Dst, 13700);
2091 if (!vk) { 2098 if (!vk) {
2092 dasm_put(Dst, 13710, LJ_TISNUM); 2099 dasm_put(Dst, 13704, LJ_TISNUM);
2093 } 2100 }
2094 if (sse) { 2101 if (sse) {
2095 dasm_put(Dst, 13719); 2102 dasm_put(Dst, 13713);
2096 if (vk) { 2103 if (vk) {
2097 dasm_put(Dst, 13731); 2104 dasm_put(Dst, 13725);
2098 } else { 2105 } else {
2099 dasm_put(Dst, 13750); 2106 dasm_put(Dst, 13744);
2100 } 2107 }
2101 dasm_put(Dst, 13755); 2108 dasm_put(Dst, 13749);
2102 } else { 2109 } else {
2103 dasm_put(Dst, 13768); 2110 dasm_put(Dst, 13762);
2104 if (vk) { 2111 if (vk) {
2105 dasm_put(Dst, 13774); 2112 dasm_put(Dst, 13768);
2106 } else { 2113 } else {
2107 dasm_put(Dst, 13790); 2114 dasm_put(Dst, 13784);
2108 } 2115 }
2109 dasm_put(Dst, 13798); 2116 dasm_put(Dst, 13792);
2110 if (cmov) { 2117 if (cmov) {
2111 dasm_put(Dst, 9481); 2118 dasm_put(Dst, 9475);
2112 } else { 2119 } else {
2113 dasm_put(Dst, 9487); 2120 dasm_put(Dst, 9481);
2114 } 2121 }
2115 if (!cmov) { 2122 if (!cmov) {
2116 dasm_put(Dst, 13803); 2123 dasm_put(Dst, 13797);
2117 } 2124 }
2118 } 2125 }
2119 if (op == BC_FORI) { 2126 if (op == BC_FORI) {
2120 dasm_put(Dst, 13809, -BCBIAS_J*4); 2127 dasm_put(Dst, 13803, -BCBIAS_J*4);
2121 } else if (op == BC_JFORI) { 2128 } else if (op == BC_JFORI) {
2122 dasm_put(Dst, 13819, -BCBIAS_J*4, BC_JLOOP); 2129 dasm_put(Dst, 13813, -BCBIAS_J*4, BC_JLOOP);
2123 } else if (op == BC_IFORL) { 2130 } else if (op == BC_IFORL) {
2124 dasm_put(Dst, 13833, -BCBIAS_J*4); 2131 dasm_put(Dst, 13827, -BCBIAS_J*4);
2125 } else { 2132 } else {
2126 dasm_put(Dst, 13829, BC_JLOOP); 2133 dasm_put(Dst, 13823, BC_JLOOP);
2127 } 2134 }
2128 dasm_put(Dst, 9516); 2135 dasm_put(Dst, 9510);
2129 if (sse) { 2136 if (sse) {
2130 dasm_put(Dst, 13843); 2137 dasm_put(Dst, 13837);
2131 } 2138 }
2132 break; 2139 break;
2133 2140
2134 case BC_ITERL: 2141 case BC_ITERL:
2135#if LJ_HASJIT 2142#if LJ_HASJIT
2136 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT); 2143 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
2137#endif 2144#endif
2138 break; 2145 break;
2139 2146
@@ -2142,33 +2149,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2142 break; 2149 break;
2143#endif 2150#endif
2144 case BC_IITERL: 2151 case BC_IITERL:
2145 dasm_put(Dst, 13854, LJ_TNIL); 2152 dasm_put(Dst, 13848, LJ_TNIL);
2146 if (op == BC_JITERL) { 2153 if (op == BC_JITERL) {
2147 dasm_put(Dst, 13869, BC_JLOOP); 2154 dasm_put(Dst, 13863, BC_JLOOP);
2148 } else { 2155 } else {
2149 dasm_put(Dst, 13883, -BCBIAS_J*4); 2156 dasm_put(Dst, 13877, -BCBIAS_J*4);
2150 } 2157 }
2151 dasm_put(Dst, 9820); 2158 dasm_put(Dst, 9814);
2152 break; 2159 break;
2153 2160
2154 case BC_LOOP: 2161 case BC_LOOP:
2155#if LJ_HASJIT 2162#if LJ_HASJIT
2156 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT); 2163 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
2157#endif 2164#endif
2158 break; 2165 break;
2159 2166
2160 case BC_ILOOP: 2167 case BC_ILOOP:
2161 dasm_put(Dst, 9518); 2168 dasm_put(Dst, 9512);
2162 break; 2169 break;
2163 2170
2164 case BC_JLOOP: 2171 case BC_JLOOP:
2165#if LJ_HASJIT 2172#if LJ_HASJIT
2166 dasm_put(Dst, 13899, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2173 dasm_put(Dst, 13893, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2167#endif 2174#endif
2168 break; 2175 break;
2169 2176
2170 case BC_JMP: 2177 case BC_JMP:
2171 dasm_put(Dst, 13940, -BCBIAS_J*4); 2178 dasm_put(Dst, 13934, -BCBIAS_J*4);
2172 break; 2179 break;
2173 2180
2174 /* -- Function headers -------------------------------------------------- */ 2181 /* -- Function headers -------------------------------------------------- */
@@ -2182,7 +2189,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2182 2189
2183 case BC_FUNCF: 2190 case BC_FUNCF:
2184#if LJ_HASJIT 2191#if LJ_HASJIT
2185 dasm_put(Dst, 13966, HOTCOUNT_PCMASK, GG_DISP2HOT); 2192 dasm_put(Dst, 13960, HOTCOUNT_PCMASK, GG_DISP2HOT);
2186#endif 2193#endif
2187 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2194 case BC_FUNCV: /* NYI: compiled vararg functions. */
2188 break; 2195 break;
@@ -2192,47 +2199,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2192 break; 2199 break;
2193#endif 2200#endif
2194 case BC_IFUNCF: 2201 case BC_IFUNCF:
2195 dasm_put(Dst, 13987, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2202 dasm_put(Dst, 13981, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2196 if (op == BC_JFUNCF) { 2203 if (op == BC_JFUNCF) {
2197 dasm_put(Dst, 14018, BC_JLOOP); 2204 dasm_put(Dst, 14012, BC_JLOOP);
2198 } else { 2205 } else {
2199 dasm_put(Dst, 9518); 2206 dasm_put(Dst, 9512);
2200 } 2207 }
2201 dasm_put(Dst, 14027, LJ_TNIL); 2208 dasm_put(Dst, 14021, LJ_TNIL);
2202 break; 2209 break;
2203 2210
2204 case BC_JFUNCV: 2211 case BC_JFUNCV:
2205#if !LJ_HASJIT 2212#if !LJ_HASJIT
2206 break; 2213 break;
2207#endif 2214#endif
2208 dasm_put(Dst, 8997); 2215 dasm_put(Dst, 8991);
2209 break; /* NYI: compiled vararg functions. */ 2216 break; /* NYI: compiled vararg functions. */
2210 2217
2211 case BC_IFUNCV: 2218 case BC_IFUNCV:
2212 dasm_put(Dst, 14049, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2219 dasm_put(Dst, 14043, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2213 if (op == BC_JFUNCV) { 2220 if (op == BC_JFUNCV) {
2214 dasm_put(Dst, 14018, BC_JLOOP); 2221 dasm_put(Dst, 14012, BC_JLOOP);
2215 } else { 2222 } else {
2216 dasm_put(Dst, 14146, -4+PC2PROTO(k)); 2223 dasm_put(Dst, 14140, -4+PC2PROTO(k));
2217 } 2224 }
2218 dasm_put(Dst, 14171, LJ_TNIL); 2225 dasm_put(Dst, 14165, LJ_TNIL);
2219 break; 2226 break;
2220 2227
2221 case BC_FUNCC: 2228 case BC_FUNCC:
2222 case BC_FUNCCW: 2229 case BC_FUNCCW:
2223 dasm_put(Dst, 14193, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2230 dasm_put(Dst, 14187, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2224 if (op == BC_FUNCC) { 2231 if (op == BC_FUNCC) {
2225 dasm_put(Dst, 14223); 2232 dasm_put(Dst, 14217);
2226 } else { 2233 } else {
2227 dasm_put(Dst, 14227); 2234 dasm_put(Dst, 14221);
2228 } 2235 }
2229 dasm_put(Dst, 14235, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2236 dasm_put(Dst, 14229, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2230 if (op == BC_FUNCC) { 2237 if (op == BC_FUNCC) {
2231 dasm_put(Dst, 14245); 2238 dasm_put(Dst, 14239);
2232 } else { 2239 } else {
2233 dasm_put(Dst, 14250, DISPATCH_GL(wrapf)); 2240 dasm_put(Dst, 14244, DISPATCH_GL(wrapf));
2234 } 2241 }
2235 dasm_put(Dst, 14256, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2242 dasm_put(Dst, 14250, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2236 break; 2243 break;
2237 2244
2238 /* ---------------------------------------------------------------------- */ 2245 /* ---------------------------------------------------------------------- */
@@ -2260,7 +2267,7 @@ static int build_backend(BuildCtx *ctx)
2260 2267
2261 build_subroutines(ctx, cmov, sse); 2268 build_subroutines(ctx, cmov, sse);
2262 2269
2263 dasm_put(Dst, 14282); 2270 dasm_put(Dst, 14276);
2264 for (op = 0; op < BC__MAX; op++) 2271 for (op = 0; op < BC__MAX; op++)
2265 build_ins(ctx, (BCOp)op, op, cmov, sse); 2272 build_ins(ctx, (BCOp)op, op, cmov, sse);
2266 2273
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 2ca7c7b2..e855ca8b 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14229] = { 15static const unsigned char build_actionlist[14223] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237, 18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
@@ -129,582 +129,581 @@ static const unsigned char build_actionlist[14229] = {
129 133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137, 129 133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,
130 2,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199, 130 2,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,
131 66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139, 131 66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,
132 42,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252, 132 42,129,122,253,4,239,15,133,244,55,255,131,189,233,0,15,133,244,55,255,139,
133 248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66, 133 106,252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,
134 12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122, 134 199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,
135 253,4,239,15,133,244,55,129,122,253,12,239,255,15,135,244,55,139,114,252, 135 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,
136 252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88, 136 252,252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,
137 193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131, 137 88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,
138 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139, 138 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, 139 139,40,72,137,42,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,
140 137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184, 140 233,137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,
141 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122, 141 184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,
142 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133, 142 122,253,4,239,15,133,244,55,255,139,106,252,248,139,133,233,139,114,252,252,
143 233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242, 143 199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,
144 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129, 144 252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,
145 252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233, 145 244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,
146 193,252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239, 146 229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,
147 15,130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, 147 253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,
148 66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252, 148 114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,
149 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137, 149 252,248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,100,137,108,36,
150 116,36,100,137,108,36,80,129,122,253,4,239,15,133,244,55,72,131,189,233,0, 150 80,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,
151 15,133,244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255, 151 233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,
152 59,141,233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244, 152 55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,
153 55,137,181,233,139,108,36,96,137,149,233,131,194,8,137,149,233,141,108,194, 153 36,96,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,
154 232,72,41,252,245,57,206,15,132,244,249,248,2,72,139,4,46,72,137,70,252,248, 154 206,15,132,244,249,248,2,72,139,4,46,72,137,70,252,248,131,252,238,8,57,206,
155 15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131,233,237,255,139,
156 108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,244,254,248,4,
157 139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,
158 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,72,41,205,248,5,72,139,
159 1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,
160 252,237,248,7,139,116,36,100,137,68,36,84,72,199,193,252,248,252,255,252,
161 255,252,255,252,247,198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,
162 252,252,237,139,142,233,131,252,233,8,137,142,233,72,139,1,72,137,2,184,237,
163 252,233,244,7,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,
164 251,1,0,139,116,36,80,139,149,233,252,233,244,4,248,77,139,106,252,248,139,
165 173,233,139,114,252,252,137,116,36,100,137,108,36,80,72,131,189,233,0,15,
166 133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,59,
167 141,233,15,132,244,55,248,1,141,116,193,252,248,59,181,233,15,135,244,55,
168 137,181,233,139,108,36,96,137,149,233,137,149,233,141,108,194,252,240,72,
169 41,252,245,57,206,15,132,244,249,248,2,255,72,139,4,46,72,137,70,252,248,
155 131,252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199, 170 131,252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,
156 131,233,237,255,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15, 171 131,233,237,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,
157 135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206, 172 244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,
158 15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,72, 173 244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,72,41,
159 41,205,248,5,72,139,1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6, 174 205,248,5,72,139,1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6,141,
160 141,70,2,199,66,252,252,237,248,7,139,116,36,100,137,68,36,84,72,199,193, 175 70,1,248,7,139,116,36,100,137,68,36,84,49,201,252,247,198,237,15,132,244,
161 252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,13,252,233, 176 13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,76,
162 244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,142,233,72, 177 36,80,137,185,233,137,252,242,137,252,233,232,251,1,0,139,116,36,80,139,149,
163 139,1,72,137,2,184,237,252,233,244,7,248,9,139,76,36,80,137,185,233,137,252, 178 233,252,233,244,4,248,78,139,108,36,96,72,252,247,133,233,237,15,132,244,
164 242,137,252,233,232,251,1,0,139,116,36,80,139,149,233,252,233,244,4,248,77, 179 55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,
165 139,106,252,248,139,173,233,139,114,252,252,137,116,36,100,137,108,36,80, 180 235,136,133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248,
166 72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141, 181 252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
167 233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248,59, 182 135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,
168 181,233,15,135,244,55,137,181,233,139,108,36,96,137,149,233,137,149,233,141, 183 63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,239,15,
169 108,194,252,240,72,41,252,245,57,206,15,132,244,249,248,2,255,72,139,4,46, 184 130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,
170 72,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,202,139,76, 185 114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,84,248,56,
171 36,80,232,244,24,199,131,233,237,139,108,36,96,139,116,36,80,139,149,233, 186 252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182,
172 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233, 187 78,252,253,72,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,198,
173 137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135, 188 4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244,237,131,192,1,252,
174 244,255,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,57,252, 189 233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,14,
175 249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,100,137,68,36,84,49,201, 190 255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
176 252,247,198,237,15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233, 191 252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122,
177 232,251,1,13,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,251, 192 253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,
178 1,0,139,116,36,80,139,149,233,252,233,244,4,248,78,139,108,36,96,72,252,247, 193 255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
179 133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233, 194 15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55,
180 49,192,72,137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,114, 195 129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,
181 252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55, 196 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,
182 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15, 197 252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,
183 110,200,15,84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,255,248, 198 15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,
184 79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217, 199 15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,
185 225,248,63,248,64,139,114,252,252,221,90,252,248,255,248,58,184,237,248,69, 200 252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
186 137,68,36,84,248,56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15, 201 135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,
187 135,244,252,15,182,78,252,253,72,252,247,209,141,20,202,139,6,15,182,204, 202 239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,
188 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244, 203 233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
189 237,131,192,1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252, 204 244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,
190 255,252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4, 205 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,
191 239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15, 206 91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,
192 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252, 207 252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,
193 233,244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 208 122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,
194 135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248, 209 250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,
195 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233, 210 253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,
196 244,64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 211 217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,
197 55,221,2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,244, 212 122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,
198 55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248, 213 255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
199 85,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252, 214 252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248,
200 237,221,2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244,55, 215 96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
201 129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233,244, 216 15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129,
202 64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244, 217 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
203 55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244,55,129, 218 255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129,
204 122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252, 219 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
205 248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255, 220 139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248,
206 252,233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 221 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220,
207 135,244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239, 222 141,233,252,233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122,
208 15,130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217, 223 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,
209 232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239, 224 252,243,252,233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253,
210 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232, 225 4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,
211 222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248, 226 252,253,221,217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139,
212 239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252, 227 106,4,129,252,253,239,15,135,244,55,139,114,252,252,139,2,137,106,252,252,
213 243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4, 228 137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,
214 239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252, 229 132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,
215 233,244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 230 252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,
216 135,244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244, 231 139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,
217 63,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 232 252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,69,248,
218 55,252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,63,248, 233 3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,
219 98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 234 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,
220 55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255, 235 15,17,66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,
221 248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 236 248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,
222 2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239, 237 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
223 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 238 255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
224 55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130, 239 221,2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,
225 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244, 240 132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15,
226 55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248, 241 17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1,
227 239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,252, 242 221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,
228 139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255, 243 248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,
229 15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32, 244 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,
230 0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137, 245 1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
231 108,36,80,219,68,36,80,255,139,106,252,252,129,229,252,255,252,255,15,128, 246 55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,
232 129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255, 247 224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15,
233 184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238, 248 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
234 252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110, 249 55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248,
235 205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,68,36,80,0,0,
236 128,90,216,76,36,80,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,
237 252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,
238 15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,
239 122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,114,252,252,209,229,129,
240 252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,
241 15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,
242 244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,
243 4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,
244 0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,
245 252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,
246 122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,
247 2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,
248 106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, 250 106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
249 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252, 251 253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,
250 233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 252 108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
251 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252, 253 15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,
252 233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 254 239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,93,193,131,
253 135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124, 255 197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,129,122,253,
254 253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252, 256 4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,
255 242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130, 257 129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,
256 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1, 258 248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,216,252,233,244,
257 57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242, 259 55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,
258 15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248, 260 55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,133,233,252,233,
259 5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122, 261 244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,253,4,239,15,133,
260 253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255, 262 244,55,139,42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,
261 219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129, 263 255,252,242,15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,
262 122,253,4,239,15,133,244,55,139,42,139,114,252,252,131,189,233,1,15,130,244, 264 244,64,255,248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,
263 72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,108,36,80, 265 129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,
264 219,68,36,80,252,233,244,64,255,248,112,139,171,233,59,171,233,15,130,244, 266 15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,84,255,221,2,
265 247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135, 267 219,92,36,84,129,124,36,84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,
266 244,55,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108, 268 0,0,0,72,141,68,36,84,248,113,139,108,36,96,137,149,233,68,139,68,36,32,72,
267 36,84,255,221,2,219,92,36,84,129,124,36,84,252,255,0,0,0,15,135,244,55,255, 269 137,194,137,252,233,137,116,36,100,232,251,1,17,139,149,233,139,114,252,252,
268 199,68,36,32,1,0,0,0,72,141,68,36,84,248,113,139,108,36,96,137,149,233,68, 270 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171,
269 139,68,36,32,72,137,194,137,252,233,137,116,36,100,232,251,1,17,139,149,233, 271 233,15,130,244,247,232,244,66,248,1,199,68,36,84,252,255,252,255,252,255,
270 139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114, 272 252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,
271 139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,84,252,255, 273 252,242,15,44,106,16,137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,
272 252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129, 274 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,
273 122,253,20,239,255,252,242,15,44,106,16,137,108,36,84,255,221,66,16,219,92, 275 36,32,139,173,233,255,252,242,15,44,74,8,255,139,68,36,84,57,197,15,130,244,
274 36,84,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 276 251,248,2,133,201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,
275 244,55,139,42,137,108,36,32,139,173,233,255,252,242,15,44,74,8,255,139,68, 277 141,172,253,13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,
276 36,84,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36, 278 5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
277 32,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,32, 279 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
278 137,232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248, 280 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
279 6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143, 281 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,
280 244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116, 282 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,
281 129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244, 283 44,66,8,255,221,66,8,219,92,36,84,139,68,36,84,255,133,192,15,142,244,115,
282 66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244, 284 131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,
283 55,139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,84,139,68,36,84,255, 285 182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15,
284 133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117,57,131, 286 133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,
285 233,15,130,244,117,15,182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,
286 131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,113,248,118,129,
287 252,248,239,255,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244,
288 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
289 244,115,57,131,233,15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,
290 139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,
291 1,137,252,240,139,116,36,84,252,233,244,113,248,120,129,252,248,239,15,130,
292 244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253, 287 244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,
293 4,239,15,133,244,55,139,42,139,133,233,57,131,233,255,15,130,244,119,129, 288 4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,
294 197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,244,249,248,1,15,182, 289 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,248,1,255,
295 76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252, 290 15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,
296 241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36, 291 36,84,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59,
297 84,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,139,171,233, 292 171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
298 59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55, 293 42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,84,137,
299 139,42,139,133,233,57,131,233,15,130,244,119,129,197,239,137,116,36,84,137, 294 68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,
300 68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15, 295 130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,
301 130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12, 296 3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113,248,121,
302 6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113, 297 129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,
303 248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137, 298 244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,
304 213,139,10,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63, 299 15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,
305 255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 300 244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,
306 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15, 301 122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
307 126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130, 302 1,137,252,240,139,116,36,84,252,233,244,113,248,122,129,252,248,239,15,130,
303 244,55,129,122,253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,
304 234,255,252,242,15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,
308 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102, 305 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
309 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,84,141,68,194, 306 72,15,110,205,252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,
310 252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255, 307 244,63,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
311 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252, 308 244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,
312 233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 309 102,15,126,197,255,137,68,36,84,141,68,194,252,240,248,1,57,208,15,134,244,
313 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88, 310 125,129,120,253,4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,
314 193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9, 311 102,15,126,193,33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,
315 205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 312 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,
316 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102, 313 237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,
317 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255, 314 16,0,252,242,15,88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,
318 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, 315 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,
316 102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,
317 242,15,88,193,102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,
318 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,
319 15,110,205,252,242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,
320 248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
319 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126, 321 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
320 197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55, 322 197,255,252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,
321 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15, 323 126,139,68,36,84,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,
322 110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252, 324 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
323 242,15,42,197,252,233,244,63,255,248,126,139,68,36,84,252,233,244,55,255, 325 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
324 248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 326 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,
325 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 327 193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,
326 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 328 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
327 126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129, 329 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
328 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12, 330 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,
329 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72, 331 233,244,125,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
330 15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102, 332 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
331 15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248, 333 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,
332 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135, 334 137,200,102,15,126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,
333 244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213, 335 125,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
334 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 336 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,
335 255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130, 337 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,
336 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252, 338 102,15,126,197,102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,
337 242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15, 339 135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
338 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197, 340 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
339 137,193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122, 341 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
340 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2, 342 197,102,15,126,201,255,211,205,137,193,252,233,244,125,248,117,184,237,252,
341 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 343 233,244,55,248,119,184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,
342 242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252, 344 100,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
343 233,244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108, 345 59,141,233,15,135,244,251,137,252,233,252,255,144,233,139,149,233,133,192,
344 36,96,139,114,252,252,137,116,36,100,137,149,233,141,68,194,252,248,141,136, 346 15,143,244,69,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,
345 233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,233,252, 347 139,106,252,248,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,
346 255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209, 348 131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,249,
347 193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,181,233, 349 15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,137,
348 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,2,137,209, 350 252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,
349 252,247,198,237,15,133,244,249,15,182,110,252,253,72,252,247,213,141,20,252, 351 232,251,1,0,139,149,233,49,192,252,233,244,1,248,66,93,72,137,108,36,32,139,
350 234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244, 352 108,36,96,137,116,36,100,137,149,233,255,141,68,194,252,248,137,252,233,137,
351 27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1, 353 133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
352 248,66,93,72,137,108,36,32,139,108,36,96,137,116,36,100,137,149,233,255,141, 354 139,108,36,32,85,195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,
353 68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233,139,133,233, 355 235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,
354 41,208,193,232,3,131,192,1,72,139,108,36,32,85,195,248,136,255,15,182,131, 356 255,248,137,15,182,131,233,168,235,15,133,244,251,252,233,244,247,248,138,
355 233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247, 357 15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,
356 252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235,15,133, 358 233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,
357 244,251,252,233,244,247,248,138,15,182,131,233,168,235,15,133,244,251,168, 359 233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,
358 235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251, 360 252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,
359 248,1,255,139,108,36,96,137,149,233,137,252,242,137,252,233,232,251,1,20, 361 233,248,139,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,140,255,139,
360 248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183, 362 106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,
361 70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139,77,232,137,76, 363 137,133,233,137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,
362 36,84,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233, 364 1,21,252,233,244,3,255,248,141,137,116,36,100,255,248,142,255,137,116,36,
363 141,4,194,139,108,36,96,137,149,233,137,133,233,137,252,242,141,139,233,72, 365 100,131,206,1,248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,
364 137,171,233,137,116,36,100,232,251,1,21,252,233,244,3,255,248,141,137,116, 366 133,233,137,252,242,137,252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,
365 36,100,255,248,142,255,137,116,36,100,131,206,1,248,1,255,141,68,194,252, 367 230,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,
366 248,139,108,36,96,137,149,233,137,133,233,137,252,242,137,252,233,232,251, 368 78,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,
367 1,22,199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,233,72,137,193, 369 65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,
368 139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255, 370 248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,
369 229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36, 371 233,199,131,233,237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,
370 88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76, 372 128,252,242,68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,
371 137,117,252,240,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139, 373 15,17,109,232,252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,
372 233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242, 374 15,17,85,208,252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,
373 68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252, 375 125,184,252,242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,
374 242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242, 376 252,242,15,17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,
375 68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17, 377 17,69,128,139,171,233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,
376 109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252, 378 149,233,72,141,148,253,36,233,141,139,233,232,251,1,23,72,139,141,233,72,
377 242,15,17,77,136,252,242,15,17,69,128,139,171,233,139,147,233,72,137,171, 379 129,225,239,137,169,233,139,149,233,139,177,233,252,233,244,247,255,248,144,
378 233,199,131,233,0,0,0,0,137,149,233,72,141,148,253,36,233,141,139,233,232, 380 255,72,141,140,253,36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,
379 251,1,23,72,139,141,233,72,129,225,239,137,169,233,139,149,233,139,177,233, 381 102,68,15,111,169,233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,
380 252,233,244,247,255,248,144,255,72,141,140,253,36,233,248,1,102,68,15,111, 382 15,111,145,233,102,68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,
381 185,233,102,68,15,111,177,233,102,68,15,111,169,233,102,68,15,111,161,233, 383 233,72,137,204,102,15,111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,
382 102,68,15,111,153,233,102,68,15,111,145,233,102,68,15,111,137,233,102,68, 384 36,32,76,139,100,36,80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,
383 15,111,129,233,102,15,111,185,233,72,137,204,102,15,111,49,76,139,124,36, 385 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
384 16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80,133,192,15,136,244, 386 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,255,139,
385 249,137,68,36,84,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0, 387 68,36,84,248,2,252,255,36,252,235,248,3,252,247,216,137,252,233,137,194,232,
386 0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129, 388 251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
387 252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,36,252,235,248, 389 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
388 3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82,255,217,124,36, 390 36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,
389 4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68, 391 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
390 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72, 392 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
391 184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 393 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
392 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203, 394 200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
393 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242, 395 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
394 15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255, 396 217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,
395 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251, 397 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
396 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 398 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
397 248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 399 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
398 15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242, 400 15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,
399 15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208, 401 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
400 252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 402 139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,
401 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 403 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
402 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 404 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
403 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 405 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
404 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242, 406 86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,
405 15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194, 407 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
406 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248, 408 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
407 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184, 409 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
408 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244, 410 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
409 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184, 411 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
410 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92, 412 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
411 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89, 413 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
412 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4, 414 252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,
413 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, 415 8,0,0,128,127,15,132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,
414 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252, 416 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
415 234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129, 417 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,
416 124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252, 418 248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,
417 233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248, 419 15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,
418 2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242, 420 133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,
419 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248, 421 244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,
420 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232, 422 3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,
421 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89, 423 6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,
422 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244, 424 15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,
423 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80, 425 1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,
424 72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216, 426 224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,
425 131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110, 427 72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,
426 192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15, 428 252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,
427 0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193, 429 252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
428 192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242, 430 217,252,253,221,217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,
429 15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220, 431 237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,
430 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36, 432 2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,
431 8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15, 433 110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,
432 46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15, 434 208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,
433 110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132, 435 4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
434 244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248, 436 192,15,132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,
435 3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15, 437 132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
436 133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192, 438 195,248,2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,
437 195,248,153,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15, 439 88,15,132,244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,
438 130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36, 440 252,233,244,253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,
439 8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80, 441 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
440 252,233,244,253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250, 442 252,233,244,253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,
441 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244, 443 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
442 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9, 444 253,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
443 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244, 445 244,253,248,1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,
444 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244, 446 195,255,139,84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,
445 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216, 447 131,252,250,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,
446 248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4, 448 250,5,15,130,244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,
447 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15, 449 248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,
448 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244, 450 195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,
449 149,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 451 201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,
450 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132, 452 247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,
451 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 453 9,204,255,248,154,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252,
452 252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255, 454 242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,
453 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,154,255,65,131,252, 455 244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,
454 248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15, 456 248,2,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,
455 92,193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15, 457 132,244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,
456 89,193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244, 458 195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252,
457 148,15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184, 459 248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,
458 237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15, 460 36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15,
459 110,200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17, 461 16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131,
460 68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217, 462 252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,
461 252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252, 463 242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,
462 253,221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244, 464 252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,
463 255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68, 465 248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,
464 36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248, 466 249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,
465 222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135, 467 132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,
466 244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244, 468 195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,
467 148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216, 469 1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,
468 217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247, 470 135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,
469 15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248, 471 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,
470 2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221, 472 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
471 217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246, 473 248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,
472 196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252, 474 4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129,
473 246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155,137,200,86, 475 124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,
474 72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,129, 476 46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,
475 124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252, 477 252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,
476 242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198, 478 70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,
477 4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248, 479 4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,
478 255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2, 480 15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,
479 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139, 481 102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,
480 108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239, 482 255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,
481 15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221, 483 134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,
482 4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247, 484 5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,
483 255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70, 485 194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,
484 252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129, 486 237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,
485 252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252, 487 1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,
486 253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233, 488 239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,
487 235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72, 489 15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,
488 252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59, 490 4,199,255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,
489 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15, 491 4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,
490 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,198, 492 139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,
491 4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244, 493 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,139,
492 247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183, 494 44,194,72,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
493 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198, 495 255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,
494 4,193,232,16,252,255,36,252,235,255,72,139,44,194,72,137,44,202,139,6,15, 496 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
495 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237, 497 129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,
496 129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232, 498 102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,
497 131,198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,135, 499 28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,
498 244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193, 500 242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,
499 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 501 202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
500 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 502 248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,
501 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 503 255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,
502 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194, 504 15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,
503 4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192, 505 252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,
504 137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182, 506 129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,
505 192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234, 507 88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,
506 252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4, 508 135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,
507 239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221, 509 252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,
508 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253, 510 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,
509 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, 511 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,
510 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255, 512 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,
511 221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234, 513 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,
512 255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4, 514 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,
513 194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89, 515 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,
514 4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89, 516 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,
515 4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242, 517 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,
516 15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252, 518 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,
517 242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252, 519 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,
518 242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252, 520 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,
519 234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4, 521 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,
520 252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16, 522 234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,107,
521 4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15, 523 255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,
522 16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156, 524 192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,139,149,233,133,
523 232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182, 525 192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,72,139,4,252,234,72,
524 192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205, 526 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
525 137,116,36,100,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110, 527 235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,
526 252,255,15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204, 528 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,252,
527 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139, 529 242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,
528 4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193, 530 15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,247,208,
529 232,16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17, 531 137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
530 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17, 532 252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,
531 4,202,255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182, 533 41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,
532 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12, 534 232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,173,
533 141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134, 535 233,72,139,69,0,72,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
534 244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 536 16,252,255,36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,233,
535 255,139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4, 537 0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,
536 202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255, 538 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,
537 139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194, 539 4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134,
538 139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133, 540 244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,
539 244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 541 26,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,
540 252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235, 542 141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,
541 15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233,244, 543 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
542 1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,133, 544 36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,
543 233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15, 545 1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,
544 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246, 546 139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,
545 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139, 547 255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,172,
546 233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, 548 253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,
547 15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 549 232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233,
548 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137, 550 0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,27,139,149,
549 65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 551 233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
550 255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149, 552 235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20,
551 233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204, 553 135,137,252,233,137,116,36,100,232,251,1,28,139,149,233,15,182,78,252,253,
552 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,
553 108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,
554 100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
555 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,
556 108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251,
557 248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,
558 249,248,2,137,252,233,137,194,232,251,1,29,139,149,233,15,182,78,252,253,
559 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232, 554 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,
560 16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232, 555 16,252,255,36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233,
561 251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96, 556 137,116,36,100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232,
562 139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139, 557 11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,29,
563 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199, 558 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
564 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 559 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252,
565 252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252, 560 233,244,2,248,5,137,252,233,232,251,1,30,15,183,70,252,254,252,233,244,1,
566 233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, 561 255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137,
567 244,157,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, 562 149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,31,139,149,
568 244,158,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, 563 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
569 36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16, 564 232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,30,
570 4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36, 565 15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,
571 59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244, 566 252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247,208,139,106,
572 248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 567 252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,
573 232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233, 568 129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,
574 252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,255,199,68,202, 569 239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,
575 4,237,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252, 570 200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,
576 233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124, 571 133,233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,
577 253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136, 572 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,
578 233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233, 573 189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,
579 15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,72,139, 574 182,78,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,
580 41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232, 575 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,
581 16,252,255,36,252,235,248,3,15,182,70,252,253,199,68,194,4,237,252,233,244, 576 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
582 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132, 577 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
583 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236, 578 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
584 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133, 579 132,244,251,15,182,70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15,
585 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72, 580 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,
586 139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 581 252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,
587 16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,252, 582 1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,
588 246,129,233,235,15,132,244,35,255,15,182,78,252,253,248,3,199,68,202,4,237, 583 252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
589 252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 584 133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,
590 133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133, 585 120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,
591 244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15, 586 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,
592 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202, 587 132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,78,252,
593 72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 588 253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,
594 235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235, 589 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,
595 15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239, 590 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,
596 15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,233, 591 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
597 137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236, 592 253,248,2,72,139,44,202,72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,
598 15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244, 593 232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,
599 37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233, 594 252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,
600 0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251, 595 124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,
601 129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244, 596 235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,
602 253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182, 597 15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,
603 232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244, 598 239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,
604 2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80, 599 198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,
605 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133, 600 133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,
606 201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,80,199, 601 15,133,244,253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182,
607 68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252, 602 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,
608 234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193, 603 0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37,
609 252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252, 604 139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,
610 233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133, 605 141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,
611 244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120, 606 68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,
612 253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72, 607 36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108,
613 139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 608 36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
614 255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129, 609 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
615 233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235, 610 4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,
616 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137, 611 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
617 124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235, 612 253,248,2,72,139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,
618 15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133, 613 232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,
619 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,139,41,131,193, 614 252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,
620 8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15, 615 165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,
621 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36, 616 244,2,255,137,124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,
622 96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33, 617 133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,
623 139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139, 618 252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,
624 131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124, 619 139,41,131,193,8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,
625 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181, 620 36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
626 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141, 621 248,5,139,76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,
627 76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248, 622 100,232,251,1,33,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,
628 52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, 623 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,
629 68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,72,137,47,131, 624 84,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,
630 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233, 625 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,
631 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 626 252,235,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,
632 4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252, 627 15,133,244,28,248,52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,
633 253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252, 628 137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,
634 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242, 629 193,8,72,137,47,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,
635 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255, 630 68,36,84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,
636 141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105, 631 233,15,182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,
637 224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15, 632 133,244,4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,
638 133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182, 633 191,233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,
639 205,131,198,4,252,255,36,252,235,255,137,124,36,80,137,92,36,84,139,108,202, 634 133,244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,
640 252,240,139,68,202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216, 635 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
641 15,131,244,251,129,124,253,199,4,239,15,132,244,250,255,252,242,15,42,192, 636 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
642 255,219,68,202,252,248,255,72,139,44,199,72,137,108,202,8,131,192,1,255,137, 637 252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181,233,139,
643 68,202,252,248,248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36, 638 14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,137,124,36,
644 84,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 639 80,137,92,36,84,139,108,202,252,240,139,68,202,252,248,139,157,233,131,198,
645 36,252,235,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5, 640 4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,244,
646 41,216,248,6,59,133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233, 641 250,255,252,242,15,42,192,255,219,68,202,252,248,255,72,139,44,199,72,137,
647 239,15,132,244,253,141,92,24,1,72,139,175,233,72,139,135,233,72,137,44,202, 642 108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141,180,
648 72,137,68,202,8,137,92,202,252,248,252,233,244,2,248,7,131,192,1,252,233, 643 253,134,233,248,3,139,92,36,84,139,124,36,80,139,6,15,182,204,15,182,232,
649 244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129, 644 131,198,4,193,232,16,252,255,36,252,235,248,4,131,192,1,255,137,68,202,252,
650 124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133, 645 248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252,
651 244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252, 646 248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,72,139,175,233,
652 248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 647 72,139,135,233,72,137,44,202,72,137,68,202,8,137,92,202,252,248,252,233,244,
653 36,252,235,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233, 648 2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,244,
654 244,1,255,15,182,252,236,15,182,192,137,124,36,80,141,188,253,194,233,141, 649 251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,253,
655 12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248, 650 202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180,253,
656 57,215,15,131,244,248,248,1,72,139,71,252,248,131,199,8,72,137,1,131,193, 651 134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,
657 8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193, 652 198,4,193,232,16,252,255,36,252,235,248,5,198,70,252,252,235,141,180,253,
658 8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,232, 653 134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36,
659 131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208, 654 80,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251,
660 41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,84,139, 655 141,108,252,233,252,248,57,215,15,131,244,248,248,1,72,139,71,252,248,131,
661 108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,72,139,71,252,248,131, 656 199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,
662 199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149, 657 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,
663 233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,252, 658 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,
664 233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3, 659 68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,
665 255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255, 660 197,1,137,108,36,84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,
666 248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,72,137,111,252, 661 72,139,71,252,248,131,199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,
667 248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255, 662 244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,
668 248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,5, 663 252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,
669 56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20, 664 6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,
670 202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131, 665 133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,
671 198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199, 666 72,137,111,252,248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,
672 8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233, 667 182,110,252,255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,
673 252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209, 668 248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,
674 252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,12,202, 669 209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,
675 255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255, 670 182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,
676 139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242, 671 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,
677 15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244, 672 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,
678 249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221, 673 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,
679 65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255, 674 255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,
680 221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131, 675 135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,
681 244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15, 676 16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,
682 131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252, 677 15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,
683 233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137, 678 24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,
684 105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139, 679 247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,
685 1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,139,128,233, 680 255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,
686 139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76, 681 252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,
687 137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49, 682 46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,
688 102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15, 683 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,
689 127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169, 684 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,
690 233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224,255,141,180,253, 685 139,128,233,139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,
691 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 686 108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,
692 255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244, 687 102,15,127,49,102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137,
693 142,255,139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,23,15, 688 233,102,68,15,127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102,
694 182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245, 689 68,15,127,169,233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224,
695 255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244, 690 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
696 2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252, 691 252,255,36,252,235,255,137,252,245,209,252,237,129,229,239,102,131,172,253,
697 248,139,108,36,96,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15, 692 43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141,12,202,59,141,233,
698 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244, 693 15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,
699 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 694 254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,
700 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204, 695 244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,
701 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237, 696 252,252,137,120,252,248,139,108,36,96,141,12,200,59,141,233,15,135,244,22,
702 131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72, 697 137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,
703 139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141, 698 57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,
704 233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,233,255,15,135, 699 192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,
705 244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,233, 700 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,
706 237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,233, 701 3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,
707 244,12,255,254,0 702 106,252,248,72,139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,
703 136,233,59,141,233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,
704 233,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,
705 255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,
706 252,252,252,233,244,12,255,254,0
708}; 707};
709 708
710enum { 709enum {
@@ -1113,332 +1112,339 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1113 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)); 1112 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));
1114 dasm_put(Dst, 2215, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1113 dasm_put(Dst, 2215, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1115 dasm_put(Dst, 2282, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1114 dasm_put(Dst, 2282, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1116 dasm_put(Dst, 2371, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1115 dasm_put(Dst, 2371, LJ_TTAB);
1117 dasm_put(Dst, 2445); 1116#ifdef LUAJIT_ENABLE_LUA52COMPAT
1117 dasm_put(Dst, 2383, Dt6(->metatable));
1118#endif
1119 dasm_put(Dst, 2392, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1118 if (sse) { 1120 if (sse) {
1119 dasm_put(Dst, 2454, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1121 dasm_put(Dst, 2455, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1120 } else { 1122 } else {
1121 } 1123 }
1122 dasm_put(Dst, 2487, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1124 dasm_put(Dst, 2488, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1123 dasm_put(Dst, 2564, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC); 1125 dasm_put(Dst, 2565, 1+1, LJ_TTAB);
1126#ifdef LUAJIT_ENABLE_LUA52COMPAT
1127 dasm_put(Dst, 2383, Dt6(->metatable));
1128#endif
1129 dasm_put(Dst, 2585, Dt8(->upvalue[0]), LJ_TFUNC);
1124 if (sse) { 1130 if (sse) {
1125 dasm_put(Dst, 2612); 1131 dasm_put(Dst, 2606);
1126 } else { 1132 } else {
1127 dasm_put(Dst, 2622); 1133 dasm_put(Dst, 2616);
1128 } 1134 }
1129 dasm_put(Dst, 2629, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1135 dasm_put(Dst, 2623, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1130 dasm_put(Dst, 2693, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1136 dasm_put(Dst, 2687, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1131 dasm_put(Dst, 2783, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1137 dasm_put(Dst, 2777, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1132 dasm_put(Dst, 2871, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1138 dasm_put(Dst, 2865, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1133 dasm_put(Dst, 2984, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1139 dasm_put(Dst, 2978, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1134 dasm_put(Dst, 3082, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1140 dasm_put(Dst, 3076, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1135 dasm_put(Dst, 3149, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1141 dasm_put(Dst, 3143, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1136 dasm_put(Dst, 3237, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1142 dasm_put(Dst, 3231, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1137 dasm_put(Dst, 3349, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1143 dasm_put(Dst, 3343, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1138 if (sse) { 1144 if (sse) {
1139 dasm_put(Dst, 3376, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1145 dasm_put(Dst, 3370, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1140 } else { 1146 } else {
1141 dasm_put(Dst, 3440, 1+1, LJ_TISNUM); 1147 dasm_put(Dst, 3434, 1+1, LJ_TISNUM);
1142 } 1148 }
1143 dasm_put(Dst, 3476, 1+1, FRAME_TYPE, LJ_TNIL); 1149 dasm_put(Dst, 3470, 1+1, FRAME_TYPE, LJ_TNIL);
1144 if (sse) { 1150 if (sse) {
1145 dasm_put(Dst, 3570, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1151 dasm_put(Dst, 3564, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1146 dasm_put(Dst, 3632, 1+1, LJ_TISNUM); 1152 dasm_put(Dst, 3626, 1+1, LJ_TISNUM);
1147 } else { 1153 } else {
1148 dasm_put(Dst, 3662, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1154 dasm_put(Dst, 3656, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1149 dasm_put(Dst, 3721, 1+1, LJ_TISNUM); 1155 dasm_put(Dst, 3715, 1+1, LJ_TISNUM);
1150 } 1156 }
1151 dasm_put(Dst, 3748, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1157 dasm_put(Dst, 3742, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1152 dasm_put(Dst, 3817, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1158 dasm_put(Dst, 3811, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1153 dasm_put(Dst, 3874, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1159 dasm_put(Dst, 3868, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1154 dasm_put(Dst, 3937, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1160 dasm_put(Dst, 3931, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1155 dasm_put(Dst, 4027); 1161 dasm_put(Dst, 4021);
1156 if (sse) { 1162 if (sse) {
1157 dasm_put(Dst, 4039, 1+1, LJ_TISNUM); 1163 dasm_put(Dst, 4033, 1+1, LJ_TISNUM);
1158 } else { 1164 } else {
1159 } 1165 }
1160 dasm_put(Dst, 4064); 1166 dasm_put(Dst, 4058);
1161 if (sse) { 1167 if (sse) {
1162 dasm_put(Dst, 4078, 1+1, LJ_TISNUM); 1168 dasm_put(Dst, 4072, 1+1, LJ_TISNUM);
1163 } else { 1169 } else {
1164 } 1170 }
1165 dasm_put(Dst, 4103); 1171 dasm_put(Dst, 4097);
1166 if (sse) { 1172 if (sse) {
1167 dasm_put(Dst, 4117, 1+1, LJ_TISNUM); 1173 dasm_put(Dst, 4111, 1+1, LJ_TISNUM);
1168 } else { 1174 } else {
1169 } 1175 }
1170 dasm_put(Dst, 4142); 1176 dasm_put(Dst, 4136);
1171 if (sse) { 1177 if (sse) {
1172 dasm_put(Dst, 4158, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1178 dasm_put(Dst, 4152, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1173 } else { 1179 } else {
1174 dasm_put(Dst, 4197, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1180 dasm_put(Dst, 4191, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1175 } 1181 }
1176 dasm_put(Dst, 4230, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1182 dasm_put(Dst, 4224, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1177 dasm_put(Dst, 4295, 1+1, LJ_TISNUM); 1183 dasm_put(Dst, 4289, 1+1, LJ_TISNUM);
1178 if (sse) { 1184 if (sse) {
1179 dasm_put(Dst, 4394); 1185 dasm_put(Dst, 4388);
1180 } else { 1186 } else {
1181 dasm_put(Dst, 4400); 1187 dasm_put(Dst, 4394);
1182 } 1188 }
1183 dasm_put(Dst, 4409); 1189 dasm_put(Dst, 4403);
1184 if (sse) { 1190 if (sse) {
1185 dasm_put(Dst, 4434); 1191 dasm_put(Dst, 4428);
1186 } else { 1192 } else {
1187 dasm_put(Dst, 4440); 1193 dasm_put(Dst, 4434);
1188 } 1194 }
1189 dasm_put(Dst, 4443, 1+2); 1195 dasm_put(Dst, 4437, 1+2);
1190 if (sse) { 1196 if (sse) {
1191 dasm_put(Dst, 4452); 1197 dasm_put(Dst, 4446);
1192 } else { 1198 } else {
1193 dasm_put(Dst, 4460); 1199 dasm_put(Dst, 4454);
1194 } 1200 }
1195 dasm_put(Dst, 4468); 1201 dasm_put(Dst, 4462);
1196 if (sse) { 1202 if (sse) {
1197 dasm_put(Dst, 4471, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1203 dasm_put(Dst, 4465, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1198 } else { 1204 } else {
1199 dasm_put(Dst, 4498); 1205 dasm_put(Dst, 4492);
1200 } 1206 }
1201 dasm_put(Dst, 4517); 1207 dasm_put(Dst, 4511);
1202 if (sse) { 1208 if (sse) {
1203 dasm_put(Dst, 4533, 1+1, LJ_TISNUM); 1209 dasm_put(Dst, 4527, 1+1, LJ_TISNUM);
1204 } else { 1210 } else {
1205 dasm_put(Dst, 4558, 1+1, LJ_TISNUM); 1211 dasm_put(Dst, 4552, 1+1, LJ_TISNUM);
1206 } 1212 }
1207 dasm_put(Dst, 4580); 1213 dasm_put(Dst, 4574);
1208 if (sse) { 1214 if (sse) {
1209 dasm_put(Dst, 4602); 1215 dasm_put(Dst, 4596);
1210 } else { 1216 } else {
1211 dasm_put(Dst, 4628); 1217 dasm_put(Dst, 4622);
1212 } 1218 }
1213 dasm_put(Dst, 4645, 1+2); 1219 dasm_put(Dst, 4639, 1+2);
1214 if (sse) { 1220 if (sse) {
1215 dasm_put(Dst, 4685); 1221 dasm_put(Dst, 4679);
1216 } else { 1222 } else {
1217 dasm_put(Dst, 4693); 1223 dasm_put(Dst, 4687);
1218 } 1224 }
1219 dasm_put(Dst, 4703, 2+1, LJ_TISNUM, LJ_TISNUM); 1225 dasm_put(Dst, 4697, 2+1, LJ_TISNUM, LJ_TISNUM);
1220 if (sse) { 1226 if (sse) {
1221 dasm_put(Dst, 4755, 2+1, LJ_TISNUM, LJ_TISNUM); 1227 dasm_put(Dst, 4749, 2+1, LJ_TISNUM, LJ_TISNUM);
1222 } else { 1228 } else {
1223 dasm_put(Dst, 4802, 2+1, LJ_TISNUM, LJ_TISNUM); 1229 dasm_put(Dst, 4796, 2+1, LJ_TISNUM, LJ_TISNUM);
1224 } 1230 }
1225 if (sse) { 1231 if (sse) {
1226 dasm_put(Dst, 4843, 1+1, LJ_TISNUM, LJ_TISNUM); 1232 dasm_put(Dst, 4837, 1+1, LJ_TISNUM, LJ_TISNUM);
1227 } else { 1233 } else {
1228 } 1234 }
1229 if (sse) { 1235 if (sse) {
1230 dasm_put(Dst, 4914, 1+1, LJ_TISNUM, LJ_TISNUM); 1236 dasm_put(Dst, 4908, 1+1, LJ_TISNUM, LJ_TISNUM);
1231 } else { 1237 } else {
1232 } 1238 }
1233 if (!sse) { 1239 if (!sse) {
1234 dasm_put(Dst, 4985); 1240 dasm_put(Dst, 4979);
1235 } 1241 }
1236 dasm_put(Dst, 4994, 1+1, LJ_TSTR); 1242 dasm_put(Dst, 4988, 1+1, LJ_TSTR);
1237 if (sse) { 1243 if (sse) {
1238 dasm_put(Dst, 5016, Dt5(->len)); 1244 dasm_put(Dst, 5010, Dt5(->len));
1239 } else { 1245 } else {
1240 dasm_put(Dst, 5027, Dt5(->len)); 1246 dasm_put(Dst, 5021, Dt5(->len));
1241 } 1247 }
1242 dasm_put(Dst, 5035, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1248 dasm_put(Dst, 5029, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1243 if (sse) { 1249 if (sse) {
1244 dasm_put(Dst, 5073); 1250 dasm_put(Dst, 5067);
1245 } else { 1251 } else {
1246 dasm_put(Dst, 5083); 1252 dasm_put(Dst, 5077);
1247 } 1253 }
1248 dasm_put(Dst, 5096, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1254 dasm_put(Dst, 5090, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1249 if (sse) { 1255 if (sse) {
1250 dasm_put(Dst, 5131); 1256 dasm_put(Dst, 5125);
1251 } else { 1257 } else {
1252 dasm_put(Dst, 5153); 1258 dasm_put(Dst, 5147);
1253 } 1259 }
1254 dasm_put(Dst, 5173, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1260 dasm_put(Dst, 5167, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1255 dasm_put(Dst, 2127); 1261 dasm_put(Dst, 2127);
1256 if (sse) { 1262 if (sse) {
1257 dasm_put(Dst, 5281); 1263 dasm_put(Dst, 5275);
1258 } else { 1264 } else {
1259 dasm_put(Dst, 5292); 1265 dasm_put(Dst, 5286);
1260 } 1266 }
1261 dasm_put(Dst, 5300, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1267 dasm_put(Dst, 5294, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1262 if (sse) { 1268 if (sse) {
1263 dasm_put(Dst, 5330); 1269 dasm_put(Dst, 5324);
1264 } else { 1270 } else {
1265 } 1271 }
1266 dasm_put(Dst, 5337, sizeof(GCstr)-1); 1272 dasm_put(Dst, 5331, sizeof(GCstr)-1);
1267 dasm_put(Dst, 5412, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1273 dasm_put(Dst, 5406, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1268 dasm_put(Dst, 5471, LJ_TSTR, LJ_TISNUM); 1274 dasm_put(Dst, 5465, LJ_TSTR, LJ_TISNUM);
1269 if (sse) { 1275 if (sse) {
1270 dasm_put(Dst, 5492); 1276 dasm_put(Dst, 5486);
1271 } else { 1277 } else {
1272 dasm_put(Dst, 5499); 1278 dasm_put(Dst, 5493);
1273 } 1279 }
1274 dasm_put(Dst, 5511, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1280 dasm_put(Dst, 5505, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1275 dasm_put(Dst, 5576, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1281 dasm_put(Dst, 5570, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1276 dasm_put(Dst, 5639, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1282 dasm_put(Dst, 5633, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1277 dasm_put(Dst, 5710, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1283 dasm_put(Dst, 5704, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1278 dasm_put(Dst, 5795, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1284 dasm_put(Dst, 5789, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1279 dasm_put(Dst, 5865, 1+1, LJ_TTAB); 1285 dasm_put(Dst, 5859, 1+1, LJ_TTAB);
1280 if (sse) { 1286 if (sse) {
1281 dasm_put(Dst, 5933); 1287 dasm_put(Dst, 5927);
1282 } else { 1288 } else {
1283 } 1289 }
1284 if (sse) { 1290 if (sse) {
1285 dasm_put(Dst, 5943, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1291 dasm_put(Dst, 5937, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1286 } else { 1292 } else {
1287 } 1293 }
1288 if (sse) { 1294 if (sse) {
1289 dasm_put(Dst, 5995, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1295 dasm_put(Dst, 5989, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1290 } else { 1296 } else {
1291 } 1297 }
1292 dasm_put(Dst, 6038, LJ_TISNUM); 1298 dasm_put(Dst, 6032, LJ_TISNUM);
1293 if (sse) { 1299 if (sse) {
1294 dasm_put(Dst, 6065); 1300 dasm_put(Dst, 6059);
1295 } else { 1301 } else {
1296 } 1302 }
1297 dasm_put(Dst, 6082); 1303 dasm_put(Dst, 6076);
1298 if (sse) { 1304 if (sse) {
1299 dasm_put(Dst, 6090, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1305 dasm_put(Dst, 6084, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1300 } else { 1306 } else {
1301 } 1307 }
1302 dasm_put(Dst, 6038, LJ_TISNUM); 1308 dasm_put(Dst, 6032, LJ_TISNUM);
1303 if (sse) { 1309 if (sse) {
1304 dasm_put(Dst, 6133); 1310 dasm_put(Dst, 6127);
1305 } else { 1311 } else {
1306 } 1312 }
1307 dasm_put(Dst, 6082); 1313 dasm_put(Dst, 6076);
1308 if (sse) { 1314 if (sse) {
1309 dasm_put(Dst, 6150, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1315 dasm_put(Dst, 6144, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1310 } else { 1316 } else {
1311 } 1317 }
1312 dasm_put(Dst, 6038, LJ_TISNUM); 1318 dasm_put(Dst, 6032, LJ_TISNUM);
1313 if (sse) { 1319 if (sse) {
1314 dasm_put(Dst, 6193); 1320 dasm_put(Dst, 6187);
1315 } else { 1321 } else {
1316 } 1322 }
1317 dasm_put(Dst, 6082); 1323 dasm_put(Dst, 6076);
1318 if (sse) { 1324 if (sse) {
1319 dasm_put(Dst, 6210, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1325 dasm_put(Dst, 6204, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1320 } else { 1326 } else {
1321 } 1327 }
1322 dasm_put(Dst, 6253); 1328 dasm_put(Dst, 6247);
1323 if (sse) { 1329 if (sse) {
1324 dasm_put(Dst, 6260, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1330 dasm_put(Dst, 6254, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1325 } else { 1331 } else {
1326 } 1332 }
1327 dasm_put(Dst, 6303); 1333 dasm_put(Dst, 6297);
1328 if (sse) { 1334 if (sse) {
1329 dasm_put(Dst, 6307); 1335 dasm_put(Dst, 6301);
1330 } else { 1336 } else {
1331 } 1337 }
1332 dasm_put(Dst, 6319); 1338 dasm_put(Dst, 6313);
1333 if (sse) { 1339 if (sse) {
1334 dasm_put(Dst, 6330, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1340 dasm_put(Dst, 6324, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1335 } else { 1341 } else {
1336 } 1342 }
1337 dasm_put(Dst, 6399); 1343 dasm_put(Dst, 6393);
1338 if (sse) { 1344 if (sse) {
1339 dasm_put(Dst, 6408, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1345 dasm_put(Dst, 6402, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1340 } else { 1346 } else {
1341 } 1347 }
1342 dasm_put(Dst, 6477); 1348 dasm_put(Dst, 6471);
1343 if (sse) { 1349 if (sse) {
1344 dasm_put(Dst, 6487, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1350 dasm_put(Dst, 6481, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1345 } else { 1351 } else {
1346 } 1352 }
1347 dasm_put(Dst, 6556); 1353 dasm_put(Dst, 6550);
1348 if (sse) { 1354 if (sse) {
1349 dasm_put(Dst, 6566, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1355 dasm_put(Dst, 6560, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1350 } else { 1356 } else {
1351 } 1357 }
1352 dasm_put(Dst, 6635); 1358 dasm_put(Dst, 6629);
1353 if (sse) { 1359 if (sse) {
1354 dasm_put(Dst, 6644, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1360 dasm_put(Dst, 6638, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1355 } else { 1361 } else {
1356 } 1362 }
1357 dasm_put(Dst, 6713, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1363 dasm_put(Dst, 6707, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1358 dasm_put(Dst, 6791, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1364 dasm_put(Dst, 6785, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1359 dasm_put(Dst, 6918, Dt1(->top), Dt1(->base), Dt1(->top)); 1365 dasm_put(Dst, 6912, Dt1(->top), Dt1(->base), Dt1(->top));
1360#if LJ_HASJIT 1366#if LJ_HASJIT
1361 dasm_put(Dst, 6957, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1367 dasm_put(Dst, 6951, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1362#endif 1368#endif
1363 dasm_put(Dst, 6988, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1369 dasm_put(Dst, 6982, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1364 dasm_put(Dst, 7039, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1370 dasm_put(Dst, 7033, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1365#if LJ_HASJIT 1371#if LJ_HASJIT
1366 dasm_put(Dst, 7106, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1372 dasm_put(Dst, 7100, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1367#endif 1373#endif
1368 dasm_put(Dst, 7153); 1374 dasm_put(Dst, 7147);
1369#if LJ_HASJIT 1375#if LJ_HASJIT
1370 dasm_put(Dst, 6983); 1376 dasm_put(Dst, 6977);
1371#endif 1377#endif
1372 dasm_put(Dst, 7160); 1378 dasm_put(Dst, 7154);
1373#if LJ_HASJIT 1379#if LJ_HASJIT
1374 dasm_put(Dst, 7163); 1380 dasm_put(Dst, 7157);
1375#endif 1381#endif
1376 dasm_put(Dst, 7173, Dt1(->base), Dt1(->top)); 1382 dasm_put(Dst, 7167, Dt1(->base), Dt1(->top));
1377#if LJ_HASJIT 1383#if LJ_HASJIT
1378 dasm_put(Dst, 7207); 1384 dasm_put(Dst, 7201);
1379#endif 1385#endif
1380 dasm_put(Dst, 7212, Dt1(->base), Dt1(->top)); 1386 dasm_put(Dst, 7206, Dt1(->base), Dt1(->top));
1381#if LJ_HASJIT 1387#if LJ_HASJIT
1382 dasm_put(Dst, 7243, 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); 1388 dasm_put(Dst, 7237, 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);
1383#endif 1389#endif
1384 dasm_put(Dst, 7473); 1390 dasm_put(Dst, 7467);
1385#if LJ_HASJIT 1391#if LJ_HASJIT
1386 dasm_put(Dst, 7476, 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); 1392 dasm_put(Dst, 7470, 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);
1387 dasm_put(Dst, 7618); 1393 dasm_put(Dst, 7612);
1388#endif 1394#endif
1389 dasm_put(Dst, 7644); 1395 dasm_put(Dst, 7638);
1390 if (!sse) { 1396 if (!sse) {
1391 dasm_put(Dst, 7647); 1397 dasm_put(Dst, 7641);
1392 } 1398 }
1393 dasm_put(Dst, 7692, (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)); 1399 dasm_put(Dst, 7686, (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));
1394 if (!sse) { 1400 if (!sse) {
1395 dasm_put(Dst, 7778); 1401 dasm_put(Dst, 7772);
1396 } 1402 }
1397 dasm_put(Dst, 7823, (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)); 1403 dasm_put(Dst, 7817, (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));
1398 if (!sse) { 1404 if (!sse) {
1399 dasm_put(Dst, 7909); 1405 dasm_put(Dst, 7903);
1400 } 1406 }
1401 dasm_put(Dst, 7948, (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)); 1407 dasm_put(Dst, 7942, (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));
1402 if (sse) { 1408 if (sse) {
1403 dasm_put(Dst, 8037, (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)); 1409 dasm_put(Dst, 8031, (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));
1404 } else { 1410 } else {
1405 dasm_put(Dst, 8151); 1411 dasm_put(Dst, 8145);
1406 } 1412 }
1407 dasm_put(Dst, 8198); 1413 dasm_put(Dst, 8192);
1408 if (!sse) { 1414 if (!sse) {
1409 } else { 1415 } else {
1410 dasm_put(Dst, 8272); 1416 dasm_put(Dst, 8266);
1411 } 1417 }
1412 dasm_put(Dst, 8275); 1418 dasm_put(Dst, 8269);
1413 dasm_put(Dst, 8360, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1419 dasm_put(Dst, 8354, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1414 dasm_put(Dst, 8461, (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)); 1420 dasm_put(Dst, 8455, (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));
1415 dasm_put(Dst, 8629); 1421 dasm_put(Dst, 8623);
1416#if LJ_HASJIT 1422#if LJ_HASJIT
1417 if (sse) { 1423 if (sse) {
1418 dasm_put(Dst, 8670); 1424 dasm_put(Dst, 8664);
1419 dasm_put(Dst, 8740); 1425 dasm_put(Dst, 8734);
1420 dasm_put(Dst, 8813); 1426 dasm_put(Dst, 8807);
1421 } else { 1427 } else {
1422 dasm_put(Dst, 8863); 1428 dasm_put(Dst, 8857);
1423 dasm_put(Dst, 8955); 1429 dasm_put(Dst, 8949);
1424 } 1430 }
1425 dasm_put(Dst, 9001); 1431 dasm_put(Dst, 8995);
1426#endif 1432#endif
1427 dasm_put(Dst, 9005); 1433 dasm_put(Dst, 8999);
1428 if (sse) { 1434 if (sse) {
1429 dasm_put(Dst, 9008, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1435 dasm_put(Dst, 9002, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1430 dasm_put(Dst, 9097, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1436 dasm_put(Dst, 9091, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1431 } else { 1437 } else {
1432 dasm_put(Dst, 9221); 1438 dasm_put(Dst, 9215);
1433 dasm_put(Dst, 9304); 1439 dasm_put(Dst, 9298);
1434 if (cmov) { 1440 if (cmov) {
1435 dasm_put(Dst, 9359); 1441 dasm_put(Dst, 9353);
1436 } else { 1442 } else {
1437 dasm_put(Dst, 9378); 1443 dasm_put(Dst, 9372);
1438 } 1444 }
1439 dasm_put(Dst, 9001); 1445 dasm_put(Dst, 8995);
1440 } 1446 }
1441 dasm_put(Dst, 9419); 1447 dasm_put(Dst, 9413);
1442} 1448}
1443 1449
1444/* Generate the code for a single instruction. */ 1450/* Generate the code for a single instruction. */
@@ -1454,618 +1460,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1454 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1460 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1455 1461
1456 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1462 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1457 dasm_put(Dst, 9445, LJ_TISNUM, LJ_TISNUM); 1463 dasm_put(Dst, 9439, LJ_TISNUM, LJ_TISNUM);
1458 if (sse) { 1464 if (sse) {
1459 dasm_put(Dst, 9466); 1465 dasm_put(Dst, 9460);
1460 } else { 1466 } else {
1461 dasm_put(Dst, 9481); 1467 dasm_put(Dst, 9475);
1462 if (cmov) { 1468 if (cmov) {
1463 dasm_put(Dst, 9491); 1469 dasm_put(Dst, 9485);
1464 } else { 1470 } else {
1465 dasm_put(Dst, 9497); 1471 dasm_put(Dst, 9491);
1466 } 1472 }
1467 } 1473 }
1468 switch (op) { 1474 switch (op) {
1469 case BC_ISLT: 1475 case BC_ISLT:
1470 dasm_put(Dst, 9504); 1476 dasm_put(Dst, 9498);
1471 break; 1477 break;
1472 case BC_ISGE: 1478 case BC_ISGE:
1473 dasm_put(Dst, 9299); 1479 dasm_put(Dst, 9293);
1474 break; 1480 break;
1475 case BC_ISLE: 1481 case BC_ISLE:
1476 dasm_put(Dst, 5860); 1482 dasm_put(Dst, 5854);
1477 break; 1483 break;
1478 case BC_ISGT: 1484 case BC_ISGT:
1479 dasm_put(Dst, 9509); 1485 dasm_put(Dst, 9503);
1480 break; 1486 break;
1481 default: break; /* Shut up GCC. */ 1487 default: break; /* Shut up GCC. */
1482 } 1488 }
1483 dasm_put(Dst, 9514, -BCBIAS_J*4); 1489 dasm_put(Dst, 9508, -BCBIAS_J*4);
1484 break; 1490 break;
1485 1491
1486 case BC_ISEQV: case BC_ISNEV: 1492 case BC_ISEQV: case BC_ISNEV:
1487 vk = op == BC_ISEQV; 1493 vk = op == BC_ISEQV;
1488 dasm_put(Dst, 9548, LJ_TISNUM, LJ_TISNUM); 1494 dasm_put(Dst, 9542, LJ_TISNUM, LJ_TISNUM);
1489 if (sse) { 1495 if (sse) {
1490 dasm_put(Dst, 9574); 1496 dasm_put(Dst, 9568);
1491 } else { 1497 } else {
1492 dasm_put(Dst, 9586); 1498 dasm_put(Dst, 9580);
1493 if (cmov) { 1499 if (cmov) {
1494 dasm_put(Dst, 9491); 1500 dasm_put(Dst, 9485);
1495 } else { 1501 } else {
1496 dasm_put(Dst, 9497); 1502 dasm_put(Dst, 9491);
1497 } 1503 }
1498 } 1504 }
1499 iseqne_fp: 1505 iseqne_fp:
1500 if (vk) { 1506 if (vk) {
1501 dasm_put(Dst, 9593); 1507 dasm_put(Dst, 9587);
1502 } else { 1508 } else {
1503 dasm_put(Dst, 9602); 1509 dasm_put(Dst, 9596);
1504 } 1510 }
1505 iseqne_end: 1511 iseqne_end:
1506 if (vk) { 1512 if (vk) {
1507 dasm_put(Dst, 9611, -BCBIAS_J*4); 1513 dasm_put(Dst, 9605, -BCBIAS_J*4);
1508 } else { 1514 } else {
1509 dasm_put(Dst, 9626, -BCBIAS_J*4); 1515 dasm_put(Dst, 9620, -BCBIAS_J*4);
1510 } 1516 }
1511 dasm_put(Dst, 9528); 1517 dasm_put(Dst, 9522);
1512 if (op == BC_ISEQV || op == BC_ISNEV) { 1518 if (op == BC_ISEQV || op == BC_ISNEV) {
1513 dasm_put(Dst, 9641, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1519 dasm_put(Dst, 9635, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1514 if (vk) { 1520 if (vk) {
1515 dasm_put(Dst, 9699); 1521 dasm_put(Dst, 9693);
1516 } else { 1522 } else {
1517 dasm_put(Dst, 9703); 1523 dasm_put(Dst, 9697);
1518 } 1524 }
1519 dasm_put(Dst, 9709); 1525 dasm_put(Dst, 9703);
1520 } 1526 }
1521 break; 1527 break;
1522 case BC_ISEQS: case BC_ISNES: 1528 case BC_ISEQS: case BC_ISNES:
1523 vk = op == BC_ISEQS; 1529 vk = op == BC_ISEQS;
1524 dasm_put(Dst, 9714, LJ_TSTR); 1530 dasm_put(Dst, 9708, LJ_TSTR);
1525 iseqne_test: 1531 iseqne_test:
1526 if (vk) { 1532 if (vk) {
1527 dasm_put(Dst, 9597); 1533 dasm_put(Dst, 9591);
1528 } else { 1534 } else {
1529 dasm_put(Dst, 2778); 1535 dasm_put(Dst, 2772);
1530 } 1536 }
1531 goto iseqne_end; 1537 goto iseqne_end;
1532 case BC_ISEQN: case BC_ISNEN: 1538 case BC_ISEQN: case BC_ISNEN:
1533 vk = op == BC_ISEQN; 1539 vk = op == BC_ISEQN;
1534 dasm_put(Dst, 9738, LJ_TISNUM); 1540 dasm_put(Dst, 9732, LJ_TISNUM);
1535 if (sse) { 1541 if (sse) {
1536 dasm_put(Dst, 9752); 1542 dasm_put(Dst, 9746);
1537 } else { 1543 } else {
1538 dasm_put(Dst, 9764); 1544 dasm_put(Dst, 9758);
1539 if (cmov) { 1545 if (cmov) {
1540 dasm_put(Dst, 9491); 1546 dasm_put(Dst, 9485);
1541 } else { 1547 } else {
1542 dasm_put(Dst, 9497); 1548 dasm_put(Dst, 9491);
1543 } 1549 }
1544 } 1550 }
1545 goto iseqne_fp; 1551 goto iseqne_fp;
1546 case BC_ISEQP: case BC_ISNEP: 1552 case BC_ISEQP: case BC_ISNEP:
1547 vk = op == BC_ISEQP; 1553 vk = op == BC_ISEQP;
1548 dasm_put(Dst, 9771); 1554 dasm_put(Dst, 9765);
1549 goto iseqne_test; 1555 goto iseqne_test;
1550 1556
1551 /* -- Unary test and copy ops ------------------------------------------- */ 1557 /* -- Unary test and copy ops ------------------------------------------- */
1552 1558
1553 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1559 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1554 dasm_put(Dst, 9783, LJ_TISTRUECOND); 1560 dasm_put(Dst, 9777, LJ_TISTRUECOND);
1555 if (op == BC_IST || op == BC_ISTC) { 1561 if (op == BC_IST || op == BC_ISTC) {
1556 dasm_put(Dst, 9795); 1562 dasm_put(Dst, 9789);
1557 } else { 1563 } else {
1558 dasm_put(Dst, 9800); 1564 dasm_put(Dst, 9794);
1559 } 1565 }
1560 if (op == BC_ISTC || op == BC_ISFC) { 1566 if (op == BC_ISTC || op == BC_ISFC) {
1561 dasm_put(Dst, 9805); 1567 dasm_put(Dst, 9799);
1562 } 1568 }
1563 dasm_put(Dst, 9816, -BCBIAS_J*4); 1569 dasm_put(Dst, 9810, -BCBIAS_J*4);
1564 break; 1570 break;
1565 1571
1566 /* -- Unary ops --------------------------------------------------------- */ 1572 /* -- Unary ops --------------------------------------------------------- */
1567 1573
1568 case BC_MOV: 1574 case BC_MOV:
1569 dasm_put(Dst, 9848); 1575 dasm_put(Dst, 9842);
1570 break; 1576 break;
1571 case BC_NOT: 1577 case BC_NOT:
1572 dasm_put(Dst, 9876, LJ_TISTRUECOND, LJ_TTRUE); 1578 dasm_put(Dst, 9870, LJ_TISTRUECOND, LJ_TTRUE);
1573 break; 1579 break;
1574 case BC_UNM: 1580 case BC_UNM:
1575 dasm_put(Dst, 9912, LJ_TISNUM); 1581 dasm_put(Dst, 9906, LJ_TISNUM);
1576 if (sse) { 1582 if (sse) {
1577 dasm_put(Dst, 9923, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1583 dasm_put(Dst, 9917, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1578 } else { 1584 } else {
1579 dasm_put(Dst, 9948); 1585 dasm_put(Dst, 9942);
1580 } 1586 }
1581 dasm_put(Dst, 9528); 1587 dasm_put(Dst, 9522);
1582 break; 1588 break;
1583 case BC_LEN: 1589 case BC_LEN:
1584 dasm_put(Dst, 9957, LJ_TSTR); 1590 dasm_put(Dst, 9951, LJ_TSTR);
1585 if (sse) { 1591 if (sse) {
1586 dasm_put(Dst, 9971, Dt5(->len)); 1592 dasm_put(Dst, 9965, Dt5(->len));
1587 } else { 1593 } else {
1588 dasm_put(Dst, 9989, Dt5(->len)); 1594 dasm_put(Dst, 9983, Dt5(->len));
1589 } 1595 }
1590 dasm_put(Dst, 9998, LJ_TTAB); 1596 dasm_put(Dst, 9992, LJ_TTAB);
1591 if (sse) { 1597 if (sse) {
1592 dasm_put(Dst, 10039); 1598 dasm_put(Dst, 10033);
1593 } else { 1599 } else {
1594 } 1600 }
1595 dasm_put(Dst, 10048); 1601 dasm_put(Dst, 10042);
1596 break; 1602 break;
1597 1603
1598 /* -- Binary ops -------------------------------------------------------- */ 1604 /* -- Binary ops -------------------------------------------------------- */
1599 1605
1600 1606
1601 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1607 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1602 dasm_put(Dst, 10058); 1608 dasm_put(Dst, 10052);
1603 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1609 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1604 switch (vk) { 1610 switch (vk) {
1605 case 0: 1611 case 0:
1606 dasm_put(Dst, 10066, LJ_TISNUM); 1612 dasm_put(Dst, 10060, LJ_TISNUM);
1607 if (sse) { 1613 if (sse) {
1608 dasm_put(Dst, 10078); 1614 dasm_put(Dst, 10072);
1609 } else { 1615 } else {
1610 dasm_put(Dst, 10092); 1616 dasm_put(Dst, 10086);
1611 } 1617 }
1612 break; 1618 break;
1613 case 1: 1619 case 1:
1614 dasm_put(Dst, 10100, LJ_TISNUM); 1620 dasm_put(Dst, 10094, LJ_TISNUM);
1615 if (sse) { 1621 if (sse) {
1616 dasm_put(Dst, 10112); 1622 dasm_put(Dst, 10106);
1617 } else { 1623 } else {
1618 dasm_put(Dst, 10126); 1624 dasm_put(Dst, 10120);
1619 } 1625 }
1620 break; 1626 break;
1621 default: 1627 default:
1622 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1628 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1623 if (sse) { 1629 if (sse) {
1624 dasm_put(Dst, 10156); 1630 dasm_put(Dst, 10150);
1625 } else { 1631 } else {
1626 dasm_put(Dst, 10170); 1632 dasm_put(Dst, 10164);
1627 } 1633 }
1628 break; 1634 break;
1629 } 1635 }
1630 if (sse) { 1636 if (sse) {
1631 dasm_put(Dst, 9941); 1637 dasm_put(Dst, 9935);
1632 } else { 1638 } else {
1633 dasm_put(Dst, 9953); 1639 dasm_put(Dst, 9947);
1634 } 1640 }
1635 dasm_put(Dst, 9528); 1641 dasm_put(Dst, 9522);
1636 break; 1642 break;
1637 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1643 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1638 dasm_put(Dst, 10058); 1644 dasm_put(Dst, 10052);
1639 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1645 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1640 switch (vk) { 1646 switch (vk) {
1641 case 0: 1647 case 0:
1642 dasm_put(Dst, 10066, LJ_TISNUM); 1648 dasm_put(Dst, 10060, LJ_TISNUM);
1643 if (sse) { 1649 if (sse) {
1644 dasm_put(Dst, 10178); 1650 dasm_put(Dst, 10172);
1645 } else { 1651 } else {
1646 dasm_put(Dst, 10192); 1652 dasm_put(Dst, 10186);
1647 } 1653 }
1648 break; 1654 break;
1649 case 1: 1655 case 1:
1650 dasm_put(Dst, 10100, LJ_TISNUM); 1656 dasm_put(Dst, 10094, LJ_TISNUM);
1651 if (sse) { 1657 if (sse) {
1652 dasm_put(Dst, 10200); 1658 dasm_put(Dst, 10194);
1653 } else { 1659 } else {
1654 dasm_put(Dst, 10214); 1660 dasm_put(Dst, 10208);
1655 } 1661 }
1656 break; 1662 break;
1657 default: 1663 default:
1658 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1664 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1659 if (sse) { 1665 if (sse) {
1660 dasm_put(Dst, 10222); 1666 dasm_put(Dst, 10216);
1661 } else { 1667 } else {
1662 dasm_put(Dst, 10236); 1668 dasm_put(Dst, 10230);
1663 } 1669 }
1664 break; 1670 break;
1665 } 1671 }
1666 if (sse) { 1672 if (sse) {
1667 dasm_put(Dst, 9941); 1673 dasm_put(Dst, 9935);
1668 } else { 1674 } else {
1669 dasm_put(Dst, 9953); 1675 dasm_put(Dst, 9947);
1670 } 1676 }
1671 dasm_put(Dst, 9528); 1677 dasm_put(Dst, 9522);
1672 break; 1678 break;
1673 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1679 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1674 dasm_put(Dst, 10058); 1680 dasm_put(Dst, 10052);
1675 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1681 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1676 switch (vk) { 1682 switch (vk) {
1677 case 0: 1683 case 0:
1678 dasm_put(Dst, 10066, LJ_TISNUM); 1684 dasm_put(Dst, 10060, LJ_TISNUM);
1679 if (sse) { 1685 if (sse) {
1680 dasm_put(Dst, 10244); 1686 dasm_put(Dst, 10238);
1681 } else { 1687 } else {
1682 dasm_put(Dst, 10258); 1688 dasm_put(Dst, 10252);
1683 } 1689 }
1684 break; 1690 break;
1685 case 1: 1691 case 1:
1686 dasm_put(Dst, 10100, LJ_TISNUM); 1692 dasm_put(Dst, 10094, LJ_TISNUM);
1687 if (sse) { 1693 if (sse) {
1688 dasm_put(Dst, 10266); 1694 dasm_put(Dst, 10260);
1689 } else { 1695 } else {
1690 dasm_put(Dst, 10280); 1696 dasm_put(Dst, 10274);
1691 } 1697 }
1692 break; 1698 break;
1693 default: 1699 default:
1694 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1700 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1695 if (sse) { 1701 if (sse) {
1696 dasm_put(Dst, 10288); 1702 dasm_put(Dst, 10282);
1697 } else { 1703 } else {
1698 dasm_put(Dst, 10302); 1704 dasm_put(Dst, 10296);
1699 } 1705 }
1700 break; 1706 break;
1701 } 1707 }
1702 if (sse) { 1708 if (sse) {
1703 dasm_put(Dst, 9941); 1709 dasm_put(Dst, 9935);
1704 } else { 1710 } else {
1705 dasm_put(Dst, 9953); 1711 dasm_put(Dst, 9947);
1706 } 1712 }
1707 dasm_put(Dst, 9528); 1713 dasm_put(Dst, 9522);
1708 break; 1714 break;
1709 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1715 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1710 dasm_put(Dst, 10058); 1716 dasm_put(Dst, 10052);
1711 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1717 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1712 switch (vk) { 1718 switch (vk) {
1713 case 0: 1719 case 0:
1714 dasm_put(Dst, 10066, LJ_TISNUM); 1720 dasm_put(Dst, 10060, LJ_TISNUM);
1715 if (sse) { 1721 if (sse) {
1716 dasm_put(Dst, 10310); 1722 dasm_put(Dst, 10304);
1717 } else { 1723 } else {
1718 dasm_put(Dst, 10324); 1724 dasm_put(Dst, 10318);
1719 } 1725 }
1720 break; 1726 break;
1721 case 1: 1727 case 1:
1722 dasm_put(Dst, 10100, LJ_TISNUM); 1728 dasm_put(Dst, 10094, LJ_TISNUM);
1723 if (sse) { 1729 if (sse) {
1724 dasm_put(Dst, 10332); 1730 dasm_put(Dst, 10326);
1725 } else { 1731 } else {
1726 dasm_put(Dst, 10346); 1732 dasm_put(Dst, 10340);
1727 } 1733 }
1728 break; 1734 break;
1729 default: 1735 default:
1730 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1736 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1731 if (sse) { 1737 if (sse) {
1732 dasm_put(Dst, 10354); 1738 dasm_put(Dst, 10348);
1733 } else { 1739 } else {
1734 dasm_put(Dst, 10368); 1740 dasm_put(Dst, 10362);
1735 } 1741 }
1736 break; 1742 break;
1737 } 1743 }
1738 if (sse) { 1744 if (sse) {
1739 dasm_put(Dst, 9941); 1745 dasm_put(Dst, 9935);
1740 } else { 1746 } else {
1741 dasm_put(Dst, 9953); 1747 dasm_put(Dst, 9947);
1742 } 1748 }
1743 dasm_put(Dst, 9528); 1749 dasm_put(Dst, 9522);
1744 break; 1750 break;
1745 case BC_MODVN: 1751 case BC_MODVN:
1746 dasm_put(Dst, 10058); 1752 dasm_put(Dst, 10052);
1747 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1753 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1748 switch (vk) { 1754 switch (vk) {
1749 case 0: 1755 case 0:
1750 dasm_put(Dst, 10066, LJ_TISNUM); 1756 dasm_put(Dst, 10060, LJ_TISNUM);
1751 if (sse) { 1757 if (sse) {
1752 dasm_put(Dst, 10376); 1758 dasm_put(Dst, 10370);
1753 } else { 1759 } else {
1754 dasm_put(Dst, 10390); 1760 dasm_put(Dst, 10384);
1755 } 1761 }
1756 break; 1762 break;
1757 case 1: 1763 case 1:
1758 dasm_put(Dst, 10100, LJ_TISNUM); 1764 dasm_put(Dst, 10094, LJ_TISNUM);
1759 if (sse) { 1765 if (sse) {
1760 dasm_put(Dst, 10398); 1766 dasm_put(Dst, 10392);
1761 } else { 1767 } else {
1762 dasm_put(Dst, 10412); 1768 dasm_put(Dst, 10406);
1763 } 1769 }
1764 break; 1770 break;
1765 default: 1771 default:
1766 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1772 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1767 if (sse) { 1773 if (sse) {
1768 dasm_put(Dst, 10420); 1774 dasm_put(Dst, 10414);
1769 } else { 1775 } else {
1770 dasm_put(Dst, 10434); 1776 dasm_put(Dst, 10428);
1771 } 1777 }
1772 break; 1778 break;
1773 } 1779 }
1774 dasm_put(Dst, 10442); 1780 dasm_put(Dst, 10436);
1775 if (sse) { 1781 if (sse) {
1776 dasm_put(Dst, 9941); 1782 dasm_put(Dst, 9935);
1777 } else { 1783 } else {
1778 dasm_put(Dst, 9953); 1784 dasm_put(Dst, 9947);
1779 } 1785 }
1780 dasm_put(Dst, 9528); 1786 dasm_put(Dst, 9522);
1781 break; 1787 break;
1782 case BC_MODNV: case BC_MODVV: 1788 case BC_MODNV: case BC_MODVV:
1783 dasm_put(Dst, 10058); 1789 dasm_put(Dst, 10052);
1784 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1790 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1785 switch (vk) { 1791 switch (vk) {
1786 case 0: 1792 case 0:
1787 dasm_put(Dst, 10066, LJ_TISNUM); 1793 dasm_put(Dst, 10060, LJ_TISNUM);
1788 if (sse) { 1794 if (sse) {
1789 dasm_put(Dst, 10376); 1795 dasm_put(Dst, 10370);
1790 } else { 1796 } else {
1791 dasm_put(Dst, 10390); 1797 dasm_put(Dst, 10384);
1792 } 1798 }
1793 break; 1799 break;
1794 case 1: 1800 case 1:
1795 dasm_put(Dst, 10100, LJ_TISNUM); 1801 dasm_put(Dst, 10094, LJ_TISNUM);
1796 if (sse) { 1802 if (sse) {
1797 dasm_put(Dst, 10398); 1803 dasm_put(Dst, 10392);
1798 } else { 1804 } else {
1799 dasm_put(Dst, 10412); 1805 dasm_put(Dst, 10406);
1800 } 1806 }
1801 break; 1807 break;
1802 default: 1808 default:
1803 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1809 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1804 if (sse) { 1810 if (sse) {
1805 dasm_put(Dst, 10420); 1811 dasm_put(Dst, 10414);
1806 } else { 1812 } else {
1807 dasm_put(Dst, 10434); 1813 dasm_put(Dst, 10428);
1808 } 1814 }
1809 break; 1815 break;
1810 } 1816 }
1811 dasm_put(Dst, 10448); 1817 dasm_put(Dst, 10442);
1812 break; 1818 break;
1813 case BC_POW: 1819 case BC_POW:
1814 dasm_put(Dst, 10058); 1820 dasm_put(Dst, 10052);
1815 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1821 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1816 switch (vk) { 1822 switch (vk) {
1817 case 0: 1823 case 0:
1818 dasm_put(Dst, 10066, LJ_TISNUM); 1824 dasm_put(Dst, 10060, LJ_TISNUM);
1819 if (sse) { 1825 if (sse) {
1820 dasm_put(Dst, 10376); 1826 dasm_put(Dst, 10370);
1821 } else { 1827 } else {
1822 dasm_put(Dst, 10390); 1828 dasm_put(Dst, 10384);
1823 } 1829 }
1824 break; 1830 break;
1825 case 1: 1831 case 1:
1826 dasm_put(Dst, 10100, LJ_TISNUM); 1832 dasm_put(Dst, 10094, LJ_TISNUM);
1827 if (sse) { 1833 if (sse) {
1828 dasm_put(Dst, 10398); 1834 dasm_put(Dst, 10392);
1829 } else { 1835 } else {
1830 dasm_put(Dst, 10412); 1836 dasm_put(Dst, 10406);
1831 } 1837 }
1832 break; 1838 break;
1833 default: 1839 default:
1834 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM); 1840 dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
1835 if (sse) { 1841 if (sse) {
1836 dasm_put(Dst, 10420); 1842 dasm_put(Dst, 10414);
1837 } else { 1843 } else {
1838 dasm_put(Dst, 10434); 1844 dasm_put(Dst, 10428);
1839 } 1845 }
1840 break; 1846 break;
1841 } 1847 }
1842 dasm_put(Dst, 10453); 1848 dasm_put(Dst, 10447);
1843 if (sse) { 1849 if (sse) {
1844 dasm_put(Dst, 9941); 1850 dasm_put(Dst, 9935);
1845 } else { 1851 } else {
1846 dasm_put(Dst, 9953); 1852 dasm_put(Dst, 9947);
1847 } 1853 }
1848 dasm_put(Dst, 9528); 1854 dasm_put(Dst, 9522);
1849 break; 1855 break;
1850 1856
1851 case BC_CAT: 1857 case BC_CAT:
1852 dasm_put(Dst, 10457, Dt1(->base), Dt1(->base)); 1858 dasm_put(Dst, 10451, Dt1(->base), Dt1(->base));
1853 break; 1859 break;
1854 1860
1855 /* -- Constant ops ------------------------------------------------------ */ 1861 /* -- Constant ops ------------------------------------------------------ */
1856 1862
1857 case BC_KSTR: 1863 case BC_KSTR:
1858 dasm_put(Dst, 10540, LJ_TSTR); 1864 dasm_put(Dst, 10534, LJ_TSTR);
1859 break; 1865 break;
1860 case BC_KSHORT: 1866 case BC_KSHORT:
1861 if (sse) { 1867 if (sse) {
1862 dasm_put(Dst, 10575); 1868 dasm_put(Dst, 10569);
1863 } else { 1869 } else {
1864 dasm_put(Dst, 10590); 1870 dasm_put(Dst, 10584);
1865 } 1871 }
1866 dasm_put(Dst, 9528); 1872 dasm_put(Dst, 9522);
1867 break; 1873 break;
1868 case BC_KNUM: 1874 case BC_KNUM:
1869 if (sse) { 1875 if (sse) {
1870 dasm_put(Dst, 10598); 1876 dasm_put(Dst, 10592);
1871 } else { 1877 } else {
1872 dasm_put(Dst, 10611); 1878 dasm_put(Dst, 10605);
1873 } 1879 }
1874 dasm_put(Dst, 9528); 1880 dasm_put(Dst, 9522);
1875 break; 1881 break;
1876 case BC_KPRI: 1882 case BC_KPRI:
1877 dasm_put(Dst, 10618); 1883 dasm_put(Dst, 10612);
1878 break; 1884 break;
1879 case BC_KNIL: 1885 case BC_KNIL:
1880 dasm_put(Dst, 10646, LJ_TNIL); 1886 dasm_put(Dst, 10640, LJ_TNIL);
1881 break; 1887 break;
1882 1888
1883 /* -- Upvalue and function ops ------------------------------------------ */ 1889 /* -- Upvalue and function ops ------------------------------------------ */
1884 1890
1885 case BC_UGET: 1891 case BC_UGET:
1886 dasm_put(Dst, 10693, offsetof(GCfuncL, uvptr), DtA(->v)); 1892 dasm_put(Dst, 10687, offsetof(GCfuncL, uvptr), DtA(->v));
1887 break; 1893 break;
1888 case BC_USETV: 1894 case BC_USETV:
1889#define TV2MARKOFS \ 1895#define TV2MARKOFS \
1890 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1896 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1891 dasm_put(Dst, 10733, 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); 1897 dasm_put(Dst, 10727, 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);
1892 dasm_put(Dst, 10824); 1898 dasm_put(Dst, 10818);
1893 break; 1899 break;
1894#undef TV2MARKOFS 1900#undef TV2MARKOFS
1895 case BC_USETS: 1901 case BC_USETS:
1896 dasm_put(Dst, 10836, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1902 dasm_put(Dst, 10830, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1897 break; 1903 break;
1898 case BC_USETN: 1904 case BC_USETN:
1899 dasm_put(Dst, 10929); 1905 dasm_put(Dst, 10923);
1900 if (sse) { 1906 if (sse) {
1901 dasm_put(Dst, 10934); 1907 dasm_put(Dst, 10928);
1902 } else { 1908 } else {
1903 dasm_put(Dst, 9767); 1909 dasm_put(Dst, 9761);
1904 } 1910 }
1905 dasm_put(Dst, 10941, offsetof(GCfuncL, uvptr), DtA(->v)); 1911 dasm_put(Dst, 10935, offsetof(GCfuncL, uvptr), DtA(->v));
1906 if (sse) { 1912 if (sse) {
1907 dasm_put(Dst, 10950); 1913 dasm_put(Dst, 10944);
1908 } else { 1914 } else {
1909 dasm_put(Dst, 10956); 1915 dasm_put(Dst, 10950);
1910 } 1916 }
1911 dasm_put(Dst, 9528); 1917 dasm_put(Dst, 9522);
1912 break; 1918 break;
1913 case BC_USETP: 1919 case BC_USETP:
1914 dasm_put(Dst, 10959, offsetof(GCfuncL, uvptr), DtA(->v)); 1920 dasm_put(Dst, 10953, offsetof(GCfuncL, uvptr), DtA(->v));
1915 break; 1921 break;
1916 case BC_UCLO: 1922 case BC_UCLO:
1917 dasm_put(Dst, 10998, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1923 dasm_put(Dst, 10992, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1918 break; 1924 break;
1919 1925
1920 case BC_FNEW: 1926 case BC_FNEW:
1921 dasm_put(Dst, 11053, Dt1(->base), Dt1(->base), LJ_TFUNC); 1927 dasm_put(Dst, 11047, Dt1(->base), Dt1(->base), LJ_TFUNC);
1922 break; 1928 break;
1923 1929
1924 /* -- Table ops --------------------------------------------------------- */ 1930 /* -- Table ops --------------------------------------------------------- */
1925 1931
1926 case BC_TNEW: 1932 case BC_TNEW:
1927 dasm_put(Dst, 11119, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1933 dasm_put(Dst, 11113, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1928 break; 1934 break;
1929 case BC_TDUP: 1935 case BC_TDUP:
1930 dasm_put(Dst, 11241, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1936 dasm_put(Dst, 11235, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1931 break; 1937 break;
1932 1938
1933 case BC_GGET: 1939 case BC_GGET:
1934 dasm_put(Dst, 11336, Dt7(->env)); 1940 dasm_put(Dst, 11330, Dt7(->env));
1935 break; 1941 break;
1936 case BC_GSET: 1942 case BC_GSET:
1937 dasm_put(Dst, 11355, Dt7(->env)); 1943 dasm_put(Dst, 11349, Dt7(->env));
1938 break; 1944 break;
1939 1945
1940 case BC_TGETV: 1946 case BC_TGETV:
1941 dasm_put(Dst, 11374, LJ_TTAB, LJ_TISNUM); 1947 dasm_put(Dst, 11368, LJ_TTAB, LJ_TISNUM);
1942 if (sse) { 1948 if (sse) {
1943 dasm_put(Dst, 11407); 1949 dasm_put(Dst, 11401);
1944 } else { 1950 } else {
1945 } 1951 }
1946 dasm_put(Dst, 11428, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1952 dasm_put(Dst, 11422, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1947 dasm_put(Dst, 11512, LJ_TNIL, LJ_TSTR); 1953 dasm_put(Dst, 11506, LJ_TNIL, LJ_TSTR);
1948 break; 1954 break;
1949 case BC_TGETS: 1955 case BC_TGETS:
1950 dasm_put(Dst, 11541, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1956 dasm_put(Dst, 11535, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1951 dasm_put(Dst, 11625, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1957 dasm_put(Dst, 11619, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1952 break; 1958 break;
1953 case BC_TGETB: 1959 case BC_TGETB:
1954 dasm_put(Dst, 11696, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1960 dasm_put(Dst, 11690, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1955 dasm_put(Dst, 11791, LJ_TNIL); 1961 dasm_put(Dst, 11785, LJ_TNIL);
1956 break; 1962 break;
1957 1963
1958 case BC_TSETV: 1964 case BC_TSETV:
1959 dasm_put(Dst, 11808, LJ_TTAB, LJ_TISNUM); 1965 dasm_put(Dst, 11802, LJ_TTAB, LJ_TISNUM);
1960 if (sse) { 1966 if (sse) {
1961 dasm_put(Dst, 11407); 1967 dasm_put(Dst, 11401);
1962 } else { 1968 } else {
1963 } 1969 }
1964 dasm_put(Dst, 11841, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1970 dasm_put(Dst, 11835, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1965 dasm_put(Dst, 11920, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1971 dasm_put(Dst, 11914, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1966 break; 1972 break;
1967 case BC_TSETS: 1973 case BC_TSETS:
1968 dasm_put(Dst, 11982, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1974 dasm_put(Dst, 11976, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1969 dasm_put(Dst, 12058, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1975 dasm_put(Dst, 12052, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1970 dasm_put(Dst, 12146, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1976 dasm_put(Dst, 12140, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1971 break; 1977 break;
1972 case BC_TSETB: 1978 case BC_TSETB:
1973 dasm_put(Dst, 12237, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1979 dasm_put(Dst, 12231, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1974 dasm_put(Dst, 12331, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1980 dasm_put(Dst, 12325, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1975 break; 1981 break;
1976 1982
1977 case BC_TSETM: 1983 case BC_TSETM:
1978 dasm_put(Dst, 12377, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1984 dasm_put(Dst, 12371, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1979 dasm_put(Dst, 12520, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1985 dasm_put(Dst, 12514, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1980 break; 1986 break;
1981 1987
1982 /* -- Calls and vararg handling ----------------------------------------- */ 1988 /* -- Calls and vararg handling ----------------------------------------- */
1983 1989
1984 case BC_CALL: case BC_CALLM: 1990 case BC_CALL: case BC_CALLM:
1985 dasm_put(Dst, 10062); 1991 dasm_put(Dst, 10056);
1986 if (op == BC_CALLM) { 1992 if (op == BC_CALLM) {
1987 dasm_put(Dst, 12538); 1993 dasm_put(Dst, 12532);
1988 } 1994 }
1989 dasm_put(Dst, 12543, LJ_TFUNC, Dt7(->pc)); 1995 dasm_put(Dst, 12537, LJ_TFUNC, Dt7(->pc));
1990 break; 1996 break;
1991 1997
1992 case BC_CALLMT: 1998 case BC_CALLMT:
1993 dasm_put(Dst, 12538); 1999 dasm_put(Dst, 12532);
1994 break; 2000 break;
1995 case BC_CALLT: 2001 case BC_CALLT:
1996 dasm_put(Dst, 12585, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2002 dasm_put(Dst, 12579, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1997 dasm_put(Dst, 12700, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2003 dasm_put(Dst, 12694, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1998 break; 2004 break;
1999 2005
2000 case BC_ITERC: 2006 case BC_ITERC:
2001 dasm_put(Dst, 12771, LJ_TFUNC, 2+1, Dt7(->pc)); 2007 dasm_put(Dst, 12765, LJ_TFUNC, 2+1, Dt7(->pc));
2002 break; 2008 break;
2003 2009
2004 case BC_ITERN: 2010 case BC_ITERN:
2005#if LJ_HASJIT 2011#if LJ_HASJIT
2006#endif 2012#endif
2007 dasm_put(Dst, 12842, Dt6(->asize), Dt6(->array), LJ_TNIL); 2013 dasm_put(Dst, 12836, Dt6(->asize), Dt6(->array), LJ_TNIL);
2008 if (sse) { 2014 if (sse) {
2009 dasm_put(Dst, 12888); 2015 dasm_put(Dst, 12882);
2010 } else { 2016 } else {
2011 dasm_put(Dst, 12894); 2017 dasm_put(Dst, 12888);
2012 } 2018 }
2013 dasm_put(Dst, 12900); 2019 dasm_put(Dst, 12894);
2014 if (sse) { 2020 if (sse) {
2015 dasm_put(Dst, 9941); 2021 dasm_put(Dst, 9935);
2016 } else { 2022 } else {
2017 dasm_put(Dst, 9953); 2023 dasm_put(Dst, 9947);
2018 } 2024 }
2019 dasm_put(Dst, 12913, -BCBIAS_J*4); 2025 dasm_put(Dst, 12907, -BCBIAS_J*4);
2020 if (!sse) { 2026 if (!sse) {
2021 dasm_put(Dst, 12965); 2027 dasm_put(Dst, 12959);
2022 } 2028 }
2023 dasm_put(Dst, 12971, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2029 dasm_put(Dst, 12965, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2024 break; 2030 break;
2025 2031
2026 case BC_ISNEXT: 2032 case BC_ISNEXT:
2027 dasm_put(Dst, 13043, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2033 dasm_put(Dst, 13037, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2028 break; 2034 break;
2029 2035
2030 case BC_VARG: 2036 case BC_VARG:
2031 dasm_put(Dst, 13143, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2037 dasm_put(Dst, 13137, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2032 dasm_put(Dst, 13303, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2038 dasm_put(Dst, 13297, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2033 break; 2039 break;
2034 2040
2035 /* -- Returns ----------------------------------------------------------- */ 2041 /* -- Returns ----------------------------------------------------------- */
2036 2042
2037 case BC_RETM: 2043 case BC_RETM:
2038 dasm_put(Dst, 12538); 2044 dasm_put(Dst, 12532);
2039 break; 2045 break;
2040 2046
2041 case BC_RET: case BC_RET0: case BC_RET1: 2047 case BC_RET: case BC_RET0: case BC_RET1:
2042 if (op != BC_RET0) { 2048 if (op != BC_RET0) {
2043 dasm_put(Dst, 13369); 2049 dasm_put(Dst, 13363);
2044 } 2050 }
2045 dasm_put(Dst, 13373, FRAME_TYPE); 2051 dasm_put(Dst, 13367, FRAME_TYPE);
2046 switch (op) { 2052 switch (op) {
2047 case BC_RET: 2053 case BC_RET:
2048 dasm_put(Dst, 13392); 2054 dasm_put(Dst, 13386);
2049 break; 2055 break;
2050 case BC_RET1: 2056 case BC_RET1:
2051 dasm_put(Dst, 13444); 2057 dasm_put(Dst, 13438);
2052 /* fallthrough */ 2058 /* fallthrough */
2053 case BC_RET0: 2059 case BC_RET0:
2054 dasm_put(Dst, 13454); 2060 dasm_put(Dst, 13448);
2055 default: 2061 default:
2056 break; 2062 break;
2057 } 2063 }
2058 dasm_put(Dst, 13465, Dt7(->pc), PC2PROTO(k)); 2064 dasm_put(Dst, 13459, Dt7(->pc), PC2PROTO(k));
2059 if (op == BC_RET) { 2065 if (op == BC_RET) {
2060 dasm_put(Dst, 13509, LJ_TNIL); 2066 dasm_put(Dst, 13503, LJ_TNIL);
2061 } else { 2067 } else {
2062 dasm_put(Dst, 13518, LJ_TNIL); 2068 dasm_put(Dst, 13512, LJ_TNIL);
2063 } 2069 }
2064 dasm_put(Dst, 13525, -FRAME_VARG, FRAME_TYPEP); 2070 dasm_put(Dst, 13519, -FRAME_VARG, FRAME_TYPEP);
2065 if (op != BC_RET0) { 2071 if (op != BC_RET0) {
2066 dasm_put(Dst, 13549); 2072 dasm_put(Dst, 13543);
2067 } 2073 }
2068 dasm_put(Dst, 4528); 2074 dasm_put(Dst, 4522);
2069 break; 2075 break;
2070 2076
2071 /* -- Loops and branches ------------------------------------------------ */ 2077 /* -- Loops and branches ------------------------------------------------ */
@@ -2073,7 +2079,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2073 2079
2074 case BC_FORL: 2080 case BC_FORL:
2075#if LJ_HASJIT 2081#if LJ_HASJIT
2076 dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT); 2082 dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT);
2077#endif 2083#endif
2078 break; 2084 break;
2079 2085
@@ -2085,57 +2091,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2085 case BC_FORI: 2091 case BC_FORI:
2086 case BC_IFORL: 2092 case BC_IFORL:
2087 vk = (op == BC_IFORL || op == BC_JFORL); 2093 vk = (op == BC_IFORL || op == BC_JFORL);
2088 dasm_put(Dst, 13574); 2094 dasm_put(Dst, 13568);
2089 if (!vk) { 2095 if (!vk) {
2090 dasm_put(Dst, 13578, LJ_TISNUM, LJ_TISNUM); 2096 dasm_put(Dst, 13572, LJ_TISNUM, LJ_TISNUM);
2091 } 2097 }
2092 dasm_put(Dst, 13597); 2098 dasm_put(Dst, 13591);
2093 if (!vk) { 2099 if (!vk) {
2094 dasm_put(Dst, 13601, LJ_TISNUM); 2100 dasm_put(Dst, 13595, LJ_TISNUM);
2095 } 2101 }
2096 if (sse) { 2102 if (sse) {
2097 dasm_put(Dst, 13610); 2103 dasm_put(Dst, 13604);
2098 if (vk) { 2104 if (vk) {
2099 dasm_put(Dst, 13622); 2105 dasm_put(Dst, 13616);
2100 } else { 2106 } else {
2101 dasm_put(Dst, 13641); 2107 dasm_put(Dst, 13635);
2102 } 2108 }
2103 dasm_put(Dst, 13646); 2109 dasm_put(Dst, 13640);
2104 } else { 2110 } else {
2105 dasm_put(Dst, 13659); 2111 dasm_put(Dst, 13653);
2106 if (vk) { 2112 if (vk) {
2107 dasm_put(Dst, 13665); 2113 dasm_put(Dst, 13659);
2108 } else { 2114 } else {
2109 dasm_put(Dst, 13681); 2115 dasm_put(Dst, 13675);
2110 } 2116 }
2111 dasm_put(Dst, 13689); 2117 dasm_put(Dst, 13683);
2112 if (cmov) { 2118 if (cmov) {
2113 dasm_put(Dst, 9491); 2119 dasm_put(Dst, 9485);
2114 } else { 2120 } else {
2115 dasm_put(Dst, 9497); 2121 dasm_put(Dst, 9491);
2116 } 2122 }
2117 if (!cmov) { 2123 if (!cmov) {
2118 dasm_put(Dst, 13694); 2124 dasm_put(Dst, 13688);
2119 } 2125 }
2120 } 2126 }
2121 if (op == BC_FORI) { 2127 if (op == BC_FORI) {
2122 dasm_put(Dst, 13700, -BCBIAS_J*4); 2128 dasm_put(Dst, 13694, -BCBIAS_J*4);
2123 } else if (op == BC_JFORI) { 2129 } else if (op == BC_JFORI) {
2124 dasm_put(Dst, 13710, -BCBIAS_J*4, BC_JLOOP); 2130 dasm_put(Dst, 13704, -BCBIAS_J*4, BC_JLOOP);
2125 } else if (op == BC_IFORL) { 2131 } else if (op == BC_IFORL) {
2126 dasm_put(Dst, 13724, -BCBIAS_J*4); 2132 dasm_put(Dst, 13718, -BCBIAS_J*4);
2127 } else { 2133 } else {
2128 dasm_put(Dst, 13720, BC_JLOOP); 2134 dasm_put(Dst, 13714, BC_JLOOP);
2129 } 2135 }
2130 dasm_put(Dst, 9526); 2136 dasm_put(Dst, 9520);
2131 if (sse) { 2137 if (sse) {
2132 dasm_put(Dst, 13734); 2138 dasm_put(Dst, 13728);
2133 } 2139 }
2134 break; 2140 break;
2135 2141
2136 case BC_ITERL: 2142 case BC_ITERL:
2137#if LJ_HASJIT 2143#if LJ_HASJIT
2138 dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT); 2144 dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT);
2139#endif 2145#endif
2140 break; 2146 break;
2141 2147
@@ -2144,33 +2150,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2144 break; 2150 break;
2145#endif 2151#endif
2146 case BC_IITERL: 2152 case BC_IITERL:
2147 dasm_put(Dst, 13745, LJ_TNIL); 2153 dasm_put(Dst, 13739, LJ_TNIL);
2148 if (op == BC_JITERL) { 2154 if (op == BC_JITERL) {
2149 dasm_put(Dst, 13760, BC_JLOOP); 2155 dasm_put(Dst, 13754, BC_JLOOP);
2150 } else { 2156 } else {
2151 dasm_put(Dst, 13774, -BCBIAS_J*4); 2157 dasm_put(Dst, 13768, -BCBIAS_J*4);
2152 } 2158 }
2153 dasm_put(Dst, 9826); 2159 dasm_put(Dst, 9820);
2154 break; 2160 break;
2155 2161
2156 case BC_LOOP: 2162 case BC_LOOP:
2157#if LJ_HASJIT 2163#if LJ_HASJIT
2158 dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT); 2164 dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT);
2159#endif 2165#endif
2160 break; 2166 break;
2161 2167
2162 case BC_ILOOP: 2168 case BC_ILOOP:
2163 dasm_put(Dst, 9528); 2169 dasm_put(Dst, 9522);
2164 break; 2170 break;
2165 2171
2166 case BC_JLOOP: 2172 case BC_JLOOP:
2167#if LJ_HASJIT 2173#if LJ_HASJIT
2168 dasm_put(Dst, 13790, 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); 2174 dasm_put(Dst, 13784, 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);
2169#endif 2175#endif
2170 break; 2176 break;
2171 2177
2172 case BC_JMP: 2178 case BC_JMP:
2173 dasm_put(Dst, 13899, -BCBIAS_J*4); 2179 dasm_put(Dst, 13893, -BCBIAS_J*4);
2174 break; 2180 break;
2175 2181
2176 /* -- Function headers -------------------------------------------------- */ 2182 /* -- Function headers -------------------------------------------------- */
@@ -2184,7 +2190,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2184 2190
2185 case BC_FUNCF: 2191 case BC_FUNCF:
2186#if LJ_HASJIT 2192#if LJ_HASJIT
2187 dasm_put(Dst, 13924, HOTCOUNT_PCMASK, GG_DISP2HOT); 2193 dasm_put(Dst, 13918, HOTCOUNT_PCMASK, GG_DISP2HOT);
2188#endif 2194#endif
2189 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2195 case BC_FUNCV: /* NYI: compiled vararg functions. */
2190 break; 2196 break;
@@ -2194,47 +2200,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2194 break; 2200 break;
2195#endif 2201#endif
2196 case BC_IFUNCF: 2202 case BC_IFUNCF:
2197 dasm_put(Dst, 13945, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2203 dasm_put(Dst, 13939, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2198 if (op == BC_JFUNCF) { 2204 if (op == BC_JFUNCF) {
2199 dasm_put(Dst, 13975, BC_JLOOP); 2205 dasm_put(Dst, 13969, BC_JLOOP);
2200 } else { 2206 } else {
2201 dasm_put(Dst, 9528); 2207 dasm_put(Dst, 9522);
2202 } 2208 }
2203 dasm_put(Dst, 13984, LJ_TNIL); 2209 dasm_put(Dst, 13978, LJ_TNIL);
2204 break; 2210 break;
2205 2211
2206 case BC_JFUNCV: 2212 case BC_JFUNCV:
2207#if !LJ_HASJIT 2213#if !LJ_HASJIT
2208 break; 2214 break;
2209#endif 2215#endif
2210 dasm_put(Dst, 9003); 2216 dasm_put(Dst, 8997);
2211 break; /* NYI: compiled vararg functions. */ 2217 break; /* NYI: compiled vararg functions. */
2212 2218
2213 case BC_IFUNCV: 2219 case BC_IFUNCV:
2214 dasm_put(Dst, 14006, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2220 dasm_put(Dst, 14000, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2215 if (op == BC_JFUNCV) { 2221 if (op == BC_JFUNCV) {
2216 dasm_put(Dst, 13975, BC_JLOOP); 2222 dasm_put(Dst, 13969, BC_JLOOP);
2217 } else { 2223 } else {
2218 dasm_put(Dst, 14097, -4+PC2PROTO(k)); 2224 dasm_put(Dst, 14091, -4+PC2PROTO(k));
2219 } 2225 }
2220 dasm_put(Dst, 14120, LJ_TNIL); 2226 dasm_put(Dst, 14114, LJ_TNIL);
2221 break; 2227 break;
2222 2228
2223 case BC_FUNCC: 2229 case BC_FUNCC:
2224 case BC_FUNCCW: 2230 case BC_FUNCCW:
2225 dasm_put(Dst, 14142, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2231 dasm_put(Dst, 14136, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2226 if (op == BC_FUNCC) { 2232 if (op == BC_FUNCC) {
2227 dasm_put(Dst, 14172); 2233 dasm_put(Dst, 14166);
2228 } else { 2234 } else {
2229 dasm_put(Dst, 14176); 2235 dasm_put(Dst, 14170);
2230 } 2236 }
2231 dasm_put(Dst, 14184, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2237 dasm_put(Dst, 14178, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2232 if (op == BC_FUNCC) { 2238 if (op == BC_FUNCC) {
2233 dasm_put(Dst, 14193); 2239 dasm_put(Dst, 14187);
2234 } else { 2240 } else {
2235 dasm_put(Dst, 14197, DISPATCH_GL(wrapf)); 2241 dasm_put(Dst, 14191, DISPATCH_GL(wrapf));
2236 } 2242 }
2237 dasm_put(Dst, 14202, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2243 dasm_put(Dst, 14196, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2238 break; 2244 break;
2239 2245
2240 /* ---------------------------------------------------------------------- */ 2246 /* ---------------------------------------------------------------------- */
@@ -2262,7 +2268,7 @@ static int build_backend(BuildCtx *ctx)
2262 2268
2263 build_subroutines(ctx, cmov, sse); 2269 build_subroutines(ctx, cmov, sse);
2264 2270
2265 dasm_put(Dst, 14227); 2271 dasm_put(Dst, 14221);
2266 for (op = 0; op < BC__MAX; op++) 2272 for (op = 0; op < BC__MAX; op++)
2267 build_ins(ctx, (BCOp)op, op, cmov, sse); 2273 build_ins(ctx, (BCOp)op, op, cmov, sse);
2268 2274
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index e07ef181..0bd8f304 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -1511,7 +1511,9 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1511 |.ffunc_1 pairs 1511 |.ffunc_1 pairs
1512 | mov TAB:RB, [BASE] 1512 | mov TAB:RB, [BASE]
1513 | cmp dword [BASE+4], LJ_TTAB; jne ->fff_fallback 1513 | cmp dword [BASE+4], LJ_TTAB; jne ->fff_fallback
1514#ifdef LUAJIT_ENABLE_LUA52COMPAT
1514 | cmp dword TAB:RB->metatable, 0; jne ->fff_fallback 1515 | cmp dword TAB:RB->metatable, 0; jne ->fff_fallback
1516#endif
1515 | mov CFUNC:RB, [BASE-8] 1517 | mov CFUNC:RB, [BASE-8]
1516 | mov CFUNC:RD, CFUNC:RB->upvalue[0] 1518 | mov CFUNC:RD, CFUNC:RB->upvalue[0]
1517 | mov PC, [BASE-4] 1519 | mov PC, [BASE-4]
@@ -1575,7 +1577,9 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1575 |.ffunc_1 ipairs 1577 |.ffunc_1 ipairs
1576 | mov TAB:RB, [BASE] 1578 | mov TAB:RB, [BASE]
1577 | cmp dword [BASE+4], LJ_TTAB; jne ->fff_fallback 1579 | cmp dword [BASE+4], LJ_TTAB; jne ->fff_fallback
1580#ifdef LUAJIT_ENABLE_LUA52COMPAT
1578 | cmp dword TAB:RB->metatable, 0; jne ->fff_fallback 1581 | cmp dword TAB:RB->metatable, 0; jne ->fff_fallback
1582#endif
1579 | mov CFUNC:RB, [BASE-8] 1583 | mov CFUNC:RB, [BASE-8]
1580 | mov CFUNC:RD, CFUNC:RB->upvalue[0] 1584 | mov CFUNC:RD, CFUNC:RB->upvalue[0]
1581 | mov PC, [BASE-4] 1585 | mov PC, [BASE-4]
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index f68d6c87..25e4cc8e 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15597] = { 15static const unsigned char build_actionlist[15591] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -130,132 +130,132 @@ static const unsigned char build_actionlist[15597] = {
130 66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244, 130 66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,
131 69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244, 131 69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,
132 58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,253,4,239,15,133, 132 58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,253,4,239,15,133,
133 244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,139,114,252, 133 244,55,255,131,189,233,0,15,133,244,55,255,139,106,252,248,139,133,233,139,
134 252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,69, 134 114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,
135 248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,129, 135 244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,
136 122,253,12,239,255,15,135,244,55,139,114,252,252,255,252,242,15,16,66,8,189, 136 55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242,15,16,66,
137 0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88,193,252,242, 137 8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88,193,252,
138 15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,36, 138 242,15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,
139 221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,3, 139 36,221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,
140 133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,42,137, 140 3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,42,137,
141 66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,137,213, 141 66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,137,213,
142 137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252, 142 137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,
143 233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4, 143 233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,
144 239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233, 144 239,15,133,244,55,255,139,106,252,248,139,133,233,139,114,252,252,199,66,
145 139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15, 145 252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,
146 17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252, 146 221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,
147 248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193, 147 141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,
148 252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,15, 148 1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,
149 130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, 149 12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,
150 66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252, 150 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,
151 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137, 151 248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,24,137,44,36,129,
152 116,36,24,137,44,36,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133, 152 122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,128,189,233,235,15,
153 244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141, 153 135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,
154 233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137, 154 141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,
155 181,233,139,108,36,48,137,149,233,131,194,8,137,149,233,141,108,194,232,41, 155 149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244,
156 252,245,57,206,15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137, 156 249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,
157 70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137, 157 8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,
158 76,36,12,137,76,36,8,232,244,24,199,131,233,237,255,139,108,36,48,139,52, 158 244,24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248,
159 36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233, 159 239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,
160 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133, 160 41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,
161 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, 161 213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,
162 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248, 162 15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,
163 7,139,116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247, 163 36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,
164 198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,142, 164 13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,
165 233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233, 165 142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,
166 244,7,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139, 166 36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
167 52,36,139,149,233,252,233,244,4,248,77,139,106,252,248,139,173,233,139,114, 167 252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,252,252,137,116,
168 252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233, 168 36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,
169 235,15,135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248, 169 55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,
170 1,141,116,193,252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48, 170 252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,149,233,137,
171 137,149,233,137,149,233,141,108,194,252,240,41,252,245,57,206,15,132,244, 171 149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,
172 249,248,2,255,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252, 172 68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,
173 238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36, 173 244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,
174 8,232,244,24,199,131,233,237,139,108,36,48,139,52,36,139,149,233,129,252, 174 233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,
175 248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252, 175 248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,
176 254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255, 176 141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5,
177 255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57, 177 139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,
178 252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201, 178 6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,
179 252,247,198,237,15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233, 179 244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,
180 232,251,1,13,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251, 180 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
181 1,0,139,52,36,139,149,233,252,233,244,4,248,78,139,108,36,48,252,247,133, 181 252,233,244,4,248,78,139,108,36,48,252,247,133,233,237,15,132,244,55,255,
182 233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192, 182 137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176,235,136,
183 137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,114,252,252, 183 133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248,252,233,
184 221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122, 184 244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
185 253,4,239,15,135,244,55,252,242,15,16,2,102,15,252,239,201,102,15,118,201, 185 55,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,
186 102,15,115,209,1,15,84,193,248,63,139,114,252,252,252,242,15,17,66,252,248, 186 84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252,
187 255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 187 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,
188 221,2,217,225,248,63,248,64,139,114,252,252,221,90,252,248,255,248,58,184, 188 248,64,139,114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,
189 237,248,69,137,68,36,20,248,56,252,247,198,237,15,133,244,253,248,5,56,70, 189 20,248,56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,
190 252,255,15,135,244,252,15,182,78,252,253,252,247,209,141,20,202,139,6,15, 190 15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,
191 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252, 191 198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237,131,192,1,252,
192 244,237,131,192,1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255, 192 233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233,244,14,255,248,
193 252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239, 193 80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
194 15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130, 194 15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122,253,4,
195 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233, 195 239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,
196 244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 196 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
197 244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239, 197 232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55,129,122,
198 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244, 198 253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,
199 64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 199 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,
200 2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129, 200 244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
201 122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129, 201 244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,15,130,
202 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221, 202 244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,252,
203 2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122, 203 233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
204 253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248, 204 244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,239,
205 87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 205 255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,
206 2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122, 206 244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
207 253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248, 207 55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,244,
208 239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252, 208 55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,91,
209 233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 209 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,
210 244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15, 210 242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,
211 130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217, 211 253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,
212 232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239, 212 217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,
213 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232, 213 4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,
214 222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248, 214 201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,
215 239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252, 215 253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,
216 243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4, 216 248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
217 239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248, 217 242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248,239,15,130,244,55,129,
218 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137, 218 122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,14,137,
219 213,232,251,1,14,137,252,234,252,233,244,64,255,248,96,129,252,248,239,15, 219 252,234,252,233,244,64,255,248,96,129,252,248,239,15,130,244,55,129,122,253,
220 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17, 220 4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,96,129,252,
221 4,36,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 221 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,
222 55,221,2,221,28,36,255,137,213,232,251,1,15,137,252,234,252,233,244,64,255, 222 137,213,232,251,1,15,137,252,234,252,233,244,64,255,248,97,129,252,248,239,
223 248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, 223 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,
224 242,15,16,2,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,55,129, 224 17,4,36,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
225 122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,16,137, 225 244,55,221,2,221,28,36,255,137,213,232,251,1,16,137,252,234,252,233,244,64,
226 252,234,252,233,244,64,248,98,255,248,99,129,252,248,239,15,130,244,55,129, 226 248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
227 122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15,89, 227 244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,
228 133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122,253, 228 63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
229 4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64,255, 229 55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,
230 248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 230 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
231 122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64,248, 231 244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,
232 101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122, 232 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,
233 253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233,244, 233 244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,
234 64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15,135, 234 248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,
235 244,55,139,114,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129,252, 235 252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,
236 253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0, 236 255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,
237 129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242, 237 32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,
238 15,42,197,255,137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252, 238 137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252,255,252,255,15,
239 255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15, 239 128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,
240 17,2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244, 240 26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,
241 2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80, 241 238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,
242 67,102,15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252, 242 205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252,248,255,221,
243 248,255,221,2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139, 243 2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139,106,252,252,
244 106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239, 244 184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,
245 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103, 245 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,
246 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139, 246 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,
247 106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250, 247 114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,
248 255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248, 248 224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,
249 252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248, 249 15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,
250 221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252, 250 255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,
251 233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255, 251 244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,
252 15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105, 252 228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,129,252,
253 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 253 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
254 12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138, 254 15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,
255 244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129, 255 217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,122,253,
256 122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16, 256 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
257 2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239, 257 242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,15,
258 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 258 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
259 55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239, 259 55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239,
260 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0, 260 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,
261 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55, 261 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,
@@ -1174,395 +1174,402 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1174 dasm_put(Dst, 2164, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1174 dasm_put(Dst, 2164, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1175 dasm_put(Dst, 2230, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1175 dasm_put(Dst, 2230, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1176 dasm_put(Dst, 2297, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1176 dasm_put(Dst, 2297, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1177 dasm_put(Dst, 2402, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1177 dasm_put(Dst, 2402, LJ_TTAB);
1178 dasm_put(Dst, 2476); 1178#ifdef LUAJIT_ENABLE_LUA52COMPAT
1179 dasm_put(Dst, 2414, Dt6(->metatable));
1180#endif
1181 dasm_put(Dst, 2423, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1179 if (sse) { 1182 if (sse) {
1180 dasm_put(Dst, 2485); 1183 dasm_put(Dst, 2486);
1181 } else { 1184 } else {
1182 dasm_put(Dst, 2524); 1185 dasm_put(Dst, 2525);
1183 } 1186 }
1184 dasm_put(Dst, 2542, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1187 dasm_put(Dst, 2543, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1185 dasm_put(Dst, 2623, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC); 1188 dasm_put(Dst, 2624, 1+1, LJ_TTAB);
1189#ifdef LUAJIT_ENABLE_LUA52COMPAT
1190 dasm_put(Dst, 2414, Dt6(->metatable));
1191#endif
1192 dasm_put(Dst, 2644, Dt8(->upvalue[0]), LJ_TFUNC);
1186 if (sse) { 1193 if (sse) {
1187 dasm_put(Dst, 2671); 1194 dasm_put(Dst, 2665);
1188 } else { 1195 } else {
1189 dasm_put(Dst, 2681); 1196 dasm_put(Dst, 2675);
1190 } 1197 }
1191 dasm_put(Dst, 2688, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1198 dasm_put(Dst, 2682, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1192 dasm_put(Dst, 2752, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1199 dasm_put(Dst, 2746, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1193 dasm_put(Dst, 2840, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1200 dasm_put(Dst, 2834, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1194 dasm_put(Dst, 2941, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1201 dasm_put(Dst, 2935, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1195 dasm_put(Dst, 3055, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1202 dasm_put(Dst, 3049, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1196 dasm_put(Dst, 3153, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1203 dasm_put(Dst, 3147, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1197 dasm_put(Dst, 3219, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1204 dasm_put(Dst, 3213, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1198 dasm_put(Dst, 3320, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1205 dasm_put(Dst, 3314, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1199 dasm_put(Dst, 3433, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1206 dasm_put(Dst, 3427, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1200 if (sse) { 1207 if (sse) {
1201 dasm_put(Dst, 3459, 1+1, LJ_TISNUM); 1208 dasm_put(Dst, 3453, 1+1, LJ_TISNUM);
1202 } else { 1209 } else {
1203 dasm_put(Dst, 3528, 1+1, LJ_TISNUM); 1210 dasm_put(Dst, 3522, 1+1, LJ_TISNUM);
1204 } 1211 }
1205 dasm_put(Dst, 3564, 1+1, FRAME_TYPE, LJ_TNIL); 1212 dasm_put(Dst, 3558, 1+1, FRAME_TYPE, LJ_TNIL);
1206 if (sse) { 1213 if (sse) {
1207 dasm_put(Dst, 3654, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1214 dasm_put(Dst, 3648, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1208 dasm_put(Dst, 3716, 1+1, LJ_TISNUM); 1215 dasm_put(Dst, 3710, 1+1, LJ_TISNUM);
1209 } else { 1216 } else {
1210 dasm_put(Dst, 3746, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1217 dasm_put(Dst, 3740, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1211 dasm_put(Dst, 3805, 1+1, LJ_TISNUM); 1218 dasm_put(Dst, 3799, 1+1, LJ_TISNUM);
1212 } 1219 }
1213 dasm_put(Dst, 3832, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1220 dasm_put(Dst, 3826, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1214 dasm_put(Dst, 3901, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1221 dasm_put(Dst, 3895, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1215 dasm_put(Dst, 3958, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1222 dasm_put(Dst, 3952, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1216 dasm_put(Dst, 4021, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1223 dasm_put(Dst, 4015, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1217 dasm_put(Dst, 4111); 1224 dasm_put(Dst, 4105);
1218 if (sse) { 1225 if (sse) {
1219 dasm_put(Dst, 4123, 1+1, LJ_TISNUM); 1226 dasm_put(Dst, 4117, 1+1, LJ_TISNUM);
1220 } else { 1227 } else {
1221 dasm_put(Dst, 4154, 1+1, LJ_TISNUM); 1228 dasm_put(Dst, 4148, 1+1, LJ_TISNUM);
1222 } 1229 }
1223 dasm_put(Dst, 4179); 1230 dasm_put(Dst, 4173);
1224 if (sse) { 1231 if (sse) {
1225 dasm_put(Dst, 4193, 1+1, LJ_TISNUM); 1232 dasm_put(Dst, 4187, 1+1, LJ_TISNUM);
1226 } else { 1233 } else {
1227 dasm_put(Dst, 4224, 1+1, LJ_TISNUM); 1234 dasm_put(Dst, 4218, 1+1, LJ_TISNUM);
1228 } 1235 }
1229 dasm_put(Dst, 4249); 1236 dasm_put(Dst, 4243);
1230 if (sse) { 1237 if (sse) {
1231 dasm_put(Dst, 4263, 1+1, LJ_TISNUM); 1238 dasm_put(Dst, 4257, 1+1, LJ_TISNUM);
1232 } else { 1239 } else {
1233 dasm_put(Dst, 4294, 1+1, LJ_TISNUM); 1240 dasm_put(Dst, 4288, 1+1, LJ_TISNUM);
1234 } 1241 }
1235 dasm_put(Dst, 4319); 1242 dasm_put(Dst, 4313);
1236 if (sse) { 1243 if (sse) {
1237 dasm_put(Dst, 4335, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1244 dasm_put(Dst, 4329, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1238 } else { 1245 } else {
1239 dasm_put(Dst, 4374, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1246 dasm_put(Dst, 4368, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1240 } 1247 }
1241 dasm_put(Dst, 4407, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1248 dasm_put(Dst, 4401, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1242 dasm_put(Dst, 4472, 1+1, LJ_TISNUM); 1249 dasm_put(Dst, 4466, 1+1, LJ_TISNUM);
1243 if (sse) { 1250 if (sse) {
1244 dasm_put(Dst, 4571); 1251 dasm_put(Dst, 4565);
1245 } else { 1252 } else {
1246 dasm_put(Dst, 4577); 1253 dasm_put(Dst, 4571);
1247 } 1254 }
1248 dasm_put(Dst, 4586); 1255 dasm_put(Dst, 4580);
1249 if (sse) { 1256 if (sse) {
1250 dasm_put(Dst, 4611); 1257 dasm_put(Dst, 4605);
1251 } else { 1258 } else {
1252 dasm_put(Dst, 4617); 1259 dasm_put(Dst, 4611);
1253 } 1260 }
1254 dasm_put(Dst, 4620, 1+2); 1261 dasm_put(Dst, 4614, 1+2);
1255 if (sse) { 1262 if (sse) {
1256 dasm_put(Dst, 4629); 1263 dasm_put(Dst, 4623);
1257 } else { 1264 } else {
1258 dasm_put(Dst, 4637); 1265 dasm_put(Dst, 4631);
1259 } 1266 }
1260 dasm_put(Dst, 4645); 1267 dasm_put(Dst, 4639);
1261 if (sse) { 1268 if (sse) {
1262 dasm_put(Dst, 4648); 1269 dasm_put(Dst, 4642);
1263 } else { 1270 } else {
1264 dasm_put(Dst, 4680); 1271 dasm_put(Dst, 4674);
1265 } 1272 }
1266 dasm_put(Dst, 4699); 1273 dasm_put(Dst, 4693);
1267 if (sse) { 1274 if (sse) {
1268 dasm_put(Dst, 4715, 1+1, LJ_TISNUM); 1275 dasm_put(Dst, 4709, 1+1, LJ_TISNUM);
1269 } else { 1276 } else {
1270 dasm_put(Dst, 4740, 1+1, LJ_TISNUM); 1277 dasm_put(Dst, 4734, 1+1, LJ_TISNUM);
1271 } 1278 }
1272 dasm_put(Dst, 4762); 1279 dasm_put(Dst, 4756);
1273 if (sse) { 1280 if (sse) {
1274 dasm_put(Dst, 4784); 1281 dasm_put(Dst, 4778);
1275 } else { 1282 } else {
1276 dasm_put(Dst, 4810); 1283 dasm_put(Dst, 4804);
1277 } 1284 }
1278 dasm_put(Dst, 4827, 1+2); 1285 dasm_put(Dst, 4821, 1+2);
1279 if (sse) { 1286 if (sse) {
1280 dasm_put(Dst, 4867); 1287 dasm_put(Dst, 4861);
1281 } else { 1288 } else {
1282 dasm_put(Dst, 4875); 1289 dasm_put(Dst, 4869);
1283 } 1290 }
1284 dasm_put(Dst, 4885, 2+1, LJ_TISNUM, LJ_TISNUM); 1291 dasm_put(Dst, 4879, 2+1, LJ_TISNUM, LJ_TISNUM);
1285 if (sse) { 1292 if (sse) {
1286 dasm_put(Dst, 4937, 2+1, LJ_TISNUM, LJ_TISNUM); 1293 dasm_put(Dst, 4931, 2+1, LJ_TISNUM, LJ_TISNUM);
1287 } else { 1294 } else {
1288 dasm_put(Dst, 4984, 2+1, LJ_TISNUM, LJ_TISNUM); 1295 dasm_put(Dst, 4978, 2+1, LJ_TISNUM, LJ_TISNUM);
1289 } 1296 }
1290 if (sse) { 1297 if (sse) {
1291 dasm_put(Dst, 5025, 1+1, LJ_TISNUM, LJ_TISNUM); 1298 dasm_put(Dst, 5019, 1+1, LJ_TISNUM, LJ_TISNUM);
1292 } else { 1299 } else {
1293 dasm_put(Dst, 5096, 1+1, LJ_TISNUM, LJ_TISNUM); 1300 dasm_put(Dst, 5090, 1+1, LJ_TISNUM, LJ_TISNUM);
1294 if (cmov) { 1301 if (cmov) {
1295 dasm_put(Dst, 5149); 1302 dasm_put(Dst, 5143);
1296 } else { 1303 } else {
1297 dasm_put(Dst, 5157); 1304 dasm_put(Dst, 5151);
1298 } 1305 }
1299 dasm_put(Dst, 5088); 1306 dasm_put(Dst, 5082);
1300 } 1307 }
1301 if (sse) { 1308 if (sse) {
1302 dasm_put(Dst, 5178, 1+1, LJ_TISNUM, LJ_TISNUM); 1309 dasm_put(Dst, 5172, 1+1, LJ_TISNUM, LJ_TISNUM);
1303 } else { 1310 } else {
1304 dasm_put(Dst, 5249, 1+1, LJ_TISNUM, LJ_TISNUM); 1311 dasm_put(Dst, 5243, 1+1, LJ_TISNUM, LJ_TISNUM);
1305 if (cmov) { 1312 if (cmov) {
1306 dasm_put(Dst, 5302); 1313 dasm_put(Dst, 5296);
1307 } else { 1314 } else {
1308 dasm_put(Dst, 5310); 1315 dasm_put(Dst, 5304);
1309 } 1316 }
1310 dasm_put(Dst, 5088); 1317 dasm_put(Dst, 5082);
1311 } 1318 }
1312 if (!sse) { 1319 if (!sse) {
1313 dasm_put(Dst, 5331); 1320 dasm_put(Dst, 5325);
1314 } 1321 }
1315 dasm_put(Dst, 5340, 1+1, LJ_TSTR); 1322 dasm_put(Dst, 5334, 1+1, LJ_TSTR);
1316 if (sse) { 1323 if (sse) {
1317 dasm_put(Dst, 5362, Dt5(->len)); 1324 dasm_put(Dst, 5356, Dt5(->len));
1318 } else { 1325 } else {
1319 dasm_put(Dst, 5373, Dt5(->len)); 1326 dasm_put(Dst, 5367, Dt5(->len));
1320 } 1327 }
1321 dasm_put(Dst, 5381, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1328 dasm_put(Dst, 5375, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1322 if (sse) { 1329 if (sse) {
1323 dasm_put(Dst, 5419); 1330 dasm_put(Dst, 5413);
1324 } else { 1331 } else {
1325 dasm_put(Dst, 5429); 1332 dasm_put(Dst, 5423);
1326 } 1333 }
1327 dasm_put(Dst, 5442, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1334 dasm_put(Dst, 5436, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1328 if (sse) { 1335 if (sse) {
1329 dasm_put(Dst, 5477); 1336 dasm_put(Dst, 5471);
1330 } else { 1337 } else {
1331 dasm_put(Dst, 5499); 1338 dasm_put(Dst, 5493);
1332 } 1339 }
1333 dasm_put(Dst, 5519, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1340 dasm_put(Dst, 5513, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1334 dasm_put(Dst, 2142); 1341 dasm_put(Dst, 2142);
1335 if (sse) { 1342 if (sse) {
1336 dasm_put(Dst, 5622); 1343 dasm_put(Dst, 5616);
1337 } else { 1344 } else {
1338 dasm_put(Dst, 5633); 1345 dasm_put(Dst, 5627);
1339 } 1346 }
1340 dasm_put(Dst, 5641, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1347 dasm_put(Dst, 5635, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1341 if (sse) { 1348 if (sse) {
1342 dasm_put(Dst, 5671); 1349 dasm_put(Dst, 5665);
1343 } else { 1350 } else {
1344 dasm_put(Dst, 5678); 1351 dasm_put(Dst, 5672);
1345 } 1352 }
1346 dasm_put(Dst, 5690, sizeof(GCstr)-1); 1353 dasm_put(Dst, 5684, sizeof(GCstr)-1);
1347 dasm_put(Dst, 5765, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1354 dasm_put(Dst, 5759, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1348 dasm_put(Dst, 5824, LJ_TSTR, LJ_TISNUM); 1355 dasm_put(Dst, 5818, LJ_TSTR, LJ_TISNUM);
1349 if (sse) { 1356 if (sse) {
1350 dasm_put(Dst, 5845); 1357 dasm_put(Dst, 5839);
1351 } else { 1358 } else {
1352 dasm_put(Dst, 5852); 1359 dasm_put(Dst, 5846);
1353 } 1360 }
1354 dasm_put(Dst, 5864, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1361 dasm_put(Dst, 5858, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1355 dasm_put(Dst, 5929, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1362 dasm_put(Dst, 5923, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1356 dasm_put(Dst, 5992, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1363 dasm_put(Dst, 5986, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1357 dasm_put(Dst, 6063, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1364 dasm_put(Dst, 6057, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1358 dasm_put(Dst, 6148, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1365 dasm_put(Dst, 6142, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1359 dasm_put(Dst, 6218, 1+1, LJ_TTAB); 1366 dasm_put(Dst, 6212, 1+1, LJ_TTAB);
1360 if (sse) { 1367 if (sse) {
1361 dasm_put(Dst, 6286); 1368 dasm_put(Dst, 6280);
1362 } else { 1369 } else {
1363 dasm_put(Dst, 6296); 1370 dasm_put(Dst, 6290);
1364 } 1371 }
1365 if (sse) { 1372 if (sse) {
1366 dasm_put(Dst, 6307, 1+1, LJ_TISNUM); 1373 dasm_put(Dst, 6301, 1+1, LJ_TISNUM);
1367 } else { 1374 } else {
1368 dasm_put(Dst, 6364, 1+1, LJ_TISNUM); 1375 dasm_put(Dst, 6358, 1+1, LJ_TISNUM);
1369 } 1376 }
1370 if (sse) { 1377 if (sse) {
1371 dasm_put(Dst, 6408, 1+1, LJ_TISNUM); 1378 dasm_put(Dst, 6402, 1+1, LJ_TISNUM);
1372 } else { 1379 } else {
1373 dasm_put(Dst, 6456, 1+1, LJ_TISNUM); 1380 dasm_put(Dst, 6450, 1+1, LJ_TISNUM);
1374 } 1381 }
1375 dasm_put(Dst, 6496, LJ_TISNUM); 1382 dasm_put(Dst, 6490, LJ_TISNUM);
1376 if (sse) { 1383 if (sse) {
1377 dasm_put(Dst, 6523); 1384 dasm_put(Dst, 6517);
1378 } else { 1385 } else {
1379 dasm_put(Dst, 6540); 1386 dasm_put(Dst, 6534);
1380 } 1387 }
1381 dasm_put(Dst, 6553); 1388 dasm_put(Dst, 6547);
1382 if (sse) { 1389 if (sse) {
1383 dasm_put(Dst, 6561, 1+1, LJ_TISNUM); 1390 dasm_put(Dst, 6555, 1+1, LJ_TISNUM);
1384 } else { 1391 } else {
1385 dasm_put(Dst, 6609, 1+1, LJ_TISNUM); 1392 dasm_put(Dst, 6603, 1+1, LJ_TISNUM);
1386 } 1393 }
1387 dasm_put(Dst, 6496, LJ_TISNUM); 1394 dasm_put(Dst, 6490, LJ_TISNUM);
1388 if (sse) { 1395 if (sse) {
1389 dasm_put(Dst, 6649); 1396 dasm_put(Dst, 6643);
1390 } else { 1397 } else {
1391 dasm_put(Dst, 6666); 1398 dasm_put(Dst, 6660);
1392 } 1399 }
1393 dasm_put(Dst, 6553); 1400 dasm_put(Dst, 6547);
1394 if (sse) { 1401 if (sse) {
1395 dasm_put(Dst, 6679, 1+1, LJ_TISNUM); 1402 dasm_put(Dst, 6673, 1+1, LJ_TISNUM);
1396 } else { 1403 } else {
1397 dasm_put(Dst, 6727, 1+1, LJ_TISNUM); 1404 dasm_put(Dst, 6721, 1+1, LJ_TISNUM);
1398 } 1405 }
1399 dasm_put(Dst, 6496, LJ_TISNUM); 1406 dasm_put(Dst, 6490, LJ_TISNUM);
1400 if (sse) { 1407 if (sse) {
1401 dasm_put(Dst, 6767); 1408 dasm_put(Dst, 6761);
1402 } else { 1409 } else {
1403 dasm_put(Dst, 6784); 1410 dasm_put(Dst, 6778);
1404 } 1411 }
1405 dasm_put(Dst, 6553); 1412 dasm_put(Dst, 6547);
1406 if (sse) { 1413 if (sse) {
1407 dasm_put(Dst, 6797, 1+1, LJ_TISNUM); 1414 dasm_put(Dst, 6791, 1+1, LJ_TISNUM);
1408 } else { 1415 } else {
1409 dasm_put(Dst, 6845, 1+1, LJ_TISNUM); 1416 dasm_put(Dst, 6839, 1+1, LJ_TISNUM);
1410 } 1417 }
1411 dasm_put(Dst, 6885); 1418 dasm_put(Dst, 6879);
1412 if (sse) { 1419 if (sse) {
1413 dasm_put(Dst, 6892, 1+1, LJ_TISNUM); 1420 dasm_put(Dst, 6886, 1+1, LJ_TISNUM);
1414 } else { 1421 } else {
1415 dasm_put(Dst, 6940, 1+1, LJ_TISNUM); 1422 dasm_put(Dst, 6934, 1+1, LJ_TISNUM);
1416 } 1423 }
1417 dasm_put(Dst, 6980); 1424 dasm_put(Dst, 6974);
1418 if (sse) { 1425 if (sse) {
1419 dasm_put(Dst, 6984); 1426 dasm_put(Dst, 6978);
1420 } else { 1427 } else {
1421 dasm_put(Dst, 6996); 1428 dasm_put(Dst, 6990);
1422 } 1429 }
1423 dasm_put(Dst, 7009); 1430 dasm_put(Dst, 7003);
1424 if (sse) { 1431 if (sse) {
1425 dasm_put(Dst, 7020, 2+1, LJ_TISNUM, LJ_TISNUM); 1432 dasm_put(Dst, 7014, 2+1, LJ_TISNUM, LJ_TISNUM);
1426 } else { 1433 } else {
1427 dasm_put(Dst, 7094, 2+1, LJ_TISNUM, LJ_TISNUM); 1434 dasm_put(Dst, 7088, 2+1, LJ_TISNUM, LJ_TISNUM);
1428 } 1435 }
1429 dasm_put(Dst, 7160); 1436 dasm_put(Dst, 7154);
1430 if (sse) { 1437 if (sse) {
1431 dasm_put(Dst, 7169, 2+1, LJ_TISNUM, LJ_TISNUM); 1438 dasm_put(Dst, 7163, 2+1, LJ_TISNUM, LJ_TISNUM);
1432 } else { 1439 } else {
1433 dasm_put(Dst, 7243, 2+1, LJ_TISNUM, LJ_TISNUM); 1440 dasm_put(Dst, 7237, 2+1, LJ_TISNUM, LJ_TISNUM);
1434 } 1441 }
1435 dasm_put(Dst, 7309); 1442 dasm_put(Dst, 7303);
1436 if (sse) { 1443 if (sse) {
1437 dasm_put(Dst, 7319, 2+1, LJ_TISNUM, LJ_TISNUM); 1444 dasm_put(Dst, 7313, 2+1, LJ_TISNUM, LJ_TISNUM);
1438 } else { 1445 } else {
1439 dasm_put(Dst, 7393, 2+1, LJ_TISNUM, LJ_TISNUM); 1446 dasm_put(Dst, 7387, 2+1, LJ_TISNUM, LJ_TISNUM);
1440 } 1447 }
1441 dasm_put(Dst, 7459); 1448 dasm_put(Dst, 7453);
1442 if (sse) { 1449 if (sse) {
1443 dasm_put(Dst, 7469, 2+1, LJ_TISNUM, LJ_TISNUM); 1450 dasm_put(Dst, 7463, 2+1, LJ_TISNUM, LJ_TISNUM);
1444 } else { 1451 } else {
1445 dasm_put(Dst, 7543, 2+1, LJ_TISNUM, LJ_TISNUM); 1452 dasm_put(Dst, 7537, 2+1, LJ_TISNUM, LJ_TISNUM);
1446 } 1453 }
1447 dasm_put(Dst, 7609); 1454 dasm_put(Dst, 7603);
1448 if (sse) { 1455 if (sse) {
1449 dasm_put(Dst, 7618, 2+1, LJ_TISNUM, LJ_TISNUM); 1456 dasm_put(Dst, 7612, 2+1, LJ_TISNUM, LJ_TISNUM);
1450 } else { 1457 } else {
1451 dasm_put(Dst, 7692, 2+1, LJ_TISNUM, LJ_TISNUM); 1458 dasm_put(Dst, 7686, 2+1, LJ_TISNUM, LJ_TISNUM);
1452 } 1459 }
1453 dasm_put(Dst, 7758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1460 dasm_put(Dst, 7752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1454 dasm_put(Dst, 7836, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1461 dasm_put(Dst, 7830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1455 dasm_put(Dst, 7960, Dt1(->top), Dt1(->base), Dt1(->top)); 1462 dasm_put(Dst, 7954, Dt1(->top), Dt1(->base), Dt1(->top));
1456#if LJ_HASJIT 1463#if LJ_HASJIT
1457 dasm_put(Dst, 7998, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1464 dasm_put(Dst, 7992, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1458#endif 1465#endif
1459 dasm_put(Dst, 8029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1466 dasm_put(Dst, 8023, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1460 dasm_put(Dst, 8080, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1467 dasm_put(Dst, 8074, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1461#if LJ_HASJIT 1468#if LJ_HASJIT
1462 dasm_put(Dst, 8146, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1469 dasm_put(Dst, 8140, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1463#endif 1470#endif
1464 dasm_put(Dst, 8192); 1471 dasm_put(Dst, 8186);
1465#if LJ_HASJIT 1472#if LJ_HASJIT
1466 dasm_put(Dst, 8024); 1473 dasm_put(Dst, 8018);
1467#endif 1474#endif
1468 dasm_put(Dst, 8199); 1475 dasm_put(Dst, 8193);
1469#if LJ_HASJIT 1476#if LJ_HASJIT
1470 dasm_put(Dst, 8202); 1477 dasm_put(Dst, 8196);
1471#endif 1478#endif
1472 dasm_put(Dst, 8212, Dt1(->base), Dt1(->top)); 1479 dasm_put(Dst, 8206, Dt1(->base), Dt1(->top));
1473#if LJ_HASJIT 1480#if LJ_HASJIT
1474 dasm_put(Dst, 8246); 1481 dasm_put(Dst, 8240);
1475#endif 1482#endif
1476 dasm_put(Dst, 8251, Dt1(->base), Dt1(->top)); 1483 dasm_put(Dst, 8245, Dt1(->base), Dt1(->top));
1477#if LJ_HASJIT 1484#if LJ_HASJIT
1478 dasm_put(Dst, 8280, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1485 dasm_put(Dst, 8274, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1479#endif 1486#endif
1480 dasm_put(Dst, 8423); 1487 dasm_put(Dst, 8417);
1481#if LJ_HASJIT 1488#if LJ_HASJIT
1482 dasm_put(Dst, 8426, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1489 dasm_put(Dst, 8420, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1483#endif 1490#endif
1484 dasm_put(Dst, 8504); 1491 dasm_put(Dst, 8498);
1485 if (!sse) { 1492 if (!sse) {
1486 dasm_put(Dst, 8507); 1493 dasm_put(Dst, 8501);
1487 } 1494 }
1488 dasm_put(Dst, 8552); 1495 dasm_put(Dst, 8546);
1489 if (!sse) { 1496 if (!sse) {
1490 dasm_put(Dst, 8654); 1497 dasm_put(Dst, 8648);
1491 } 1498 }
1492 dasm_put(Dst, 8699); 1499 dasm_put(Dst, 8693);
1493 if (!sse) { 1500 if (!sse) {
1494 dasm_put(Dst, 8801); 1501 dasm_put(Dst, 8795);
1495 } 1502 }
1496 dasm_put(Dst, 8840); 1503 dasm_put(Dst, 8834);
1497 if (sse) { 1504 if (sse) {
1498 dasm_put(Dst, 8945); 1505 dasm_put(Dst, 8939);
1499 } else { 1506 } else {
1500 dasm_put(Dst, 9075); 1507 dasm_put(Dst, 9069);
1501 } 1508 }
1502 dasm_put(Dst, 9122); 1509 dasm_put(Dst, 9116);
1503 if (!sse) { 1510 if (!sse) {
1504 dasm_put(Dst, 9196); 1511 dasm_put(Dst, 9190);
1505 if (cmov) { 1512 if (cmov) {
1506 dasm_put(Dst, 9207); 1513 dasm_put(Dst, 9201);
1507 } else { 1514 } else {
1508 dasm_put(Dst, 9211); 1515 dasm_put(Dst, 9205);
1509 } 1516 }
1510 dasm_put(Dst, 9218); 1517 dasm_put(Dst, 9212);
1511 dasm_put(Dst, 9292); 1518 dasm_put(Dst, 9286);
1512 dasm_put(Dst, 9392); 1519 dasm_put(Dst, 9386);
1513 if (cmov) { 1520 if (cmov) {
1514 dasm_put(Dst, 9395); 1521 dasm_put(Dst, 9389);
1515 } else { 1522 } else {
1516 dasm_put(Dst, 9399); 1523 dasm_put(Dst, 9393);
1517 } 1524 }
1518 dasm_put(Dst, 9406); 1525 dasm_put(Dst, 9400);
1519 if (cmov) { 1526 if (cmov) {
1520 dasm_put(Dst, 9207); 1527 dasm_put(Dst, 9201);
1521 } else { 1528 } else {
1522 dasm_put(Dst, 9211); 1529 dasm_put(Dst, 9205);
1523 } 1530 }
1524 dasm_put(Dst, 9424); 1531 dasm_put(Dst, 9418);
1525 } else { 1532 } else {
1526 dasm_put(Dst, 9503); 1533 dasm_put(Dst, 9497);
1527 } 1534 }
1528 dasm_put(Dst, 9506); 1535 dasm_put(Dst, 9500);
1529 dasm_put(Dst, 9591); 1536 dasm_put(Dst, 9585);
1530 dasm_put(Dst, 9722); 1537 dasm_put(Dst, 9716);
1531 dasm_put(Dst, 9921); 1538 dasm_put(Dst, 9915);
1532#if LJ_HASJIT 1539#if LJ_HASJIT
1533 if (sse) { 1540 if (sse) {
1534 dasm_put(Dst, 9944); 1541 dasm_put(Dst, 9938);
1535 dasm_put(Dst, 10001); 1542 dasm_put(Dst, 9995);
1536 dasm_put(Dst, 10092); 1543 dasm_put(Dst, 10086);
1537 } else { 1544 } else {
1538 dasm_put(Dst, 10134); 1545 dasm_put(Dst, 10128);
1539 dasm_put(Dst, 10226); 1546 dasm_put(Dst, 10220);
1540 } 1547 }
1541 dasm_put(Dst, 10272); 1548 dasm_put(Dst, 10266);
1542#endif 1549#endif
1543 dasm_put(Dst, 10276); 1550 dasm_put(Dst, 10270);
1544 if (sse) { 1551 if (sse) {
1545 dasm_put(Dst, 10279); 1552 dasm_put(Dst, 10273);
1546 dasm_put(Dst, 10384); 1553 dasm_put(Dst, 10378);
1547 dasm_put(Dst, 10467); 1554 dasm_put(Dst, 10461);
1548 } else { 1555 } else {
1549 dasm_put(Dst, 10539); 1556 dasm_put(Dst, 10533);
1550 dasm_put(Dst, 10622); 1557 dasm_put(Dst, 10616);
1551 if (cmov) { 1558 if (cmov) {
1552 dasm_put(Dst, 10677); 1559 dasm_put(Dst, 10671);
1553 } else { 1560 } else {
1554 dasm_put(Dst, 10696); 1561 dasm_put(Dst, 10690);
1555 } 1562 }
1556 dasm_put(Dst, 10272); 1563 dasm_put(Dst, 10266);
1557 } 1564 }
1558 dasm_put(Dst, 10737); 1565 dasm_put(Dst, 10731);
1559} 1566}
1560 1567
1561/* Generate the code for a single instruction. */ 1568/* Generate the code for a single instruction. */
1562static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1569static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1563{ 1570{
1564 int vk = 0; 1571 int vk = 0;
1565 dasm_put(Dst, 10791, defop); 1572 dasm_put(Dst, 10785, defop);
1566 1573
1567 switch (op) { 1574 switch (op) {
1568 1575
@@ -1571,634 +1578,634 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1571 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1578 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1572 1579
1573 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1580 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1574 dasm_put(Dst, 10793, LJ_TISNUM, LJ_TISNUM); 1581 dasm_put(Dst, 10787, LJ_TISNUM, LJ_TISNUM);
1575 if (sse) { 1582 if (sse) {
1576 dasm_put(Dst, 10814); 1583 dasm_put(Dst, 10808);
1577 } else { 1584 } else {
1578 dasm_put(Dst, 10829); 1585 dasm_put(Dst, 10823);
1579 if (cmov) { 1586 if (cmov) {
1580 dasm_put(Dst, 10839); 1587 dasm_put(Dst, 10833);
1581 } else { 1588 } else {
1582 dasm_put(Dst, 10845); 1589 dasm_put(Dst, 10839);
1583 } 1590 }
1584 } 1591 }
1585 switch (op) { 1592 switch (op) {
1586 case BC_ISLT: 1593 case BC_ISLT:
1587 dasm_put(Dst, 10852); 1594 dasm_put(Dst, 10846);
1588 break; 1595 break;
1589 case BC_ISGE: 1596 case BC_ISGE:
1590 dasm_put(Dst, 10087); 1597 dasm_put(Dst, 10081);
1591 break; 1598 break;
1592 case BC_ISLE: 1599 case BC_ISLE:
1593 dasm_put(Dst, 6213); 1600 dasm_put(Dst, 6207);
1594 break; 1601 break;
1595 case BC_ISGT: 1602 case BC_ISGT:
1596 dasm_put(Dst, 10857); 1603 dasm_put(Dst, 10851);
1597 break; 1604 break;
1598 default: break; /* Shut up GCC. */ 1605 default: break; /* Shut up GCC. */
1599 } 1606 }
1600 dasm_put(Dst, 10862, -BCBIAS_J*4); 1607 dasm_put(Dst, 10856, -BCBIAS_J*4);
1601 break; 1608 break;
1602 1609
1603 case BC_ISEQV: case BC_ISNEV: 1610 case BC_ISEQV: case BC_ISNEV:
1604 vk = op == BC_ISEQV; 1611 vk = op == BC_ISEQV;
1605 dasm_put(Dst, 10895, LJ_TISNUM, LJ_TISNUM); 1612 dasm_put(Dst, 10889, LJ_TISNUM, LJ_TISNUM);
1606 if (sse) { 1613 if (sse) {
1607 dasm_put(Dst, 10921); 1614 dasm_put(Dst, 10915);
1608 } else { 1615 } else {
1609 dasm_put(Dst, 10933); 1616 dasm_put(Dst, 10927);
1610 if (cmov) { 1617 if (cmov) {
1611 dasm_put(Dst, 10839); 1618 dasm_put(Dst, 10833);
1612 } else { 1619 } else {
1613 dasm_put(Dst, 10845); 1620 dasm_put(Dst, 10839);
1614 } 1621 }
1615 } 1622 }
1616 iseqne_fp: 1623 iseqne_fp:
1617 if (vk) { 1624 if (vk) {
1618 dasm_put(Dst, 10940); 1625 dasm_put(Dst, 10934);
1619 } else { 1626 } else {
1620 dasm_put(Dst, 10949); 1627 dasm_put(Dst, 10943);
1621 } 1628 }
1622 iseqne_end: 1629 iseqne_end:
1623 if (vk) { 1630 if (vk) {
1624 dasm_put(Dst, 10958, -BCBIAS_J*4); 1631 dasm_put(Dst, 10952, -BCBIAS_J*4);
1625 } else { 1632 } else {
1626 dasm_put(Dst, 10973, -BCBIAS_J*4); 1633 dasm_put(Dst, 10967, -BCBIAS_J*4);
1627 } 1634 }
1628 dasm_put(Dst, 10876); 1635 dasm_put(Dst, 10870);
1629 if (op == BC_ISEQV || op == BC_ISNEV) { 1636 if (op == BC_ISEQV || op == BC_ISNEV) {
1630 dasm_put(Dst, 10988, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1637 dasm_put(Dst, 10982, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1631 if (vk) { 1638 if (vk) {
1632 dasm_put(Dst, 11046); 1639 dasm_put(Dst, 11040);
1633 } else { 1640 } else {
1634 dasm_put(Dst, 11050); 1641 dasm_put(Dst, 11044);
1635 } 1642 }
1636 dasm_put(Dst, 11056); 1643 dasm_put(Dst, 11050);
1637 } 1644 }
1638 break; 1645 break;
1639 case BC_ISEQS: case BC_ISNES: 1646 case BC_ISEQS: case BC_ISNES:
1640 vk = op == BC_ISEQS; 1647 vk = op == BC_ISEQS;
1641 dasm_put(Dst, 11061, LJ_TSTR); 1648 dasm_put(Dst, 11055, LJ_TSTR);
1642 iseqne_test: 1649 iseqne_test:
1643 if (vk) { 1650 if (vk) {
1644 dasm_put(Dst, 10944); 1651 dasm_put(Dst, 10938);
1645 } else { 1652 } else {
1646 dasm_put(Dst, 2835); 1653 dasm_put(Dst, 2829);
1647 } 1654 }
1648 goto iseqne_end; 1655 goto iseqne_end;
1649 case BC_ISEQN: case BC_ISNEN: 1656 case BC_ISEQN: case BC_ISNEN:
1650 vk = op == BC_ISEQN; 1657 vk = op == BC_ISEQN;
1651 dasm_put(Dst, 11084, LJ_TISNUM); 1658 dasm_put(Dst, 11078, LJ_TISNUM);
1652 if (sse) { 1659 if (sse) {
1653 dasm_put(Dst, 11098); 1660 dasm_put(Dst, 11092);
1654 } else { 1661 } else {
1655 dasm_put(Dst, 11110); 1662 dasm_put(Dst, 11104);
1656 if (cmov) { 1663 if (cmov) {
1657 dasm_put(Dst, 10839); 1664 dasm_put(Dst, 10833);
1658 } else { 1665 } else {
1659 dasm_put(Dst, 10845); 1666 dasm_put(Dst, 10839);
1660 } 1667 }
1661 } 1668 }
1662 goto iseqne_fp; 1669 goto iseqne_fp;
1663 case BC_ISEQP: case BC_ISNEP: 1670 case BC_ISEQP: case BC_ISNEP:
1664 vk = op == BC_ISEQP; 1671 vk = op == BC_ISEQP;
1665 dasm_put(Dst, 11117); 1672 dasm_put(Dst, 11111);
1666 goto iseqne_test; 1673 goto iseqne_test;
1667 1674
1668 /* -- Unary test and copy ops ------------------------------------------- */ 1675 /* -- Unary test and copy ops ------------------------------------------- */
1669 1676
1670 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1677 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1671 dasm_put(Dst, 11128, LJ_TISTRUECOND); 1678 dasm_put(Dst, 11122, LJ_TISTRUECOND);
1672 if (op == BC_IST || op == BC_ISTC) { 1679 if (op == BC_IST || op == BC_ISTC) {
1673 dasm_put(Dst, 11140); 1680 dasm_put(Dst, 11134);
1674 } else { 1681 } else {
1675 dasm_put(Dst, 11145); 1682 dasm_put(Dst, 11139);
1676 } 1683 }
1677 if (op == BC_ISTC || op == BC_ISFC) { 1684 if (op == BC_ISTC || op == BC_ISFC) {
1678 dasm_put(Dst, 11150); 1685 dasm_put(Dst, 11144);
1679 } 1686 }
1680 dasm_put(Dst, 11161, -BCBIAS_J*4); 1687 dasm_put(Dst, 11155, -BCBIAS_J*4);
1681 break; 1688 break;
1682 1689
1683 /* -- Unary ops --------------------------------------------------------- */ 1690 /* -- Unary ops --------------------------------------------------------- */
1684 1691
1685 case BC_MOV: 1692 case BC_MOV:
1686 dasm_put(Dst, 11192); 1693 dasm_put(Dst, 11186);
1687 break; 1694 break;
1688 case BC_NOT: 1695 case BC_NOT:
1689 dasm_put(Dst, 11225, LJ_TISTRUECOND, LJ_TTRUE); 1696 dasm_put(Dst, 11219, LJ_TISTRUECOND, LJ_TTRUE);
1690 break; 1697 break;
1691 case BC_UNM: 1698 case BC_UNM:
1692 dasm_put(Dst, 11260, LJ_TISNUM); 1699 dasm_put(Dst, 11254, LJ_TISNUM);
1693 if (sse) { 1700 if (sse) {
1694 dasm_put(Dst, 11271); 1701 dasm_put(Dst, 11265);
1695 } else { 1702 } else {
1696 dasm_put(Dst, 11301); 1703 dasm_put(Dst, 11295);
1697 } 1704 }
1698 dasm_put(Dst, 10876); 1705 dasm_put(Dst, 10870);
1699 break; 1706 break;
1700 case BC_LEN: 1707 case BC_LEN:
1701 dasm_put(Dst, 11310, LJ_TSTR); 1708 dasm_put(Dst, 11304, LJ_TSTR);
1702 if (sse) { 1709 if (sse) {
1703 dasm_put(Dst, 11324, Dt5(->len)); 1710 dasm_put(Dst, 11318, Dt5(->len));
1704 } else { 1711 } else {
1705 dasm_put(Dst, 11342, Dt5(->len)); 1712 dasm_put(Dst, 11336, Dt5(->len));
1706 } 1713 }
1707 dasm_put(Dst, 11351, LJ_TTAB); 1714 dasm_put(Dst, 11345, LJ_TTAB);
1708 if (sse) { 1715 if (sse) {
1709 dasm_put(Dst, 11391); 1716 dasm_put(Dst, 11385);
1710 } else { 1717 } else {
1711 dasm_put(Dst, 11400); 1718 dasm_put(Dst, 11394);
1712 } 1719 }
1713 dasm_put(Dst, 11410); 1720 dasm_put(Dst, 11404);
1714 break; 1721 break;
1715 1722
1716 /* -- Binary ops -------------------------------------------------------- */ 1723 /* -- Binary ops -------------------------------------------------------- */
1717 1724
1718 1725
1719 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1726 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1720 dasm_put(Dst, 11420); 1727 dasm_put(Dst, 11414);
1721 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1728 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1722 switch (vk) { 1729 switch (vk) {
1723 case 0: 1730 case 0:
1724 dasm_put(Dst, 11428, LJ_TISNUM); 1731 dasm_put(Dst, 11422, LJ_TISNUM);
1725 if (sse) { 1732 if (sse) {
1726 dasm_put(Dst, 11440); 1733 dasm_put(Dst, 11434);
1727 } else { 1734 } else {
1728 dasm_put(Dst, 11454); 1735 dasm_put(Dst, 11448);
1729 } 1736 }
1730 break; 1737 break;
1731 case 1: 1738 case 1:
1732 dasm_put(Dst, 11462, LJ_TISNUM); 1739 dasm_put(Dst, 11456, LJ_TISNUM);
1733 if (sse) { 1740 if (sse) {
1734 dasm_put(Dst, 11474); 1741 dasm_put(Dst, 11468);
1735 } else { 1742 } else {
1736 dasm_put(Dst, 11488); 1743 dasm_put(Dst, 11482);
1737 } 1744 }
1738 break; 1745 break;
1739 default: 1746 default:
1740 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1747 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1741 if (sse) { 1748 if (sse) {
1742 dasm_put(Dst, 11518); 1749 dasm_put(Dst, 11512);
1743 } else { 1750 } else {
1744 dasm_put(Dst, 11532); 1751 dasm_put(Dst, 11526);
1745 } 1752 }
1746 break; 1753 break;
1747 } 1754 }
1748 if (sse) { 1755 if (sse) {
1749 dasm_put(Dst, 11294); 1756 dasm_put(Dst, 11288);
1750 } else { 1757 } else {
1751 dasm_put(Dst, 11306); 1758 dasm_put(Dst, 11300);
1752 } 1759 }
1753 dasm_put(Dst, 10876); 1760 dasm_put(Dst, 10870);
1754 break; 1761 break;
1755 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1762 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1756 dasm_put(Dst, 11420); 1763 dasm_put(Dst, 11414);
1757 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1764 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1758 switch (vk) { 1765 switch (vk) {
1759 case 0: 1766 case 0:
1760 dasm_put(Dst, 11428, LJ_TISNUM); 1767 dasm_put(Dst, 11422, LJ_TISNUM);
1761 if (sse) { 1768 if (sse) {
1762 dasm_put(Dst, 11540); 1769 dasm_put(Dst, 11534);
1763 } else { 1770 } else {
1764 dasm_put(Dst, 11554); 1771 dasm_put(Dst, 11548);
1765 } 1772 }
1766 break; 1773 break;
1767 case 1: 1774 case 1:
1768 dasm_put(Dst, 11462, LJ_TISNUM); 1775 dasm_put(Dst, 11456, LJ_TISNUM);
1769 if (sse) { 1776 if (sse) {
1770 dasm_put(Dst, 11562); 1777 dasm_put(Dst, 11556);
1771 } else { 1778 } else {
1772 dasm_put(Dst, 11576); 1779 dasm_put(Dst, 11570);
1773 } 1780 }
1774 break; 1781 break;
1775 default: 1782 default:
1776 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1783 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1777 if (sse) { 1784 if (sse) {
1778 dasm_put(Dst, 11584); 1785 dasm_put(Dst, 11578);
1779 } else { 1786 } else {
1780 dasm_put(Dst, 11598); 1787 dasm_put(Dst, 11592);
1781 } 1788 }
1782 break; 1789 break;
1783 } 1790 }
1784 if (sse) { 1791 if (sse) {
1785 dasm_put(Dst, 11294); 1792 dasm_put(Dst, 11288);
1786 } else { 1793 } else {
1787 dasm_put(Dst, 11306); 1794 dasm_put(Dst, 11300);
1788 } 1795 }
1789 dasm_put(Dst, 10876); 1796 dasm_put(Dst, 10870);
1790 break; 1797 break;
1791 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1798 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1792 dasm_put(Dst, 11420); 1799 dasm_put(Dst, 11414);
1793 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1800 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1794 switch (vk) { 1801 switch (vk) {
1795 case 0: 1802 case 0:
1796 dasm_put(Dst, 11428, LJ_TISNUM); 1803 dasm_put(Dst, 11422, LJ_TISNUM);
1797 if (sse) { 1804 if (sse) {
1798 dasm_put(Dst, 11606); 1805 dasm_put(Dst, 11600);
1799 } else { 1806 } else {
1800 dasm_put(Dst, 11620); 1807 dasm_put(Dst, 11614);
1801 } 1808 }
1802 break; 1809 break;
1803 case 1: 1810 case 1:
1804 dasm_put(Dst, 11462, LJ_TISNUM); 1811 dasm_put(Dst, 11456, LJ_TISNUM);
1805 if (sse) { 1812 if (sse) {
1806 dasm_put(Dst, 11628); 1813 dasm_put(Dst, 11622);
1807 } else { 1814 } else {
1808 dasm_put(Dst, 11642); 1815 dasm_put(Dst, 11636);
1809 } 1816 }
1810 break; 1817 break;
1811 default: 1818 default:
1812 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1819 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1813 if (sse) { 1820 if (sse) {
1814 dasm_put(Dst, 11650); 1821 dasm_put(Dst, 11644);
1815 } else { 1822 } else {
1816 dasm_put(Dst, 11664); 1823 dasm_put(Dst, 11658);
1817 } 1824 }
1818 break; 1825 break;
1819 } 1826 }
1820 if (sse) { 1827 if (sse) {
1821 dasm_put(Dst, 11294); 1828 dasm_put(Dst, 11288);
1822 } else { 1829 } else {
1823 dasm_put(Dst, 11306); 1830 dasm_put(Dst, 11300);
1824 } 1831 }
1825 dasm_put(Dst, 10876); 1832 dasm_put(Dst, 10870);
1826 break; 1833 break;
1827 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1834 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1828 dasm_put(Dst, 11420); 1835 dasm_put(Dst, 11414);
1829 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1836 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1830 switch (vk) { 1837 switch (vk) {
1831 case 0: 1838 case 0:
1832 dasm_put(Dst, 11428, LJ_TISNUM); 1839 dasm_put(Dst, 11422, LJ_TISNUM);
1833 if (sse) { 1840 if (sse) {
1834 dasm_put(Dst, 11672); 1841 dasm_put(Dst, 11666);
1835 } else { 1842 } else {
1836 dasm_put(Dst, 11686); 1843 dasm_put(Dst, 11680);
1837 } 1844 }
1838 break; 1845 break;
1839 case 1: 1846 case 1:
1840 dasm_put(Dst, 11462, LJ_TISNUM); 1847 dasm_put(Dst, 11456, LJ_TISNUM);
1841 if (sse) { 1848 if (sse) {
1842 dasm_put(Dst, 11694); 1849 dasm_put(Dst, 11688);
1843 } else { 1850 } else {
1844 dasm_put(Dst, 11708); 1851 dasm_put(Dst, 11702);
1845 } 1852 }
1846 break; 1853 break;
1847 default: 1854 default:
1848 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1855 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1849 if (sse) { 1856 if (sse) {
1850 dasm_put(Dst, 11716); 1857 dasm_put(Dst, 11710);
1851 } else { 1858 } else {
1852 dasm_put(Dst, 11730); 1859 dasm_put(Dst, 11724);
1853 } 1860 }
1854 break; 1861 break;
1855 } 1862 }
1856 if (sse) { 1863 if (sse) {
1857 dasm_put(Dst, 11294); 1864 dasm_put(Dst, 11288);
1858 } else { 1865 } else {
1859 dasm_put(Dst, 11306); 1866 dasm_put(Dst, 11300);
1860 } 1867 }
1861 dasm_put(Dst, 10876); 1868 dasm_put(Dst, 10870);
1862 break; 1869 break;
1863 case BC_MODVN: 1870 case BC_MODVN:
1864 dasm_put(Dst, 11420); 1871 dasm_put(Dst, 11414);
1865 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1872 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1866 switch (vk) { 1873 switch (vk) {
1867 case 0: 1874 case 0:
1868 dasm_put(Dst, 11428, LJ_TISNUM); 1875 dasm_put(Dst, 11422, LJ_TISNUM);
1869 if (sse) { 1876 if (sse) {
1870 dasm_put(Dst, 11738); 1877 dasm_put(Dst, 11732);
1871 } else { 1878 } else {
1872 dasm_put(Dst, 11752); 1879 dasm_put(Dst, 11746);
1873 } 1880 }
1874 break; 1881 break;
1875 case 1: 1882 case 1:
1876 dasm_put(Dst, 11462, LJ_TISNUM); 1883 dasm_put(Dst, 11456, LJ_TISNUM);
1877 if (sse) { 1884 if (sse) {
1878 dasm_put(Dst, 11760); 1885 dasm_put(Dst, 11754);
1879 } else { 1886 } else {
1880 dasm_put(Dst, 11774); 1887 dasm_put(Dst, 11768);
1881 } 1888 }
1882 break; 1889 break;
1883 default: 1890 default:
1884 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1891 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1885 if (sse) { 1892 if (sse) {
1886 dasm_put(Dst, 11782); 1893 dasm_put(Dst, 11776);
1887 } else { 1894 } else {
1888 dasm_put(Dst, 11796); 1895 dasm_put(Dst, 11790);
1889 } 1896 }
1890 break; 1897 break;
1891 } 1898 }
1892 dasm_put(Dst, 11804); 1899 dasm_put(Dst, 11798);
1893 if (sse) { 1900 if (sse) {
1894 dasm_put(Dst, 11294); 1901 dasm_put(Dst, 11288);
1895 } else { 1902 } else {
1896 dasm_put(Dst, 11306); 1903 dasm_put(Dst, 11300);
1897 } 1904 }
1898 dasm_put(Dst, 10876); 1905 dasm_put(Dst, 10870);
1899 break; 1906 break;
1900 case BC_MODNV: case BC_MODVV: 1907 case BC_MODNV: case BC_MODVV:
1901 dasm_put(Dst, 11420); 1908 dasm_put(Dst, 11414);
1902 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1909 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1903 switch (vk) { 1910 switch (vk) {
1904 case 0: 1911 case 0:
1905 dasm_put(Dst, 11428, LJ_TISNUM); 1912 dasm_put(Dst, 11422, LJ_TISNUM);
1906 if (sse) { 1913 if (sse) {
1907 dasm_put(Dst, 11738); 1914 dasm_put(Dst, 11732);
1908 } else { 1915 } else {
1909 dasm_put(Dst, 11752); 1916 dasm_put(Dst, 11746);
1910 } 1917 }
1911 break; 1918 break;
1912 case 1: 1919 case 1:
1913 dasm_put(Dst, 11462, LJ_TISNUM); 1920 dasm_put(Dst, 11456, LJ_TISNUM);
1914 if (sse) { 1921 if (sse) {
1915 dasm_put(Dst, 11760); 1922 dasm_put(Dst, 11754);
1916 } else { 1923 } else {
1917 dasm_put(Dst, 11774); 1924 dasm_put(Dst, 11768);
1918 } 1925 }
1919 break; 1926 break;
1920 default: 1927 default:
1921 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1928 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1922 if (sse) { 1929 if (sse) {
1923 dasm_put(Dst, 11782); 1930 dasm_put(Dst, 11776);
1924 } else { 1931 } else {
1925 dasm_put(Dst, 11796); 1932 dasm_put(Dst, 11790);
1926 } 1933 }
1927 break; 1934 break;
1928 } 1935 }
1929 dasm_put(Dst, 11810); 1936 dasm_put(Dst, 11804);
1930 break; 1937 break;
1931 case BC_POW: 1938 case BC_POW:
1932 dasm_put(Dst, 11420); 1939 dasm_put(Dst, 11414);
1933 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1940 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1934 switch (vk) { 1941 switch (vk) {
1935 case 0: 1942 case 0:
1936 dasm_put(Dst, 11428, LJ_TISNUM); 1943 dasm_put(Dst, 11422, LJ_TISNUM);
1937 if (sse) { 1944 if (sse) {
1938 dasm_put(Dst, 11738); 1945 dasm_put(Dst, 11732);
1939 } else { 1946 } else {
1940 dasm_put(Dst, 11752); 1947 dasm_put(Dst, 11746);
1941 } 1948 }
1942 break; 1949 break;
1943 case 1: 1950 case 1:
1944 dasm_put(Dst, 11462, LJ_TISNUM); 1951 dasm_put(Dst, 11456, LJ_TISNUM);
1945 if (sse) { 1952 if (sse) {
1946 dasm_put(Dst, 11760); 1953 dasm_put(Dst, 11754);
1947 } else { 1954 } else {
1948 dasm_put(Dst, 11774); 1955 dasm_put(Dst, 11768);
1949 } 1956 }
1950 break; 1957 break;
1951 default: 1958 default:
1952 dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM); 1959 dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
1953 if (sse) { 1960 if (sse) {
1954 dasm_put(Dst, 11782); 1961 dasm_put(Dst, 11776);
1955 } else { 1962 } else {
1956 dasm_put(Dst, 11796); 1963 dasm_put(Dst, 11790);
1957 } 1964 }
1958 break; 1965 break;
1959 } 1966 }
1960 dasm_put(Dst, 11815); 1967 dasm_put(Dst, 11809);
1961 if (sse) { 1968 if (sse) {
1962 dasm_put(Dst, 11294); 1969 dasm_put(Dst, 11288);
1963 } else { 1970 } else {
1964 dasm_put(Dst, 11306); 1971 dasm_put(Dst, 11300);
1965 } 1972 }
1966 dasm_put(Dst, 10876); 1973 dasm_put(Dst, 10870);
1967 break; 1974 break;
1968 1975
1969 case BC_CAT: 1976 case BC_CAT:
1970 dasm_put(Dst, 11819, Dt1(->base), Dt1(->base)); 1977 dasm_put(Dst, 11813, Dt1(->base), Dt1(->base));
1971 break; 1978 break;
1972 1979
1973 /* -- Constant ops ------------------------------------------------------ */ 1980 /* -- Constant ops ------------------------------------------------------ */
1974 1981
1975 case BC_KSTR: 1982 case BC_KSTR:
1976 dasm_put(Dst, 11913, LJ_TSTR); 1983 dasm_put(Dst, 11907, LJ_TSTR);
1977 break; 1984 break;
1978 case BC_KSHORT: 1985 case BC_KSHORT:
1979 if (sse) { 1986 if (sse) {
1980 dasm_put(Dst, 11946); 1987 dasm_put(Dst, 11940);
1981 } else { 1988 } else {
1982 dasm_put(Dst, 11961); 1989 dasm_put(Dst, 11955);
1983 } 1990 }
1984 dasm_put(Dst, 10876); 1991 dasm_put(Dst, 10870);
1985 break; 1992 break;
1986 case BC_KNUM: 1993 case BC_KNUM:
1987 if (sse) { 1994 if (sse) {
1988 dasm_put(Dst, 11969); 1995 dasm_put(Dst, 11963);
1989 } else { 1996 } else {
1990 dasm_put(Dst, 11982); 1997 dasm_put(Dst, 11976);
1991 } 1998 }
1992 dasm_put(Dst, 10876); 1999 dasm_put(Dst, 10870);
1993 break; 2000 break;
1994 case BC_KPRI: 2001 case BC_KPRI:
1995 dasm_put(Dst, 11989); 2002 dasm_put(Dst, 11983);
1996 break; 2003 break;
1997 case BC_KNIL: 2004 case BC_KNIL:
1998 dasm_put(Dst, 12015, LJ_TNIL); 2005 dasm_put(Dst, 12009, LJ_TNIL);
1999 break; 2006 break;
2000 2007
2001 /* -- Upvalue and function ops ------------------------------------------ */ 2008 /* -- Upvalue and function ops ------------------------------------------ */
2002 2009
2003 case BC_UGET: 2010 case BC_UGET:
2004 dasm_put(Dst, 12061, offsetof(GCfuncL, uvptr), DtA(->v)); 2011 dasm_put(Dst, 12055, offsetof(GCfuncL, uvptr), DtA(->v));
2005 break; 2012 break;
2006 case BC_USETV: 2013 case BC_USETV:
2007#define TV2MARKOFS \ 2014#define TV2MARKOFS \
2008 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2015 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2009 dasm_put(Dst, 12105, 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); 2016 dasm_put(Dst, 12099, 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);
2010 dasm_put(Dst, 12195); 2017 dasm_put(Dst, 12189);
2011 break; 2018 break;
2012#undef TV2MARKOFS 2019#undef TV2MARKOFS
2013 case BC_USETS: 2020 case BC_USETS:
2014 dasm_put(Dst, 12207, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2021 dasm_put(Dst, 12201, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2015 break; 2022 break;
2016 case BC_USETN: 2023 case BC_USETN:
2017 dasm_put(Dst, 12298); 2024 dasm_put(Dst, 12292);
2018 if (sse) { 2025 if (sse) {
2019 dasm_put(Dst, 12303); 2026 dasm_put(Dst, 12297);
2020 } else { 2027 } else {
2021 dasm_put(Dst, 11113); 2028 dasm_put(Dst, 11107);
2022 } 2029 }
2023 dasm_put(Dst, 12310, offsetof(GCfuncL, uvptr), DtA(->v)); 2030 dasm_put(Dst, 12304, offsetof(GCfuncL, uvptr), DtA(->v));
2024 if (sse) { 2031 if (sse) {
2025 dasm_put(Dst, 12319); 2032 dasm_put(Dst, 12313);
2026 } else { 2033 } else {
2027 dasm_put(Dst, 12325); 2034 dasm_put(Dst, 12319);
2028 } 2035 }
2029 dasm_put(Dst, 10876); 2036 dasm_put(Dst, 10870);
2030 break; 2037 break;
2031 case BC_USETP: 2038 case BC_USETP:
2032 dasm_put(Dst, 12328, offsetof(GCfuncL, uvptr), DtA(->v)); 2039 dasm_put(Dst, 12322, offsetof(GCfuncL, uvptr), DtA(->v));
2033 break; 2040 break;
2034 case BC_UCLO: 2041 case BC_UCLO:
2035 dasm_put(Dst, 12365, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2042 dasm_put(Dst, 12359, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2036 break; 2043 break;
2037 2044
2038 case BC_FNEW: 2045 case BC_FNEW:
2039 dasm_put(Dst, 12419, Dt1(->base), Dt1(->base), LJ_TFUNC); 2046 dasm_put(Dst, 12413, Dt1(->base), Dt1(->base), LJ_TFUNC);
2040 break; 2047 break;
2041 2048
2042 /* -- Table ops --------------------------------------------------------- */ 2049 /* -- Table ops --------------------------------------------------------- */
2043 2050
2044 case BC_TNEW: 2051 case BC_TNEW:
2045 dasm_put(Dst, 12490, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2052 dasm_put(Dst, 12484, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2046 break; 2053 break;
2047 case BC_TDUP: 2054 case BC_TDUP:
2048 dasm_put(Dst, 12616, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2055 dasm_put(Dst, 12610, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2049 break; 2056 break;
2050 2057
2051 case BC_GGET: 2058 case BC_GGET:
2052 dasm_put(Dst, 12708, Dt7(->env)); 2059 dasm_put(Dst, 12702, Dt7(->env));
2053 break; 2060 break;
2054 case BC_GSET: 2061 case BC_GSET:
2055 dasm_put(Dst, 12726, Dt7(->env)); 2062 dasm_put(Dst, 12720, Dt7(->env));
2056 break; 2063 break;
2057 2064
2058 case BC_TGETV: 2065 case BC_TGETV:
2059 dasm_put(Dst, 12744, LJ_TTAB, LJ_TISNUM); 2066 dasm_put(Dst, 12738, LJ_TTAB, LJ_TISNUM);
2060 if (sse) { 2067 if (sse) {
2061 dasm_put(Dst, 12777); 2068 dasm_put(Dst, 12771);
2062 } else { 2069 } else {
2063 dasm_put(Dst, 12798); 2070 dasm_put(Dst, 12792);
2064 if (cmov) { 2071 if (cmov) {
2065 dasm_put(Dst, 10839); 2072 dasm_put(Dst, 10833);
2066 } else { 2073 } else {
2067 dasm_put(Dst, 10845); 2074 dasm_put(Dst, 10839);
2068 } 2075 }
2069 dasm_put(Dst, 2538); 2076 dasm_put(Dst, 2539);
2070 } 2077 }
2071 dasm_put(Dst, 12808, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2078 dasm_put(Dst, 12802, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2072 dasm_put(Dst, 12896, LJ_TNIL, LJ_TSTR); 2079 dasm_put(Dst, 12890, LJ_TNIL, LJ_TSTR);
2073 break; 2080 break;
2074 case BC_TGETS: 2081 case BC_TGETS:
2075 dasm_put(Dst, 12925, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2082 dasm_put(Dst, 12919, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2076 dasm_put(Dst, 13013, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2083 dasm_put(Dst, 13007, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2077 break; 2084 break;
2078 case BC_TGETB: 2085 case BC_TGETB:
2079 dasm_put(Dst, 13083, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2086 dasm_put(Dst, 13077, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2080 dasm_put(Dst, 13182, LJ_TNIL); 2087 dasm_put(Dst, 13176, LJ_TNIL);
2081 break; 2088 break;
2082 2089
2083 case BC_TSETV: 2090 case BC_TSETV:
2084 dasm_put(Dst, 13199, LJ_TTAB, LJ_TISNUM); 2091 dasm_put(Dst, 13193, LJ_TTAB, LJ_TISNUM);
2085 if (sse) { 2092 if (sse) {
2086 dasm_put(Dst, 12777); 2093 dasm_put(Dst, 12771);
2087 } else { 2094 } else {
2088 dasm_put(Dst, 12798); 2095 dasm_put(Dst, 12792);
2089 if (cmov) { 2096 if (cmov) {
2090 dasm_put(Dst, 10839); 2097 dasm_put(Dst, 10833);
2091 } else { 2098 } else {
2092 dasm_put(Dst, 10845); 2099 dasm_put(Dst, 10839);
2093 } 2100 }
2094 dasm_put(Dst, 2538); 2101 dasm_put(Dst, 2539);
2095 } 2102 }
2096 dasm_put(Dst, 13232, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2103 dasm_put(Dst, 13226, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2097 dasm_put(Dst, 13315, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2104 dasm_put(Dst, 13309, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2098 break; 2105 break;
2099 case BC_TSETS: 2106 case BC_TSETS:
2100 dasm_put(Dst, 13377, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2107 dasm_put(Dst, 13371, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2101 dasm_put(Dst, 13452, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2108 dasm_put(Dst, 13446, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2102 dasm_put(Dst, 13544, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2109 dasm_put(Dst, 13538, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2103 break; 2110 break;
2104 case BC_TSETB: 2111 case BC_TSETB:
2105 dasm_put(Dst, 13640, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2112 dasm_put(Dst, 13634, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2106 dasm_put(Dst, 13738, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2113 dasm_put(Dst, 13732, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2107 break; 2114 break;
2108 2115
2109 case BC_TSETM: 2116 case BC_TSETM:
2110 dasm_put(Dst, 13784, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2117 dasm_put(Dst, 13778, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2111 dasm_put(Dst, 13933, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2118 dasm_put(Dst, 13927, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2112 break; 2119 break;
2113 2120
2114 /* -- Calls and vararg handling ----------------------------------------- */ 2121 /* -- Calls and vararg handling ----------------------------------------- */
2115 2122
2116 case BC_CALL: case BC_CALLM: 2123 case BC_CALL: case BC_CALLM:
2117 dasm_put(Dst, 11424); 2124 dasm_put(Dst, 11418);
2118 if (op == BC_CALLM) { 2125 if (op == BC_CALLM) {
2119 dasm_put(Dst, 13951); 2126 dasm_put(Dst, 13945);
2120 } 2127 }
2121 dasm_put(Dst, 13956, LJ_TFUNC, Dt7(->pc)); 2128 dasm_put(Dst, 13950, LJ_TFUNC, Dt7(->pc));
2122 break; 2129 break;
2123 2130
2124 case BC_CALLMT: 2131 case BC_CALLMT:
2125 dasm_put(Dst, 13951); 2132 dasm_put(Dst, 13945);
2126 break; 2133 break;
2127 case BC_CALLT: 2134 case BC_CALLT:
2128 dasm_put(Dst, 13997, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2135 dasm_put(Dst, 13991, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2129 dasm_put(Dst, 14115, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2136 dasm_put(Dst, 14109, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2130 break; 2137 break;
2131 2138
2132 case BC_ITERC: 2139 case BC_ITERC:
2133 dasm_put(Dst, 14185, LJ_TFUNC, 2+1, Dt7(->pc)); 2140 dasm_put(Dst, 14179, LJ_TFUNC, 2+1, Dt7(->pc));
2134 break; 2141 break;
2135 2142
2136 case BC_ITERN: 2143 case BC_ITERN:
2137#if LJ_HASJIT 2144#if LJ_HASJIT
2138#endif 2145#endif
2139 dasm_put(Dst, 14265, Dt6(->asize), Dt6(->array), LJ_TNIL); 2146 dasm_put(Dst, 14259, Dt6(->asize), Dt6(->array), LJ_TNIL);
2140 if (sse) { 2147 if (sse) {
2141 dasm_put(Dst, 14311); 2148 dasm_put(Dst, 14305);
2142 } else { 2149 } else {
2143 dasm_put(Dst, 14317); 2150 dasm_put(Dst, 14311);
2144 } 2151 }
2145 dasm_put(Dst, 14323); 2152 dasm_put(Dst, 14317);
2146 if (sse) { 2153 if (sse) {
2147 dasm_put(Dst, 11294); 2154 dasm_put(Dst, 11288);
2148 } else { 2155 } else {
2149 dasm_put(Dst, 11306); 2156 dasm_put(Dst, 11300);
2150 } 2157 }
2151 dasm_put(Dst, 14342, -BCBIAS_J*4); 2158 dasm_put(Dst, 14336, -BCBIAS_J*4);
2152 if (!sse) { 2159 if (!sse) {
2153 dasm_put(Dst, 14393); 2160 dasm_put(Dst, 14387);
2154 } 2161 }
2155 dasm_put(Dst, 14399, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2162 dasm_put(Dst, 14393, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2156 dasm_put(Dst, 14474); 2163 dasm_put(Dst, 14468);
2157 break; 2164 break;
2158 2165
2159 case BC_ISNEXT: 2166 case BC_ISNEXT:
2160 dasm_put(Dst, 14482, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2167 dasm_put(Dst, 14476, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2161 break; 2168 break;
2162 2169
2163 case BC_VARG: 2170 case BC_VARG:
2164 dasm_put(Dst, 14581, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2171 dasm_put(Dst, 14575, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2165 dasm_put(Dst, 14745, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2172 dasm_put(Dst, 14739, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2166 break; 2173 break;
2167 2174
2168 /* -- Returns ----------------------------------------------------------- */ 2175 /* -- Returns ----------------------------------------------------------- */
2169 2176
2170 case BC_RETM: 2177 case BC_RETM:
2171 dasm_put(Dst, 13951); 2178 dasm_put(Dst, 13945);
2172 break; 2179 break;
2173 2180
2174 case BC_RET: case BC_RET0: case BC_RET1: 2181 case BC_RET: case BC_RET0: case BC_RET1:
2175 if (op != BC_RET0) { 2182 if (op != BC_RET0) {
2176 dasm_put(Dst, 14816); 2183 dasm_put(Dst, 14810);
2177 } 2184 }
2178 dasm_put(Dst, 14820, FRAME_TYPE); 2185 dasm_put(Dst, 14814, FRAME_TYPE);
2179 switch (op) { 2186 switch (op) {
2180 case BC_RET: 2187 case BC_RET:
2181 dasm_put(Dst, 14839); 2188 dasm_put(Dst, 14833);
2182 break; 2189 break;
2183 case BC_RET1: 2190 case BC_RET1:
2184 dasm_put(Dst, 14897); 2191 dasm_put(Dst, 14891);
2185 /* fallthrough */ 2192 /* fallthrough */
2186 case BC_RET0: 2193 case BC_RET0:
2187 dasm_put(Dst, 14913); 2194 dasm_put(Dst, 14907);
2188 default: 2195 default:
2189 break; 2196 break;
2190 } 2197 }
2191 dasm_put(Dst, 14924, Dt7(->pc), PC2PROTO(k)); 2198 dasm_put(Dst, 14918, Dt7(->pc), PC2PROTO(k));
2192 if (op == BC_RET) { 2199 if (op == BC_RET) {
2193 dasm_put(Dst, 14966, LJ_TNIL); 2200 dasm_put(Dst, 14960, LJ_TNIL);
2194 } else { 2201 } else {
2195 dasm_put(Dst, 14975, LJ_TNIL); 2202 dasm_put(Dst, 14969, LJ_TNIL);
2196 } 2203 }
2197 dasm_put(Dst, 14982, -FRAME_VARG, FRAME_TYPEP); 2204 dasm_put(Dst, 14976, -FRAME_VARG, FRAME_TYPEP);
2198 if (op != BC_RET0) { 2205 if (op != BC_RET0) {
2199 dasm_put(Dst, 15006); 2206 dasm_put(Dst, 15000);
2200 } 2207 }
2201 dasm_put(Dst, 4710); 2208 dasm_put(Dst, 4704);
2202 break; 2209 break;
2203 2210
2204 /* -- Loops and branches ------------------------------------------------ */ 2211 /* -- Loops and branches ------------------------------------------------ */
@@ -2206,7 +2213,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2206 2213
2207 case BC_FORL: 2214 case BC_FORL:
2208#if LJ_HASJIT 2215#if LJ_HASJIT
2209 dasm_put(Dst, 15010, HOTCOUNT_PCMASK, GG_DISP2HOT); 2216 dasm_put(Dst, 15004, HOTCOUNT_PCMASK, GG_DISP2HOT);
2210#endif 2217#endif
2211 break; 2218 break;
2212 2219
@@ -2218,57 +2225,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2218 case BC_FORI: 2225 case BC_FORI:
2219 case BC_IFORL: 2226 case BC_IFORL:
2220 vk = (op == BC_IFORL || op == BC_JFORL); 2227 vk = (op == BC_IFORL || op == BC_JFORL);
2221 dasm_put(Dst, 15031); 2228 dasm_put(Dst, 15025);
2222 if (!vk) { 2229 if (!vk) {
2223 dasm_put(Dst, 15035, LJ_TISNUM, LJ_TISNUM); 2230 dasm_put(Dst, 15029, LJ_TISNUM, LJ_TISNUM);
2224 } 2231 }
2225 dasm_put(Dst, 15054); 2232 dasm_put(Dst, 15048);
2226 if (!vk) { 2233 if (!vk) {
2227 dasm_put(Dst, 15058, LJ_TISNUM); 2234 dasm_put(Dst, 15052, LJ_TISNUM);
2228 } 2235 }
2229 if (sse) { 2236 if (sse) {
2230 dasm_put(Dst, 15067); 2237 dasm_put(Dst, 15061);
2231 if (vk) { 2238 if (vk) {
2232 dasm_put(Dst, 15079); 2239 dasm_put(Dst, 15073);
2233 } else { 2240 } else {
2234 dasm_put(Dst, 15098); 2241 dasm_put(Dst, 15092);
2235 } 2242 }
2236 dasm_put(Dst, 15103); 2243 dasm_put(Dst, 15097);
2237 } else { 2244 } else {
2238 dasm_put(Dst, 15116); 2245 dasm_put(Dst, 15110);
2239 if (vk) { 2246 if (vk) {
2240 dasm_put(Dst, 15122); 2247 dasm_put(Dst, 15116);
2241 } else { 2248 } else {
2242 dasm_put(Dst, 15138); 2249 dasm_put(Dst, 15132);
2243 } 2250 }
2244 dasm_put(Dst, 15146); 2251 dasm_put(Dst, 15140);
2245 if (cmov) { 2252 if (cmov) {
2246 dasm_put(Dst, 10839); 2253 dasm_put(Dst, 10833);
2247 } else { 2254 } else {
2248 dasm_put(Dst, 10845); 2255 dasm_put(Dst, 10839);
2249 } 2256 }
2250 if (!cmov) { 2257 if (!cmov) {
2251 dasm_put(Dst, 15151); 2258 dasm_put(Dst, 15145);
2252 } 2259 }
2253 } 2260 }
2254 if (op == BC_FORI) { 2261 if (op == BC_FORI) {
2255 dasm_put(Dst, 15157, -BCBIAS_J*4); 2262 dasm_put(Dst, 15151, -BCBIAS_J*4);
2256 } else if (op == BC_JFORI) { 2263 } else if (op == BC_JFORI) {
2257 dasm_put(Dst, 15167, -BCBIAS_J*4, BC_JLOOP); 2264 dasm_put(Dst, 15161, -BCBIAS_J*4, BC_JLOOP);
2258 } else if (op == BC_IFORL) { 2265 } else if (op == BC_IFORL) {
2259 dasm_put(Dst, 15181, -BCBIAS_J*4); 2266 dasm_put(Dst, 15175, -BCBIAS_J*4);
2260 } else { 2267 } else {
2261 dasm_put(Dst, 15177, BC_JLOOP); 2268 dasm_put(Dst, 15171, BC_JLOOP);
2262 } 2269 }
2263 dasm_put(Dst, 10874); 2270 dasm_put(Dst, 10868);
2264 if (sse) { 2271 if (sse) {
2265 dasm_put(Dst, 15191); 2272 dasm_put(Dst, 15185);
2266 } 2273 }
2267 break; 2274 break;
2268 2275
2269 case BC_ITERL: 2276 case BC_ITERL:
2270#if LJ_HASJIT 2277#if LJ_HASJIT
2271 dasm_put(Dst, 15010, HOTCOUNT_PCMASK, GG_DISP2HOT); 2278 dasm_put(Dst, 15004, HOTCOUNT_PCMASK, GG_DISP2HOT);
2272#endif 2279#endif
2273 break; 2280 break;
2274 2281
@@ -2277,33 +2284,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2277 break; 2284 break;
2278#endif 2285#endif
2279 case BC_IITERL: 2286 case BC_IITERL:
2280 dasm_put(Dst, 15202, LJ_TNIL); 2287 dasm_put(Dst, 15196, LJ_TNIL);
2281 if (op == BC_JITERL) { 2288 if (op == BC_JITERL) {
2282 dasm_put(Dst, 15217, BC_JLOOP); 2289 dasm_put(Dst, 15211, BC_JLOOP);
2283 } else { 2290 } else {
2284 dasm_put(Dst, 15231, -BCBIAS_J*4); 2291 dasm_put(Dst, 15225, -BCBIAS_J*4);
2285 } 2292 }
2286 dasm_put(Dst, 11171); 2293 dasm_put(Dst, 11165);
2287 break; 2294 break;
2288 2295
2289 case BC_LOOP: 2296 case BC_LOOP:
2290#if LJ_HASJIT 2297#if LJ_HASJIT
2291 dasm_put(Dst, 15010, HOTCOUNT_PCMASK, GG_DISP2HOT); 2298 dasm_put(Dst, 15004, HOTCOUNT_PCMASK, GG_DISP2HOT);
2292#endif 2299#endif
2293 break; 2300 break;
2294 2301
2295 case BC_ILOOP: 2302 case BC_ILOOP:
2296 dasm_put(Dst, 10876); 2303 dasm_put(Dst, 10870);
2297 break; 2304 break;
2298 2305
2299 case BC_JLOOP: 2306 case BC_JLOOP:
2300#if LJ_HASJIT 2307#if LJ_HASJIT
2301 dasm_put(Dst, 15247, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2308 dasm_put(Dst, 15241, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2302#endif 2309#endif
2303 break; 2310 break;
2304 2311
2305 case BC_JMP: 2312 case BC_JMP:
2306 dasm_put(Dst, 15270, -BCBIAS_J*4); 2313 dasm_put(Dst, 15264, -BCBIAS_J*4);
2307 break; 2314 break;
2308 2315
2309 /* -- Function headers -------------------------------------------------- */ 2316 /* -- Function headers -------------------------------------------------- */
@@ -2317,7 +2324,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2317 2324
2318 case BC_FUNCF: 2325 case BC_FUNCF:
2319#if LJ_HASJIT 2326#if LJ_HASJIT
2320 dasm_put(Dst, 15294, HOTCOUNT_PCMASK, GG_DISP2HOT); 2327 dasm_put(Dst, 15288, HOTCOUNT_PCMASK, GG_DISP2HOT);
2321#endif 2328#endif
2322 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2329 case BC_FUNCV: /* NYI: compiled vararg functions. */
2323 break; 2330 break;
@@ -2327,47 +2334,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2327 break; 2334 break;
2328#endif 2335#endif
2329 case BC_IFUNCF: 2336 case BC_IFUNCF:
2330 dasm_put(Dst, 15315, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2337 dasm_put(Dst, 15309, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2331 if (op == BC_JFUNCF) { 2338 if (op == BC_JFUNCF) {
2332 dasm_put(Dst, 15345, BC_JLOOP); 2339 dasm_put(Dst, 15339, BC_JLOOP);
2333 } else { 2340 } else {
2334 dasm_put(Dst, 10876); 2341 dasm_put(Dst, 10870);
2335 } 2342 }
2336 dasm_put(Dst, 15354, LJ_TNIL); 2343 dasm_put(Dst, 15348, LJ_TNIL);
2337 break; 2344 break;
2338 2345
2339 case BC_JFUNCV: 2346 case BC_JFUNCV:
2340#if !LJ_HASJIT 2347#if !LJ_HASJIT
2341 break; 2348 break;
2342#endif 2349#endif
2343 dasm_put(Dst, 10274); 2350 dasm_put(Dst, 10268);
2344 break; /* NYI: compiled vararg functions. */ 2351 break; /* NYI: compiled vararg functions. */
2345 2352
2346 case BC_IFUNCV: 2353 case BC_IFUNCV:
2347 dasm_put(Dst, 15376, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2354 dasm_put(Dst, 15370, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2348 if (op == BC_JFUNCV) { 2355 if (op == BC_JFUNCV) {
2349 dasm_put(Dst, 15345, BC_JLOOP); 2356 dasm_put(Dst, 15339, BC_JLOOP);
2350 } else { 2357 } else {
2351 dasm_put(Dst, 15467, -4+PC2PROTO(k)); 2358 dasm_put(Dst, 15461, -4+PC2PROTO(k));
2352 } 2359 }
2353 dasm_put(Dst, 15489, LJ_TNIL); 2360 dasm_put(Dst, 15483, LJ_TNIL);
2354 break; 2361 break;
2355 2362
2356 case BC_FUNCC: 2363 case BC_FUNCC:
2357 case BC_FUNCCW: 2364 case BC_FUNCCW:
2358 dasm_put(Dst, 15511, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2365 dasm_put(Dst, 15505, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2359 if (op == BC_FUNCC) { 2366 if (op == BC_FUNCC) {
2360 dasm_put(Dst, 15540); 2367 dasm_put(Dst, 15534);
2361 } else { 2368 } else {
2362 dasm_put(Dst, 15544); 2369 dasm_put(Dst, 15538);
2363 } 2370 }
2364 dasm_put(Dst, 15552, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2371 dasm_put(Dst, 15546, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2365 if (op == BC_FUNCC) { 2372 if (op == BC_FUNCC) {
2366 dasm_put(Dst, 15561); 2373 dasm_put(Dst, 15555);
2367 } else { 2374 } else {
2368 dasm_put(Dst, 15565, DISPATCH_GL(wrapf)); 2375 dasm_put(Dst, 15559, DISPATCH_GL(wrapf));
2369 } 2376 }
2370 dasm_put(Dst, 15570, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2377 dasm_put(Dst, 15564, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2371 break; 2378 break;
2372 2379
2373 /* ---------------------------------------------------------------------- */ 2380 /* ---------------------------------------------------------------------- */
@@ -2395,7 +2402,7 @@ static int build_backend(BuildCtx *ctx)
2395 2402
2396 build_subroutines(ctx, cmov, sse); 2403 build_subroutines(ctx, cmov, sse);
2397 2404
2398 dasm_put(Dst, 15595); 2405 dasm_put(Dst, 15589);
2399 for (op = 0; op < BC__MAX; op++) 2406 for (op = 0; op < BC__MAX; op++)
2400 build_ins(ctx, (BCOp)op, op, cmov, sse); 2407 build_ins(ctx, (BCOp)op, op, cmov, sse);
2401 2408
diff --git a/src/lib_base.c b/src/lib_base.c
index aa55faba..c7ebafb6 100644
--- a/src/lib_base.c
+++ b/src/lib_base.c
@@ -249,6 +249,7 @@ LJLIB_ASM(next)
249 return FFH_UNREACHABLE; 249 return FFH_UNREACHABLE;
250} 250}
251 251
252#ifdef LUAJIT_ENABLE_LUA52COMPAT
252static int ffh_pairs(lua_State *L, MMS mm) 253static int ffh_pairs(lua_State *L, MMS mm)
253{ 254{
254 TValue *o = lj_lib_checkany(L, 1); 255 TValue *o = lj_lib_checkany(L, 1);
@@ -264,6 +265,9 @@ static int ffh_pairs(lua_State *L, MMS mm)
264 return FFH_RES(3); 265 return FFH_RES(3);
265 } 266 }
266} 267}
268#else
269#define ffh_pairs(L, mm) (lj_lib_checktab(L, 1), FFH_UNREACHABLE)
270#endif
267 271
268LJLIB_PUSH(lastcl) 272LJLIB_PUSH(lastcl)
269LJLIB_ASM(pairs) 273LJLIB_ASM(pairs)
diff --git a/src/lj_obj.h b/src/lj_obj.h
index ea5c69c5..cbb25675 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -410,6 +410,12 @@ enum {
410#define setvmstate(g, st) ((g)->vmstate = ~LJ_VMST_##st) 410#define setvmstate(g, st) ((g)->vmstate = ~LJ_VMST_##st)
411 411
412/* Metamethods. */ 412/* Metamethods. */
413#ifdef LUAJIT_ENABLE_LUA52COMPAT
414#define MMDEF_52(_) _(pairs) _(ipairs)
415#else
416#define MMDEF_52(_)
417#endif
418
413#define MMDEF(_) \ 419#define MMDEF(_) \
414 _(index) _(newindex) _(gc) _(mode) _(eq) \ 420 _(index) _(newindex) _(gc) _(mode) _(eq) \
415 /* Only the above (fast) metamethods are negative cached (max. 8). */ \ 421 /* Only the above (fast) metamethods are negative cached (max. 8). */ \
@@ -417,7 +423,7 @@ enum {
417 /* The following must be in ORDER ARITH. */ \ 423 /* The following must be in ORDER ARITH. */ \
418 _(add) _(sub) _(mul) _(div) _(mod) _(pow) _(unm) \ 424 _(add) _(sub) _(mul) _(div) _(mod) _(pow) _(unm) \
419 /* The following are used in the standard libraries. */ \ 425 /* The following are used in the standard libraries. */ \
420 _(metatable) _(tostring) _(pairs) _(ipairs) 426 _(metatable) _(tostring) MMDEF_52(_)
421 427
422typedef enum { 428typedef enum {
423#define MMENUM(name) MM_##name, 429#define MMENUM(name) MM_##name,
diff --git a/src/lj_record.c b/src/lj_record.c
index 4ff208f8..58b02a43 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1426,7 +1426,10 @@ static void LJ_FASTCALL recff_ipairs_aux(jit_State *J, RecordFFData *rd)
1426 1426
1427static void LJ_FASTCALL recff_ipairs(jit_State *J, RecordFFData *rd) 1427static void LJ_FASTCALL recff_ipairs(jit_State *J, RecordFFData *rd)
1428{ 1428{
1429 if (!recff_metacall(J, rd, MM_ipairs)) { 1429#ifdef LUAJIT_ENABLE_LUA52COMPAT
1430 if (!recff_metacall(J, rd, MM_ipairs))
1431#endif
1432 {
1430 TRef tab = J->base[0]; 1433 TRef tab = J->base[0];
1431 if (tref_istab(tab)) { 1434 if (tref_istab(tab)) {
1432 J->base[0] = lj_ir_kfunc(J, funcV(&J->fn->c.upvalue[0])); 1435 J->base[0] = lj_ir_kfunc(J, funcV(&J->fn->c.upvalue[0]));