aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-06-20 20:45:41 +0200
committerMike Pall <mike>2011-06-20 20:45:41 +0200
commit31d566428fe85cdd8c94a01ccab5a2d602286db8 (patch)
treebad0006a61413fb81ddad28f5f65d8c1831f706a /src
parent0f55b46b0bb5838f98c0a043c885dd63fab44c5c (diff)
downloadluajit-31d566428fe85cdd8c94a01ccab5a2d602286db8.tar.gz
luajit-31d566428fe85cdd8c94a01ccab5a2d602286db8.tar.bz2
luajit-31d566428fe85cdd8c94a01ccab5a2d602286db8.zip
From Lua 5.2: __len for tables. Needs -DLUAJIT_ENABLE_LUA52COMPAT.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_arm.dasc23
-rw-r--r--src/buildvm_arm.h1639
-rw-r--r--src/buildvm_ppc.dasc26
-rw-r--r--src/buildvm_ppcspe.h1110
-rw-r--r--src/buildvm_x64.h2329
-rw-r--r--src/buildvm_x64win.h2325
-rw-r--r--src/buildvm_x86.dasc23
-rw-r--r--src/buildvm_x86.h2594
-rw-r--r--src/lj_meta.c13
-rw-r--r--src/lj_obj.h6
-rw-r--r--src/lj_record.c47
11 files changed, 5188 insertions, 4947 deletions
diff --git a/src/buildvm_arm.dasc b/src/buildvm_arm.dasc
index 4d3ba5b7..fd7c7b81 100644
--- a/src/buildvm_arm.dasc
+++ b/src/buildvm_arm.dasc
@@ -767,9 +767,16 @@ static void build_subroutines(BuildCtx *ctx)
767 | mov CARG1, L 767 | mov CARG1, L
768 | str PC, SAVE_PC 768 | str PC, SAVE_PC
769 | bl extern lj_meta_len // (lua_State *L, TValue *o) 769 | bl extern lj_meta_len // (lua_State *L, TValue *o)
770 | // Returns TValue * (metamethod base). 770 | // Returns NULL (retry) or TValue * (metamethod base).
771 | IOS ldr BASE, L->base 771 | IOS ldr BASE, L->base
772#ifdef LUAJIT_ENABLE_LUA52COMPAT
773 | cmp CRET1, #0
774 | bne ->vmeta_binop // Binop call for compatibility.
775 | ldr TAB:CARG1, [BASE, RC]
776 | b ->BC_LEN_Z
777#else
772 | b ->vmeta_binop // Binop call for compatibility. 778 | b ->vmeta_binop // Binop call for compatibility.
779#endif
773 | 780 |
774 |//-- Call metamethod ---------------------------------------------------- 781 |//-- Call metamethod ----------------------------------------------------
775 | 782 |
@@ -2546,11 +2553,25 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
2546 | ins_next3 2553 | ins_next3
2547 |2: 2554 |2:
2548 | checktab CARG2, ->vmeta_len 2555 | checktab CARG2, ->vmeta_len
2556#ifdef LUAJIT_ENABLE_LUA52COMPAT
2557 | ldr TAB:CARG3, TAB:CARG1->metatable
2558 | cmp TAB:CARG3, #0
2559 | bne >9
2560 |3:
2561#endif
2562 |->BC_LEN_Z:
2549 | IOS mov RC, BASE 2563 | IOS mov RC, BASE
2550 | bl extern lj_tab_len // (GCtab *t) 2564 | bl extern lj_tab_len // (GCtab *t)
2551 | // Returns uint32_t (but less than 2^31). 2565 | // Returns uint32_t (but less than 2^31).
2552 | IOS mov BASE, RC 2566 | IOS mov BASE, RC
2553 | b <1 2567 | b <1
2568#ifdef LUAJIT_ENABLE_LUA52COMPAT
2569 |9:
2570 | ldrb CARG4, TAB:CARG3->nomm
2571 | tst CARG4, #1<<MM_len
2572 | bne <3 // 'no __len' flag set: done.
2573 | b ->vmeta_len
2574#endif
2554 break; 2575 break;
2555 2576
2556 /* -- Binary ops -------------------------------------------------------- */ 2577 /* -- Binary ops -------------------------------------------------------- */
diff --git a/src/buildvm_arm.h b/src/buildvm_arm.h
index 26c2674a..505048bd 100644
--- a/src/buildvm_arm.h
+++ b/src/buildvm_arm.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[5675] = { 15static const unsigned int build_actionlist[5702] = {
160x00010001, 160x00010001,
170x00060014, 170x00060014,
180xe3160000, 180xe3160000,
@@ -630,8 +630,16 @@ static const unsigned int build_actionlist[5675] = {
6300xe5189000, 6300xe5189000,
6310x000d8180, 6310x000d8180,
6320x00000000, 6320x00000000,
6330xe3500000,
6340x1a000000,
6350x00050035,
6360xe799000b,
6370xea000000,
6380x00050040,
6390x00000000,
6330xea000000, 6400xea000000,
6340x00050035, 6410x00050035,
6420x00000000,
6350x00060025, 6430x00060025,
6360xe1a00008, 6440xe1a00008,
6370xe508c000, 6450xe508c000,
@@ -658,7 +666,7 @@ static const unsigned int build_actionlist[5675] = {
6580xe004a2ae, 6660xe004a2ae,
6590xe08aa009, 6670xe08aa009,
6600xe12fff1c, 6680xe12fff1c,
6610x00060040, 6690x00060041,
6620xe1a00008, 6700xe1a00008,
6630xe5089000, 6710xe5089000,
6640x000d8180, 6720x000d8180,
@@ -675,8 +683,8 @@ static const unsigned int build_actionlist[5675] = {
6750xe5196004, 6830xe5196004,
6760xe28bb008, 6840xe28bb008,
6770xea000000, 6850xea000000,
6780x00050041, 6860x00050042,
6790x00060042, 6870x00060043,
6800xe1a00008, 6880xe1a00008,
6810xe5089000, 6890xe5089000,
6820x000d8180, 6900x000d8180,
@@ -703,22 +711,22 @@ static const unsigned int build_actionlist[5675] = {
7030x00000000, 7110x00000000,
7040xea000000, 7120xea000000,
7050x00070000, 7130x00070000,
7060x00060043, 7140x00060044,
7070xe1c900d0, 7150xe1c900d0,
7080xe35b0008, 7160xe35b0008,
7090x3a000000, 7170x3a000000,
7100x00050044, 7180x00050045,
7110xe3710000, 7190xe3710000,
7120x000a0000, 7200x000a0000,
7130x8a000000, 7210x8a000000,
7140x00050044, 7220x00050045,
7150xe5196004, 7230xe5196004,
7160xe14900f8, 7240xe14900f8,
7170xe1a0c009, 7250xe1a0c009,
7180xe25ba008, 7260xe25ba008,
7190xe28bb008, 7270xe28bb008,
7200x0a000000, 7280x0a000000,
7210x00050045, 7290x00050046,
7220x0006000b, 7300x0006000b,
7230xe1cc00d8, 7310xe1cc00d8,
7240xe25aa008, 7320xe25aa008,
@@ -726,12 +734,12 @@ static const unsigned int build_actionlist[5675] = {
7260x1a000000, 7340x1a000000,
7270x0005000b, 7350x0005000b,
7280xea000000, 7360xea000000,
7290x00050045, 7370x00050046,
7300x00060046, 7380x00060047,
7310xe5991004, 7390xe5991004,
7320xe35b0008, 7400xe35b0008,
7330x3a000000, 7410x3a000000,
7340x00050044, 7420x00050045,
7350xe3710000, 7430xe3710000,
7360x000a0000, 7440x000a0000,
7370x33e01000, 7450x33e01000,
@@ -741,12 +749,12 @@ static const unsigned int build_actionlist[5675] = {
7410xe1a03183, 7490xe1a03183,
7420xe18200d3, 7500xe18200d3,
7430xea000000, 7510xea000000,
7440x00050047, 7520x00050048,
7450x00060048, 7530x00060049,
7460xe1c900d0, 7540xe1c900d0,
7470xe35b0008, 7550xe35b0008,
7480x3a000000, 7560x3a000000,
7490x00050044, 7570x00050045,
7500xe3710000, 7580xe3710000,
7510x000a0000, 7590x000a0000,
7520x13710000, 7600x13710000,
@@ -764,7 +772,7 @@ static const unsigned int build_actionlist[5675] = {
7640x000d8180, 7720x000d8180,
7650xe35c0000, 7730xe35c0000,
7660x0a000000, 7740x0a000000,
7670x00050047, 7750x00050048,
7680xe51c2000, 7760xe51c2000,
7690x000d8180, 7770x000d8180,
7700xe51b3000, 7780xe51b3000,
@@ -794,12 +802,12 @@ static const unsigned int build_actionlist[5675] = {
7940xe3e01000, 8020xe3e01000,
7950x000a0000, 8030x000a0000,
7960xea000000, 8040xea000000,
7970x00050047, 8050x00050048,
7980x0006000f, 8060x0006000f,
7990xe3710000, 8070xe3710000,
8000x000a0000, 8080x000a0000,
8010x1a000000, 8090x1a000000,
8020x00050047, 8100x00050048,
8030xea000000, 8110xea000000,
8040x0005000e, 8120x0005000e,
8050x00060010, 8130x00060010,
@@ -814,12 +822,12 @@ static const unsigned int build_actionlist[5675] = {
8140x000d8180, 8220x000d8180,
8150xea000000, 8230xea000000,
8160x0005000c, 8240x0005000c,
8170x00060049, 8250x0006004a,
8180xe1c900d0, 8260xe1c900d0,
8190xe1c920d8, 8270xe1c920d8,
8200xe35b0010, 8280xe35b0010,
8210x3a000000, 8290x3a000000,
8220x00050044, 8300x00050045,
8230xe3710000, 8310xe3710000,
8240x000a0000, 8320x000a0000,
8250x0510c000, 8330x0510c000,
@@ -830,13 +838,13 @@ static const unsigned int build_actionlist[5675] = {
8300x000d8180, 8380x000d8180,
8310x035c0000, 8390x035c0000,
8320x1a000000, 8400x1a000000,
8330x00050044, 8410x00050045,
8340xe3130000, 8420xe3130000,
8350x000a0000, 8430x000a0000,
8360xe5002000, 8440xe5002000,
8370x000d8180, 8450x000d8180,
8380x0a000000, 8460x0a000000,
8390x00050047, 8470x00050048,
8400xe5172000, 8480xe5172000,
8410x000d8180, 8490x000d8180,
8420xe3c33000, 8500xe3c33000,
@@ -848,18 +856,18 @@ static const unsigned int build_actionlist[5675] = {
8480xe5002000, 8560xe5002000,
8490x000d8180, 8570x000d8180,
8500xea000000, 8580xea000000,
8510x00050047, 8590x00050048,
8520x0006004a, 8600x0006004b,
8530xe1c920d0, 8610xe1c920d0,
8540xe35b0010, 8620xe35b0010,
8550x3a000000, 8630x3a000000,
8560x00050044, 8640x00050045,
8570xe1a01002, 8650xe1a01002,
8580xe3730000, 8660xe3730000,
8590x000a0000, 8670x000a0000,
8600x00000000, 8680x00000000,
8610x1a000000, 8690x1a000000,
8620x00050044, 8700x00050045,
8630xe1a00008, 8710xe1a00008,
8640xe2892008, 8720xe2892008,
8650x00000000, 8730x00000000,
@@ -872,27 +880,27 @@ static const unsigned int build_actionlist[5675] = {
8720x00000000, 8800x00000000,
8730xe1c000d0, 8810xe1c000d0,
8740xea000000, 8820xea000000,
8750x00050047, 8830x00050048,
8760x0006004b, 8840x0006004c,
8770xe1c900d0, 8850xe1c900d0,
8780xe35b0008, 8860xe35b0008,
8790x3a000000, 8870x3a000000,
8800x00050044, 8880x00050045,
8810xe3710000, 8890xe3710000,
8820x000a0000, 8900x000a0000,
8830x9a000000, 8910x9a000000,
8840x00050047, 8920x00050048,
8850xea000000, 8930xea000000,
8860x00050044, 8940x00050045,
8870x0006004c, 8950x0006004d,
8880xe1c900d0, 8960xe1c900d0,
8890xe35b0008, 8970xe35b0008,
8900x3a000000, 8980x3a000000,
8910x00050044, 8990x00050045,
8920xe3710000, 9000xe3710000,
8930x000a0000, 9010x000a0000,
8940x0a000000, 9020x0a000000,
8950x00050047, 9030x00050048,
8960xe5173000, 9040xe5173000,
8970x000d8180, 9050x000d8180,
8980xe5089000, 9060xe5089000,
@@ -902,14 +910,14 @@ static const unsigned int build_actionlist[5675] = {
9020x93530000, 9100x93530000,
9030xe58d6008, 9110xe58d6008,
9040x8a000000, 9120x8a000000,
9050x00050044, 9130x00050045,
9060xe5170000, 9140xe5170000,
9070x000d8180, 9150x000d8180,
9080xe5171000, 9160xe5171000,
9090x000d8180, 9170x000d8180,
9100xe1500001, 9180xe1500001,
9110xab000000, 9190xab000000,
9120x0005004d, 9200x0005004e,
9130xe1a00008, 9210xe1a00008,
9140xe1a01009, 9220xe1a01009,
9150xeb000000, 9230xeb000000,
@@ -919,19 +927,19 @@ static const unsigned int build_actionlist[5675] = {
9190xe3e01000, 9270xe3e01000,
9200x000a0000, 9280x000a0000,
9210xea000000, 9290xea000000,
9220x00050047, 9300x00050048,
9230x0006004e, 9310x0006004f,
9240x00000000, 9320x00000000,
9250xe1c900d0, 9330xe1c900d0,
9260xe35b0008, 9340xe35b0008,
9270x3a000000, 9350x3a000000,
9280x00050044, 9360x00050045,
9290xe3e03000, 9370xe3e03000,
9300x000a0000, 9380x000a0000,
9310xe3710000, 9390xe3710000,
9320x000a0000, 9400x000a0000,
9330x1a000000, 9410x1a000000,
9340x00050044, 9420x00050045,
9350xe18920fb, 9430xe18920fb,
9360xe5196004, 9440xe5196004,
9370xe1a01000, 9450xe1a01000,
@@ -952,7 +960,7 @@ static const unsigned int build_actionlist[5675] = {
9520x03e01000, 9600x03e01000,
9530x000a0000, 9610x000a0000,
9540x0a000000, 9620x0a000000,
9550x00050047, 9630x00050048,
9560xe1c900d8, 9640xe1c900d8,
9570xe1c921d0, 9650xe1c921d0,
9580xe3a0b000, 9660xe3a0b000,
@@ -960,16 +968,16 @@ static const unsigned int build_actionlist[5675] = {
9600xe14900f8, 9680xe14900f8,
9610xe1c920f0, 9690xe1c920f0,
9620xea000000, 9700xea000000,
9630x00050045, 9710x00050046,
9640x0006004f, 9720x00060050,
9650xe1c900d0, 9730xe1c900d0,
9660xe35b0008, 9740xe35b0008,
9670x3a000000, 9750x3a000000,
9680x00050044, 9760x00050045,
9690xe3710000, 9770xe3710000,
9700x000a0000, 9780x000a0000,
9710x1a000000, 9790x1a000000,
9720x00050044, 9800x00050045,
9730x00000000, 9810x00000000,
9740xe510c000, 9820xe510c000,
9750x000d8180, 9830x000d8180,
@@ -980,7 +988,7 @@ static const unsigned int build_actionlist[5675] = {
9800x00000000, 9880x00000000,
9810xe35c0000, 9890xe35c0000,
9820x1a000000, 9900x1a000000,
9830x00050044, 9910x00050045,
9840x00000000, 9920x00000000,
9850xe3e01000, 9930xe3e01000,
9860x000a0000, 9940x000a0000,
@@ -989,19 +997,19 @@ static const unsigned int build_actionlist[5675] = {
9890xe14920f8, 9970xe14920f8,
9900xe589100c, 9980xe589100c,
9910xea000000, 9990xea000000,
9920x00050045, 10000x00050046,
9930x00060050, 10010x00060051,
9940xe1c900d0, 10020xe1c900d0,
9950xe1c920d8, 10030xe1c920d8,
9960xe35b0010, 10040xe35b0010,
9970x3a000000, 10050x3a000000,
9980x00050044, 10060x00050045,
9990xe3710000, 10070xe3710000,
10000x000a0000, 10080x000a0000,
10010x03730000, 10090x03730000,
10020x000a0000, 10100x000a0000,
10030x1a000000, 10110x1a000000,
10040x00050044, 10120x00050045,
10050xe510c000, 10130xe510c000,
10060x000d8180, 10140x000d8180,
10070xe510b000, 10150xe510b000,
@@ -1023,14 +1031,14 @@ static const unsigned int build_actionlist[5675] = {
10230x000a0000, 10310x000a0000,
10240x11c900f0, 10320x11c900f0,
10250xea000000, 10330xea000000,
10260x00050045, 10340x00050046,
10270x0006000c, 10350x0006000c,
10280xe510c000, 10360xe510c000,
10290x000d8180, 10370x000d8180,
10300xe1a01002, 10380xe1a01002,
10310xe35c0000, 10390xe35c0000,
10320x0a000000, 10400x0a000000,
10330x00050045, 10410x00050046,
10340x00000000, 10420x00000000,
10350xe1a0a009, 10430xe1a0a009,
10360x00000000, 10440x00000000,
@@ -1041,19 +1049,19 @@ static const unsigned int build_actionlist[5675] = {
10410x00000000, 10490x00000000,
10420xe3500000, 10500xe3500000,
10430x0a000000, 10510x0a000000,
10440x00050045, 10520x00050046,
10450xe1c000d0, 10530xe1c000d0,
10460xea000000, 10540xea000000,
10470x0005000b, 10550x0005000b,
10480x00060051, 10560x00060052,
10490xe1c900d0, 10570xe1c900d0,
10500xe35b0008, 10580xe35b0008,
10510x3a000000, 10590x3a000000,
10520x00050044, 10600x00050045,
10530xe3710000, 10610xe3710000,
10540x000a0000, 10620x000a0000,
10550x1a000000, 10630x1a000000,
10560x00050044, 10640x00050045,
10570x00000000, 10650x00000000,
10580xe510c000, 10660xe510c000,
10590x000d8180, 10670x000d8180,
@@ -1064,7 +1072,7 @@ static const unsigned int build_actionlist[5675] = {
10640x00000000, 10720x00000000,
10650xe35c0000, 10730xe35c0000,
10660x1a000000, 10740x1a000000,
10670x00050044, 10750x00050045,
10680x00000000, 10760x00000000,
10690xe3a00000, 10770xe3a00000,
10700xe3e01000, 10780xe3e01000,
@@ -1074,13 +1082,13 @@ static const unsigned int build_actionlist[5675] = {
10740xe14920f8, 10820xe14920f8,
10750xe1c900f8, 10830xe1c900f8,
10760xea000000, 10840xea000000,
10770x00050045, 10850x00050046,
10780x00060052, 10860x00060053,
10790xe557a000, 10870xe557a000,
10800x000d8180, 10880x000d8180,
10810xe35b0008, 10890xe35b0008,
10820x3a000000, 10900x3a000000,
10830x00050044, 10910x00050045,
10840xe31a0000, 10920xe31a0000,
10850x000a0000, 10930x000a0000,
10860xe1a0c009, 10940xe1a0c009,
@@ -1092,18 +1100,18 @@ static const unsigned int build_actionlist[5675] = {
10920xe24bb008, 11000xe24bb008,
10930xea000000, 11010xea000000,
10940x00050024, 11020x00050024,
10950x00060053, 11030x00060054,
10960xe1c900d0, 11040xe1c900d0,
10970xe1c920d8, 11050xe1c920d8,
10980xe35b0010, 11060xe35b0010,
10990x3a000000, 11070x3a000000,
11000x00050044, 11080x00050045,
11010xe557a000, 11090xe557a000,
11020x000d8180, 11100x000d8180,
11030xe3730000, 11110xe3730000,
11040x000a0000, 11120x000a0000,
11050x1a000000, 11130x1a000000,
11060x00050044, 11140x00050045,
11070xe1a0c009, 11150xe1a0c009,
11080xe1c900f8, 11160xe1c900f8,
11090xe1c920f0, 11170xe1c920f0,
@@ -1117,16 +1125,16 @@ static const unsigned int build_actionlist[5675] = {
11170xe24bb010, 11250xe24bb010,
11180xea000000, 11260xea000000,
11190x00050024, 11270x00050024,
11200x00060054, 11280x00060055,
11210xe1c900d0, 11290xe1c900d0,
11220xe35b0008, 11300xe35b0008,
11230x3a000000, 11310x3a000000,
11240x00050044, 11320x00050045,
11250xe3710000, 11330xe3710000,
11260x000a0000, 11340x000a0000,
11270x00000000, 11350x00000000,
11280x1a000000, 11360x1a000000,
11290x00050044, 11370x00050045,
11300xe5196004, 11380xe5196004,
11310xe5089000, 11390xe5089000,
11320x000d8180, 11400x000d8180,
@@ -1141,7 +1149,7 @@ static const unsigned int build_actionlist[5675] = {
11410xe58d6008, 11490xe58d6008,
11420xe153000c, 11500xe153000c,
11430x0a000000, 11510x0a000000,
11440x00050044, 11520x00050045,
11450xe5103000, 11530xe5103000,
11460x000d8180, 11540x000d8180,
11470xe510c000, 11550xe510c000,
@@ -1151,7 +1159,7 @@ static const unsigned int build_actionlist[5675] = {
11510x91520003, 11590x91520003,
11520x935c0000, 11600x935c0000,
11530x8a000000, 11610x8a000000,
11540x00050044, 11620x00050045,
11550x0006000b, 11630x0006000b,
11560xe2422008, 11640xe2422008,
11570xe2899008, 11650xe2899008,
@@ -1242,7 +1250,7 @@ static const unsigned int build_actionlist[5675] = {
12420xe3a00000, 12500xe3a00000,
12430xea000000, 12510xea000000,
12440x0005000e, 12520x0005000e,
12450x00060055, 12530x00060056,
12460x00000000, 12540x00000000,
12470xe5120000, 12550xe5120000,
12480x000d8180, 12560x000d8180,
@@ -1260,7 +1268,7 @@ static const unsigned int build_actionlist[5675] = {
12600xe58d6008, 12680xe58d6008,
12610xe153000c, 12690xe153000c,
12620x0a000000, 12700x0a000000,
12630x00050044, 12710x00050045,
12640xe5103000, 12720xe5103000,
12650x000d8180, 12730x000d8180,
12660xe510c000, 12740xe510c000,
@@ -1270,7 +1278,7 @@ static const unsigned int build_actionlist[5675] = {
12700x91520003, 12780x91520003,
12710x935c0000, 12790x935c0000,
12720x8a000000, 12800x8a000000,
12730x00050044, 12810x00050045,
12740x0006000b, 12820x0006000b,
12750xe5002000, 12830xe5002000,
12760x000d8180, 12840x000d8180,
@@ -1348,7 +1356,7 @@ static const unsigned int build_actionlist[5675] = {
13480xe3a00000, 13560xe3a00000,
13490xea000000, 13570xea000000,
13500x0005000e, 13580x0005000e,
13510x00060056, 13590x00060057,
13520xe5180000, 13600xe5180000,
13530x000d8180, 13610x000d8180,
13540xe089100b, 13620xe089100b,
@@ -1363,24 +1371,24 @@ static const unsigned int build_actionlist[5675] = {
13630x000a0000, 13710x000a0000,
13640xe3a02000, 13720xe3a02000,
13650x0a000000, 13730x0a000000,
13660x00050044, 13740x00050045,
13670xe5082000, 13750xe5082000,
13680x000d8180, 13760x000d8180,
13690xe5480000, 13770xe5480000,
13700x000d8180, 13780x000d8180,
13710xea000000, 13790xea000000,
13720x0005001a, 13800x0005001a,
13730x00060057, 13810x00060058,
13740xe1c900d0, 13820xe1c900d0,
13750xe35b0008, 13830xe35b0008,
13760x3a000000, 13840x3a000000,
13770x00050044, 13850x00050045,
13780xe3710000, 13860xe3710000,
13790x000a0000, 13870x000a0000,
13800x0a000000, 13880x0a000000,
13810x00050047, 13890x00050048,
13820x8a000000, 13900x8a000000,
13830x00050044, 13910x00050045,
13840xe1a02081, 13920xe1a02081,
13850xe292c980, 13930xe292c980,
13860x5a000000, 13940x5a000000,
@@ -1404,7 +1412,7 @@ static const unsigned int build_actionlist[5675] = {
14040xe3e01000, 14120xe3e01000,
14050x000a0000, 14130x000a0000,
14060xea000000, 14140xea000000,
14070x00050047, 14150x00050048,
14080x0006000c, 14160x0006000c,
14090xe1822000, 14170xe1822000,
14100xe1120fc1, 14180xe1120fc1,
@@ -1413,7 +1421,7 @@ static const unsigned int build_actionlist[5675] = {
14130xe3e01000, 14210xe3e01000,
14140x000a0000, 14220x000a0000,
14150xea000000, 14230xea000000,
14160x00050047, 14240x00050048,
14170x0006000d, 14250x0006000d,
14180x03530480, 14260x03530480,
14190x03520000, 14270x03520000,
@@ -1426,20 +1434,20 @@ static const unsigned int build_actionlist[5675] = {
14260x0006000e, 14340x0006000e,
14270x00000000, 14350x00000000,
14280xeb000000, 14360xeb000000,
14290x00050058, 14370x00050059,
14300xea000000, 14380xea000000,
14310x00050047, 14390x00050048,
14320x00060059, 14400x0006005a,
14330xe1c900d0, 14410xe1c900d0,
14340xe35b0008, 14420xe35b0008,
14350x3a000000, 14430x3a000000,
14360x00050044, 14440x00050045,
14370xe3710000, 14450xe3710000,
14380x000a0000, 14460x000a0000,
14390x0a000000, 14470x0a000000,
14400x00050047, 14480x00050048,
14410x8a000000, 14490x8a000000,
14420x00050044, 14500x00050045,
14430xe1a02081, 14510xe1a02081,
14440xe292c980, 14520xe292c980,
14450x5a000000, 14530x5a000000,
@@ -1460,14 +1468,14 @@ static const unsigned int build_actionlist[5675] = {
14600x614f00d0, 14680x614f00d0,
14610x00051809, 14690x00051809,
14620x6a000000, 14700x6a000000,
14630x00050047, 14710x00050048,
14640xe3510000, 14720xe3510000,
14650xb2600000, 14730xb2600000,
14660x0006000b, 14740x0006000b,
14670xe3e01000, 14750xe3e01000,
14680x000a0000, 14760x000a0000,
14690xea000000, 14770xea000000,
14700x00050047, 14780x00050048,
14710x0006000c, 14790x0006000c,
14720xe1822000, 14800xe1822000,
14730xe1d22fc1, 14810xe1d22fc1,
@@ -1476,7 +1484,7 @@ static const unsigned int build_actionlist[5675] = {
14760xe3e01000, 14840xe3e01000,
14770x000a0000, 14850x000a0000,
14780xea000000, 14860xea000000,
14790x00050047, 14870x00050048,
14800x0006000d, 14880x0006000d,
14810x03530480, 14890x03530480,
14820x1a000000, 14900x1a000000,
@@ -1487,38 +1495,38 @@ static const unsigned int build_actionlist[5675] = {
14870x0005000b, 14950x0005000b,
14880x0006000e, 14960x0006000e,
14890xeb000000, 14970xeb000000,
14900x0005005a, 14980x0005005b,
14910x00000000, 14990x00000000,
14920xea000000, 15000xea000000,
14930x00050047, 15010x00050048,
14940x00040007, 15020x00040007,
14950x00060013, 15030x00060013,
14960x00020000, 15040x00020000,
14970x00000000, 15050x00000000,
14980x41e00000, 15060x41e00000,
14990x0006005b, 15070x0006005c,
15000xe1c900d0, 15080xe1c900d0,
15010xe35b0008, 15090xe35b0008,
15020x3a000000, 15100x3a000000,
15030x00050044, 15110x00050045,
15040xe3710000, 15120xe3710000,
15050x000a0000, 15130x000a0000,
15060x8a000000, 15140x8a000000,
15070x00050044, 15150x00050045,
15080x13c11480, 15160x13c11480,
15090x1a000000, 15170x1a000000,
15100x00050047, 15180x00050048,
15110xe3500000, 15190xe3500000,
15120xb2700000, 15200xb2700000,
15130x614f00d0, 15210x614f00d0,
15140x00051813, 15220x00051813,
15150x00060047, 15230x00060048,
15160xe5196004, 15240xe5196004,
15170xe14900f8, 15250xe14900f8,
15180x0006005c, 15260x0006005d,
15190xe3a0b000, 15270xe3a0b000,
15200x000a0000, 15280x000a0000,
15210x00060045, 15290x00060046,
15220xe2160000, 15300xe2160000,
15230x000a0000, 15310x000a0000,
15240x0516e004, 15320x0516e004,
@@ -1547,16 +1555,16 @@ static const unsigned int build_actionlist[5675] = {
15470xe5010004, 15550xe5010004,
15480xea000000, 15560xea000000,
15490x0005000f, 15570x0005000f,
15500x0006005d, 15580x0006005e,
15510xe1c900d0, 15590xe1c900d0,
15520xe35b0008, 15600xe35b0008,
15530x3a000000, 15610x3a000000,
15540x00050044, 15620x00050045,
15550x00000000, 15630x00000000,
15560xe3710000, 15640xe3710000,
15570x000a0000, 15650x000a0000,
15580x2a000000, 15660x2a000000,
15590x00050044, 15670x00050045,
15600x00000000, 15680x00000000,
15610xe1a0a009, 15690xe1a0a009,
15620x00000000, 15700x00000000,
@@ -1566,16 +1574,16 @@ static const unsigned int build_actionlist[5675] = {
15660xe1a0900a, 15740xe1a0900a,
15670x00000000, 15750x00000000,
15680xea000000, 15760xea000000,
15690x00050047, 15770x00050048,
15700x0006005e, 15780x0006005f,
15710xe1c900d0, 15790xe1c900d0,
15720xe35b0008, 15800xe35b0008,
15730x3a000000, 15810x3a000000,
15740x00050044, 15820x00050045,
15750xe3710000, 15830xe3710000,
15760x000a0000, 15840x000a0000,
15770x2a000000, 15850x2a000000,
15780x00050044, 15860x00050045,
15790x00000000, 15870x00000000,
15800xe1a0a009, 15880xe1a0a009,
15810x00000000, 15890x00000000,
@@ -1585,16 +1593,16 @@ static const unsigned int build_actionlist[5675] = {
15850xe1a0900a, 15930xe1a0900a,
15860x00000000, 15940x00000000,
15870xea000000, 15950xea000000,
15880x00050047, 15960x00050048,
15890x0006005f, 15970x00060060,
15900xe1c900d0, 15980xe1c900d0,
15910xe35b0008, 15990xe35b0008,
15920x3a000000, 16000x3a000000,
15930x00050044, 16010x00050045,
15940xe3710000, 16020xe3710000,
15950x000a0000, 16030x000a0000,
15960x2a000000, 16040x2a000000,
15970x00050044, 16050x00050045,
15980x00000000, 16060x00000000,
15990xe1a0a009, 16070xe1a0a009,
16000x00000000, 16080x00000000,
@@ -1604,16 +1612,16 @@ static const unsigned int build_actionlist[5675] = {
16040xe1a0900a, 16120xe1a0900a,
16050x00000000, 16130x00000000,
16060xea000000, 16140xea000000,
16070x00050047, 16150x00050048,
16080x00060060, 16160x00060061,
16090xe1c900d0, 16170xe1c900d0,
16100xe35b0008, 16180xe35b0008,
16110x3a000000, 16190x3a000000,
16120x00050044, 16200x00050045,
16130xe3710000, 16210xe3710000,
16140x000a0000, 16220x000a0000,
16150x2a000000, 16230x2a000000,
16160x00050044, 16240x00050045,
16170x00000000, 16250x00000000,
16180xe1a0a009, 16260xe1a0a009,
16190x00000000, 16270x00000000,
@@ -1623,16 +1631,16 @@ static const unsigned int build_actionlist[5675] = {
16230xe1a0900a, 16310xe1a0900a,
16240x00000000, 16320x00000000,
16250xea000000, 16330xea000000,
16260x00050047, 16340x00050048,
16270x00060061, 16350x00060062,
16280xe1c900d0, 16360xe1c900d0,
16290xe35b0008, 16370xe35b0008,
16300x3a000000, 16380x3a000000,
16310x00050044, 16390x00050045,
16320xe3710000, 16400xe3710000,
16330x000a0000, 16410x000a0000,
16340x2a000000, 16420x2a000000,
16350x00050044, 16430x00050045,
16360x00000000, 16440x00000000,
16370xe1a0a009, 16450xe1a0a009,
16380x00000000, 16460x00000000,
@@ -1642,16 +1650,16 @@ static const unsigned int build_actionlist[5675] = {
16420xe1a0900a, 16500xe1a0900a,
16430x00000000, 16510x00000000,
16440xea000000, 16520xea000000,
16450x00050047, 16530x00050048,
16460x00060062, 16540x00060063,
16470xe1c900d0, 16550xe1c900d0,
16480xe35b0008, 16560xe35b0008,
16490x3a000000, 16570x3a000000,
16500x00050044, 16580x00050045,
16510xe3710000, 16590xe3710000,
16520x000a0000, 16600x000a0000,
16530x2a000000, 16610x2a000000,
16540x00050044, 16620x00050045,
16550x00000000, 16630x00000000,
16560xe1a0a009, 16640xe1a0a009,
16570x00000000, 16650x00000000,
@@ -1661,16 +1669,16 @@ static const unsigned int build_actionlist[5675] = {
16610xe1a0900a, 16690xe1a0900a,
16620x00000000, 16700x00000000,
16630xea000000, 16710xea000000,
16640x00050047, 16720x00050048,
16650x00060063, 16730x00060064,
16660xe1c900d0, 16740xe1c900d0,
16670xe35b0008, 16750xe35b0008,
16680x3a000000, 16760x3a000000,
16690x00050044, 16770x00050045,
16700xe3710000, 16780xe3710000,
16710x000a0000, 16790x000a0000,
16720x2a000000, 16800x2a000000,
16730x00050044, 16810x00050045,
16740x00000000, 16820x00000000,
16750xe1a0a009, 16830xe1a0a009,
16760x00000000, 16840x00000000,
@@ -1680,16 +1688,16 @@ static const unsigned int build_actionlist[5675] = {
16800xe1a0900a, 16880xe1a0900a,
16810x00000000, 16890x00000000,
16820xea000000, 16900xea000000,
16830x00050047, 16910x00050048,
16840x00060064, 16920x00060065,
16850xe1c900d0, 16930xe1c900d0,
16860xe35b0008, 16940xe35b0008,
16870x3a000000, 16950x3a000000,
16880x00050044, 16960x00050045,
16890xe3710000, 16970xe3710000,
16900x000a0000, 16980x000a0000,
16910x2a000000, 16990x2a000000,
16920x00050044, 17000x00050045,
16930x00000000, 17010x00000000,
16940xe1a0a009, 17020xe1a0a009,
16950x00000000, 17030x00000000,
@@ -1699,16 +1707,16 @@ static const unsigned int build_actionlist[5675] = {
16990xe1a0900a, 17070xe1a0900a,
17000x00000000, 17080x00000000,
17010xea000000, 17090xea000000,
17020x00050047, 17100x00050048,
17030x00060065, 17110x00060066,
17040xe1c900d0, 17120xe1c900d0,
17050xe35b0008, 17130xe35b0008,
17060x3a000000, 17140x3a000000,
17070x00050044, 17150x00050045,
17080xe3710000, 17160xe3710000,
17090x000a0000, 17170x000a0000,
17100x2a000000, 17180x2a000000,
17110x00050044, 17190x00050045,
17120x00000000, 17200x00000000,
17130xe1a0a009, 17210xe1a0a009,
17140x00000000, 17220x00000000,
@@ -1718,16 +1726,16 @@ static const unsigned int build_actionlist[5675] = {
17180xe1a0900a, 17260xe1a0900a,
17190x00000000, 17270x00000000,
17200xea000000, 17280xea000000,
17210x00050047, 17290x00050048,
17220x00060066, 17300x00060067,
17230xe1c900d0, 17310xe1c900d0,
17240xe35b0008, 17320xe35b0008,
17250x3a000000, 17330x3a000000,
17260x00050044, 17340x00050045,
17270xe3710000, 17350xe3710000,
17280x000a0000, 17360x000a0000,
17290x2a000000, 17370x2a000000,
17300x00050044, 17380x00050045,
17310x00000000, 17390x00000000,
17320xe1a0a009, 17400xe1a0a009,
17330x00000000, 17410x00000000,
@@ -1737,16 +1745,16 @@ static const unsigned int build_actionlist[5675] = {
17370xe1a0900a, 17450xe1a0900a,
17380x00000000, 17460x00000000,
17390xea000000, 17470xea000000,
17400x00050047, 17480x00050048,
17410x00060067, 17490x00060068,
17420xe1c900d0, 17500xe1c900d0,
17430xe35b0008, 17510xe35b0008,
17440x3a000000, 17520x3a000000,
17450x00050044, 17530x00050045,
17460xe3710000, 17540xe3710000,
17470x000a0000, 17550x000a0000,
17480x2a000000, 17560x2a000000,
17490x00050044, 17570x00050045,
17500x00000000, 17580x00000000,
17510xe1a0a009, 17590xe1a0a009,
17520x00000000, 17600x00000000,
@@ -1756,16 +1764,16 @@ static const unsigned int build_actionlist[5675] = {
17560xe1a0900a, 17640xe1a0900a,
17570x00000000, 17650x00000000,
17580xea000000, 17660xea000000,
17590x00050047, 17670x00050048,
17600x00060068, 17680x00060069,
17610xe1c900d0, 17690xe1c900d0,
17620xe35b0008, 17700xe35b0008,
17630x3a000000, 17710x3a000000,
17640x00050044, 17720x00050045,
17650xe3710000, 17730xe3710000,
17660x000a0000, 17740x000a0000,
17670x2a000000, 17750x2a000000,
17680x00050044, 17760x00050045,
17690x00000000, 17770x00000000,
17700xe1a0a009, 17780xe1a0a009,
17710x00000000, 17790x00000000,
@@ -1775,16 +1783,16 @@ static const unsigned int build_actionlist[5675] = {
17750xe1a0900a, 17830xe1a0900a,
17760x00000000, 17840x00000000,
17770xea000000, 17850xea000000,
17780x00050047, 17860x00050048,
17790x00060069, 17870x0006006a,
17800xe1c900d0, 17880xe1c900d0,
17810xe35b0008, 17890xe35b0008,
17820x3a000000, 17900x3a000000,
17830x00050044, 17910x00050045,
17840xe3710000, 17920xe3710000,
17850x000a0000, 17930x000a0000,
17860x2a000000, 17940x2a000000,
17870x00050044, 17950x00050045,
17880x00000000, 17960x00000000,
17890xe1a0a009, 17970xe1a0a009,
17900x00000000, 17980x00000000,
@@ -1794,19 +1802,19 @@ static const unsigned int build_actionlist[5675] = {
17940xe1a0900a, 18020xe1a0900a,
17950x00000000, 18030x00000000,
17960xea000000, 18040xea000000,
17970x00050047, 18050x00050048,
17980x0006006a, 18060x0006006b,
17990xe1c900d0, 18070xe1c900d0,
18000xe1c920d8, 18080xe1c920d8,
18010xe35b0010, 18090xe35b0010,
18020x3a000000, 18100x3a000000,
18030x00050044, 18110x00050045,
18040xe3710000, 18120xe3710000,
18050x000a0000, 18130x000a0000,
18060x33730000, 18140x33730000,
18070x000a0000, 18150x000a0000,
18080x2a000000, 18160x2a000000,
18090x00050044, 18170x00050045,
18100x00000000, 18180x00000000,
18110xe1a0a009, 18190xe1a0a009,
18120x00000000, 18200x00000000,
@@ -1816,19 +1824,19 @@ static const unsigned int build_actionlist[5675] = {
18160xe1a0900a, 18240xe1a0900a,
18170x00000000, 18250x00000000,
18180xea000000, 18260xea000000,
18190x00050047, 18270x00050048,
18200x0006006b, 18280x0006006c,
18210xe1c900d0, 18290xe1c900d0,
18220xe1c920d8, 18300xe1c920d8,
18230xe35b0010, 18310xe35b0010,
18240x3a000000, 18320x3a000000,
18250x00050044, 18330x00050045,
18260xe3710000, 18340xe3710000,
18270x000a0000, 18350x000a0000,
18280x33730000, 18360x33730000,
18290x000a0000, 18370x000a0000,
18300x2a000000, 18380x2a000000,
18310x00050044, 18390x00050045,
18320x00000000, 18400x00000000,
18330xe1a0a009, 18410xe1a0a009,
18340x00000000, 18420x00000000,
@@ -1838,19 +1846,19 @@ static const unsigned int build_actionlist[5675] = {
18380xe1a0900a, 18460xe1a0900a,
18390x00000000, 18470x00000000,
18400xea000000, 18480xea000000,
18410x00050047, 18490x00050048,
18420x0006006c, 18500x0006006d,
18430xe1c900d0, 18510xe1c900d0,
18440xe1c920d8, 18520xe1c920d8,
18450xe35b0010, 18530xe35b0010,
18460x3a000000, 18540x3a000000,
18470x00050044, 18550x00050045,
18480xe3710000, 18560xe3710000,
18490x000a0000, 18570x000a0000,
18500x33730000, 18580x33730000,
18510x000a0000, 18590x000a0000,
18520x2a000000, 18600x2a000000,
18530x00050044, 18610x00050045,
18540x00000000, 18620x00000000,
18550xe1a0a009, 18630xe1a0a009,
18560x00000000, 18640x00000000,
@@ -1860,37 +1868,37 @@ static const unsigned int build_actionlist[5675] = {
18600xe1a0900a, 18680xe1a0900a,
18610x00000000, 18690x00000000,
18620xea000000, 18700xea000000,
18630x00050047, 18710x00050048,
18640x0006006d,
18650x0006006e, 18720x0006006e,
18730x0006006f,
18660xe1c900d0, 18740xe1c900d0,
18670xe35b0008, 18750xe35b0008,
18680x3a000000, 18760x3a000000,
18690x00050044, 18770x00050045,
18700xe3710000, 18780xe3710000,
18710x000a0000, 18790x000a0000,
18720x2a000000, 18800x2a000000,
18730x00050044, 18810x00050045,
18740xe14220d0, 18820xe14220d0,
18750x000c8100, 18830x000c8100,
18760xeb000000, 18840xeb000000,
18770x0003001f, 18850x0003001f,
18780xea000000, 18860xea000000,
18790x00050047, 18870x00050048,
18800x0006006f, 18880x00060070,
18810xe1c900d0, 18890xe1c900d0,
18820xe1c920d8, 18900xe1c920d8,
18830xe35b0010, 18910xe35b0010,
18840x3a000000, 18920x3a000000,
18850x00050044, 18930x00050045,
18860xe3710000, 18940xe3710000,
18870x000a0000, 18950x000a0000,
18880x2a000000, 18960x2a000000,
18890x00050044, 18970x00050045,
18900xe3730000, 18980xe3730000,
18910x000a0000, 18990x000a0000,
18920x1a000000, 19000x1a000000,
18930x00050044, 19010x00050045,
18940x00000000, 19020x00000000,
18950xe1a0a009, 19030xe1a0a009,
18960x00000000, 19040x00000000,
@@ -1900,16 +1908,16 @@ static const unsigned int build_actionlist[5675] = {
19000xe1a0900a, 19080xe1a0900a,
19010x00000000, 19090x00000000,
19020xea000000, 19100xea000000,
19030x00050047, 19110x00050048,
19040x00060070, 19120x00060071,
19050xe1c900d0, 19130xe1c900d0,
19060xe35b0008, 19140xe35b0008,
19070x3a000000, 19150x3a000000,
19080x00050044, 19160x00050045,
19090xe3710000, 19170xe3710000,
19100x000a0000, 19180x000a0000,
19110x2a000000, 19190x2a000000,
19120x00050044, 19200x00050045,
19130xe1a0200d, 19210xe1a0200d,
19140x00000000, 19220x00000000,
19150xe1a0a009, 19230xe1a0a009,
@@ -1928,16 +1936,16 @@ static const unsigned int build_actionlist[5675] = {
19280x000a0000, 19360x000a0000,
19290xe1c920f0, 19370xe1c920f0,
19300xea000000, 19380xea000000,
19310x00050045, 19390x00050046,
19320x00060071, 19400x00060072,
19330xe1c900d0, 19410xe1c900d0,
19340xe35b0008, 19420xe35b0008,
19350x3a000000, 19430x3a000000,
19360x00050044, 19440x00050045,
19370xe3710000, 19450xe3710000,
19380x000a0000, 19460x000a0000,
19390x2a000000, 19470x2a000000,
19400x00050044, 19480x00050045,
19410xe2492008, 19490xe2492008,
19420xe5196004, 19500xe5196004,
19430x00000000, 19510x00000000,
@@ -1952,12 +1960,12 @@ static const unsigned int build_actionlist[5675] = {
19520x000a0000, 19600x000a0000,
19530xe1c900f0, 19610xe1c900f0,
19540xea000000, 19620xea000000,
19550x00050045, 19630x00050046,
19560x00060072, 19640x00060073,
19570xe1c900d0, 19650xe1c900d0,
19580xe35b0008, 19660xe35b0008,
19590x3a000000, 19670x3a000000,
19600x00050044, 19680x00050045,
19610xe3710000, 19690xe3710000,
19620x000a0000, 19700x000a0000,
19630xe3a0a008, 19710xe3a0a008,
@@ -1967,7 +1975,7 @@ static const unsigned int build_actionlist[5675] = {
19670xe18920da, 19750xe18920da,
19680xe15a000b, 19760xe15a000b,
19690x2a000000, 19770x2a000000,
19700x00050047, 19780x00050048,
19710xe3730000, 19790xe3730000,
19720x000a0000, 19800x000a0000,
19730x1a000000, 19810x1a000000,
@@ -1979,7 +1987,7 @@ static const unsigned int build_actionlist[5675] = {
19790x0005000b, 19870x0005000b,
19800x0006000d, 19880x0006000d,
19810x8a000000, 19890x8a000000,
19820x00050044, 19900x00050045,
19830xeb000000, 19910xeb000000,
19840x00030023, 19920x00030023,
19850xe18920da, 19930xe18920da,
@@ -1987,12 +1995,12 @@ static const unsigned int build_actionlist[5675] = {
19870x00050006, 19950x00050006,
19880x0006000e, 19960x0006000e,
19890x8a000000, 19970x8a000000,
19900x00050044, 19980x00050045,
19910x0006000f, 19990x0006000f,
19920xe18920da, 20000xe18920da,
19930xe15a000b, 20010xe15a000b,
19940x2a000000, 20020x2a000000,
19950x00050047, 20030x00050048,
19960xe3730000, 20040xe3730000,
19970x000a0000, 20050x000a0000,
19980x2a000000, 20060x2a000000,
@@ -2008,7 +2016,7 @@ static const unsigned int build_actionlist[5675] = {
20080x0005000f, 20160x0005000f,
20090x00060011, 20170x00060011,
20100x8a000000, 20180x8a000000,
20110x00050044, 20190x00050045,
20120xe1cd00f0, 20200xe1cd00f0,
20130xe1a00002, 20210xe1a00002,
20140xeb000000, 20220xeb000000,
@@ -2016,11 +2024,11 @@ static const unsigned int build_actionlist[5675] = {
20160xe1cd20d0, 20240xe1cd20d0,
20170xea000000, 20250xea000000,
20180x00050010, 20260x00050010,
20190x00060073, 20270x00060074,
20200xe1c900d0, 20280xe1c900d0,
20210xe35b0008, 20290xe35b0008,
20220x3a000000, 20300x3a000000,
20230x00050044, 20310x00050045,
20240xe3710000, 20320xe3710000,
20250x000a0000, 20330x000a0000,
20260xe3a0a008, 20340xe3a0a008,
@@ -2030,7 +2038,7 @@ static const unsigned int build_actionlist[5675] = {
20300xe18920da, 20380xe18920da,
20310xe15a000b, 20390xe15a000b,
20320x2a000000, 20400x2a000000,
20330x00050047, 20410x00050048,
20340xe3730000, 20420xe3730000,
20350x000a0000, 20430x000a0000,
20360x1a000000, 20440x1a000000,
@@ -2042,7 +2050,7 @@ static const unsigned int build_actionlist[5675] = {
20420x0005000b, 20500x0005000b,
20430x0006000d, 20510x0006000d,
20440x8a000000, 20520x8a000000,
20450x00050044, 20530x00050045,
20460xeb000000, 20540xeb000000,
20470x00030023, 20550x00030023,
20480xe18920da, 20560xe18920da,
@@ -2050,13 +2058,13 @@ static const unsigned int build_actionlist[5675] = {
20500x00050006, 20580x00050006,
20510x0006000e, 20590x0006000e,
20520x8a000000, 20600x8a000000,
20530x00050044, 20610x00050045,
20540x0006000f, 20620x0006000f,
20550x00000000, 20630x00000000,
20560xe18920da, 20640xe18920da,
20570xe15a000b, 20650xe15a000b,
20580x2a000000, 20660x2a000000,
20590x00050047, 20670x00050048,
20600xe3730000, 20680xe3730000,
20610x000a0000, 20690x000a0000,
20620x2a000000, 20700x2a000000,
@@ -2071,7 +2079,7 @@ static const unsigned int build_actionlist[5675] = {
20710x0005000f, 20790x0005000f,
20720x00060011, 20800x00060011,
20730x8a000000, 20810x8a000000,
20740x00050044, 20820x00050045,
20750xe1cd00f0, 20830xe1cd00f0,
20760xe1a00002, 20840xe1a00002,
20770xeb000000, 20850xeb000000,
@@ -2079,29 +2087,29 @@ static const unsigned int build_actionlist[5675] = {
20790xe1cd20d0, 20870xe1cd20d0,
20800xea000000, 20880xea000000,
20810x00050010, 20890x00050010,
20820x00060074, 20900x00060075,
20830xe1c900d0, 20910xe1c900d0,
20840xe35b0008, 20920xe35b0008,
20850x3a000000, 20930x3a000000,
20860x00050044, 20940x00050045,
20870xe3710000, 20950xe3710000,
20880x000a0000, 20960x000a0000,
20890x1a000000, 20970x1a000000,
20900x00050044, 20980x00050045,
20910xe5100000, 20990xe5100000,
20920x000d8180, 21000x000d8180,
20930xe3e01000, 21010xe3e01000,
20940x000a0000, 21020x000a0000,
20950xea000000, 21030xea000000,
20960x00050047, 21040x00050048,
20970x00060075, 21050x00060076,
20980xe1c900d0, 21060xe1c900d0,
20990xe5196004, 21070xe5196004,
21000xe35b0008, 21080xe35b0008,
21010x03710000, 21090x03710000,
21020x000a0000, 21100x000a0000,
21030x1a000000, 21110x1a000000,
21040x00050044, 21120x00050045,
21050xe5102000, 21130xe5102000,
21060x000d8180, 21140x000d8180,
21070xe5500000, 21150xe5500000,
@@ -2116,15 +2124,15 @@ static const unsigned int build_actionlist[5675] = {
21160x000a0000, 21240x000a0000,
21170xe14900f8, 21250xe14900f8,
21180xea000000, 21260xea000000,
21190x00050045, 21270x00050046,
21200x00060076, 21280x00060077,
21210xe5170000, 21290xe5170000,
21220x000d8180, 21300x000d8180,
21230xe5171000, 21310xe5171000,
21240x000d8180, 21320x000d8180,
21250xe1500001, 21330xe1500001,
21260xab000000, 21340xab000000,
21270x0005004d, 21350x0005004e,
21280xe1c900d0, 21360xe1c900d0,
21290xe5196004, 21370xe5196004,
21300xe35b0008, 21380xe35b0008,
@@ -2133,10 +2141,10 @@ static const unsigned int build_actionlist[5675] = {
21330x03d030ff, 21410x03d030ff,
21340xe3a02001, 21420xe3a02001,
21350x1a000000, 21430x1a000000,
21360x00050044, 21440x00050045,
21370xe58d0000, 21450xe58d0000,
21380xe1a0100d, 21460xe1a0100d,
21390x00060077, 21470x00060078,
21400xe5089000, 21480xe5089000,
21410x000d8180, 21490x000d8180,
21420xe1a00008, 21500xe1a00008,
@@ -2148,15 +2156,15 @@ static const unsigned int build_actionlist[5675] = {
21480xe3e01000, 21560xe3e01000,
21490x000a0000, 21570x000a0000,
21500xea000000, 21580xea000000,
21510x00050047, 21590x00050048,
21520x00060078, 21600x00060079,
21530xe5170000, 21610xe5170000,
21540x000d8180, 21620x000d8180,
21550xe5171000, 21630xe5171000,
21560x000d8180, 21640x000d8180,
21570xe1500001, 21650xe1500001,
21580xab000000, 21660xab000000,
21590x0005004d, 21670x0005004e,
21600xe1c900d0, 21680xe1c900d0,
21610xe1c921d0, 21690xe1c921d0,
21620xe35b0010, 21700xe35b0010,
@@ -2164,13 +2172,13 @@ static const unsigned int build_actionlist[5675] = {
21640x0a000000, 21720x0a000000,
21650x00050001, 21730x00050001,
21660x3a000000, 21740x3a000000,
21670x00050044, 21750x00050045,
21680x00000000, 21760x00000000,
21690xe3730000, 21770xe3730000,
21700x000a0000, 21780x000a0000,
21710xe1a0c002, 21790xe1a0c002,
21720x1a000000, 21800x1a000000,
21730x00050044, 21810x00050045,
21740x0006000b, 21820x0006000b,
21750xe1c920d8, 21830xe1c920d8,
21760xe3710000, 21840xe3710000,
@@ -2180,7 +2188,7 @@ static const unsigned int build_actionlist[5675] = {
21800x03730000, 21880x03730000,
21810x000a0000, 21890x000a0000,
21820x1a000000, 21900x1a000000,
21830x00050044, 21910x00050045,
21840xe2813001, 21920xe2813001,
21850xe3520000, 21930xe3520000,
21860xb0822003, 21940xb0822003,
@@ -2197,44 +2205,44 @@ static const unsigned int build_actionlist[5675] = {
21970xe05c2002, 22050xe05c2002,
21980xe2822001, 22060xe2822001,
21990xaa000000, 22070xaa000000,
22000x00050077, 22080x00050078,
22010x00060079, 22090x0006007a,
22020xe2470000, 22100xe2470000,
22030x000a0000, 22110x000a0000,
22040xe3e01000, 22120xe3e01000,
22050x000a0000, 22130x000a0000,
22060xea000000, 22140xea000000,
22070x00050047, 22150x00050048,
22080x0006007a, 22160x0006007b,
22090xe5170000, 22170xe5170000,
22100x000d8180, 22180x000d8180,
22110xe5171000, 22190xe5171000,
22120x000d8180, 22200x000d8180,
22130xe1500001, 22210xe1500001,
22140xab000000, 22220xab000000,
22150x0005004d, 22230x0005004e,
22160xe1c900d0, 22240xe1c900d0,
22170xe1c920d8, 22250xe1c920d8,
22180xe35b0010, 22260xe35b0010,
22190x3a000000, 22270x3a000000,
22200x00050044, 22280x00050045,
22210xe3710000, 22290xe3710000,
22220x000a0000, 22300x000a0000,
22230x03730000, 22310x03730000,
22240x000a0000, 22320x000a0000,
22250x1a000000, 22330x1a000000,
22260x00050044, 22340x00050045,
22270xe2523001, 22350xe2523001,
22280xe5101000, 22360xe5101000,
22290x000d8180, 22370x000d8180,
22300x00000000, 22380x00000000,
22310xba000000, 22390xba000000,
22320x00050079, 22400x0005007a,
22330xe3510001, 22410xe3510001,
22340x3a000000, 22420x3a000000,
22350x00050079, 22430x0005007a,
22360x1a000000, 22440x1a000000,
22370x00050044, 22450x00050045,
22380xe517c000, 22460xe517c000,
22390x000d8180, 22470x000d8180,
22400xe5171000, 22480xe5171000,
@@ -2243,30 +2251,30 @@ static const unsigned int build_actionlist[5675] = {
22430x000d8180, 22510x000d8180,
22440xe15c0002, 22520xe15c0002,
22450x3a000000, 22530x3a000000,
22460x00050044, 22540x00050045,
22470x0006000b, 22550x0006000b,
22480xe7c10003, 22560xe7c10003,
22490xe2533001, 22570xe2533001,
22500xaa000000, 22580xaa000000,
22510x0005000b, 22590x0005000b,
22520xea000000, 22600xea000000,
22530x00050077, 22610x00050078,
22540x0006007b, 22620x0006007c,
22550xe5170000, 22630xe5170000,
22560x000d8180, 22640x000d8180,
22570xe5171000, 22650xe5171000,
22580x000d8180, 22660x000d8180,
22590xe1500001, 22670xe1500001,
22600xab000000, 22680xab000000,
22610x0005004d, 22690x0005004e,
22620xe1c900d0, 22700xe1c900d0,
22630xe35b0008, 22710xe35b0008,
22640x3a000000, 22720x3a000000,
22650x00050044, 22730x00050045,
22660xe3710000, 22740xe3710000,
22670x000a0000, 22750x000a0000,
22680x1a000000, 22760x1a000000,
22690x00050044, 22770x00050045,
22700xe5102000, 22780xe5102000,
22710x000d8180, 22790x000d8180,
22720xe517c000, 22800xe517c000,
@@ -2278,32 +2286,32 @@ static const unsigned int build_actionlist[5675] = {
22780x000a0000, 22860x000a0000,
22790xe15c0002, 22870xe15c0002,
22800x3a000000, 22880x3a000000,
22810x00050044, 22890x00050045,
22820x0006000b, 22900x0006000b,
22830x00000000, 22910x00000000,
22840xe4d0c001, 22920xe4d0c001,
22850xe2533001, 22930xe2533001,
22860xba000000, 22940xba000000,
22870x00050077, 22950x00050078,
22880xe7c1c003, 22960xe7c1c003,
22890xea000000, 22970xea000000,
22900x0005000b, 22980x0005000b,
22910x0006007c, 22990x0006007d,
22920xe5170000, 23000xe5170000,
22930x000d8180, 23010x000d8180,
22940xe5171000, 23020xe5171000,
22950x000d8180, 23030x000d8180,
22960xe1500001, 23040xe1500001,
22970xab000000, 23050xab000000,
22980x0005004d, 23060x0005004e,
22990xe1c900d0, 23070xe1c900d0,
23000xe35b0008, 23080xe35b0008,
23010x3a000000, 23090x3a000000,
23020x00050044, 23100x00050045,
23030xe3710000, 23110xe3710000,
23040x000a0000, 23120x000a0000,
23050x1a000000, 23130x1a000000,
23060x00050044, 23140x00050045,
23070xe5102000, 23150xe5102000,
23080x000d8180, 23160x000d8180,
23090xe517c000, 23170xe517c000,
@@ -2315,12 +2323,12 @@ static const unsigned int build_actionlist[5675] = {
23150x000a0000, 23230x000a0000,
23160xe15c0002, 23240xe15c0002,
23170x3a000000, 23250x3a000000,
23180x00050044, 23260x00050045,
23190x0006000b, 23270x0006000b,
23200xe7d0c003, 23280xe7d0c003,
23210xe1530002, 23290xe1530002,
23220x2a000000, 23300x2a000000,
23230x00050077, 23310x00050078,
23240xe24cb041, 23320xe24cb041,
23250xe35b001a, 23330xe35b001a,
23260x322cc020, 23340x322cc020,
@@ -2328,23 +2336,23 @@ static const unsigned int build_actionlist[5675] = {
23280xe2833001, 23360xe2833001,
23290xea000000, 23370xea000000,
23300x0005000b, 23380x0005000b,
23310x0006007d, 23390x0006007e,
23320xe5170000, 23400xe5170000,
23330x000d8180, 23410x000d8180,
23340xe5171000, 23420xe5171000,
23350x000d8180, 23430x000d8180,
23360xe1500001, 23440xe1500001,
23370xab000000, 23450xab000000,
23380x0005004d, 23460x0005004e,
23390xe1c900d0, 23470xe1c900d0,
23400xe35b0008, 23480xe35b0008,
23410x3a000000, 23490x3a000000,
23420x00050044, 23500x00050045,
23430x00000000, 23510x00000000,
23440xe3710000, 23520xe3710000,
23450x000a0000, 23530x000a0000,
23460x1a000000, 23540x1a000000,
23470x00050044, 23550x00050045,
23480xe5102000, 23560xe5102000,
23490x000d8180, 23570x000d8180,
23500xe517c000, 23580xe517c000,
@@ -2356,12 +2364,12 @@ static const unsigned int build_actionlist[5675] = {
23560x000a0000, 23640x000a0000,
23570xe15c0002, 23650xe15c0002,
23580x3a000000, 23660x3a000000,
23590x00050044, 23670x00050045,
23600x0006000b, 23680x0006000b,
23610xe7d0c003, 23690xe7d0c003,
23620xe1530002, 23700xe1530002,
23630x2a000000, 23710x2a000000,
23640x00050077, 23720x00050078,
23650xe24cb061, 23730xe24cb061,
23660xe35b001a, 23740xe35b001a,
23670x322cc020, 23750x322cc020,
@@ -2369,15 +2377,15 @@ static const unsigned int build_actionlist[5675] = {
23690xe2833001, 23770xe2833001,
23700xea000000, 23780xea000000,
23710x0005000b, 23790x0005000b,
23720x0006007e, 23800x0006007f,
23730xe1c900d0, 23810xe1c900d0,
23740xe35b0008, 23820xe35b0008,
23750x3a000000, 23830x3a000000,
23760x00050044, 23840x00050045,
23770xe3710000, 23850xe3710000,
23780x000a0000, 23860x000a0000,
23790x1a000000, 23870x1a000000,
23800x00050044, 23880x00050045,
23810x00000000, 23890x00000000,
23820xe1a0a009, 23900xe1a0a009,
23830x00000000, 23910x00000000,
@@ -2389,11 +2397,11 @@ static const unsigned int build_actionlist[5675] = {
23890xe3e01000, 23970xe3e01000,
23900x000a0000, 23980x000a0000,
23910xea000000, 23990xea000000,
23920x00050047, 24000x00050048,
23930x0006007f,
23940x8a000000,
23950x00050044,
23960x00060080, 24010x00060080,
24020x8a000000,
24030x00050045,
24040x00060081,
23970xe1a0c081, 24050xe1a0c081,
23980xe29cc980, 24060xe29cc980,
23990x53a00000, 24070x53a00000,
@@ -2418,28 +2426,28 @@ static const unsigned int build_actionlist[5675] = {
24180xe1830c10, 24260xe1830c10,
24190xb2600000, 24270xb2600000,
24200xe12fff1e, 24280xe12fff1e,
24210x00060081, 24290x00060082,
24220xe1c900d0, 24300xe1c900d0,
24230xe35b0008, 24310xe35b0008,
24240x3a000000, 24320x3a000000,
24250x00050044, 24330x00050045,
24260xe3710000, 24340xe3710000,
24270x000a0000, 24350x000a0000,
24280x1b000000, 24360x1b000000,
24290x0005007f, 24370x00050080,
24300xe3e01000, 24380xe3e01000,
24310x000a0000, 24390x000a0000,
24320xea000000, 24400xea000000,
24330x00050047, 24410x00050048,
24340x00060082, 24420x00060083,
24350xe1c900d0, 24430xe1c900d0,
24360xe35b0008, 24440xe35b0008,
24370x3a000000, 24450x3a000000,
24380x00050044, 24460x00050045,
24390xe3710000, 24470xe3710000,
24400x000a0000, 24480x000a0000,
24410x1b000000, 24490x1b000000,
24420x0005007f, 24500x00050080,
24430xe1a02000, 24510xe1a02000,
24440xe3a0a008, 24520xe3a0a008,
24450x0006000b, 24530x0006000b,
@@ -2451,20 +2459,20 @@ static const unsigned int build_actionlist[5675] = {
24510xe3710000, 24590xe3710000,
24520x000a0000, 24600x000a0000,
24530x1b000000, 24610x1b000000,
24540x0005007f, 24620x00050080,
24550xe0022000, 24630xe0022000,
24560xea000000, 24640xea000000,
24570x0005000b, 24650x0005000b,
24580x00060083, 24660x00060084,
24590x00000000, 24670x00000000,
24600xe1c900d0, 24680xe1c900d0,
24610xe35b0008, 24690xe35b0008,
24620x3a000000, 24700x3a000000,
24630x00050044, 24710x00050045,
24640xe3710000, 24720xe3710000,
24650x000a0000, 24730x000a0000,
24660x1b000000, 24740x1b000000,
24670x0005007f, 24750x00050080,
24680xe1a02000, 24760xe1a02000,
24690xe3a0a008, 24770xe3a0a008,
24700x0006000b, 24780x0006000b,
@@ -2476,19 +2484,19 @@ static const unsigned int build_actionlist[5675] = {
24760xe3710000, 24840xe3710000,
24770x000a0000, 24850x000a0000,
24780x1b000000, 24860x1b000000,
24790x0005007f, 24870x00050080,
24800xe1822000, 24880xe1822000,
24810xea000000, 24890xea000000,
24820x0005000b, 24900x0005000b,
24830x00060084, 24910x00060085,
24840xe1c900d0, 24920xe1c900d0,
24850xe35b0008, 24930xe35b0008,
24860x3a000000, 24940x3a000000,
24870x00050044, 24950x00050045,
24880xe3710000, 24960xe3710000,
24890x000a0000, 24970x000a0000,
24900x1b000000, 24980x1b000000,
24910x0005007f, 24990x00050080,
24920xe1a02000, 25000xe1a02000,
24930xe3a0a008, 25010xe3a0a008,
24940x0006000b, 25020x0006000b,
@@ -2500,7 +2508,7 @@ static const unsigned int build_actionlist[5675] = {
25000xe3710000, 25080xe3710000,
25010x000a0000, 25090x000a0000,
25020x1b000000, 25100x1b000000,
25030x0005007f, 25110x00050080,
25040xe0222000, 25120xe0222000,
25050xea000000, 25130xea000000,
25060x0005000b, 25140x0005000b,
@@ -2510,17 +2518,17 @@ static const unsigned int build_actionlist[5675] = {
25100xe5196004, 25180xe5196004,
25110xe14920f8, 25190xe14920f8,
25120xea000000, 25200xea000000,
25130x0005005c, 25210x0005005d,
25140x00060085, 25220x00060086,
25150xe1c900d0, 25230xe1c900d0,
25160xe35b0008, 25240xe35b0008,
25170x3a000000, 25250x3a000000,
25180x00050044, 25260x00050045,
25190x00000000, 25270x00000000,
25200xe3710000, 25280xe3710000,
25210x000a0000, 25290x000a0000,
25220x1b000000, 25300x1b000000,
25230x0005007f, 25310x00050080,
25240xe0202860, 25320xe0202860,
25250xe3c228ff, 25330xe3c228ff,
25260xe1a00460, 25340xe1a00460,
@@ -2528,124 +2536,124 @@ static const unsigned int build_actionlist[5675] = {
25280x000a0000, 25360x000a0000,
25290xe0200422, 25370xe0200422,
25300xea000000, 25380xea000000,
25310x00050047, 25390x00050048,
25320x00060086, 25400x00060087,
25330xe1c900d0, 25410xe1c900d0,
25340xe35b0008, 25420xe35b0008,
25350x3a000000, 25430x3a000000,
25360x00050044, 25440x00050045,
25370xe3710000, 25450xe3710000,
25380x000a0000, 25460x000a0000,
25390x1b000000, 25470x1b000000,
25400x0005007f, 25480x00050080,
25410xe1e00000, 25490xe1e00000,
25420xe3e01000, 25500xe3e01000,
25430x000a0000, 25510x000a0000,
25440xea000000, 25520xea000000,
25450x00050047, 25530x00050048,
25460x00060087, 25540x00060088,
25470xe1c900d8, 25550xe1c900d8,
25480xe35b0010, 25560xe35b0010,
25490x3a000000, 25570x3a000000,
25500x00050044, 25580x00050045,
25510xe3710000, 25590xe3710000,
25520x000a0000, 25600x000a0000,
25530x1b000000, 25610x1b000000,
25540x0005007f, 25620x00050080,
25550xe200a01f, 25630xe200a01f,
25560xe1c900d0, 25640xe1c900d0,
25570xe3710000, 25650xe3710000,
25580x000a0000, 25660x000a0000,
25590x1b000000, 25670x1b000000,
25600x0005007f, 25680x00050080,
25610xe1a00a10, 25690xe1a00a10,
25620xe3e01000, 25700xe3e01000,
25630x000a0000, 25710x000a0000,
25640xea000000, 25720xea000000,
25650x00050047, 25730x00050048,
25660x00060088, 25740x00060089,
25670xe1c900d8, 25750xe1c900d8,
25680xe35b0010, 25760xe35b0010,
25690x3a000000, 25770x3a000000,
25700x00050044, 25780x00050045,
25710xe3710000, 25790xe3710000,
25720x000a0000, 25800x000a0000,
25730x1b000000, 25810x1b000000,
25740x0005007f, 25820x00050080,
25750x00000000, 25830x00000000,
25760xe200a01f, 25840xe200a01f,
25770xe1c900d0, 25850xe1c900d0,
25780xe3710000, 25860xe3710000,
25790x000a0000, 25870x000a0000,
25800x1b000000, 25880x1b000000,
25810x0005007f, 25890x00050080,
25820xe1a00a30, 25900xe1a00a30,
25830xe3e01000, 25910xe3e01000,
25840x000a0000, 25920x000a0000,
25850xea000000, 25930xea000000,
25860x00050047, 25940x00050048,
25870x00060089, 25950x0006008a,
25880xe1c900d8, 25960xe1c900d8,
25890xe35b0010, 25970xe35b0010,
25900x3a000000, 25980x3a000000,
25910x00050044, 25990x00050045,
25920xe3710000, 26000xe3710000,
25930x000a0000, 26010x000a0000,
25940x1b000000, 26020x1b000000,
25950x0005007f, 26030x00050080,
25960xe200a01f, 26040xe200a01f,
25970xe1c900d0, 26050xe1c900d0,
25980xe3710000, 26060xe3710000,
25990x000a0000, 26070x000a0000,
26000x1b000000, 26080x1b000000,
26010x0005007f, 26090x00050080,
26020xe1a00a50, 26100xe1a00a50,
26030xe3e01000, 26110xe3e01000,
26040x000a0000, 26120x000a0000,
26050xea000000, 26130xea000000,
26060x00050047, 26140x00050048,
26070x0006008a, 26150x0006008b,
26080xe1c900d8, 26160xe1c900d8,
26090xe35b0010, 26170xe35b0010,
26100x3a000000, 26180x3a000000,
26110x00050044, 26190x00050045,
26120xe3710000, 26200xe3710000,
26130x000a0000, 26210x000a0000,
26140x1b000000, 26220x1b000000,
26150x0005007f, 26230x00050080,
26160xe260a000, 26240xe260a000,
26170xe1c900d0, 26250xe1c900d0,
26180xe3710000, 26260xe3710000,
26190x000a0000, 26270x000a0000,
26200x1b000000, 26280x1b000000,
26210x0005007f, 26290x00050080,
26220xe1a00a70, 26300xe1a00a70,
26230xe3e01000, 26310xe3e01000,
26240x000a0000, 26320x000a0000,
26250xea000000, 26330xea000000,
26260x00050047, 26340x00050048,
26270x0006008b, 26350x0006008c,
26280xe1c900d8, 26360xe1c900d8,
26290xe35b0010, 26370xe35b0010,
26300x3a000000, 26380x3a000000,
26310x00050044, 26390x00050045,
26320x00000000, 26400x00000000,
26330xe3710000, 26410xe3710000,
26340x000a0000, 26420x000a0000,
26350x1b000000, 26430x1b000000,
26360x0005007f, 26440x00050080,
26370xe200a01f, 26450xe200a01f,
26380xe1c900d0, 26460xe1c900d0,
26390xe3710000, 26470xe3710000,
26400x000a0000, 26480x000a0000,
26410x1b000000, 26490x1b000000,
26420x0005007f, 26500x00050080,
26430xe1a00a70, 26510xe1a00a70,
26440xe3e01000, 26520xe3e01000,
26450x000a0000, 26530x000a0000,
26460xea000000, 26540xea000000,
26470x00050047, 26550x00050048,
26480x00060044, 26560x00060045,
26490xe5192008, 26570xe5192008,
26500xe5181000, 26580xe5181000,
26510x000d8180, 26590x000d8180,
@@ -2671,7 +2679,7 @@ static const unsigned int build_actionlist[5675] = {
26710xe1a0b180, 26790xe1a0b180,
26720xe249a008, 26800xe249a008,
26730xca000000, 26810xca000000,
26740x00050045, 26820x00050046,
26750x0006000b, 26830x0006000b,
26760xe5180000, 26840xe5180000,
26770x000d8180, 26850x000d8180,
@@ -2709,7 +2717,7 @@ static const unsigned int build_actionlist[5675] = {
27090xe1500000, 27170xe1500000,
27100xea000000, 27180xea000000,
27110x0005000b, 27190x0005000b,
27120x0006004d, 27200x0006004e,
27130xe1a0a00e, 27210xe1a0a00e,
27140xe5089000, 27220xe5089000,
27150x000d8180, 27230x000d8180,
@@ -2725,7 +2733,7 @@ static const unsigned int build_actionlist[5675] = {
27250xe1a0e00a, 27330xe1a0e00a,
27260xe5192008, 27340xe5192008,
27270xe12fff1e, 27350xe12fff1e,
27280x0006008c, 27360x0006008d,
27290x00000000, 27370x00000000,
27300xe5570000, 27380xe5570000,
27310x000d8180, 27390x000d8180,
@@ -2747,7 +2755,7 @@ static const unsigned int build_actionlist[5675] = {
27470xea000000, 27550xea000000,
27480x00050001, 27560x00050001,
27490x00000000, 27570x00000000,
27500x0006008d, 27580x0006008e,
27510xe5570000, 27590xe5570000,
27520x000d8180, 27600x000d8180,
27530xe3100000, 27610xe3100000,
@@ -2759,7 +2767,7 @@ static const unsigned int build_actionlist[5675] = {
27590xe087c10c, 27670xe087c10c,
27600xe51cf000, 27680xe51cf000,
27610x000d8180, 27690x000d8180,
27620x0006008e, 27700x0006008f,
27630xe5570000, 27710xe5570000,
27640x000d8180, 27720x000d8180,
27650xe5171000, 27730xe5171000,
@@ -2801,13 +2809,13 @@ static const unsigned int build_actionlist[5675] = {
28010xe004a2ae, 28090xe004a2ae,
28020xe1a0b82e, 28100xe1a0b82e,
28030xe12fff1c, 28110xe12fff1c,
28040x0006008f, 28120x00060090,
28050xe5130018, 28130xe5130018,
28060xe2866004, 28140xe2866004,
28070xe58d0004, 28150xe58d0004,
28080xea000000, 28160xea000000,
28090x0005000e, 28170x0005000e,
28100x00060090, 28180x00060091,
28110x00000000, 28190x00000000,
28120xe5192008, 28200xe5192008,
28130xe2470000, 28210xe2470000,
@@ -2830,13 +2838,13 @@ static const unsigned int build_actionlist[5675] = {
28300xea000000, 28380xea000000,
28310x0005000d, 28390x0005000d,
28320x00000000, 28400x00000000,
28330x00060091, 28410x00060092,
28340xe1a01006, 28420xe1a01006,
28350x00000000, 28430x00000000,
28360xea000000, 28440xea000000,
28370x00050001, 28450x00050001,
28380x00000000, 28460x00000000,
28390x00060092, 28470x00060093,
28400x00000000, 28480x00000000,
28410xe3861001, 28490xe3861001,
28420x0006000b, 28500x0006000b,
@@ -2862,7 +2870,7 @@ static const unsigned int build_actionlist[5675] = {
28620xe5192008, 28700xe5192008,
28630xe516e004, 28710xe516e004,
28640xe12fff10, 28720xe12fff10,
28650x00060093, 28730x00060094,
28660x00000000, 28740x00000000,
28670xe24dd00c, 28750xe24dd00c,
28680xe92d1fff, 28760xe92d1fff,
@@ -2912,7 +2920,7 @@ static const unsigned int build_actionlist[5675] = {
29120xea000000, 29200xea000000,
29130x00050001, 29210x00050001,
29140x00000000, 29220x00000000,
29150x00060094, 29230x00060095,
29160x00000000, 29240x00000000,
29170xe59d800c, 29250xe59d800c,
29180x0006000b, 29260x0006000b,
@@ -2953,7 +2961,7 @@ static const unsigned int build_actionlist[5675] = {
29530x00000000, 29610x00000000,
29540x00060013, 29620x00060013,
29550x3ff00000, 29630x3ff00000,
29560x00060058, 29640x00060059,
29570xe1a02081, 29650xe1a02081,
29580xe292c980, 29660xe292c980,
29590x5a000000, 29670x5a000000,
@@ -2988,7 +2996,7 @@ static const unsigned int build_actionlist[5675] = {
29880x00050813, 29960x00050813,
29890x11811003, 29970x11811003,
29900xe12fff1e, 29980xe12fff1e,
29910x0006005a, 29990x0006005b,
29920xe1a02081, 30000xe1a02081,
29930xe292c980, 30010xe292c980,
29940x5a000000, 30020x5a000000,
@@ -3023,7 +3031,7 @@ static const unsigned int build_actionlist[5675] = {
30230x00050813, 30310x00050813,
30240x11811003, 30320x11811003,
30250xe12fff1e, 30330xe12fff1e,
30260x00060095, 30340x00060096,
30270x00000000, 30350x00000000,
30280xe1a02081, 30360xe1a02081,
30290xe292c980, 30370xe292c980,
@@ -3039,12 +3047,12 @@ static const unsigned int build_actionlist[5675] = {
30390x50011c13, 30470x50011c13,
30400xe12fff1e, 30480xe12fff1e,
30410x00000000, 30490x00000000,
30420x00060096, 30500x00060097,
30430xe92d401f, 30510xe92d401f,
30440xeb000000, 30520xeb000000,
30450x0003002d, 30530x0003002d,
30460xeb000000, 30540xeb000000,
30470x00050058, 30550x00050059,
30480xe1cd20d8, 30560xe1cd20d8,
30490xeb000000, 30570xeb000000,
30500x0003001f, 30580x0003001f,
@@ -3054,7 +3062,7 @@ static const unsigned int build_actionlist[5675] = {
30540x0003002e, 30620x0003002e,
30550xe28dd014, 30630xe28dd014,
30560xe8bd8000, 30640xe8bd8000,
30570x00060097, 30650x00060098,
30580xe210c480, 30660xe210c480,
30590x42600000, 30670x42600000,
30600xe02cc0c1, 30680xe02cc0c1,
@@ -3087,7 +3095,7 @@ static const unsigned int build_actionlist[5675] = {
30870xe030108c, 30950xe030108c,
30880x42600000, 30960x42600000,
30890xe12fff1e, 30970xe12fff1e,
30900x00060098, 30980x00060099,
30910xe59dc000, 30990xe59dc000,
30920xe35c0001, 31000xe35c0001,
30930x3a000000, 31010x3a000000,
@@ -3101,7 +3109,7 @@ static const unsigned int build_actionlist[5675] = {
31010x0003002d, 31090x0003002d,
31020xe35c0005, 31100xe35c0005,
31030x3a000000, 31110x3a000000,
31040x00050096, 31120x00050097,
31050x0a000000, 31130x0a000000,
31060x0003001c, 31140x0003001c,
31070xe35c0007, 31150xe35c0007,
@@ -3136,7 +3144,7 @@ static const unsigned int build_actionlist[5675] = {
31360x00000000, 31440x00000000,
31370xe7f001f0, 31450xe7f001f0,
31380x00000000, 31460x00000000,
31390x00060099, 31470x0006009a,
31400x00000000, 31480x00000000,
31410xe92d4830, 31490xe92d4830,
31420xe1a04000, 31500xe1a04000,
@@ -3261,10 +3269,10 @@ static const unsigned int build_actionlist[5675] = {
32610x000a0000, 32690x000a0000,
32620x00000000, 32700x00000000,
32630x9a000000, 32710x9a000000,
32640x0005009a, 32720x0005009b,
32650x00000000, 32730x00000000,
32660x9a000000, 32740x9a000000,
32670x0005009b, 32750x0005009c,
32680x00000000, 32760x00000000,
32690xe3710000, 32770xe3710000,
32700x000a0000, 32780x000a0000,
@@ -3382,10 +3390,10 @@ static const unsigned int build_actionlist[5675] = {
33820xe2866004, 33900xe2866004,
33830xe086c10c, 33910xe086c10c,
33840x00000000, 33920x00000000,
33850x0006009a,
33860x00000000,
33870x0006009b, 33930x0006009b,
33880x00000000, 33940x00000000,
33950x0006009c,
33960x00000000,
33890xe3710000, 33970xe3710000,
33900x000a0000, 33980x000a0000,
33910x1a000000, 33990x1a000000,
@@ -3574,6 +3582,15 @@ static const unsigned int build_actionlist[5675] = {
35740x1a000000, 35820x1a000000,
35750x0005003f, 35830x0005003f,
35760x00000000, 35840x00000000,
35850xe5102000,
35860x000d8180,
35870xe3520000,
35880x1a000000,
35890x00050009,
35900x0006000d,
35910x00000000,
35920x00060040,
35930x00000000,
35770xe1a0b009, 35940xe1a0b009,
35780x00000000, 35950x00000000,
35790xeb000000, 35960xeb000000,
@@ -3584,6 +3601,16 @@ static const unsigned int build_actionlist[5675] = {
35840xea000000, 36010xea000000,
35850x0005000b, 36020x0005000b,
35860x00000000, 36030x00000000,
36040x00060013,
36050xe5523000,
36060x000d8180,
36070xe3130000,
36080x000a0000,
36090x1a000000,
36100x0005000d,
36110xea000000,
36120x0005003f,
36130x00000000,
35870xe004caae, 36140xe004caae,
35880xe004b6ae, 36150xe004b6ae,
35890x00000000, 36160x00000000,
@@ -3955,7 +3982,7 @@ static const unsigned int build_actionlist[5675] = {
39550x0005003e, 39820x0005003e,
39560x00000000, 39830x00000000,
39570xeb000000, 39840xeb000000,
39580x00050097, 39850x00050098,
39590xe3e01000, 39860xe3e01000,
39600x000a0000, 39870x000a0000,
39610x0006000e, 39880x0006000e,
@@ -4008,7 +4035,7 @@ static const unsigned int build_actionlist[5675] = {
40080x0005003e, 40350x0005003e,
40090x00000000, 40360x00000000,
40100xeb000000, 40370xeb000000,
40110x00050096, 40380x00050097,
40120xea000000, 40390xea000000,
40130x0005000e, 40400x0005000e,
40140x00000000, 40410x00000000,
@@ -4426,10 +4453,10 @@ static const unsigned int build_actionlist[5675] = {
44260xe795b10b, 44530xe795b10b,
44270x00000000, 44540x00000000,
44280xea000000, 44550xea000000,
44290x0005009c, 44560x0005009d,
44300x00000000, 44570x00000000,
44310xea000000, 44580xea000000,
44320x0005009d, 44590x0005009e,
44330x00000000, 44600x00000000,
44340xe004caae, 44610xe004caae,
44350xe004b6ae, 44620xe004b6ae,
@@ -4484,7 +4511,7 @@ static const unsigned int build_actionlist[5675] = {
44840x000a0000, 45110x000a0000,
44850x01a0b002, 45120x01a0b002,
44860x0a000000, 45130x0a000000,
44870x0005009c, 45140x0005009d,
44880xea000000, 45150xea000000,
44890x0005002f, 45160x0005002f,
44900x00000000, 45170x00000000,
@@ -4497,7 +4524,7 @@ static const unsigned int build_actionlist[5675] = {
44970x000a0000, 45240x000a0000,
44980x1a000000, 45250x1a000000,
44990x0005002c, 45260x0005002c,
45000x0006009c, 45270x0006009d,
45010xe5102000, 45280xe5102000,
45020x000d8180, 45290x000d8180,
45030xe51b3000, 45300xe51b3000,
@@ -4675,7 +4702,7 @@ static const unsigned int build_actionlist[5675] = {
46750x000a0000, 47020x000a0000,
46760x01a0b002, 47030x01a0b002,
46770x0a000000, 47040x0a000000,
46780x0005009d, 47050x0005009e,
46790xea000000, 47060xea000000,
46800x00050033, 47070x00050033,
46810x00000000, 47080x00000000,
@@ -4688,7 +4715,7 @@ static const unsigned int build_actionlist[5675] = {
46880x000a0000, 47150x000a0000,
46890x1a000000, 47160x1a000000,
46900x00050030, 47170x00050030,
46910x0006009d, 47180x0006009e,
46920xe5102000, 47190xe5102000,
46930x000d8180, 47200x000d8180,
46940xe51b3000, 47210xe51b3000,
@@ -4934,10 +4961,10 @@ static const unsigned int build_actionlist[5675] = {
49340xe004b6ae, 49610xe004b6ae,
49350xe08bb000, 49620xe08bb000,
49360xea000000, 49630xea000000,
49370x0005009e, 49640x0005009f,
49380x00000000, 49650x00000000,
49390xe004b6ae, 49660xe004b6ae,
49400x0006009e, 49670x0006009f,
49410xe1a0c009, 49680xe1a0c009,
49420xe1a920da, 49690xe1a920da,
49430xe24bb008, 49700xe24bb008,
@@ -4959,19 +4986,19 @@ static const unsigned int build_actionlist[5675] = {
49590xe59d0004, 49860xe59d0004,
49600xe080b18b, 49870xe080b18b,
49610xea000000, 49880xea000000,
49620x0005009f, 49890x000500a0,
49630x00000000, 49900x00000000,
49640xe1a0b18b, 49910xe1a0b18b,
49650x0006009f, 49920x000600a0,
49660xe1aa20d9, 49930xe1aa20d9,
49670xe24bb008, 49940xe24bb008,
49680xe28aa008, 49950xe28aa008,
49690xe3730000, 49960xe3730000,
49700x000a0000, 49970x000a0000,
49710x1a000000, 49980x1a000000,
49720x00050040, 49990x00050041,
49730xe5196004, 50000xe5196004,
49740x00060041, 50010x00060042,
49750xe3a0c000, 50020xe3a0c000,
49760xe5523000, 50030xe5523000,
49770x000d8180, 50040x000d8180,
@@ -5238,12 +5265,12 @@ static const unsigned int build_actionlist[5675] = {
52380xe089a00a, 52650xe089a00a,
52390xe080b18b, 52660xe080b18b,
52400xea000000, 52670xea000000,
52410x000500a0, 52680x000500a1,
52420x00000000, 52690x00000000,
52430xe5196004, 52700xe5196004,
52440xe1a0b18b, 52710xe1a0b18b,
52450xe089a00a, 52720xe089a00a,
52460x000600a0, 52730x000600a1,
52470xe58db004, 52740xe58db004,
52480x0006000b, 52750x0006000b,
52490xe2160000, 52760xe2160000,
@@ -5251,7 +5278,7 @@ static const unsigned int build_actionlist[5675] = {
52510xe2261000, 52780xe2261000,
52520x000a0000, 52790x000a0000,
52530x1a000000, 52800x1a000000,
52540x000500a1, 52810x000500a2,
52550x00060017, 52820x00060017,
52560xe516e004, 52830xe516e004,
52570xe25b3008, 52840xe25b3008,
@@ -5293,9 +5320,9 @@ static const unsigned int build_actionlist[5675] = {
52930xe509100c, 53200xe509100c,
52940xea000000, 53210xea000000,
52950x0005000f, 53220x0005000f,
52960x000600a2, 53230x000600a3,
52970xe089a00a, 53240xe089a00a,
52980x000600a1, 53250x000600a2,
52990xe3110000, 53260xe3110000,
53000x000a0000, 53270x000a0000,
53010x1a000000, 53280x1a000000,
@@ -5314,7 +5341,7 @@ static const unsigned int build_actionlist[5675] = {
53140x000a0000, 53410x000a0000,
53150x0516e004, 53420x0516e004,
53160x1a000000, 53430x1a000000,
53170x000500a2, 53440x000500a3,
53180x00000000, 53450x00000000,
53190xe18900da, 53460xe18900da,
53200x00000000, 53470x00000000,
@@ -5357,7 +5384,7 @@ static const unsigned int build_actionlist[5675] = {
53570xe2511001, 53840xe2511001,
53580xe18710b0, 53850xe18710b0,
53590x0a000000, 53860x0a000000,
53600x00050090, 53870x00050091,
53610x00000000, 53880x00000000,
53620xe1aa00d9, 53890xe1aa00d9,
53630x00000000, 53900x00000000,
@@ -5375,7 +5402,7 @@ static const unsigned int build_actionlist[5675] = {
53750x037c0000, 54020x037c0000,
53760x000a0000, 54030x000a0000,
53770x1a000000, 54040x1a000000,
53780x00050042, 54050x00050043,
53790xe3530000, 54060xe3530000,
53800xba000000, 54070xba000000,
53810x00050004, 54080x00050004,
@@ -5438,7 +5465,7 @@ static const unsigned int build_actionlist[5675] = {
54380x337c0000, 54650x337c0000,
54390x000a0000, 54660x000a0000,
54400x2a000000, 54670x2a000000,
54410x00050042, 54680x00050043,
54420xe35c0000, 54690xe35c0000,
54430xe1ca00f0, 54700xe1ca00f0,
54440xe1ca01f8, 54710xe1ca01f8,
@@ -5495,7 +5522,7 @@ static const unsigned int build_actionlist[5675] = {
54950xe2511001, 55220xe2511001,
54960xe18710b0, 55230xe18710b0,
54970x0a000000, 55240x0a000000,
54980x00050090, 55250x00050091,
54990x00000000, 55260x00000000,
55000xe1aa00d9, 55270xe1aa00d9,
55010x00000000, 55280x00000000,
@@ -5526,7 +5553,7 @@ static const unsigned int build_actionlist[5675] = {
55260xe2511001, 55530xe2511001,
55270xe18710b0, 55540xe18710b0,
55280x0a000000, 55550x0a000000,
55290x00050090, 55560x00050091,
55300x00000000, 55570x00000000,
55310xe5d6c000, 55580xe5d6c000,
55320xe496e004, 55590xe496e004,
@@ -5566,7 +5593,7 @@ static const unsigned int build_actionlist[5675] = {
55660xe2511001, 55930xe2511001,
55670xe18710b0, 55940xe18710b0,
55680x0a000000, 55950x0a000000,
55690x00050092, 55960x00050093,
55700x00000000, 55970x00000000,
55710xe5180000, 55980xe5180000,
55720x000d8180, 55990x000d8180,
@@ -5735,6 +5762,7 @@ enum {
5735 GLOB_vmeta_unm, 5762 GLOB_vmeta_unm,
5736 GLOB_vmeta_arith_vv, 5763 GLOB_vmeta_arith_vv,
5737 GLOB_vmeta_len, 5764 GLOB_vmeta_len,
5765 GLOB_BC_LEN_Z,
5738 GLOB_vmeta_callt, 5766 GLOB_vmeta_callt,
5739 GLOB_BC_CALLT2_Z, 5767 GLOB_BC_CALLT2_Z,
5740 GLOB_vmeta_for, 5768 GLOB_vmeta_for,
@@ -5881,6 +5909,7 @@ static const char *const globnames[] = {
5881 "vmeta_unm", 5909 "vmeta_unm",
5882 "vmeta_arith_vv", 5910 "vmeta_arith_vv",
5883 "vmeta_len", 5911 "vmeta_len",
5912 "BC_LEN_Z",
5884 "vmeta_callt", 5913 "vmeta_callt",
5885 "BC_CALLT2_Z", 5914 "BC_CALLT2_Z",
5886 "vmeta_for", 5915 "vmeta_for",
@@ -6100,299 +6129,304 @@ static void build_subroutines(BuildCtx *ctx)
6100 if (LJ_TARGET_OSX) { 6129 if (LJ_TARGET_OSX) {
6101 dasm_put(Dst, 614, Dt1(->base)); 6130 dasm_put(Dst, 614, Dt1(->base));
6102 } 6131 }
6103 dasm_put(Dst, 617, Dt1(->base)); 6132#ifdef LUAJIT_ENABLE_LUA52COMPAT
6133 dasm_put(Dst, 617);
6134#else
6135 dasm_put(Dst, 624);
6136#endif
6137 dasm_put(Dst, 627, Dt1(->base));
6104 if (LJ_TARGET_OSX) { 6138 if (LJ_TARGET_OSX) {
6105 dasm_put(Dst, 627); 6139 dasm_put(Dst, 635);
6106 } 6140 }
6107 dasm_put(Dst, 629); 6141 dasm_put(Dst, 637);
6108 if (LJ_TARGET_OSX) { 6142 if (LJ_TARGET_OSX) {
6109 dasm_put(Dst, 632); 6143 dasm_put(Dst, 640);
6110 } 6144 }
6111 dasm_put(Dst, 634, Dt7(->field_pc), Dt1(->base)); 6145 dasm_put(Dst, 642, Dt7(->field_pc), Dt1(->base));
6112 if (LJ_TARGET_OSX) { 6146 if (LJ_TARGET_OSX) {
6113 dasm_put(Dst, 655, Dt1(->base)); 6147 dasm_put(Dst, 663, Dt1(->base));
6114 } 6148 }
6115 dasm_put(Dst, 658, Dt1(->base)); 6149 dasm_put(Dst, 666, Dt1(->base));
6116 if (LJ_TARGET_OSX) { 6150 if (LJ_TARGET_OSX) {
6117 dasm_put(Dst, 672, Dt1(->base)); 6151 dasm_put(Dst, 680, Dt1(->base));
6118 } 6152 }
6119#if LJ_HASJIT 6153#if LJ_HASJIT
6120 dasm_put(Dst, 675); 6154 dasm_put(Dst, 683);
6121#endif 6155#endif
6122 dasm_put(Dst, 677); 6156 dasm_put(Dst, 685);
6123#if LJ_HASJIT 6157#if LJ_HASJIT
6124 dasm_put(Dst, 679, BC_JFORI); 6158 dasm_put(Dst, 687, BC_JFORI);
6125#endif 6159#endif
6126 dasm_put(Dst, 682); 6160 dasm_put(Dst, 690);
6127#if LJ_HASJIT 6161#if LJ_HASJIT
6128 dasm_put(Dst, 685, BC_JFORI); 6162 dasm_put(Dst, 693, BC_JFORI);
6129#endif 6163#endif
6130 dasm_put(Dst, 688, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable)); 6164 dasm_put(Dst, 696, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable));
6131 dasm_put(Dst, 745, ~LJ_TNIL, DISPATCH_GL(gcroot[GCROOT_MMNAME+MM_metatable]), Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, ~LJ_TTAB, -LJ_TNIL, -LJ_TISNUM); 6165 dasm_put(Dst, 753, ~LJ_TNIL, DISPATCH_GL(gcroot[GCROOT_MMNAME+MM_metatable]), Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, ~LJ_TTAB, -LJ_TNIL, -LJ_TISNUM);
6132 dasm_put(Dst, 793, ~LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT]), -LJ_TTAB, Dt6(->metatable), -LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TTAB); 6166 dasm_put(Dst, 801, ~LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT]), -LJ_TTAB, Dt6(->metatable), -LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TTAB);
6133 dasm_put(Dst, 845); 6167 dasm_put(Dst, 853);
6134 if (LJ_TARGET_OSX) { 6168 if (LJ_TARGET_OSX) {
6135 dasm_put(Dst, 850); 6169 dasm_put(Dst, 858);
6136 } 6170 }
6137 dasm_put(Dst, 852); 6171 dasm_put(Dst, 860);
6138 if (LJ_TARGET_OSX) { 6172 if (LJ_TARGET_OSX) {
6139 dasm_put(Dst, 855); 6173 dasm_put(Dst, 863);
6140 } 6174 }
6141 dasm_put(Dst, 857, -LJ_TISNUM, -LJ_TSTR, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), -LJ_TISNUM, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), ~LJ_TSTR); 6175 dasm_put(Dst, 865, -LJ_TISNUM, -LJ_TSTR, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), -LJ_TISNUM, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), ~LJ_TSTR);
6142 dasm_put(Dst, 909, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top)); 6176 dasm_put(Dst, 917, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top));
6143 if (LJ_TARGET_OSX) { 6177 if (LJ_TARGET_OSX) {
6144 dasm_put(Dst, 932, Dt1(->base)); 6178 dasm_put(Dst, 940, Dt1(->base));
6145 } 6179 }
6146 dasm_put(Dst, 935, ~LJ_TNIL, (2+1)*8, -LJ_TTAB); 6180 dasm_put(Dst, 943, ~LJ_TNIL, (2+1)*8, -LJ_TTAB);
6147#ifdef LUAJIT_ENABLE_LUA52COMPAT 6181#ifdef LUAJIT_ENABLE_LUA52COMPAT
6148 dasm_put(Dst, 958, Dt6(->metatable)); 6182 dasm_put(Dst, 966, Dt6(->metatable));
6149#endif 6183#endif
6150 dasm_put(Dst, 961, Dt8(->upvalue[0])); 6184 dasm_put(Dst, 969, Dt8(->upvalue[0]));
6151#ifdef LUAJIT_ENABLE_LUA52COMPAT 6185#ifdef LUAJIT_ENABLE_LUA52COMPAT
6152 dasm_put(Dst, 965); 6186 dasm_put(Dst, 973);
6153#endif 6187#endif
6154 dasm_put(Dst, 969, ~LJ_TNIL, (3+1)*8, -LJ_TTAB, -LJ_TISNUM, Dt6(->asize), Dt6(->array), (0+1)*8, -LJ_TNIL, (2+1)*8, Dt6(->hmask)); 6188 dasm_put(Dst, 977, ~LJ_TNIL, (3+1)*8, -LJ_TTAB, -LJ_TISNUM, Dt6(->asize), Dt6(->array), (0+1)*8, -LJ_TNIL, (2+1)*8, Dt6(->hmask));
6155 if (LJ_TARGET_OSX) { 6189 if (LJ_TARGET_OSX) {
6156 dasm_put(Dst, 1019); 6190 dasm_put(Dst, 1027);
6157 } 6191 }
6158 dasm_put(Dst, 1021); 6192 dasm_put(Dst, 1029);
6159 if (LJ_TARGET_OSX) { 6193 if (LJ_TARGET_OSX) {
6160 dasm_put(Dst, 1024); 6194 dasm_put(Dst, 1032);
6161 } 6195 }
6162 dasm_put(Dst, 1026, -LJ_TTAB); 6196 dasm_put(Dst, 1034, -LJ_TTAB);
6163#ifdef LUAJIT_ENABLE_LUA52COMPAT 6197#ifdef LUAJIT_ENABLE_LUA52COMPAT
6164 dasm_put(Dst, 1042, Dt6(->metatable)); 6198 dasm_put(Dst, 1050, Dt6(->metatable));
6165#endif 6199#endif
6166 dasm_put(Dst, 1045, Dt8(->upvalue[0])); 6200 dasm_put(Dst, 1053, Dt8(->upvalue[0]));
6167#ifdef LUAJIT_ENABLE_LUA52COMPAT 6201#ifdef LUAJIT_ENABLE_LUA52COMPAT
6168 dasm_put(Dst, 1049); 6202 dasm_put(Dst, 1057);
6169#endif 6203#endif
6170 dasm_put(Dst, 1053, ~LJ_TISNUM, (3+1)*8, DISPATCH_GL(hookmask), HOOK_ACTIVE, 8+FRAME_PCALL, 8+FRAME_PCALLH, DISPATCH_GL(hookmask), -LJ_TFUNC, HOOK_ACTIVE, 16+FRAME_PCALL, 16+FRAME_PCALLH, -LJ_TTHREAD); 6204 dasm_put(Dst, 1061, ~LJ_TISNUM, (3+1)*8, DISPATCH_GL(hookmask), HOOK_ACTIVE, 8+FRAME_PCALL, 8+FRAME_PCALLH, DISPATCH_GL(hookmask), -LJ_TFUNC, HOOK_ACTIVE, 16+FRAME_PCALL, 16+FRAME_PCALLH, -LJ_TTHREAD);
6171 dasm_put(Dst, 1112, Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD); 6205 dasm_put(Dst, 1120, Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD);
6172 dasm_put(Dst, 1171, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top)); 6206 dasm_put(Dst, 1179, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top));
6173 dasm_put(Dst, 1231, Dt8(->upvalue[0].gcr), Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD); 6207 dasm_put(Dst, 1239, Dt8(->upvalue[0].gcr), Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD);
6174 dasm_put(Dst, 1287, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top)); 6208 dasm_put(Dst, 1295, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top));
6175 dasm_put(Dst, 1346, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); 6209 dasm_put(Dst, 1354, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM);
6176 dasm_put(Dst, 1412, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); 6210 dasm_put(Dst, 1420, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM);
6177 dasm_put(Dst, 1476, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL); 6211 dasm_put(Dst, 1484, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL);
6178 dasm_put(Dst, 1540, -LJ_TISNUM); 6212 dasm_put(Dst, 1548, -LJ_TISNUM);
6179 if (LJ_TARGET_OSX) { 6213 if (LJ_TARGET_OSX) {
6180 dasm_put(Dst, 1545); 6214 dasm_put(Dst, 1553);
6181 } 6215 }
6182 dasm_put(Dst, 1547); 6216 dasm_put(Dst, 1555);
6183 if (LJ_TARGET_OSX) { 6217 if (LJ_TARGET_OSX) {
6184 dasm_put(Dst, 1550); 6218 dasm_put(Dst, 1558);
6185 } 6219 }
6186 dasm_put(Dst, 1552, -LJ_TISNUM); 6220 dasm_put(Dst, 1560, -LJ_TISNUM);
6187 if (LJ_TARGET_OSX) { 6221 if (LJ_TARGET_OSX) {
6188 dasm_put(Dst, 1564); 6222 dasm_put(Dst, 1572);
6189 } 6223 }
6190 dasm_put(Dst, 1566); 6224 dasm_put(Dst, 1574);
6191 if (LJ_TARGET_OSX) { 6225 if (LJ_TARGET_OSX) {
6192 dasm_put(Dst, 1569); 6226 dasm_put(Dst, 1577);
6193 } 6227 }
6194 dasm_put(Dst, 1571, -LJ_TISNUM); 6228 dasm_put(Dst, 1579, -LJ_TISNUM);
6195 if (LJ_TARGET_OSX) { 6229 if (LJ_TARGET_OSX) {
6196 dasm_put(Dst, 1583); 6230 dasm_put(Dst, 1591);
6197 } 6231 }
6198 dasm_put(Dst, 1585); 6232 dasm_put(Dst, 1593);
6199 if (LJ_TARGET_OSX) { 6233 if (LJ_TARGET_OSX) {
6200 dasm_put(Dst, 1588); 6234 dasm_put(Dst, 1596);
6201 } 6235 }
6202 dasm_put(Dst, 1590, -LJ_TISNUM); 6236 dasm_put(Dst, 1598, -LJ_TISNUM);
6203 if (LJ_TARGET_OSX) { 6237 if (LJ_TARGET_OSX) {
6204 dasm_put(Dst, 1602); 6238 dasm_put(Dst, 1610);
6205 } 6239 }
6206 dasm_put(Dst, 1604); 6240 dasm_put(Dst, 1612);
6207 if (LJ_TARGET_OSX) { 6241 if (LJ_TARGET_OSX) {
6208 dasm_put(Dst, 1607); 6242 dasm_put(Dst, 1615);
6209 } 6243 }
6210 dasm_put(Dst, 1609, -LJ_TISNUM); 6244 dasm_put(Dst, 1617, -LJ_TISNUM);
6211 if (LJ_TARGET_OSX) { 6245 if (LJ_TARGET_OSX) {
6212 dasm_put(Dst, 1621); 6246 dasm_put(Dst, 1629);
6213 } 6247 }
6214 dasm_put(Dst, 1623); 6248 dasm_put(Dst, 1631);
6215 if (LJ_TARGET_OSX) { 6249 if (LJ_TARGET_OSX) {
6216 dasm_put(Dst, 1626); 6250 dasm_put(Dst, 1634);
6217 } 6251 }
6218 dasm_put(Dst, 1628, -LJ_TISNUM); 6252 dasm_put(Dst, 1636, -LJ_TISNUM);
6219 if (LJ_TARGET_OSX) { 6253 if (LJ_TARGET_OSX) {
6220 dasm_put(Dst, 1640); 6254 dasm_put(Dst, 1648);
6221 } 6255 }
6222 dasm_put(Dst, 1642); 6256 dasm_put(Dst, 1650);
6223 if (LJ_TARGET_OSX) { 6257 if (LJ_TARGET_OSX) {
6224 dasm_put(Dst, 1645); 6258 dasm_put(Dst, 1653);
6225 } 6259 }
6226 dasm_put(Dst, 1647, -LJ_TISNUM); 6260 dasm_put(Dst, 1655, -LJ_TISNUM);
6227 if (LJ_TARGET_OSX) { 6261 if (LJ_TARGET_OSX) {
6228 dasm_put(Dst, 1659); 6262 dasm_put(Dst, 1667);
6229 } 6263 }
6230 dasm_put(Dst, 1661); 6264 dasm_put(Dst, 1669);
6231 if (LJ_TARGET_OSX) { 6265 if (LJ_TARGET_OSX) {
6232 dasm_put(Dst, 1664); 6266 dasm_put(Dst, 1672);
6233 } 6267 }
6234 dasm_put(Dst, 1666, -LJ_TISNUM); 6268 dasm_put(Dst, 1674, -LJ_TISNUM);
6235 if (LJ_TARGET_OSX) { 6269 if (LJ_TARGET_OSX) {
6236 dasm_put(Dst, 1678); 6270 dasm_put(Dst, 1686);
6237 } 6271 }
6238 dasm_put(Dst, 1680); 6272 dasm_put(Dst, 1688);
6239 if (LJ_TARGET_OSX) { 6273 if (LJ_TARGET_OSX) {
6240 dasm_put(Dst, 1683); 6274 dasm_put(Dst, 1691);
6241 } 6275 }
6242 dasm_put(Dst, 1685, -LJ_TISNUM); 6276 dasm_put(Dst, 1693, -LJ_TISNUM);
6243 if (LJ_TARGET_OSX) { 6277 if (LJ_TARGET_OSX) {
6244 dasm_put(Dst, 1697); 6278 dasm_put(Dst, 1705);
6245 } 6279 }
6246 dasm_put(Dst, 1699); 6280 dasm_put(Dst, 1707);
6247 if (LJ_TARGET_OSX) { 6281 if (LJ_TARGET_OSX) {
6248 dasm_put(Dst, 1702); 6282 dasm_put(Dst, 1710);
6249 } 6283 }
6250 dasm_put(Dst, 1704, -LJ_TISNUM); 6284 dasm_put(Dst, 1712, -LJ_TISNUM);
6251 if (LJ_TARGET_OSX) { 6285 if (LJ_TARGET_OSX) {
6252 dasm_put(Dst, 1716); 6286 dasm_put(Dst, 1724);
6253 } 6287 }
6254 dasm_put(Dst, 1718); 6288 dasm_put(Dst, 1726);
6255 if (LJ_TARGET_OSX) { 6289 if (LJ_TARGET_OSX) {
6256 dasm_put(Dst, 1721); 6290 dasm_put(Dst, 1729);
6257 } 6291 }
6258 dasm_put(Dst, 1723, -LJ_TISNUM); 6292 dasm_put(Dst, 1731, -LJ_TISNUM);
6259 if (LJ_TARGET_OSX) { 6293 if (LJ_TARGET_OSX) {
6260 dasm_put(Dst, 1735); 6294 dasm_put(Dst, 1743);
6261 } 6295 }
6262 dasm_put(Dst, 1737); 6296 dasm_put(Dst, 1745);
6263 if (LJ_TARGET_OSX) { 6297 if (LJ_TARGET_OSX) {
6264 dasm_put(Dst, 1740); 6298 dasm_put(Dst, 1748);
6265 } 6299 }
6266 dasm_put(Dst, 1742, -LJ_TISNUM); 6300 dasm_put(Dst, 1750, -LJ_TISNUM);
6267 if (LJ_TARGET_OSX) { 6301 if (LJ_TARGET_OSX) {
6268 dasm_put(Dst, 1754); 6302 dasm_put(Dst, 1762);
6269 } 6303 }
6270 dasm_put(Dst, 1756); 6304 dasm_put(Dst, 1764);
6271 if (LJ_TARGET_OSX) { 6305 if (LJ_TARGET_OSX) {
6272 dasm_put(Dst, 1759); 6306 dasm_put(Dst, 1767);
6273 } 6307 }
6274 dasm_put(Dst, 1761, -LJ_TISNUM); 6308 dasm_put(Dst, 1769, -LJ_TISNUM);
6275 if (LJ_TARGET_OSX) { 6309 if (LJ_TARGET_OSX) {
6276 dasm_put(Dst, 1773); 6310 dasm_put(Dst, 1781);
6277 } 6311 }
6278 dasm_put(Dst, 1775); 6312 dasm_put(Dst, 1783);
6279 if (LJ_TARGET_OSX) { 6313 if (LJ_TARGET_OSX) {
6280 dasm_put(Dst, 1778); 6314 dasm_put(Dst, 1786);
6281 } 6315 }
6282 dasm_put(Dst, 1780, -LJ_TISNUM, -LJ_TISNUM); 6316 dasm_put(Dst, 1788, -LJ_TISNUM, -LJ_TISNUM);
6283 if (LJ_TARGET_OSX) { 6317 if (LJ_TARGET_OSX) {
6284 dasm_put(Dst, 1795); 6318 dasm_put(Dst, 1803);
6285 } 6319 }
6286 dasm_put(Dst, 1797); 6320 dasm_put(Dst, 1805);
6287 if (LJ_TARGET_OSX) { 6321 if (LJ_TARGET_OSX) {
6288 dasm_put(Dst, 1800); 6322 dasm_put(Dst, 1808);
6289 } 6323 }
6290 dasm_put(Dst, 1802, -LJ_TISNUM, -LJ_TISNUM); 6324 dasm_put(Dst, 1810, -LJ_TISNUM, -LJ_TISNUM);
6291 if (LJ_TARGET_OSX) { 6325 if (LJ_TARGET_OSX) {
6292 dasm_put(Dst, 1817); 6326 dasm_put(Dst, 1825);
6293 } 6327 }
6294 dasm_put(Dst, 1819); 6328 dasm_put(Dst, 1827);
6295 if (LJ_TARGET_OSX) { 6329 if (LJ_TARGET_OSX) {
6296 dasm_put(Dst, 1822); 6330 dasm_put(Dst, 1830);
6297 } 6331 }
6298 dasm_put(Dst, 1824, -LJ_TISNUM, -LJ_TISNUM); 6332 dasm_put(Dst, 1832, -LJ_TISNUM, -LJ_TISNUM);
6299 if (LJ_TARGET_OSX) { 6333 if (LJ_TARGET_OSX) {
6300 dasm_put(Dst, 1839); 6334 dasm_put(Dst, 1847);
6301 } 6335 }
6302 dasm_put(Dst, 1841); 6336 dasm_put(Dst, 1849);
6303 if (LJ_TARGET_OSX) { 6337 if (LJ_TARGET_OSX) {
6304 dasm_put(Dst, 1844); 6338 dasm_put(Dst, 1852);
6305 } 6339 }
6306 dasm_put(Dst, 1846, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM); 6340 dasm_put(Dst, 1854, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM);
6307 if (LJ_TARGET_OSX) { 6341 if (LJ_TARGET_OSX) {
6308 dasm_put(Dst, 1879); 6342 dasm_put(Dst, 1887);
6309 } 6343 }
6310 dasm_put(Dst, 1881); 6344 dasm_put(Dst, 1889);
6311 if (LJ_TARGET_OSX) { 6345 if (LJ_TARGET_OSX) {
6312 dasm_put(Dst, 1884); 6346 dasm_put(Dst, 1892);
6313 } 6347 }
6314 dasm_put(Dst, 1886, -LJ_TISNUM); 6348 dasm_put(Dst, 1894, -LJ_TISNUM);
6315 if (LJ_TARGET_OSX) { 6349 if (LJ_TARGET_OSX) {
6316 dasm_put(Dst, 1899); 6350 dasm_put(Dst, 1907);
6317 } 6351 }
6318 dasm_put(Dst, 1901); 6352 dasm_put(Dst, 1909);
6319 if (LJ_TARGET_OSX) { 6353 if (LJ_TARGET_OSX) {
6320 dasm_put(Dst, 1904); 6354 dasm_put(Dst, 1912);
6321 } 6355 }
6322 dasm_put(Dst, 1906, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM); 6356 dasm_put(Dst, 1914, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM);
6323 if (LJ_TARGET_OSX) { 6357 if (LJ_TARGET_OSX) {
6324 dasm_put(Dst, 1928); 6358 dasm_put(Dst, 1936);
6325 } 6359 }
6326 dasm_put(Dst, 1930); 6360 dasm_put(Dst, 1938);
6327 if (LJ_TARGET_OSX) { 6361 if (LJ_TARGET_OSX) {
6328 dasm_put(Dst, 1933); 6362 dasm_put(Dst, 1941);
6329 } 6363 }
6330 dasm_put(Dst, 1935, (2+1)*8, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); 6364 dasm_put(Dst, 1943, (2+1)*8, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM);
6331 dasm_put(Dst, 1986, -LJ_TISNUM, -LJ_TISNUM); 6365 dasm_put(Dst, 1994, -LJ_TISNUM, -LJ_TISNUM);
6332 dasm_put(Dst, 2040, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TSTR, Dt5(->len), Dt5([1])); 6366 dasm_put(Dst, 2048, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TSTR, Dt5(->len), Dt5([1]));
6333 dasm_put(Dst, 2094, ~LJ_TISNUM, (0+1)*8, (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TISNUM, Dt1(->base), Dt1(->base), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 6367 dasm_put(Dst, 2102, ~LJ_TISNUM, (0+1)*8, (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TISNUM, Dt1(->base), Dt1(->base), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
6334 dasm_put(Dst, 2153, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), -LJ_TISNUM, sizeof(GCstr)-1, -DISPATCH_GL(strempty), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, -LJ_TISNUM, Dt5(->len)); 6368 dasm_put(Dst, 2161, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), -LJ_TISNUM, sizeof(GCstr)-1, -DISPATCH_GL(strempty), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, -LJ_TISNUM, Dt5(->len));
6335 dasm_put(Dst, 2215, DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr)); 6369 dasm_put(Dst, 2223, DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr));
6336 dasm_put(Dst, 2268, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 6370 dasm_put(Dst, 2276, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
6337 dasm_put(Dst, 2328, -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), -LJ_TTAB); 6371 dasm_put(Dst, 2336, -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), -LJ_TTAB);
6338 if (LJ_TARGET_OSX) { 6372 if (LJ_TARGET_OSX) {
6339 dasm_put(Dst, 2366); 6373 dasm_put(Dst, 2374);
6340 } 6374 }
6341 dasm_put(Dst, 2368); 6375 dasm_put(Dst, 2376);
6342 if (LJ_TARGET_OSX) { 6376 if (LJ_TARGET_OSX) {
6343 dasm_put(Dst, 2371); 6377 dasm_put(Dst, 2379);
6344 } 6378 }
6345 dasm_put(Dst, 2373, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); 6379 dasm_put(Dst, 2381, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM);
6346 dasm_put(Dst, 2444, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); 6380 dasm_put(Dst, 2452, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM);
6347 dasm_put(Dst, 2504, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM); 6381 dasm_put(Dst, 2512, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM);
6348 dasm_put(Dst, 2560, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); 6382 dasm_put(Dst, 2568, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM);
6349 dasm_put(Dst, 2617, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, Dt1(->maxstack), Dt1(->top), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt7(->field_pc), FRAME_TYPE, FRAME_TYPEP); 6383 dasm_put(Dst, 2625, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, Dt1(->maxstack), Dt1(->top), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt7(->field_pc), FRAME_TYPE, FRAME_TYPEP);
6350 dasm_put(Dst, 2680, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base)); 6384 dasm_put(Dst, 2688, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base));
6351#if LJ_HASJIT 6385#if LJ_HASJIT
6352 dasm_put(Dst, 2714, DISPATCH_GL(hookmask), HOOK_VMEVENT, DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 6386 dasm_put(Dst, 2722, DISPATCH_GL(hookmask), HOOK_VMEVENT, DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
6353#endif 6387#endif
6354 dasm_put(Dst, 2734, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); 6388 dasm_put(Dst, 2742, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base));
6355 dasm_put(Dst, 2780, GG_DISP2STATIC); 6389 dasm_put(Dst, 2788, GG_DISP2STATIC);
6356#if LJ_HASJIT 6390#if LJ_HASJIT
6357 dasm_put(Dst, 2796, -GG_DISP2J, Dt7(->field_pc), DISPATCH_J(L), PC2PROTO(framesize), Dt1(->base), Dt1(->top)); 6391 dasm_put(Dst, 2804, -GG_DISP2J, Dt7(->field_pc), DISPATCH_J(L), PC2PROTO(framesize), Dt1(->base), Dt1(->top));
6358#endif 6392#endif
6359 dasm_put(Dst, 2817); 6393 dasm_put(Dst, 2825);
6360#if LJ_HASJIT 6394#if LJ_HASJIT
6361 dasm_put(Dst, 2820); 6395 dasm_put(Dst, 2828);
6362#endif 6396#endif
6363 dasm_put(Dst, 2823); 6397 dasm_put(Dst, 2831);
6364#if LJ_HASJIT 6398#if LJ_HASJIT
6365 dasm_put(Dst, 2825); 6399 dasm_put(Dst, 2833);
6366#endif 6400#endif
6367 dasm_put(Dst, 2828, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 6401 dasm_put(Dst, 2836, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
6368#if LJ_HASJIT 6402#if LJ_HASJIT
6369 dasm_put(Dst, 2851, LJ_VMST_EXIT, DISPATCH_GL(vmstate), DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(exitno), DISPATCH_J(L), Dt1(->base), DISPATCH_GL(jit_L), -GG_DISP2J, Dt1(->cframe), Dt1(->base), ~CFRAME_RAWMASK); 6403 dasm_put(Dst, 2859, LJ_VMST_EXIT, DISPATCH_GL(vmstate), DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(exitno), DISPATCH_J(L), Dt1(->base), DISPATCH_GL(jit_L), -GG_DISP2J, Dt1(->cframe), Dt1(->base), ~CFRAME_RAWMASK);
6370#endif 6404#endif
6371 dasm_put(Dst, 2899); 6405 dasm_put(Dst, 2907);
6372#if LJ_HASJIT 6406#if LJ_HASJIT
6373 dasm_put(Dst, 2901, Dt7(->field_pc), DISPATCH_GL(jit_L), LJ_VMST_INTERP, PC2PROTO(k), DISPATCH_GL(vmstate), BC_FUNCF); 6407 dasm_put(Dst, 2909, Dt7(->field_pc), DISPATCH_GL(jit_L), LJ_VMST_INTERP, PC2PROTO(k), DISPATCH_GL(vmstate), BC_FUNCF);
6374#endif 6408#endif
6375 dasm_put(Dst, 2938); 6409 dasm_put(Dst, 2946);
6376#if LJ_HASJIT 6410#if LJ_HASJIT
6377 dasm_put(Dst, 3012); 6411 dasm_put(Dst, 3020);
6378#endif 6412#endif
6379 dasm_put(Dst, 3026); 6413 dasm_put(Dst, 3034);
6380 { 6414 {
6381 int i; 6415 int i;
6382 for (i = 31; i >= 0; i--) { 6416 for (i = 31; i >= 0; i--) {
6383 dasm_put(Dst, 3062, i, i); 6417 dasm_put(Dst, 3070, i, i);
6384 } 6418 }
6385 } 6419 }
6386 dasm_put(Dst, 3067); 6420 dasm_put(Dst, 3075);
6387#if LJ_HASJIT 6421#if LJ_HASJIT
6388 dasm_put(Dst, 3096); 6422 dasm_put(Dst, 3104);
6389#else 6423#else
6390 dasm_put(Dst, 3121); 6424 dasm_put(Dst, 3129);
6391#endif 6425#endif
6392 dasm_put(Dst, 3123); 6426 dasm_put(Dst, 3131);
6393#if LJ_HASFFI 6427#if LJ_HASFFI
6394#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 6428#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
6395 dasm_put(Dst, 3125, DtE(->spadj), DtE(->nsp), offsetof(CCallState, stack), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[0]), DtE(->gpr[1])); 6429 dasm_put(Dst, 3133, DtE(->spadj), DtE(->nsp), offsetof(CCallState, stack), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[0]), DtE(->gpr[1]));
6396#endif 6430#endif
6397} 6431}
6398 6432
@@ -6400,7 +6434,7 @@ static void build_subroutines(BuildCtx *ctx)
6400static void build_ins(BuildCtx *ctx, BCOp op, int defop) 6434static void build_ins(BuildCtx *ctx, BCOp op, int defop)
6401{ 6435{
6402 int vk = 0; 6436 int vk = 0;
6403 dasm_put(Dst, 3163, defop); 6437 dasm_put(Dst, 3171, defop);
6404 6438
6405 switch (op) { 6439 switch (op) {
6406 6440
@@ -6409,571 +6443,578 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
6409 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 6443 /* Remember: all ops branch for a true comparison, fall through otherwise. */
6410 6444
6411 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 6445 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
6412 dasm_put(Dst, 3165, -LJ_TISNUM, -LJ_TISNUM); 6446 dasm_put(Dst, 3173, -LJ_TISNUM, -LJ_TISNUM);
6413 if (op == BC_ISLT) { 6447 if (op == BC_ISLT) {
6414 dasm_put(Dst, 3181); 6448 dasm_put(Dst, 3189);
6415 } else if (op == BC_ISGE) { 6449 } else if (op == BC_ISGE) {
6416 dasm_put(Dst, 3183); 6450 dasm_put(Dst, 3191);
6417 } else if (op == BC_ISLE) { 6451 } else if (op == BC_ISLE) {
6418 dasm_put(Dst, 3185); 6452 dasm_put(Dst, 3193);
6419 } else { 6453 } else {
6420 dasm_put(Dst, 3187); 6454 dasm_put(Dst, 3195);
6421 } 6455 }
6422 dasm_put(Dst, 3189, -LJ_TISNUM); 6456 dasm_put(Dst, 3197, -LJ_TISNUM);
6423 if (op == BC_ISLT) { 6457 if (op == BC_ISLT) {
6424 dasm_put(Dst, 3225); 6458 dasm_put(Dst, 3233);
6425 } else if (op == BC_ISGE) { 6459 } else if (op == BC_ISGE) {
6426 dasm_put(Dst, 3227); 6460 dasm_put(Dst, 3235);
6427 } else if (op == BC_ISLE) { 6461 } else if (op == BC_ISLE) {
6428 dasm_put(Dst, 3229); 6462 dasm_put(Dst, 3237);
6429 } else { 6463 } else {
6430 dasm_put(Dst, 3231); 6464 dasm_put(Dst, 3239);
6431 } 6465 }
6432 dasm_put(Dst, 3233); 6466 dasm_put(Dst, 3241);
6433 break; 6467 break;
6434 6468
6435 case BC_ISEQV: case BC_ISNEV: 6469 case BC_ISEQV: case BC_ISNEV:
6436 vk = op == BC_ISEQV; 6470 vk = op == BC_ISEQV;
6437 dasm_put(Dst, 3236, -LJ_TISNUM, -LJ_TISNUM); 6471 dasm_put(Dst, 3244, -LJ_TISNUM, -LJ_TISNUM);
6438 if (vk) { 6472 if (vk) {
6439 dasm_put(Dst, 3247); 6473 dasm_put(Dst, 3255);
6440 } else { 6474 } else {
6441 dasm_put(Dst, 3250); 6475 dasm_put(Dst, 3258);
6442 } 6476 }
6443 if (LJ_HASFFI) { 6477 if (LJ_HASFFI) {
6444 dasm_put(Dst, 3253, -LJ_TCDATA, -LJ_TCDATA); 6478 dasm_put(Dst, 3261, -LJ_TCDATA, -LJ_TCDATA);
6445 } 6479 }
6446 dasm_put(Dst, 3260, -LJ_TISPRI); 6480 dasm_put(Dst, 3268, -LJ_TISPRI);
6447 if (vk) { 6481 if (vk) {
6448 dasm_put(Dst, 3269, -LJ_TISTABUD); 6482 dasm_put(Dst, 3277, -LJ_TISTABUD);
6449 } else { 6483 } else {
6450 dasm_put(Dst, 3286, -LJ_TISTABUD); 6484 dasm_put(Dst, 3294, -LJ_TISTABUD);
6451 } 6485 }
6452 dasm_put(Dst, 3293, Dt6(->metatable)); 6486 dasm_put(Dst, 3301, Dt6(->metatable));
6453 if (vk) { 6487 if (vk) {
6454 dasm_put(Dst, 3297); 6488 dasm_put(Dst, 3305);
6455 } else { 6489 } else {
6456 dasm_put(Dst, 3300); 6490 dasm_put(Dst, 3308);
6457 } 6491 }
6458 dasm_put(Dst, 3303, Dt6(->nomm), 1-vk, 1<<MM_eq); 6492 dasm_put(Dst, 3311, Dt6(->nomm), 1-vk, 1<<MM_eq);
6459 if (vk) { 6493 if (vk) {
6460 dasm_put(Dst, 3313); 6494 dasm_put(Dst, 3321);
6461 } else { 6495 } else {
6462 dasm_put(Dst, 3316); 6496 dasm_put(Dst, 3324);
6463 } 6497 }
6464 break; 6498 break;
6465 6499
6466 case BC_ISEQS: case BC_ISNES: 6500 case BC_ISEQS: case BC_ISNES:
6467 vk = op == BC_ISEQS; 6501 vk = op == BC_ISEQS;
6468 dasm_put(Dst, 3326, -LJ_TSTR); 6502 dasm_put(Dst, 3334, -LJ_TSTR);
6469 if (LJ_HASFFI) { 6503 if (LJ_HASFFI) {
6470 dasm_put(Dst, 3335); 6504 dasm_put(Dst, 3343);
6471 } else { 6505 } else {
6472 dasm_put(Dst, 3339); 6506 dasm_put(Dst, 3347);
6473 } 6507 }
6474 if (vk) { 6508 if (vk) {
6475 dasm_put(Dst, 3341); 6509 dasm_put(Dst, 3349);
6476 } else { 6510 } else {
6477 dasm_put(Dst, 3344); 6511 dasm_put(Dst, 3352);
6478 } 6512 }
6479 dasm_put(Dst, 3347); 6513 dasm_put(Dst, 3355);
6480 if (LJ_HASFFI) { 6514 if (LJ_HASFFI) {
6481 dasm_put(Dst, 3354, -LJ_TCDATA); 6515 dasm_put(Dst, 3362, -LJ_TCDATA);
6482 } 6516 }
6483 break; 6517 break;
6484 6518
6485 case BC_ISEQN: case BC_ISNEN: 6519 case BC_ISEQN: case BC_ISNEN:
6486 vk = op == BC_ISEQN; 6520 vk = op == BC_ISEQN;
6487 dasm_put(Dst, 3362); 6521 dasm_put(Dst, 3370);
6488 if (vk) { 6522 if (vk) {
6489 dasm_put(Dst, 3369); 6523 dasm_put(Dst, 3377);
6490 } else { 6524 } else {
6491 dasm_put(Dst, 3371); 6525 dasm_put(Dst, 3379);
6492 } 6526 }
6493 dasm_put(Dst, 3373, -LJ_TISNUM, -LJ_TISNUM); 6527 dasm_put(Dst, 3381, -LJ_TISNUM, -LJ_TISNUM);
6494 if (vk) { 6528 if (vk) {
6495 dasm_put(Dst, 3383); 6529 dasm_put(Dst, 3391);
6496 } else { 6530 } else {
6497 dasm_put(Dst, 3386); 6531 dasm_put(Dst, 3394);
6498 } 6532 }
6499 dasm_put(Dst, 3389); 6533 dasm_put(Dst, 3397);
6500 if (LJ_HASFFI) { 6534 if (LJ_HASFFI) {
6501 dasm_put(Dst, 3398); 6535 dasm_put(Dst, 3406);
6502 } else { 6536 } else {
6503 if (!vk) { 6537 if (!vk) {
6504 dasm_put(Dst, 3401); 6538 dasm_put(Dst, 3409);
6505 } 6539 }
6506 dasm_put(Dst, 3403); 6540 dasm_put(Dst, 3411);
6507 } 6541 }
6508 dasm_put(Dst, 3406, -LJ_TISNUM); 6542 dasm_put(Dst, 3414, -LJ_TISNUM);
6509 if (vk) { 6543 if (vk) {
6510 dasm_put(Dst, 3422); 6544 dasm_put(Dst, 3430);
6511 } else { 6545 } else {
6512 dasm_put(Dst, 3424); 6546 dasm_put(Dst, 3432);
6513 } 6547 }
6514 dasm_put(Dst, 3426); 6548 dasm_put(Dst, 3434);
6515 if (LJ_HASFFI) { 6549 if (LJ_HASFFI) {
6516 dasm_put(Dst, 3429, -LJ_TCDATA); 6550 dasm_put(Dst, 3437, -LJ_TCDATA);
6517 } 6551 }
6518 break; 6552 break;
6519 6553
6520 case BC_ISEQP: case BC_ISNEP: 6554 case BC_ISEQP: case BC_ISNEP:
6521 vk = op == BC_ISEQP; 6555 vk = op == BC_ISEQP;
6522 dasm_put(Dst, 3437); 6556 dasm_put(Dst, 3445);
6523 if (LJ_HASFFI) { 6557 if (LJ_HASFFI) {
6524 dasm_put(Dst, 3443, -LJ_TCDATA); 6558 dasm_put(Dst, 3451, -LJ_TCDATA);
6525 } 6559 }
6526 dasm_put(Dst, 3448); 6560 dasm_put(Dst, 3456);
6527 if (vk) { 6561 if (vk) {
6528 dasm_put(Dst, 3450); 6562 dasm_put(Dst, 3458);
6529 } else { 6563 } else {
6530 dasm_put(Dst, 3452); 6564 dasm_put(Dst, 3460);
6531 } 6565 }
6532 dasm_put(Dst, 3454); 6566 dasm_put(Dst, 3462);
6533 break; 6567 break;
6534 6568
6535 /* -- Unary test and copy ops ------------------------------------------- */ 6569 /* -- Unary test and copy ops ------------------------------------------- */
6536 6570
6537 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 6571 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
6538 dasm_put(Dst, 3461, -LJ_TTRUE); 6572 dasm_put(Dst, 3469, -LJ_TTRUE);
6539 if (op == BC_ISTC || op == BC_IST) { 6573 if (op == BC_ISTC || op == BC_IST) {
6540 dasm_put(Dst, 3469); 6574 dasm_put(Dst, 3477);
6541 if (op == BC_ISTC) { 6575 if (op == BC_ISTC) {
6542 dasm_put(Dst, 3471); 6576 dasm_put(Dst, 3479);
6543 } 6577 }
6544 } else { 6578 } else {
6545 dasm_put(Dst, 3473); 6579 dasm_put(Dst, 3481);
6546 if (op == BC_ISFC) { 6580 if (op == BC_ISFC) {
6547 dasm_put(Dst, 3475); 6581 dasm_put(Dst, 3483);
6548 } 6582 }
6549 } 6583 }
6550 dasm_put(Dst, 3477); 6584 dasm_put(Dst, 3485);
6551 break; 6585 break;
6552 6586
6553 /* -- Unary ops --------------------------------------------------------- */ 6587 /* -- Unary ops --------------------------------------------------------- */
6554 6588
6555 case BC_MOV: 6589 case BC_MOV:
6556 dasm_put(Dst, 3484); 6590 dasm_put(Dst, 3492);
6557 break; 6591 break;
6558 case BC_NOT: 6592 case BC_NOT:
6559 dasm_put(Dst, 3494, -LJ_TTRUE, ~LJ_TFALSE, ~LJ_TTRUE); 6593 dasm_put(Dst, 3502, -LJ_TTRUE, ~LJ_TFALSE, ~LJ_TTRUE);
6560 break; 6594 break;
6561 case BC_UNM: 6595 case BC_UNM:
6562 dasm_put(Dst, 3511, -LJ_TISNUM); 6596 dasm_put(Dst, 3519, -LJ_TISNUM);
6563 break; 6597 break;
6564 case BC_LEN: 6598 case BC_LEN:
6565 dasm_put(Dst, 3537, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TTAB); 6599 dasm_put(Dst, 3545, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TTAB);
6600#ifdef LUAJIT_ENABLE_LUA52COMPAT
6601 dasm_put(Dst, 3569, Dt6(->metatable));
6602#endif
6603 dasm_put(Dst, 3576);
6566 if (LJ_TARGET_OSX) { 6604 if (LJ_TARGET_OSX) {
6567 dasm_put(Dst, 3561); 6605 dasm_put(Dst, 3578);
6568 } 6606 }
6569 dasm_put(Dst, 3563); 6607 dasm_put(Dst, 3580);
6570 if (LJ_TARGET_OSX) { 6608 if (LJ_TARGET_OSX) {
6571 dasm_put(Dst, 3566); 6609 dasm_put(Dst, 3583);
6572 } 6610 }
6573 dasm_put(Dst, 3568); 6611 dasm_put(Dst, 3585);
6612#ifdef LUAJIT_ENABLE_LUA52COMPAT
6613 dasm_put(Dst, 3588, Dt6(->nomm), 1<<MM_len);
6614#endif
6574 break; 6615 break;
6575 6616
6576 /* -- Binary ops -------------------------------------------------------- */ 6617 /* -- Binary ops -------------------------------------------------------- */
6577 6618
6578 6619
6579 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 6620 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
6580 dasm_put(Dst, 3571); 6621 dasm_put(Dst, 3598);
6581 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 6622 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
6582 switch (vk) { 6623 switch (vk) {
6583 case 0: 6624 case 0:
6584 dasm_put(Dst, 3574); 6625 dasm_put(Dst, 3601);
6585 break; 6626 break;
6586 case 1: 6627 case 1:
6587 dasm_put(Dst, 3577); 6628 dasm_put(Dst, 3604);
6588 break; 6629 break;
6589 default: 6630 default:
6590 dasm_put(Dst, 3580); 6631 dasm_put(Dst, 3607);
6591 break; 6632 break;
6592 } 6633 }
6593 dasm_put(Dst, 3583); 6634 dasm_put(Dst, 3610);
6594 if (vk == 1) { 6635 if (vk == 1) {
6595 dasm_put(Dst, 3585, -LJ_TISNUM, -LJ_TISNUM); 6636 dasm_put(Dst, 3612, -LJ_TISNUM, -LJ_TISNUM);
6596 } else { 6637 } else {
6597 dasm_put(Dst, 3590, -LJ_TISNUM, -LJ_TISNUM); 6638 dasm_put(Dst, 3617, -LJ_TISNUM, -LJ_TISNUM);
6598 } 6639 }
6599 dasm_put(Dst, 3595); 6640 dasm_put(Dst, 3622);
6600 switch (vk) { 6641 switch (vk) {
6601 case 0: 6642 case 0:
6602 dasm_put(Dst, 3599); 6643 dasm_put(Dst, 3626);
6603 break; 6644 break;
6604 case 1: 6645 case 1:
6605 dasm_put(Dst, 3602); 6646 dasm_put(Dst, 3629);
6606 break; 6647 break;
6607 default: 6648 default:
6608 dasm_put(Dst, 3605); 6649 dasm_put(Dst, 3632);
6609 break; 6650 break;
6610 } 6651 }
6611 dasm_put(Dst, 3608); 6652 dasm_put(Dst, 3635);
6612 switch (vk) { 6653 switch (vk) {
6613 case 0: 6654 case 0:
6614 if (vk == 1) { 6655 if (vk == 1) {
6615 dasm_put(Dst, 3617, -LJ_TISNUM, -LJ_TISNUM); 6656 dasm_put(Dst, 3644, -LJ_TISNUM, -LJ_TISNUM);
6616 } else { 6657 } else {
6617 dasm_put(Dst, 3622, -LJ_TISNUM, -LJ_TISNUM); 6658 dasm_put(Dst, 3649, -LJ_TISNUM, -LJ_TISNUM);
6618 } 6659 }
6619 dasm_put(Dst, 3627); 6660 dasm_put(Dst, 3654);
6620 break; 6661 break;
6621 case 1: 6662 case 1:
6622 if (vk == 1) { 6663 if (vk == 1) {
6623 dasm_put(Dst, 3630, -LJ_TISNUM, -LJ_TISNUM); 6664 dasm_put(Dst, 3657, -LJ_TISNUM, -LJ_TISNUM);
6624 } else { 6665 } else {
6625 dasm_put(Dst, 3635, -LJ_TISNUM, -LJ_TISNUM); 6666 dasm_put(Dst, 3662, -LJ_TISNUM, -LJ_TISNUM);
6626 } 6667 }
6627 dasm_put(Dst, 3640); 6668 dasm_put(Dst, 3667);
6628 break; 6669 break;
6629 default: 6670 default:
6630 if (vk == 1) { 6671 if (vk == 1) {
6631 dasm_put(Dst, 3643, -LJ_TISNUM, -LJ_TISNUM); 6672 dasm_put(Dst, 3670, -LJ_TISNUM, -LJ_TISNUM);
6632 } else { 6673 } else {
6633 dasm_put(Dst, 3648, -LJ_TISNUM, -LJ_TISNUM); 6674 dasm_put(Dst, 3675, -LJ_TISNUM, -LJ_TISNUM);
6634 } 6675 }
6635 dasm_put(Dst, 3653); 6676 dasm_put(Dst, 3680);
6636 break; 6677 break;
6637 } 6678 }
6638 dasm_put(Dst, 3656); 6679 dasm_put(Dst, 3683);
6639 break; 6680 break;
6640 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 6681 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
6641 dasm_put(Dst, 3662); 6682 dasm_put(Dst, 3689);
6642 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 6683 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
6643 switch (vk) { 6684 switch (vk) {
6644 case 0: 6685 case 0:
6645 dasm_put(Dst, 3665); 6686 dasm_put(Dst, 3692);
6646 break; 6687 break;
6647 case 1: 6688 case 1:
6648 dasm_put(Dst, 3668); 6689 dasm_put(Dst, 3695);
6649 break; 6690 break;
6650 default: 6691 default:
6651 dasm_put(Dst, 3671); 6692 dasm_put(Dst, 3698);
6652 break; 6693 break;
6653 } 6694 }
6654 dasm_put(Dst, 3674); 6695 dasm_put(Dst, 3701);
6655 if (vk == 1) { 6696 if (vk == 1) {
6656 dasm_put(Dst, 3676, -LJ_TISNUM, -LJ_TISNUM); 6697 dasm_put(Dst, 3703, -LJ_TISNUM, -LJ_TISNUM);
6657 } else { 6698 } else {
6658 dasm_put(Dst, 3681, -LJ_TISNUM, -LJ_TISNUM); 6699 dasm_put(Dst, 3708, -LJ_TISNUM, -LJ_TISNUM);
6659 } 6700 }
6660 dasm_put(Dst, 3686); 6701 dasm_put(Dst, 3713);
6661 switch (vk) { 6702 switch (vk) {
6662 case 0: 6703 case 0:
6663 dasm_put(Dst, 3690); 6704 dasm_put(Dst, 3717);
6664 break; 6705 break;
6665 case 1: 6706 case 1:
6666 dasm_put(Dst, 3693); 6707 dasm_put(Dst, 3720);
6667 break; 6708 break;
6668 default: 6709 default:
6669 dasm_put(Dst, 3696); 6710 dasm_put(Dst, 3723);
6670 break; 6711 break;
6671 } 6712 }
6672 dasm_put(Dst, 3699); 6713 dasm_put(Dst, 3726);
6673 switch (vk) { 6714 switch (vk) {
6674 case 0: 6715 case 0:
6675 if (vk == 1) { 6716 if (vk == 1) {
6676 dasm_put(Dst, 3708, -LJ_TISNUM, -LJ_TISNUM); 6717 dasm_put(Dst, 3735, -LJ_TISNUM, -LJ_TISNUM);
6677 } else { 6718 } else {
6678 dasm_put(Dst, 3713, -LJ_TISNUM, -LJ_TISNUM); 6719 dasm_put(Dst, 3740, -LJ_TISNUM, -LJ_TISNUM);
6679 } 6720 }
6680 dasm_put(Dst, 3718); 6721 dasm_put(Dst, 3745);
6681 break; 6722 break;
6682 case 1: 6723 case 1:
6683 if (vk == 1) { 6724 if (vk == 1) {
6684 dasm_put(Dst, 3721, -LJ_TISNUM, -LJ_TISNUM); 6725 dasm_put(Dst, 3748, -LJ_TISNUM, -LJ_TISNUM);
6685 } else { 6726 } else {
6686 dasm_put(Dst, 3726, -LJ_TISNUM, -LJ_TISNUM); 6727 dasm_put(Dst, 3753, -LJ_TISNUM, -LJ_TISNUM);
6687 } 6728 }
6688 dasm_put(Dst, 3731); 6729 dasm_put(Dst, 3758);
6689 break; 6730 break;
6690 default: 6731 default:
6691 if (vk == 1) { 6732 if (vk == 1) {
6692 dasm_put(Dst, 3734, -LJ_TISNUM, -LJ_TISNUM); 6733 dasm_put(Dst, 3761, -LJ_TISNUM, -LJ_TISNUM);
6693 } else { 6734 } else {
6694 dasm_put(Dst, 3739, -LJ_TISNUM, -LJ_TISNUM); 6735 dasm_put(Dst, 3766, -LJ_TISNUM, -LJ_TISNUM);
6695 } 6736 }
6696 dasm_put(Dst, 3744); 6737 dasm_put(Dst, 3771);
6697 break; 6738 break;
6698 } 6739 }
6699 dasm_put(Dst, 3747); 6740 dasm_put(Dst, 3774);
6700 break; 6741 break;
6701 case BC_MULVN: case BC_MULNV: case BC_MULVV: 6742 case BC_MULVN: case BC_MULNV: case BC_MULVV:
6702 dasm_put(Dst, 3753); 6743 dasm_put(Dst, 3780);
6703 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 6744 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
6704 switch (vk) { 6745 switch (vk) {
6705 case 0: 6746 case 0:
6706 dasm_put(Dst, 3756); 6747 dasm_put(Dst, 3783);
6707 break; 6748 break;
6708 case 1: 6749 case 1:
6709 dasm_put(Dst, 3759); 6750 dasm_put(Dst, 3786);
6710 break; 6751 break;
6711 default: 6752 default:
6712 dasm_put(Dst, 3762); 6753 dasm_put(Dst, 3789);
6713 break; 6754 break;
6714 } 6755 }
6715 dasm_put(Dst, 3765); 6756 dasm_put(Dst, 3792);
6716 if (vk == 1) { 6757 if (vk == 1) {
6717 dasm_put(Dst, 3767, -LJ_TISNUM, -LJ_TISNUM); 6758 dasm_put(Dst, 3794, -LJ_TISNUM, -LJ_TISNUM);
6718 } else { 6759 } else {
6719 dasm_put(Dst, 3772, -LJ_TISNUM, -LJ_TISNUM); 6760 dasm_put(Dst, 3799, -LJ_TISNUM, -LJ_TISNUM);
6720 } 6761 }
6721 dasm_put(Dst, 3777); 6762 dasm_put(Dst, 3804);
6722 switch (vk) { 6763 switch (vk) {
6723 case 0: 6764 case 0:
6724 dasm_put(Dst, 3782); 6765 dasm_put(Dst, 3809);
6725 break; 6766 break;
6726 case 1: 6767 case 1:
6727 dasm_put(Dst, 3785); 6768 dasm_put(Dst, 3812);
6728 break; 6769 break;
6729 default: 6770 default:
6730 dasm_put(Dst, 3788); 6771 dasm_put(Dst, 3815);
6731 break; 6772 break;
6732 } 6773 }
6733 dasm_put(Dst, 3791); 6774 dasm_put(Dst, 3818);
6734 switch (vk) { 6775 switch (vk) {
6735 case 0: 6776 case 0:
6736 if (vk == 1) { 6777 if (vk == 1) {
6737 dasm_put(Dst, 3800, -LJ_TISNUM, -LJ_TISNUM); 6778 dasm_put(Dst, 3827, -LJ_TISNUM, -LJ_TISNUM);
6738 } else { 6779 } else {
6739 dasm_put(Dst, 3805, -LJ_TISNUM, -LJ_TISNUM); 6780 dasm_put(Dst, 3832, -LJ_TISNUM, -LJ_TISNUM);
6740 } 6781 }
6741 dasm_put(Dst, 3810); 6782 dasm_put(Dst, 3837);
6742 break; 6783 break;
6743 case 1: 6784 case 1:
6744 if (vk == 1) { 6785 if (vk == 1) {
6745 dasm_put(Dst, 3813, -LJ_TISNUM, -LJ_TISNUM); 6786 dasm_put(Dst, 3840, -LJ_TISNUM, -LJ_TISNUM);
6746 } else { 6787 } else {
6747 dasm_put(Dst, 3818, -LJ_TISNUM, -LJ_TISNUM); 6788 dasm_put(Dst, 3845, -LJ_TISNUM, -LJ_TISNUM);
6748 } 6789 }
6749 dasm_put(Dst, 3823); 6790 dasm_put(Dst, 3850);
6750 break; 6791 break;
6751 default: 6792 default:
6752 if (vk == 1) { 6793 if (vk == 1) {
6753 dasm_put(Dst, 3826, -LJ_TISNUM, -LJ_TISNUM); 6794 dasm_put(Dst, 3853, -LJ_TISNUM, -LJ_TISNUM);
6754 } else { 6795 } else {
6755 dasm_put(Dst, 3831, -LJ_TISNUM, -LJ_TISNUM); 6796 dasm_put(Dst, 3858, -LJ_TISNUM, -LJ_TISNUM);
6756 } 6797 }
6757 dasm_put(Dst, 3836); 6798 dasm_put(Dst, 3863);
6758 break; 6799 break;
6759 } 6800 }
6760 dasm_put(Dst, 3839); 6801 dasm_put(Dst, 3866);
6761 break; 6802 break;
6762 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 6803 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
6763 dasm_put(Dst, 3845); 6804 dasm_put(Dst, 3872);
6764 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 6805 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
6765 switch (vk) { 6806 switch (vk) {
6766 case 0: 6807 case 0:
6767 dasm_put(Dst, 3848); 6808 dasm_put(Dst, 3875);
6768 break; 6809 break;
6769 case 1: 6810 case 1:
6770 dasm_put(Dst, 3851); 6811 dasm_put(Dst, 3878);
6771 break; 6812 break;
6772 default: 6813 default:
6773 dasm_put(Dst, 3854); 6814 dasm_put(Dst, 3881);
6774 break; 6815 break;
6775 } 6816 }
6776 switch (vk) { 6817 switch (vk) {
6777 case 0: 6818 case 0:
6778 if (vk == 1) { 6819 if (vk == 1) {
6779 dasm_put(Dst, 3857, -LJ_TISNUM, -LJ_TISNUM); 6820 dasm_put(Dst, 3884, -LJ_TISNUM, -LJ_TISNUM);
6780 } else { 6821 } else {
6781 dasm_put(Dst, 3862, -LJ_TISNUM, -LJ_TISNUM); 6822 dasm_put(Dst, 3889, -LJ_TISNUM, -LJ_TISNUM);
6782 } 6823 }
6783 dasm_put(Dst, 3867); 6824 dasm_put(Dst, 3894);
6784 break; 6825 break;
6785 case 1: 6826 case 1:
6786 if (vk == 1) { 6827 if (vk == 1) {
6787 dasm_put(Dst, 3870, -LJ_TISNUM, -LJ_TISNUM); 6828 dasm_put(Dst, 3897, -LJ_TISNUM, -LJ_TISNUM);
6788 } else { 6829 } else {
6789 dasm_put(Dst, 3875, -LJ_TISNUM, -LJ_TISNUM); 6830 dasm_put(Dst, 3902, -LJ_TISNUM, -LJ_TISNUM);
6790 } 6831 }
6791 dasm_put(Dst, 3880); 6832 dasm_put(Dst, 3907);
6792 break; 6833 break;
6793 default: 6834 default:
6794 if (vk == 1) { 6835 if (vk == 1) {
6795 dasm_put(Dst, 3883, -LJ_TISNUM, -LJ_TISNUM); 6836 dasm_put(Dst, 3910, -LJ_TISNUM, -LJ_TISNUM);
6796 } else { 6837 } else {
6797 dasm_put(Dst, 3888, -LJ_TISNUM, -LJ_TISNUM); 6838 dasm_put(Dst, 3915, -LJ_TISNUM, -LJ_TISNUM);
6798 } 6839 }
6799 dasm_put(Dst, 3893); 6840 dasm_put(Dst, 3920);
6800 break; 6841 break;
6801 } 6842 }
6802 dasm_put(Dst, 3896); 6843 dasm_put(Dst, 3923);
6803 break; 6844 break;
6804 case BC_MODVN: case BC_MODNV: case BC_MODVV: 6845 case BC_MODVN: case BC_MODNV: case BC_MODVV:
6805 dasm_put(Dst, 3906); 6846 dasm_put(Dst, 3933);
6806 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 6847 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
6807 switch (vk) { 6848 switch (vk) {
6808 case 0: 6849 case 0:
6809 dasm_put(Dst, 3909); 6850 dasm_put(Dst, 3936);
6810 break; 6851 break;
6811 case 1: 6852 case 1:
6812 dasm_put(Dst, 3912); 6853 dasm_put(Dst, 3939);
6813 break; 6854 break;
6814 default: 6855 default:
6815 dasm_put(Dst, 3915); 6856 dasm_put(Dst, 3942);
6816 break; 6857 break;
6817 } 6858 }
6818 if (vk == 1) { 6859 if (vk == 1) {
6819 dasm_put(Dst, 3918, -LJ_TISNUM, -LJ_TISNUM); 6860 dasm_put(Dst, 3945, -LJ_TISNUM, -LJ_TISNUM);
6820 } else { 6861 } else {
6821 dasm_put(Dst, 3923, -LJ_TISNUM, -LJ_TISNUM); 6862 dasm_put(Dst, 3950, -LJ_TISNUM, -LJ_TISNUM);
6822 } 6863 }
6823 dasm_put(Dst, 3928); 6864 dasm_put(Dst, 3955);
6824 switch (vk) { 6865 switch (vk) {
6825 case 0: 6866 case 0:
6826 dasm_put(Dst, 3932); 6867 dasm_put(Dst, 3959);
6827 break; 6868 break;
6828 case 1: 6869 case 1:
6829 dasm_put(Dst, 3935); 6870 dasm_put(Dst, 3962);
6830 break; 6871 break;
6831 default: 6872 default:
6832 dasm_put(Dst, 3938); 6873 dasm_put(Dst, 3965);
6833 break; 6874 break;
6834 } 6875 }
6835 dasm_put(Dst, 3941, ~LJ_TISNUM); 6876 dasm_put(Dst, 3968, ~LJ_TISNUM);
6836 switch (vk) { 6877 switch (vk) {
6837 case 0: 6878 case 0:
6838 if (vk == 1) { 6879 if (vk == 1) {
6839 dasm_put(Dst, 3955, -LJ_TISNUM, -LJ_TISNUM); 6880 dasm_put(Dst, 3982, -LJ_TISNUM, -LJ_TISNUM);
6840 } else { 6881 } else {
6841 dasm_put(Dst, 3960, -LJ_TISNUM, -LJ_TISNUM); 6882 dasm_put(Dst, 3987, -LJ_TISNUM, -LJ_TISNUM);
6842 } 6883 }
6843 dasm_put(Dst, 3965); 6884 dasm_put(Dst, 3992);
6844 break; 6885 break;
6845 case 1: 6886 case 1:
6846 if (vk == 1) { 6887 if (vk == 1) {
6847 dasm_put(Dst, 3968, -LJ_TISNUM, -LJ_TISNUM); 6888 dasm_put(Dst, 3995, -LJ_TISNUM, -LJ_TISNUM);
6848 } else { 6889 } else {
6849 dasm_put(Dst, 3973, -LJ_TISNUM, -LJ_TISNUM); 6890 dasm_put(Dst, 4000, -LJ_TISNUM, -LJ_TISNUM);
6850 } 6891 }
6851 dasm_put(Dst, 3978); 6892 dasm_put(Dst, 4005);
6852 break; 6893 break;
6853 default: 6894 default:
6854 if (vk == 1) { 6895 if (vk == 1) {
6855 dasm_put(Dst, 3981, -LJ_TISNUM, -LJ_TISNUM); 6896 dasm_put(Dst, 4008, -LJ_TISNUM, -LJ_TISNUM);
6856 } else { 6897 } else {
6857 dasm_put(Dst, 3986, -LJ_TISNUM, -LJ_TISNUM); 6898 dasm_put(Dst, 4013, -LJ_TISNUM, -LJ_TISNUM);
6858 } 6899 }
6859 dasm_put(Dst, 3991); 6900 dasm_put(Dst, 4018);
6860 break; 6901 break;
6861 } 6902 }
6862 dasm_put(Dst, 3994); 6903 dasm_put(Dst, 4021);
6863 break; 6904 break;
6864 case BC_POW: 6905 case BC_POW:
6865 dasm_put(Dst, 3999); 6906 dasm_put(Dst, 4026);
6866 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 6907 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
6867 switch (vk) { 6908 switch (vk) {
6868 case 0: 6909 case 0:
6869 dasm_put(Dst, 4002); 6910 dasm_put(Dst, 4029);
6870 break; 6911 break;
6871 case 1: 6912 case 1:
6872 dasm_put(Dst, 4005); 6913 dasm_put(Dst, 4032);
6873 break; 6914 break;
6874 default: 6915 default:
6875 dasm_put(Dst, 4008); 6916 dasm_put(Dst, 4035);
6876 break; 6917 break;
6877 } 6918 }
6878 switch (vk) { 6919 switch (vk) {
6879 case 0: 6920 case 0:
6880 if (vk == 1) { 6921 if (vk == 1) {
6881 dasm_put(Dst, 4011, -LJ_TISNUM, -LJ_TISNUM); 6922 dasm_put(Dst, 4038, -LJ_TISNUM, -LJ_TISNUM);
6882 } else { 6923 } else {
6883 dasm_put(Dst, 4016, -LJ_TISNUM, -LJ_TISNUM); 6924 dasm_put(Dst, 4043, -LJ_TISNUM, -LJ_TISNUM);
6884 } 6925 }
6885 dasm_put(Dst, 4021); 6926 dasm_put(Dst, 4048);
6886 break; 6927 break;
6887 case 1: 6928 case 1:
6888 if (vk == 1) { 6929 if (vk == 1) {
6889 dasm_put(Dst, 4024, -LJ_TISNUM, -LJ_TISNUM); 6930 dasm_put(Dst, 4051, -LJ_TISNUM, -LJ_TISNUM);
6890 } else { 6931 } else {
6891 dasm_put(Dst, 4029, -LJ_TISNUM, -LJ_TISNUM); 6932 dasm_put(Dst, 4056, -LJ_TISNUM, -LJ_TISNUM);
6892 } 6933 }
6893 dasm_put(Dst, 4034); 6934 dasm_put(Dst, 4061);
6894 break; 6935 break;
6895 default: 6936 default:
6896 if (vk == 1) { 6937 if (vk == 1) {
6897 dasm_put(Dst, 4037, -LJ_TISNUM, -LJ_TISNUM); 6938 dasm_put(Dst, 4064, -LJ_TISNUM, -LJ_TISNUM);
6898 } else { 6939 } else {
6899 dasm_put(Dst, 4042, -LJ_TISNUM, -LJ_TISNUM); 6940 dasm_put(Dst, 4069, -LJ_TISNUM, -LJ_TISNUM);
6900 } 6941 }
6901 dasm_put(Dst, 4047); 6942 dasm_put(Dst, 4074);
6902 break; 6943 break;
6903 } 6944 }
6904 if (LJ_TARGET_OSX) { 6945 if (LJ_TARGET_OSX) {
6905 dasm_put(Dst, 4050); 6946 dasm_put(Dst, 4077);
6906 } 6947 }
6907 dasm_put(Dst, 4052); 6948 dasm_put(Dst, 4079);
6908 if (LJ_TARGET_OSX) { 6949 if (LJ_TARGET_OSX) {
6909 dasm_put(Dst, 4055); 6950 dasm_put(Dst, 4082);
6910 } 6951 }
6911 dasm_put(Dst, 4057); 6952 dasm_put(Dst, 4084);
6912 break; 6953 break;
6913 6954
6914 case BC_CAT: 6955 case BC_CAT:
6915 dasm_put(Dst, 4065, Dt1(->base), Dt1(->base)); 6956 dasm_put(Dst, 4092, Dt1(->base), Dt1(->base));
6916 break; 6957 break;
6917 6958
6918 /* -- Constant ops ------------------------------------------------------ */ 6959 /* -- Constant ops ------------------------------------------------------ */
6919 6960
6920 case BC_KSTR: 6961 case BC_KSTR:
6921 dasm_put(Dst, 4091, ~LJ_TSTR); 6962 dasm_put(Dst, 4118, ~LJ_TSTR);
6922 break; 6963 break;
6923 case BC_KCDATA: 6964 case BC_KCDATA:
6924#if LJ_HASFFI 6965#if LJ_HASFFI
6925 dasm_put(Dst, 4103, ~LJ_TCDATA); 6966 dasm_put(Dst, 4130, ~LJ_TCDATA);
6926#endif 6967#endif
6927 break; 6968 break;
6928 case BC_KSHORT: 6969 case BC_KSHORT:
6929 dasm_put(Dst, 4115, ~LJ_TISNUM); 6970 dasm_put(Dst, 4142, ~LJ_TISNUM);
6930 break; 6971 break;
6931 case BC_KNUM: 6972 case BC_KNUM:
6932 dasm_put(Dst, 4126); 6973 dasm_put(Dst, 4153);
6933 break; 6974 break;
6934 case BC_KPRI: 6975 case BC_KPRI:
6935 dasm_put(Dst, 4136); 6976 dasm_put(Dst, 4163);
6936 break; 6977 break;
6937 case BC_KNIL: 6978 case BC_KNIL:
6938 dasm_put(Dst, 4146, ~LJ_TNIL); 6979 dasm_put(Dst, 4173, ~LJ_TNIL);
6939 break; 6980 break;
6940 6981
6941 /* -- Upvalue and function ops ------------------------------------------ */ 6982 /* -- Upvalue and function ops ------------------------------------------ */
6942 6983
6943 case BC_UGET: 6984 case BC_UGET:
6944 dasm_put(Dst, 4165, offsetof(GCfuncL, uvptr), DtA(->v)); 6985 dasm_put(Dst, 4192, offsetof(GCfuncL, uvptr), DtA(->v));
6945 break; 6986 break;
6946 case BC_USETV: 6987 case BC_USETV:
6947 dasm_put(Dst, 4181, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->closed), DtA(->v), LJ_GC_BLACK, -LJ_TISGCV, -(LJ_TISNUM - LJ_TISGCV), Dt4(->gch.marked), -GG_DISP2G, LJ_GC_WHITES); 6988 dasm_put(Dst, 4208, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->closed), DtA(->v), LJ_GC_BLACK, -LJ_TISGCV, -(LJ_TISNUM - LJ_TISGCV), Dt4(->gch.marked), -GG_DISP2G, LJ_GC_WHITES);
6948 if (LJ_TARGET_OSX) { 6989 if (LJ_TARGET_OSX) {
6949 dasm_put(Dst, 4221); 6990 dasm_put(Dst, 4248);
6950 } else { 6991 } else {
6951 dasm_put(Dst, 4228); 6992 dasm_put(Dst, 4255);
6952 } 6993 }
6953 dasm_put(Dst, 4231); 6994 dasm_put(Dst, 4258);
6954 break; 6995 break;
6955 case BC_USETS: 6996 case BC_USETS:
6956 dasm_put(Dst, 4234, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G); 6997 dasm_put(Dst, 4261, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G);
6957 if (LJ_TARGET_OSX) { 6998 if (LJ_TARGET_OSX) {
6958 dasm_put(Dst, 4270); 6999 dasm_put(Dst, 4297);
6959 } else { 7000 } else {
6960 dasm_put(Dst, 4277); 7001 dasm_put(Dst, 4304);
6961 } 7002 }
6962 dasm_put(Dst, 4280); 7003 dasm_put(Dst, 4307);
6963 break; 7004 break;
6964 case BC_USETN: 7005 case BC_USETN:
6965 dasm_put(Dst, 4283, offsetof(GCfuncL, uvptr), DtA(->v)); 7006 dasm_put(Dst, 4310, offsetof(GCfuncL, uvptr), DtA(->v));
6966 break; 7007 break;
6967 case BC_USETP: 7008 case BC_USETP:
6968 dasm_put(Dst, 4300, offsetof(GCfuncL, uvptr), DtA(->v)); 7009 dasm_put(Dst, 4327, offsetof(GCfuncL, uvptr), DtA(->v));
6969 break; 7010 break;
6970 7011
6971 case BC_UCLO: 7012 case BC_UCLO:
6972 dasm_put(Dst, 4316, Dt1(->openupval), Dt1(->base), Dt1(->base)); 7013 dasm_put(Dst, 4343, Dt1(->openupval), Dt1(->base), Dt1(->base));
6973 break; 7014 break;
6974 7015
6975 case BC_FNEW: 7016 case BC_FNEW:
6976 dasm_put(Dst, 4339, Dt1(->base), Dt1(->base), ~LJ_TFUNC); 7017 dasm_put(Dst, 4366, Dt1(->base), Dt1(->base), ~LJ_TFUNC);
6977 break; 7018 break;
6978 7019
6979 /* -- Table ops --------------------------------------------------------- */ 7020 /* -- Table ops --------------------------------------------------------- */
@@ -6981,115 +7022,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
6981 case BC_TNEW: 7022 case BC_TNEW:
6982 case BC_TDUP: 7023 case BC_TDUP:
6983 if (op == BC_TDUP) { 7024 if (op == BC_TDUP) {
6984 dasm_put(Dst, 4360); 7025 dasm_put(Dst, 4387);
6985 } 7026 }
6986 dasm_put(Dst, 4362, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); 7027 dasm_put(Dst, 4389, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base));
6987 if (op == BC_TNEW) { 7028 if (op == BC_TNEW) {
6988 dasm_put(Dst, 4375); 7029 dasm_put(Dst, 4402);
6989 } else { 7030 } else {
6990 dasm_put(Dst, 4384); 7031 dasm_put(Dst, 4411);
6991 } 7032 }
6992 dasm_put(Dst, 4388, Dt1(->base), ~LJ_TTAB); 7033 dasm_put(Dst, 4415, Dt1(->base), ~LJ_TTAB);
6993 break; 7034 break;
6994 7035
6995 case BC_GGET: 7036 case BC_GGET:
6996 case BC_GSET: 7037 case BC_GSET:
6997 dasm_put(Dst, 4406, Dt7(->env)); 7038 dasm_put(Dst, 4433, Dt7(->env));
6998 if (op == BC_GGET) { 7039 if (op == BC_GGET) {
6999 dasm_put(Dst, 4412); 7040 dasm_put(Dst, 4439);
7000 } else { 7041 } else {
7001 dasm_put(Dst, 4415); 7042 dasm_put(Dst, 4442);
7002 } 7043 }
7003 break; 7044 break;
7004 7045
7005 case BC_TGETV: 7046 case BC_TGETV:
7006 dasm_put(Dst, 4418, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index, -LJ_TSTR); 7047 dasm_put(Dst, 4445, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index, -LJ_TSTR);
7007 break; 7048 break;
7008 case BC_TGETS: 7049 case BC_TGETS:
7009 dasm_put(Dst, 4475, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, -LJ_TNIL, Dt6(->metatable), ~LJ_TNIL, Dt6(->nomm)); 7050 dasm_put(Dst, 4502, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, -LJ_TNIL, Dt6(->metatable), ~LJ_TNIL, Dt6(->nomm));
7010 dasm_put(Dst, 4535, 1<<MM_index); 7051 dasm_put(Dst, 4562, 1<<MM_index);
7011 break; 7052 break;
7012 case BC_TGETB: 7053 case BC_TGETB:
7013 dasm_put(Dst, 4542, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 7054 dasm_put(Dst, 4569, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
7014 break; 7055 break;
7015 7056
7016 case BC_TSETV: 7057 case BC_TSETV:
7017 dasm_put(Dst, 4585, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 7058 dasm_put(Dst, 4612, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
7018 dasm_put(Dst, 4645, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TSTR); 7059 dasm_put(Dst, 4672, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TSTR);
7019 break; 7060 break;
7020 case BC_TSETS: 7061 case BC_TSETS:
7021 dasm_put(Dst, 4666, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), DtB(->key), DtB(->val.it), DtB(->next), -LJ_TSTR, Dt6(->marked), -LJ_TNIL, LJ_GC_BLACK, DtB(->val)); 7062 dasm_put(Dst, 4693, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), DtB(->key), DtB(->val.it), DtB(->next), -LJ_TSTR, Dt6(->marked), -LJ_TNIL, LJ_GC_BLACK, DtB(->val));
7022 dasm_put(Dst, 4724, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->metatable), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, ~LJ_TSTR, Dt1(->base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); 7063 dasm_put(Dst, 4751, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->metatable), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, ~LJ_TSTR, Dt1(->base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK);
7023 dasm_put(Dst, 4777, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 7064 dasm_put(Dst, 4804, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
7024 break; 7065 break;
7025 case BC_TSETB: 7066 case BC_TSETB:
7026 dasm_put(Dst, 4786, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); 7067 dasm_put(Dst, 4813, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK);
7027 dasm_put(Dst, 4844, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 7068 dasm_put(Dst, 4871, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
7028 break; 7069 break;
7029 7070
7030 case BC_TSETM: 7071 case BC_TSETM:
7031 dasm_put(Dst, 4853, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base)); 7072 dasm_put(Dst, 4880, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base));
7032 if (LJ_TARGET_OSX) { 7073 if (LJ_TARGET_OSX) {
7033 dasm_put(Dst, 4898, Dt1(->base)); 7074 dasm_put(Dst, 4925, Dt1(->base));
7034 } 7075 }
7035 dasm_put(Dst, 4901, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 7076 dasm_put(Dst, 4928, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
7036 break; 7077 break;
7037 7078
7038 /* -- Calls and vararg handling ----------------------------------------- */ 7079 /* -- Calls and vararg handling ----------------------------------------- */
7039 7080
7040 case BC_CALLM: 7081 case BC_CALLM:
7041 dasm_put(Dst, 4917); 7082 dasm_put(Dst, 4944);
7042 break; 7083 break;
7043 case BC_CALL: 7084 case BC_CALL:
7044 dasm_put(Dst, 4923, -LJ_TFUNC, Dt7(->field_pc)); 7085 dasm_put(Dst, 4950, -LJ_TFUNC, Dt7(->field_pc));
7045 break; 7086 break;
7046 7087
7047 case BC_CALLMT: 7088 case BC_CALLMT:
7048 dasm_put(Dst, 4943); 7089 dasm_put(Dst, 4970);
7049 break; 7090 break;
7050 case BC_CALLT: 7091 case BC_CALLT:
7051 dasm_put(Dst, 4948, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); 7092 dasm_put(Dst, 4975, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP);
7052 dasm_put(Dst, 5009, FRAME_TYPE); 7093 dasm_put(Dst, 5036, FRAME_TYPE);
7053 break; 7094 break;
7054 7095
7055 case BC_ITERC: 7096 case BC_ITERC:
7056 dasm_put(Dst, 5020, -LJ_TFUNC, Dt7(->field_pc)); 7097 dasm_put(Dst, 5047, -LJ_TFUNC, Dt7(->field_pc));
7057 break; 7098 break;
7058 7099
7059 case BC_ITERN: 7100 case BC_ITERN:
7060#if LJ_HASJIT 7101#if LJ_HASJIT
7061#endif 7102#endif
7062 dasm_put(Dst, 5044, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); 7103 dasm_put(Dst, 5071, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key));
7063 break; 7104 break;
7064 7105
7065 case BC_ISNEXT: 7106 case BC_ISNEXT:
7066 dasm_put(Dst, 5109, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); 7107 dasm_put(Dst, 5136, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC);
7067 break; 7108 break;
7068 7109
7069 case BC_VARG: 7110 case BC_VARG:
7070 dasm_put(Dst, 5148, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); 7111 dasm_put(Dst, 5175, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base));
7071 break; 7112 break;
7072 7113
7073 /* -- Returns ----------------------------------------------------------- */ 7114 /* -- Returns ----------------------------------------------------------- */
7074 7115
7075 case BC_RETM: 7116 case BC_RETM:
7076 dasm_put(Dst, 5220); 7117 dasm_put(Dst, 5247);
7077 break; 7118 break;
7078 7119
7079 case BC_RET: 7120 case BC_RET:
7080 dasm_put(Dst, 5227, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); 7121 dasm_put(Dst, 5254, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP);
7081 break; 7122 break;
7082 7123
7083 case BC_RET0: case BC_RET1: 7124 case BC_RET0: case BC_RET1:
7084 dasm_put(Dst, 5292, FRAME_TYPE, FRAME_VARG); 7125 dasm_put(Dst, 5319, FRAME_TYPE, FRAME_VARG);
7085 if (op == BC_RET1) { 7126 if (op == BC_RET1) {
7086 dasm_put(Dst, 5303); 7127 dasm_put(Dst, 5330);
7087 } 7128 }
7088 dasm_put(Dst, 5305); 7129 dasm_put(Dst, 5332);
7089 if (op == BC_RET1) { 7130 if (op == BC_RET1) {
7090 dasm_put(Dst, 5308); 7131 dasm_put(Dst, 5335);
7091 } 7132 }
7092 dasm_put(Dst, 5310, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); 7133 dasm_put(Dst, 5337, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL);
7093 break; 7134 break;
7094 7135
7095 /* -- Loops and branches ------------------------------------------------ */ 7136 /* -- Loops and branches ------------------------------------------------ */
@@ -7097,7 +7138,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
7097 7138
7098 case BC_FORL: 7139 case BC_FORL:
7099#if LJ_HASJIT 7140#if LJ_HASJIT
7100 dasm_put(Dst, 5336, -GG_DISP2HOT); 7141 dasm_put(Dst, 5363, -GG_DISP2HOT);
7101#endif 7142#endif
7102 break; 7143 break;
7103 7144
@@ -7109,68 +7150,68 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
7109 case BC_FORI: 7150 case BC_FORI:
7110 case BC_IFORL: 7151 case BC_IFORL:
7111 vk = (op == BC_IFORL || op == BC_JFORL); 7152 vk = (op == BC_IFORL || op == BC_JFORL);
7112 dasm_put(Dst, 5346); 7153 dasm_put(Dst, 5373);
7113 if (op != BC_JFORL) { 7154 if (op != BC_JFORL) {
7114 dasm_put(Dst, 5348); 7155 dasm_put(Dst, 5375);
7115 } 7156 }
7116 if (!vk) { 7157 if (!vk) {
7117 dasm_put(Dst, 5350, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); 7158 dasm_put(Dst, 5377, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM);
7118 } else { 7159 } else {
7119 dasm_put(Dst, 5368, -LJ_TISNUM); 7160 dasm_put(Dst, 5395, -LJ_TISNUM);
7120 if (op == BC_IFORL) { 7161 if (op == BC_IFORL) {
7121 dasm_put(Dst, 5376); 7162 dasm_put(Dst, 5403);
7122 } else { 7163 } else {
7123 dasm_put(Dst, 5378); 7164 dasm_put(Dst, 5405);
7124 } 7165 }
7125 dasm_put(Dst, 5381); 7166 dasm_put(Dst, 5408);
7126 } 7167 }
7127 dasm_put(Dst, 5386); 7168 dasm_put(Dst, 5413);
7128 if (op == BC_FORI) { 7169 if (op == BC_FORI) {
7129 dasm_put(Dst, 5388); 7170 dasm_put(Dst, 5415);
7130 } else if (op == BC_JFORI) { 7171 } else if (op == BC_JFORI) {
7131 dasm_put(Dst, 5390); 7172 dasm_put(Dst, 5417);
7132 } else if (op == BC_IFORL) { 7173 } else if (op == BC_IFORL) {
7133 dasm_put(Dst, 5393); 7174 dasm_put(Dst, 5420);
7134 } 7175 }
7135 if (vk) { 7176 if (vk) {
7136 dasm_put(Dst, 5395); 7177 dasm_put(Dst, 5422);
7137 } 7178 }
7138 dasm_put(Dst, 5397); 7179 dasm_put(Dst, 5424);
7139 if (op == BC_JFORI || op == BC_JFORL) { 7180 if (op == BC_JFORI || op == BC_JFORL) {
7140 dasm_put(Dst, 5402, BC_JLOOP); 7181 dasm_put(Dst, 5429, BC_JLOOP);
7141 } 7182 }
7142 dasm_put(Dst, 5405); 7183 dasm_put(Dst, 5432);
7143 if (!vk) { 7184 if (!vk) {
7144 dasm_put(Dst, 5412); 7185 dasm_put(Dst, 5439);
7145 } else { 7186 } else {
7146 dasm_put(Dst, 5414); 7187 dasm_put(Dst, 5441);
7147 } 7188 }
7148 dasm_put(Dst, 5416); 7189 dasm_put(Dst, 5443);
7149 if (!vk) { 7190 if (!vk) {
7150 dasm_put(Dst, 5420, -LJ_TISNUM, -LJ_TISNUM); 7191 dasm_put(Dst, 5447, -LJ_TISNUM, -LJ_TISNUM);
7151 } else { 7192 } else {
7152 dasm_put(Dst, 5432); 7193 dasm_put(Dst, 5459);
7153 } 7194 }
7154 dasm_put(Dst, 5441); 7195 dasm_put(Dst, 5468);
7155 if (op == BC_FORI) { 7196 if (op == BC_FORI) {
7156 dasm_put(Dst, 5445); 7197 dasm_put(Dst, 5472);
7157 } else if (op == BC_JFORI) { 7198 } else if (op == BC_JFORI) {
7158 dasm_put(Dst, 5447, BC_JLOOP); 7199 dasm_put(Dst, 5474, BC_JLOOP);
7159 } else if (op == BC_IFORL) { 7200 } else if (op == BC_IFORL) {
7160 dasm_put(Dst, 5452); 7201 dasm_put(Dst, 5479);
7161 } else { 7202 } else {
7162 dasm_put(Dst, 5454, BC_JLOOP); 7203 dasm_put(Dst, 5481, BC_JLOOP);
7163 } 7204 }
7164 dasm_put(Dst, 5457); 7205 dasm_put(Dst, 5484);
7165 if (vk) { 7206 if (vk) {
7166 dasm_put(Dst, 5463); 7207 dasm_put(Dst, 5490);
7167 } 7208 }
7168 dasm_put(Dst, 5468); 7209 dasm_put(Dst, 5495);
7169 break; 7210 break;
7170 7211
7171 case BC_ITERL: 7212 case BC_ITERL:
7172#if LJ_HASJIT 7213#if LJ_HASJIT
7173 dasm_put(Dst, 5474, -GG_DISP2HOT); 7214 dasm_put(Dst, 5501, -GG_DISP2HOT);
7174#endif 7215#endif
7175 break; 7216 break;
7176 7217
@@ -7179,40 +7220,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
7179 break; 7220 break;
7180#endif 7221#endif
7181 case BC_IITERL: 7222 case BC_IITERL:
7182 dasm_put(Dst, 5484); 7223 dasm_put(Dst, 5511);
7183 if (op == BC_JITERL) { 7224 if (op == BC_JITERL) {
7184 dasm_put(Dst, 5486, -LJ_TNIL, BC_JLOOP); 7225 dasm_put(Dst, 5513, -LJ_TNIL, BC_JLOOP);
7185 } else { 7226 } else {
7186 dasm_put(Dst, 5492, -LJ_TNIL); 7227 dasm_put(Dst, 5519, -LJ_TNIL);
7187 } 7228 }
7188 dasm_put(Dst, 5498); 7229 dasm_put(Dst, 5525);
7189 break; 7230 break;
7190 7231
7191 case BC_LOOP: 7232 case BC_LOOP:
7192#if LJ_HASJIT 7233#if LJ_HASJIT
7193 dasm_put(Dst, 5505, -GG_DISP2HOT); 7234 dasm_put(Dst, 5532, -GG_DISP2HOT);
7194#endif 7235#endif
7195 break; 7236 break;
7196 7237
7197 case BC_ILOOP: 7238 case BC_ILOOP:
7198 dasm_put(Dst, 5515); 7239 dasm_put(Dst, 5542);
7199 break; 7240 break;
7200 7241
7201 case BC_JLOOP: 7242 case BC_JLOOP:
7202#if LJ_HASJIT 7243#if LJ_HASJIT
7203 dasm_put(Dst, 5522, DISPATCH_J(trace), DISPATCH_GL(vmstate), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 7244 dasm_put(Dst, 5549, DISPATCH_J(trace), DISPATCH_GL(vmstate), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
7204#endif 7245#endif
7205 break; 7246 break;
7206 7247
7207 case BC_JMP: 7248 case BC_JMP:
7208 dasm_put(Dst, 5536); 7249 dasm_put(Dst, 5563);
7209 break; 7250 break;
7210 7251
7211 /* -- Function headers -------------------------------------------------- */ 7252 /* -- Function headers -------------------------------------------------- */
7212 7253
7213 case BC_FUNCF: 7254 case BC_FUNCF:
7214#if LJ_HASJIT 7255#if LJ_HASJIT
7215 dasm_put(Dst, 5545, -GG_DISP2HOT); 7256 dasm_put(Dst, 5572, -GG_DISP2HOT);
7216#endif 7257#endif
7217 case BC_FUNCV: /* NYI: compiled vararg functions. */ 7258 case BC_FUNCV: /* NYI: compiled vararg functions. */
7218 break; 7259 break;
@@ -7222,42 +7263,42 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
7222 break; 7263 break;
7223#endif 7264#endif
7224 case BC_IFUNCF: 7265 case BC_IFUNCF:
7225 dasm_put(Dst, 5555, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k)); 7266 dasm_put(Dst, 5582, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k));
7226 if (op != BC_JFUNCF) { 7267 if (op != BC_JFUNCF) {
7227 dasm_put(Dst, 5565); 7268 dasm_put(Dst, 5592);
7228 } 7269 }
7229 dasm_put(Dst, 5568, ~LJ_TNIL); 7270 dasm_put(Dst, 5595, ~LJ_TNIL);
7230 if (op == BC_JFUNCF) { 7271 if (op == BC_JFUNCF) {
7231 dasm_put(Dst, 5575, BC_JLOOP); 7272 dasm_put(Dst, 5602, BC_JLOOP);
7232 } else { 7273 } else {
7233 dasm_put(Dst, 5579); 7274 dasm_put(Dst, 5606);
7234 } 7275 }
7235 dasm_put(Dst, 5584); 7276 dasm_put(Dst, 5611);
7236 break; 7277 break;
7237 7278
7238 case BC_JFUNCV: 7279 case BC_JFUNCV:
7239#if !LJ_HASJIT 7280#if !LJ_HASJIT
7240 break; 7281 break;
7241#endif 7282#endif
7242 dasm_put(Dst, 5590); 7283 dasm_put(Dst, 5617);
7243 break; /* NYI: compiled vararg functions. */ 7284 break; /* NYI: compiled vararg functions. */
7244 7285
7245 case BC_IFUNCV: 7286 case BC_IFUNCV:
7246 dasm_put(Dst, 5592, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); 7287 dasm_put(Dst, 5619, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL);
7247 break; 7288 break;
7248 7289
7249 case BC_FUNCC: 7290 case BC_FUNCC:
7250 case BC_FUNCCW: 7291 case BC_FUNCCW:
7251 if (op == BC_FUNCC) { 7292 if (op == BC_FUNCC) {
7252 dasm_put(Dst, 5633, Dt8(->f)); 7293 dasm_put(Dst, 5660, Dt8(->f));
7253 } else { 7294 } else {
7254 dasm_put(Dst, 5636, DISPATCH_GL(wrapf)); 7295 dasm_put(Dst, 5663, DISPATCH_GL(wrapf));
7255 } 7296 }
7256 dasm_put(Dst, 5639, Dt1(->maxstack), Dt1(->base), Dt1(->top)); 7297 dasm_put(Dst, 5666, Dt1(->maxstack), Dt1(->base), Dt1(->top));
7257 if (op == BC_FUNCCW) { 7298 if (op == BC_FUNCCW) {
7258 dasm_put(Dst, 5649, Dt8(->f)); 7299 dasm_put(Dst, 5676, Dt8(->f));
7259 } 7300 }
7260 dasm_put(Dst, 5652, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); 7301 dasm_put(Dst, 5679, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate));
7261 break; 7302 break;
7262 7303
7263 /* ---------------------------------------------------------------------- */ 7304 /* ---------------------------------------------------------------------- */
@@ -7277,7 +7318,7 @@ static int build_backend(BuildCtx *ctx)
7277 7318
7278 build_subroutines(ctx); 7319 build_subroutines(ctx);
7279 7320
7280 dasm_put(Dst, 5674); 7321 dasm_put(Dst, 5701);
7281 for (op = 0; op < BC__MAX; op++) 7322 for (op = 0; op < BC__MAX; op++)
7282 build_ins(ctx, (BCOp)op, op); 7323 build_ins(ctx, (BCOp)op, op);
7283 7324
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc
index c257de45..4e316883 100644
--- a/src/buildvm_ppc.dasc
+++ b/src/buildvm_ppc.dasc
@@ -818,13 +818,23 @@ static void build_subroutines(BuildCtx *ctx)
818 | b ->vm_call_dispatch 818 | b ->vm_call_dispatch
819 | 819 |
820 |->vmeta_len: 820 |->vmeta_len:
821#ifdef LUAJIT_ENABLE_LUA52COMPAT
822 | mr SAVE0, CARG1
823#endif
821 | add CARG2, BASE, RD 824 | add CARG2, BASE, RD
822 | stw BASE, L->base 825 | stw BASE, L->base
823 | mr CARG1, L 826 | mr CARG1, L
824 | stw PC, SAVE_PC 827 | stw PC, SAVE_PC
825 | bl extern lj_meta_len // (lua_State *L, TValue *o) 828 | bl extern lj_meta_len // (lua_State *L, TValue *o)
826 | // Returns TValue * (metamethod base). 829 | // Returns NULL (retry) or TValue * (metamethod base).
830#ifdef LUAJIT_ENABLE_LUA52COMPAT
831 | cmplwi CRET1, 0
832 | bne ->vmeta_binop // Binop call for compatibility.
833 | mr CARG1, SAVE0
834 | b ->BC_LEN_Z
835#else
827 | b ->vmeta_binop // Binop call for compatibility. 836 | b ->vmeta_binop // Binop call for compatibility.
837#endif
828 | 838 |
829 |//-- Call metamethod ---------------------------------------------------- 839 |//-- Call metamethod ----------------------------------------------------
830 | 840 |
@@ -2337,9 +2347,23 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
2337 |2: 2347 |2:
2338 | checktab CARG1 2348 | checktab CARG1
2339 | checkfail ->vmeta_len 2349 | checkfail ->vmeta_len
2350#ifdef LUAJIT_ENABLE_LUA52COMPAT
2351 | lwz TAB:TMP2, TAB:CARG1->metatable
2352 | cmplwi TAB:TMP2, 0
2353 | bne >9
2354 |3:
2355#endif
2356 |->BC_LEN_Z:
2340 | bl extern lj_tab_len // (GCtab *t) 2357 | bl extern lj_tab_len // (GCtab *t)
2341 | // Returns uint32_t (but less than 2^31). 2358 | // Returns uint32_t (but less than 2^31).
2342 | b <1 2359 | b <1
2360#ifdef LUAJIT_ENABLE_LUA52COMPAT
2361 |9:
2362 | lbz TMP0, TAB:TMP2->nomm
2363 | andi. TMP0, TMP0, 1<<MM_len
2364 | bne <3 // 'no __len' flag set: done.
2365 | b ->vmeta_len
2366#endif
2343 break; 2367 break;
2344 2368
2345 /* -- Binary ops -------------------------------------------------------- */ 2369 /* -- Binary ops -------------------------------------------------------- */
diff --git a/src/buildvm_ppcspe.h b/src/buildvm_ppcspe.h
index 59cd96fa..257fe353 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[4961] = { 15static const unsigned int build_actionlist[4992] = {
160x00010001, 160x00010001,
170x00060014, 170x00060014,
180x72000000, 180x72000000,
@@ -740,6 +740,9 @@ static const unsigned int build_actionlist[4961] = {
7400x48000000, 7400x48000000,
7410x00050024, 7410x00050024,
7420x0006003e, 7420x0006003e,
7430x00000000,
7440x7c751b78,
7450x00000000,
7430x7c8e6214, 7460x7c8e6214,
7440x91d20000, 7470x91d20000,
7450x00098200, 7480x00098200,
@@ -747,8 +750,17 @@ static const unsigned int build_actionlist[4961] = {
7470x9201000c, 7500x9201000c,
7480x48000001, 7510x48000001,
7490x00030006, 7520x00030006,
7530x00000000,
7540x28030000,
7550x40820000,
7560x00050835,
7570x7ea3ab78,
7580x48000000,
7590x0005003f,
7600x00000000,
7500x48000000, 7610x48000000,
7510x00050035, 7620x00050035,
7630x00000000,
7520x00060025, 7640x00060025,
7530x7e439378, 7650x7e439378,
7540x91320000, 7660x91320000,
@@ -772,7 +784,7 @@ static const unsigned int build_actionlist[4961] = {
7720x7e947214, 7840x7e947214,
7730x7c0903a6, 7850x7c0903a6,
7740x4e800420, 7860x4e800420,
7750x0006003f, 7870x00060040,
7760x7e439378, 7880x7e439378,
7770x91d20000, 7890x91d20000,
7780x00098200, 7900x00098200,
@@ -786,8 +798,8 @@ static const unsigned int build_actionlist[4961] = {
7860x39750008, 7980x39750008,
7870x8154fffc, 7990x8154fffc,
7880x48000000, 8000x48000000,
7890x00050040, 8010x00050041,
7900x00060041, 8020x00060042,
7910x7e439378, 8030x7e439378,
7920x91d20000, 8040x91d20000,
7930x00098200, 8050x00098200,
@@ -811,21 +823,21 @@ static const unsigned int build_actionlist[4961] = {
8110x00000000, 8230x00000000,
8120x48000000, 8240x48000000,
8130x00070000, 8250x00070000,
8140x00060042, 8260x00060043,
8150x280b0008, 8270x280b0008,
8160x100e0301, 8280x100e0301,
8170x41800000, 8290x41800000,
8180x00050843, 8300x00050844,
8190x111ad200, 8310x111ad200,
8200x3a8efff8, 8320x3a8efff8,
8210x10804232, 8330x10804232,
8220x820efff8, 8340x820efff8,
8230x40840000, 8350x40840000,
8240x00050843, 8360x00050844,
8250x10140321, 8370x10140321,
8260x398b0008, 8380x398b0008,
8270x41820000, 8390x41820000,
8280x00050844, 8400x00050845,
8290x39000008, 8410x39000008,
8300x396bfff8, 8420x396bfff8,
8310x0006000b, 8430x0006000b,
@@ -836,12 +848,12 @@ static const unsigned int build_actionlist[4961] = {
8360x40820000, 8480x40820000,
8370x0005080b, 8490x0005080b,
8380x48000000, 8500x48000000,
8390x00050044, 8510x00050045,
8400x00060045, 8520x00060046,
8410x280b0008, 8530x280b0008,
8420x806e0000, 8540x806e0000,
8430x41800000, 8550x41800000,
8440x00050843, 8560x00050844,
8450x39200000, 8570x39200000,
8460x00098200, 8580x00098200,
8470x7c03b040, 8590x7c03b040,
@@ -853,12 +865,12 @@ static const unsigned int build_actionlist[4961] = {
8530x00098200, 8650x00098200,
8540x10694300, 8660x10694300,
8550x48000000, 8670x48000000,
8560x00050046, 8680x00050047,
8570x00060047, 8690x00060048,
8580x280b0008, 8700x280b0008,
8590x106e0301, 8710x106e0301,
8600x41800000, 8720x41800000,
8610x00050843, 8730x00050844,
8620x1003c234, 8740x1003c234,
8630x11031a2c, 8750x11031a2c,
8640x40800000, 8760x40800000,
@@ -872,7 +884,7 @@ static const unsigned int build_actionlist[4961] = {
8720x81710000, 8840x81710000,
8730x00098200, 8850x00098200,
8740x41820000, 8860x41820000,
8750x00050846, 8870x00050847,
8760x00000000, 8880x00000000,
8770x800a0000, 8890x800a0000,
8780x00098200, 8900x00098200,
@@ -901,16 +913,16 @@ static const unsigned int build_actionlist[4961] = {
9010x00050805, 9130x00050805,
9020x28090000, 9140x28090000,
9030x41820000, 9150x41820000,
9040x00050846, 9160x00050847,
9050x48000000, 9170x48000000,
9060x0005000d, 9180x0005000d,
9070x0006000f, 9190x0006000f,
9080x1008d234, 9200x1008d234,
9090x41800000, 9210x41800000,
9100x00050846, 9220x00050847,
9110x10684217, 9230x10684217,
9120x48000000, 9240x48000000,
9130x00050046, 9250x00050047,
9140x00060010, 9260x00060010,
9150x2c080000, 9270x2c080000,
9160x00098200, 9280x00098200,
@@ -928,30 +940,30 @@ static const unsigned int build_actionlist[4961] = {
9280x7d49402e, 9400x7d49402e,
9290x48000000, 9410x48000000,
9300x0005000c, 9420x0005000c,
9310x00060048, 9430x00060049,
9320x00000000, 9440x00000000,
9330x280b0010, 9450x280b0010,
9340x106e0301, 9460x106e0301,
9350x108e0b01, 9470x108e0b01,
9360x41800000, 9480x41800000,
9370x00050843, 9490x00050844,
9380x1003222c, 9500x1003222c,
9390x1000c234, 9510x1000c234,
9400x40830000, 9520x40830000,
9410x00050843, 9530x00050844,
9420x81030000, 9540x81030000,
9430x00098200, 9550x00098200,
9440x28080000, 9560x28080000,
9450x88c30000, 9570x88c30000,
9460x00098200, 9580x00098200,
9470x40820000, 9590x40820000,
9480x00050843, 9600x00050844,
9490x70c00000, 9610x70c00000,
9500x00090200, 9620x00090200,
9510x90830000, 9630x90830000,
9520x00098200, 9640x00098200,
9530x41820000, 9650x41820000,
9540x00050846, 9660x00050847,
9550x80110000, 9670x80110000,
9560x00098200, 9680x00098200,
9570x54c607b8, 9690x54c607b8,
@@ -962,41 +974,41 @@ static const unsigned int build_actionlist[4961] = {
9620x90030000, 9740x90030000,
9630x00098200, 9750x00098200,
9640x48000000, 9760x48000000,
9650x00050046, 9770x00050047,
9660x00060049, 9780x0006004a,
9670x280b0010, 9790x280b0010,
9680x108e0301, 9800x108e0301,
9690x41800000, 9810x41800000,
9700x00050843, 9820x00050844,
9710x1004c234, 9830x1004c234,
9720x38ae0008, 9840x38ae0008,
9730x40800000, 9850x40800000,
9740x00050843, 9860x00050844,
9750x7e439378, 9870x7e439378,
9760x48000001, 9880x48000001,
9770x00030009, 9890x00030009,
9780x10630301, 9900x10630301,
9790x48000000, 9910x48000000,
9800x00050046, 9920x00050047,
9810x0006004a, 9930x0006004b,
9820x280b0008, 9940x280b0008,
9830x106e0301, 9950x106e0301,
9840x40820000, 9960x40820000,
9850x00050843, 9970x00050844,
9860x1003b232, 9980x1003b232,
9870x41800000, 9990x41800000,
9880x00050846, 10000x00050847,
9890x48000000, 10010x48000000,
9900x00050043, 10020x00050044,
9910x0006004b, 10030x0006004c,
9920x00000000, 10040x00000000,
9930x280b0008, 10050x280b0008,
9940x106e0301, 10060x106e0301,
9950x41800000, 10070x41800000,
9960x00050843, 10080x00050844,
9970x1003ba34, 10090x1003ba34,
9980x41800000, 10100x41800000,
9990x00050846, 10110x00050847,
10000x80110000, 10120x80110000,
10010x00098200, 10130x00098200,
10020x1003b232, 10140x1003b232,
@@ -1006,31 +1018,31 @@ static const unsigned int build_actionlist[4961] = {
10060x4c403202, 10180x4c403202,
10070x9201000c, 10190x9201000c,
10080x40820000, 10200x40820000,
10090x00050843, 10210x00050844,
10100x80110000, 10220x80110000,
10110x00098200, 10230x00098200,
10120x81110000, 10240x81110000,
10130x00098200, 10250x00098200,
10140x7c004040, 10260x7c004040,
10150x40800001, 10270x40800001,
10160x0005084c, 10280x0005084d,
10170x7e439378, 10290x7e439378,
10180x7dc47378, 10300x7dc47378,
10190x48000001, 10310x48000001,
10200x0003000a, 10320x0003000a,
10210x10771a2d, 10330x10771a2d,
10220x48000000, 10340x48000000,
10230x00050046, 10350x00050047,
10240x0006004d, 10360x0006004e,
10250x280b0008, 10370x280b0008,
10260x108e0301, 10380x108e0301,
10270x41800000, 10390x41800000,
10280x00050843, 10400x00050844,
10290x134e5b20, 10410x134e5b20,
10300x1004c234, 10420x1004c234,
10310x820efff8, 10430x820efff8,
10320x40800000, 10440x40800000,
10330x00050843, 10450x00050844,
10340x91d20000, 10460x91d20000,
10350x00098200, 10470x00098200,
10360x7e439378, 10480x7e439378,
@@ -1043,7 +1055,7 @@ static const unsigned int build_actionlist[4961] = {
10430x28030000, 10550x28030000,
10440x107ad217, 10560x107ad217,
10450x41820000, 10570x41820000,
10460x00050846, 10580x00050847,
10470x100e0b01, 10590x100e0b01,
10480x3a8efff8, 10600x3a8efff8,
10490x110e1301, 10610x110e1301,
@@ -1052,16 +1064,16 @@ static const unsigned int build_actionlist[4961] = {
10520x00098200, 10640x00098200,
10530x11140b21, 10650x11140b21,
10540x48000000, 10660x48000000,
10550x00050044, 10670x00050045,
10560x0006004e, 10680x0006004f,
10570x280b0008, 10690x280b0008,
10580x106e0301, 10700x106e0301,
10590x41800000, 10710x41800000,
10600x00050843, 10720x00050844,
10610x1003c234, 10730x1003c234,
10620x820efff8, 10740x820efff8,
10630x40800000, 10750x40800000,
10640x00050843, 10760x00050844,
10650x00000000, 10770x00000000,
10660x81230000, 10780x81230000,
10670x00098200, 10790x00098200,
@@ -1070,7 +1082,7 @@ static const unsigned int build_actionlist[4961] = {
10700x28090000, 10820x28090000,
10710x3a8efff8, 10830x3a8efff8,
10720x40820000, 10840x40820000,
10730x00050843, 10850x00050844,
10740x00000000, 10860x00000000,
10750x100a0301, 10870x100a0301,
10760x00090cab, 10880x00090cab,
@@ -1081,21 +1093,21 @@ static const unsigned int build_actionlist[4961] = {
10810x00098200, 10930x00098200,
10820x10140321, 10940x10140321,
10830x48000000, 10950x48000000,
10840x00050044, 10960x00050045,
10850x0006004f, 10970x00060050,
10860x280b0010, 10980x280b0010,
10870x106e0301, 10990x106e0301,
10880x108e0b01, 11000x108e0b01,
10890x41800000, 11010x41800000,
10900x00050843, 11020x00050844,
10910x1003c234, 11030x1003c234,
10920x820efff8, 11040x820efff8,
10930x40800000, 11050x40800000,
10940x00050843, 11060x00050844,
10950x1004b232, 11070x1004b232,
10960x3cc03ff0, 11080x3cc03ff0,
10970x40800000, 11090x40800000,
10980x00050843, 11100x00050844,
10990x112022f5, 11110x112022f5,
11000x80030000, 11120x80030000,
11010x00098200, 11130x00098200,
@@ -1117,12 +1129,12 @@ static const unsigned int build_actionlist[4961] = {
11170x39800000, 11290x39800000,
11180x00098200, 11300x00098200,
11190x41800000, 11310x41800000,
11200x00050844, 11320x00050845,
11210x39800000, 11330x39800000,
11220x00098200, 11340x00098200,
11230x11140b21, 11350x11140b21,
11240x48000000, 11360x48000000,
11250x00050044, 11370x00050045,
11260x0006000c, 11380x0006000c,
11270x80030000, 11390x80030000,
11280x00098200, 11400x00098200,
@@ -1130,7 +1142,7 @@ static const unsigned int build_actionlist[4961] = {
11300x39800000, 11420x39800000,
11310x00098200, 11430x00098200,
11320x41820000, 11440x41820000,
11330x00050844, 11450x00050845,
11340x7d244b78, 11460x7d244b78,
11350x48000001, 11470x48000001,
11360x0003000c, 11480x0003000c,
@@ -1138,20 +1150,20 @@ static const unsigned int build_actionlist[4961] = {
11380x39800000, 11500x39800000,
11390x00098200, 11510x00098200,
11400x41820000, 11520x41820000,
11410x00050844, 11530x00050845,
11420x00000000, 11540x00000000,
11430x11030301, 11550x11030301,
11440x48000000, 11560x48000000,
11450x0005000b, 11570x0005000b,
11460x00060050, 11580x00060051,
11470x280b0008, 11590x280b0008,
11480x106e0301, 11600x106e0301,
11490x41800000, 11610x41800000,
11500x00050843, 11620x00050844,
11510x1003c234, 11630x1003c234,
11520x820efff8, 11640x820efff8,
11530x40800000, 11650x40800000,
11540x00050843, 11660x00050844,
11550x00000000, 11670x00000000,
11560x81230000, 11680x81230000,
11570x00098200, 11690x00098200,
@@ -1160,7 +1172,7 @@ static const unsigned int build_actionlist[4961] = {
11600x28090000, 11720x28090000,
11610x3a8efff8, 11730x3a8efff8,
11620x40820000, 11740x40820000,
11630x00050843, 11750x00050844,
11640x00000000, 11760x00000000,
11650x100a0301, 11770x100a0301,
11660x00090cab, 11780x00090cab,
@@ -1172,13 +1184,13 @@ static const unsigned int build_actionlist[4961] = {
11720x110e0b21, 11840x110e0b21,
11730x10140321, 11850x10140321,
11740x48000000, 11860x48000000,
11750x00050044, 11870x00050045,
11760x00060051, 11880x00060052,
11770x280b0008, 11890x280b0008,
11780x88d10000, 11900x88d10000,
11790x00098200, 11910x00098200,
11800x41800000, 11920x41800000,
11810x00050843, 11930x00050844,
11820x7dc97378, 11940x7dc97378,
11830x39ce0008, 11950x39ce0008,
11840x54c607fe, 11960x54c607fe,
@@ -1188,18 +1200,18 @@ static const unsigned int build_actionlist[4961] = {
11880x00098200, 12000x00098200,
11890x48000000, 12010x48000000,
11900x00050024, 12020x00050024,
11910x00060052, 12030x00060053,
11920x280b0010, 12040x280b0010,
11930x106e0301, 12050x106e0301,
11940x108e0b01, 12060x108e0b01,
11950x41800000, 12070x41800000,
11960x00050843, 12080x00050844,
11970x88d10000, 12090x88d10000,
11980x00098200, 12100x00098200,
11990x7dc97378, 12110x7dc97378,
12000x1004ca34, 12120x1004ca34,
12010x40800000, 12130x40800000,
12020x00050843, 12140x00050844,
12030x39ce0010, 12150x39ce0010,
12040x54c607fe, 12160x54c607fe,
12050x000900ab, 12170x000900ab,
@@ -1210,16 +1222,16 @@ static const unsigned int build_actionlist[4961] = {
12100x00098200, 12220x00098200,
12110x48000000, 12230x48000000,
12120x00050024, 12240x00050024,
12130x00060053, 12250x00060054,
12140x280b0008, 12260x280b0008,
12150x106e0301, 12270x106e0301,
12160x41800000, 12280x41800000,
12170x00050843, 12290x00050844,
12180x10031a2c, 12300x10031a2c,
12190x2c000000, 12310x2c000000,
12200x00098200, 12320x00098200,
12210x40820000, 12330x40820000,
12220x00050843, 12340x00050844,
12230x88030000, 12350x88030000,
12240x00098200, 12360x00098200,
12250x81030000, 12370x81030000,
@@ -1246,7 +1258,7 @@ static const unsigned int build_actionlist[4961] = {
12460x91d20000, 12580x91d20000,
12470x00098200, 12590x00098200,
12480x41980000, 12600x41980000,
12490x00050843, 12610x00050844,
12500x0006000b, 12620x0006000b,
12510x39ce0008, 12630x39ce0008,
12520x396bfff8, 12640x396bfff8,
@@ -1348,7 +1360,7 @@ static const unsigned int build_actionlist[4961] = {
13480x38600000, 13600x38600000,
13490x48000000, 13610x48000000,
13500x0005000e, 13620x0005000e,
13510x00060054, 13630x00060055,
13520x00000000, 13640x00000000,
13530x806a0000, 13650x806a0000,
13540x00098200, 13660x00098200,
@@ -1377,7 +1389,7 @@ static const unsigned int build_actionlist[4961] = {
13770x91d20000, 13890x91d20000,
13780x00098200, 13900x00098200,
13790x41980000, 13910x41980000,
13800x00050843, 13920x00050844,
13810x0006000b, 13930x0006000b,
13820x91230000, 13940x91230000,
13830x00098200, 13950x00098200,
@@ -1462,7 +1474,7 @@ static const unsigned int build_actionlist[4961] = {
14620x38600000, 14740x38600000,
14630x48000000, 14750x48000000,
14640x0005000e, 14760x0005000e,
14650x00060055, 14770x00060056,
14660x80120000, 14780x80120000,
14670x00098200, 14790x00098200,
14680x00000000, 14800x00000000,
@@ -1476,30 +1488,30 @@ static const unsigned int build_actionlist[4961] = {
14760x38600000, 14880x38600000,
14770x00098200, 14890x00098200,
14780x41820000, 14900x41820000,
14790x00050843, 14910x00050844,
14800x93720000, 14920x93720000,
14810x00098200, 14930x00098200,
14820x98720000, 14940x98720000,
14830x00098200, 14950x00098200,
14840x48000000, 14960x48000000,
14850x0005001a, 14970x0005001a,
14860x00060056, 14980x00060057,
14870x280b0008, 14990x280b0008,
14880x106e0301, 15000x106e0301,
14890x41800000, 15010x41800000,
14900x00050843, 15020x00050844,
14910x1003b232, 15030x1003b232,
14920x40800000, 15040x40800000,
14930x00050843, 15050x00050844,
14940x106302e4, 15060x106302e4,
14950x00060046, 15070x00060047,
14960x820efff8, 15080x820efff8,
14970x3a8efff8, 15090x3a8efff8,
14980x10740321, 15100x10740321,
14990x00060057, 15110x00060058,
15000x39800000, 15120x39800000,
15010x00098200, 15130x00098200,
15020x00060044, 15140x00060045,
15030x72000000, 15150x72000000,
15040x00090200, 15160x00090200,
15050x7d936378, 15170x7d936378,
@@ -1529,312 +1541,312 @@ static const unsigned int build_actionlist[4961] = {
15290x13544320, 15410x13544320,
15300x48000000, 15420x48000000,
15310x0005000f, 15430x0005000f,
15320x00060058, 15440x00060059,
15330x00000000, 15450x00000000,
15340x280b0008, 15460x280b0008,
15350x108e0301, 15470x108e0301,
15360x41800000, 15480x41800000,
15370x00050843, 15490x00050844,
15380x1004b232, 15500x1004b232,
15390x1064222c, 15510x1064222c,
15400x40800000, 15520x40800000,
15410x00050843, 15530x00050844,
15420x820efff8, 15540x820efff8,
15430x48000001, 15550x48000001,
15440x00050059, 15560x0005005a,
15450x3a8efff8, 15570x3a8efff8,
15460x10940321, 15580x10940321,
15470x48000000, 15590x48000000,
15480x00050057, 15600x00050058,
15490x0006005a, 15610x0006005b,
15500x280b0008, 15620x280b0008,
15510x108e0301, 15630x108e0301,
15520x41800000, 15640x41800000,
15530x00050843, 15650x00050844,
15540x1004b232, 15660x1004b232,
15550x1064222c, 15670x1064222c,
15560x40800000, 15680x40800000,
15570x00050843, 15690x00050844,
15580x820efff8, 15700x820efff8,
15590x48000001, 15710x48000001,
15600x0005005b, 15720x0005005c,
15610x3a8efff8, 15730x3a8efff8,
15620x10940321, 15740x10940321,
15630x48000000, 15750x48000000,
15640x00050057, 15760x00050058,
15650x0006005c, 15770x0006005d,
15660x280b0008, 15780x280b0008,
15670x108e0301, 15790x108e0301,
15680x41800000, 15800x41800000,
15690x00050843, 15810x00050844,
15700x1004b232, 15820x1004b232,
15710x1064222c, 15830x1064222c,
15720x40800000, 15840x40800000,
15730x00050843, 15850x00050844,
15740x48000001, 15860x48000001,
15750x0003000e, 15870x0003000e,
15760x1063222d, 15880x1063222d,
15770x48000000, 15890x48000000,
15780x00050046, 15900x00050047,
15790x0006005d, 15910x0006005e,
15800x280b0008, 15920x280b0008,
15810x108e0301, 15930x108e0301,
15820x41800000, 15940x41800000,
15830x00050843, 15950x00050844,
15840x1004b232, 15960x1004b232,
15850x1064222c, 15970x1064222c,
15860x40800000, 15980x40800000,
15870x00050843, 15990x00050844,
15880x48000001, 16000x48000001,
15890x0003000f, 16010x0003000f,
15900x1063222d, 16020x1063222d,
15910x48000000, 16030x48000000,
15920x00050046, 16040x00050047,
15930x0006005e, 16050x0006005f,
15940x280b0008, 16060x280b0008,
15950x108e0301, 16070x108e0301,
15960x41800000, 16080x41800000,
15970x00050843, 16090x00050844,
15980x1004b232, 16100x1004b232,
15990x1064222c, 16110x1064222c,
16000x40800000, 16120x40800000,
16010x00050843, 16130x00050844,
16020x00000000, 16140x00000000,
16030x48000001, 16150x48000001,
16040x00030010, 16160x00030010,
16050x1063222d, 16170x1063222d,
16060x48000000, 16180x48000000,
16070x00050046, 16190x00050047,
16080x0006005f, 16200x00060060,
16090x280b0008, 16210x280b0008,
16100x108e0301, 16220x108e0301,
16110x41800000, 16230x41800000,
16120x00050843, 16240x00050844,
16130x1004b232, 16250x1004b232,
16140x1064222c, 16260x1064222c,
16150x40800000, 16270x40800000,
16160x00050843, 16280x00050844,
16170x48000001, 16290x48000001,
16180x00030011, 16300x00030011,
16190x1063222d, 16310x1063222d,
16200x48000000, 16320x48000000,
16210x00050046, 16330x00050047,
16220x00060060, 16340x00060061,
16230x280b0008, 16350x280b0008,
16240x108e0301, 16360x108e0301,
16250x41800000, 16370x41800000,
16260x00050843, 16380x00050844,
16270x1004b232, 16390x1004b232,
16280x1064222c, 16400x1064222c,
16290x40800000, 16410x40800000,
16300x00050843, 16420x00050844,
16310x48000001, 16430x48000001,
16320x00030012, 16440x00030012,
16330x1063222d, 16450x1063222d,
16340x48000000, 16460x48000000,
16350x00050046, 16470x00050047,
16360x00060061, 16480x00060062,
16370x280b0008, 16490x280b0008,
16380x108e0301, 16500x108e0301,
16390x41800000, 16510x41800000,
16400x00050843, 16520x00050844,
16410x1004b232, 16530x1004b232,
16420x1064222c, 16540x1064222c,
16430x40800000, 16550x40800000,
16440x00050843, 16560x00050844,
16450x48000001, 16570x48000001,
16460x00030013, 16580x00030013,
16470x1063222d, 16590x1063222d,
16480x48000000, 16600x48000000,
16490x00050046, 16610x00050047,
16500x00060062, 16620x00060063,
16510x280b0008, 16630x280b0008,
16520x108e0301, 16640x108e0301,
16530x41800000, 16650x41800000,
16540x00050843, 16660x00050844,
16550x1004b232, 16670x1004b232,
16560x1064222c, 16680x1064222c,
16570x40800000, 16690x40800000,
16580x00050843, 16700x00050844,
16590x48000001, 16710x48000001,
16600x00030014, 16720x00030014,
16610x1063222d, 16730x1063222d,
16620x48000000, 16740x48000000,
16630x00050046, 16750x00050047,
16640x00060063, 16760x00060064,
16650x00000000, 16770x00000000,
16660x280b0008, 16780x280b0008,
16670x108e0301, 16790x108e0301,
16680x41800000, 16800x41800000,
16690x00050843, 16810x00050844,
16700x1004b232, 16820x1004b232,
16710x1064222c, 16830x1064222c,
16720x40800000, 16840x40800000,
16730x00050843, 16850x00050844,
16740x48000001, 16860x48000001,
16750x00030015, 16870x00030015,
16760x1063222d, 16880x1063222d,
16770x48000000, 16890x48000000,
16780x00050046, 16900x00050047,
16790x00060064, 16910x00060065,
16800x280b0008, 16920x280b0008,
16810x108e0301, 16930x108e0301,
16820x41800000, 16940x41800000,
16830x00050843, 16950x00050844,
16840x1004b232, 16960x1004b232,
16850x1064222c, 16970x1064222c,
16860x40800000, 16980x40800000,
16870x00050843, 16990x00050844,
16880x48000001, 17000x48000001,
16890x00030016, 17010x00030016,
16900x1063222d, 17020x1063222d,
16910x48000000, 17030x48000000,
16920x00050046, 17040x00050047,
16930x00060065, 17050x00060066,
16940x280b0008, 17060x280b0008,
16950x108e0301, 17070x108e0301,
16960x41800000, 17080x41800000,
16970x00050843, 17090x00050844,
16980x1004b232, 17100x1004b232,
16990x1064222c, 17110x1064222c,
17000x40800000, 17120x40800000,
17010x00050843, 17130x00050844,
17020x48000001, 17140x48000001,
17030x00030017, 17150x00030017,
17040x1063222d, 17160x1063222d,
17050x48000000, 17170x48000000,
17060x00050046, 17180x00050047,
17070x00060066, 17190x00060067,
17080x280b0008, 17200x280b0008,
17090x108e0301, 17210x108e0301,
17100x41800000, 17220x41800000,
17110x00050843, 17230x00050844,
17120x1004b232, 17240x1004b232,
17130x1064222c, 17250x1064222c,
17140x40800000, 17260x40800000,
17150x00050843, 17270x00050844,
17160x48000001, 17280x48000001,
17170x00030018, 17290x00030018,
17180x1063222d, 17300x1063222d,
17190x48000000, 17310x48000000,
17200x00050046, 17320x00050047,
17210x00060067, 17330x00060068,
17220x280b0008, 17340x280b0008,
17230x108e0301, 17350x108e0301,
17240x41800000, 17360x41800000,
17250x00050843, 17370x00050844,
17260x1004b232, 17380x1004b232,
17270x1064222c, 17390x1064222c,
17280x40800000, 17400x40800000,
17290x00050843, 17410x00050844,
17300x00000000, 17420x00000000,
17310x48000001, 17430x48000001,
17320x00030019, 17440x00030019,
17330x1063222d, 17450x1063222d,
17340x48000000, 17460x48000000,
17350x00050046, 17470x00050047,
17360x00060068, 17480x00060069,
17370x280b0008, 17490x280b0008,
17380x108e0301, 17500x108e0301,
17390x41800000, 17510x41800000,
17400x00050843, 17520x00050844,
17410x1004b232, 17530x1004b232,
17420x1064222c, 17540x1064222c,
17430x40800000, 17550x40800000,
17440x00050843, 17560x00050844,
17450x48000001, 17570x48000001,
17460x0003001a, 17580x0003001a,
17470x1063222d, 17590x1063222d,
17480x48000000, 17600x48000000,
17490x00050046, 17610x00050047,
17500x00060069, 17620x0006006a,
17510x280b0010, 17630x280b0010,
17520x108e0301, 17640x108e0301,
17530x10ce0b01, 17650x10ce0b01,
17540x41800000, 17660x41800000,
17550x00050843, 17670x00050844,
17560x1066222c, 17680x1066222c,
17570x1003b232, 17690x1003b232,
17580x10a6322c, 17700x10a6322c,
17590x40830000, 17710x40830000,
17600x00050843, 17720x00050844,
17610x48000001, 17730x48000001,
17620x0003001b, 17740x0003001b,
17630x1063222d, 17750x1063222d,
17640x48000000, 17760x48000000,
17650x00050046, 17770x00050047,
17660x0006006a, 17780x0006006b,
17670x280b0010, 17790x280b0010,
17680x108e0301, 17800x108e0301,
17690x10ce0b01, 17810x10ce0b01,
17700x41800000, 17820x41800000,
17710x00050843, 17830x00050844,
17720x1066222c, 17840x1066222c,
17730x1003b232, 17850x1003b232,
17740x10a6322c, 17860x10a6322c,
17750x40830000, 17870x40830000,
17760x00050843, 17880x00050844,
17770x48000001, 17890x48000001,
17780x0003001c, 17900x0003001c,
17790x1063222d, 17910x1063222d,
17800x48000000, 17920x48000000,
17810x00050046, 17930x00050047,
17820x0006006b, 17940x0006006c,
17830x280b0010, 17950x280b0010,
17840x108e0301, 17960x108e0301,
17850x10ce0b01, 17970x10ce0b01,
17860x41800000, 17980x41800000,
17870x00050843, 17990x00050844,
17880x1066222c, 18000x1066222c,
17890x1003b232, 18010x1003b232,
17900x10a6322c, 18020x10a6322c,
17910x40830000, 18030x40830000,
17920x00050843, 18040x00050844,
17930x48000001, 18050x48000001,
17940x0003001d, 18060x0003001d,
17950x1063222d, 18070x1063222d,
17960x48000000, 18080x48000000,
17970x00050046, 18090x00050047,
17980x0006006c,
17990x0006006d, 18100x0006006d,
18110x0006006e,
18000x00000000, 18120x00000000,
18010x280b0008, 18130x280b0008,
18020x106e0301, 18140x106e0301,
18030x41800000, 18150x41800000,
18040x00050843, 18160x00050844,
18050x1003b232, 18170x1003b232,
18060x40800000, 18180x40800000,
18070x00050843, 18190x00050844,
18080x108a0301, 18200x108a0301,
18090x00090cab, 18210x00090cab,
18100x106322e8, 18220x106322e8,
18110x48000000, 18230x48000000,
18120x00050046, 18240x00050047,
18130x0006006e, 18250x0006006f,
18140x280b0010, 18260x280b0010,
18150x108e0301, 18270x108e0301,
18160x10ce0b01, 18280x10ce0b01,
18170x41800000, 18290x41800000,
18180x00050843, 18300x00050844,
18190x1066222c, 18310x1066222c,
18200x1003b232, 18320x1003b232,
18210x40830000, 18330x40830000,
18220x00050843, 18340x00050844,
18230x10a032f5, 18350x10a032f5,
18240x48000001, 18360x48000001,
18250x0003001e, 18370x0003001e,
18260x1063222d, 18380x1063222d,
18270x48000000, 18390x48000000,
18280x00050046, 18400x00050047,
18290x0006006f, 18410x00060070,
18300x280b0008, 18420x280b0008,
18310x108e0301, 18430x108e0301,
18320x41800000, 18440x41800000,
18330x00050843, 18450x00050844,
18340x1004b232, 18460x1004b232,
18350x1064222c, 18470x1064222c,
18360x40800000, 18480x40800000,
18370x00050843, 18490x00050844,
18380x38b10000, 18500x38b10000,
18390x00098200, 18510x00098200,
18400x820efff8, 18520x820efff8,
@@ -1850,16 +1862,16 @@ static const unsigned int build_actionlist[4961] = {
18500x00098200, 18620x00098200,
18510x10940b21, 18630x10940b21,
18520x48000000, 18640x48000000,
18530x00050044, 18650x00050045,
18540x00060070, 18660x00060071,
18550x280b0008, 18670x280b0008,
18560x108e0301, 18680x108e0301,
18570x41800000, 18690x41800000,
18580x00050843, 18700x00050844,
18590x1004b232, 18710x1004b232,
18600x1064222c, 18720x1064222c,
18610x40800000, 18730x40800000,
18620x00050843, 18740x00050844,
18630x38aefff8, 18750x38aefff8,
18640x820efff8, 18760x820efff8,
18650x48000001, 18770x48000001,
@@ -1871,76 +1883,76 @@ static const unsigned int build_actionlist[4961] = {
18710x00098200, 18830x00098200,
18720x00000000, 18840x00000000,
18730x48000000, 18850x48000000,
18740x00050044, 18860x00050045,
18750x00060071, 18870x00060072,
18760x280b0008, 18880x280b0008,
18770x106e0301, 18890x106e0301,
18780x41800000, 18900x41800000,
18790x00050843, 18910x00050844,
18800x1003b232, 18920x1003b232,
18810x39000008, 18930x39000008,
18820x40800000, 18940x40800000,
18830x00050843, 18950x00050844,
18840x0006000b, 18960x0006000b,
18850x108e4300, 18970x108e4300,
18860x7c885840, 18980x7c885840,
18870x1004b232, 18990x1004b232,
18880x40840000, 19000x40840000,
18890x00050846, 19010x00050847,
18900x40800000, 19020x40800000,
18910x00050843, 19030x00050844,
18920x10041afd, 19040x10041afd,
18930x39080008, 19050x39080008,
18940x4c010b82, 19060x4c010b82,
18950x10641a78, 19070x10641a78,
18960x48000000, 19080x48000000,
18970x0005000b, 19090x0005000b,
18980x00060072, 19100x00060073,
18990x280b0008, 19110x280b0008,
19000x106e0301, 19120x106e0301,
19010x41800000, 19130x41800000,
19020x00050843, 19140x00050844,
19030x1003b232, 19150x1003b232,
19040x39000008, 19160x39000008,
19050x40800000, 19170x40800000,
19060x00050843, 19180x00050844,
19070x0006000b, 19190x0006000b,
19080x108e4300, 19200x108e4300,
19090x7c885840, 19210x7c885840,
19100x1004b232, 19220x1004b232,
19110x40840000, 19230x40840000,
19120x00050846, 19240x00050847,
19130x40800000, 19250x40800000,
19140x00050843, 19260x00050844,
19150x10041afc, 19270x10041afc,
19160x39080008, 19280x39080008,
19170x4c010b82, 19290x4c010b82,
19180x10641a78, 19300x10641a78,
19190x48000000, 19310x48000000,
19200x0005000b, 19320x0005000b,
19210x00060073, 19330x00060074,
19220x280b0008, 19340x280b0008,
19230x106e0301, 19350x106e0301,
19240x41800000, 19360x41800000,
19250x00050843, 19370x00050844,
19260x1003ba34, 19380x1003ba34,
19270x40800000, 19390x40800000,
19280x00050843, 19400x00050844,
19290x80030000, 19410x80030000,
19300x00098200, 19420x00098200,
19310x106002f1, 19430x106002f1,
19320x48000000, 19440x48000000,
19330x00050046, 19450x00050047,
19340x00060074, 19460x00060075,
19350x280b0008, 19470x280b0008,
19360x106e0301, 19480x106e0301,
19370x40820000, 19490x40820000,
19380x00050843, 19500x00050844,
19390x00000000, 19510x00000000,
19400x1003ba34, 19520x1003ba34,
19410x3a8efff8, 19530x3a8efff8,
19420x40800000, 19540x40800000,
19430x00050843, 19550x00050844,
19440x80030000, 19560x80030000,
19450x00098200, 19570x00098200,
19460x39800000, 19580x39800000,
@@ -1955,31 +1967,31 @@ static const unsigned int build_actionlist[4961] = {
19550x7d8c489e, 19670x7d8c489e,
19560x10740321, 19680x10740321,
19570x48000000, 19690x48000000,
19580x00050044, 19700x00050045,
19590x00060075, 19710x00060076,
19600x80110000, 19720x80110000,
19610x00098200, 19730x00098200,
19620x81110000, 19740x81110000,
19630x00098200, 19750x00098200,
19640x7c004040, 19760x7c004040,
19650x40800001, 19770x40800001,
19660x0005084c, 19780x0005084d,
19670x280b0008, 19790x280b0008,
19680x106e0301, 19800x106e0301,
19690x40820000, 19810x40820000,
19700x00050843, 19820x00050844,
19710x1003b232, 19830x1003b232,
19720x38910000, 19840x38910000,
19730x00098200, 19850x00098200,
19740x40800000, 19860x40800000,
19750x00050843, 19870x00050844,
19760x10001afa, 19880x10001afa,
19770x38a00001, 19890x38a00001,
19780x280000ff, 19900x280000ff,
19790x98040000, 19910x98040000,
19800x41810000, 19920x41810000,
19810x00050843, 19930x00050844,
19820x00060076, 19940x00060077,
19830x7e439378, 19950x7e439378,
19840x91d20000, 19960x91d20000,
19850x00098200, 19970x00098200,
@@ -1990,8 +2002,8 @@ static const unsigned int build_actionlist[4961] = {
19900x00098200, 20020x00098200,
19910x10771a2d, 20030x10771a2d,
19920x48000000, 20040x48000000,
19930x00050046, 20050x00050047,
19940x00060077, 20060x00060078,
19950x80110000, 20070x80110000,
19960x00098200, 20080x00098200,
19970x81110000, 20090x81110000,
@@ -1999,28 +2011,28 @@ static const unsigned int build_actionlist[4961] = {
19990x00000000, 20110x00000000,
20000x7c004040, 20120x7c004040,
20010x40800001, 20130x40800001,
20020x0005084c, 20140x0005084d,
20030x280b0010, 20150x280b0010,
20040x10ae1301, 20160x10ae1301,
20050x106e0301, 20170x106e0301,
20060x41800000, 20180x41800000,
20070x00050843, 20190x00050844,
20080x108e0b01, 20200x108e0b01,
20090x3920ffff, 20210x3920ffff,
20100x41820000, 20220x41820000,
20110x00050801, 20230x00050801,
20120x1005b232, 20240x1005b232,
20130x40800000, 20250x40800000,
20140x00050843, 20260x00050844,
20150x11202afa, 20270x11202afa,
20160x0006000b, 20280x0006000b,
20170x1004b232, 20290x1004b232,
20180x40800000, 20300x40800000,
20190x00050843, 20310x00050844,
20200x1003ba34, 20320x1003ba34,
20210x110022fa, 20330x110022fa,
20220x40800000, 20340x40800000,
20230x00050843, 20350x00050844,
20240x80030000, 20360x80030000,
20250x00098200, 20370x00098200,
20260x7c004840, 20380x7c004840,
@@ -2040,7 +2052,7 @@ static const unsigned int build_actionlist[4961] = {
20400x7c844214, 20520x7c844214,
20410x7ca0281e, 20530x7ca0281e,
20420x48000000, 20540x48000000,
20430x00050076, 20550x00050077,
20440x0006000f, 20560x0006000f,
20450x7c004800, 20570x7c004800,
20460x38c60001, 20580x38c60001,
@@ -2054,27 +2066,27 @@ static const unsigned int build_actionlist[4961] = {
20540x39080001, 20660x39080001,
20550x48000000, 20670x48000000,
20560x0005000d, 20680x0005000d,
20570x00060078, 20690x00060079,
20580x80110000, 20700x80110000,
20590x00098200, 20710x00098200,
20600x81110000, 20720x81110000,
20610x00098200, 20730x00098200,
20620x7c004040, 20740x7c004040,
20630x40800001, 20750x40800001,
20640x0005084c, 20760x0005084d,
20650x00000000, 20770x00000000,
20660x280b0010, 20780x280b0010,
20670x106e0301, 20790x106e0301,
20680x108e0b01, 20800x108e0b01,
20690x41800000, 20810x41800000,
20700x00050843, 20820x00050844,
20710x1004b232, 20830x1004b232,
20720x40800000, 20840x40800000,
20730x00050843, 20850x00050844,
20740x1003ba34, 20860x1003ba34,
20750x10a022fa, 20870x10a022fa,
20760x40800000, 20880x40800000,
20770x00050843, 20890x00050844,
20780x80030000, 20900x80030000,
20790x00098200, 20910x00098200,
20800x2c050000, 20920x2c050000,
@@ -2088,13 +2100,13 @@ static const unsigned int build_actionlist[4961] = {
20880x00050802, 21000x00050802,
20890x7c882840, 21010x7c882840,
20900x40820000, 21020x40820000,
20910x00050843, 21030x00050844,
20920x88030000, 21040x88030000,
20930x00098200, 21050x00098200,
20940x80910000, 21060x80910000,
20950x00098200, 21070x00098200,
20960x41840000, 21080x41840000,
20970x00050843, 21090x00050844,
20980x0006000b, 21100x0006000b,
20990x28090000, 21110x28090000,
21000x7c0449ae, 21120x7c0449ae,
@@ -2102,31 +2114,31 @@ static const unsigned int build_actionlist[4961] = {
21020x40820000, 21140x40820000,
21030x0005080b, 21150x0005080b,
21040x48000000, 21160x48000000,
21050x00050076, 21170x00050077,
21060x0006000c, 21180x0006000c,
21070x38710000, 21190x38710000,
21080x00098200, 21200x00098200,
21090x10771a2d, 21210x10771a2d,
21100x48000000, 21220x48000000,
21110x00050046, 21230x00050047,
21120x00060079, 21240x0006007a,
21130x80110000, 21250x80110000,
21140x00098200, 21260x00098200,
21150x81110000, 21270x81110000,
21160x00098200, 21280x00098200,
21170x7c004040, 21290x7c004040,
21180x40800001, 21300x40800001,
21190x0005084c, 21310x0005084d,
21200x280b0008, 21320x280b0008,
21210x106e0301, 21330x106e0301,
21220x41800000, 21340x41800000,
21230x00050843, 21350x00050844,
21240x00000000, 21360x00000000,
21250x1003ba34, 21370x1003ba34,
21260x81110000, 21380x81110000,
21270x00098200, 21390x00098200,
21280x40800000, 21400x40800000,
21290x00050843, 21410x00050844,
21300x80a30000, 21420x80a30000,
21310x00098200, 21430x00098200,
21320x38630000, 21440x38630000,
@@ -2137,34 +2149,34 @@ static const unsigned int build_actionlist[4961] = {
21370x7c082840, 21490x7c082840,
21380x38c5ffff, 21500x38c5ffff,
21390x41800000, 21510x41800000,
21400x00050843, 21520x00050844,
21410x0006000b, 21530x0006000b,
21420x2c060000, 21540x2c060000,
21430x7d0348ae, 21550x7d0348ae,
21440x41800000, 21560x41800000,
21450x00050876, 21570x00050877,
21460x7d0431ae, 21580x7d0431ae,
21470x38c6ffff, 21590x38c6ffff,
21480x39290001, 21600x39290001,
21490x48000000, 21610x48000000,
21500x0005000b, 21620x0005000b,
21510x0006007a, 21630x0006007b,
21520x80110000, 21640x80110000,
21530x00098200, 21650x00098200,
21540x81110000, 21660x81110000,
21550x00098200, 21670x00098200,
21560x7c004040, 21680x7c004040,
21570x40800001, 21690x40800001,
21580x0005084c, 21700x0005084d,
21590x280b0008, 21710x280b0008,
21600x106e0301, 21720x106e0301,
21610x41800000, 21730x41800000,
21620x00050843, 21740x00050844,
21630x1003ba34, 21750x1003ba34,
21640x81110000, 21760x81110000,
21650x00098200, 21770x00098200,
21660x40800000, 21780x40800000,
21670x00050843, 21790x00050844,
21680x80a30000, 21800x80a30000,
21690x00098200, 21810x00098200,
21700x38630000, 21820x38630000,
@@ -2174,12 +2186,12 @@ static const unsigned int build_actionlist[4961] = {
21740x7c082840, 21860x7c082840,
21750x39200000, 21870x39200000,
21760x41800000, 21880x41800000,
21770x00050843, 21890x00050844,
21780x0006000b, 21900x0006000b,
21790x7c092840, 21910x7c092840,
21800x7d0348ae, 21920x7d0348ae,
21810x40800000, 21930x40800000,
21820x00050876, 21940x00050877,
21830x00000000, 21950x00000000,
21840x3808ffbf, 21960x3808ffbf,
21850x69060020, 21970x69060020,
@@ -2189,23 +2201,23 @@ static const unsigned int build_actionlist[4961] = {
21890x39290001, 22010x39290001,
21900x48000000, 22020x48000000,
21910x0005000b, 22030x0005000b,
21920x0006007b, 22040x0006007c,
21930x80110000, 22050x80110000,
21940x00098200, 22060x00098200,
21950x81110000, 22070x81110000,
21960x00098200, 22080x00098200,
21970x7c004040, 22090x7c004040,
21980x40800001, 22100x40800001,
21990x0005084c, 22110x0005084d,
22000x280b0008, 22120x280b0008,
22010x106e0301, 22130x106e0301,
22020x41800000, 22140x41800000,
22030x00050843, 22150x00050844,
22040x1003ba34, 22160x1003ba34,
22050x81110000, 22170x81110000,
22060x00098200, 22180x00098200,
22070x40800000, 22190x40800000,
22080x00050843, 22200x00050844,
22090x80a30000, 22210x80a30000,
22100x00098200, 22220x00098200,
22110x38630000, 22230x38630000,
@@ -2215,12 +2227,12 @@ static const unsigned int build_actionlist[4961] = {
22150x7c082840, 22270x7c082840,
22160x39200000, 22280x39200000,
22170x41800000, 22290x41800000,
22180x00050843, 22300x00050844,
22190x0006000b, 22310x0006000b,
22200x7c092840, 22320x7c092840,
22210x7d0348ae, 22330x7d0348ae,
22220x40800000, 22340x40800000,
22230x00050876, 22350x00050877,
22240x3808ff9f, 22360x3808ff9f,
22250x69060020, 22370x69060020,
22260x2800001a, 22380x2800001a,
@@ -2229,41 +2241,41 @@ static const unsigned int build_actionlist[4961] = {
22290x39290001, 22410x39290001,
22300x48000000, 22420x48000000,
22310x0005000b, 22430x0005000b,
22320x0006007c, 22440x0006007d,
22330x280b0008, 22450x280b0008,
22340x106e0301, 22460x106e0301,
22350x41800000, 22470x41800000,
22360x00050843, 22480x00050844,
22370x1003c234, 22490x1003c234,
22380x40800000, 22500x40800000,
22390x00050843, 22510x00050844,
22400x48000001, 22520x48000001,
22410x00030022, 22530x00030022,
22420x10601af1, 22540x10601af1,
22430x48000000, 22550x48000000,
22440x00050046, 22560x00050047,
22450x0006007d, 22570x0006007e,
22460x280b0008, 22580x280b0008,
22470x106e0301, 22590x106e0301,
22480x41800000, 22600x41800000,
22490x00050843, 22610x00050844,
22500x00000000, 22620x00000000,
22510x1003b232, 22630x1003b232,
22520x40800000, 22640x40800000,
22530x00050843, 22650x00050844,
22540x1063dae0, 22660x1063dae0,
22550x0006007e, 22670x0006007f,
22560x10601af1, 22680x10601af1,
22570x48000000, 22690x48000000,
22580x00050046, 22700x00050047,
22590x0006007f, 22710x00060080,
22600x280b0008, 22720x280b0008,
22610x106e0301, 22730x106e0301,
22620x41800000, 22740x41800000,
22630x00050843, 22750x00050844,
22640x1003b232, 22760x1003b232,
22650x40800000, 22770x40800000,
22660x00050843, 22780x00050844,
22670x1063dae0, 22790x1063dae0,
22680x39000008, 22800x39000008,
22690x0006000b, 22810x0006000b,
@@ -2271,22 +2283,22 @@ static const unsigned int build_actionlist[4961] = {
22710x7c885840, 22830x7c885840,
22720x1004b232, 22840x1004b232,
22730x40840000, 22850x40840000,
22740x0005087e, 22860x0005087f,
22750x40800000, 22870x40800000,
22760x00050843, 22880x00050844,
22770x1084dae0, 22890x1084dae0,
22780x7c632038, 22900x7c632038,
22790x39080008, 22910x39080008,
22800x48000000, 22920x48000000,
22810x0005000b, 22930x0005000b,
22820x00060080, 22940x00060081,
22830x280b0008, 22950x280b0008,
22840x106e0301, 22960x106e0301,
22850x41800000, 22970x41800000,
22860x00050843, 22980x00050844,
22870x1003b232, 22990x1003b232,
22880x40800000, 23000x40800000,
22890x00050843, 23010x00050844,
22900x1063dae0, 23020x1063dae0,
22910x39000008, 23030x39000008,
22920x0006000b, 23040x0006000b,
@@ -2294,22 +2306,22 @@ static const unsigned int build_actionlist[4961] = {
22940x7c885840, 23060x7c885840,
22950x1004b232, 23070x1004b232,
22960x40840000, 23080x40840000,
22970x0005087e, 23090x0005087f,
22980x40800000, 23100x40800000,
22990x00050843, 23110x00050844,
23000x1084dae0, 23120x1084dae0,
23010x7c632378, 23130x7c632378,
23020x39080008, 23140x39080008,
23030x48000000, 23150x48000000,
23040x0005000b, 23160x0005000b,
23050x00060081, 23170x00060082,
23060x280b0008, 23180x280b0008,
23070x106e0301, 23190x106e0301,
23080x41800000, 23200x41800000,
23090x00050843, 23210x00050844,
23100x1003b232, 23220x1003b232,
23110x40800000, 23230x40800000,
23120x00050843, 23240x00050844,
23130x1063dae0, 23250x1063dae0,
23140x39000008, 23260x39000008,
23150x0006000b, 23270x0006000b,
@@ -2317,129 +2329,129 @@ static const unsigned int build_actionlist[4961] = {
23170x7c885840, 23290x7c885840,
23180x1004b232, 23300x1004b232,
23190x40840000, 23310x40840000,
23200x0005087e, 23320x0005087f,
23210x00000000, 23330x00000000,
23220x40800000, 23340x40800000,
23230x00050843, 23350x00050844,
23240x1084dae0, 23360x1084dae0,
23250x7c632278, 23370x7c632278,
23260x39080008, 23380x39080008,
23270x48000000, 23390x48000000,
23280x0005000b, 23400x0005000b,
23290x00060082, 23410x00060083,
23300x280b0008, 23420x280b0008,
23310x106e0301, 23430x106e0301,
23320x41800000, 23440x41800000,
23330x00050843, 23450x00050844,
23340x1003b232, 23460x1003b232,
23350x40800000, 23470x40800000,
23360x00050843, 23480x00050844,
23370x1063dae0, 23490x1063dae0,
23380x5460403e, 23500x5460403e,
23390x5060c00e, 23510x5060c00e,
23400x5060c42e, 23520x5060c42e,
23410x106002f1, 23530x106002f1,
23420x48000000, 23540x48000000,
23430x00050046, 23550x00050047,
23440x00060083, 23560x00060084,
23450x280b0008, 23570x280b0008,
23460x106e0301, 23580x106e0301,
23470x41800000, 23590x41800000,
23480x00050843, 23600x00050844,
23490x1003b232, 23610x1003b232,
23500x40800000, 23620x40800000,
23510x00050843, 23630x00050844,
23520x1063dae0, 23640x1063dae0,
23530x7c6018f8, 23650x7c6018f8,
23540x106002f1, 23660x106002f1,
23550x48000000, 23670x48000000,
23560x00050046, 23680x00050047,
23570x00060084, 23690x00060085,
23580x280b0010, 23700x280b0010,
23590x106e0301, 23710x106e0301,
23600x108e0b01, 23720x108e0b01,
23610x41800000, 23730x41800000,
23620x00050843, 23740x00050844,
23630x1003222c, 23750x1003222c,
23640x1000b232, 23760x1000b232,
23650x40830000, 23770x40830000,
23660x00050843, 23780x00050844,
23670x1084dae0, 23790x1084dae0,
23680x1063dae0, 23800x1063dae0,
23690x548406fe, 23810x548406fe,
23700x7c602030, 23820x7c602030,
23710x106002f1, 23830x106002f1,
23720x48000000, 23840x48000000,
23730x00050046, 23850x00050047,
23740x00060085, 23860x00060086,
23750x280b0010, 23870x280b0010,
23760x106e0301, 23880x106e0301,
23770x108e0b01, 23890x108e0b01,
23780x41800000, 23900x41800000,
23790x00050843, 23910x00050844,
23800x1003222c, 23920x1003222c,
23810x1000b232, 23930x1000b232,
23820x40830000, 23940x40830000,
23830x00050843, 23950x00050844,
23840x1084dae0, 23960x1084dae0,
23850x1063dae0, 23970x1063dae0,
23860x548406fe, 23980x548406fe,
23870x7c602430, 23990x7c602430,
23880x106002f1, 24000x106002f1,
23890x48000000, 24010x48000000,
23900x00050046, 24020x00050047,
23910x00060086, 24030x00060087,
23920x280b0010, 24040x280b0010,
23930x106e0301, 24050x106e0301,
23940x108e0b01, 24060x108e0b01,
23950x41800000, 24070x41800000,
23960x00050843, 24080x00050844,
23970x1003222c, 24090x1003222c,
23980x1000b232, 24100x1000b232,
23990x40830000, 24110x40830000,
24000x00050843, 24120x00050844,
24010x1084dae0, 24130x1084dae0,
24020x1063dae0, 24140x1063dae0,
24030x548406fe, 24150x548406fe,
24040x7c602630, 24160x7c602630,
24050x106002f1, 24170x106002f1,
24060x48000000, 24180x48000000,
24070x00050046, 24190x00050047,
24080x00060087, 24200x00060088,
24090x00000000, 24210x00000000,
24100x280b0010, 24220x280b0010,
24110x106e0301, 24230x106e0301,
24120x108e0b01, 24240x108e0b01,
24130x41800000, 24250x41800000,
24140x00050843, 24260x00050844,
24150x1003222c, 24270x1003222c,
24160x1000b232, 24280x1000b232,
24170x40830000, 24290x40830000,
24180x00050843, 24300x00050844,
24190x1084dae0, 24310x1084dae0,
24200x1063dae0, 24320x1063dae0,
24210x5c60203e, 24330x5c60203e,
24220x106002f1, 24340x106002f1,
24230x48000000, 24350x48000000,
24240x00050046, 24360x00050047,
24250x00060088, 24370x00060089,
24260x280b0010, 24380x280b0010,
24270x106e0301, 24390x106e0301,
24280x108e0b01, 24400x108e0b01,
24290x41800000, 24410x41800000,
24300x00050843, 24420x00050844,
24310x1003222c, 24430x1003222c,
24320x1000b232, 24440x1000b232,
24330x40830000, 24450x40830000,
24340x00050843, 24460x00050844,
24350x1084dae0, 24470x1084dae0,
24360x1063dae0, 24480x1063dae0,
24370x7c8400d0, 24490x7c8400d0,
24380x5c60203e, 24500x5c60203e,
24390x106002f1, 24510x106002f1,
24400x48000000, 24520x48000000,
24410x00050046, 24530x00050047,
24420x00060043, 24540x00060044,
24430x80ca0000, 24550x80ca0000,
24440x00098200, 24560x00098200,
24450x7d0e5a14, 24570x7d0e5a14,
@@ -2466,7 +2478,7 @@ static const unsigned int build_actionlist[4961] = {
24660x000900a1, 24780x000900a1,
24670x3a8efff8, 24790x3a8efff8,
24680x41810000, 24800x41810000,
24690x00050844, 24810x00050845,
24700x0006000b, 24820x0006000b,
24710x80120000, 24830x80120000,
24720x00098200, 24840x00098200,
@@ -2507,7 +2519,7 @@ static const unsigned int build_actionlist[4961] = {
25070x7c000000, 25190x7c000000,
25080x48000000, 25200x48000000,
25090x0005000b, 25210x0005000b,
25100x0006004c, 25220x0006004d,
25110x7ea802a6, 25230x7ea802a6,
25120x91d20000, 25240x91d20000,
25130x00098200, 25250x00098200,
@@ -2526,11 +2538,11 @@ static const unsigned int build_actionlist[4961] = {
25260x7d6e0050, 25380x7d6e0050,
25270x814efffc, 25390x814efffc,
25280x4e800020, 25400x4e800020,
25290x00060089, 25410x0006008a,
25300x00000000, 25420x00000000,
25310x7c810808, 25430x7c810808,
25320x00000000, 25440x00000000,
25330x0006008a, 25450x0006008b,
25340x88d10000, 25460x88d10000,
25350x00098200, 25470x00098200,
25360x70c00000, 25480x70c00000,
@@ -2543,7 +2555,7 @@ static const unsigned int build_actionlist[4961] = {
25430x7c11402e, 25550x7c11402e,
25440x7c0903a6, 25560x7c0903a6,
25450x4e800420, 25570x4e800420,
25460x0006008b, 25580x0006008c,
25470x88d10000, 25590x88d10000,
25480x00098200, 25600x00098200,
25490x81310000, 25610x81310000,
@@ -2588,22 +2600,22 @@ static const unsigned int build_actionlist[4961] = {
25880x54eb9d78, 26000x54eb9d78,
25890x7c0903a6, 26010x7c0903a6,
25900x4e800420, 26020x4e800420,
25910x0006008c, 26030x0006008d,
25920x3a100004, 26040x3a100004,
25930x826affec, 26050x826affec,
25940x48000000, 26060x48000000,
25950x0005000e, 26070x0005000e,
25960x0006008d, 26080x0006008e,
25970x00000000, 26090x00000000,
25980x7c810808, 26100x7c810808,
25990x00000000, 26110x00000000,
26000x0006008e, 26120x0006008f,
26010x7e048378, 26130x7e048378,
26020x00000000, 26140x00000000,
26030x48000000, 26150x48000000,
26040x00050001, 26160x00050001,
26050x00000000, 26170x00000000,
26060x0006008f, 26180x00060090,
26070x00000000, 26190x00000000,
26080x62040001, 26200x62040001,
26090x0006000b, 26210x0006000b,
@@ -2628,24 +2640,24 @@ static const unsigned int build_actionlist[4961] = {
26280x814efffc, 26400x814efffc,
26290x7c6903a6, 26410x7c6903a6,
26300x4e800420, 26420x4e800420,
26310x00060090, 26430x00060091,
26320x00000000, 26440x00000000,
26330x7c810808, 26450x7c810808,
26340x00000000, 26460x00000000,
26350x00060091, 26470x00060092,
26360x00000000, 26480x00000000,
26370x7c810808, 26490x7c810808,
26380x00000000, 26500x00000000,
26390x00060092, 26510x00060093,
26400x7ca802a6, 26520x7ca802a6,
26410x48000001, 26530x48000001,
26420x00050059, 26540x0005005a,
26430x7ca803a6, 26550x7ca803a6,
26440x1064222c, 26560x1064222c,
26450x4e800020, 26570x4e800020,
26460x00060093, 26580x00060094,
26470x1064222c, 26590x1064222c,
26480x00060059, 26600x0006005a,
26490x5469657e, 26610x5469657e,
26500x3529fc01, 26620x3529fc01,
26510x3900ffff, 26630x3900ffff,
@@ -2681,9 +2693,9 @@ static const unsigned int build_actionlist[4961] = {
26810x5103007e, 26930x5103007e,
26820x1083022d, 26940x1083022d,
26830x4e800020, 26950x4e800020,
26840x00060094, 26960x00060095,
26850x1064222c, 26970x1064222c,
26860x0006005b, 26980x0006005c,
26870x5469657e, 26990x5469657e,
26880x3529fc01, 27000x3529fc01,
26890x3900ffff, 27010x3900ffff,
@@ -2720,9 +2732,9 @@ static const unsigned int build_actionlist[4961] = {
27200x1083022d, 27320x1083022d,
27210x4e800020, 27330x4e800020,
27220x00000000, 27340x00000000,
27230x00060095,
27240x1064222c,
27250x00060096, 27350x00060096,
27360x1064222c,
27370x00060097,
27260x5469657e, 27380x5469657e,
27270x3529fc01, 27390x3529fc01,
27280x3900ffff, 27400x3900ffff,
@@ -2743,18 +2755,18 @@ static const unsigned int build_actionlist[4961] = {
27430x1088022d, 27550x1088022d,
27440x4e800020, 27560x4e800020,
27450x00000000, 27570x00000000,
27460x00060095,
27470x00060096, 27580x00060096,
27480x00000000,
27490x00060097, 27590x00060097,
27500x00000000, 27600x00000000,
27510x7c810808,
27520x00000000,
27530x00060098, 27610x00060098,
27540x00000000, 27620x00000000,
27550x7c810808, 27630x7c810808,
27560x00000000, 27640x00000000,
27570x00060099, 27650x00060099,
27660x00000000,
27670x7c810808,
27680x00000000,
27690x0006009a,
27580x1083222d, 27700x1083222d,
27590x28070001, 27710x28070001,
27600x10c5322d, 27720x10c5322d,
@@ -2793,7 +2805,7 @@ static const unsigned int build_actionlist[4961] = {
27930x11463217, 28050x11463217,
27940x7d6802a6, 28060x7d6802a6,
27950x48000001, 28070x48000001,
27960x00050093, 28080x00050094,
27970x7d6803a6, 28090x7d6803a6,
27980x108452e8, 28100x108452e8,
27990x108522e1, 28110x108522e1,
@@ -2815,7 +2827,7 @@ static const unsigned int build_actionlist[4961] = {
28150x4e800020, 28270x4e800020,
28160x0006000c, 28280x0006000c,
28170x7c810808, 28290x7c810808,
28180x0006009a, 28300x0006009b,
28190x00000000, 28310x00000000,
28200x7c810808, 28320x7c810808,
28210x00000000, 28330x00000000,
@@ -3125,11 +3137,30 @@ static const unsigned int build_actionlist[4961] = {
31250x1003c234, 31370x1003c234,
31260x40800000, 31380x40800000,
31270x0005083e, 31390x0005083e,
31400x00000000,
31410x81230000,
31420x00098200,
31430x28090000,
31440x40820000,
31450x00050809,
31460x0006000d,
31470x00000000,
31480x0006003f,
31280x48000001, 31490x48000001,
31290x00030022, 31500x00030022,
31300x48000000, 31510x48000000,
31310x0005000b, 31520x0005000b,
31320x00000000, 31530x00000000,
31540x00060013,
31550x88090000,
31560x00098200,
31570x70000000,
31580x00090200,
31590x40820000,
31600x0005080d,
31610x48000000,
31620x0005003e,
31630x00000000,
31330x100e5300, 31640x100e5300,
31340x1000b232, 31650x1000b232,
31350x110f5b00, 31660x110f5b00,
@@ -3277,10 +3308,10 @@ static const unsigned int build_actionlist[4961] = {
32770x40830000, 33080x40830000,
32780x0005083d, 33090x0005083d,
32790x00000000, 33100x00000000,
32800x0006009b, 33110x0006009c,
32810x108caae9, 33120x108caae9,
32820x48000001, 33130x48000001,
32830x00050093, 33140x00050094,
32840x1004aae8, 33150x1004aae8,
32850x80f00000, 33160x80f00000,
32860x3a100004, 33170x3a100004,
@@ -3315,7 +3346,7 @@ static const unsigned int build_actionlist[4961] = {
33150x0005083d, 33460x0005083d,
33160x00000000, 33470x00000000,
33170x48000000, 33480x48000000,
33180x0005009b, 33490x0005009c,
33190x00000000, 33500x00000000,
33200x108e5300, 33510x108e5300,
33210x10ce5b00, 33520x10ce5b00,
@@ -3750,10 +3781,10 @@ static const unsigned int build_actionlist[4961] = {
37500x7d6f402e, 37810x7d6f402e,
37510x00000000, 37820x00000000,
37520x48000000, 37830x48000000,
37530x0005009c, 37840x0005009d,
37540x00000000, 37850x00000000,
37550x48000000, 37860x48000000,
37560x0005009d, 37870x0005009e,
37570x00000000, 37880x00000000,
37580x114e5300, 37890x114e5300,
37590x116e5b00, 37900x116e5b00,
@@ -3809,7 +3840,7 @@ static const unsigned int build_actionlist[4961] = {
38090x0006000f, 38400x0006000f,
38100x100bba34, 38410x100bba34,
38110x41800000, 38420x41800000,
38120x0005089c, 38430x0005089d,
38130x48000000, 38440x48000000,
38140x0005002f, 38450x0005002f,
38150x00000000, 38460x00000000,
@@ -3821,7 +3852,7 @@ static const unsigned int build_actionlist[4961] = {
38210x7d6f402e, 38520x7d6f402e,
38220x40800000, 38530x40800000,
38230x0005082c, 38540x0005082c,
38240x0006009c, 38550x0006009d,
38250x800a0000, 38560x800a0000,
38260x00098200, 38570x00098200,
38270x810b0000, 38580x810b0000,
@@ -3988,7 +4019,7 @@ static const unsigned int build_actionlist[4961] = {
39880x0006000f, 40190x0006000f,
39890x100bba34, 40200x100bba34,
39900x41800000, 40210x41800000,
39910x0005089d, 40220x0005089e,
39920x48000000, 40230x48000000,
39930x00050033, 40240x00050033,
39940x00060011, 40250x00060011,
@@ -4013,7 +4044,7 @@ static const unsigned int build_actionlist[4961] = {
40130x7d6f402e, 40440x7d6f402e,
40140x40800000, 40450x40800000,
40150x00050830, 40460x00050830,
40160x0006009d, 40470x0006009e,
40170x800a0000, 40480x800a0000,
40180x00098200, 40490x00098200,
40190x810b0000, 40500x810b0000,
@@ -4292,8 +4323,8 @@ static const unsigned int build_actionlist[4961] = {
42920x100aca34, 43230x100aca34,
42930x3a940008, 43240x3a940008,
42940x40800000, 43250x40800000,
42950x0005083f, 43260x00050840,
42960x00060040, 43270x00060041,
42970x71000000, 43280x71000000,
42980x00090200, 43290x00090200,
42990x88ca0000, 43300x88ca0000,
@@ -4614,7 +4645,7 @@ static const unsigned int build_actionlist[4961] = {
46140x6a080000, 46450x6a080000,
46150x00090200, 46460x00090200,
46160x40820000, 46470x40820000,
46170x0005089e, 46480x0005089f,
46180x00060017, 46490x00060017,
46190x80f0fffc, 46500x80f0fffc,
46200x2c0c0008, 46510x2c0c0008,
@@ -4665,7 +4696,7 @@ static const unsigned int build_actionlist[4961] = {
46650x13494320, 46960x13494320,
46660x48000000, 46970x48000000,
46670x0005000f, 46980x0005000f,
46680x0006009e, 46990x0006009f,
46690x71090000, 47000x71090000,
46700x00090200, 47010x00090200,
46710x40820000, 47020x40820000,
@@ -4683,7 +4714,7 @@ static const unsigned int build_actionlist[4961] = {
46830x6a080000, 47140x6a080000,
46840x00090200, 47150x00090200,
46850x40820000, 47160x40820000,
46860x0005089e, 47170x0005089f,
46870x80f0fffc, 47180x80f0fffc,
46880x392efff8, 47190x392efff8,
46890x54ea5d78, 47200x54ea5d78,
@@ -4735,7 +4766,7 @@ static const unsigned int build_actionlist[4961] = {
47350x4c00e382, 47660x4c00e382,
47360x4c002382, 47670x4c002382,
47370x41800000, 47680x41800000,
47380x00050841, 47690x00050842,
47390x00000000, 47700x00000000,
47400x110832e0, 47710x110832e0,
47410x11140321, 47720x11140321,
@@ -5020,6 +5051,7 @@ enum {
5020 GLOB_vmeta_unm, 5051 GLOB_vmeta_unm,
5021 GLOB_vmeta_arith_vv, 5052 GLOB_vmeta_arith_vv,
5022 GLOB_vmeta_len, 5053 GLOB_vmeta_len,
5054 GLOB_BC_LEN_Z,
5023 GLOB_vmeta_callt, 5055 GLOB_vmeta_callt,
5024 GLOB_BC_CALLT_Z, 5056 GLOB_BC_CALLT_Z,
5025 GLOB_vmeta_for, 5057 GLOB_vmeta_for,
@@ -5162,6 +5194,7 @@ static const char *const globnames[] = {
5162 "vmeta_unm", 5194 "vmeta_unm",
5163 "vmeta_arith_vv", 5195 "vmeta_arith_vv",
5164 "vmeta_len", 5196 "vmeta_len",
5197 "BC_LEN_Z",
5165 "vmeta_callt", 5198 "vmeta_callt",
5166 "BC_CALLT_Z", 5199 "BC_CALLT_Z",
5167 "vmeta_for", 5200 "vmeta_for",
@@ -5341,96 +5374,106 @@ static void build_subroutines(BuildCtx *ctx)
5341 dasm_put(Dst, 481, DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), DISPATCH_GL(tmptv2), DISPATCH_GL(tmptv), Dt1(->base), FRAME_CONT, Dt1(->top), DISPATCH_GL(tmptv)); 5374 dasm_put(Dst, 481, DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), DISPATCH_GL(tmptv2), DISPATCH_GL(tmptv), Dt1(->base), FRAME_CONT, Dt1(->top), DISPATCH_GL(tmptv));
5342 dasm_put(Dst, 556, DISPATCH_GL(tmptv), DISPATCH_GL(tmptv2), DISPATCH_GL(tmptv), Dt1(->base), FRAME_CONT, Dt1(->top), Dt1(->base)); 5375 dasm_put(Dst, 556, DISPATCH_GL(tmptv), DISPATCH_GL(tmptv2), DISPATCH_GL(tmptv), Dt1(->base), FRAME_CONT, Dt1(->top), Dt1(->base));
5343 dasm_put(Dst, 637, -(BCBIAS_J*4 >> 16), LJ_TTRUE, LJ_TFALSE, Dt1(->base)); 5376 dasm_put(Dst, 637, -(BCBIAS_J*4 >> 16), LJ_TTRUE, LJ_TFALSE, Dt1(->base));
5344 dasm_put(Dst, 706, Dt1(->base), FRAME_CONT, Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base)); 5377 dasm_put(Dst, 706, Dt1(->base), FRAME_CONT);
5378#ifdef LUAJIT_ENABLE_LUA52COMPAT
5379 dasm_put(Dst, 728);
5380#endif
5381 dasm_put(Dst, 730, Dt1(->base));
5382#ifdef LUAJIT_ENABLE_LUA52COMPAT
5383 dasm_put(Dst, 738);
5384#else
5385 dasm_put(Dst, 745);
5386#endif
5387 dasm_put(Dst, 748, Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base));
5345#if LJ_HASJIT 5388#if LJ_HASJIT
5346 dasm_put(Dst, 784); 5389 dasm_put(Dst, 796);
5347#endif 5390#endif
5348 dasm_put(Dst, 786); 5391 dasm_put(Dst, 798);
5349#if LJ_HASJIT 5392#if LJ_HASJIT
5350 dasm_put(Dst, 788, BC_JFORI); 5393 dasm_put(Dst, 800, BC_JFORI);
5351#endif 5394#endif
5352 dasm_put(Dst, 791); 5395 dasm_put(Dst, 803);
5353#if LJ_HASJIT 5396#if LJ_HASJIT
5354 dasm_put(Dst, 793, BC_JFORI); 5397 dasm_put(Dst, 805, BC_JFORI);
5355#endif 5398#endif
5356 dasm_put(Dst, 796, BC_FORI, ~LJ_TNUMX, 31-3, Dt8(->upvalue), Dt6(->metatable), DISPATCH_GL(gcroot[GCROOT_MMNAME+MM_metatable])); 5399 dasm_put(Dst, 808, BC_FORI, ~LJ_TNUMX, 31-3, Dt8(->upvalue), Dt6(->metatable), DISPATCH_GL(gcroot[GCROOT_MMNAME+MM_metatable]));
5357 dasm_put(Dst, 861, 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])); 5400 dasm_put(Dst, 873, 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]));
5358 dasm_put(Dst, 917, Dt6(->metatable), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 5401 dasm_put(Dst, 929, Dt6(->metatable), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
5359 dasm_put(Dst, 977, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->top), (2+1)*8); 5402 dasm_put(Dst, 989, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->top), (2+1)*8);
5360#ifdef LUAJIT_ENABLE_LUA52COMPAT 5403#ifdef LUAJIT_ENABLE_LUA52COMPAT
5361 dasm_put(Dst, 1050, Dt6(->metatable), Dt8(->upvalue[0])); 5404 dasm_put(Dst, 1062, Dt6(->metatable), Dt8(->upvalue[0]));
5362#else 5405#else
5363 dasm_put(Dst, 1059, Dt8(->upvalue[0])); 5406 dasm_put(Dst, 1071, Dt8(->upvalue[0]));
5364#endif 5407#endif
5365 dasm_put(Dst, 1063, (3+1)*8, Dt6(->asize), Dt6(->array), 31-3, (0+1)*8, (2+1)*8, Dt6(->hmask), (0+1)*8, (0+1)*8); 5408 dasm_put(Dst, 1075, (3+1)*8, Dt6(->asize), Dt6(->array), 31-3, (0+1)*8, (2+1)*8, Dt6(->hmask), (0+1)*8, (0+1)*8);
5366 dasm_put(Dst, 1127); 5409 dasm_put(Dst, 1139);
5367#ifdef LUAJIT_ENABLE_LUA52COMPAT 5410#ifdef LUAJIT_ENABLE_LUA52COMPAT
5368 dasm_put(Dst, 1140, Dt6(->metatable), Dt8(->upvalue[0])); 5411 dasm_put(Dst, 1152, Dt6(->metatable), Dt8(->upvalue[0]));
5369#else 5412#else
5370 dasm_put(Dst, 1149, Dt8(->upvalue[0])); 5413 dasm_put(Dst, 1161, Dt8(->upvalue[0]));
5371#endif 5414#endif
5372 dasm_put(Dst, 1153, (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)); 5415 dasm_put(Dst, 1165, (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));
5373 dasm_put(Dst, 1214, 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)); 5416 dasm_put(Dst, 1226, 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));
5374 dasm_put(Dst, 1277, Dt1(->top), FRAME_TYPE, LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), (2+1)*8, 32-3); 5417 dasm_put(Dst, 1289, Dt1(->top), FRAME_TYPE, LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), (2+1)*8, 32-3);
5375 dasm_put(Dst, 1337, 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); 5418 dasm_put(Dst, 1349, 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);
5376 dasm_put(Dst, 1396, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, 32-3, Dt1(->cframe)); 5419 dasm_put(Dst, 1408, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, 32-3, Dt1(->cframe));
5377 dasm_put(Dst, 1453, Dt1(->base), CFRAME_RESUME, Dt1(->top), LUA_YIELD, Dt1(->cframe), Dt1(->status), (1+1)*8, FRAME_TYPE); 5420 dasm_put(Dst, 1465, Dt1(->base), CFRAME_RESUME, Dt1(->top), LUA_YIELD, Dt1(->cframe), Dt1(->status), (1+1)*8, FRAME_TYPE);
5378 dasm_put(Dst, 1518); 5421 dasm_put(Dst, 1530);
5379 dasm_put(Dst, 1587); 5422 dasm_put(Dst, 1599);
5380 dasm_put(Dst, 1650); 5423 dasm_put(Dst, 1662);
5381 dasm_put(Dst, 1715); 5424 dasm_put(Dst, 1727);
5382 dasm_put(Dst, 1785, Dt8(->upvalue[0]), DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), (2+1)*8, (2+1)*8); 5425 dasm_put(Dst, 1797, Dt8(->upvalue[0]), DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), (2+1)*8, (2+1)*8);
5383 dasm_put(Dst, 1857, Dt5(->len)); 5426 dasm_put(Dst, 1869, Dt5(->len));
5384 dasm_put(Dst, 1924, 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)); 5427 dasm_put(Dst, 1936, 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));
5385 dasm_put(Dst, 1984, Dt5(->len), sizeof(GCstr)-1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 5428 dasm_put(Dst, 1996, Dt5(->len), sizeof(GCstr)-1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
5386 dasm_put(Dst, 2050, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(strempty), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 5429 dasm_put(Dst, 2062, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(strempty), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
5387 dasm_put(Dst, 2109, 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)); 5430 dasm_put(Dst, 2121, 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));
5388 dasm_put(Dst, 2168, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 5431 dasm_put(Dst, 2180, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
5389 dasm_put(Dst, 2235); 5432 dasm_put(Dst, 2247);
5390 dasm_put(Dst, 2306); 5433 dasm_put(Dst, 2318);
5391 dasm_put(Dst, 2394, Dt8(->f), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc)); 5434 dasm_put(Dst, 2406, Dt8(->f), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc));
5392 dasm_put(Dst, 2473, FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 5435 dasm_put(Dst, 2485, FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
5393#if LJ_HASJIT 5436#if LJ_HASJIT
5394 dasm_put(Dst, 2515); 5437 dasm_put(Dst, 2527);
5395#endif 5438#endif
5396 dasm_put(Dst, 2517, 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)); 5439 dasm_put(Dst, 2529, 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));
5397 dasm_put(Dst, 2564, GG_DISP2STATIC); 5440 dasm_put(Dst, 2576, GG_DISP2STATIC);
5398#if LJ_HASJIT 5441#if LJ_HASJIT
5399 dasm_put(Dst, 2582); 5442 dasm_put(Dst, 2594);
5400#endif 5443#endif
5401 dasm_put(Dst, 2584); 5444 dasm_put(Dst, 2596);
5402#if LJ_HASJIT 5445#if LJ_HASJIT
5403 dasm_put(Dst, 2587); 5446 dasm_put(Dst, 2599);
5404#endif 5447#endif
5405 dasm_put(Dst, 2590); 5448 dasm_put(Dst, 2602);
5406#if LJ_HASJIT 5449#if LJ_HASJIT
5407 dasm_put(Dst, 2592); 5450 dasm_put(Dst, 2604);
5408#endif 5451#endif
5409 dasm_put(Dst, 2595, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 5452 dasm_put(Dst, 2607, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
5410#if LJ_HASJIT 5453#if LJ_HASJIT
5411 dasm_put(Dst, 2617); 5454 dasm_put(Dst, 2629);
5412#endif 5455#endif
5413 dasm_put(Dst, 2619); 5456 dasm_put(Dst, 2631);
5414#if LJ_HASJIT 5457#if LJ_HASJIT
5415 dasm_put(Dst, 2621); 5458 dasm_put(Dst, 2633);
5416#endif 5459#endif
5417 dasm_put(Dst, 2623); 5460 dasm_put(Dst, 2635);
5418#if LJ_HASJIT 5461#if LJ_HASJIT
5419 dasm_put(Dst, 2707); 5462 dasm_put(Dst, 2719);
5420#else 5463#else
5421 dasm_put(Dst, 2730); 5464 dasm_put(Dst, 2742);
5422#endif 5465#endif
5423 dasm_put(Dst, 2733); 5466 dasm_put(Dst, 2745);
5424#if LJ_HASJIT 5467#if LJ_HASJIT
5425 dasm_put(Dst, 2735); 5468 dasm_put(Dst, 2747);
5426#endif 5469#endif
5427 dasm_put(Dst, 2737); 5470 dasm_put(Dst, 2749);
5428#if LJ_HASJIT 5471#if LJ_HASJIT
5429 dasm_put(Dst, 2739); 5472 dasm_put(Dst, 2751);
5430#endif 5473#endif
5431 dasm_put(Dst, 2741); 5474 dasm_put(Dst, 2753);
5432#if LJ_HASFFI 5475#if LJ_HASFFI
5433 dasm_put(Dst, 2804); 5476 dasm_put(Dst, 2816);
5434#endif 5477#endif
5435} 5478}
5436 5479
@@ -5438,7 +5481,7 @@ static void build_subroutines(BuildCtx *ctx)
5438static void build_ins(BuildCtx *ctx, BCOp op, int defop) 5481static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5439{ 5482{
5440 int vk = 0; 5483 int vk = 0;
5441 dasm_put(Dst, 2806, defop); 5484 dasm_put(Dst, 2818, defop);
5442 5485
5443 switch (op) { 5486 switch (op) {
5444 5487
@@ -5447,112 +5490,119 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5447 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 5490 /* Remember: all ops branch for a true comparison, fall through otherwise. */
5448 5491
5449 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 5492 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
5450 dasm_put(Dst, 2808, -(BCBIAS_J*4 >> 16)); 5493 dasm_put(Dst, 2820, -(BCBIAS_J*4 >> 16));
5451 if (op == BC_ISLE || op == BC_ISGT) { 5494 if (op == BC_ISLE || op == BC_ISGT) {
5452 dasm_put(Dst, 2822); 5495 dasm_put(Dst, 2834);
5453 } 5496 }
5454 if (op == BC_ISLT || op == BC_ISLE) { 5497 if (op == BC_ISLT || op == BC_ISLE) {
5455 dasm_put(Dst, 2825); 5498 dasm_put(Dst, 2837);
5456 } else { 5499 } else {
5457 dasm_put(Dst, 2827); 5500 dasm_put(Dst, 2839);
5458 } 5501 }
5459 dasm_put(Dst, 2829); 5502 dasm_put(Dst, 2841);
5460 break; 5503 break;
5461 5504
5462 case BC_ISEQV: case BC_ISNEV: 5505 case BC_ISEQV: case BC_ISNEV:
5463 vk = op == BC_ISEQV; 5506 vk = op == BC_ISEQV;
5464 dasm_put(Dst, 2840, -(BCBIAS_J*4 >> 16)); 5507 dasm_put(Dst, 2852, -(BCBIAS_J*4 >> 16));
5465 if (vk) { 5508 if (vk) {
5466 dasm_put(Dst, 2854); 5509 dasm_put(Dst, 2866);
5467 } else { 5510 } else {
5468 dasm_put(Dst, 2856); 5511 dasm_put(Dst, 2868);
5469 } 5512 }
5470 dasm_put(Dst, 2858, ~LJ_TISPRI, ~LJ_TISTABUD); 5513 dasm_put(Dst, 2870, ~LJ_TISPRI, ~LJ_TISTABUD);
5471 if (vk) { 5514 if (vk) {
5472 dasm_put(Dst, 2880); 5515 dasm_put(Dst, 2892);
5473 } else { 5516 } else {
5474 dasm_put(Dst, 2882); 5517 dasm_put(Dst, 2894);
5475 } 5518 }
5476 dasm_put(Dst, 2884); 5519 dasm_put(Dst, 2896);
5477 if (vk) { 5520 if (vk) {
5478 dasm_put(Dst, 2886); 5521 dasm_put(Dst, 2898);
5479 } else { 5522 } else {
5480 dasm_put(Dst, 2888); 5523 dasm_put(Dst, 2900);
5481 } 5524 }
5482 dasm_put(Dst, 2890, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq); 5525 dasm_put(Dst, 2902, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq);
5483 break; 5526 break;
5484 5527
5485 case BC_ISEQS: case BC_ISNES: 5528 case BC_ISEQS: case BC_ISNES:
5486 vk = op == BC_ISEQS; 5529 vk = op == BC_ISEQS;
5487 dasm_put(Dst, 2911, 32-1, -(BCBIAS_J*4 >> 16)); 5530 dasm_put(Dst, 2923, 32-1, -(BCBIAS_J*4 >> 16));
5488 if (vk) { 5531 if (vk) {
5489 dasm_put(Dst, 2925); 5532 dasm_put(Dst, 2937);
5490 } else { 5533 } else {
5491 dasm_put(Dst, 2927); 5534 dasm_put(Dst, 2939);
5492 } 5535 }
5493 dasm_put(Dst, 2929); 5536 dasm_put(Dst, 2941);
5494 break; 5537 break;
5495 5538
5496 case BC_ISEQN: case BC_ISNEN: 5539 case BC_ISEQN: case BC_ISNEN:
5497 vk = op == BC_ISEQN; 5540 vk = op == BC_ISEQN;
5498 dasm_put(Dst, 2940, -(BCBIAS_J*4 >> 16)); 5541 dasm_put(Dst, 2952, -(BCBIAS_J*4 >> 16));
5499 if (vk) { 5542 if (vk) {
5500 dasm_put(Dst, 2954); 5543 dasm_put(Dst, 2966);
5501 } else { 5544 } else {
5502 dasm_put(Dst, 2957); 5545 dasm_put(Dst, 2969);
5503 } 5546 }
5504 dasm_put(Dst, 2959); 5547 dasm_put(Dst, 2971);
5505 if (!vk) { 5548 if (!vk) {
5506 dasm_put(Dst, 2971); 5549 dasm_put(Dst, 2983);
5507 } 5550 }
5508 break; 5551 break;
5509 5552
5510 case BC_ISEQP: case BC_ISNEP: 5553 case BC_ISEQP: case BC_ISNEP:
5511 vk = op == BC_ISEQP; 5554 vk = op == BC_ISEQP;
5512 dasm_put(Dst, 2977, 32-3, -(BCBIAS_J*4 >> 16)); 5555 dasm_put(Dst, 2989, 32-3, -(BCBIAS_J*4 >> 16));
5513 if (vk) { 5556 if (vk) {
5514 dasm_put(Dst, 2989); 5557 dasm_put(Dst, 3001);
5515 } else { 5558 } else {
5516 dasm_put(Dst, 2991); 5559 dasm_put(Dst, 3003);
5517 } 5560 }
5518 dasm_put(Dst, 2993); 5561 dasm_put(Dst, 3005);
5519 break; 5562 break;
5520 5563
5521 /* -- Unary test and copy ops ------------------------------------------- */ 5564 /* -- Unary test and copy ops ------------------------------------------- */
5522 5565
5523 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 5566 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
5524 dasm_put(Dst, 3004); 5567 dasm_put(Dst, 3016);
5525 if (op == BC_IST || op == BC_ISF) { 5568 if (op == BC_IST || op == BC_ISF) {
5526 dasm_put(Dst, 3010, -(BCBIAS_J*4 >> 16)); 5569 dasm_put(Dst, 3022, -(BCBIAS_J*4 >> 16));
5527 if (op == BC_IST) { 5570 if (op == BC_IST) {
5528 dasm_put(Dst, 3015); 5571 dasm_put(Dst, 3027);
5529 } else { 5572 } else {
5530 dasm_put(Dst, 3017); 5573 dasm_put(Dst, 3029);
5531 } 5574 }
5532 } else { 5575 } else {
5533 if (op == BC_ISTC) { 5576 if (op == BC_ISTC) {
5534 dasm_put(Dst, 3019); 5577 dasm_put(Dst, 3031);
5535 } else { 5578 } else {
5536 dasm_put(Dst, 3022); 5579 dasm_put(Dst, 3034);
5537 } 5580 }
5538 dasm_put(Dst, 3025, -(BCBIAS_J*4 >> 16)); 5581 dasm_put(Dst, 3037, -(BCBIAS_J*4 >> 16));
5539 } 5582 }
5540 dasm_put(Dst, 3032); 5583 dasm_put(Dst, 3044);
5541 break; 5584 break;
5542 5585
5543 /* -- Unary ops --------------------------------------------------------- */ 5586 /* -- Unary ops --------------------------------------------------------- */
5544 5587
5545 case BC_MOV: 5588 case BC_MOV:
5546 dasm_put(Dst, 3043); 5589 dasm_put(Dst, 3055);
5547 break; 5590 break;
5548 case BC_NOT: 5591 case BC_NOT:
5549 dasm_put(Dst, 3056, LJ_TTRUE); 5592 dasm_put(Dst, 3068, LJ_TTRUE);
5550 break; 5593 break;
5551 case BC_UNM: 5594 case BC_UNM:
5552 dasm_put(Dst, 3072); 5595 dasm_put(Dst, 3084);
5553 break; 5596 break;
5554 case BC_LEN: 5597 case BC_LEN:
5555 dasm_put(Dst, 3089, Dt5(->len)); 5598 dasm_put(Dst, 3101, Dt5(->len));
5599#ifdef LUAJIT_ENABLE_LUA52COMPAT
5600 dasm_put(Dst, 3125, Dt6(->metatable));
5601#endif
5602 dasm_put(Dst, 3132);
5603#ifdef LUAJIT_ENABLE_LUA52COMPAT
5604 dasm_put(Dst, 3138, Dt6(->nomm), 1<<MM_len);
5605#endif
5556 break; 5606 break;
5557 5607
5558 /* -- Binary ops -------------------------------------------------------- */ 5608 /* -- Binary ops -------------------------------------------------------- */
@@ -5562,262 +5612,262 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5562 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5612 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5563 switch (vk) { 5613 switch (vk) {
5564 case 0: 5614 case 0:
5565 dasm_put(Dst, 3117); 5615 dasm_put(Dst, 3148);
5566 break; 5616 break;
5567 case 1: 5617 case 1:
5568 dasm_put(Dst, 3123); 5618 dasm_put(Dst, 3154);
5569 break; 5619 break;
5570 default: 5620 default:
5571 dasm_put(Dst, 3129); 5621 dasm_put(Dst, 3160);
5572 break; 5622 break;
5573 } 5623 }
5574 dasm_put(Dst, 3136); 5624 dasm_put(Dst, 3167);
5575 break; 5625 break;
5576 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 5626 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
5577 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5627 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5578 switch (vk) { 5628 switch (vk) {
5579 case 0: 5629 case 0:
5580 dasm_put(Dst, 3149); 5630 dasm_put(Dst, 3180);
5581 break; 5631 break;
5582 case 1: 5632 case 1:
5583 dasm_put(Dst, 3155); 5633 dasm_put(Dst, 3186);
5584 break; 5634 break;
5585 default: 5635 default:
5586 dasm_put(Dst, 3161); 5636 dasm_put(Dst, 3192);
5587 break; 5637 break;
5588 } 5638 }
5589 dasm_put(Dst, 3168); 5639 dasm_put(Dst, 3199);
5590 break; 5640 break;
5591 case BC_MULVN: case BC_MULNV: case BC_MULVV: 5641 case BC_MULVN: case BC_MULNV: case BC_MULVV:
5592 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5642 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5593 switch (vk) { 5643 switch (vk) {
5594 case 0: 5644 case 0:
5595 dasm_put(Dst, 3181); 5645 dasm_put(Dst, 3212);
5596 break; 5646 break;
5597 case 1: 5647 case 1:
5598 dasm_put(Dst, 3187); 5648 dasm_put(Dst, 3218);
5599 break; 5649 break;
5600 default: 5650 default:
5601 dasm_put(Dst, 3193); 5651 dasm_put(Dst, 3224);
5602 break; 5652 break;
5603 } 5653 }
5604 dasm_put(Dst, 3200); 5654 dasm_put(Dst, 3231);
5605 break; 5655 break;
5606 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 5656 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
5607 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5657 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5608 switch (vk) { 5658 switch (vk) {
5609 case 0: 5659 case 0:
5610 dasm_put(Dst, 3213); 5660 dasm_put(Dst, 3244);
5611 break; 5661 break;
5612 case 1: 5662 case 1:
5613 dasm_put(Dst, 3219); 5663 dasm_put(Dst, 3250);
5614 break; 5664 break;
5615 default: 5665 default:
5616 dasm_put(Dst, 3225); 5666 dasm_put(Dst, 3256);
5617 break; 5667 break;
5618 } 5668 }
5619 dasm_put(Dst, 3232); 5669 dasm_put(Dst, 3263);
5620 break; 5670 break;
5621 case BC_MODVN: 5671 case BC_MODVN:
5622 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5672 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5623 switch (vk) { 5673 switch (vk) {
5624 case 0: 5674 case 0:
5625 dasm_put(Dst, 3245); 5675 dasm_put(Dst, 3276);
5626 break; 5676 break;
5627 case 1: 5677 case 1:
5628 dasm_put(Dst, 3251); 5678 dasm_put(Dst, 3282);
5629 break; 5679 break;
5630 default: 5680 default:
5631 dasm_put(Dst, 3257); 5681 dasm_put(Dst, 3288);
5632 break; 5682 break;
5633 } 5683 }
5634 dasm_put(Dst, 3264); 5684 dasm_put(Dst, 3295);
5635 break; 5685 break;
5636 case BC_MODNV: case BC_MODVV: 5686 case BC_MODNV: case BC_MODVV:
5637 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 5687 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
5638 switch (vk) { 5688 switch (vk) {
5639 case 0: 5689 case 0:
5640 dasm_put(Dst, 3282); 5690 dasm_put(Dst, 3313);
5641 break; 5691 break;
5642 case 1: 5692 case 1:
5643 dasm_put(Dst, 3288); 5693 dasm_put(Dst, 3319);
5644 break; 5694 break;
5645 default: 5695 default:
5646 dasm_put(Dst, 3294); 5696 dasm_put(Dst, 3325);
5647 break; 5697 break;
5648 } 5698 }
5649 dasm_put(Dst, 3301); 5699 dasm_put(Dst, 3332);
5650 break; 5700 break;
5651 case BC_POW: 5701 case BC_POW:
5652 dasm_put(Dst, 3304); 5702 dasm_put(Dst, 3335);
5653 break; 5703 break;
5654 5704
5655 case BC_CAT: 5705 case BC_CAT:
5656 dasm_put(Dst, 3326, Dt1(->base), 32-3, Dt1(->base)); 5706 dasm_put(Dst, 3357, Dt1(->base), 32-3, Dt1(->base));
5657 break; 5707 break;
5658 5708
5659 /* -- Constant ops ------------------------------------------------------ */ 5709 /* -- Constant ops ------------------------------------------------------ */
5660 5710
5661 case BC_KSTR: 5711 case BC_KSTR:
5662 dasm_put(Dst, 3356, 32-1); 5712 dasm_put(Dst, 3387, 32-1);
5663 break; 5713 break;
5664 case BC_KCDATA: 5714 case BC_KCDATA:
5665#if LJ_HASFFI 5715#if LJ_HASFFI
5666 dasm_put(Dst, 3373, 32-1, LJ_TCDATA); 5716 dasm_put(Dst, 3404, 32-1, LJ_TCDATA);
5667#endif 5717#endif
5668 break; 5718 break;
5669 case BC_KSHORT: 5719 case BC_KSHORT:
5670 dasm_put(Dst, 3392, 32-3); 5720 dasm_put(Dst, 3423, 32-3);
5671 break; 5721 break;
5672 case BC_KNUM: 5722 case BC_KNUM:
5673 dasm_put(Dst, 3408); 5723 dasm_put(Dst, 3439);
5674 break; 5724 break;
5675 case BC_KPRI: 5725 case BC_KPRI:
5676 dasm_put(Dst, 3421, 32-3); 5726 dasm_put(Dst, 3452, 32-3);
5677 break; 5727 break;
5678 case BC_KNIL: 5728 case BC_KNIL:
5679 dasm_put(Dst, 3436); 5729 dasm_put(Dst, 3467);
5680 break; 5730 break;
5681 5731
5682 /* -- Upvalue and function ops ------------------------------------------ */ 5732 /* -- Upvalue and function ops ------------------------------------------ */
5683 5733
5684 case BC_UGET: 5734 case BC_UGET:
5685 dasm_put(Dst, 3455, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); 5735 dasm_put(Dst, 3486, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
5686 break; 5736 break;
5687 case BC_USETV: 5737 case BC_USETV:
5688 dasm_put(Dst, 3476, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -(LJ_TISNUM+1), LJ_TISGCV - (LJ_TISNUM+1), Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 5738 dasm_put(Dst, 3507, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -(LJ_TISNUM+1), LJ_TISGCV - (LJ_TISNUM+1), Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
5689 break; 5739 break;
5690 case BC_USETS: 5740 case BC_USETS:
5691 dasm_put(Dst, 3528, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_GC_WHITES, GG_DISP2G); 5741 dasm_put(Dst, 3559, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_GC_WHITES, GG_DISP2G);
5692 break; 5742 break;
5693 case BC_USETN: 5743 case BC_USETN:
5694 dasm_put(Dst, 3577, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); 5744 dasm_put(Dst, 3608, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
5695 break; 5745 break;
5696 case BC_USETP: 5746 case BC_USETP:
5697 dasm_put(Dst, 3598, 32-1, offsetof(GCfuncL, uvptr), 32-3, DtA(->v)); 5747 dasm_put(Dst, 3629, 32-1, offsetof(GCfuncL, uvptr), 32-3, DtA(->v));
5698 break; 5748 break;
5699 5749
5700 case BC_UCLO: 5750 case BC_UCLO:
5701 dasm_put(Dst, 3621, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base)); 5751 dasm_put(Dst, 3652, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base));
5702 break; 5752 break;
5703 5753
5704 case BC_FNEW: 5754 case BC_FNEW:
5705 dasm_put(Dst, 3651, 32-1, Dt1(->base), Dt1(->base)); 5755 dasm_put(Dst, 3682, 32-1, Dt1(->base), Dt1(->base));
5706 break; 5756 break;
5707 5757
5708 /* -- Table ops --------------------------------------------------------- */ 5758 /* -- Table ops --------------------------------------------------------- */
5709 5759
5710 case BC_TNEW: 5760 case BC_TNEW:
5711 case BC_TDUP: 5761 case BC_TDUP:
5712 dasm_put(Dst, 3677, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); 5762 dasm_put(Dst, 3708, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base));
5713 if (op == BC_TNEW) { 5763 if (op == BC_TNEW) {
5714 dasm_put(Dst, 3690); 5764 dasm_put(Dst, 3721);
5715 } else { 5765 } else {
5716 dasm_put(Dst, 3698, 32-1); 5766 dasm_put(Dst, 3729, 32-1);
5717 } 5767 }
5718 dasm_put(Dst, 3705, Dt1(->base)); 5768 dasm_put(Dst, 3736, Dt1(->base));
5719 break; 5769 break;
5720 5770
5721 case BC_GGET: 5771 case BC_GGET:
5722 case BC_GSET: 5772 case BC_GSET:
5723 dasm_put(Dst, 3728, 32-1, Dt7(->env)); 5773 dasm_put(Dst, 3759, 32-1, Dt7(->env));
5724 if (op == BC_GGET) { 5774 if (op == BC_GGET) {
5725 dasm_put(Dst, 3736); 5775 dasm_put(Dst, 3767);
5726 } else { 5776 } else {
5727 dasm_put(Dst, 3739); 5777 dasm_put(Dst, 3770);
5728 } 5778 }
5729 break; 5779 break;
5730 5780
5731 case BC_TGETV: 5781 case BC_TGETV:
5732 dasm_put(Dst, 3742, Dt6(->asize), Dt6(->array), 31-3, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 5782 dasm_put(Dst, 3773, Dt6(->asize), Dt6(->array), 31-3, Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
5733 break; 5783 break;
5734 case BC_TGETS: 5784 case BC_TGETS:
5735 dasm_put(Dst, 3800, 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); 5785 dasm_put(Dst, 3831, 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);
5736 dasm_put(Dst, 3864); 5786 dasm_put(Dst, 3895);
5737 break; 5787 break;
5738 case BC_TGETB: 5788 case BC_TGETB:
5739 dasm_put(Dst, 3869, 32-3, Dt6(->asize), Dt6(->array), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 5789 dasm_put(Dst, 3900, 32-3, Dt6(->asize), Dt6(->array), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
5740 break; 5790 break;
5741 5791
5742 case BC_TSETV: 5792 case BC_TSETV:
5743 dasm_put(Dst, 3913, Dt6(->asize), Dt6(->array), 31-3, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 5793 dasm_put(Dst, 3944, Dt6(->asize), Dt6(->array), 31-3, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
5744 dasm_put(Dst, 3980, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); 5794 dasm_put(Dst, 4011, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
5745 break; 5795 break;
5746 case BC_TSETS: 5796 case BC_TSETS:
5747 dasm_put(Dst, 3992, 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)); 5797 dasm_put(Dst, 4023, 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));
5748 dasm_put(Dst, 4053, 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)); 5798 dasm_put(Dst, 4084, 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));
5749 dasm_put(Dst, 4104, Dt6(->marked), Dt6(->gclist)); 5799 dasm_put(Dst, 4135, Dt6(->marked), Dt6(->gclist));
5750 break; 5800 break;
5751 case BC_TSETB: 5801 case BC_TSETB:
5752 dasm_put(Dst, 4111, 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)); 5802 dasm_put(Dst, 4142, 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));
5753 dasm_put(Dst, 4171, Dt6(->gclist)); 5803 dasm_put(Dst, 4202, Dt6(->gclist));
5754 break; 5804 break;
5755 5805
5756 case BC_TSETM: 5806 case BC_TSETM:
5757 dasm_put(Dst, 4176, 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)); 5807 dasm_put(Dst, 4207, 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));
5758 dasm_put(Dst, 4245); 5808 dasm_put(Dst, 4276);
5759 break; 5809 break;
5760 5810
5761 /* -- Calls and vararg handling ----------------------------------------- */ 5811 /* -- Calls and vararg handling ----------------------------------------- */
5762 5812
5763 case BC_CALLM: 5813 case BC_CALLM:
5764 dasm_put(Dst, 4248); 5814 dasm_put(Dst, 4279);
5765 break; 5815 break;
5766 case BC_CALL: 5816 case BC_CALL:
5767 dasm_put(Dst, 4250, Dt7(->pc)); 5817 dasm_put(Dst, 4281, Dt7(->pc));
5768 break; 5818 break;
5769 5819
5770 case BC_CALLMT: 5820 case BC_CALLMT:
5771 dasm_put(Dst, 4270); 5821 dasm_put(Dst, 4301);
5772 break; 5822 break;
5773 case BC_CALLT: 5823 case BC_CALLT:
5774 dasm_put(Dst, 4272, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); 5824 dasm_put(Dst, 4303, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
5775 dasm_put(Dst, 4337, FRAME_TYPE); 5825 dasm_put(Dst, 4368, FRAME_TYPE);
5776 break; 5826 break;
5777 5827
5778 case BC_ITERC: 5828 case BC_ITERC:
5779 dasm_put(Dst, 4344, Dt7(->pc)); 5829 dasm_put(Dst, 4375, Dt7(->pc));
5780 break; 5830 break;
5781 5831
5782 case BC_ITERN: 5832 case BC_ITERN:
5783#if LJ_HASJIT 5833#if LJ_HASJIT
5784#endif 5834#endif
5785 dasm_put(Dst, 4370, Dt6(->asize), Dt6(->array), 31-3, -(BCBIAS_J*4 >> 16), Dt6(->hmask), Dt6(->node), 31-5, 31-3, DtB(->key), -(BCBIAS_J*4 >> 16)); 5835 dasm_put(Dst, 4401, Dt6(->asize), Dt6(->array), 31-3, -(BCBIAS_J*4 >> 16), Dt6(->hmask), Dt6(->node), 31-5, 31-3, DtB(->key), -(BCBIAS_J*4 >> 16));
5786 dasm_put(Dst, 4449); 5836 dasm_put(Dst, 4480);
5787 break; 5837 break;
5788 5838
5789 case BC_ISNEXT: 5839 case BC_ISNEXT:
5790 dasm_put(Dst, 4453, 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)); 5840 dasm_put(Dst, 4484, 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));
5791 break; 5841 break;
5792 5842
5793 case BC_VARG: 5843 case BC_VARG:
5794 dasm_put(Dst, 4504, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base)); 5844 dasm_put(Dst, 4535, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base));
5795 dasm_put(Dst, 4584); 5845 dasm_put(Dst, 4615);
5796 break; 5846 break;
5797 5847
5798 /* -- Returns ----------------------------------------------------------- */ 5848 /* -- Returns ----------------------------------------------------------- */
5799 5849
5800 case BC_RETM: 5850 case BC_RETM:
5801 dasm_put(Dst, 4590); 5851 dasm_put(Dst, 4621);
5802 break; 5852 break;
5803 5853
5804 case BC_RET: 5854 case BC_RET:
5805 dasm_put(Dst, 4592, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); 5855 dasm_put(Dst, 4623, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
5806 break; 5856 break;
5807 5857
5808 case BC_RET0: case BC_RET1: 5858 case BC_RET0: case BC_RET1:
5809 dasm_put(Dst, 4662, FRAME_TYPE, FRAME_VARG); 5859 dasm_put(Dst, 4693, FRAME_TYPE, FRAME_VARG);
5810 if (op == BC_RET1) { 5860 if (op == BC_RET1) {
5811 dasm_put(Dst, 4675); 5861 dasm_put(Dst, 4706);
5812 } 5862 }
5813 dasm_put(Dst, 4678, Dt7(->pc), PC2PROTO(k)); 5863 dasm_put(Dst, 4709, Dt7(->pc), PC2PROTO(k));
5814 break; 5864 break;
5815 5865
5816 /* -- Loops and branches ------------------------------------------------ */ 5866 /* -- Loops and branches ------------------------------------------------ */
5817 5867
5818 case BC_FORL: 5868 case BC_FORL:
5819#if LJ_HASJIT 5869#if LJ_HASJIT
5820 dasm_put(Dst, 4706); 5870 dasm_put(Dst, 4737);
5821#endif 5871#endif
5822 break; 5872 break;
5823 5873
@@ -5829,35 +5879,35 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5829 case BC_FORI: 5879 case BC_FORI:
5830 case BC_IFORL: 5880 case BC_IFORL:
5831 vk = (op == BC_IFORL || op == BC_JFORL); 5881 vk = (op == BC_IFORL || op == BC_JFORL);
5832 dasm_put(Dst, 4708, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8); 5882 dasm_put(Dst, 4739, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8);
5833 if (!vk) { 5883 if (!vk) {
5834 dasm_put(Dst, 4716); 5884 dasm_put(Dst, 4747);
5835 } 5885 }
5836 if (vk) { 5886 if (vk) {
5837 dasm_put(Dst, 4724, FORL_IDX*8); 5887 dasm_put(Dst, 4755, FORL_IDX*8);
5838 } 5888 }
5839 dasm_put(Dst, 4728, FORL_EXT*8); 5889 dasm_put(Dst, 4759, FORL_EXT*8);
5840 if (op != BC_JFORL) { 5890 if (op != BC_JFORL) {
5841 dasm_put(Dst, 4736, 32-1); 5891 dasm_put(Dst, 4767, 32-1);
5842 if (op == BC_JFORI) { 5892 if (op == BC_JFORI) {
5843 dasm_put(Dst, 4740, -(BCBIAS_J*4 >> 16)); 5893 dasm_put(Dst, 4771, -(BCBIAS_J*4 >> 16));
5844 } else { 5894 } else {
5845 dasm_put(Dst, 4743, -(BCBIAS_J*4 >> 16)); 5895 dasm_put(Dst, 4774, -(BCBIAS_J*4 >> 16));
5846 } 5896 }
5847 } 5897 }
5848 if (op == BC_FORI) { 5898 if (op == BC_FORI) {
5849 dasm_put(Dst, 4746); 5899 dasm_put(Dst, 4777);
5850 } else if (op == BC_IFORL) { 5900 } else if (op == BC_IFORL) {
5851 dasm_put(Dst, 4748); 5901 dasm_put(Dst, 4779);
5852 } else { 5902 } else {
5853 dasm_put(Dst, 4750, BC_JLOOP); 5903 dasm_put(Dst, 4781, BC_JLOOP);
5854 } 5904 }
5855 dasm_put(Dst, 4753); 5905 dasm_put(Dst, 4784);
5856 break; 5906 break;
5857 5907
5858 case BC_ITERL: 5908 case BC_ITERL:
5859#if LJ_HASJIT 5909#if LJ_HASJIT
5860 dasm_put(Dst, 4768); 5910 dasm_put(Dst, 4799);
5861#endif 5911#endif
5862 break; 5912 break;
5863 5913
@@ -5866,40 +5916,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5866 break; 5916 break;
5867#endif 5917#endif
5868 case BC_IITERL: 5918 case BC_IITERL:
5869 dasm_put(Dst, 4770); 5919 dasm_put(Dst, 4801);
5870 if (op == BC_JITERL) { 5920 if (op == BC_JITERL) {
5871 dasm_put(Dst, 4776); 5921 dasm_put(Dst, 4807);
5872 } else { 5922 } else {
5873 dasm_put(Dst, 4778, 32-1, -(BCBIAS_J*4 >> 16)); 5923 dasm_put(Dst, 4809, 32-1, -(BCBIAS_J*4 >> 16));
5874 } 5924 }
5875 dasm_put(Dst, 4785); 5925 dasm_put(Dst, 4816);
5876 break; 5926 break;
5877 5927
5878 case BC_LOOP: 5928 case BC_LOOP:
5879#if LJ_HASJIT 5929#if LJ_HASJIT
5880 dasm_put(Dst, 4797); 5930 dasm_put(Dst, 4828);
5881#endif 5931#endif
5882 break; 5932 break;
5883 5933
5884 case BC_ILOOP: 5934 case BC_ILOOP:
5885 dasm_put(Dst, 4799); 5935 dasm_put(Dst, 4830);
5886 break; 5936 break;
5887 5937
5888 case BC_JLOOP: 5938 case BC_JLOOP:
5889#if LJ_HASJIT 5939#if LJ_HASJIT
5890 dasm_put(Dst, 4810); 5940 dasm_put(Dst, 4841);
5891#endif 5941#endif
5892 break; 5942 break;
5893 5943
5894 case BC_JMP: 5944 case BC_JMP:
5895 dasm_put(Dst, 4812, 32-1, -(BCBIAS_J*4 >> 16)); 5945 dasm_put(Dst, 4843, 32-1, -(BCBIAS_J*4 >> 16));
5896 break; 5946 break;
5897 5947
5898 /* -- Function headers -------------------------------------------------- */ 5948 /* -- Function headers -------------------------------------------------- */
5899 5949
5900 case BC_FUNCF: 5950 case BC_FUNCF:
5901#if LJ_HASJIT 5951#if LJ_HASJIT
5902 dasm_put(Dst, 4828); 5952 dasm_put(Dst, 4859);
5903#endif 5953#endif
5904 case BC_FUNCV: /* NYI: compiled vararg functions. */ 5954 case BC_FUNCV: /* NYI: compiled vararg functions. */
5905 break; 5955 break;
@@ -5909,38 +5959,38 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
5909 break; 5959 break;
5910#endif 5960#endif
5911 case BC_IFUNCF: 5961 case BC_IFUNCF:
5912 dasm_put(Dst, 4830, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3); 5962 dasm_put(Dst, 4861, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3);
5913 if (op == BC_JFUNCF) { 5963 if (op == BC_JFUNCF) {
5914 dasm_put(Dst, 4848); 5964 dasm_put(Dst, 4879);
5915 } else { 5965 } else {
5916 dasm_put(Dst, 4850); 5966 dasm_put(Dst, 4881);
5917 } 5967 }
5918 dasm_put(Dst, 4859); 5968 dasm_put(Dst, 4890);
5919 break; 5969 break;
5920 5970
5921 case BC_JFUNCV: 5971 case BC_JFUNCV:
5922#if !LJ_HASJIT 5972#if !LJ_HASJIT
5923 break; 5973 break;
5924#endif 5974#endif
5925 dasm_put(Dst, 4865); 5975 dasm_put(Dst, 4896);
5926 break; /* NYI: compiled vararg functions. */ 5976 break; /* NYI: compiled vararg functions. */
5927 5977
5928 case BC_IFUNCV: 5978 case BC_IFUNCV:
5929 dasm_put(Dst, 4867, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams)); 5979 dasm_put(Dst, 4898, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams));
5930 break; 5980 break;
5931 5981
5932 case BC_FUNCC: 5982 case BC_FUNCC:
5933 case BC_FUNCCW: 5983 case BC_FUNCCW:
5934 if (op == BC_FUNCC) { 5984 if (op == BC_FUNCC) {
5935 dasm_put(Dst, 4917, Dt8(->f)); 5985 dasm_put(Dst, 4948, Dt8(->f));
5936 } else { 5986 } else {
5937 dasm_put(Dst, 4920, DISPATCH_GL(wrapf)); 5987 dasm_put(Dst, 4951, DISPATCH_GL(wrapf));
5938 } 5988 }
5939 dasm_put(Dst, 4923, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C); 5989 dasm_put(Dst, 4954, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C);
5940 if (op == BC_FUNCCW) { 5990 if (op == BC_FUNCCW) {
5941 dasm_put(Dst, 4936, Dt8(->f)); 5991 dasm_put(Dst, 4967, Dt8(->f));
5942 } 5992 }
5943 dasm_put(Dst, 4939, DISPATCH_GL(vmstate), Dt1(->top), 31-3, Dt1(->base), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate)); 5993 dasm_put(Dst, 4970, DISPATCH_GL(vmstate), Dt1(->top), 31-3, Dt1(->base), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate));
5944 break; 5994 break;
5945 5995
5946 /* ---------------------------------------------------------------------- */ 5996 /* ---------------------------------------------------------------------- */
@@ -5960,7 +6010,7 @@ static int build_backend(BuildCtx *ctx)
5960 6010
5961 build_subroutines(ctx); 6011 build_subroutines(ctx);
5962 6012
5963 dasm_put(Dst, 4960); 6013 dasm_put(Dst, 4991);
5964 for (op = 0; op < BC__MAX; op++) 6014 for (op = 0; op < BC__MAX; op++)
5965 build_ins(ctx, (BCOp)op, op); 6015 build_ins(ctx, (BCOp)op, op);
5966 6016
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index fcff6db3..f6ed666c 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[16103] = { 15static const unsigned char build_actionlist[16156] = {
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,
@@ -91,73 +91,74 @@ static const unsigned char build_actionlist[16103] = {
91 252,234,137,252,253,137,92,36,28,232,251,1,7,139,149,233,133,192,15,132,244, 91 252,234,137,252,253,137,92,36,28,232,251,1,7,139,149,233,133,192,15,132,244,
92 42,248,44,137,193,41,208,137,89,252,244,141,152,233,184,237,252,233,244,28, 92 42,248,44,137,193,41,208,137,89,252,244,141,152,233,184,237,252,233,244,28,
93 248,56,139,108,36,24,137,149,233,141,52,194,137,252,239,137,92,36,28,232, 93 248,56,139,108,36,24,137,149,233,141,52,194,137,252,239,137,92,36,28,232,
94 251,1,8,139,149,233,252,233,244,44,248,57,141,76,202,8,248,29,137,76,36,4, 94 251,1,8,139,149,233,255,133,192,15,133,244,44,15,183,67,252,254,139,60,194,
95 137,4,36,131,252,233,8,139,108,36,24,137,149,233,255,137,206,141,20,193,137, 95 252,233,244,57,255,252,233,244,44,255,248,58,141,76,202,8,248,29,137,76,36,
96 4,137,4,36,131,252,233,8,139,108,36,24,137,149,233,137,206,141,20,193,137,
96 252,239,137,92,36,28,232,251,1,9,139,149,233,139,76,36,4,139,4,36,139,105, 97 252,239,137,92,36,28,232,251,1,9,139,149,233,139,76,36,4,139,4,36,139,105,
97 252,248,131,192,1,65,57,215,15,132,244,58,137,202,137,90,252,252,139,157, 98 252,248,131,192,1,65,57,215,15,132,244,59,137,202,137,90,252,252,139,157,
98 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248, 99 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,
99 59,139,108,36,24,137,149,233,137,206,137,252,239,137,92,36,28,232,251,1,10, 100 60,139,108,36,24,137,149,233,137,206,137,252,239,137,92,36,28,232,251,1,10,
100 139,149,233,139,67,252,252,15,182,204,15,182,232,193,232,16,65,252,255,164, 101 139,149,233,139,67,252,252,15,182,204,15,182,232,193,232,16,65,252,255,164,
101 253,252,238,233,248,60,129,252,248,239,15,130,244,61,139,106,4,129,252,253, 102 253,252,238,233,248,61,129,252,248,239,15,130,244,62,139,106,4,129,252,253,
102 239,15,131,244,61,139,90,252,252,137,68,36,4,137,106,252,252,139,42,137,106, 103 239,15,131,244,62,139,90,252,252,137,68,36,4,137,106,252,252,139,42,137,106,
103 252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,72,139,41,72,137, 104 252,248,131,232,2,15,132,244,248,255,137,209,248,1,131,193,8,72,139,41,72,
104 105,252,248,131,232,1,15,133,244,1,248,2,255,139,68,36,4,252,233,244,62,248, 105 137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,4,252,233,244,63,248,
105 63,129,252,248,239,15,130,244,61,139,106,4,137,252,233,193,252,249,15,131, 106 64,129,252,248,239,15,130,244,62,139,106,4,137,252,233,193,252,249,15,131,
106 252,249,252,254,15,132,244,249,184,237,252,247,213,57,232,255,15,71,197,255, 107 252,249,252,254,15,132,244,249,184,237,252,247,213,57,232,255,15,71,197,255,
107 15,134,244,247,137,232,248,1,255,248,2,139,106,252,248,139,132,253,197,233, 108 15,134,244,247,137,232,248,1,255,248,2,139,106,252,248,139,132,253,197,233,
108 139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,64,248,3,184, 109 139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,65,248,3,184,
109 237,252,233,244,2,248,65,129,252,248,239,15,130,244,61,139,106,4,139,90,252, 110 237,252,233,244,2,248,66,129,252,248,239,15,130,244,62,139,106,4,139,90,252,
110 252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252, 111 252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,
111 237,199,66,252,252,237,255,15,132,244,64,65,139,134,233,199,66,252,252,237, 112 237,199,66,252,252,237,255,15,132,244,65,65,139,134,233,199,66,252,252,237,
112 137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185, 113 137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,
113 233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201, 114 233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,
114 15,133,244,3,255,252,233,244,64,248,5,139,105,4,129,252,253,239,15,132,244, 115 15,133,244,3,255,252,233,244,65,248,5,139,105,4,129,252,253,239,15,132,244,
115 64,139,1,137,106,252,252,137,66,252,248,252,233,244,64,248,6,129,252,253, 116 65,139,1,137,106,252,252,137,66,252,248,252,233,244,65,248,6,129,252,253,
116 239,15,132,244,1,129,252,253,239,15,135,244,254,129,252,253,239,15,134,244, 117 239,15,132,244,1,129,252,253,239,15,135,244,254,129,252,253,239,15,134,244,
117 253,189,237,252,233,244,254,248,7,255,189,237,248,8,252,247,213,65,139,172, 118 253,189,237,252,233,244,254,248,7,255,189,237,248,8,252,247,213,65,139,172,
118 253,174,233,252,233,244,2,248,66,129,252,248,239,15,130,244,61,129,122,253, 119 253,174,233,252,233,244,2,248,67,129,252,248,239,15,130,244,62,129,122,253,
119 4,239,15,133,244,61,139,42,131,189,233,0,15,133,244,61,129,122,253,12,239, 120 4,239,15,133,244,62,139,42,131,189,233,0,15,133,244,62,129,122,253,12,239,
120 15,133,244,61,139,66,8,137,133,233,139,90,252,252,199,66,252,252,237,255, 121 15,133,244,62,139,66,8,137,133,233,139,90,252,252,199,66,252,252,237,255,
121 137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,65,139, 122 137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,65,139,
122 134,233,65,137,174,233,137,133,233,248,1,252,233,244,64,248,67,129,252,248, 123 134,233,65,137,174,233,137,133,233,248,1,252,233,244,65,248,68,129,252,248,
123 239,15,130,244,61,129,122,253,4,239,15,133,244,61,137,213,139,50,141,82,8, 124 239,15,130,244,62,129,122,253,4,239,15,133,244,62,137,213,139,50,141,82,8,
124 139,124,36,24,232,251,1,11,137,252,234,72,139,40,139,90,252,252,72,137,106, 125 139,124,36,24,232,251,1,11,137,252,234,72,139,40,139,90,252,252,72,137,106,
125 252,248,252,233,244,64,248,68,255,129,252,248,239,15,133,244,61,129,122,253, 126 252,248,252,233,244,65,248,69,255,129,252,248,239,15,133,244,62,129,122,253,
126 4,239,255,15,133,244,247,139,42,252,233,244,69,248,1,15,135,244,61,255,15, 127 4,239,255,15,133,244,247,139,42,252,233,244,70,248,1,15,135,244,62,255,15,
127 131,244,61,255,252,242,15,16,2,252,233,244,70,255,221,2,252,233,244,71,255, 128 131,244,62,255,252,242,15,16,2,252,233,244,71,255,221,2,252,233,244,72,255,
128 248,72,129,252,248,239,15,130,244,61,139,90,252,252,129,122,253,4,239,15, 129 248,73,129,252,248,239,15,130,244,62,139,90,252,252,129,122,253,4,239,15,
129 133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,64, 130 133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,65,
130 248,3,129,122,253,4,239,15,135,244,61,65,131,190,233,0,15,133,244,61,65,139, 131 248,3,129,122,253,4,239,15,135,244,62,65,131,190,233,0,15,133,244,62,65,139,
131 174,233,65,59,174,233,255,15,130,244,247,232,244,73,248,1,139,108,36,24,137, 132 174,233,65,59,174,233,255,15,130,244,247,232,244,74,248,1,139,108,36,24,137,
132 149,233,137,92,36,28,137,214,137,252,239,255,232,251,1,12,255,232,251,1,13, 133 149,233,137,92,36,28,137,214,137,252,239,255,232,251,1,12,255,232,251,1,13,
133 255,139,149,233,252,233,244,2,248,74,129,252,248,239,15,130,244,61,15,132, 134 255,139,149,233,252,233,244,2,248,75,129,252,248,239,15,130,244,62,15,132,
134 244,248,248,1,129,122,253,4,239,15,133,244,61,139,108,36,24,137,149,233,137, 135 244,248,248,1,129,122,253,4,239,15,133,244,62,139,108,36,24,137,149,233,137,
135 149,233,139,90,252,252,139,50,141,82,8,137,252,239,137,92,36,28,232,251,1, 136 149,233,139,90,252,252,139,50,141,82,8,137,252,239,137,92,36,28,232,251,1,
136 14,139,149,233,133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106, 137 14,139,149,233,133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,
137 252,248,72,137,2,248,75,184,237,255,252,233,244,76,248,2,199,66,12,237,252, 138 252,248,72,137,2,248,76,184,237,255,252,233,244,77,248,2,199,66,12,237,252,
138 233,244,1,248,3,199,66,252,252,237,252,233,244,64,248,77,129,252,248,239, 139 233,244,1,248,3,199,66,252,252,237,252,233,244,65,248,78,129,252,248,239,
139 15,130,244,61,139,42,129,122,253,4,239,15,133,244,61,255,131,189,233,0,15, 140 15,130,244,62,139,42,129,122,253,4,239,15,133,244,62,255,131,189,233,0,15,
140 133,244,61,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252, 141 133,244,62,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252,
141 237,137,66,252,248,199,66,12,237,184,237,252,233,244,76,248,78,129,252,248, 142 237,137,66,252,248,199,66,12,237,184,237,252,233,244,77,248,79,129,252,248,
142 239,15,130,244,61,129,122,253,4,239,15,133,244,61,129,122,253,12,239,255, 143 239,15,130,244,62,129,122,253,4,239,15,133,244,62,129,122,253,12,239,255,
143 139,90,252,252,255,139,66,8,131,192,1,199,66,252,252,237,137,66,252,248,255, 144 139,90,252,252,255,139,66,8,131,192,1,199,66,252,252,237,137,66,252,248,255,
144 252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252, 145 252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,
145 242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248, 146 242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,
146 193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,79,72,139,40,72,137, 147 193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,80,72,139,40,72,137,
147 42,252,233,244,75,248,2,131,189,233,0,15,132,244,79,137,252,239,137,213,137, 148 42,252,233,244,76,248,2,131,189,233,0,15,132,244,80,137,252,239,137,213,137,
148 198,232,251,1,15,137,252,234,133,192,15,133,244,1,248,79,184,237,252,233, 149 198,232,251,1,15,137,252,234,133,192,15,133,244,1,248,80,184,237,252,233,
149 244,76,248,80,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252, 150 244,77,248,81,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252,
150 237,137,66,252,248,255,199,66,12,237,199,66,8,0,0,0,0,255,15,87,192,252,242, 151 237,137,66,252,248,255,199,66,12,237,199,66,8,0,0,0,0,255,15,87,192,252,242,
151 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,76,248,81,129, 152 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,77,248,82,129,
152 252,248,239,15,130,244,61,141,74,8,131,232,1,187,237,248,1,65,15,182,174, 153 252,248,239,15,130,244,62,141,74,8,131,232,1,187,237,248,1,65,15,182,174,
153 233,193,252,237,235,131,229,1,1,252,235,252,233,244,28,248,82,129,252,248, 154 233,193,252,237,235,131,229,1,1,252,235,252,233,244,28,248,83,129,252,248,
154 239,15,130,244,61,129,122,253,12,239,15,133,244,61,255,139,106,4,137,106, 155 239,15,130,244,62,129,122,253,12,239,15,133,244,62,255,139,106,4,137,106,
155 12,199,66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187, 156 12,199,66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,
156 237,252,233,244,1,248,83,129,252,248,239,15,130,244,61,139,42,139,90,252, 157 237,252,233,244,1,248,84,129,252,248,239,15,130,244,62,139,42,139,90,252,
157 252,137,92,36,28,137,44,36,129,122,253,4,239,15,133,244,61,72,131,189,233, 158 252,137,92,36,28,137,44,36,129,122,253,4,239,15,133,244,62,72,131,189,233,
158 0,15,133,244,61,128,189,233,235,15,135,244,61,139,141,233,15,132,244,247, 159 0,15,133,244,62,128,189,233,235,15,135,244,62,139,141,233,15,132,244,247,
159 255,59,141,233,15,132,244,61,248,1,141,92,193,252,240,59,157,233,15,135,244, 160 255,59,141,233,15,132,244,62,248,1,141,92,193,252,240,59,157,233,15,135,244,
160 61,137,157,233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194, 161 62,137,157,233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,
161 232,72,41,221,57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131, 162 232,72,41,221,57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131,
162 252,235,8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,25,65,199,134, 163 252,235,8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,25,65,199,134,
163 233,237,255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244, 164 233,237,255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,
@@ -168,10 +169,10 @@ static const unsigned char build_actionlist[16103] = {
168 248,252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244, 169 248,252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,
169 14,248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139, 170 14,248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139,
170 1,72,137,2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137, 171 1,72,137,2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137,
171 252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,84,139,106,252, 172 252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,85,139,106,252,
172 248,139,173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,189,233,0,15, 173 248,139,173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,189,233,0,15,
173 133,244,61,255,128,189,233,235,15,135,244,61,139,141,233,15,132,244,247,59, 174 133,244,62,255,128,189,233,235,15,135,244,62,139,141,233,15,132,244,247,59,
174 141,233,15,132,244,61,248,1,141,92,193,252,248,59,157,233,15,135,244,61,137, 175 141,233,15,132,244,62,248,1,141,92,193,252,248,59,157,233,15,135,244,62,137,
175 157,233,139,108,36,24,137,149,233,137,149,233,141,108,194,252,240,72,41,221, 176 157,233,139,108,36,24,137,149,233,137,149,233,141,108,194,252,240,72,41,221,
176 57,203,15,132,244,249,248,2,255,72,139,4,43,72,137,67,252,248,131,252,235, 177 57,203,15,132,244,249,248,2,255,72,139,4,43,72,137,67,252,248,131,252,235,
177 8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,25,65,199,134,233,237, 178 8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,25,65,199,134,233,237,
@@ -182,209 +183,209 @@ static const unsigned char build_actionlist[16103] = {
182 1,248,7,139,92,36,28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252, 183 1,248,7,139,92,36,28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,
183 233,244,14,248,8,137,222,137,252,239,232,251,1,16,248,9,139,12,36,68,137, 184 233,244,14,248,8,137,222,137,252,239,232,251,1,16,248,9,139,12,36,68,137,
184 185,233,137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,233,244, 185 185,233,137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,
185 4,248,85,139,108,36,24,72,252,247,133,233,237,15,132,244,61,255,137,149,233, 186 4,248,86,139,108,36,24,72,252,247,133,233,237,15,132,244,62,255,137,149,233,
186 141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233, 187 141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,
187 252,233,244,16,255,248,69,255,248,71,139,90,252,252,221,90,252,248,252,233, 188 252,233,244,16,255,248,70,255,248,72,139,90,252,252,221,90,252,248,252,233,
188 244,64,255,248,86,129,252,248,239,15,130,244,61,255,129,122,253,4,239,15, 189 244,65,255,248,87,129,252,248,239,15,130,244,62,255,129,122,253,4,239,15,
189 133,244,248,139,42,131,252,253,0,15,137,244,69,252,247,221,15,136,244,247, 190 133,244,248,139,42,131,252,253,0,15,137,244,70,252,247,221,15,136,244,247,
190 248,87,248,69,139,90,252,252,199,66,252,252,237,137,106,252,248,252,233,244, 191 248,88,248,70,139,90,252,252,199,66,252,252,237,137,106,252,248,252,233,244,
191 64,248,1,139,90,252,252,199,66,252,252,0,0,224,65,199,66,252,248,0,0,0,0, 192 65,248,1,139,90,252,252,199,66,252,252,0,0,224,65,199,66,252,248,0,0,0,0,
192 252,233,244,64,248,2,15,135,244,61,255,129,122,253,4,239,15,131,244,61,255, 193 252,233,244,65,248,2,15,135,244,62,255,129,122,253,4,239,15,131,244,62,255,
193 252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,70,139,90, 194 252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,71,139,90,
194 252,252,252,242,15,17,66,252,248,255,221,2,217,225,248,70,248,71,139,90,252, 195 252,252,252,242,15,17,66,252,248,255,221,2,217,225,248,71,248,72,139,90,252,
195 252,221,90,252,248,255,248,64,184,237,248,76,137,68,36,4,248,62,252,247,195, 196 252,221,90,252,248,255,248,65,184,237,248,77,137,68,36,4,248,63,252,247,195,
196 237,15,133,244,253,248,5,56,67,252,255,15,135,244,252,15,182,75,252,253,72, 197 237,15,133,244,253,248,5,56,67,252,255,15,135,244,252,15,182,75,252,253,72,
197 252,247,209,141,20,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 198 252,247,209,141,20,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
198 252,255,36,252,238,248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248, 199 252,255,36,252,238,248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,
199 7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,14,248,88,255,129, 200 7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,14,248,89,255,129,
200 122,253,4,239,15,133,244,247,139,42,252,233,244,69,248,1,15,135,244,61,255, 201 122,253,4,239,15,133,244,247,139,42,252,233,244,70,248,1,15,135,244,62,255,
201 252,242,15,16,2,232,244,89,255,252,242,15,45,232,129,252,253,0,0,0,128,15, 202 252,242,15,16,2,232,244,90,255,252,242,15,45,232,129,252,253,0,0,0,128,15,
202 133,244,69,252,242,15,42,205,102,15,46,193,15,138,244,70,15,132,244,69,255, 203 133,244,70,252,242,15,42,205,102,15,46,193,15,138,244,71,15,132,244,70,255,
203 221,2,232,244,89,255,248,90,255,252,242,15,16,2,232,244,91,255,221,2,232, 204 221,2,232,244,90,255,248,91,255,252,242,15,16,2,232,244,92,255,221,2,232,
204 244,91,255,248,92,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 205 244,92,255,248,93,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
205 244,61,252,242,15,81,2,252,233,244,70,255,248,92,129,252,248,239,15,130,244, 206 244,62,252,242,15,81,2,252,233,244,71,255,248,93,129,252,248,239,15,130,244,
206 61,129,122,253,4,239,15,131,244,61,221,2,217,252,250,252,233,244,71,255,248, 207 62,129,122,253,4,239,15,131,244,62,221,2,217,252,250,252,233,244,72,255,248,
207 93,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,217,252, 208 94,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,217,252,
208 237,221,2,217,252,241,252,233,244,71,248,94,129,252,248,239,15,130,244,61, 209 237,221,2,217,252,241,252,233,244,72,248,95,129,252,248,239,15,130,244,62,
209 129,122,253,4,239,15,131,244,61,217,252,236,221,2,217,252,241,252,233,244, 210 129,122,253,4,239,15,131,244,62,217,252,236,221,2,217,252,241,252,233,244,
210 71,248,95,129,252,248,239,255,15,130,244,61,129,122,253,4,239,15,131,244, 211 72,248,96,129,252,248,239,255,15,130,244,62,129,122,253,4,239,15,131,244,
211 61,221,2,232,244,96,252,233,244,71,248,97,129,252,248,239,15,130,244,61,129, 212 62,221,2,232,244,97,252,233,244,72,248,98,129,252,248,239,15,130,244,62,129,
212 122,253,4,239,15,131,244,61,221,2,217,252,254,252,233,244,71,248,98,129,252, 213 122,253,4,239,15,131,244,62,221,2,217,252,254,252,233,244,72,248,99,129,252,
213 248,239,255,15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,217,252,255, 214 248,239,255,15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,217,252,255,
214 252,233,244,71,248,99,129,252,248,239,15,130,244,61,129,122,253,4,239,15, 215 252,233,244,72,248,100,129,252,248,239,15,130,244,62,129,122,253,4,239,15,
215 131,244,61,221,2,217,252,242,221,216,252,233,244,71,248,100,129,252,248,239, 216 131,244,62,221,2,217,252,242,221,216,252,233,244,72,248,101,129,252,248,239,
216 15,130,244,61,255,129,122,253,4,239,15,131,244,61,221,2,217,192,216,200,217, 217 15,130,244,62,255,129,122,253,4,239,15,131,244,62,221,2,217,192,216,200,217,
217 232,222,225,217,252,250,217,252,243,252,233,244,71,248,101,129,252,248,239, 218 232,222,225,217,252,250,217,252,243,252,233,244,72,248,102,129,252,248,239,
218 15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,217,192,216,200,217,232, 219 15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,217,192,216,200,217,232,
219 222,225,217,252,250,217,201,217,252,243,252,233,244,71,248,102,129,252,248, 220 222,225,217,252,250,217,201,217,252,243,252,233,244,72,248,103,129,252,248,
220 239,15,130,244,61,129,122,253,4,239,15,131,244,61,255,221,2,217,232,217,252, 221 239,15,130,244,62,129,122,253,4,239,15,131,244,62,255,221,2,217,232,217,252,
221 243,252,233,244,71,255,248,103,129,252,248,239,15,130,244,61,129,122,253, 222 243,252,233,244,72,255,248,104,129,252,248,239,15,130,244,62,129,122,253,
222 4,239,15,131,244,61,252,242,15,16,2,255,137,213,232,251,1,17,137,252,234, 223 4,239,15,131,244,62,252,242,15,16,2,255,137,213,232,251,1,17,137,252,234,
223 252,233,244,70,255,248,104,129,252,248,239,15,130,244,61,129,122,253,4,239, 224 252,233,244,71,255,248,105,129,252,248,239,15,130,244,62,129,122,253,4,239,
224 15,131,244,61,252,242,15,16,2,255,137,213,232,251,1,18,137,252,234,252,233, 225 15,131,244,62,252,242,15,16,2,255,137,213,232,251,1,18,137,252,234,252,233,
225 244,70,255,248,105,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 226 244,71,255,248,106,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
226 244,61,252,242,15,16,2,255,137,213,232,251,1,19,137,252,234,252,233,244,70, 227 244,62,252,242,15,16,2,255,137,213,232,251,1,19,137,252,234,252,233,244,71,
227 248,106,255,248,107,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 228 248,107,255,248,108,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
228 244,61,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244, 229 244,62,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,
229 70,255,248,107,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244, 230 71,255,248,108,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,
230 61,221,2,139,106,252,248,220,141,233,252,233,244,71,255,248,108,129,252,248, 231 62,221,2,139,106,252,248,220,141,233,252,233,244,72,255,248,109,129,252,248,
231 239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131, 232 239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,
232 244,61,221,2,221,66,8,217,252,243,252,233,244,71,248,109,129,252,248,239, 233 244,62,221,2,221,66,8,217,252,243,252,233,244,72,248,110,129,252,248,239,
233 15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,255,15,131, 234 15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,255,15,131,
234 244,61,221,66,8,221,2,217,252,253,221,217,252,233,244,71,248,110,129,252, 235 244,62,221,66,8,221,2,217,252,253,221,217,252,233,244,72,248,111,129,252,
235 248,239,15,130,244,61,139,106,4,129,252,253,239,15,131,244,61,139,90,252, 236 248,239,15,130,244,62,139,106,4,129,252,253,239,15,131,244,62,139,90,252,
236 252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252, 237 252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,
237 255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0, 238 255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,
238 32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255, 239 32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,
239 137,44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129, 240 137,44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129,
240 205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184, 241 205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,
241 237,252,233,244,76,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252, 242 237,252,233,244,77,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,
242 233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205, 243 233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
243 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90, 244 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90,
244 216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233, 245 216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,
245 244,1,255,248,111,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 246 244,1,255,248,112,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
246 244,61,252,242,15,16,2,255,248,111,129,252,248,239,15,130,244,61,129,122, 247 244,62,252,242,15,16,2,255,248,112,129,252,248,239,15,130,244,62,129,122,
247 253,4,239,15,131,244,61,221,2,255,139,106,4,139,90,252,252,209,229,129,252, 248 253,4,239,15,131,244,62,221,2,255,139,106,4,139,90,252,252,209,229,129,252,
248 253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,112,252,242,15,92, 249 253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,113,252,242,15,92,
249 224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,112, 250 224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,113,
250 220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232, 251 220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,
251 15,136,244,249,248,2,184,237,252,233,244,76,248,3,129,252,245,0,0,0,128,137, 252 15,136,244,249,248,2,184,237,252,233,244,77,248,3,129,252,245,0,0,0,128,137,
252 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217, 253 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,
253 201,252,233,244,1,255,248,113,129,252,248,239,15,130,244,61,129,122,253,4, 254 201,252,233,244,1,255,248,114,129,252,248,239,15,130,244,62,129,122,253,4,
254 239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,66,8,221,2,248,1,217, 255 239,15,131,244,62,129,122,253,12,239,15,131,244,62,221,66,8,221,2,248,1,217,
255 252,248,223,224,158,15,138,244,1,221,217,252,233,244,71,255,248,114,129,252, 256 252,248,223,224,158,15,138,244,1,221,217,252,233,244,72,255,248,115,129,252,
256 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239, 257 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,
257 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,232,244,115,252,233,244, 258 15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,232,244,116,252,233,244,
258 70,255,248,114,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244, 259 71,255,248,115,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,
259 61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,232,244,115,252,233,244, 260 62,129,122,253,12,239,15,131,244,62,221,2,221,66,8,232,244,116,252,233,244,
260 71,255,248,116,185,2,0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248, 261 72,255,248,117,185,2,0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,
261 1,57,193,15,131,244,69,129,124,253,202,252,252,239,15,133,244,249,59,108, 262 1,57,193,15,131,244,70,129,124,253,202,252,252,239,15,133,244,249,59,108,
262 202,252,248,15,79,108,202,252,248,131,193,1,252,233,244,1,248,3,15,135,244, 263 202,252,248,15,79,108,202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,
263 61,255,252,233,244,252,248,4,15,135,244,61,255,252,242,15,16,2,248,5,57,193, 264 62,255,252,233,244,252,248,4,15,135,244,62,255,252,242,15,16,2,248,5,57,193,
264 15,131,244,70,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,61, 265 15,131,244,71,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,62,
265 252,242,15,42,76,202,252,248,252,233,244,253,255,248,6,252,242,15,16,76,202, 266 252,242,15,42,76,202,252,248,252,233,244,253,255,248,6,252,242,15,16,76,202,
266 252,248,248,7,252,242,15,93,193,131,193,1,252,233,244,5,255,248,117,185,2, 267 252,248,248,7,252,242,15,93,193,131,193,1,252,233,244,5,255,248,118,185,2,
267 0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244, 268 0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,
268 69,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,76,108, 269 70,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,76,108,
269 202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,61,255,248,6,252,242, 270 202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,62,255,248,6,252,242,
270 15,16,76,202,252,248,248,7,252,242,15,95,193,131,193,1,252,233,244,5,255, 271 15,16,76,202,252,248,248,7,252,242,15,95,193,131,193,1,252,233,244,5,255,
271 248,9,221,216,252,233,244,61,255,248,118,129,252,248,239,15,130,244,61,129, 272 248,9,221,216,252,233,244,62,255,248,119,129,252,248,239,15,130,244,62,129,
272 122,253,4,239,15,133,244,61,139,42,255,139,173,233,252,233,244,69,255,252, 273 122,253,4,239,15,133,244,62,139,42,255,139,173,233,252,233,244,70,255,252,
273 242,15,42,133,233,252,233,244,70,255,219,133,233,252,233,244,71,255,248,119, 274 242,15,42,133,233,252,233,244,71,255,219,133,233,252,233,244,72,255,248,120,
274 129,252,248,239,15,133,244,61,129,122,253,4,239,15,133,244,61,139,42,139, 275 129,252,248,239,15,133,244,62,129,122,253,4,239,15,133,244,62,139,42,139,
275 90,252,252,131,189,233,1,15,130,244,79,15,182,173,233,255,252,242,15,42,197, 276 90,252,252,131,189,233,1,15,130,244,80,15,182,173,233,255,252,242,15,42,197,
276 252,233,244,70,255,137,44,36,219,4,36,252,233,244,71,255,248,120,65,139,174, 277 252,233,244,71,255,137,44,36,219,4,36,252,233,244,72,255,248,121,65,139,174,
277 233,65,59,174,233,15,130,244,247,232,244,73,248,1,129,252,248,239,15,133, 278 233,65,59,174,233,15,130,244,247,232,244,74,248,1,129,252,248,239,15,133,
278 244,61,129,122,253,4,239,255,15,133,244,61,139,42,129,252,253,252,255,0,0, 279 244,62,129,122,253,4,239,255,15,133,244,62,139,42,129,252,253,252,255,0,0,
279 0,15,135,244,61,137,108,36,4,255,15,131,244,61,252,242,15,44,42,129,252,253, 280 0,15,135,244,62,137,108,36,4,255,15,131,244,62,252,242,15,44,42,129,252,253,
280 252,255,0,0,0,15,135,244,61,137,108,36,4,255,15,131,244,61,221,2,219,92,36, 281 252,255,0,0,0,15,135,244,62,137,108,36,4,255,15,131,244,62,221,2,219,92,36,
281 4,129,124,36,4,252,255,0,0,0,15,135,244,61,255,199,68,36,8,1,0,0,0,72,141, 282 4,129,124,36,4,252,255,0,0,0,15,135,244,62,255,199,68,36,8,1,0,0,0,72,141,
282 68,36,4,248,121,139,108,36,24,137,149,233,139,84,36,8,72,137,198,137,252, 283 68,36,4,248,122,139,108,36,24,137,149,233,139,84,36,8,72,137,198,137,252,
283 239,137,92,36,28,232,251,1,20,139,149,233,139,90,252,252,199,66,252,252,237, 284 239,137,92,36,28,232,251,1,20,139,149,233,139,90,252,252,199,66,252,252,237,
284 137,66,252,248,252,233,244,64,248,122,65,139,174,233,65,59,174,233,15,130, 285 137,66,252,248,252,233,244,65,248,123,65,139,174,233,65,59,174,233,15,130,
285 244,247,232,244,73,248,1,199,68,36,4,252,255,252,255,252,255,252,255,129, 286 244,247,232,244,74,248,1,199,68,36,4,252,255,252,255,252,255,252,255,129,
286 252,248,239,15,130,244,61,15,134,244,247,129,122,253,20,239,255,15,133,244, 287 252,248,239,15,130,244,62,15,134,244,247,129,122,253,20,239,255,15,133,244,
287 61,139,106,16,137,108,36,4,255,15,131,244,61,252,242,15,44,106,16,137,108, 288 62,139,106,16,137,108,36,4,255,15,131,244,62,252,242,15,44,106,16,137,108,
288 36,4,255,15,131,244,61,221,66,16,219,92,36,4,255,248,1,129,122,253,4,239, 289 36,4,255,15,131,244,62,221,66,16,219,92,36,4,255,248,1,129,122,253,4,239,
289 15,133,244,61,129,122,253,12,239,255,139,42,137,108,36,8,139,173,233,255, 290 15,133,244,62,129,122,253,12,239,255,139,42,137,108,36,8,139,173,233,255,
290 139,74,8,255,252,242,15,44,74,8,255,139,68,36,4,57,197,15,130,244,251,248, 291 139,74,8,255,252,242,15,44,74,8,255,139,68,36,4,57,197,15,130,244,251,248,
291 2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,123,141,172, 292 2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,124,141,172,
292 253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,121,248,5,15,140, 293 253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,122,248,5,15,140,
293 244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15, 294 244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,
294 132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244, 295 132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,
295 3,248,123,49,192,252,233,244,4,248,124,129,252,248,239,15,130,244,61,65,139, 296 3,248,124,49,192,252,233,244,4,248,125,129,252,248,239,15,130,244,62,65,139,
296 174,233,65,59,174,233,15,130,244,247,232,244,73,248,1,255,129,122,253,4,239, 297 174,233,65,59,174,233,15,130,244,247,232,244,74,248,1,255,129,122,253,4,239,
297 15,133,244,61,129,122,253,12,239,139,42,255,15,133,244,61,139,66,8,255,15, 298 15,133,244,62,129,122,253,12,239,139,42,255,15,133,244,62,139,66,8,255,15,
298 131,244,61,252,242,15,44,66,8,255,15,131,244,61,221,66,8,219,92,36,4,139, 299 131,244,62,252,242,15,44,66,8,255,15,131,244,62,221,66,8,219,92,36,4,139,
299 68,36,4,255,133,192,15,142,244,123,131,189,233,1,15,130,244,123,15,133,244, 300 68,36,4,255,133,192,15,142,244,124,131,189,233,1,15,130,244,124,15,133,244,
300 125,65,57,134,233,15,130,244,125,15,182,141,233,65,139,174,233,137,68,36, 301 126,65,57,134,233,15,130,244,126,15,182,141,233,65,139,174,233,137,68,36,
301 8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233, 302 8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233,
302 244,121,248,126,129,252,248,239,255,15,130,244,61,65,139,174,233,65,59,174, 303 244,122,248,127,129,252,248,239,255,15,130,244,62,65,139,174,233,65,59,174,
303 233,15,130,244,247,232,244,73,248,1,129,122,253,4,239,15,133,244,61,139,42, 304 233,15,130,244,247,232,244,74,248,1,129,122,253,4,239,15,133,244,62,139,42,
304 139,133,233,133,192,15,132,244,123,65,57,134,233,15,130,244,127,129,197,239, 305 139,133,233,133,192,15,132,244,124,65,57,134,233,15,130,244,128,129,197,239,
305 137,92,36,4,137,68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131, 306 137,92,36,4,137,68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,
306 232,1,136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,121,248,128,129, 307 232,1,136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,122,248,129,129,
307 252,248,239,15,130,244,61,65,139,174,233,65,59,174,233,15,130,244,247,232, 308 252,248,239,15,130,244,62,65,139,174,233,65,59,174,233,15,130,244,247,232,
308 244,73,248,1,129,122,253,4,239,15,133,244,61,139,42,139,133,233,65,57,134, 309 244,74,248,1,129,122,253,4,239,15,133,244,62,139,42,139,133,233,65,57,134,
309 233,255,15,130,244,127,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233, 310 233,255,15,130,244,128,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,
310 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252, 311 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,
311 249,90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137, 312 249,90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,
312 244,1,137,216,139,92,36,4,252,233,244,121,248,129,129,252,248,239,15,130, 313 244,1,137,216,139,92,36,4,252,233,244,122,248,130,129,252,248,239,15,130,
313 244,61,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,73,248,1,129, 314 244,62,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,74,248,1,129,
314 122,253,4,239,15,133,244,61,139,42,139,133,233,65,57,134,233,15,130,244,127, 315 122,253,4,239,15,133,244,62,139,42,139,133,233,65,57,134,233,15,130,244,128,
315 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1, 316 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,
316 15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244, 317 15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,
317 248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139, 318 248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,
318 92,36,4,252,233,244,121,248,130,129,252,248,239,15,130,244,61,129,122,253, 319 92,36,4,252,233,244,122,248,131,129,252,248,239,15,130,244,62,129,122,253,
319 4,239,15,133,244,61,137,213,139,58,232,251,1,21,137,252,234,255,137,197,252, 320 4,239,15,133,244,62,137,213,139,58,232,251,1,21,137,252,234,255,137,197,252,
320 233,244,69,255,252,242,15,42,192,252,233,244,70,255,248,131,129,252,248,239, 321 233,244,70,255,252,242,15,42,192,252,233,244,71,255,248,132,129,252,248,239,
321 15,130,244,61,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,87, 322 15,130,244,62,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,88,
322 248,1,15,135,244,61,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205, 323 248,1,15,135,244,62,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
323 252,242,15,88,193,102,15,126,197,255,252,233,244,87,255,248,132,129,252,248, 324 252,242,15,88,193,102,15,126,197,255,252,233,244,88,255,248,133,129,252,248,
324 239,15,130,244,61,255,72,189,237,237,102,72,15,110,205,255,199,4,36,0,0,192, 325 239,15,130,244,62,255,72,189,237,237,102,72,15,110,205,255,199,4,36,0,0,192,
325 89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135,244,61,255,252, 326 89,255,15,133,244,247,139,42,252,233,244,248,248,1,15,135,244,62,255,252,
326 242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137,68,36,4,141,68, 327 242,15,16,2,252,242,15,88,193,102,15,126,197,255,248,2,137,68,36,4,141,68,
327 194,252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248, 328 194,252,240,248,1,57,208,15,134,244,88,129,120,253,4,239,255,15,133,244,248,
328 35,40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255, 329 35,40,131,232,8,252,233,244,1,248,2,15,135,244,134,255,15,131,244,134,255,
329 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252, 330 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
330 233,244,1,248,134,129,252,248,239,15,130,244,61,255,15,133,244,248,11,40, 331 233,244,1,248,135,129,252,248,239,15,130,244,62,255,15,133,244,248,11,40,
331 131,232,8,252,233,244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242, 332 131,232,8,252,233,244,1,248,2,15,135,244,134,255,252,242,15,16,0,252,242,
332 15,88,193,102,15,126,193,9,205,255,131,232,8,252,233,244,1,248,135,129,252, 333 15,88,193,102,15,126,193,9,205,255,131,232,8,252,233,244,1,248,136,129,252,
333 248,239,15,130,244,61,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248, 334 248,239,15,130,244,62,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248,
334 2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49, 335 2,15,135,244,134,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,
335 205,255,131,232,8,252,233,244,1,248,136,129,252,248,239,15,130,244,61,129, 336 205,255,131,232,8,252,233,244,1,248,137,129,252,248,239,15,130,244,62,129,
336 122,253,4,239,255,248,2,15,205,252,233,244,87,248,137,129,252,248,239,15, 337 122,253,4,239,255,248,2,15,205,252,233,244,88,248,138,129,252,248,239,15,
337 130,244,61,129,122,253,4,239,255,248,2,252,247,213,255,248,87,252,242,15, 338 130,244,62,129,122,253,4,239,255,248,2,252,247,213,255,248,88,252,242,15,
338 42,197,252,233,244,70,255,248,133,139,68,36,4,252,233,244,61,255,248,138, 339 42,197,252,233,244,71,255,248,134,139,68,36,4,252,233,244,62,255,248,139,
339 129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2,129,122,253,12, 340 129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,2,129,122,253,12,
340 239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129, 341 239,15,133,244,62,139,74,8,255,248,139,129,252,248,239,15,130,244,62,129,
341 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 342 122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,15,16,
342 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 343 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
343 242,15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,87,255, 344 242,15,88,202,102,15,126,197,102,15,126,201,255,211,229,252,233,244,88,255,
344 248,139,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,139,129,252, 345 248,140,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,140,129,252,
345 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239, 346 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,
346 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15, 347 15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
347 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201, 348 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,
348 255,211,252,237,252,233,244,87,255,248,140,129,252,248,239,15,130,244,61, 349 255,211,252,237,252,233,244,88,255,248,141,129,252,248,239,15,130,244,62,
349 129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61,129,122,253,4, 350 129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,62,129,122,253,4,
350 239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242, 351 239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,15,16,2,252,242,
351 15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15, 352 15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,
352 88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,87,255,248, 353 88,202,102,15,126,197,102,15,126,201,255,211,252,253,252,233,244,88,255,248,
353 141,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,141,129,252,248, 354 142,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,142,129,252,248,
354 239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131, 355 239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,
355 244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213, 356 244,62,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,
356 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211, 357 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211,
357 197,252,233,244,87,255,248,142,129,252,248,239,15,130,244,61,129,122,253, 358 197,252,233,244,88,255,248,143,129,252,248,239,15,130,244,62,129,122,253,
358 4,239,255,248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 359 4,239,255,248,143,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
359 244,61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74, 360 244,62,129,122,253,12,239,15,131,244,62,252,242,15,16,2,252,242,15,16,74,
360 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102, 361 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,
361 15,126,197,102,15,126,201,255,211,205,252,233,244,87,248,125,184,237,252, 362 15,126,197,102,15,126,201,255,211,205,252,233,244,88,248,126,184,237,252,
362 233,244,61,248,127,184,237,248,61,139,108,36,24,139,90,252,252,137,92,36, 363 233,244,62,248,128,184,237,248,62,139,108,36,24,139,90,252,252,137,92,36,
363 28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248, 364 28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
364 59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,149,233,133,192, 365 59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,149,233,133,192,
365 15,143,244,76,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1, 366 15,143,244,77,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,
366 139,106,252,248,15,133,244,32,139,157,233,139,11,15,182,252,233,15,182,205, 367 139,106,252,248,15,133,244,32,139,157,233,139,11,15,182,252,233,15,182,205,
367 131,195,4,65,252,255,36,252,238,248,32,137,209,252,247,195,237,15,133,244, 368 131,195,4,65,252,255,36,252,238,248,32,137,209,252,247,195,237,15,133,244,
368 249,15,182,107,252,253,72,252,247,213,141,20,252,234,252,233,244,28,248,3, 369 249,15,182,107,252,253,72,252,247,213,141,20,252,234,252,233,244,28,248,3,
369 137,221,131,229,252,248,41,252,234,252,233,244,28,248,5,190,237,137,252,239, 370 137,221,131,229,252,248,41,252,234,252,233,244,28,248,5,190,237,137,252,239,
370 232,251,1,0,139,149,233,49,192,252,233,244,1,248,73,93,72,137,108,36,8,139, 371 232,251,1,0,139,149,233,49,192,252,233,244,1,248,74,93,72,137,108,36,8,139,
371 108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248,137,252,239,137, 372 108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248,137,252,239,137,
372 133,233,232,251,1,22,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72, 373 133,233,232,251,1,22,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
373 139,108,36,8,85,195,248,143,255,65,15,182,134,233,168,235,15,133,244,251, 374 139,108,36,8,85,195,248,144,255,65,15,182,134,233,168,235,15,133,244,251,
374 168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142,233,252,233, 375 168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142,233,252,233,
375 244,247,255,248,144,65,15,182,134,233,168,235,15,133,244,251,252,233,244, 376 244,247,255,248,145,65,15,182,134,233,168,235,15,133,244,251,252,233,244,
376 247,248,145,65,15,182,134,233,168,235,15,133,244,251,168,235,15,132,244,251, 377 247,248,146,65,15,182,134,233,168,235,15,133,244,251,168,235,15,132,244,251,
377 65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108, 378 65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,
378 36,24,137,149,233,137,222,137,252,239,232,251,1,23,248,3,139,149,233,248, 379 36,24,137,149,233,137,222,137,252,239,232,251,1,23,248,3,139,149,233,248,
379 4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254,65,252,255, 380 4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254,65,252,255,
380 164,253,252,238,233,248,146,131,195,4,139,77,232,137,76,36,4,252,233,244, 381 164,253,252,238,233,248,147,131,195,4,139,77,232,137,76,36,4,252,233,244,
381 4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,139,108, 382 4,248,148,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,
382 36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233,137,92, 383 36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233,137,92,
383 36,28,232,251,1,24,252,233,244,3,255,248,148,137,92,36,28,255,248,149,255, 384 36,28,232,251,1,24,252,233,244,3,255,248,149,137,92,36,28,255,248,150,255,
384 137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24,137,149, 385 137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24,137,149,
385 233,137,133,233,137,222,137,252,239,232,251,1,25,199,68,36,28,0,0,0,0,255, 386 233,137,133,233,137,222,137,252,239,232,251,1,25,199,68,36,28,0,0,0,0,255,
386 131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205, 387 131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,
387 15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,150,255,65,85,65,84, 388 15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,151,255,65,85,65,84,
388 65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69, 389 65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,
389 252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68,139,117, 390 252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68,139,117,
390 0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233,72,129, 391 0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233,72,129,
@@ -396,30 +397,30 @@ static const unsigned char build_actionlist[16103] = {
396 17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,233, 397 17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,233,
397 65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251,1,26, 398 65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,232,251,1,26,
398 72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139,153, 399 72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,233,139,153,
399 233,252,233,244,247,255,248,151,255,72,131,196,16,248,1,76,139,108,36,8,76, 400 233,252,233,244,247,255,248,152,255,72,131,196,16,248,1,76,139,108,36,8,76,
400 139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139,191, 401 139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,69,139,191,
401 233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182, 402 233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,
402 204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139,68, 403 204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,139,68,
403 36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198,232, 404 36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,198,232,
404 251,1,1,255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36, 405 251,1,1,255,248,90,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
405 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 406 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
406 36,4,139,68,36,8,195,255,248,152,72,184,237,237,102,72,15,110,208,72,184, 407 36,4,139,68,36,8,195,255,248,153,72,184,237,237,102,72,15,110,208,72,184,
407 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244, 408 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
408 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184, 409 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
409 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92, 410 237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
410 200,15,40,193,248,1,195,248,91,255,217,124,36,4,137,68,36,8,102,184,0,8,102, 411 200,15,40,193,248,1,195,248,92,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
411 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252, 412 11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
412 217,108,36,4,139,68,36,8,195,255,248,153,72,184,237,237,102,72,15,110,208, 413 217,108,36,4,139,68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,
413 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15, 414 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
414 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202, 415 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
415 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242, 416 72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
416 15,92,200,15,40,193,248,1,195,248,112,255,217,124,36,4,137,68,36,8,102,184, 417 15,92,200,15,40,193,248,1,195,248,113,255,217,124,36,4,137,68,36,8,102,184,
417 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 418 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
418 139,68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,72,184,237,237, 419 139,68,36,8,195,255,248,155,72,184,237,237,102,72,15,110,208,72,184,237,237,
419 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102, 420 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
420 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102, 421 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
421 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15, 422 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
422 86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,15,94,193,72,184, 423 86,202,15,40,193,248,1,195,248,156,255,15,40,232,252,242,15,94,193,72,184,
423 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102, 424 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
424 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252, 425 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
425 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194, 426 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
@@ -427,12 +428,12 @@ static const unsigned char build_actionlist[16103] = {
427 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255, 428 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
428 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255, 429 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
429 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222, 430 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
430 252,233,195,255,248,96,217,252,234,222,201,248,156,217,84,36,252,248,129, 431 252,233,195,255,248,97,217,252,234,222,201,248,157,217,84,36,252,248,129,
431 124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252, 432 124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252,
432 255,15,132,244,248,248,157,217,192,217,252,252,220,252,233,217,201,217,252, 433 255,15,132,244,248,248,158,217,192,217,252,252,220,252,233,217,201,217,252,
433 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238, 434 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,
434 195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208,102,15,46, 435 195,255,248,116,255,248,159,252,242,15,45,193,252,242,15,42,208,102,15,46,
435 202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142,244,252,248, 436 202,15,133,244,254,15,138,244,255,248,160,131,252,248,1,15,142,244,252,248,
436 1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248, 437 1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,
437 2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132, 438 2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,
438 244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15, 439 244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,
@@ -449,28 +450,28 @@ static const unsigned char build_actionlist[16103] = {
449 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80, 450 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
450 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237, 451 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
451 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87, 452 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
452 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,160,255, 453 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,161,255,
453 131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130,244,112,15, 454 131,252,255,1,15,130,244,90,15,132,244,92,131,252,255,3,15,130,244,113,15,
454 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68, 455 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,
455 36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244,96,252,233, 456 36,252,248,131,252,255,5,15,135,244,248,15,132,244,247,232,244,97,252,233,
456 244,253,248,1,232,244,156,255,252,233,244,253,248,2,131,252,255,7,15,132, 457 244,253,248,1,232,244,157,255,252,233,244,253,248,2,131,252,255,7,15,132,
457 244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248, 458 244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,
458 1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132, 459 1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,
459 244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248, 460 244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,
460 1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15, 461 1,255,217,252,254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,
461 135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221, 462 135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,
462 92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36, 463 92,36,252,248,252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,
463 4,131,252,255,1,15,130,244,89,15,132,244,91,131,252,255,3,15,130,244,112, 464 4,131,252,255,1,15,130,244,90,15,132,244,92,131,252,255,3,15,130,244,113,
464 15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,96,15,132,244, 465 15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,130,244,97,15,132,244,
465 156,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 466 157,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
466 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132, 467 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,
467 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 468 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
468 252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255, 469 252,254,195,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,
469 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,131,252,255, 470 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,162,255,131,252,255,
470 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92, 471 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,
471 193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193, 472 193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,
472 195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,155,15,132, 473 195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,156,15,132,
473 244,115,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102, 474 244,116,131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,
474 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84, 475 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,
475 193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252, 476 193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,
476 242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247, 477 242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,
@@ -480,14 +481,14 @@ static const unsigned char build_actionlist[16103] = {
480 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244, 481 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,
481 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3, 482 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,
482 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 483 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,
483 252,248,5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135, 484 252,248,5,15,130,244,156,15,132,244,116,131,252,248,7,15,132,244,247,15,135,
484 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 485 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,
485 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 486 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,
486 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252, 487 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,
487 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225, 488 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,
488 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221, 489 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,
489 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248, 490 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,
490 162,137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,248,163, 491 163,137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,248,164,
491 255,85,72,137,229,83,72,137,252,251,139,131,233,72,41,196,255,15,182,139, 492 255,85,72,137,229,83,72,137,252,251,139,131,233,72,41,196,255,15,182,139,
492 233,131,252,233,1,15,136,244,248,248,1,72,139,132,253,203,233,72,137,132, 493 233,131,252,233,1,15,136,244,248,248,1,72,139,132,253,203,233,72,137,132,
493 253,204,233,131,252,233,1,15,137,244,1,248,2,15,182,131,233,72,139,187,233, 494 253,204,233,131,252,233,1,15,137,244,1,248,2,15,182,131,233,72,139,187,233,
@@ -495,7 +496,7 @@ static const unsigned char build_actionlist[16103] = {
495 133,192,15,132,244,251,15,40,131,233,15,40,139,233,255,15,40,147,233,15,40, 496 133,192,15,132,244,251,15,40,131,233,15,40,139,233,255,15,40,147,233,15,40,
496 155,233,131,252,248,4,15,134,244,251,15,40,163,233,15,40,171,233,15,40,179, 497 155,233,131,252,248,4,15,134,244,251,15,40,163,233,15,40,171,233,15,40,179,
497 233,15,40,187,233,248,5,252,255,147,233,72,137,131,233,15,41,131,233,72,137, 498 233,15,40,187,233,248,5,252,255,147,233,72,137,131,233,15,41,131,233,72,137,
498 147,233,15,41,139,233,255,72,139,93,252,248,201,195,255,248,164,255,249,255, 499 147,233,15,41,139,233,255,72,139,93,252,248,201,195,255,248,165,255,249,255,
499 129,124,253,202,4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254, 500 129,124,253,202,4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254,
500 139,44,202,131,195,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255, 501 139,44,202,131,195,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255,
501 15,143,244,255,255,15,142,244,255,255,248,6,15,183,67,252,254,141,156,253, 502 15,143,244,255,255,15,142,244,255,255,248,6,15,183,67,252,254,141,156,253,
@@ -556,240 +557,242 @@ static const unsigned char build_actionlist[16103] = {
556 133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255, 557 133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,
557 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233, 558 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,
558 248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 559 248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
559 252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,56,139,60,194,137, 560 252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,56,139,60,194,255,
560 213,232,251,1,21,255,252,242,15,42,192,255,137,252,234,15,182,75,252,253, 561 139,175,233,131,252,253,0,15,133,244,255,248,3,255,248,57,137,213,232,251,
561 252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239, 562 1,21,255,252,242,15,42,192,255,137,252,234,15,182,75,252,253,252,233,244,
562 15,133,244,50,65,129,124,253,199,4,239,15,133,244,50,139,44,252,234,65,3, 563 1,255,248,9,252,246,133,233,235,15,133,244,3,252,233,244,56,255,15,182,252,
563 44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,52,65,129,124, 564 236,15,182,192,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,
564 253,199,4,239,15,133,244,52,65,139,4,199,3,4,252,234,15,128,244,51,255,129, 565 199,4,239,15,133,244,50,139,44,252,234,65,3,44,199,15,128,244,49,255,129,
565 124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139, 566 124,253,252,234,4,239,15,133,244,52,65,129,124,253,199,4,239,15,133,244,52,
566 44,252,234,3,44,194,15,128,244,54,255,199,68,202,4,237,255,129,124,253,252, 567 65,139,4,199,3,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239,15,133,
567 234,4,239,15,131,244,50,255,65,129,124,253,199,4,239,15,131,244,50,255,252, 568 244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,3,44,194,15,128,
568 242,15,16,4,252,234,252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199, 569 244,54,255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,131,244,50,255,
569 255,129,124,253,252,234,4,239,15,131,244,52,255,65,129,124,253,199,4,239, 570 65,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4,252,234,252,242,
570 15,131,244,52,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221, 571 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,
571 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,55,129,124,253, 572 15,131,244,52,255,65,129,124,253,199,4,239,15,131,244,52,255,252,242,65,15,
572 194,4,239,15,131,244,55,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, 573 16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,234,255,129,124,
573 221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,50,65,129, 574 253,252,234,4,239,15,131,244,55,129,124,253,194,4,239,15,131,244,55,255,252,
574 124,253,199,4,239,15,133,244,50,139,44,252,234,65,43,44,199,15,128,244,49, 575 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,
575 255,129,124,253,252,234,4,239,15,133,244,52,65,129,124,253,199,4,239,15,133, 576 124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,15,133,244,50,
576 244,52,65,139,4,199,43,4,252,234,15,128,244,51,255,129,124,253,252,234,4, 577 139,44,252,234,65,43,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,
577 239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,43,44, 578 133,244,52,65,129,124,253,199,4,239,15,133,244,52,65,139,4,199,43,4,252,234,
578 194,15,128,244,54,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255, 579 15,128,244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,
579 221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252, 580 4,239,15,133,244,55,139,44,252,234,43,44,194,15,128,244,54,255,252,242,15,
580 234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15, 581 16,4,252,234,252,242,65,15,92,4,199,255,221,4,252,234,65,220,36,199,255,252,
581 92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133, 582 242,65,15,16,4,199,252,242,15,92,4,252,234,255,65,221,4,199,220,36,252,234,
582 244,50,65,129,124,253,199,4,239,15,133,244,50,139,44,252,234,65,15,175,44, 583 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,
583 199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,52,65,129,124, 584 194,255,129,124,253,252,234,4,239,15,133,244,50,65,129,124,253,199,4,239,
584 253,199,4,239,15,133,244,52,65,139,4,199,15,175,4,252,234,15,128,244,51,255, 585 15,133,244,50,139,44,252,234,65,15,175,44,199,15,128,244,49,255,129,124,253,
585 129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244, 586 252,234,4,239,15,133,244,52,65,129,124,253,199,4,239,15,133,244,52,65,139,
586 55,139,44,252,234,15,175,44,194,15,128,244,54,255,252,242,15,16,4,252,234, 587 4,199,15,175,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239,15,133,
587 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15, 588 244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,15,175,44,194,15,
588 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252, 589 128,244,54,255,252,242,15,16,4,252,234,252,242,65,15,89,4,199,255,221,4,252,
589 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 590 234,65,220,12,199,255,252,242,65,15,16,4,199,252,242,15,89,4,252,234,255,
590 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52, 591 65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,
591 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220, 592 255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,65,15,94,
592 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252, 593 4,199,255,221,4,252,234,65,220,52,199,255,252,242,65,15,16,4,199,252,242,
593 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221, 594 15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,
594 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234, 595 252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,
595 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, 596 234,252,242,65,15,16,12,199,255,221,4,252,234,65,221,4,199,255,252,242,65,
596 12,194,255,221,4,252,234,221,4,194,255,248,165,232,244,155,255,252,233,244, 597 15,16,4,199,252,242,15,16,12,252,234,255,65,221,4,199,221,4,252,234,255,252,
597 165,255,232,244,115,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233, 598 242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,
598 141,52,194,137,194,41,252,234,248,35,137,252,253,137,92,36,28,232,251,1,27, 599 248,166,232,244,156,255,252,233,244,166,255,232,244,116,255,15,182,252,236,
599 139,149,233,133,192,15,133,244,44,15,182,107,252,255,15,182,75,252,253,72, 600 15,182,192,139,124,36,24,137,151,233,141,52,194,137,194,41,252,234,248,35,
600 139,4,252,234,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232, 601 137,252,253,137,92,36,28,232,251,1,27,139,149,233,133,192,15,133,244,44,15,
601 16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237, 602 182,107,252,255,15,182,75,252,253,72,139,4,252,234,72,137,4,202,139,3,15,
602 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 603 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,
603 252,238,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242, 604 247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,
604 15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,255,252,242,65, 605 131,195,4,193,232,16,65,252,255,36,252,238,255,15,191,192,199,68,202,4,237,
605 15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247, 606 137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,
606 208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 607 252,254,221,28,202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,
607 255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248, 608 221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,
608 1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182,232,131,195, 609 182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,
609 4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,133,233, 610 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
610 139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182,232,131,195, 611 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
611 4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233, 612 255,139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,
612 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132, 613 202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
613 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182, 614 255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,
614 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252, 615 194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,
615 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213, 616 133,244,248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
616 65,141,190,233,255,232,251,1,28,137,252,234,252,233,244,1,255,72,252,247, 617 255,36,252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,
617 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199, 618 233,235,15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,28,
618 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182, 619 137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,
619 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235, 620 141,233,65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,
620 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232, 621 15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
621 251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15, 622 252,255,36,252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,
622 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 623 132,244,1,137,213,137,198,65,141,190,233,232,251,1,28,137,252,234,252,233,
623 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137, 624 244,1,255,139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,
624 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 625 233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,
625 255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149, 626 252,248,139,172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,
626 233,141,52,202,137,252,239,232,251,1,29,139,149,233,248,1,139,3,15,182,204, 627 232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,
627 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208, 628 108,36,24,131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,
628 139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92, 629 232,251,1,29,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,
629 36,28,232,251,1,30,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 630 232,16,65,252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,
630 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, 631 139,82,252,248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,30,139,149,
631 139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,28,15,131, 632 233,15,182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,
632 244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15, 633 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137,149,
633 132,244,249,248,2,137,252,239,137,198,232,251,1,31,139,149,233,15,182,75, 634 233,65,139,142,233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137,194,
634 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4, 635 37,252,255,7,0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,
635 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137, 636 252,239,137,198,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,
636 252,239,232,251,1,32,15,183,67,252,254,252,233,244,1,255,72,252,247,208,139, 637 68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
637 108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244, 638 36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251,1,32,
638 249,248,2,65,139,52,135,137,252,239,232,251,1,33,139,149,233,15,182,75,252, 639 15,183,67,252,254,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,
639 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193, 640 233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,
640 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,32,15,183,67,252, 641 135,137,252,239,232,251,1,33,139,149,233,15,182,75,252,253,137,4,202,199,
641 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173, 642 68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
642 233,65,139,4,135,252,233,244,166,255,72,252,247,208,139,106,252,248,139,173, 643 36,252,238,248,3,137,252,239,232,251,1,32,15,183,67,252,254,72,252,247,208,
643 233,65,139,4,135,252,233,244,167,255,15,182,252,236,15,182,192,129,124,253, 644 252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,
644 252,234,4,239,15,133,244,38,139,44,252,234,255,129,124,253,194,4,239,15,133, 645 252,233,244,167,255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,
645 244,251,139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15, 646 252,233,244,168,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
646 16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244, 647 133,244,38,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,139,4,
647 38,255,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15, 648 194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,252,
648 132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131, 649 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,38,255,59,133,
649 195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249, 650 233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,
650 139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,252,253,248,3,199, 651 139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
651 68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38, 652 16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
652 139,4,194,252,233,244,166,255,15,182,252,236,15,182,192,72,252,247,208,65, 653 246,129,233,235,15,132,244,38,15,182,75,252,253,248,3,199,68,202,4,237,252,
653 139,4,135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,166, 654 233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38,139,4,194,252,233,
654 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133, 655 244,167,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,
655 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182, 656 253,252,234,4,239,15,133,244,36,139,44,252,234,248,167,139,141,233,35,136,
656 67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15,182,204,15,182,232, 657 233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,
657 131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,252,253,199,68, 658 15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,67,252,253,72,139,
658 194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139, 659 41,72,137,44,194,248,2,255,139,3,15,182,204,15,182,232,131,195,4,193,232,
659 141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244, 660 16,65,252,255,36,252,238,248,3,15,182,67,252,253,199,68,194,4,237,252,233,
660 36,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,37, 661 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
661 139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4, 662 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,36,255,15,182,252,
662 239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182, 663 236,15,182,192,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,59,
663 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,0,15,132, 664 133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
664 244,249,139,141,233,252,246,129,233,235,15,132,244,37,255,15,182,75,252,253, 665 72,139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
665 248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,124, 666 16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
666 253,252,234,4,239,15,133,244,41,139,44,252,234,255,15,133,244,41,255,59,133, 667 246,129,233,235,15,132,244,37,255,15,182,75,252,253,248,3,199,68,202,4,237,
667 233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248, 668 252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
668 1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,72,137,40,139,3, 669 133,244,41,139,44,252,234,255,15,133,244,41,255,59,133,233,15,131,244,41,
669 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131, 670 193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,
670 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,255,15,132,244,41, 671 235,15,133,244,253,248,2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,
671 15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,41, 672 232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,
672 139,4,194,252,233,244,167,248,7,128,165,233,235,65,139,142,233,65,137,174, 673 244,1,139,141,233,252,246,129,233,235,255,15,132,244,41,15,182,75,252,253,
673 233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,252,236,15,182, 674 252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,
674 192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139, 675 244,168,248,7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,
675 44,252,234,248,167,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141, 676 182,75,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,
676 233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121, 677 65,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,248,168,
677 253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248, 678 139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,
678 3,15,182,67,252,253,72,139,44,194,72,137,41,139,3,15,182,204,15,182,232,131, 679 233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,
679 195,4,193,232,16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137, 680 244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,
680 12,36,139,141,233,252,246,129,233,235,15,132,244,39,139,12,36,252,233,244, 681 253,72,139,44,194,72,137,41,139,3,15,182,204,15,182,232,131,195,4,193,232,
681 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244, 682 16,65,252,255,36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,
682 252,252,246,129,233,235,15,132,244,39,248,6,137,4,36,199,68,36,4,237,137, 683 233,252,246,129,233,235,15,132,244,39,139,12,36,252,233,244,2,248,5,139,137,
683 108,36,8,139,124,36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137, 684 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
684 92,36,28,232,251,1,34,139,149,233,139,108,36,8,137,193,252,233,244,2,248, 685 233,235,15,132,244,39,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,
685 7,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252,233,244,3, 686 36,24,137,151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,
686 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139, 687 1,34,139,149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,
687 44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239, 688 65,139,134,233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,
688 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,12,202, 689 15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252,234,59,133,
689 72,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 690 233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,
690 238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235, 691 1,252,246,133,233,235,15,133,244,253,248,2,72,139,12,202,72,137,8,139,3,15,
691 15,132,244,40,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139, 692 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,
692 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68, 693 233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,
693 137,60,36,69,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233, 694 75,252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,
694 235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248, 695 233,137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,
695 59,133,233,15,135,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,72, 696 199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,
696 139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139, 697 2,139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,
697 60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 698 251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,
698 238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,137,252,253,137,92, 699 137,47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,
699 36,28,232,251,1,35,139,149,233,15,182,75,252,253,252,233,244,1,248,7,255, 700 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,
700 128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252,233,244,2,255, 701 24,137,151,233,137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,35,
701 3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,57,141,84,202,8, 702 139,149,233,15,182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,
702 137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65, 703 139,134,233,65,137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,
703 252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,129,121,253, 704 124,253,202,4,239,139,44,202,15,133,244,58,141,84,202,8,137,90,252,252,139,
704 252,252,239,15,133,244,29,248,58,139,90,252,252,252,247,195,237,15,133,244,
705 253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,
706 41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,
707 248,3,139,68,36,4,128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,
708 182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,
709 195,237,15,133,244,4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,
710 252,248,69,139,191,233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,
711 252,247,195,237,15,133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,
712 1,248,8,129,195,239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,
713 65,252,240,72,137,41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,
714 65,252,252,129,252,248,239,184,237,15,133,244,29,137,202,137,90,252,252,139,
715 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238, 705 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,
716 255,68,137,60,36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68, 706 255,141,76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
717 139,181,233,131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65, 707 244,29,248,59,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,
718 129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248,255,73,139,44, 708 252,248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,73,
719 199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,67,252, 709 137,47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,
720 254,141,156,253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,3,15,182,204, 710 4,128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,
721 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,192,1,255, 711 182,205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,
722 137,68,202,252,248,255,252,233,244,1,248,5,68,41,252,240,248,6,59,133,233, 712 244,4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,
723 15,135,244,3,68,105,252,248,239,68,3,189,233,65,129,191,233,239,15,132,244, 713 191,233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247,195,237,
724 253,70,141,116,48,1,73,139,175,233,73,139,135,233,72,137,44,202,72,137,68, 714 15,133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248,8,129,195,
725 202,8,68,137,116,202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6, 715 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
726 255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129,124,253, 716 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
727 202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133,244,251, 717 252,248,239,184,237,15,133,244,29,137,202,137,90,252,252,139,157,233,139,
728 128,189,233,235,15,133,244,251,141,156,253,131,233,199,68,202,252,248,0,0, 718 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,68,137,60,
729 0,0,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 719 36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,139,181,233,
730 252,238,248,5,198,67,252,252,235,141,156,253,131,233,198,3,235,252,233,244, 720 131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,129,124,253,
731 1,255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253,194,233,141,12, 721 199,4,239,15,132,244,250,255,219,68,202,252,248,255,73,139,44,199,72,137,
732 202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248, 722 108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,67,252,254,141,156,
733 65,57,215,15,131,244,248,248,1,73,139,71,252,248,65,131,199,8,72,137,1,131, 723 253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,3,15,182,204,15,182,232,
734 193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,237, 724 131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,192,1,255,137,68,202,
735 131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,15, 725 252,248,255,252,233,244,1,248,5,68,41,252,240,248,6,59,133,233,15,135,244,
736 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,0, 726 3,68,105,252,248,239,68,3,189,233,65,129,191,233,239,15,132,244,253,70,141,
737 0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137, 727 116,48,1,73,139,175,233,73,139,135,233,72,137,44,202,72,137,68,202,8,68,137,
738 108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255,73,139,71, 728 116,202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,
739 252,248,65,131,199,8,72,137,1,131,193,8,65,57,215,15,130,244,6,252,233,244, 729 202,252,236,239,15,133,244,251,139,108,202,232,129,124,253,202,252,244,239,
740 3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116,36,4,131,252, 730 15,133,244,251,129,124,253,202,252,252,239,15,133,244,251,128,189,233,235,
741 238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,244, 731 15,133,244,251,141,156,253,131,233,199,68,202,252,248,0,0,0,0,248,1,139,3,
742 6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133, 732 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,198,
743 244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248,2,73,139,44,15, 733 67,252,252,235,141,156,253,131,233,198,3,235,252,233,244,1,255,15,182,252,
744 73,137,111,252,248,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4, 734 236,15,182,192,68,137,60,36,68,141,188,253,194,233,141,12,202,68,43,122,252,
745 15,182,107,252,255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106, 735 252,133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,
746 252,248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252, 736 248,248,1,73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,57,252,233,15,
747 247,209,141,20,202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3, 737 131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,
748 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255, 738 15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,
749 65,199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192, 739 232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,
750 1,252,233,244,5,248,7,141,171,233,252,247,197,237,15,133,244,14,41,252,234, 740 248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,
751 255,1,252,233,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233, 741 24,1,200,59,133,233,15,135,244,253,248,6,255,73,139,71,252,248,65,131,199,
752 1,15,132,244,147,255,141,12,202,255,129,121,253,4,239,15,133,244,255,255, 742 8,72,137,1,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
753 129,121,253,12,239,15,133,244,59,129,121,253,20,239,15,133,244,59,139,41, 743 137,141,233,137,92,36,28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,
754 131,121,16,0,15,140,244,251,255,129,121,253,12,239,15,133,244,164,129,121, 744 232,251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,
755 253,20,239,15,133,244,164,255,139,105,16,133,252,237,15,136,244,251,3,41, 745 255,248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,
756 15,128,244,247,137,41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244, 746 13,65,137,215,131,232,1,15,132,244,249,248,2,73,139,44,15,73,137,111,252,
757 253,248,1,248,6,141,156,253,131,233,255,141,156,253,131,233,15,183,67,252, 747 248,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,
758 254,15,142,245,248,1,248,6,255,15,143,244,253,248,6,141,156,253,131,233,248, 748 255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,
759 1,255,248,7,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 749 5,56,67,252,255,15,135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,
760 252,238,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244,7,255,141,156,253, 750 202,68,139,122,252,248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,
761 131,233,15,183,67,252,254,15,141,245,255,15,140,244,7,255,252,233,244,6,248, 751 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,
762 9,255,129,121,253,4,239,255,15,131,244,59,129,121,253,12,239,15,131,244,59, 752 252,237,65,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,
763 255,129,121,253,12,239,15,131,244,164,129,121,253,20,239,15,131,244,164,255, 753 5,248,7,141,171,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,
764 139,105,20,255,129,252,253,239,15,131,244,59,255,252,242,15,16,1,252,242, 754 255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,
765 15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244, 755 148,255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,
766 249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221, 756 239,15,133,244,60,129,121,253,20,239,15,133,244,60,139,41,131,121,16,0,15,
767 65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255, 757 140,244,251,255,129,121,253,12,239,15,133,244,165,129,121,253,20,239,15,133,
768 221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131, 758 244,165,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,
769 244,7,255,15,131,244,248,141,156,253,131,233,255,141,156,253,131,233,15,183, 759 41,255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,
770 67,252,254,15,131,245,255,15,130,244,7,255,15,130,244,248,141,156,253,131, 760 156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15,142,245,248,
771 233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252, 761 1,248,6,255,15,143,244,253,248,6,141,156,253,131,233,248,1,255,248,7,139,
772 253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233, 762 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,
773 245,255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139, 763 255,3,41,15,128,244,1,137,41,255,15,141,244,7,255,141,156,253,131,233,15,
774 142,233,139,4,129,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174, 764 183,67,252,254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,
775 233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156, 765 121,253,4,239,255,15,131,244,60,129,121,253,12,239,15,131,244,60,255,129,
776 253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 766 121,253,12,239,15,131,244,165,129,121,253,20,239,15,131,244,165,255,139,105,
777 252,238,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15, 767 20,255,129,252,253,239,15,131,244,60,255,252,242,15,16,1,252,242,15,16,73,
778 132,244,149,255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135, 768 8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,
779 244,24,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252, 769 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,
780 233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252, 770 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,
781 233,244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252, 771 15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,7,255,
782 68,137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,23,137, 772 15,131,244,248,141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,
783 209,137,194,15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57, 773 254,15,131,245,255,15,130,244,7,255,15,130,244,248,141,156,253,131,233,255,
784 209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137, 774 248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,
785 120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68, 775 15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,
786 139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 776 141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,233,
787 252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233, 777 139,4,129,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,233,76,137,
788 244,2,255,139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248, 778 36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,253,131,233,
789 137,149,233,141,136,233,59,141,233,137,133,233,255,76,137,252,254,137,252, 779 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
790 239,255,15,135,244,22,65,199,134,233,237,255,65,252,255,215,255,65,252,255, 780 137,221,209,252,237,129,229,239,102,65,131,172,253,46,233,1,15,132,244,150,
791 150,233,255,65,199,134,233,237,139,149,233,141,12,194,252,247,217,3,141,233, 781 255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,244,24,15,182,
792 139,90,252,252,252,233,244,12,255,254,0 782 139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,233,245,255,
783 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
784 255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,68,137,120,
785 252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,23,137,209,137,194,
786 15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
787 249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,120,4,131,192,
788 8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,139,187,233,
789 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
790 248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,
791 139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,137,149,233,
792 141,136,233,59,141,233,137,133,233,255,76,137,252,254,137,252,239,255,15,
793 135,244,22,65,199,134,233,237,255,65,252,255,215,255,65,252,255,150,233,255,
794 65,199,134,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,
795 252,252,233,244,12,255,254,0
793}; 796};
794 797
795enum { 798enum {
@@ -840,6 +843,7 @@ enum {
840 GLOB_vmeta_arith_vvo, 843 GLOB_vmeta_arith_vvo,
841 GLOB_vmeta_arith_vv, 844 GLOB_vmeta_arith_vv,
842 GLOB_vmeta_len, 845 GLOB_vmeta_len,
846 GLOB_BC_LEN_Z,
843 GLOB_vmeta_call_ra, 847 GLOB_vmeta_call_ra,
844 GLOB_BC_CALLT_Z, 848 GLOB_BC_CALLT_Z,
845 GLOB_vmeta_for, 849 GLOB_vmeta_for,
@@ -1001,6 +1005,7 @@ static const char *const globnames[] = {
1001 "vmeta_arith_vvo", 1005 "vmeta_arith_vvo",
1002 "vmeta_arith_vv", 1006 "vmeta_arith_vv",
1003 "vmeta_len", 1007 "vmeta_len",
1008 "BC_LEN_Z",
1004 "vmeta_call_ra", 1009 "vmeta_call_ra",
1005 "BC_CALLT_Z", 1010 "BC_CALLT_Z",
1006 "vmeta_for", 1011 "vmeta_for",
@@ -1216,637 +1221,642 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1216#if LJ_DUALNUM 1221#if LJ_DUALNUM
1217 dasm_put(Dst, 1474); 1222 dasm_put(Dst, 1474);
1218#endif 1223#endif
1219 dasm_put(Dst, 1522, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base), Dt1(->base)); 1224 dasm_put(Dst, 1522, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base));
1220 dasm_put(Dst, 1654, Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND); 1225#ifdef LUAJIT_ENABLE_LUA52COMPAT
1221 dasm_put(Dst, 1838, 1+1, ~LJ_TNUMX); 1226 dasm_put(Dst, 1624);
1227#else
1228 dasm_put(Dst, 1643);
1229#endif
1230 dasm_put(Dst, 1648, Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND);
1231 dasm_put(Dst, 1834, 1+1, ~LJ_TNUMX);
1222 if (cmov) { 1232 if (cmov) {
1223 dasm_put(Dst, 1883); 1233 dasm_put(Dst, 1903);
1224 } else { 1234 } else {
1225 dasm_put(Dst, 1887); 1235 dasm_put(Dst, 1907);
1226 } 1236 }
1227 dasm_put(Dst, 1896, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); 1237 dasm_put(Dst, 1916, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL);
1228 dasm_put(Dst, 1975, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); 1238 dasm_put(Dst, 1995, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next));
1229 dasm_put(Dst, 2033, LJ_TNIL, LJ_TUDATA, LJ_TNUMX, LJ_TISNUM, LJ_TLIGHTUD); 1239 dasm_put(Dst, 2053, LJ_TNIL, LJ_TUDATA, LJ_TNUMX, LJ_TISNUM, LJ_TLIGHTUD);
1230 dasm_put(Dst, 2099, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB); 1240 dasm_put(Dst, 2119, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB);
1231 dasm_put(Dst, 2170, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB); 1241 dasm_put(Dst, 2190, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB);
1232 dasm_put(Dst, 2260, 1+1, LJ_TISNUM); 1242 dasm_put(Dst, 2280, 1+1, LJ_TISNUM);
1233 if (LJ_DUALNUM) { 1243 if (LJ_DUALNUM) {
1234 dasm_put(Dst, 2274); 1244 dasm_put(Dst, 2294);
1235 } else { 1245 } else {
1236 dasm_put(Dst, 2291); 1246 dasm_put(Dst, 2311);
1237 } 1247 }
1238 if (sse) { 1248 if (sse) {
1239 dasm_put(Dst, 2296); 1249 dasm_put(Dst, 2316);
1240 } else { 1250 } else {
1241 dasm_put(Dst, 2306); 1251 dasm_put(Dst, 2326);
1242 } 1252 }
1243 dasm_put(Dst, 2313, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1253 dasm_put(Dst, 2333, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1244 dasm_put(Dst, 2382, Dt1(->base)); 1254 dasm_put(Dst, 2402, Dt1(->base));
1245 if (LJ_DUALNUM) { 1255 if (LJ_DUALNUM) {
1246 dasm_put(Dst, 2408); 1256 dasm_put(Dst, 2428);
1247 } else { 1257 } else {
1248 dasm_put(Dst, 2413); 1258 dasm_put(Dst, 2433);
1249 } 1259 }
1250 dasm_put(Dst, 2418, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2); 1260 dasm_put(Dst, 2438, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2);
1251 dasm_put(Dst, 2510, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1261 dasm_put(Dst, 2530, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1252#ifdef LUAJIT_ENABLE_LUA52COMPAT 1262#ifdef LUAJIT_ENABLE_LUA52COMPAT
1253 dasm_put(Dst, 2557, Dt6(->metatable)); 1263 dasm_put(Dst, 2577, Dt6(->metatable));
1254#endif 1264#endif
1255 dasm_put(Dst, 2566, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1265 dasm_put(Dst, 2586, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1256 if (LJ_DUALNUM) { 1266 if (LJ_DUALNUM) {
1257 dasm_put(Dst, 2552); 1267 dasm_put(Dst, 2572);
1258 } else { 1268 } else {
1259 dasm_put(Dst, 2291); 1269 dasm_put(Dst, 2311);
1260 } 1270 }
1261 dasm_put(Dst, 2621); 1271 dasm_put(Dst, 2641);
1262 if (LJ_DUALNUM) { 1272 if (LJ_DUALNUM) {
1263 dasm_put(Dst, 2626, LJ_TISNUM); 1273 dasm_put(Dst, 2646, LJ_TISNUM);
1264 } else if (sse) { 1274 } else if (sse) {
1265 dasm_put(Dst, 2642, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1275 dasm_put(Dst, 2662, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1266 } else { 1276 } else {
1267 } 1277 }
1268 dasm_put(Dst, 2675, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1278 dasm_put(Dst, 2695, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1269 dasm_put(Dst, 2537, 1+1, LJ_TTAB); 1279 dasm_put(Dst, 2557, 1+1, LJ_TTAB);
1270#ifdef LUAJIT_ENABLE_LUA52COMPAT 1280#ifdef LUAJIT_ENABLE_LUA52COMPAT
1271 dasm_put(Dst, 2557, Dt6(->metatable)); 1281 dasm_put(Dst, 2577, Dt6(->metatable));
1272#endif 1282#endif
1273 dasm_put(Dst, 2752, Dt8(->upvalue[0]), LJ_TFUNC); 1283 dasm_put(Dst, 2772, Dt8(->upvalue[0]), LJ_TFUNC);
1274 if (LJ_DUALNUM) { 1284 if (LJ_DUALNUM) {
1275 dasm_put(Dst, 2773, LJ_TISNUM); 1285 dasm_put(Dst, 2793, LJ_TISNUM);
1276 } else if (sse) { 1286 } else if (sse) {
1277 dasm_put(Dst, 2785); 1287 dasm_put(Dst, 2805);
1278 } else { 1288 } else {
1279 dasm_put(Dst, 2795); 1289 dasm_put(Dst, 2815);
1280 } 1290 }
1281 dasm_put(Dst, 2802, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1291 dasm_put(Dst, 2822, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1282 dasm_put(Dst, 2867, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1292 dasm_put(Dst, 2887, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1283 dasm_put(Dst, 2956, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1293 dasm_put(Dst, 2976, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1284 dasm_put(Dst, 3043, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1294 dasm_put(Dst, 3063, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1285 dasm_put(Dst, 3158, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1295 dasm_put(Dst, 3178, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1286 dasm_put(Dst, 3253, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1296 dasm_put(Dst, 3273, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1287 dasm_put(Dst, 3319, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1297 dasm_put(Dst, 3339, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1288 dasm_put(Dst, 3408, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1298 dasm_put(Dst, 3428, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1289 dasm_put(Dst, 3518, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1299 dasm_put(Dst, 3538, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1290 if (!LJ_DUALNUM) { 1300 if (!LJ_DUALNUM) {
1291 dasm_put(Dst, 3545); 1301 dasm_put(Dst, 3565);
1292 } 1302 }
1293 if (sse) { 1303 if (sse) {
1294 dasm_put(Dst, 3548); 1304 dasm_put(Dst, 3568);
1295 } 1305 }
1296 dasm_put(Dst, 3563, 1+1); 1306 dasm_put(Dst, 3583, 1+1);
1297 if (LJ_DUALNUM) { 1307 if (LJ_DUALNUM) {
1298 dasm_put(Dst, 3574, LJ_TISNUM, LJ_TISNUM); 1308 dasm_put(Dst, 3594, LJ_TISNUM, LJ_TISNUM);
1299 } else { 1309 } else {
1300 dasm_put(Dst, 3654, LJ_TISNUM); 1310 dasm_put(Dst, 3674, LJ_TISNUM);
1301 } 1311 }
1302 if (sse) { 1312 if (sse) {
1303 dasm_put(Dst, 3664, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1313 dasm_put(Dst, 3684, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1304 } else { 1314 } else {
1305 dasm_put(Dst, 3695); 1315 dasm_put(Dst, 3715);
1306 } 1316 }
1307 dasm_put(Dst, 3712, 1+1, FRAME_TYPE, LJ_TNIL); 1317 dasm_put(Dst, 3732, 1+1, FRAME_TYPE, LJ_TNIL);
1308 if (LJ_DUALNUM) { 1318 if (LJ_DUALNUM) {
1309 dasm_put(Dst, 3809, LJ_TISNUM); 1319 dasm_put(Dst, 3829, LJ_TISNUM);
1310 } else { 1320 } else {
1311 dasm_put(Dst, 3654, LJ_TISNUM); 1321 dasm_put(Dst, 3674, LJ_TISNUM);
1312 } 1322 }
1313 if (sse) { 1323 if (sse) {
1314 dasm_put(Dst, 3831); 1324 dasm_put(Dst, 3851);
1315 if (LJ_DUALNUM) { 1325 if (LJ_DUALNUM) {
1316 dasm_put(Dst, 3840); 1326 dasm_put(Dst, 3860);
1317 } 1327 }
1318 dasm_put(Dst, 2301); 1328 dasm_put(Dst, 2321);
1319 } else { 1329 } else {
1320 dasm_put(Dst, 3874); 1330 dasm_put(Dst, 3894);
1321 if (LJ_DUALNUM) { 1331 if (LJ_DUALNUM) {
1322 } else { 1332 } else {
1323 dasm_put(Dst, 2308); 1333 dasm_put(Dst, 2328);
1324 } 1334 }
1325 } 1335 }
1326 dasm_put(Dst, 3880); 1336 dasm_put(Dst, 3900);
1327 if (LJ_DUALNUM) { 1337 if (LJ_DUALNUM) {
1328 dasm_put(Dst, 3809, LJ_TISNUM); 1338 dasm_put(Dst, 3829, LJ_TISNUM);
1329 } else { 1339 } else {
1330 dasm_put(Dst, 3654, LJ_TISNUM); 1340 dasm_put(Dst, 3674, LJ_TISNUM);
1331 } 1341 }
1332 if (sse) { 1342 if (sse) {
1333 dasm_put(Dst, 3883); 1343 dasm_put(Dst, 3903);
1334 if (LJ_DUALNUM) { 1344 if (LJ_DUALNUM) {
1335 dasm_put(Dst, 3840); 1345 dasm_put(Dst, 3860);
1336 } 1346 }
1337 dasm_put(Dst, 2301); 1347 dasm_put(Dst, 2321);
1338 } else { 1348 } else {
1339 dasm_put(Dst, 3892); 1349 dasm_put(Dst, 3912);
1340 if (LJ_DUALNUM) { 1350 if (LJ_DUALNUM) {
1341 } else { 1351 } else {
1342 dasm_put(Dst, 2308); 1352 dasm_put(Dst, 2328);
1343 } 1353 }
1344 } 1354 }
1345 if (sse) { 1355 if (sse) {
1346 dasm_put(Dst, 3898, 1+1, LJ_TISNUM); 1356 dasm_put(Dst, 3918, 1+1, LJ_TISNUM);
1347 } else { 1357 } else {
1348 dasm_put(Dst, 3927, 1+1, LJ_TISNUM); 1358 dasm_put(Dst, 3947, 1+1, LJ_TISNUM);
1349 } 1359 }
1350 dasm_put(Dst, 3956, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1360 dasm_put(Dst, 3976, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1351 dasm_put(Dst, 4025, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1361 dasm_put(Dst, 4045, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1352 dasm_put(Dst, 4082, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1362 dasm_put(Dst, 4102, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1353 dasm_put(Dst, 4145, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1363 dasm_put(Dst, 4165, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1354 dasm_put(Dst, 4235); 1364 dasm_put(Dst, 4255);
1355 if (sse) { 1365 if (sse) {
1356 dasm_put(Dst, 4247, 1+1, LJ_TISNUM); 1366 dasm_put(Dst, 4267, 1+1, LJ_TISNUM);
1357 } else { 1367 } else {
1358 } 1368 }
1359 dasm_put(Dst, 4272); 1369 dasm_put(Dst, 4292);
1360 if (sse) { 1370 if (sse) {
1361 dasm_put(Dst, 4286, 1+1, LJ_TISNUM); 1371 dasm_put(Dst, 4306, 1+1, LJ_TISNUM);
1362 } else { 1372 } else {
1363 } 1373 }
1364 dasm_put(Dst, 4311); 1374 dasm_put(Dst, 4331);
1365 if (sse) { 1375 if (sse) {
1366 dasm_put(Dst, 4325, 1+1, LJ_TISNUM); 1376 dasm_put(Dst, 4345, 1+1, LJ_TISNUM);
1367 } else { 1377 } else {
1368 } 1378 }
1369 dasm_put(Dst, 4350); 1379 dasm_put(Dst, 4370);
1370 if (sse) { 1380 if (sse) {
1371 dasm_put(Dst, 4366, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1381 dasm_put(Dst, 4386, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1372 } else { 1382 } else {
1373 dasm_put(Dst, 4405, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1383 dasm_put(Dst, 4425, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1374 } 1384 }
1375 dasm_put(Dst, 4438, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1385 dasm_put(Dst, 4458, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1376 dasm_put(Dst, 4503, 1+1, LJ_TISNUM); 1386 dasm_put(Dst, 4523, 1+1, LJ_TISNUM);
1377 if (sse) { 1387 if (sse) {
1378 dasm_put(Dst, 4602); 1388 dasm_put(Dst, 4622);
1379 } else { 1389 } else {
1380 dasm_put(Dst, 4608); 1390 dasm_put(Dst, 4628);
1381 } 1391 }
1382 dasm_put(Dst, 4615); 1392 dasm_put(Dst, 4635);
1383 if (sse) { 1393 if (sse) {
1384 dasm_put(Dst, 4640); 1394 dasm_put(Dst, 4660);
1385 } else { 1395 } else {
1386 dasm_put(Dst, 4646); 1396 dasm_put(Dst, 4666);
1387 } 1397 }
1388 dasm_put(Dst, 4649, 1+2); 1398 dasm_put(Dst, 4669, 1+2);
1389 if (sse) { 1399 if (sse) {
1390 dasm_put(Dst, 4658); 1400 dasm_put(Dst, 4678);
1391 } else { 1401 } else {
1392 dasm_put(Dst, 4666); 1402 dasm_put(Dst, 4686);
1393 } 1403 }
1394 dasm_put(Dst, 4674); 1404 dasm_put(Dst, 4694);
1395 if (sse) { 1405 if (sse) {
1396 dasm_put(Dst, 4677, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1406 dasm_put(Dst, 4697, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1397 } else { 1407 } else {
1398 dasm_put(Dst, 4704); 1408 dasm_put(Dst, 4724);
1399 } 1409 }
1400 dasm_put(Dst, 4721); 1410 dasm_put(Dst, 4741);
1401 if (sse) { 1411 if (sse) {
1402 dasm_put(Dst, 4737, 1+1, LJ_TISNUM); 1412 dasm_put(Dst, 4757, 1+1, LJ_TISNUM);
1403 } else { 1413 } else {
1404 dasm_put(Dst, 4762, 1+1, LJ_TISNUM); 1414 dasm_put(Dst, 4782, 1+1, LJ_TISNUM);
1405 } 1415 }
1406 dasm_put(Dst, 4784); 1416 dasm_put(Dst, 4804);
1407 if (sse) { 1417 if (sse) {
1408 dasm_put(Dst, 4806); 1418 dasm_put(Dst, 4826);
1409 } else { 1419 } else {
1410 dasm_put(Dst, 4832); 1420 dasm_put(Dst, 4852);
1411 } 1421 }
1412 dasm_put(Dst, 4849, 1+2); 1422 dasm_put(Dst, 4869, 1+2);
1413 if (sse) { 1423 if (sse) {
1414 dasm_put(Dst, 4889); 1424 dasm_put(Dst, 4909);
1415 } else { 1425 } else {
1416 dasm_put(Dst, 4897); 1426 dasm_put(Dst, 4917);
1417 } 1427 }
1418 dasm_put(Dst, 4907, 2+1, LJ_TISNUM, LJ_TISNUM); 1428 dasm_put(Dst, 4927, 2+1, LJ_TISNUM, LJ_TISNUM);
1419 if (sse) { 1429 if (sse) {
1420 dasm_put(Dst, 4959, 2+1, LJ_TISNUM, LJ_TISNUM); 1430 dasm_put(Dst, 4979, 2+1, LJ_TISNUM, LJ_TISNUM);
1421 } else { 1431 } else {
1422 dasm_put(Dst, 5006, 2+1, LJ_TISNUM, LJ_TISNUM); 1432 dasm_put(Dst, 5026, 2+1, LJ_TISNUM, LJ_TISNUM);
1423 } 1433 }
1424 dasm_put(Dst, 5047, LJ_TISNUM); 1434 dasm_put(Dst, 5067, LJ_TISNUM);
1425 if (LJ_DUALNUM) { 1435 if (LJ_DUALNUM) {
1426 dasm_put(Dst, 5060, LJ_TISNUM); 1436 dasm_put(Dst, 5080, LJ_TISNUM);
1427 if (sse) { 1437 if (sse) {
1428 dasm_put(Dst, 4602); 1438 dasm_put(Dst, 4622);
1429 } else { 1439 } else {
1430 } 1440 }
1431 dasm_put(Dst, 5110); 1441 dasm_put(Dst, 5130);
1432 } else { 1442 } else {
1433 dasm_put(Dst, 2291); 1443 dasm_put(Dst, 2311);
1434 } 1444 }
1435 if (sse) { 1445 if (sse) {
1436 dasm_put(Dst, 5121, LJ_TISNUM); 1446 dasm_put(Dst, 5141, LJ_TISNUM);
1437 if (LJ_DUALNUM) { 1447 if (LJ_DUALNUM) {
1438 dasm_put(Dst, 5142); 1448 dasm_put(Dst, 5162);
1439 } else { 1449 } else {
1440 dasm_put(Dst, 2291); 1450 dasm_put(Dst, 2311);
1441 } 1451 }
1442 dasm_put(Dst, 5163); 1452 dasm_put(Dst, 5183);
1443 } else { 1453 } else {
1444 } 1454 }
1445 dasm_put(Dst, 5188, LJ_TISNUM); 1455 dasm_put(Dst, 5208, LJ_TISNUM);
1446 if (LJ_DUALNUM) { 1456 if (LJ_DUALNUM) {
1447 dasm_put(Dst, 5201, LJ_TISNUM); 1457 dasm_put(Dst, 5221, LJ_TISNUM);
1448 if (sse) { 1458 if (sse) {
1449 dasm_put(Dst, 4602); 1459 dasm_put(Dst, 4622);
1450 } else { 1460 } else {
1451 } 1461 }
1452 dasm_put(Dst, 5110); 1462 dasm_put(Dst, 5130);
1453 } else { 1463 } else {
1454 dasm_put(Dst, 2291); 1464 dasm_put(Dst, 2311);
1455 } 1465 }
1456 if (sse) { 1466 if (sse) {
1457 dasm_put(Dst, 5121, LJ_TISNUM); 1467 dasm_put(Dst, 5141, LJ_TISNUM);
1458 if (LJ_DUALNUM) { 1468 if (LJ_DUALNUM) {
1459 dasm_put(Dst, 5142); 1469 dasm_put(Dst, 5162);
1460 } else { 1470 } else {
1461 dasm_put(Dst, 2291); 1471 dasm_put(Dst, 2311);
1462 } 1472 }
1463 dasm_put(Dst, 5251); 1473 dasm_put(Dst, 5271);
1464 } else { 1474 } else {
1465 } 1475 }
1466 if (!sse) { 1476 if (!sse) {
1467 dasm_put(Dst, 5276); 1477 dasm_put(Dst, 5296);
1468 } 1478 }
1469 dasm_put(Dst, 5285, 1+1, LJ_TSTR); 1479 dasm_put(Dst, 5305, 1+1, LJ_TSTR);
1470 if (LJ_DUALNUM) { 1480 if (LJ_DUALNUM) {
1471 dasm_put(Dst, 5307, Dt5(->len)); 1481 dasm_put(Dst, 5327, Dt5(->len));
1472 } else if (sse) { 1482 } else if (sse) {
1473 dasm_put(Dst, 5315, Dt5(->len)); 1483 dasm_put(Dst, 5335, Dt5(->len));
1474 } else { 1484 } else {
1475 dasm_put(Dst, 5326, Dt5(->len)); 1485 dasm_put(Dst, 5346, Dt5(->len));
1476 } 1486 }
1477 dasm_put(Dst, 5334, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1487 dasm_put(Dst, 5354, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1478 if (LJ_DUALNUM) { 1488 if (LJ_DUALNUM) {
1479 dasm_put(Dst, 5310); 1489 dasm_put(Dst, 5330);
1480 } else if (sse) { 1490 } else if (sse) {
1481 dasm_put(Dst, 5372); 1491 dasm_put(Dst, 5392);
1482 } else { 1492 } else {
1483 dasm_put(Dst, 5382); 1493 dasm_put(Dst, 5402);
1484 } 1494 }
1485 dasm_put(Dst, 5393, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1495 dasm_put(Dst, 5413, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1486 if (LJ_DUALNUM) { 1496 if (LJ_DUALNUM) {
1487 dasm_put(Dst, 5426); 1497 dasm_put(Dst, 5446);
1488 } else if (sse) { 1498 } else if (sse) {
1489 dasm_put(Dst, 5449); 1499 dasm_put(Dst, 5469);
1490 } else { 1500 } else {
1491 dasm_put(Dst, 5475); 1501 dasm_put(Dst, 5495);
1492 } 1502 }
1493 dasm_put(Dst, 5499, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1503 dasm_put(Dst, 5519, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1494 if (LJ_DUALNUM) { 1504 if (LJ_DUALNUM) {
1495 dasm_put(Dst, 5608); 1505 dasm_put(Dst, 5628);
1496 } else if (sse) { 1506 } else if (sse) {
1497 dasm_put(Dst, 5620); 1507 dasm_put(Dst, 5640);
1498 } else { 1508 } else {
1499 dasm_put(Dst, 5635); 1509 dasm_put(Dst, 5655);
1500 } 1510 }
1501 dasm_put(Dst, 5647, LJ_TSTR, LJ_TISNUM); 1511 dasm_put(Dst, 5667, LJ_TSTR, LJ_TISNUM);
1502 if (LJ_DUALNUM) { 1512 if (LJ_DUALNUM) {
1503 dasm_put(Dst, 2552); 1513 dasm_put(Dst, 2572);
1504 } else { 1514 } else {
1505 dasm_put(Dst, 2291); 1515 dasm_put(Dst, 2311);
1506 } 1516 }
1507 dasm_put(Dst, 5664, Dt5(->len)); 1517 dasm_put(Dst, 5684, Dt5(->len));
1508 if (LJ_DUALNUM) { 1518 if (LJ_DUALNUM) {
1509 dasm_put(Dst, 5674); 1519 dasm_put(Dst, 5694);
1510 } else if (sse) { 1520 } else if (sse) {
1511 dasm_put(Dst, 5678); 1521 dasm_put(Dst, 5698);
1512 } else { 1522 } else {
1513 } 1523 }
1514 dasm_put(Dst, 5685, sizeof(GCstr)-1); 1524 dasm_put(Dst, 5705, sizeof(GCstr)-1);
1515 dasm_put(Dst, 5760, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1525 dasm_put(Dst, 5780, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1516 dasm_put(Dst, 5821, LJ_TSTR, LJ_TISNUM); 1526 dasm_put(Dst, 5841, LJ_TSTR, LJ_TISNUM);
1517 if (LJ_DUALNUM) { 1527 if (LJ_DUALNUM) {
1518 dasm_put(Dst, 5838); 1528 dasm_put(Dst, 5858);
1519 } else if (sse) { 1529 } else if (sse) {
1520 dasm_put(Dst, 5846); 1530 dasm_put(Dst, 5866);
1521 } else { 1531 } else {
1522 dasm_put(Dst, 5857); 1532 dasm_put(Dst, 5877);
1523 } 1533 }
1524 dasm_put(Dst, 5873, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1534 dasm_put(Dst, 5893, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1525 dasm_put(Dst, 5941, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1535 dasm_put(Dst, 5961, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1526 dasm_put(Dst, 6008, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1536 dasm_put(Dst, 6028, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1527 dasm_put(Dst, 6081, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1537 dasm_put(Dst, 6101, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1528 dasm_put(Dst, 6166, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1538 dasm_put(Dst, 6186, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1529 dasm_put(Dst, 6240, 1+1, LJ_TTAB); 1539 dasm_put(Dst, 6260, 1+1, LJ_TTAB);
1530 if (LJ_DUALNUM) { 1540 if (LJ_DUALNUM) {
1531 dasm_put(Dst, 6307); 1541 dasm_put(Dst, 6327);
1532 } else if (sse) { 1542 } else if (sse) {
1533 dasm_put(Dst, 6314); 1543 dasm_put(Dst, 6334);
1534 } else { 1544 } else {
1535 } 1545 }
1536 dasm_put(Dst, 6324, 1+1, LJ_TISNUM); 1546 dasm_put(Dst, 6344, 1+1, LJ_TISNUM);
1537 if (LJ_DUALNUM) { 1547 if (LJ_DUALNUM) {
1538 dasm_put(Dst, 6340); 1548 dasm_put(Dst, 6360);
1539 } else { 1549 } else {
1540 dasm_put(Dst, 2291); 1550 dasm_put(Dst, 2311);
1541 } 1551 }
1542 if (sse) { 1552 if (sse) {
1543 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1553 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1544 } else { 1554 } else {
1545 } 1555 }
1546 dasm_put(Dst, 106); 1556 dasm_put(Dst, 106);
1547 if (LJ_DUALNUM || sse) { 1557 if (LJ_DUALNUM || sse) {
1548 if (!sse) { 1558 if (!sse) {
1549 } 1559 }
1550 dasm_put(Dst, 6381); 1560 dasm_put(Dst, 6401);
1551 } else { 1561 } else {
1552 } 1562 }
1553 dasm_put(Dst, 6386, 1+1); 1563 dasm_put(Dst, 6406, 1+1);
1554 if (sse) { 1564 if (sse) {
1555 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1565 dasm_put(Dst, 6417, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1556 } else { 1566 } else {
1557 dasm_put(Dst, 6407); 1567 dasm_put(Dst, 6427);
1558 } 1568 }
1559 dasm_put(Dst, 2268, LJ_TISNUM); 1569 dasm_put(Dst, 2288, LJ_TISNUM);
1560 if (LJ_DUALNUM) { 1570 if (LJ_DUALNUM) {
1561 dasm_put(Dst, 6415); 1571 dasm_put(Dst, 6435);
1562 } else { 1572 } else {
1563 dasm_put(Dst, 2291); 1573 dasm_put(Dst, 2311);
1564 } 1574 }
1565 if (sse) { 1575 if (sse) {
1566 dasm_put(Dst, 6432); 1576 dasm_put(Dst, 6452);
1567 } else { 1577 } else {
1568 } 1578 }
1569 dasm_put(Dst, 6447, LJ_TISNUM); 1579 dasm_put(Dst, 6467, LJ_TISNUM);
1570 if (LJ_DUALNUM) { 1580 if (LJ_DUALNUM) {
1571 dasm_put(Dst, 6472);
1572 } else {
1573 dasm_put(Dst, 6492); 1581 dasm_put(Dst, 6492);
1582 } else {
1583 dasm_put(Dst, 6512);
1574 } 1584 }
1575 if (sse) { 1585 if (sse) {
1576 dasm_put(Dst, 6497); 1586 dasm_put(Dst, 6517);
1577 } else { 1587 } else {
1578 } 1588 }
1579 dasm_put(Dst, 6514, 1+1); 1589 dasm_put(Dst, 6534, 1+1);
1580 if (sse) { 1590 if (sse) {
1581 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1591 dasm_put(Dst, 6417, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1582 } else { 1592 } else {
1583 dasm_put(Dst, 6407); 1593 dasm_put(Dst, 6427);
1584 } 1594 }
1585 dasm_put(Dst, 2268, LJ_TISNUM); 1595 dasm_put(Dst, 2288, LJ_TISNUM);
1586 if (LJ_DUALNUM) { 1596 if (LJ_DUALNUM) {
1587 dasm_put(Dst, 6415); 1597 dasm_put(Dst, 6435);
1588 } else { 1598 } else {
1589 dasm_put(Dst, 2291); 1599 dasm_put(Dst, 2311);
1590 } 1600 }
1591 if (sse) { 1601 if (sse) {
1592 dasm_put(Dst, 6432); 1602 dasm_put(Dst, 6452);
1593 } else { 1603 } else {
1594 } 1604 }
1595 dasm_put(Dst, 6447, LJ_TISNUM); 1605 dasm_put(Dst, 6467, LJ_TISNUM);
1596 if (LJ_DUALNUM) { 1606 if (LJ_DUALNUM) {
1597 dasm_put(Dst, 6532); 1607 dasm_put(Dst, 6552);
1598 } else { 1608 } else {
1599 dasm_put(Dst, 6492); 1609 dasm_put(Dst, 6512);
1600 } 1610 }
1601 if (sse) { 1611 if (sse) {
1602 dasm_put(Dst, 6552); 1612 dasm_put(Dst, 6572);
1603 } else { 1613 } else {
1604 } 1614 }
1605 dasm_put(Dst, 6569, 1+1); 1615 dasm_put(Dst, 6589, 1+1);
1606 if (sse) { 1616 if (sse) {
1607 dasm_put(Dst, 6397, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1617 dasm_put(Dst, 6417, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1608 } else { 1618 } else {
1609 dasm_put(Dst, 6407); 1619 dasm_put(Dst, 6427);
1610 } 1620 }
1611 dasm_put(Dst, 2268, LJ_TISNUM); 1621 dasm_put(Dst, 2288, LJ_TISNUM);
1612 if (LJ_DUALNUM) { 1622 if (LJ_DUALNUM) {
1613 dasm_put(Dst, 6415); 1623 dasm_put(Dst, 6435);
1614 } else { 1624 } else {
1615 dasm_put(Dst, 2291); 1625 dasm_put(Dst, 2311);
1616 } 1626 }
1617 if (sse) { 1627 if (sse) {
1618 dasm_put(Dst, 6432); 1628 dasm_put(Dst, 6452);
1619 } else { 1629 } else {
1620 } 1630 }
1621 dasm_put(Dst, 6447, LJ_TISNUM); 1631 dasm_put(Dst, 6467, LJ_TISNUM);
1622 if (LJ_DUALNUM) { 1632 if (LJ_DUALNUM) {
1623 dasm_put(Dst, 6587); 1633 dasm_put(Dst, 6607);
1624 } else { 1634 } else {
1625 dasm_put(Dst, 6492); 1635 dasm_put(Dst, 6512);
1626 } 1636 }
1627 if (sse) { 1637 if (sse) {
1628 dasm_put(Dst, 6607); 1638 dasm_put(Dst, 6627);
1629 } else { 1639 } else {
1630 } 1640 }
1631 dasm_put(Dst, 6624, 1+1, LJ_TISNUM); 1641 dasm_put(Dst, 6644, 1+1, LJ_TISNUM);
1632 if (LJ_DUALNUM) { 1642 if (LJ_DUALNUM) {
1633 dasm_put(Dst, 6415); 1643 dasm_put(Dst, 6435);
1634 } else { 1644 } else {
1635 dasm_put(Dst, 2291); 1645 dasm_put(Dst, 2311);
1636 } 1646 }
1637 if (sse) { 1647 if (sse) {
1638 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1648 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1639 } else { 1649 } else {
1640 } 1650 }
1641 dasm_put(Dst, 6647, 1+1, LJ_TISNUM); 1651 dasm_put(Dst, 6667, 1+1, LJ_TISNUM);
1642 if (LJ_DUALNUM) { 1652 if (LJ_DUALNUM) {
1643 dasm_put(Dst, 6415); 1653 dasm_put(Dst, 6435);
1644 } else { 1654 } else {
1645 dasm_put(Dst, 2291); 1655 dasm_put(Dst, 2311);
1646 } 1656 }
1647 if (sse) { 1657 if (sse) {
1648 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1658 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1649 } else { 1659 } else {
1650 } 1660 }
1651 dasm_put(Dst, 6671); 1661 dasm_put(Dst, 6691);
1652 if (LJ_DUALNUM) { 1662 if (LJ_DUALNUM) {
1653 dasm_put(Dst, 6381); 1663 dasm_put(Dst, 6401);
1654 } else if (sse) { 1664 } else if (sse) {
1655 dasm_put(Dst, 6677); 1665 dasm_put(Dst, 6697);
1656 } else { 1666 } else {
1657 } 1667 }
1658 dasm_put(Dst, 6689); 1668 dasm_put(Dst, 6709);
1659 if (LJ_DUALNUM) { 1669 if (LJ_DUALNUM) {
1660 dasm_put(Dst, 6700, 1+1, LJ_TISNUM); 1670 dasm_put(Dst, 6720, 1+1, LJ_TISNUM);
1661 if (LJ_DUALNUM) { 1671 if (LJ_DUALNUM) {
1662 dasm_put(Dst, 6415); 1672 dasm_put(Dst, 6435);
1663 } else { 1673 } else {
1664 dasm_put(Dst, 2291); 1674 dasm_put(Dst, 2311);
1665 } 1675 }
1666 if (sse) { 1676 if (sse) {
1667 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1677 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1668 } else { 1678 } else {
1669 } 1679 }
1670 dasm_put(Dst, 6716, LJ_TISNUM); 1680 dasm_put(Dst, 6736, LJ_TISNUM);
1671 } else if (sse) { 1681 } else if (sse) {
1672 dasm_put(Dst, 6731, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1682 dasm_put(Dst, 6751, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1673 } else { 1683 } else {
1674 } 1684 }
1675 dasm_put(Dst, 6798); 1685 dasm_put(Dst, 6818);
1676 if (LJ_DUALNUM) { 1686 if (LJ_DUALNUM) {
1677 dasm_put(Dst, 6805, 1+1, LJ_TISNUM); 1687 dasm_put(Dst, 6825, 1+1, LJ_TISNUM);
1678 if (LJ_DUALNUM) { 1688 if (LJ_DUALNUM) {
1679 dasm_put(Dst, 6415); 1689 dasm_put(Dst, 6435);
1680 } else { 1690 } else {
1681 dasm_put(Dst, 2291); 1691 dasm_put(Dst, 2311);
1682 } 1692 }
1683 if (sse) { 1693 if (sse) {
1684 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1694 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1685 } else { 1695 } else {
1686 } 1696 }
1687 dasm_put(Dst, 6716, LJ_TISNUM); 1697 dasm_put(Dst, 6736, LJ_TISNUM);
1688 } else if (sse) { 1698 } else if (sse) {
1689 dasm_put(Dst, 6821, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1699 dasm_put(Dst, 6841, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1690 } else { 1700 } else {
1691 } 1701 }
1692 dasm_put(Dst, 6888); 1702 dasm_put(Dst, 6908);
1693 if (LJ_DUALNUM) { 1703 if (LJ_DUALNUM) {
1694 dasm_put(Dst, 6896, 1+1, LJ_TISNUM); 1704 dasm_put(Dst, 6916, 1+1, LJ_TISNUM);
1695 if (LJ_DUALNUM) { 1705 if (LJ_DUALNUM) {
1696 dasm_put(Dst, 6415); 1706 dasm_put(Dst, 6435);
1697 } else { 1707 } else {
1698 dasm_put(Dst, 2291); 1708 dasm_put(Dst, 2311);
1699 } 1709 }
1700 if (sse) { 1710 if (sse) {
1701 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1711 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1702 } else { 1712 } else {
1703 } 1713 }
1704 dasm_put(Dst, 6716, LJ_TISNUM); 1714 dasm_put(Dst, 6736, LJ_TISNUM);
1705 } else if (sse) { 1715 } else if (sse) {
1706 dasm_put(Dst, 6912, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1716 dasm_put(Dst, 6932, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1707 } else { 1717 } else {
1708 } 1718 }
1709 dasm_put(Dst, 6979); 1719 dasm_put(Dst, 6999);
1710 if (LJ_DUALNUM) { 1720 if (LJ_DUALNUM) {
1711 dasm_put(Dst, 6987, 1+1, LJ_TISNUM); 1721 dasm_put(Dst, 7007, 1+1, LJ_TISNUM);
1712 if (LJ_DUALNUM) { 1722 if (LJ_DUALNUM) {
1713 dasm_put(Dst, 6415); 1723 dasm_put(Dst, 6435);
1714 } else { 1724 } else {
1715 dasm_put(Dst, 2291); 1725 dasm_put(Dst, 2311);
1716 } 1726 }
1717 if (sse) { 1727 if (sse) {
1718 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1728 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1719 } else { 1729 } else {
1720 } 1730 }
1721 dasm_put(Dst, 6716, LJ_TISNUM); 1731 dasm_put(Dst, 6736, LJ_TISNUM);
1722 } else if (sse) { 1732 } else if (sse) {
1723 dasm_put(Dst, 7003, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1733 dasm_put(Dst, 7023, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1724 } else { 1734 } else {
1725 } 1735 }
1726 dasm_put(Dst, 7070); 1736 dasm_put(Dst, 7090);
1727 if (LJ_DUALNUM) { 1737 if (LJ_DUALNUM) {
1728 dasm_put(Dst, 7077, 1+1, LJ_TISNUM); 1738 dasm_put(Dst, 7097, 1+1, LJ_TISNUM);
1729 if (LJ_DUALNUM) { 1739 if (LJ_DUALNUM) {
1730 dasm_put(Dst, 6415); 1740 dasm_put(Dst, 6435);
1731 } else { 1741 } else {
1732 dasm_put(Dst, 2291); 1742 dasm_put(Dst, 2311);
1733 } 1743 }
1734 if (sse) { 1744 if (sse) {
1735 dasm_put(Dst, 6357, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1745 dasm_put(Dst, 6377, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1736 } else { 1746 } else {
1737 } 1747 }
1738 dasm_put(Dst, 6716, LJ_TISNUM); 1748 dasm_put(Dst, 6736, LJ_TISNUM);
1739 } else if (sse) { 1749 } else if (sse) {
1740 dasm_put(Dst, 7093, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1750 dasm_put(Dst, 7113, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1741 } else { 1751 } else {
1742 } 1752 }
1743 dasm_put(Dst, 7160, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1753 dasm_put(Dst, 7180, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1744 dasm_put(Dst, 7236, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1754 dasm_put(Dst, 7256, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1745 dasm_put(Dst, 7363, Dt1(->top), Dt1(->base), Dt1(->top)); 1755 dasm_put(Dst, 7383, Dt1(->top), Dt1(->base), Dt1(->top));
1746#if LJ_HASJIT 1756#if LJ_HASJIT
1747 dasm_put(Dst, 7402, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1757 dasm_put(Dst, 7422, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1748#endif 1758#endif
1749 dasm_put(Dst, 7435, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1759 dasm_put(Dst, 7455, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1750 dasm_put(Dst, 7489, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1760 dasm_put(Dst, 7509, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1751#if LJ_HASJIT 1761#if LJ_HASJIT
1752 dasm_put(Dst, 7556, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1762 dasm_put(Dst, 7576, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1753#endif 1763#endif
1754 dasm_put(Dst, 7603); 1764 dasm_put(Dst, 7623);
1755#if LJ_HASJIT 1765#if LJ_HASJIT
1756 dasm_put(Dst, 7430); 1766 dasm_put(Dst, 7450);
1757#endif 1767#endif
1758 dasm_put(Dst, 7610); 1768 dasm_put(Dst, 7630);
1759#if LJ_HASJIT 1769#if LJ_HASJIT
1760 dasm_put(Dst, 7613); 1770 dasm_put(Dst, 7633);
1761#endif 1771#endif
1762 dasm_put(Dst, 7623, Dt1(->base), Dt1(->top)); 1772 dasm_put(Dst, 7643, Dt1(->base), Dt1(->top));
1763#if LJ_HASJIT 1773#if LJ_HASJIT
1764 dasm_put(Dst, 7656); 1774 dasm_put(Dst, 7676);
1765#endif 1775#endif
1766 dasm_put(Dst, 7661, Dt1(->base), Dt1(->top)); 1776 dasm_put(Dst, 7681, Dt1(->base), Dt1(->top));
1767#if LJ_HASJIT 1777#if LJ_HASJIT
1768 dasm_put(Dst, 7692, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1778 dasm_put(Dst, 7712, 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);
1769#endif 1779#endif
1770 dasm_put(Dst, 7931); 1780 dasm_put(Dst, 7951);
1771#if LJ_HASJIT 1781#if LJ_HASJIT
1772 dasm_put(Dst, 7934, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1782 dasm_put(Dst, 7954, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1773#endif 1783#endif
1774 dasm_put(Dst, 8034); 1784 dasm_put(Dst, 8054);
1775 if (!sse) { 1785 if (!sse) {
1776 dasm_put(Dst, 8037); 1786 dasm_put(Dst, 8057);
1777 } 1787 }
1778 dasm_put(Dst, 8082, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1788 dasm_put(Dst, 8102, (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));
1779 if (!sse) { 1789 if (!sse) {
1780 dasm_put(Dst, 8168); 1790 dasm_put(Dst, 8188);
1781 } 1791 }
1782 dasm_put(Dst, 8213, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1792 dasm_put(Dst, 8233, (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));
1783 if (!sse) { 1793 if (!sse) {
1784 dasm_put(Dst, 8299); 1794 dasm_put(Dst, 8319);
1785 } 1795 }
1786 dasm_put(Dst, 8338, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1796 dasm_put(Dst, 8358, (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));
1787 if (sse) { 1797 if (sse) {
1788 dasm_put(Dst, 8427, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1798 dasm_put(Dst, 8447, (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));
1789 } else { 1799 } else {
1790 dasm_put(Dst, 8541); 1800 dasm_put(Dst, 8561);
1791 } 1801 }
1792 dasm_put(Dst, 8588); 1802 dasm_put(Dst, 8608);
1793 if (!sse) { 1803 if (!sse) {
1794 } else { 1804 } else {
1795 dasm_put(Dst, 8665); 1805 dasm_put(Dst, 8685);
1796 } 1806 }
1797 dasm_put(Dst, 8668); 1807 dasm_put(Dst, 8688);
1798 dasm_put(Dst, 8753, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1808 dasm_put(Dst, 8773, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1799 dasm_put(Dst, 8856, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1809 dasm_put(Dst, 8876, (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));
1800 dasm_put(Dst, 9018); 1810 dasm_put(Dst, 9038);
1801#if LJ_HASJIT 1811#if LJ_HASJIT
1802 if (sse) { 1812 if (sse) {
1803 dasm_put(Dst, 9059); 1813 dasm_put(Dst, 9079);
1804 dasm_put(Dst, 9129); 1814 dasm_put(Dst, 9149);
1805 dasm_put(Dst, 9201); 1815 dasm_put(Dst, 9221);
1806 } else { 1816 } else {
1807 dasm_put(Dst, 9253); 1817 dasm_put(Dst, 9273);
1808 dasm_put(Dst, 9345); 1818 dasm_put(Dst, 9365);
1809 } 1819 }
1810 dasm_put(Dst, 9391); 1820 dasm_put(Dst, 9411);
1811#endif 1821#endif
1812 dasm_put(Dst, 9395); 1822 dasm_put(Dst, 9415);
1813 if (sse) { 1823 if (sse) {
1814 dasm_put(Dst, 9398, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1824 dasm_put(Dst, 9418, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1815 dasm_put(Dst, 9483, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1825 dasm_put(Dst, 9503, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1816 } else { 1826 } else {
1817 dasm_put(Dst, 9611); 1827 dasm_put(Dst, 9631);
1818 dasm_put(Dst, 9694); 1828 dasm_put(Dst, 9714);
1819 if (cmov) { 1829 if (cmov) {
1820 dasm_put(Dst, 9749); 1830 dasm_put(Dst, 9769);
1821 } else { 1831 } else {
1822 dasm_put(Dst, 9768); 1832 dasm_put(Dst, 9788);
1823 } 1833 }
1824 dasm_put(Dst, 9391); 1834 dasm_put(Dst, 9411);
1825 } 1835 }
1826 dasm_put(Dst, 9809); 1836 dasm_put(Dst, 9829);
1827#if LJ_HASFFI 1837#if LJ_HASFFI
1828#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1838#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1829 dasm_put(Dst, 9833, DtE(->spadj)); 1839 dasm_put(Dst, 9853, DtE(->spadj));
1830#if LJ_TARGET_WINDOWS 1840#if LJ_TARGET_WINDOWS
1831#endif 1841#endif
1832 dasm_put(Dst, 9849, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]), DtE(->fpr[1])); 1842 dasm_put(Dst, 9869, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->fpr[0]), DtE(->fpr[1]));
1833 dasm_put(Dst, 9928, DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1])); 1843 dasm_put(Dst, 9948, DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->fpr[1]));
1834#if LJ_TARGET_WINDOWS 1844#if LJ_TARGET_WINDOWS
1835#endif 1845#endif
1836 dasm_put(Dst, 9983); 1846 dasm_put(Dst, 10003);
1837#endif 1847#endif
1838 dasm_put(Dst, 9991); 1848 dasm_put(Dst, 10011);
1839#ifdef LUA_USE_ASSERT 1849#ifdef LUA_USE_ASSERT
1840 dasm_put(Dst, 9393); 1850 dasm_put(Dst, 9413);
1841#endif 1851#endif
1842 dasm_put(Dst, 9393); 1852 dasm_put(Dst, 9413);
1843} 1853}
1844 1854
1845/* Generate the code for a single instruction. */ 1855/* Generate the code for a single instruction. */
1846static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1856static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1847{ 1857{
1848 int vk = 0; 1858 int vk = 0;
1849 dasm_put(Dst, 9994, defop); 1859 dasm_put(Dst, 10014, defop);
1850 1860
1851 switch (op) { 1861 switch (op) {
1852 1862
@@ -1857,296 +1867,303 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1857 1867
1858 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1868 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1859 if (LJ_DUALNUM) { 1869 if (LJ_DUALNUM) {
1860 dasm_put(Dst, 9996, LJ_TISNUM, LJ_TISNUM); 1870 dasm_put(Dst, 10016, LJ_TISNUM, LJ_TISNUM);
1861 switch (op) { 1871 switch (op) {
1862 case BC_ISLT: 1872 case BC_ISLT:
1863 dasm_put(Dst, 10026); 1873 dasm_put(Dst, 10046);
1864 break; 1874 break;
1865 case BC_ISGE: 1875 case BC_ISGE:
1866 dasm_put(Dst, 10031); 1876 dasm_put(Dst, 10051);
1867 break; 1877 break;
1868 case BC_ISLE: 1878 case BC_ISLE:
1869 dasm_put(Dst, 10036); 1879 dasm_put(Dst, 10056);
1870 break; 1880 break;
1871 case BC_ISGT: 1881 case BC_ISGT:
1872 dasm_put(Dst, 10041); 1882 dasm_put(Dst, 10061);
1873 break; 1883 break;
1874 default: break; /* Shut up GCC. */ 1884 default: break; /* Shut up GCC. */
1875 } 1885 }
1876 dasm_put(Dst, 10046, -BCBIAS_J*4, LJ_TISNUM); 1886 dasm_put(Dst, 10066, -BCBIAS_J*4, LJ_TISNUM);
1877 if (sse) { 1887 if (sse) {
1878 dasm_put(Dst, 10101); 1888 dasm_put(Dst, 10121);
1879 } else { 1889 } else {
1880 dasm_put(Dst, 10112); 1890 dasm_put(Dst, 10132);
1881 } 1891 }
1882 dasm_put(Dst, 10123); 1892 dasm_put(Dst, 10143);
1883 if (sse) { 1893 if (sse) {
1884 dasm_put(Dst, 10130); 1894 dasm_put(Dst, 10150);
1885 switch (op) { 1895 switch (op) {
1886 case BC_ISLT: 1896 case BC_ISLT:
1887 dasm_put(Dst, 10150); 1897 dasm_put(Dst, 10170);
1888 break; 1898 break;
1889 case BC_ISGE: 1899 case BC_ISGE:
1890 dasm_put(Dst, 10155); 1900 dasm_put(Dst, 10175);
1891 break; 1901 break;
1892 case BC_ISLE: 1902 case BC_ISLE:
1893 dasm_put(Dst, 10160); 1903 dasm_put(Dst, 10180);
1894 break; 1904 break;
1895 case BC_ISGT: 1905 case BC_ISGT:
1896 dasm_put(Dst, 10165); 1906 dasm_put(Dst, 10185);
1897 break; 1907 break;
1898 default: break; /* Shut up GCC. */ 1908 default: break; /* Shut up GCC. */
1899 } 1909 }
1900 dasm_put(Dst, 10170); 1910 dasm_put(Dst, 10190);
1901 } else { 1911 } else {
1902 dasm_put(Dst, 10175); 1912 dasm_put(Dst, 10195);
1903 } 1913 }
1904 } else { 1914 } else {
1905 dasm_put(Dst, 10183, LJ_TISNUM, LJ_TISNUM); 1915 dasm_put(Dst, 10203, LJ_TISNUM, LJ_TISNUM);
1906 } 1916 }
1907 if (sse) { 1917 if (sse) {
1908 dasm_put(Dst, 10204); 1918 dasm_put(Dst, 10224);
1909 } else { 1919 } else {
1910 dasm_put(Dst, 10225); 1920 dasm_put(Dst, 10245);
1911 if (cmov) { 1921 if (cmov) {
1912 dasm_put(Dst, 10241); 1922 dasm_put(Dst, 10261);
1913 } else { 1923 } else {
1914 dasm_put(Dst, 10247); 1924 dasm_put(Dst, 10267);
1915 } 1925 }
1916 } 1926 }
1917 if (LJ_DUALNUM) { 1927 if (LJ_DUALNUM) {
1918 switch (op) { 1928 switch (op) {
1919 case BC_ISLT: 1929 case BC_ISLT:
1920 dasm_put(Dst, 10150); 1930 dasm_put(Dst, 10170);
1921 break; 1931 break;
1922 case BC_ISGE: 1932 case BC_ISGE:
1923 dasm_put(Dst, 10155); 1933 dasm_put(Dst, 10175);
1924 break; 1934 break;
1925 case BC_ISLE: 1935 case BC_ISLE:
1926 dasm_put(Dst, 10160); 1936 dasm_put(Dst, 10180);
1927 break; 1937 break;
1928 case BC_ISGT: 1938 case BC_ISGT:
1929 dasm_put(Dst, 10165); 1939 dasm_put(Dst, 10185);
1930 break; 1940 break;
1931 default: break; /* Shut up GCC. */ 1941 default: break; /* Shut up GCC. */
1932 } 1942 }
1933 dasm_put(Dst, 10170); 1943 dasm_put(Dst, 10190);
1934 } else { 1944 } else {
1935 switch (op) { 1945 switch (op) {
1936 case BC_ISLT: 1946 case BC_ISLT:
1937 dasm_put(Dst, 10254); 1947 dasm_put(Dst, 10274);
1938 break; 1948 break;
1939 case BC_ISGE: 1949 case BC_ISGE:
1940 dasm_put(Dst, 10259); 1950 dasm_put(Dst, 10279);
1941 break; 1951 break;
1942 case BC_ISLE: 1952 case BC_ISLE:
1943 dasm_put(Dst, 10264); 1953 dasm_put(Dst, 10284);
1944 break; 1954 break;
1945 case BC_ISGT: 1955 case BC_ISGT:
1946 dasm_put(Dst, 10269); 1956 dasm_put(Dst, 10289);
1947 break; 1957 break;
1948 default: break; /* Shut up GCC. */ 1958 default: break; /* Shut up GCC. */
1949 } 1959 }
1950 dasm_put(Dst, 10274, -BCBIAS_J*4); 1960 dasm_put(Dst, 10294, -BCBIAS_J*4);
1951 } 1961 }
1952 break; 1962 break;
1953 1963
1954 case BC_ISEQV: case BC_ISNEV: 1964 case BC_ISEQV: case BC_ISNEV:
1955 vk = op == BC_ISEQV; 1965 vk = op == BC_ISEQV;
1956 dasm_put(Dst, 10307); 1966 dasm_put(Dst, 10327);
1957 if (LJ_DUALNUM) { 1967 if (LJ_DUALNUM) {
1958 dasm_put(Dst, 10315, LJ_TISNUM, LJ_TISNUM); 1968 dasm_put(Dst, 10335, LJ_TISNUM, LJ_TISNUM);
1959 if (vk) { 1969 if (vk) {
1960 dasm_put(Dst, 10340); 1970 dasm_put(Dst, 10360);
1961 } else { 1971 } else {
1962 dasm_put(Dst, 10345); 1972 dasm_put(Dst, 10365);
1963 } 1973 }
1964 dasm_put(Dst, 10350, -BCBIAS_J*4, LJ_TISNUM); 1974 dasm_put(Dst, 10370, -BCBIAS_J*4, LJ_TISNUM);
1965 if (sse) { 1975 if (sse) {
1966 dasm_put(Dst, 10403); 1976 dasm_put(Dst, 10423);
1967 } else { 1977 } else {
1968 dasm_put(Dst, 10410); 1978 dasm_put(Dst, 10430);
1969 } 1979 }
1970 dasm_put(Dst, 10414); 1980 dasm_put(Dst, 10434);
1971 if (sse) { 1981 if (sse) {
1972 dasm_put(Dst, 10425); 1982 dasm_put(Dst, 10445);
1973 } else { 1983 } else {
1974 dasm_put(Dst, 10437); 1984 dasm_put(Dst, 10457);
1975 } 1985 }
1976 dasm_put(Dst, 10444); 1986 dasm_put(Dst, 10464);
1977 } else { 1987 } else {
1978 dasm_put(Dst, 10449, LJ_TISNUM, LJ_TISNUM); 1988 dasm_put(Dst, 10469, LJ_TISNUM, LJ_TISNUM);
1979 } 1989 }
1980 if (sse) { 1990 if (sse) {
1981 dasm_put(Dst, 10468); 1991 dasm_put(Dst, 10488);
1982 } else { 1992 } else {
1983 dasm_put(Dst, 10486); 1993 dasm_put(Dst, 10506);
1984 if (cmov) { 1994 if (cmov) {
1985 dasm_put(Dst, 10241); 1995 dasm_put(Dst, 10261);
1986 } else { 1996 } else {
1987 dasm_put(Dst, 10247); 1997 dasm_put(Dst, 10267);
1988 } 1998 }
1989 } 1999 }
1990 iseqne_fp: 2000 iseqne_fp:
1991 if (vk) { 2001 if (vk) {
1992 dasm_put(Dst, 10499); 2002 dasm_put(Dst, 10519);
1993 } else { 2003 } else {
1994 dasm_put(Dst, 10508); 2004 dasm_put(Dst, 10528);
1995 } 2005 }
1996 iseqne_end: 2006 iseqne_end:
1997 if (vk) { 2007 if (vk) {
1998 dasm_put(Dst, 10517, -BCBIAS_J*4); 2008 dasm_put(Dst, 10537, -BCBIAS_J*4);
1999 if (!LJ_HASFFI) { 2009 if (!LJ_HASFFI) {
2000 dasm_put(Dst, 4655); 2010 dasm_put(Dst, 4675);
2001 } 2011 }
2002 } else { 2012 } else {
2003 if (!LJ_HASFFI) { 2013 if (!LJ_HASFFI) {
2004 dasm_put(Dst, 4655); 2014 dasm_put(Dst, 4675);
2005 } 2015 }
2006 dasm_put(Dst, 10532, -BCBIAS_J*4); 2016 dasm_put(Dst, 10552, -BCBIAS_J*4);
2007 } 2017 }
2008 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2018 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2009 op == BC_ISEQN || op == BC_ISNEN)) { 2019 op == BC_ISEQN || op == BC_ISNEN)) {
2010 dasm_put(Dst, 10547); 2020 dasm_put(Dst, 10567);
2011 } else { 2021 } else {
2012 dasm_put(Dst, 10286); 2022 dasm_put(Dst, 10306);
2013 } 2023 }
2014 if (op == BC_ISEQV || op == BC_ISNEV) { 2024 if (op == BC_ISEQV || op == BC_ISNEV) {
2015 dasm_put(Dst, 10552); 2025 dasm_put(Dst, 10572);
2016 if (LJ_HASFFI) { 2026 if (LJ_HASFFI) {
2017 dasm_put(Dst, 10555, LJ_TCDATA, LJ_TCDATA); 2027 dasm_put(Dst, 10575, LJ_TCDATA, LJ_TCDATA);
2018 } 2028 }
2019 dasm_put(Dst, 10574, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2029 dasm_put(Dst, 10594, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2020 if (vk) { 2030 if (vk) {
2021 dasm_put(Dst, 10630); 2031 dasm_put(Dst, 10650);
2022 } else { 2032 } else {
2023 dasm_put(Dst, 10634); 2033 dasm_put(Dst, 10654);
2024 } 2034 }
2025 dasm_put(Dst, 10640); 2035 dasm_put(Dst, 10660);
2026 } else if (LJ_HASFFI) { 2036 } else if (LJ_HASFFI) {
2027 dasm_put(Dst, 10645, LJ_TCDATA); 2037 dasm_put(Dst, 10665, LJ_TCDATA);
2028 if (LJ_DUALNUM && vk) { 2038 if (LJ_DUALNUM && vk) {
2029 dasm_put(Dst, 10652); 2039 dasm_put(Dst, 10672);
2030 } else { 2040 } else {
2031 dasm_put(Dst, 10625); 2041 dasm_put(Dst, 10645);
2032 } 2042 }
2033 dasm_put(Dst, 10657); 2043 dasm_put(Dst, 10677);
2034 } 2044 }
2035 break; 2045 break;
2036 case BC_ISEQS: case BC_ISNES: 2046 case BC_ISEQS: case BC_ISNES:
2037 vk = op == BC_ISEQS; 2047 vk = op == BC_ISEQS;
2038 dasm_put(Dst, 10662, LJ_TSTR); 2048 dasm_put(Dst, 10682, LJ_TSTR);
2039 iseqne_test: 2049 iseqne_test:
2040 if (vk) { 2050 if (vk) {
2041 dasm_put(Dst, 10503); 2051 dasm_put(Dst, 10523);
2042 } else { 2052 } else {
2043 dasm_put(Dst, 814); 2053 dasm_put(Dst, 814);
2044 } 2054 }
2045 goto iseqne_end; 2055 goto iseqne_end;
2046 case BC_ISEQN: case BC_ISNEN: 2056 case BC_ISEQN: case BC_ISNEN:
2047 vk = op == BC_ISEQN; 2057 vk = op == BC_ISEQN;
2048 dasm_put(Dst, 10689); 2058 dasm_put(Dst, 10709);
2049 if (LJ_DUALNUM) { 2059 if (LJ_DUALNUM) {
2050 dasm_put(Dst, 10697, LJ_TISNUM, LJ_TISNUM); 2060 dasm_put(Dst, 10717, LJ_TISNUM, LJ_TISNUM);
2051 if (vk) { 2061 if (vk) {
2052 dasm_put(Dst, 10340); 2062 dasm_put(Dst, 10360);
2053 } else { 2063 } else {
2054 dasm_put(Dst, 10345); 2064 dasm_put(Dst, 10365);
2055 } 2065 }
2056 dasm_put(Dst, 10724, -BCBIAS_J*4, LJ_TISNUM); 2066 dasm_put(Dst, 10744, -BCBIAS_J*4, LJ_TISNUM);
2057 if (sse) { 2067 if (sse) {
2058 dasm_put(Dst, 10774); 2068 dasm_put(Dst, 10794);
2059 } else { 2069 } else {
2060 dasm_put(Dst, 10782); 2070 dasm_put(Dst, 10802);
2061 } 2071 }
2062 dasm_put(Dst, 10787); 2072 dasm_put(Dst, 10807);
2063 if (sse) { 2073 if (sse) {
2064 dasm_put(Dst, 10794); 2074 dasm_put(Dst, 10814);
2065 } else { 2075 } else {
2066 dasm_put(Dst, 10807); 2076 dasm_put(Dst, 10827);
2067 } 2077 }
2068 dasm_put(Dst, 10444); 2078 dasm_put(Dst, 10464);
2069 } else { 2079 } else {
2070 dasm_put(Dst, 10815, LJ_TISNUM); 2080 dasm_put(Dst, 10835, LJ_TISNUM);
2071 } 2081 }
2072 if (sse) { 2082 if (sse) {
2073 dasm_put(Dst, 10824); 2083 dasm_put(Dst, 10844);
2074 } else { 2084 } else {
2075 dasm_put(Dst, 10843); 2085 dasm_put(Dst, 10863);
2076 if (cmov) { 2086 if (cmov) {
2077 dasm_put(Dst, 10241); 2087 dasm_put(Dst, 10261);
2078 } else { 2088 } else {
2079 dasm_put(Dst, 10247); 2089 dasm_put(Dst, 10267);
2080 } 2090 }
2081 } 2091 }
2082 goto iseqne_fp; 2092 goto iseqne_fp;
2083 case BC_ISEQP: case BC_ISNEP: 2093 case BC_ISEQP: case BC_ISNEP:
2084 vk = op == BC_ISEQP; 2094 vk = op == BC_ISEQP;
2085 dasm_put(Dst, 10857); 2095 dasm_put(Dst, 10877);
2086 if (!LJ_HASFFI) goto iseqne_test; 2096 if (!LJ_HASFFI) goto iseqne_test;
2087 if (vk) { 2097 if (vk) {
2088 dasm_put(Dst, 10871, -BCBIAS_J*4, LJ_TCDATA); 2098 dasm_put(Dst, 10891, -BCBIAS_J*4, LJ_TCDATA);
2089 } else { 2099 } else {
2090 dasm_put(Dst, 10922, LJ_TCDATA, -BCBIAS_J*4); 2100 dasm_put(Dst, 10942, LJ_TCDATA, -BCBIAS_J*4);
2091 } 2101 }
2092 break; 2102 break;
2093 2103
2094 /* -- Unary test and copy ops ------------------------------------------- */ 2104 /* -- Unary test and copy ops ------------------------------------------- */
2095 2105
2096 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2106 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2097 dasm_put(Dst, 10967, LJ_TISTRUECOND); 2107 dasm_put(Dst, 10987, LJ_TISTRUECOND);
2098 if (op == BC_IST || op == BC_ISTC) { 2108 if (op == BC_IST || op == BC_ISTC) {
2099 dasm_put(Dst, 10269); 2109 dasm_put(Dst, 10289);
2100 } else { 2110 } else {
2101 dasm_put(Dst, 10264); 2111 dasm_put(Dst, 10284);
2102 } 2112 }
2103 if (op == BC_ISTC || op == BC_ISFC) { 2113 if (op == BC_ISTC || op == BC_ISFC) {
2104 dasm_put(Dst, 10979); 2114 dasm_put(Dst, 10999);
2105 } 2115 }
2106 dasm_put(Dst, 10274, -BCBIAS_J*4); 2116 dasm_put(Dst, 10294, -BCBIAS_J*4);
2107 break; 2117 break;
2108 2118
2109 /* -- Unary ops --------------------------------------------------------- */ 2119 /* -- Unary ops --------------------------------------------------------- */
2110 2120
2111 case BC_MOV: 2121 case BC_MOV:
2112 dasm_put(Dst, 10990); 2122 dasm_put(Dst, 11010);
2113 break; 2123 break;
2114 case BC_NOT: 2124 case BC_NOT:
2115 dasm_put(Dst, 11019, LJ_TISTRUECOND, LJ_TTRUE); 2125 dasm_put(Dst, 11039, LJ_TISTRUECOND, LJ_TTRUE);
2116 break; 2126 break;
2117 case BC_UNM: 2127 case BC_UNM:
2118 if (LJ_DUALNUM) { 2128 if (LJ_DUALNUM) {
2119 dasm_put(Dst, 11056, LJ_TISNUM, LJ_TISNUM); 2129 dasm_put(Dst, 11076, LJ_TISNUM, LJ_TISNUM);
2120 } else { 2130 } else {
2121 dasm_put(Dst, 11134, LJ_TISNUM); 2131 dasm_put(Dst, 11154, LJ_TISNUM);
2122 } 2132 }
2123 if (sse) { 2133 if (sse) {
2124 dasm_put(Dst, 11145, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2134 dasm_put(Dst, 11165, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2125 } else { 2135 } else {
2126 dasm_put(Dst, 11170); 2136 dasm_put(Dst, 11190);
2127 } 2137 }
2128 if (LJ_DUALNUM) { 2138 if (LJ_DUALNUM) {
2129 dasm_put(Dst, 10547); 2139 dasm_put(Dst, 10567);
2130 } else { 2140 } else {
2131 dasm_put(Dst, 10286); 2141 dasm_put(Dst, 10306);
2132 } 2142 }
2133 break; 2143 break;
2134 case BC_LEN: 2144 case BC_LEN:
2135 dasm_put(Dst, 11179, LJ_TSTR); 2145 dasm_put(Dst, 11199, LJ_TSTR);
2136 if (LJ_DUALNUM) { 2146 if (LJ_DUALNUM) {
2137 dasm_put(Dst, 11193, Dt5(->len), LJ_TISNUM); 2147 dasm_put(Dst, 11213, Dt5(->len), LJ_TISNUM);
2138 } else if (sse) { 2148 } else if (sse) {
2139 dasm_put(Dst, 11207, Dt5(->len)); 2149 dasm_put(Dst, 11227, Dt5(->len));
2140 } else { 2150 } else {
2141 dasm_put(Dst, 11225, Dt5(->len)); 2151 dasm_put(Dst, 11245, Dt5(->len));
2142 } 2152 }
2143 dasm_put(Dst, 11234, LJ_TTAB); 2153 dasm_put(Dst, 11254, LJ_TTAB);
2154#ifdef LUAJIT_ENABLE_LUA52COMPAT
2155 dasm_put(Dst, 11290, Dt6(->metatable));
2156#endif
2157 dasm_put(Dst, 11304);
2144 if (LJ_DUALNUM) { 2158 if (LJ_DUALNUM) {
2145 } else if (sse) { 2159 } else if (sse) {
2146 dasm_put(Dst, 11276); 2160 dasm_put(Dst, 11313);
2147 } else { 2161 } else {
2148 } 2162 }
2149 dasm_put(Dst, 11282); 2163 dasm_put(Dst, 11319);
2164#ifdef LUAJIT_ENABLE_LUA52COMPAT
2165 dasm_put(Dst, 11332, Dt6(->nomm), 1<<MM_len);
2166#endif
2150 break; 2167 break;
2151 2168
2152 /* -- Binary ops -------------------------------------------------------- */ 2169 /* -- Binary ops -------------------------------------------------------- */
@@ -2154,605 +2171,605 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2154 2171
2155 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2172 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2156 if (LJ_DUALNUM) { 2173 if (LJ_DUALNUM) {
2157 dasm_put(Dst, 11295); 2174 dasm_put(Dst, 11348);
2158 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2175 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2159 switch (vk) { 2176 switch (vk) {
2160 case 0: 2177 case 0:
2161 dasm_put(Dst, 11303, LJ_TISNUM, LJ_TISNUM); 2178 dasm_put(Dst, 11356, LJ_TISNUM, LJ_TISNUM);
2162 break; 2179 break;
2163 case 1: 2180 case 1:
2164 dasm_put(Dst, 11338, LJ_TISNUM, LJ_TISNUM); 2181 dasm_put(Dst, 11391, LJ_TISNUM, LJ_TISNUM);
2165 break; 2182 break;
2166 default: 2183 default:
2167 dasm_put(Dst, 11373, LJ_TISNUM, LJ_TISNUM); 2184 dasm_put(Dst, 11426, LJ_TISNUM, LJ_TISNUM);
2168 break; 2185 break;
2169 } 2186 }
2170 dasm_put(Dst, 11406, LJ_TISNUM); 2187 dasm_put(Dst, 11459, LJ_TISNUM);
2171 if (vk == 1) { 2188 if (vk == 1) {
2172 dasm_put(Dst, 11203); 2189 dasm_put(Dst, 11223);
2173 } else { 2190 } else {
2174 dasm_put(Dst, 10986); 2191 dasm_put(Dst, 11006);
2175 } 2192 }
2176 dasm_put(Dst, 10286); 2193 dasm_put(Dst, 10306);
2177 } else { 2194 } else {
2178 dasm_put(Dst, 11295); 2195 dasm_put(Dst, 11348);
2179 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2196 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2180 switch (vk) { 2197 switch (vk) {
2181 case 0: 2198 case 0:
2182 dasm_put(Dst, 11412, LJ_TISNUM); 2199 dasm_put(Dst, 11465, LJ_TISNUM);
2183 if (LJ_DUALNUM) { 2200 if (LJ_DUALNUM) {
2184 dasm_put(Dst, 11424, LJ_TISNUM); 2201 dasm_put(Dst, 11477, LJ_TISNUM);
2185 } 2202 }
2186 if (sse) { 2203 if (sse) {
2187 dasm_put(Dst, 11436); 2204 dasm_put(Dst, 11489);
2188 } else { 2205 } else {
2189 dasm_put(Dst, 11451); 2206 dasm_put(Dst, 11504);
2190 } 2207 }
2191 break; 2208 break;
2192 case 1: 2209 case 1:
2193 dasm_put(Dst, 11460, LJ_TISNUM); 2210 dasm_put(Dst, 11513, LJ_TISNUM);
2194 if (LJ_DUALNUM) { 2211 if (LJ_DUALNUM) {
2195 dasm_put(Dst, 11472, LJ_TISNUM); 2212 dasm_put(Dst, 11525, LJ_TISNUM);
2196 } 2213 }
2197 if (sse) { 2214 if (sse) {
2198 dasm_put(Dst, 11484); 2215 dasm_put(Dst, 11537);
2199 } else { 2216 } else {
2200 dasm_put(Dst, 11499); 2217 dasm_put(Dst, 11552);
2201 } 2218 }
2202 break; 2219 break;
2203 default: 2220 default:
2204 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2221 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2205 if (sse) { 2222 if (sse) {
2206 dasm_put(Dst, 11530); 2223 dasm_put(Dst, 11583);
2207 } else { 2224 } else {
2208 dasm_put(Dst, 11544); 2225 dasm_put(Dst, 11597);
2209 } 2226 }
2210 break; 2227 break;
2211 } 2228 }
2212 if (sse) { 2229 if (sse) {
2213 dasm_put(Dst, 11163); 2230 dasm_put(Dst, 11183);
2214 } else { 2231 } else {
2215 dasm_put(Dst, 11175); 2232 dasm_put(Dst, 11195);
2216 } 2233 }
2217 dasm_put(Dst, 10286); 2234 dasm_put(Dst, 10306);
2218 } 2235 }
2219 break; 2236 break;
2220 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2237 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2221 if (LJ_DUALNUM) { 2238 if (LJ_DUALNUM) {
2222 dasm_put(Dst, 11295); 2239 dasm_put(Dst, 11348);
2223 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2240 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2224 switch (vk) { 2241 switch (vk) {
2225 case 0: 2242 case 0:
2226 dasm_put(Dst, 11552, LJ_TISNUM, LJ_TISNUM); 2243 dasm_put(Dst, 11605, LJ_TISNUM, LJ_TISNUM);
2227 break; 2244 break;
2228 case 1: 2245 case 1:
2229 dasm_put(Dst, 11587, LJ_TISNUM, LJ_TISNUM); 2246 dasm_put(Dst, 11640, LJ_TISNUM, LJ_TISNUM);
2230 break; 2247 break;
2231 default: 2248 default:
2232 dasm_put(Dst, 11622, LJ_TISNUM, LJ_TISNUM); 2249 dasm_put(Dst, 11675, LJ_TISNUM, LJ_TISNUM);
2233 break; 2250 break;
2234 } 2251 }
2235 dasm_put(Dst, 11406, LJ_TISNUM); 2252 dasm_put(Dst, 11459, LJ_TISNUM);
2236 if (vk == 1) { 2253 if (vk == 1) {
2237 dasm_put(Dst, 11203); 2254 dasm_put(Dst, 11223);
2238 } else { 2255 } else {
2239 dasm_put(Dst, 10986); 2256 dasm_put(Dst, 11006);
2240 } 2257 }
2241 dasm_put(Dst, 10286); 2258 dasm_put(Dst, 10306);
2242 } else { 2259 } else {
2243 dasm_put(Dst, 11295); 2260 dasm_put(Dst, 11348);
2244 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2261 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2245 switch (vk) { 2262 switch (vk) {
2246 case 0: 2263 case 0:
2247 dasm_put(Dst, 11412, LJ_TISNUM); 2264 dasm_put(Dst, 11465, LJ_TISNUM);
2248 if (LJ_DUALNUM) { 2265 if (LJ_DUALNUM) {
2249 dasm_put(Dst, 11424, LJ_TISNUM); 2266 dasm_put(Dst, 11477, LJ_TISNUM);
2250 } 2267 }
2251 if (sse) { 2268 if (sse) {
2252 dasm_put(Dst, 11655); 2269 dasm_put(Dst, 11708);
2253 } else { 2270 } else {
2254 dasm_put(Dst, 11670); 2271 dasm_put(Dst, 11723);
2255 } 2272 }
2256 break; 2273 break;
2257 case 1: 2274 case 1:
2258 dasm_put(Dst, 11460, LJ_TISNUM); 2275 dasm_put(Dst, 11513, LJ_TISNUM);
2259 if (LJ_DUALNUM) { 2276 if (LJ_DUALNUM) {
2260 dasm_put(Dst, 11472, LJ_TISNUM); 2277 dasm_put(Dst, 11525, LJ_TISNUM);
2261 } 2278 }
2262 if (sse) { 2279 if (sse) {
2263 dasm_put(Dst, 11679); 2280 dasm_put(Dst, 11732);
2264 } else { 2281 } else {
2265 dasm_put(Dst, 11694); 2282 dasm_put(Dst, 11747);
2266 } 2283 }
2267 break; 2284 break;
2268 default: 2285 default:
2269 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2286 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2270 if (sse) { 2287 if (sse) {
2271 dasm_put(Dst, 11703); 2288 dasm_put(Dst, 11756);
2272 } else { 2289 } else {
2273 dasm_put(Dst, 11717); 2290 dasm_put(Dst, 11770);
2274 } 2291 }
2275 break; 2292 break;
2276 } 2293 }
2277 if (sse) { 2294 if (sse) {
2278 dasm_put(Dst, 11163); 2295 dasm_put(Dst, 11183);
2279 } else { 2296 } else {
2280 dasm_put(Dst, 11175); 2297 dasm_put(Dst, 11195);
2281 } 2298 }
2282 dasm_put(Dst, 10286); 2299 dasm_put(Dst, 10306);
2283 } 2300 }
2284 break; 2301 break;
2285 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2302 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2286 if (LJ_DUALNUM) { 2303 if (LJ_DUALNUM) {
2287 dasm_put(Dst, 11295); 2304 dasm_put(Dst, 11348);
2288 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2305 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2289 switch (vk) { 2306 switch (vk) {
2290 case 0: 2307 case 0:
2291 dasm_put(Dst, 11725, LJ_TISNUM, LJ_TISNUM); 2308 dasm_put(Dst, 11778, LJ_TISNUM, LJ_TISNUM);
2292 break; 2309 break;
2293 case 1: 2310 case 1:
2294 dasm_put(Dst, 11761, LJ_TISNUM, LJ_TISNUM); 2311 dasm_put(Dst, 11814, LJ_TISNUM, LJ_TISNUM);
2295 break; 2312 break;
2296 default: 2313 default:
2297 dasm_put(Dst, 11797, LJ_TISNUM, LJ_TISNUM); 2314 dasm_put(Dst, 11850, LJ_TISNUM, LJ_TISNUM);
2298 break; 2315 break;
2299 } 2316 }
2300 dasm_put(Dst, 11406, LJ_TISNUM); 2317 dasm_put(Dst, 11459, LJ_TISNUM);
2301 if (vk == 1) { 2318 if (vk == 1) {
2302 dasm_put(Dst, 11203); 2319 dasm_put(Dst, 11223);
2303 } else { 2320 } else {
2304 dasm_put(Dst, 10986); 2321 dasm_put(Dst, 11006);
2305 } 2322 }
2306 dasm_put(Dst, 10286); 2323 dasm_put(Dst, 10306);
2307 } else { 2324 } else {
2308 dasm_put(Dst, 11295); 2325 dasm_put(Dst, 11348);
2309 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2326 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2310 switch (vk) { 2327 switch (vk) {
2311 case 0: 2328 case 0:
2312 dasm_put(Dst, 11412, LJ_TISNUM); 2329 dasm_put(Dst, 11465, LJ_TISNUM);
2313 if (LJ_DUALNUM) { 2330 if (LJ_DUALNUM) {
2314 dasm_put(Dst, 11424, LJ_TISNUM); 2331 dasm_put(Dst, 11477, LJ_TISNUM);
2315 } 2332 }
2316 if (sse) { 2333 if (sse) {
2317 dasm_put(Dst, 11831); 2334 dasm_put(Dst, 11884);
2318 } else { 2335 } else {
2319 dasm_put(Dst, 11846); 2336 dasm_put(Dst, 11899);
2320 } 2337 }
2321 break; 2338 break;
2322 case 1: 2339 case 1:
2323 dasm_put(Dst, 11460, LJ_TISNUM); 2340 dasm_put(Dst, 11513, LJ_TISNUM);
2324 if (LJ_DUALNUM) { 2341 if (LJ_DUALNUM) {
2325 dasm_put(Dst, 11472, LJ_TISNUM); 2342 dasm_put(Dst, 11525, LJ_TISNUM);
2326 } 2343 }
2327 if (sse) { 2344 if (sse) {
2328 dasm_put(Dst, 11855); 2345 dasm_put(Dst, 11908);
2329 } else { 2346 } else {
2330 dasm_put(Dst, 11870); 2347 dasm_put(Dst, 11923);
2331 } 2348 }
2332 break; 2349 break;
2333 default: 2350 default:
2334 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2351 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2335 if (sse) { 2352 if (sse) {
2336 dasm_put(Dst, 11879); 2353 dasm_put(Dst, 11932);
2337 } else { 2354 } else {
2338 dasm_put(Dst, 11893); 2355 dasm_put(Dst, 11946);
2339 } 2356 }
2340 break; 2357 break;
2341 } 2358 }
2342 if (sse) { 2359 if (sse) {
2343 dasm_put(Dst, 11163); 2360 dasm_put(Dst, 11183);
2344 } else { 2361 } else {
2345 dasm_put(Dst, 11175); 2362 dasm_put(Dst, 11195);
2346 } 2363 }
2347 dasm_put(Dst, 10286); 2364 dasm_put(Dst, 10306);
2348 } 2365 }
2349 break; 2366 break;
2350 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2367 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2351 dasm_put(Dst, 11295); 2368 dasm_put(Dst, 11348);
2352 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2369 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2353 switch (vk) { 2370 switch (vk) {
2354 case 0: 2371 case 0:
2355 dasm_put(Dst, 11412, LJ_TISNUM); 2372 dasm_put(Dst, 11465, LJ_TISNUM);
2356 if (LJ_DUALNUM) { 2373 if (LJ_DUALNUM) {
2357 dasm_put(Dst, 11424, LJ_TISNUM); 2374 dasm_put(Dst, 11477, LJ_TISNUM);
2358 } 2375 }
2359 if (sse) { 2376 if (sse) {
2360 dasm_put(Dst, 11901); 2377 dasm_put(Dst, 11954);
2361 } else { 2378 } else {
2362 dasm_put(Dst, 11916); 2379 dasm_put(Dst, 11969);
2363 } 2380 }
2364 break; 2381 break;
2365 case 1: 2382 case 1:
2366 dasm_put(Dst, 11460, LJ_TISNUM); 2383 dasm_put(Dst, 11513, LJ_TISNUM);
2367 if (LJ_DUALNUM) { 2384 if (LJ_DUALNUM) {
2368 dasm_put(Dst, 11472, LJ_TISNUM); 2385 dasm_put(Dst, 11525, LJ_TISNUM);
2369 } 2386 }
2370 if (sse) { 2387 if (sse) {
2371 dasm_put(Dst, 11925); 2388 dasm_put(Dst, 11978);
2372 } else { 2389 } else {
2373 dasm_put(Dst, 11940); 2390 dasm_put(Dst, 11993);
2374 } 2391 }
2375 break; 2392 break;
2376 default: 2393 default:
2377 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2394 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2378 if (sse) { 2395 if (sse) {
2379 dasm_put(Dst, 11949); 2396 dasm_put(Dst, 12002);
2380 } else { 2397 } else {
2381 dasm_put(Dst, 11963); 2398 dasm_put(Dst, 12016);
2382 } 2399 }
2383 break; 2400 break;
2384 } 2401 }
2385 if (sse) { 2402 if (sse) {
2386 dasm_put(Dst, 11163); 2403 dasm_put(Dst, 11183);
2387 } else { 2404 } else {
2388 dasm_put(Dst, 11175); 2405 dasm_put(Dst, 11195);
2389 } 2406 }
2390 dasm_put(Dst, 10286); 2407 dasm_put(Dst, 10306);
2391 break; 2408 break;
2392 case BC_MODVN: 2409 case BC_MODVN:
2393 dasm_put(Dst, 11295); 2410 dasm_put(Dst, 11348);
2394 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2411 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2395 switch (vk) { 2412 switch (vk) {
2396 case 0: 2413 case 0:
2397 dasm_put(Dst, 11412, LJ_TISNUM); 2414 dasm_put(Dst, 11465, LJ_TISNUM);
2398 if (LJ_DUALNUM) { 2415 if (LJ_DUALNUM) {
2399 dasm_put(Dst, 11424, LJ_TISNUM); 2416 dasm_put(Dst, 11477, LJ_TISNUM);
2400 } 2417 }
2401 if (sse) { 2418 if (sse) {
2402 dasm_put(Dst, 11971); 2419 dasm_put(Dst, 12024);
2403 } else { 2420 } else {
2404 dasm_put(Dst, 11986); 2421 dasm_put(Dst, 12039);
2405 } 2422 }
2406 break; 2423 break;
2407 case 1: 2424 case 1:
2408 dasm_put(Dst, 11460, LJ_TISNUM); 2425 dasm_put(Dst, 11513, LJ_TISNUM);
2409 if (LJ_DUALNUM) { 2426 if (LJ_DUALNUM) {
2410 dasm_put(Dst, 11472, LJ_TISNUM); 2427 dasm_put(Dst, 11525, LJ_TISNUM);
2411 } 2428 }
2412 if (sse) { 2429 if (sse) {
2413 dasm_put(Dst, 11995); 2430 dasm_put(Dst, 12048);
2414 } else { 2431 } else {
2415 dasm_put(Dst, 12010); 2432 dasm_put(Dst, 12063);
2416 } 2433 }
2417 break; 2434 break;
2418 default: 2435 default:
2419 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2436 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2420 if (sse) { 2437 if (sse) {
2421 dasm_put(Dst, 12019); 2438 dasm_put(Dst, 12072);
2422 } else { 2439 } else {
2423 dasm_put(Dst, 12033); 2440 dasm_put(Dst, 12086);
2424 } 2441 }
2425 break; 2442 break;
2426 } 2443 }
2427 dasm_put(Dst, 12041); 2444 dasm_put(Dst, 12094);
2428 if (sse) { 2445 if (sse) {
2429 dasm_put(Dst, 11163); 2446 dasm_put(Dst, 11183);
2430 } else { 2447 } else {
2431 dasm_put(Dst, 11175); 2448 dasm_put(Dst, 11195);
2432 } 2449 }
2433 dasm_put(Dst, 10286); 2450 dasm_put(Dst, 10306);
2434 break; 2451 break;
2435 case BC_MODNV: case BC_MODVV: 2452 case BC_MODNV: case BC_MODVV:
2436 dasm_put(Dst, 11295); 2453 dasm_put(Dst, 11348);
2437 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2454 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2438 switch (vk) { 2455 switch (vk) {
2439 case 0: 2456 case 0:
2440 dasm_put(Dst, 11412, LJ_TISNUM); 2457 dasm_put(Dst, 11465, LJ_TISNUM);
2441 if (LJ_DUALNUM) { 2458 if (LJ_DUALNUM) {
2442 dasm_put(Dst, 11424, LJ_TISNUM); 2459 dasm_put(Dst, 11477, LJ_TISNUM);
2443 } 2460 }
2444 if (sse) { 2461 if (sse) {
2445 dasm_put(Dst, 11971); 2462 dasm_put(Dst, 12024);
2446 } else { 2463 } else {
2447 dasm_put(Dst, 11986); 2464 dasm_put(Dst, 12039);
2448 } 2465 }
2449 break; 2466 break;
2450 case 1: 2467 case 1:
2451 dasm_put(Dst, 11460, LJ_TISNUM); 2468 dasm_put(Dst, 11513, LJ_TISNUM);
2452 if (LJ_DUALNUM) { 2469 if (LJ_DUALNUM) {
2453 dasm_put(Dst, 11472, LJ_TISNUM); 2470 dasm_put(Dst, 11525, LJ_TISNUM);
2454 } 2471 }
2455 if (sse) { 2472 if (sse) {
2456 dasm_put(Dst, 11995); 2473 dasm_put(Dst, 12048);
2457 } else { 2474 } else {
2458 dasm_put(Dst, 12010); 2475 dasm_put(Dst, 12063);
2459 } 2476 }
2460 break; 2477 break;
2461 default: 2478 default:
2462 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2479 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2463 if (sse) { 2480 if (sse) {
2464 dasm_put(Dst, 12019); 2481 dasm_put(Dst, 12072);
2465 } else { 2482 } else {
2466 dasm_put(Dst, 12033); 2483 dasm_put(Dst, 12086);
2467 } 2484 }
2468 break; 2485 break;
2469 } 2486 }
2470 dasm_put(Dst, 12047); 2487 dasm_put(Dst, 12100);
2471 break; 2488 break;
2472 case BC_POW: 2489 case BC_POW:
2473 dasm_put(Dst, 11295); 2490 dasm_put(Dst, 11348);
2474 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2491 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2475 switch (vk) { 2492 switch (vk) {
2476 case 0: 2493 case 0:
2477 dasm_put(Dst, 11412, LJ_TISNUM); 2494 dasm_put(Dst, 11465, LJ_TISNUM);
2478 if (LJ_DUALNUM) { 2495 if (LJ_DUALNUM) {
2479 dasm_put(Dst, 11424, LJ_TISNUM); 2496 dasm_put(Dst, 11477, LJ_TISNUM);
2480 } 2497 }
2481 if (sse) { 2498 if (sse) {
2482 dasm_put(Dst, 11971); 2499 dasm_put(Dst, 12024);
2483 } else { 2500 } else {
2484 dasm_put(Dst, 11986); 2501 dasm_put(Dst, 12039);
2485 } 2502 }
2486 break; 2503 break;
2487 case 1: 2504 case 1:
2488 dasm_put(Dst, 11460, LJ_TISNUM); 2505 dasm_put(Dst, 11513, LJ_TISNUM);
2489 if (LJ_DUALNUM) { 2506 if (LJ_DUALNUM) {
2490 dasm_put(Dst, 11472, LJ_TISNUM); 2507 dasm_put(Dst, 11525, LJ_TISNUM);
2491 } 2508 }
2492 if (sse) { 2509 if (sse) {
2493 dasm_put(Dst, 11995); 2510 dasm_put(Dst, 12048);
2494 } else { 2511 } else {
2495 dasm_put(Dst, 12010); 2512 dasm_put(Dst, 12063);
2496 } 2513 }
2497 break; 2514 break;
2498 default: 2515 default:
2499 dasm_put(Dst, 11508, LJ_TISNUM, LJ_TISNUM); 2516 dasm_put(Dst, 11561, LJ_TISNUM, LJ_TISNUM);
2500 if (sse) { 2517 if (sse) {
2501 dasm_put(Dst, 12019); 2518 dasm_put(Dst, 12072);
2502 } else { 2519 } else {
2503 dasm_put(Dst, 12033); 2520 dasm_put(Dst, 12086);
2504 } 2521 }
2505 break; 2522 break;
2506 } 2523 }
2507 dasm_put(Dst, 12052); 2524 dasm_put(Dst, 12105);
2508 if (sse) { 2525 if (sse) {
2509 dasm_put(Dst, 11163); 2526 dasm_put(Dst, 11183);
2510 } else { 2527 } else {
2511 dasm_put(Dst, 11175); 2528 dasm_put(Dst, 11195);
2512 } 2529 }
2513 dasm_put(Dst, 10286); 2530 dasm_put(Dst, 10306);
2514 break; 2531 break;
2515 2532
2516 case BC_CAT: 2533 case BC_CAT:
2517 dasm_put(Dst, 12056, Dt1(->base), Dt1(->base)); 2534 dasm_put(Dst, 12109, Dt1(->base), Dt1(->base));
2518 break; 2535 break;
2519 2536
2520 /* -- Constant ops ------------------------------------------------------ */ 2537 /* -- Constant ops ------------------------------------------------------ */
2521 2538
2522 case BC_KSTR: 2539 case BC_KSTR:
2523 dasm_put(Dst, 12140, LJ_TSTR); 2540 dasm_put(Dst, 12193, LJ_TSTR);
2524 break; 2541 break;
2525 case BC_KCDATA: 2542 case BC_KCDATA:
2526#if LJ_HASFFI 2543#if LJ_HASFFI
2527 dasm_put(Dst, 12140, LJ_TCDATA); 2544 dasm_put(Dst, 12193, LJ_TCDATA);
2528#endif 2545#endif
2529 break; 2546 break;
2530 case BC_KSHORT: 2547 case BC_KSHORT:
2531 if (LJ_DUALNUM) { 2548 if (LJ_DUALNUM) {
2532 dasm_put(Dst, 12177, LJ_TISNUM); 2549 dasm_put(Dst, 12230, LJ_TISNUM);
2533 } else if (sse) { 2550 } else if (sse) {
2534 dasm_put(Dst, 12189); 2551 dasm_put(Dst, 12242);
2535 } else { 2552 } else {
2536 dasm_put(Dst, 12204); 2553 dasm_put(Dst, 12257);
2537 } 2554 }
2538 dasm_put(Dst, 10286); 2555 dasm_put(Dst, 10306);
2539 break; 2556 break;
2540 case BC_KNUM: 2557 case BC_KNUM:
2541 if (sse) { 2558 if (sse) {
2542 dasm_put(Dst, 12212); 2559 dasm_put(Dst, 12265);
2543 } else { 2560 } else {
2544 dasm_put(Dst, 12226); 2561 dasm_put(Dst, 12279);
2545 } 2562 }
2546 dasm_put(Dst, 10286); 2563 dasm_put(Dst, 10306);
2547 break; 2564 break;
2548 case BC_KPRI: 2565 case BC_KPRI:
2549 dasm_put(Dst, 12234); 2566 dasm_put(Dst, 12287);
2550 break; 2567 break;
2551 case BC_KNIL: 2568 case BC_KNIL:
2552 dasm_put(Dst, 12263, LJ_TNIL); 2569 dasm_put(Dst, 12316, LJ_TNIL);
2553 break; 2570 break;
2554 2571
2555 /* -- Upvalue and function ops ------------------------------------------ */ 2572 /* -- Upvalue and function ops ------------------------------------------ */
2556 2573
2557 case BC_UGET: 2574 case BC_UGET:
2558 dasm_put(Dst, 12311, offsetof(GCfuncL, uvptr), DtA(->v)); 2575 dasm_put(Dst, 12364, offsetof(GCfuncL, uvptr), DtA(->v));
2559 break; 2576 break;
2560 case BC_USETV: 2577 case BC_USETV:
2561#define TV2MARKOFS \ 2578#define TV2MARKOFS \
2562 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2579 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2563 dasm_put(Dst, 12352, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 2580 dasm_put(Dst, 12405, 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);
2564 dasm_put(Dst, 12448); 2581 dasm_put(Dst, 12501);
2565 break; 2582 break;
2566#undef TV2MARKOFS 2583#undef TV2MARKOFS
2567 case BC_USETS: 2584 case BC_USETS:
2568 dasm_put(Dst, 12460, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2585 dasm_put(Dst, 12513, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2569 break; 2586 break;
2570 case BC_USETN: 2587 case BC_USETN:
2571 dasm_put(Dst, 12556); 2588 dasm_put(Dst, 12609);
2572 if (sse) { 2589 if (sse) {
2573 dasm_put(Dst, 12561); 2590 dasm_put(Dst, 12614);
2574 } else { 2591 } else {
2575 dasm_put(Dst, 10810); 2592 dasm_put(Dst, 10830);
2576 } 2593 }
2577 dasm_put(Dst, 12569, offsetof(GCfuncL, uvptr), DtA(->v)); 2594 dasm_put(Dst, 12622, offsetof(GCfuncL, uvptr), DtA(->v));
2578 if (sse) { 2595 if (sse) {
2579 dasm_put(Dst, 12578); 2596 dasm_put(Dst, 12631);
2580 } else { 2597 } else {
2581 dasm_put(Dst, 12584); 2598 dasm_put(Dst, 12637);
2582 } 2599 }
2583 dasm_put(Dst, 10286); 2600 dasm_put(Dst, 10306);
2584 break; 2601 break;
2585 case BC_USETP: 2602 case BC_USETP:
2586 dasm_put(Dst, 12587, offsetof(GCfuncL, uvptr), DtA(->v)); 2603 dasm_put(Dst, 12640, offsetof(GCfuncL, uvptr), DtA(->v));
2587 break; 2604 break;
2588 case BC_UCLO: 2605 case BC_UCLO:
2589 dasm_put(Dst, 12627, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2606 dasm_put(Dst, 12680, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2590 break; 2607 break;
2591 2608
2592 case BC_FNEW: 2609 case BC_FNEW:
2593 dasm_put(Dst, 12683, Dt1(->base), Dt1(->base), LJ_TFUNC); 2610 dasm_put(Dst, 12736, Dt1(->base), Dt1(->base), LJ_TFUNC);
2594 break; 2611 break;
2595 2612
2596 /* -- Table ops --------------------------------------------------------- */ 2613 /* -- Table ops --------------------------------------------------------- */
2597 2614
2598 case BC_TNEW: 2615 case BC_TNEW:
2599 dasm_put(Dst, 12750, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2616 dasm_put(Dst, 12803, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2600 break; 2617 break;
2601 case BC_TDUP: 2618 case BC_TDUP:
2602 dasm_put(Dst, 12874, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2619 dasm_put(Dst, 12927, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2603 break; 2620 break;
2604 2621
2605 case BC_GGET: 2622 case BC_GGET:
2606 dasm_put(Dst, 12973, Dt7(->env)); 2623 dasm_put(Dst, 13026, Dt7(->env));
2607 break; 2624 break;
2608 case BC_GSET: 2625 case BC_GSET:
2609 dasm_put(Dst, 12993, Dt7(->env)); 2626 dasm_put(Dst, 13046, Dt7(->env));
2610 break; 2627 break;
2611 2628
2612 case BC_TGETV: 2629 case BC_TGETV:
2613 dasm_put(Dst, 13013, LJ_TTAB); 2630 dasm_put(Dst, 13066, LJ_TTAB);
2614 if (LJ_DUALNUM) { 2631 if (LJ_DUALNUM) {
2615 dasm_put(Dst, 13036, LJ_TISNUM); 2632 dasm_put(Dst, 13089, LJ_TISNUM);
2616 } else { 2633 } else {
2617 dasm_put(Dst, 13050, LJ_TISNUM); 2634 dasm_put(Dst, 13103, LJ_TISNUM);
2618 if (sse) { 2635 if (sse) {
2619 dasm_put(Dst, 13061); 2636 dasm_put(Dst, 13114);
2620 } else { 2637 } else {
2621 } 2638 }
2622 dasm_put(Dst, 13082); 2639 dasm_put(Dst, 13135);
2623 } 2640 }
2624 dasm_put(Dst, 13087, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2641 dasm_put(Dst, 13140, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2625 dasm_put(Dst, 13179, LJ_TSTR); 2642 dasm_put(Dst, 13232, LJ_TSTR);
2626 break; 2643 break;
2627 case BC_TGETS: 2644 case BC_TGETS:
2628 dasm_put(Dst, 13197, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2645 dasm_put(Dst, 13250, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2629 dasm_put(Dst, 13282, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2646 dasm_put(Dst, 13335, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2630 break; 2647 break;
2631 case BC_TGETB: 2648 case BC_TGETB:
2632 dasm_put(Dst, 13354, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2649 dasm_put(Dst, 13407, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2633 dasm_put(Dst, 13450, LJ_TNIL); 2650 dasm_put(Dst, 13503, LJ_TNIL);
2634 break; 2651 break;
2635 2652
2636 case BC_TSETV: 2653 case BC_TSETV:
2637 dasm_put(Dst, 13467, LJ_TTAB); 2654 dasm_put(Dst, 13520, LJ_TTAB);
2638 if (LJ_DUALNUM) { 2655 if (LJ_DUALNUM) {
2639 dasm_put(Dst, 13036, LJ_TISNUM); 2656 dasm_put(Dst, 13089, LJ_TISNUM);
2640 } else { 2657 } else {
2641 dasm_put(Dst, 13050, LJ_TISNUM); 2658 dasm_put(Dst, 13103, LJ_TISNUM);
2642 if (sse) { 2659 if (sse) {
2643 dasm_put(Dst, 13061); 2660 dasm_put(Dst, 13114);
2644 } else { 2661 } else {
2645 } 2662 }
2646 dasm_put(Dst, 13490); 2663 dasm_put(Dst, 13543);
2647 } 2664 }
2648 dasm_put(Dst, 13495, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2665 dasm_put(Dst, 13548, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2649 dasm_put(Dst, 13576, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2666 dasm_put(Dst, 13629, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2650 break; 2667 break;
2651 case BC_TSETS: 2668 case BC_TSETS:
2652 dasm_put(Dst, 13635, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2669 dasm_put(Dst, 13688, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2653 dasm_put(Dst, 13712, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2670 dasm_put(Dst, 13765, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2654 dasm_put(Dst, 13799, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2671 dasm_put(Dst, 13852, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2655 break; 2672 break;
2656 case BC_TSETB: 2673 case BC_TSETB:
2657 dasm_put(Dst, 13891, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2674 dasm_put(Dst, 13944, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2658 dasm_put(Dst, 13986, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2675 dasm_put(Dst, 14039, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2659 break; 2676 break;
2660 2677
2661 case BC_TSETM: 2678 case BC_TSETM:
2662 dasm_put(Dst, 14034, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2679 dasm_put(Dst, 14087, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2663 dasm_put(Dst, 14184, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2680 dasm_put(Dst, 14237, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2664 break; 2681 break;
2665 2682
2666 /* -- Calls and vararg handling ----------------------------------------- */ 2683 /* -- Calls and vararg handling ----------------------------------------- */
2667 2684
2668 case BC_CALL: case BC_CALLM: 2685 case BC_CALL: case BC_CALLM:
2669 dasm_put(Dst, 11299); 2686 dasm_put(Dst, 11352);
2670 if (op == BC_CALLM) { 2687 if (op == BC_CALLM) {
2671 dasm_put(Dst, 14204); 2688 dasm_put(Dst, 14257);
2672 } 2689 }
2673 dasm_put(Dst, 14209, LJ_TFUNC, Dt7(->pc)); 2690 dasm_put(Dst, 14262, LJ_TFUNC, Dt7(->pc));
2674 break; 2691 break;
2675 2692
2676 case BC_CALLMT: 2693 case BC_CALLMT:
2677 dasm_put(Dst, 14204); 2694 dasm_put(Dst, 14257);
2678 break; 2695 break;
2679 case BC_CALLT: 2696 case BC_CALLT:
2680 dasm_put(Dst, 14252, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2697 dasm_put(Dst, 14305, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2681 dasm_put(Dst, 14370, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2698 dasm_put(Dst, 14423, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2682 break; 2699 break;
2683 2700
2684 case BC_ITERC: 2701 case BC_ITERC:
2685 dasm_put(Dst, 14444, LJ_TFUNC, 2+1, Dt7(->pc)); 2702 dasm_put(Dst, 14497, LJ_TFUNC, 2+1, Dt7(->pc));
2686 break; 2703 break;
2687 2704
2688 case BC_ITERN: 2705 case BC_ITERN:
2689#if LJ_HASJIT 2706#if LJ_HASJIT
2690#endif 2707#endif
2691 dasm_put(Dst, 14516, Dt6(->asize), Dt6(->array), LJ_TNIL); 2708 dasm_put(Dst, 14569, Dt6(->asize), Dt6(->array), LJ_TNIL);
2692 if (LJ_DUALNUM) { 2709 if (LJ_DUALNUM) {
2693 dasm_put(Dst, 11198, LJ_TISNUM); 2710 dasm_put(Dst, 11218, LJ_TISNUM);
2694 } else if (sse) { 2711 } else if (sse) {
2695 dasm_put(Dst, 11276); 2712 dasm_put(Dst, 11313);
2696 } else { 2713 } else {
2697 dasm_put(Dst, 14568); 2714 dasm_put(Dst, 14621);
2698 } 2715 }
2699 dasm_put(Dst, 14574); 2716 dasm_put(Dst, 14627);
2700 if (LJ_DUALNUM) { 2717 if (LJ_DUALNUM) {
2701 } else if (sse) { 2718 } else if (sse) {
2702 dasm_put(Dst, 11163); 2719 dasm_put(Dst, 11183);
2703 } else { 2720 } else {
2704 dasm_put(Dst, 11175); 2721 dasm_put(Dst, 11195);
2705 } 2722 }
2706 dasm_put(Dst, 14587, -BCBIAS_J*4); 2723 dasm_put(Dst, 14640, -BCBIAS_J*4);
2707 if (!LJ_DUALNUM && !sse) { 2724 if (!LJ_DUALNUM && !sse) {
2708 dasm_put(Dst, 14641); 2725 dasm_put(Dst, 14694);
2709 } 2726 }
2710 dasm_put(Dst, 14647, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2727 dasm_put(Dst, 14700, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2711 break; 2728 break;
2712 2729
2713 case BC_ISNEXT: 2730 case BC_ISNEXT:
2714 dasm_put(Dst, 14726, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2731 dasm_put(Dst, 14779, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2715 break; 2732 break;
2716 2733
2717 case BC_VARG: 2734 case BC_VARG:
2718 dasm_put(Dst, 14827, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2735 dasm_put(Dst, 14880, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2719 dasm_put(Dst, 14994, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2736 dasm_put(Dst, 15047, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2720 break; 2737 break;
2721 2738
2722 /* -- Returns ----------------------------------------------------------- */ 2739 /* -- Returns ----------------------------------------------------------- */
2723 2740
2724 case BC_RETM: 2741 case BC_RETM:
2725 dasm_put(Dst, 14204); 2742 dasm_put(Dst, 14257);
2726 break; 2743 break;
2727 2744
2728 case BC_RET: case BC_RET0: case BC_RET1: 2745 case BC_RET: case BC_RET0: case BC_RET1:
2729 if (op != BC_RET0) { 2746 if (op != BC_RET0) {
2730 dasm_put(Dst, 15064); 2747 dasm_put(Dst, 15117);
2731 } 2748 }
2732 dasm_put(Dst, 15068, FRAME_TYPE); 2749 dasm_put(Dst, 15121, FRAME_TYPE);
2733 switch (op) { 2750 switch (op) {
2734 case BC_RET: 2751 case BC_RET:
2735 dasm_put(Dst, 15087); 2752 dasm_put(Dst, 15140);
2736 break; 2753 break;
2737 case BC_RET1: 2754 case BC_RET1:
2738 dasm_put(Dst, 15141); 2755 dasm_put(Dst, 15194);
2739 /* fallthrough */ 2756 /* fallthrough */
2740 case BC_RET0: 2757 case BC_RET0:
2741 dasm_put(Dst, 15151); 2758 dasm_put(Dst, 15204);
2742 default: 2759 default:
2743 break; 2760 break;
2744 } 2761 }
2745 dasm_put(Dst, 15162, Dt7(->pc), PC2PROTO(k)); 2762 dasm_put(Dst, 15215, Dt7(->pc), PC2PROTO(k));
2746 if (op == BC_RET) { 2763 if (op == BC_RET) {
2747 dasm_put(Dst, 15210, LJ_TNIL); 2764 dasm_put(Dst, 15263, LJ_TNIL);
2748 } else { 2765 } else {
2749 dasm_put(Dst, 15221, LJ_TNIL); 2766 dasm_put(Dst, 15274, LJ_TNIL);
2750 } 2767 }
2751 dasm_put(Dst, 15228, -FRAME_VARG, FRAME_TYPEP); 2768 dasm_put(Dst, 15281, -FRAME_VARG, FRAME_TYPEP);
2752 if (op != BC_RET0) { 2769 if (op != BC_RET0) {
2753 dasm_put(Dst, 15252); 2770 dasm_put(Dst, 15305);
2754 } 2771 }
2755 dasm_put(Dst, 4732); 2772 dasm_put(Dst, 4752);
2756 break; 2773 break;
2757 2774
2758 /* -- Loops and branches ------------------------------------------------ */ 2775 /* -- Loops and branches ------------------------------------------------ */
@@ -2760,7 +2777,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2760 2777
2761 case BC_FORL: 2778 case BC_FORL:
2762#if LJ_HASJIT 2779#if LJ_HASJIT
2763 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT); 2780 dasm_put(Dst, 15309, HOTCOUNT_PCMASK, GG_DISP2HOT);
2764#endif 2781#endif
2765 break; 2782 break;
2766 2783
@@ -2772,111 +2789,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2772 case BC_FORI: 2789 case BC_FORI:
2773 case BC_IFORL: 2790 case BC_IFORL:
2774 vk = (op == BC_IFORL || op == BC_JFORL); 2791 vk = (op == BC_IFORL || op == BC_JFORL);
2775 dasm_put(Dst, 15277); 2792 dasm_put(Dst, 15330);
2776 if (LJ_DUALNUM) { 2793 if (LJ_DUALNUM) {
2777 dasm_put(Dst, 15281, LJ_TISNUM); 2794 dasm_put(Dst, 15334, LJ_TISNUM);
2778 if (!vk) { 2795 if (!vk) {
2779 dasm_put(Dst, 15291, LJ_TISNUM, LJ_TISNUM); 2796 dasm_put(Dst, 15344, LJ_TISNUM, LJ_TISNUM);
2780 } else { 2797 } else {
2781#ifdef LUA_USE_ASSERT 2798#ifdef LUA_USE_ASSERT
2782 dasm_put(Dst, 15320, LJ_TISNUM, LJ_TISNUM); 2799 dasm_put(Dst, 15373, LJ_TISNUM, LJ_TISNUM);
2783#endif 2800#endif
2784 dasm_put(Dst, 15339); 2801 dasm_put(Dst, 15392);
2785 } 2802 }
2786 dasm_put(Dst, 15358, LJ_TISNUM); 2803 dasm_put(Dst, 15411, LJ_TISNUM);
2787 if (op == BC_FORI) { 2804 if (op == BC_FORI) {
2788 dasm_put(Dst, 15369, -BCBIAS_J*4); 2805 dasm_put(Dst, 15422, -BCBIAS_J*4);
2789 } else if (op == BC_JFORI) { 2806 } else if (op == BC_JFORI) {
2790 dasm_put(Dst, 15383, -BCBIAS_J*4, BC_JLOOP); 2807 dasm_put(Dst, 15436, -BCBIAS_J*4, BC_JLOOP);
2791 } else if (op == BC_IFORL) { 2808 } else if (op == BC_IFORL) {
2792 dasm_put(Dst, 15401, -BCBIAS_J*4); 2809 dasm_put(Dst, 15454, -BCBIAS_J*4);
2793 } else { 2810 } else {
2794 dasm_put(Dst, 15393, BC_JLOOP); 2811 dasm_put(Dst, 15446, BC_JLOOP);
2795 } 2812 }
2796 dasm_put(Dst, 15415); 2813 dasm_put(Dst, 15468);
2797 if (vk) { 2814 if (vk) {
2798 dasm_put(Dst, 15440); 2815 dasm_put(Dst, 15493);
2799 } 2816 }
2800 dasm_put(Dst, 15358, LJ_TISNUM); 2817 dasm_put(Dst, 15411, LJ_TISNUM);
2801 if (op == BC_FORI) { 2818 if (op == BC_FORI) {
2802 dasm_put(Dst, 15449); 2819 dasm_put(Dst, 15502);
2803 } else if (op == BC_JFORI) { 2820 } else if (op == BC_JFORI) {
2804 dasm_put(Dst, 15454, -BCBIAS_J*4, BC_JLOOP); 2821 dasm_put(Dst, 15507, -BCBIAS_J*4, BC_JLOOP);
2805 } else if (op == BC_IFORL) { 2822 } else if (op == BC_IFORL) {
2806 dasm_put(Dst, 15468); 2823 dasm_put(Dst, 15521);
2807 } else { 2824 } else {
2808 dasm_put(Dst, 15464, BC_JLOOP); 2825 dasm_put(Dst, 15517, BC_JLOOP);
2809 } 2826 }
2810 dasm_put(Dst, 15473); 2827 dasm_put(Dst, 15526);
2811 } else if (!vk) { 2828 } else if (!vk) {
2812 dasm_put(Dst, 15480, LJ_TISNUM); 2829 dasm_put(Dst, 15533, LJ_TISNUM);
2813 } 2830 }
2814 if (!vk) { 2831 if (!vk) {
2815 dasm_put(Dst, 15486, LJ_TISNUM); 2832 dasm_put(Dst, 15539, LJ_TISNUM);
2816 } else { 2833 } else {
2817#ifdef LUA_USE_ASSERT 2834#ifdef LUA_USE_ASSERT
2818 dasm_put(Dst, 15500, LJ_TISNUM, LJ_TISNUM); 2835 dasm_put(Dst, 15553, LJ_TISNUM, LJ_TISNUM);
2819#endif 2836#endif
2820 } 2837 }
2821 dasm_put(Dst, 15519); 2838 dasm_put(Dst, 15572);
2822 if (!vk) { 2839 if (!vk) {
2823 dasm_put(Dst, 15523, LJ_TISNUM); 2840 dasm_put(Dst, 15576, LJ_TISNUM);
2824 } 2841 }
2825 if (sse) { 2842 if (sse) {
2826 dasm_put(Dst, 15532); 2843 dasm_put(Dst, 15585);
2827 if (vk) { 2844 if (vk) {
2828 dasm_put(Dst, 15544); 2845 dasm_put(Dst, 15597);
2829 } else { 2846 } else {
2830 dasm_put(Dst, 15563); 2847 dasm_put(Dst, 15616);
2831 } 2848 }
2832 dasm_put(Dst, 15568); 2849 dasm_put(Dst, 15621);
2833 } else { 2850 } else {
2834 dasm_put(Dst, 15581); 2851 dasm_put(Dst, 15634);
2835 if (vk) { 2852 if (vk) {
2836 dasm_put(Dst, 15587); 2853 dasm_put(Dst, 15640);
2837 } else { 2854 } else {
2838 dasm_put(Dst, 15603); 2855 dasm_put(Dst, 15656);
2839 } 2856 }
2840 dasm_put(Dst, 15611); 2857 dasm_put(Dst, 15664);
2841 if (cmov) { 2858 if (cmov) {
2842 dasm_put(Dst, 10241); 2859 dasm_put(Dst, 10261);
2843 } else { 2860 } else {
2844 dasm_put(Dst, 10247); 2861 dasm_put(Dst, 10267);
2845 } 2862 }
2846 if (!cmov) { 2863 if (!cmov) {
2847 dasm_put(Dst, 15616); 2864 dasm_put(Dst, 15669);
2848 } 2865 }
2849 } 2866 }
2850 if (op == BC_FORI) { 2867 if (op == BC_FORI) {
2851 if (LJ_DUALNUM) { 2868 if (LJ_DUALNUM) {
2852 dasm_put(Dst, 15622); 2869 dasm_put(Dst, 15675);
2853 } else { 2870 } else {
2854 dasm_put(Dst, 15627, -BCBIAS_J*4); 2871 dasm_put(Dst, 15680, -BCBIAS_J*4);
2855 } 2872 }
2856 } else if (op == BC_JFORI) { 2873 } else if (op == BC_JFORI) {
2857 dasm_put(Dst, 15637, -BCBIAS_J*4, BC_JLOOP); 2874 dasm_put(Dst, 15690, -BCBIAS_J*4, BC_JLOOP);
2858 } else if (op == BC_IFORL) { 2875 } else if (op == BC_IFORL) {
2859 if (LJ_DUALNUM) { 2876 if (LJ_DUALNUM) {
2860 dasm_put(Dst, 15651); 2877 dasm_put(Dst, 15704);
2861 } else { 2878 } else {
2862 dasm_put(Dst, 15656, -BCBIAS_J*4); 2879 dasm_put(Dst, 15709, -BCBIAS_J*4);
2863 } 2880 }
2864 } else { 2881 } else {
2865 dasm_put(Dst, 15647, BC_JLOOP); 2882 dasm_put(Dst, 15700, BC_JLOOP);
2866 } 2883 }
2867 if (LJ_DUALNUM) { 2884 if (LJ_DUALNUM) {
2868 dasm_put(Dst, 10170); 2885 dasm_put(Dst, 10190);
2869 } else { 2886 } else {
2870 dasm_put(Dst, 10944); 2887 dasm_put(Dst, 10964);
2871 } 2888 }
2872 if (sse) { 2889 if (sse) {
2873 dasm_put(Dst, 15666); 2890 dasm_put(Dst, 15719);
2874 } 2891 }
2875 break; 2892 break;
2876 2893
2877 case BC_ITERL: 2894 case BC_ITERL:
2878#if LJ_HASJIT 2895#if LJ_HASJIT
2879 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT); 2896 dasm_put(Dst, 15309, HOTCOUNT_PCMASK, GG_DISP2HOT);
2880#endif 2897#endif
2881 break; 2898 break;
2882 2899
@@ -2885,33 +2902,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2885 break; 2902 break;
2886#endif 2903#endif
2887 case BC_IITERL: 2904 case BC_IITERL:
2888 dasm_put(Dst, 15677, LJ_TNIL); 2905 dasm_put(Dst, 15730, LJ_TNIL);
2889 if (op == BC_JITERL) { 2906 if (op == BC_JITERL) {
2890 dasm_put(Dst, 15692, BC_JLOOP); 2907 dasm_put(Dst, 15745, BC_JLOOP);
2891 } else { 2908 } else {
2892 dasm_put(Dst, 15706, -BCBIAS_J*4); 2909 dasm_put(Dst, 15759, -BCBIAS_J*4);
2893 } 2910 }
2894 dasm_put(Dst, 10284); 2911 dasm_put(Dst, 10304);
2895 break; 2912 break;
2896 2913
2897 case BC_LOOP: 2914 case BC_LOOP:
2898#if LJ_HASJIT 2915#if LJ_HASJIT
2899 dasm_put(Dst, 15256, HOTCOUNT_PCMASK, GG_DISP2HOT); 2916 dasm_put(Dst, 15309, HOTCOUNT_PCMASK, GG_DISP2HOT);
2900#endif 2917#endif
2901 break; 2918 break;
2902 2919
2903 case BC_ILOOP: 2920 case BC_ILOOP:
2904 dasm_put(Dst, 10286); 2921 dasm_put(Dst, 10306);
2905 break; 2922 break;
2906 2923
2907 case BC_JLOOP: 2924 case BC_JLOOP:
2908#if LJ_HASJIT 2925#if LJ_HASJIT
2909 dasm_put(Dst, 15722, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2926 dasm_put(Dst, 15775, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2910#endif 2927#endif
2911 break; 2928 break;
2912 2929
2913 case BC_JMP: 2930 case BC_JMP:
2914 dasm_put(Dst, 15763, -BCBIAS_J*4); 2931 dasm_put(Dst, 15816, -BCBIAS_J*4);
2915 break; 2932 break;
2916 2933
2917 /* -- Function headers -------------------------------------------------- */ 2934 /* -- Function headers -------------------------------------------------- */
@@ -2925,7 +2942,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2925 2942
2926 case BC_FUNCF: 2943 case BC_FUNCF:
2927#if LJ_HASJIT 2944#if LJ_HASJIT
2928 dasm_put(Dst, 15789, HOTCOUNT_PCMASK, GG_DISP2HOT); 2945 dasm_put(Dst, 15842, HOTCOUNT_PCMASK, GG_DISP2HOT);
2929#endif 2946#endif
2930 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2947 case BC_FUNCV: /* NYI: compiled vararg functions. */
2931 break; 2948 break;
@@ -2935,47 +2952,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2935 break; 2952 break;
2936#endif 2953#endif
2937 case BC_IFUNCF: 2954 case BC_IFUNCF:
2938 dasm_put(Dst, 15810, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2955 dasm_put(Dst, 15863, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2939 if (op == BC_JFUNCF) { 2956 if (op == BC_JFUNCF) {
2940 dasm_put(Dst, 15841, BC_JLOOP); 2957 dasm_put(Dst, 15894, BC_JLOOP);
2941 } else { 2958 } else {
2942 dasm_put(Dst, 10286); 2959 dasm_put(Dst, 10306);
2943 } 2960 }
2944 dasm_put(Dst, 15850, LJ_TNIL); 2961 dasm_put(Dst, 15903, LJ_TNIL);
2945 break; 2962 break;
2946 2963
2947 case BC_JFUNCV: 2964 case BC_JFUNCV:
2948#if !LJ_HASJIT 2965#if !LJ_HASJIT
2949 break; 2966 break;
2950#endif 2967#endif
2951 dasm_put(Dst, 9393); 2968 dasm_put(Dst, 9413);
2952 break; /* NYI: compiled vararg functions. */ 2969 break; /* NYI: compiled vararg functions. */
2953 2970
2954 case BC_IFUNCV: 2971 case BC_IFUNCV:
2955 dasm_put(Dst, 15872, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2972 dasm_put(Dst, 15925, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2956 if (op == BC_JFUNCV) { 2973 if (op == BC_JFUNCV) {
2957 dasm_put(Dst, 15841, BC_JLOOP); 2974 dasm_put(Dst, 15894, BC_JLOOP);
2958 } else { 2975 } else {
2959 dasm_put(Dst, 15969, -4+PC2PROTO(k)); 2976 dasm_put(Dst, 16022, -4+PC2PROTO(k));
2960 } 2977 }
2961 dasm_put(Dst, 15994, LJ_TNIL); 2978 dasm_put(Dst, 16047, LJ_TNIL);
2962 break; 2979 break;
2963 2980
2964 case BC_FUNCC: 2981 case BC_FUNCC:
2965 case BC_FUNCCW: 2982 case BC_FUNCCW:
2966 dasm_put(Dst, 16016, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2983 dasm_put(Dst, 16069, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2967 if (op == BC_FUNCC) { 2984 if (op == BC_FUNCC) {
2968 dasm_put(Dst, 2404); 2985 dasm_put(Dst, 2424);
2969 } else { 2986 } else {
2970 dasm_put(Dst, 16046); 2987 dasm_put(Dst, 16099);
2971 } 2988 }
2972 dasm_put(Dst, 16054, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2989 dasm_put(Dst, 16107, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2973 if (op == BC_FUNCC) { 2990 if (op == BC_FUNCC) {
2974 dasm_put(Dst, 16064); 2991 dasm_put(Dst, 16117);
2975 } else { 2992 } else {
2976 dasm_put(Dst, 16069, DISPATCH_GL(wrapf)); 2993 dasm_put(Dst, 16122, DISPATCH_GL(wrapf));
2977 } 2994 }
2978 dasm_put(Dst, 16075, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2995 dasm_put(Dst, 16128, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2979 break; 2996 break;
2980 2997
2981 /* ---------------------------------------------------------------------- */ 2998 /* ---------------------------------------------------------------------- */
@@ -3003,7 +3020,7 @@ static int build_backend(BuildCtx *ctx)
3003 3020
3004 build_subroutines(ctx, cmov, sse); 3021 build_subroutines(ctx, cmov, sse);
3005 3022
3006 dasm_put(Dst, 16101); 3023 dasm_put(Dst, 16154);
3007 for (op = 0; op < BC__MAX; op++) 3024 for (op = 0; op < BC__MAX; op++)
3008 build_ins(ctx, (BCOp)op, op, cmov, sse); 3025 build_ins(ctx, (BCOp)op, op, cmov, sse);
3009 3026
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 9e6c72bb..bb813284 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[15958] = { 15static const unsigned char build_actionlist[16011] = {
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,
@@ -89,73 +89,74 @@ static const unsigned char build_actionlist[15958] = {
89 252,252,137,68,36,32,139,108,36,96,137,149,233,137,202,137,252,233,137,116, 89 252,252,137,68,36,32,139,108,36,96,137,149,233,137,202,137,252,233,137,116,
90 36,100,232,251,1,6,139,149,233,133,192,15,132,244,42,248,44,137,193,41,208, 90 36,100,232,251,1,6,139,149,233,133,192,15,132,244,42,248,44,137,193,41,208,
91 137,113,252,244,141,176,233,184,237,252,233,244,28,248,56,139,108,36,96,137, 91 137,113,252,244,141,176,233,184,237,252,233,244,28,248,56,139,108,36,96,137,
92 149,233,141,20,194,137,252,233,137,116,36,100,232,251,1,7,139,149,233,252, 92 149,233,141,20,194,137,252,233,137,116,36,100,232,251,1,7,139,149,233,255,
93 233,244,44,248,57,141,76,202,8,248,29,137,76,36,84,137,68,36,80,131,252,233, 93 133,192,15,133,244,44,15,183,70,252,254,139,12,194,252,233,244,57,255,252,
94 8,139,108,36,96,137,149,233,255,137,202,68,141,4,193,137,252,233,137,116, 94 233,244,44,255,248,58,141,76,202,8,248,29,137,76,36,84,137,68,36,80,131,252,
95 233,8,139,108,36,96,137,149,233,137,202,68,141,4,193,137,252,233,137,116,
95 36,100,232,251,1,8,139,149,233,139,76,36,84,139,68,36,80,139,105,252,248, 96 36,100,232,251,1,8,139,149,233,139,76,36,84,139,68,36,80,139,105,252,248,
96 131,192,1,57,215,15,132,244,58,137,202,137,114,252,252,139,181,233,139,14, 97 131,192,1,57,215,15,132,244,59,137,202,137,114,252,252,139,181,233,139,14,
97 15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,59,139,108,36, 98 15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,60,139,108,36,
98 96,137,149,233,137,202,137,252,233,137,116,36,100,232,251,1,9,139,149,233, 99 96,137,149,233,137,202,137,252,233,137,116,36,100,232,251,1,9,139,149,233,
99 139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,252,235,233, 100 139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,252,235,233,
100 248,60,129,252,248,239,15,130,244,61,139,106,4,129,252,253,239,15,131,244, 101 248,61,129,252,248,239,15,130,244,62,139,106,4,129,252,253,239,15,131,244,
101 61,139,114,252,252,137,68,36,84,137,106,252,252,139,42,137,106,252,248,131, 102 62,139,114,252,252,137,68,36,84,137,106,252,252,139,42,137,106,252,248,131,
102 232,2,15,132,244,248,137,209,248,1,131,193,8,72,139,41,72,137,105,252,248, 103 232,2,15,132,244,248,255,137,209,248,1,131,193,8,72,139,41,72,137,105,252,
103 131,232,1,15,133,244,1,248,2,255,139,68,36,84,252,233,244,62,248,63,129,252, 104 248,131,232,1,15,133,244,1,248,2,139,68,36,84,252,233,244,63,248,64,129,252,
104 248,239,15,130,244,61,139,106,4,137,252,233,193,252,249,15,131,252,249,252, 105 248,239,15,130,244,62,139,106,4,137,252,233,193,252,249,15,131,252,249,252,
105 254,15,132,244,249,184,237,252,247,213,57,232,255,15,71,197,255,15,134,244, 106 254,15,132,244,249,184,237,252,247,213,57,232,255,15,71,197,255,15,134,244,
106 247,137,232,248,1,255,248,2,139,106,252,248,139,132,253,197,233,139,114,252, 107 247,137,232,248,1,255,248,2,139,106,252,248,139,132,253,197,233,139,114,252,
107 252,199,66,252,252,237,137,66,252,248,252,233,244,64,248,3,184,237,252,233, 108 252,199,66,252,252,237,137,66,252,248,252,233,244,65,248,3,184,237,252,233,
108 244,2,248,65,129,252,248,239,15,130,244,61,139,106,4,139,114,252,252,129, 109 244,2,248,66,129,252,248,239,15,130,244,62,139,106,4,139,114,252,252,129,
109 252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199, 110 252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199,
110 66,252,252,237,255,15,132,244,64,139,131,233,199,66,252,252,237,137,106,252, 111 66,252,252,237,255,15,132,244,65,139,131,233,199,66,252,252,237,137,106,252,
111 248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15, 112 248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,
112 133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244, 113 133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,
113 3,255,252,233,244,64,248,5,139,105,4,129,252,253,239,15,132,244,64,139,1, 114 3,255,252,233,244,65,248,5,139,105,4,129,252,253,239,15,132,244,65,139,1,
114 137,106,252,252,137,66,252,248,252,233,244,64,248,6,129,252,253,239,15,132, 115 137,106,252,252,137,66,252,248,252,233,244,65,248,6,129,252,253,239,15,132,
115 244,1,129,252,253,239,15,135,244,254,129,252,253,239,15,134,244,253,189,237, 116 244,1,129,252,253,239,15,135,244,254,129,252,253,239,15,134,244,253,189,237,
116 252,233,244,254,248,7,255,189,237,248,8,252,247,213,139,172,253,171,233,252, 117 252,233,244,254,248,7,255,189,237,248,8,252,247,213,139,172,253,171,233,252,
117 233,244,2,248,66,129,252,248,239,15,130,244,61,129,122,253,4,239,15,133,244, 118 233,244,2,248,67,129,252,248,239,15,130,244,62,129,122,253,4,239,15,133,244,
118 61,139,42,131,189,233,0,15,133,244,61,129,122,253,12,239,15,133,244,61,139, 119 62,139,42,131,189,233,0,15,133,244,62,129,122,253,12,239,15,133,244,62,139,
119 66,8,137,133,233,139,114,252,252,199,66,252,252,237,255,137,106,252,248,252, 120 66,8,137,133,233,139,114,252,252,199,66,252,252,237,255,137,106,252,248,252,
120 246,133,233,235,15,132,244,247,128,165,233,235,139,131,233,137,171,233,137, 121 246,133,233,235,15,132,244,247,128,165,233,235,139,131,233,137,171,233,137,
121 133,233,248,1,252,233,244,64,248,67,129,252,248,239,15,130,244,61,129,122, 122 133,233,248,1,252,233,244,65,248,68,129,252,248,239,15,130,244,62,129,122,
122 253,4,239,15,133,244,61,137,213,68,141,66,8,139,18,139,76,36,96,232,251,1, 123 253,4,239,15,133,244,62,137,213,68,141,66,8,139,18,139,76,36,96,232,251,1,
123 10,137,252,234,72,139,40,139,114,252,252,72,137,106,252,248,252,233,244,64, 124 10,137,252,234,72,139,40,139,114,252,252,72,137,106,252,248,252,233,244,65,
124 248,68,255,129,252,248,239,15,133,244,61,129,122,253,4,239,255,15,133,244, 125 248,69,255,129,252,248,239,15,133,244,62,129,122,253,4,239,255,15,133,244,
125 247,139,42,252,233,244,69,248,1,15,135,244,61,255,15,131,244,61,255,252,242, 126 247,139,42,252,233,244,70,248,1,15,135,244,62,255,15,131,244,62,255,252,242,
126 15,16,2,252,233,244,70,255,221,2,252,233,244,71,255,248,72,129,252,248,239, 127 15,16,2,252,233,244,71,255,221,2,252,233,244,72,255,248,73,129,252,248,239,
127 15,130,244,61,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2,248, 128 15,130,244,62,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2,248,
128 2,199,66,252,252,237,137,66,252,248,252,233,244,64,248,3,129,122,253,4,239, 129 2,199,66,252,252,237,137,66,252,248,252,233,244,65,248,3,129,122,253,4,239,
129 15,135,244,61,131,187,233,0,15,133,244,61,139,171,233,59,171,233,255,15,130, 130 15,135,244,62,131,187,233,0,15,133,244,62,139,171,233,59,171,233,255,15,130,
130 244,247,232,244,73,248,1,139,108,36,96,137,149,233,137,116,36,100,137,252, 131 244,247,232,244,74,248,1,139,108,36,96,137,149,233,137,116,36,100,137,252,
131 233,255,232,251,1,11,255,232,251,1,12,255,139,149,233,252,233,244,2,248,74, 132 233,255,232,251,1,11,255,232,251,1,12,255,139,149,233,252,233,244,2,248,75,
132 129,252,248,239,15,130,244,61,15,132,244,248,248,1,129,122,253,4,239,15,133, 133 129,252,248,239,15,130,244,62,15,132,244,248,248,1,129,122,253,4,239,15,133,
133 244,61,139,108,36,96,137,149,233,137,149,233,139,114,252,252,68,141,66,8, 134 244,62,139,108,36,96,137,149,233,137,149,233,139,114,252,252,68,141,66,8,
134 139,18,137,252,233,137,116,36,100,232,251,1,13,139,149,233,133,192,15,132, 135 139,18,137,252,233,137,116,36,100,232,251,1,13,139,149,233,133,192,15,132,
135 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,75,184, 136 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,76,184,
136 237,255,252,233,244,76,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252, 137 237,255,252,233,244,77,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,
137 252,237,252,233,244,64,248,77,129,252,248,239,15,130,244,61,139,42,129,122, 138 252,237,252,233,244,65,248,78,129,252,248,239,15,130,244,62,139,42,129,122,
138 253,4,239,15,133,244,61,255,131,189,233,0,15,133,244,61,255,139,106,252,248, 139 253,4,239,15,133,244,62,255,131,189,233,0,15,133,244,62,255,139,106,252,248,
139 139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237, 140 139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,
140 184,237,252,233,244,76,248,78,129,252,248,239,15,130,244,61,129,122,253,4, 141 184,237,252,233,244,77,248,79,129,252,248,239,15,130,244,62,129,122,253,4,
141 239,15,133,244,61,129,122,253,12,239,255,139,114,252,252,255,139,66,8,131, 142 239,15,133,244,62,129,122,253,12,239,255,139,114,252,252,255,139,66,8,131,
142 192,1,199,66,252,252,237,137,66,252,248,255,252,242,15,16,66,8,72,189,237, 143 192,1,199,66,252,252,237,137,66,252,248,255,252,242,15,16,66,8,72,189,237,
143 237,102,72,15,110,205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66, 144 237,102,72,15,110,205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,
144 252,248,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129, 145 252,248,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,
145 120,253,4,239,15,132,244,79,72,139,40,72,137,42,252,233,244,75,248,2,131, 146 120,253,4,239,15,132,244,80,72,139,40,72,137,42,252,233,244,76,248,2,131,
146 189,233,0,15,132,244,79,137,252,233,137,213,137,194,232,251,1,14,137,252, 147 189,233,0,15,132,244,80,137,252,233,137,213,137,194,232,251,1,14,137,252,
147 234,133,192,15,133,244,1,248,79,184,237,252,233,244,76,248,80,255,139,106, 148 234,133,192,15,133,244,1,248,80,184,237,252,233,244,77,248,81,255,139,106,
148 252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,255, 149 252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,
149 199,66,12,237,199,66,8,0,0,0,0,255,15,87,192,252,242,15,17,66,8,255,217,252, 150 199,66,12,237,199,66,8,0,0,0,0,255,15,87,192,252,242,15,17,66,8,255,217,252,
150 238,221,90,8,255,184,237,252,233,244,76,248,81,129,252,248,239,15,130,244, 151 238,221,90,8,255,184,237,252,233,244,77,248,82,129,252,248,239,15,130,244,
151 61,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229, 152 62,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,
152 1,1,252,238,252,233,244,28,248,82,129,252,248,239,15,130,244,61,129,122,253, 153 1,1,252,238,252,233,244,28,248,83,129,252,248,239,15,130,244,62,129,122,253,
153 12,239,15,133,244,61,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114, 154 12,239,15,133,244,62,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,
154 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,83,129,252, 155 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,84,129,252,
155 248,239,15,130,244,61,139,42,139,114,252,252,137,116,36,100,137,108,36,80, 156 248,239,15,130,244,62,139,42,139,114,252,252,137,116,36,100,137,108,36,80,
156 129,122,253,4,239,15,133,244,61,72,131,189,233,0,15,133,244,61,128,189,233, 157 129,122,253,4,239,15,133,244,62,72,131,189,233,0,15,133,244,62,128,189,233,
157 235,15,135,244,61,139,141,233,15,132,244,247,255,59,141,233,15,132,244,61, 158 235,15,135,244,62,139,141,233,15,132,244,247,255,59,141,233,15,132,244,62,
158 248,1,141,116,193,252,240,59,181,233,15,135,244,61,137,181,233,139,108,36, 159 248,1,141,116,193,252,240,59,181,233,15,135,244,62,137,181,233,139,108,36,
159 96,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,206, 160 96,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,206,
160 15,132,244,249,248,2,72,139,4,46,72,137,70,252,248,131,252,238,8,57,206,15, 161 15,132,244,249,248,2,72,139,4,46,72,137,70,252,248,131,252,238,8,57,206,15,
161 133,244,2,248,3,137,202,139,76,36,80,232,244,25,199,131,233,237,255,139,108, 162 133,244,2,248,3,137,202,139,76,36,80,232,244,25,199,131,233,237,255,139,108,
@@ -167,10 +168,10 @@ static const unsigned char build_actionlist[15958] = {
167 252,255,252,247,198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252, 168 252,255,252,247,198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252,
168 252,237,139,142,233,131,252,233,8,137,142,233,72,139,1,72,137,2,184,237,252, 169 252,237,139,142,233,131,252,233,8,137,142,233,72,139,1,72,137,2,184,237,252,
169 233,244,7,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,251, 170 233,244,7,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,251,
170 1,0,139,116,36,80,139,149,233,252,233,244,4,248,84,139,106,252,248,139,173, 171 1,0,139,116,36,80,139,149,233,252,233,244,4,248,85,139,106,252,248,139,173,
171 233,139,114,252,252,137,116,36,100,137,108,36,80,72,131,189,233,0,15,133, 172 233,139,114,252,252,137,116,36,100,137,108,36,80,72,131,189,233,0,15,133,
172 244,61,255,128,189,233,235,15,135,244,61,139,141,233,15,132,244,247,59,141, 173 244,62,255,128,189,233,235,15,135,244,62,139,141,233,15,132,244,247,59,141,
173 233,15,132,244,61,248,1,141,116,193,252,248,59,181,233,15,135,244,61,137, 174 233,15,132,244,62,248,1,141,116,193,252,248,59,181,233,15,135,244,62,137,
174 181,233,139,108,36,96,137,149,233,137,149,233,141,108,194,252,240,72,41,252, 175 181,233,139,108,36,96,137,149,233,137,149,233,141,108,194,252,240,72,41,252,
175 245,57,206,15,132,244,249,248,2,255,72,139,4,46,72,137,70,252,248,131,252, 176 245,57,206,15,132,244,249,248,2,255,72,139,4,46,72,137,70,252,248,131,252,
176 238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,25,199,131,233, 177 238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,25,199,131,233,
@@ -181,210 +182,210 @@ static const unsigned char build_actionlist[15958] = {
181 7,139,116,36,100,137,68,36,84,49,201,252,247,198,237,15,132,244,13,252,233, 182 7,139,116,36,100,137,68,36,84,49,201,252,247,198,237,15,132,244,13,252,233,
182 244,14,248,8,137,252,242,137,252,233,232,251,1,15,248,9,139,76,36,80,137, 183 244,14,248,8,137,252,242,137,252,233,232,251,1,15,248,9,139,76,36,80,137,
183 185,233,137,252,242,137,252,233,232,251,1,0,139,116,36,80,139,149,233,252, 184 185,233,137,252,242,137,252,233,232,251,1,0,139,116,36,80,139,149,233,252,
184 233,244,4,248,85,139,108,36,96,72,252,247,133,233,237,15,132,244,61,255,137, 185 233,244,4,248,86,139,108,36,96,72,252,247,133,233,237,15,132,244,62,255,137,
185 149,233,141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,235,136, 186 149,233,141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,
186 133,233,252,233,244,16,255,248,69,255,248,71,139,114,252,252,221,90,252,248, 187 133,233,252,233,244,16,255,248,70,255,248,72,139,114,252,252,221,90,252,248,
187 252,233,244,64,255,248,86,129,252,248,239,15,130,244,61,255,129,122,253,4, 188 252,233,244,65,255,248,87,129,252,248,239,15,130,244,62,255,129,122,253,4,
188 239,15,133,244,248,139,42,131,252,253,0,15,137,244,69,252,247,221,15,136, 189 239,15,133,244,248,139,42,131,252,253,0,15,137,244,70,252,247,221,15,136,
189 244,247,248,87,248,69,139,114,252,252,199,66,252,252,237,137,106,252,248, 190 244,247,248,88,248,70,139,114,252,252,199,66,252,252,237,137,106,252,248,
190 252,233,244,64,248,1,139,114,252,252,199,66,252,252,0,0,224,65,199,66,252, 191 252,233,244,65,248,1,139,114,252,252,199,66,252,252,0,0,224,65,199,66,252,
191 248,0,0,0,0,252,233,244,64,248,2,15,135,244,61,255,129,122,253,4,239,15,131, 192 248,0,0,0,0,252,233,244,65,248,2,15,135,244,62,255,129,122,253,4,239,15,131,
192 244,61,255,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248, 193 244,62,255,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,
193 70,139,114,252,252,252,242,15,17,66,252,248,255,221,2,217,225,248,70,248, 194 71,139,114,252,252,252,242,15,17,66,252,248,255,221,2,217,225,248,71,248,
194 71,139,114,252,252,221,90,252,248,255,248,64,184,237,248,76,137,68,36,84, 195 72,139,114,252,252,221,90,252,248,255,248,65,184,237,248,77,137,68,36,84,
195 248,62,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252, 196 248,63,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,
196 15,182,78,252,253,72,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131, 197 15,182,78,252,253,72,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,
197 198,4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244,237,131,192, 198 198,4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244,237,131,192,
198 1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233, 199 1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,
199 244,14,248,88,255,129,122,253,4,239,15,133,244,247,139,42,252,233,244,69, 200 244,14,248,89,255,129,122,253,4,239,15,133,244,247,139,42,252,233,244,70,
200 248,1,15,135,244,61,255,252,242,15,16,2,232,244,89,255,252,242,15,45,232, 201 248,1,15,135,244,62,255,252,242,15,16,2,232,244,90,255,252,242,15,45,232,
201 129,252,253,0,0,0,128,15,133,244,69,252,242,15,42,205,102,15,46,193,15,138, 202 129,252,253,0,0,0,128,15,133,244,70,252,242,15,42,205,102,15,46,193,15,138,
202 244,70,15,132,244,69,255,221,2,232,244,89,255,248,90,255,252,242,15,16,2, 203 244,71,15,132,244,70,255,221,2,232,244,90,255,248,91,255,252,242,15,16,2,
203 232,244,91,255,221,2,232,244,91,255,248,92,129,252,248,239,15,130,244,61, 204 232,244,92,255,221,2,232,244,92,255,248,93,129,252,248,239,15,130,244,62,
204 129,122,253,4,239,15,131,244,61,252,242,15,81,2,252,233,244,70,255,248,92, 205 129,122,253,4,239,15,131,244,62,252,242,15,81,2,252,233,244,71,255,248,93,
205 129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,217,252, 206 129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,217,252,
206 250,252,233,244,71,255,248,93,129,252,248,239,15,130,244,61,129,122,253,4, 207 250,252,233,244,72,255,248,94,129,252,248,239,15,130,244,62,129,122,253,4,
207 239,15,131,244,61,217,252,237,221,2,217,252,241,252,233,244,71,248,94,129, 208 239,15,131,244,62,217,252,237,221,2,217,252,241,252,233,244,72,248,95,129,
208 252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,217,252,236,221, 209 252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,217,252,236,221,
209 2,217,252,241,252,233,244,71,248,95,129,252,248,239,255,15,130,244,61,129, 210 2,217,252,241,252,233,244,72,248,96,129,252,248,239,255,15,130,244,62,129,
210 122,253,4,239,15,131,244,61,221,2,232,244,96,252,233,244,71,248,97,129,252, 211 122,253,4,239,15,131,244,62,221,2,232,244,97,252,233,244,72,248,98,129,252,
211 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,217,252,254,252, 212 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,217,252,254,252,
212 233,244,71,248,98,129,252,248,239,255,15,130,244,61,129,122,253,4,239,15, 213 233,244,72,248,99,129,252,248,239,255,15,130,244,62,129,122,253,4,239,15,
213 131,244,61,221,2,217,252,255,252,233,244,71,248,99,129,252,248,239,15,130, 214 131,244,62,221,2,217,252,255,252,233,244,72,248,100,129,252,248,239,15,130,
214 244,61,129,122,253,4,239,15,131,244,61,221,2,217,252,242,221,216,252,233, 215 244,62,129,122,253,4,239,15,131,244,62,221,2,217,252,242,221,216,252,233,
215 244,71,248,100,129,252,248,239,15,130,244,61,255,129,122,253,4,239,15,131, 216 244,72,248,101,129,252,248,239,15,130,244,62,255,129,122,253,4,239,15,131,
216 244,61,221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252, 217 244,62,221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,
217 233,244,71,248,101,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 218 233,244,72,248,102,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
218 244,61,221,2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252, 219 244,62,221,2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,
219 243,252,233,244,71,248,102,129,252,248,239,15,130,244,61,129,122,253,4,239, 220 243,252,233,244,72,248,103,129,252,248,239,15,130,244,62,129,122,253,4,239,
220 15,131,244,61,255,221,2,217,232,217,252,243,252,233,244,71,255,248,103,129, 221 15,131,244,62,255,221,2,217,232,217,252,243,252,233,244,72,255,248,104,129,
221 252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2, 222 252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,
222 255,137,213,232,251,1,16,137,252,234,252,233,244,70,255,248,104,129,252,248, 223 255,137,213,232,251,1,16,137,252,234,252,233,244,71,255,248,105,129,252,248,
223 239,15,130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2,255,137, 224 239,15,130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,255,137,
224 213,232,251,1,17,137,252,234,252,233,244,70,255,248,105,129,252,248,239,15, 225 213,232,251,1,17,137,252,234,252,233,244,71,255,248,106,129,252,248,239,15,
225 130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2,255,137,213,232, 226 130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,255,137,213,232,
226 251,1,18,137,252,234,252,233,244,70,248,106,255,248,107,129,252,248,239,15, 227 251,1,18,137,252,234,252,233,244,71,248,107,255,248,108,129,252,248,239,15,
227 130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2,139,106,252,248, 228 130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,139,106,252,248,
228 252,242,15,89,133,233,252,233,244,70,255,248,107,129,252,248,239,15,130,244, 229 252,242,15,89,133,233,252,233,244,71,255,248,108,129,252,248,239,15,130,244,
229 61,129,122,253,4,239,15,131,244,61,221,2,139,106,252,248,220,141,233,252, 230 62,129,122,253,4,239,15,131,244,62,221,2,139,106,252,248,220,141,233,252,
230 233,244,71,255,248,108,129,252,248,239,15,130,244,61,129,122,253,4,239,15, 231 233,244,72,255,248,109,129,252,248,239,15,130,244,62,129,122,253,4,239,15,
231 131,244,61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,217,252,243,252, 232 131,244,62,129,122,253,12,239,15,131,244,62,221,2,221,66,8,217,252,243,252,
232 233,244,71,248,109,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 233 233,244,72,248,110,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
233 244,61,129,122,253,12,239,255,15,131,244,61,221,66,8,221,2,217,252,253,221, 234 244,62,129,122,253,12,239,255,15,131,244,62,221,66,8,221,2,217,252,253,221,
234 217,252,233,244,71,248,110,129,252,248,239,15,130,244,61,139,106,4,129,252, 235 217,252,233,244,72,248,111,129,252,248,239,15,130,244,62,139,106,4,129,252,
235 253,239,15,131,244,61,139,114,252,252,139,2,137,106,252,252,137,66,252,248, 236 253,239,15,131,244,62,139,114,252,252,139,2,137,106,252,252,137,66,252,248,
236 209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184, 237 209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,
237 252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41, 238 252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,
238 197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,139,106,252, 239 197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,139,106,252,
239 252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248, 240 252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,
240 2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,76,248,3,255,15, 241 2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,77,248,3,255,15,
241 87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242, 242 87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,
242 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,15,17, 243 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,15,17,
243 66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,248, 244 66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,248,
244 255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,111,129,252, 245 255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,112,129,252,
245 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2,255, 246 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,255,
246 248,111,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,221, 247 248,112,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,221,
247 2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,132, 248 2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,
248 244,250,255,15,40,224,232,244,112,252,242,15,92,224,248,1,252,242,15,17,66, 249 244,250,255,15,40,224,232,244,113,252,242,15,92,224,248,1,252,242,15,17,66,
249 252,248,252,242,15,17,34,255,217,192,232,244,112,220,252,233,248,1,221,90, 250 252,248,252,242,15,17,34,255,217,192,232,244,113,220,252,233,248,1,221,90,
250 252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184, 251 252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,
251 237,252,233,244,76,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248, 252 237,252,233,244,77,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,
252 4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248, 253 4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,
253 113,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122, 254 114,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,
254 253,12,239,15,131,244,61,221,66,8,221,2,248,1,217,252,248,223,224,158,15, 255 253,12,239,15,131,244,62,221,66,8,221,2,248,1,217,252,248,223,224,158,15,
255 138,244,1,221,217,252,233,244,71,255,248,114,129,252,248,239,15,130,244,61, 256 138,244,1,221,217,252,233,244,72,255,248,115,129,252,248,239,15,130,244,62,
256 129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242, 257 129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,
257 15,16,2,252,242,15,16,74,8,232,244,115,252,233,244,70,255,248,114,129,252, 258 15,16,2,252,242,15,16,74,8,232,244,116,252,233,244,71,255,248,115,129,252,
258 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239, 259 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,
259 15,131,244,61,221,2,221,66,8,232,244,115,252,233,244,71,255,248,116,185,2, 260 15,131,244,62,221,2,221,66,8,232,244,116,252,233,244,72,255,248,117,185,2,
260 0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244, 261 0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,
261 69,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,79,108, 262 70,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,79,108,
262 202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,61,255,252,233,244,252, 263 202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,62,255,252,233,244,252,
263 248,4,15,135,244,61,255,252,242,15,16,2,248,5,57,193,15,131,244,70,129,124, 264 248,4,15,135,244,62,255,252,242,15,16,2,248,5,57,193,15,131,244,71,129,124,
264 253,202,252,252,239,255,15,130,244,252,15,135,244,61,252,242,15,42,76,202, 265 253,202,252,252,239,255,15,130,244,252,15,135,244,62,252,242,15,42,76,202,
265 252,248,252,233,244,253,255,248,6,252,242,15,16,76,202,252,248,248,7,252, 266 252,248,252,233,244,253,255,248,6,252,242,15,16,76,202,252,248,248,7,252,
266 242,15,93,193,131,193,1,252,233,244,5,255,248,117,185,2,0,0,0,129,122,253, 267 242,15,93,193,131,193,1,252,233,244,5,255,248,118,185,2,0,0,0,129,122,253,
267 4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,69,129,124,253,202, 268 4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,70,129,124,253,202,
268 252,252,239,15,133,244,249,59,108,202,252,248,15,76,108,202,252,248,131,193, 269 252,252,239,15,133,244,249,59,108,202,252,248,15,76,108,202,252,248,131,193,
269 1,252,233,244,1,248,3,15,135,244,61,255,248,6,252,242,15,16,76,202,252,248, 270 1,252,233,244,1,248,3,15,135,244,62,255,248,6,252,242,15,16,76,202,252,248,
270 248,7,252,242,15,95,193,131,193,1,252,233,244,5,255,248,9,221,216,252,233, 271 248,7,252,242,15,95,193,131,193,1,252,233,244,5,255,248,9,221,216,252,233,
271 244,61,255,248,118,129,252,248,239,15,130,244,61,129,122,253,4,239,15,133, 272 244,62,255,248,119,129,252,248,239,15,130,244,62,129,122,253,4,239,15,133,
272 244,61,139,42,255,139,173,233,252,233,244,69,255,252,242,15,42,133,233,252, 273 244,62,139,42,255,139,173,233,252,233,244,70,255,252,242,15,42,133,233,252,
273 233,244,70,255,219,133,233,252,233,244,71,255,248,119,129,252,248,239,15, 274 233,244,71,255,219,133,233,252,233,244,72,255,248,120,129,252,248,239,15,
274 133,244,61,129,122,253,4,239,15,133,244,61,139,42,139,114,252,252,131,189, 275 133,244,62,129,122,253,4,239,15,133,244,62,139,42,139,114,252,252,131,189,
275 233,1,15,130,244,79,15,182,173,233,255,252,242,15,42,197,252,233,244,70,255, 276 233,1,15,130,244,80,15,182,173,233,255,252,242,15,42,197,252,233,244,71,255,
276 137,108,36,80,219,68,36,80,252,233,244,71,255,248,120,139,171,233,59,171, 277 137,108,36,80,219,68,36,80,252,233,244,72,255,248,121,139,171,233,59,171,
277 233,15,130,244,247,232,244,73,248,1,129,252,248,239,15,133,244,61,129,122, 278 233,15,130,244,247,232,244,74,248,1,129,252,248,239,15,133,244,62,129,122,
278 253,4,239,255,15,133,244,61,139,42,129,252,253,252,255,0,0,0,15,135,244,61, 279 253,4,239,255,15,133,244,62,139,42,129,252,253,252,255,0,0,0,15,135,244,62,
279 137,108,36,84,255,15,131,244,61,252,242,15,44,42,129,252,253,252,255,0,0, 280 137,108,36,84,255,15,131,244,62,252,242,15,44,42,129,252,253,252,255,0,0,
280 0,15,135,244,61,137,108,36,84,255,15,131,244,61,221,2,219,92,36,84,129,124, 281 0,15,135,244,62,137,108,36,84,255,15,131,244,62,221,2,219,92,36,84,129,124,
281 36,84,252,255,0,0,0,15,135,244,61,255,199,68,36,32,1,0,0,0,72,141,68,36,84, 282 36,84,252,255,0,0,0,15,135,244,62,255,199,68,36,32,1,0,0,0,72,141,68,36,84,
282 248,121,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137,252,233, 283 248,122,139,108,36,96,137,149,233,68,139,68,36,32,72,137,194,137,252,233,
283 137,116,36,100,232,251,1,19,139,149,233,139,114,252,252,199,66,252,252,237, 284 137,116,36,100,232,251,1,19,139,149,233,139,114,252,252,199,66,252,252,237,
284 137,66,252,248,252,233,244,64,248,122,139,171,233,59,171,233,15,130,244,247, 285 137,66,252,248,252,233,244,65,248,123,139,171,233,59,171,233,15,130,244,247,
285 232,244,73,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129,252,248, 286 232,244,74,248,1,199,68,36,84,252,255,252,255,252,255,252,255,129,252,248,
286 239,15,130,244,61,15,134,244,247,129,122,253,20,239,255,15,133,244,61,139, 287 239,15,130,244,62,15,134,244,247,129,122,253,20,239,255,15,133,244,62,139,
287 106,16,137,108,36,84,255,15,131,244,61,252,242,15,44,106,16,137,108,36,84, 288 106,16,137,108,36,84,255,15,131,244,62,252,242,15,44,106,16,137,108,36,84,
288 255,15,131,244,61,221,66,16,219,92,36,84,255,248,1,129,122,253,4,239,15,133, 289 255,15,131,244,62,221,66,16,219,92,36,84,255,248,1,129,122,253,4,239,15,133,
289 244,61,129,122,253,12,239,255,139,42,137,108,36,32,139,173,233,255,139,74, 290 244,62,129,122,253,12,239,255,139,42,137,108,36,32,139,173,233,255,139,74,
290 8,255,252,242,15,44,74,8,255,139,68,36,84,57,197,15,130,244,251,248,2,133, 291 8,255,252,242,15,44,74,8,255,139,68,36,84,57,197,15,130,244,251,248,2,133,
291 201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,123,141,172,253, 292 201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,124,141,172,253,
292 13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,121,248,5,15,140, 293 13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,122,248,5,15,140,
293 244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15, 294 244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,
294 132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244, 295 132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,
295 3,248,123,49,192,252,233,244,4,248,124,129,252,248,239,15,130,244,61,139, 296 3,248,124,49,192,252,233,244,4,248,125,129,252,248,239,15,130,244,62,139,
296 171,233,59,171,233,15,130,244,247,232,244,73,248,1,255,129,122,253,4,239, 297 171,233,59,171,233,15,130,244,247,232,244,74,248,1,255,129,122,253,4,239,
297 15,133,244,61,129,122,253,12,239,139,42,255,15,133,244,61,139,66,8,255,15, 298 15,133,244,62,129,122,253,12,239,139,42,255,15,133,244,62,139,66,8,255,15,
298 131,244,61,252,242,15,44,66,8,255,15,131,244,61,221,66,8,219,92,36,84,139, 299 131,244,62,252,242,15,44,66,8,255,15,131,244,62,221,66,8,219,92,36,84,139,
299 68,36,84,255,133,192,15,142,244,123,131,189,233,1,15,130,244,123,15,133,244, 300 68,36,84,255,133,192,15,142,244,124,131,189,233,1,15,130,244,124,15,133,244,
300 125,57,131,233,15,130,244,125,15,182,141,233,139,171,233,137,68,36,32,248, 301 126,57,131,233,15,130,244,126,15,182,141,233,139,171,233,137,68,36,32,248,
301 1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,121,248, 302 1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,122,248,
302 126,129,252,248,239,255,15,130,244,61,139,171,233,59,171,233,15,130,244,247, 303 127,129,252,248,239,255,15,130,244,62,139,171,233,59,171,233,15,130,244,247,
303 232,244,73,248,1,129,122,253,4,239,15,133,244,61,139,42,139,133,233,133,192, 304 232,244,74,248,1,129,122,253,4,239,15,133,244,62,139,42,139,133,233,133,192,
304 15,132,244,123,57,131,233,15,130,244,127,129,197,239,137,116,36,84,137,68, 305 15,132,244,124,57,131,233,15,130,244,128,129,197,239,137,116,36,84,137,68,
305 36,32,139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133, 306 36,32,139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,
306 244,1,137,252,240,139,116,36,84,252,233,244,121,248,128,129,252,248,239,15, 307 244,1,137,252,240,139,116,36,84,252,233,244,122,248,129,129,252,248,239,15,
307 130,244,61,139,171,233,59,171,233,15,130,244,247,232,244,73,248,1,129,122, 308 130,244,62,139,171,233,59,171,233,15,130,244,247,232,244,74,248,1,129,122,
308 253,4,239,15,133,244,61,139,42,139,133,233,57,131,233,255,15,130,244,127, 309 253,4,239,15,133,244,62,139,42,139,133,233,57,131,233,255,15,130,244,128,
309 129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,244,249,248,1, 310 129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,244,249,248,1,
310 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248, 311 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,
311 131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139, 312 131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,
312 116,36,84,252,233,244,121,248,129,129,252,248,239,15,130,244,61,255,139,171, 313 116,36,84,252,233,244,122,248,130,129,252,248,239,15,130,244,62,255,139,171,
313 233,59,171,233,15,130,244,247,232,244,73,248,1,129,122,253,4,239,15,133,244, 314 233,59,171,233,15,130,244,247,232,244,74,248,1,129,122,253,4,239,15,133,244,
314 61,139,42,139,133,233,57,131,233,15,130,244,127,129,197,239,137,116,36,84, 315 62,139,42,139,133,233,57,131,233,15,130,244,128,129,197,239,137,116,36,84,
315 137,68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249, 316 137,68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,
316 97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2, 317 97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,
317 136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244, 318 136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,
318 121,248,130,129,252,248,239,15,130,244,61,129,122,253,4,239,15,133,244,61, 319 122,248,131,129,252,248,239,15,130,244,62,129,122,253,4,239,15,133,244,62,
319 137,213,139,10,232,251,1,20,137,252,234,255,137,197,252,233,244,69,255,252, 320 137,213,139,10,232,251,1,20,137,252,234,255,137,197,252,233,244,70,255,252,
320 242,15,42,192,252,233,244,70,255,248,131,129,252,248,239,15,130,244,61,129, 321 242,15,42,192,252,233,244,71,255,248,132,129,252,248,239,15,130,244,62,129,
321 122,253,4,239,255,15,133,244,247,139,42,252,233,244,87,248,1,15,135,244,61, 322 122,253,4,239,255,15,133,244,247,139,42,252,233,244,88,248,1,15,135,244,62,
322 255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102, 323 255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
323 15,126,197,255,252,233,244,87,255,248,132,129,252,248,239,15,130,244,61,255, 324 15,126,197,255,252,233,244,88,255,248,133,129,252,248,239,15,130,244,62,255,
324 72,189,237,237,102,72,15,110,205,255,199,68,36,80,0,0,192,89,255,15,133,244, 325 72,189,237,237,102,72,15,110,205,255,199,68,36,80,0,0,192,89,255,15,133,244,
325 247,139,42,252,233,244,248,248,1,15,135,244,61,255,252,242,15,16,2,252,242, 326 247,139,42,252,233,244,248,248,1,15,135,244,62,255,252,242,15,16,2,252,242,
326 15,88,193,102,15,126,197,255,248,2,137,68,36,84,141,68,194,252,240,248,1, 327 15,88,193,102,15,126,197,255,248,2,137,68,36,84,141,68,194,252,240,248,1,
327 57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248,35,40,131,232,8, 328 57,208,15,134,244,88,129,120,253,4,239,255,15,133,244,248,35,40,131,232,8,
328 252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255,252,242,15,16,0, 329 252,233,244,1,248,2,15,135,244,134,255,15,131,244,134,255,252,242,15,16,0,
329 252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,233,244,1,248,134, 330 252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,233,244,1,248,135,
330 129,252,248,239,15,130,244,61,255,15,133,244,248,11,40,131,232,8,252,233, 331 129,252,248,239,15,130,244,62,255,15,133,244,248,11,40,131,232,8,252,233,
331 244,1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126, 332 244,1,248,2,15,135,244,134,255,252,242,15,16,0,252,242,15,88,193,102,15,126,
332 193,9,205,255,131,232,8,252,233,244,1,248,135,129,252,248,239,15,130,244, 333 193,9,205,255,131,232,8,252,233,244,1,248,136,129,252,248,239,15,130,244,
333 61,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248,2,15,135,244,133, 334 62,255,15,133,244,248,51,40,131,232,8,252,233,244,1,248,2,15,135,244,134,
334 255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,131,232,8, 335 255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,131,232,8,
335 252,233,244,1,248,136,129,252,248,239,15,130,244,61,129,122,253,4,239,255, 336 252,233,244,1,248,137,129,252,248,239,15,130,244,62,129,122,253,4,239,255,
336 248,2,15,205,252,233,244,87,248,137,129,252,248,239,15,130,244,61,129,122, 337 248,2,15,205,252,233,244,88,248,138,129,252,248,239,15,130,244,62,129,122,
337 253,4,239,255,248,2,252,247,213,255,248,87,252,242,15,42,197,252,233,244, 338 253,4,239,255,248,2,252,247,213,255,248,88,252,242,15,42,197,252,233,244,
338 70,255,248,133,139,68,36,84,252,233,244,61,255,248,138,129,252,248,239,15, 339 71,255,248,134,139,68,36,84,252,233,244,62,255,248,139,129,252,248,239,15,
339 130,244,61,129,122,253,4,239,255,248,2,129,122,253,12,239,15,133,244,61,139, 340 130,244,62,129,122,253,4,239,255,248,2,129,122,253,12,239,15,133,244,62,139,
340 74,8,255,248,138,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244, 341 74,8,255,248,139,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,
341 61,129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72, 342 62,129,122,253,12,239,15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,72,
342 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,15, 343 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,15,
343 126,197,102,15,126,201,255,211,229,252,233,244,87,255,248,139,129,252,248, 344 126,197,102,15,126,201,255,211,229,252,233,244,88,255,248,140,129,252,248,
344 239,15,130,244,61,129,122,253,4,239,255,248,139,129,252,248,239,15,130,244, 345 239,15,130,244,62,129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,
345 61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242, 346 62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,
346 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88, 347 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
347 194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,237,252,233, 348 194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,211,252,237,252,233,
348 244,87,255,248,140,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248, 349 244,88,255,248,141,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,
349 140,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122, 350 141,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,
350 253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237, 351 253,12,239,15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
351 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102, 352 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,
352 15,126,201,255,211,252,253,252,233,244,87,255,248,141,129,252,248,239,15, 353 15,126,201,255,211,252,253,252,233,244,88,255,248,142,129,252,248,239,15,
353 130,244,61,129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,61,129, 354 130,244,62,129,122,253,4,239,255,248,142,129,252,248,239,15,130,244,62,129,
354 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 355 122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,15,16,
355 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 356 2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
356 242,15,88,202,102,15,126,197,102,15,126,201,255,211,197,252,233,244,87,255, 357 242,15,88,202,102,15,126,197,102,15,126,201,255,211,197,252,233,244,88,255,
357 248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,142,129,252, 358 248,143,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,143,129,252,
358 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239, 359 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,
359 15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15, 360 15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
360 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201, 361 110,213,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,
361 255,211,205,252,233,244,87,248,125,184,237,252,233,244,61,248,127,184,237, 362 255,211,205,252,233,244,88,248,126,184,237,252,233,244,62,248,128,184,237,
362 248,61,139,108,36,96,139,114,252,252,137,116,36,100,137,149,233,141,68,194, 363 248,62,139,108,36,96,139,114,252,252,137,116,36,100,137,149,233,141,68,194,
363 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251, 364 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,
364 137,252,233,252,255,144,233,139,149,233,133,192,15,143,244,76,248,1,255,139, 365 137,252,233,252,255,144,233,139,149,233,133,192,15,143,244,77,248,1,255,139,
365 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244, 366 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,
366 32,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252, 367 32,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,
367 235,248,32,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,72,252, 368 235,248,32,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,72,252,
368 247,213,141,20,252,234,252,233,244,28,248,3,137,252,245,131,229,252,248,41, 369 247,213,141,20,252,234,252,233,244,28,248,3,137,252,245,131,229,252,248,41,
369 252,234,252,233,244,28,248,5,186,237,137,252,233,232,251,1,0,139,149,233, 370 252,234,252,233,244,28,248,5,186,237,137,252,233,232,251,1,0,139,149,233,
370 49,192,252,233,244,1,248,73,93,72,137,108,36,32,139,108,36,96,137,116,36, 371 49,192,252,233,244,1,248,74,93,72,137,108,36,32,139,108,36,96,137,116,36,
371 100,137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1, 372 100,137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,
372 21,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,32,85, 373 21,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,32,85,
373 195,248,143,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244, 374 195,248,144,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,
374 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,144,15, 375 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,145,15,
375 182,131,233,168,235,15,133,244,251,252,233,244,247,248,145,15,182,131,233, 376 182,131,233,168,235,15,133,244,251,252,233,244,247,248,146,15,182,131,233,
376 168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244, 377 168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,
377 247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242, 378 247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,
378 137,252,233,232,251,1,22,248,3,139,149,233,248,4,15,182,78,252,253,248,5, 379 137,252,233,232,251,1,22,248,3,139,149,233,248,4,15,182,78,252,253,248,5,
379 15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,146, 380 15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,147,
380 131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,147,255,139,106,252,248, 381 131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,148,255,139,106,252,248,
381 139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,137,133,233, 382 139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,137,133,233,
382 137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,1,23,252,233, 383 137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,1,23,252,233,
383 244,3,255,248,148,137,116,36,100,255,248,149,255,137,116,36,100,131,206,1, 384 244,3,255,248,149,137,116,36,100,255,248,150,255,137,116,36,100,131,206,1,
384 248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252, 385 248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252,
385 242,137,252,233,232,251,1,24,199,68,36,100,0,0,0,0,255,131,230,252,254,255, 386 242,137,252,233,232,251,1,24,199,68,36,100,0,0,0,0,255,131,230,252,254,255,
386 139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193, 387 139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,
387 232,3,131,192,1,252,255,229,248,150,255,65,85,65,84,65,83,65,82,65,81,65, 388 232,3,131,192,1,252,255,229,248,151,255,65,85,65,84,65,83,65,82,65,81,65,
388 80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252, 389 80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,
389 240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,233,199,131,233, 390 240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,233,199,131,233,
390 237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,128,252,242,68, 391 237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,128,252,242,68,
@@ -395,7 +396,7 @@ static const unsigned char build_actionlist[15958] = {
395 152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171, 396 152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,
396 233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,149,233,72,141,148, 397 233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,149,233,72,141,148,
397 253,36,233,141,139,233,232,251,1,25,72,139,141,233,72,129,225,239,137,169, 398 253,36,233,141,139,233,232,251,1,25,72,139,141,233,72,129,225,239,137,169,
398 233,139,149,233,139,177,233,252,233,244,247,255,248,151,255,72,141,140,253, 399 233,139,149,233,139,177,233,252,233,244,247,255,248,152,255,72,141,140,253,
399 36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169, 400 36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169,
400 233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,15,111,145,233,102, 401 233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,15,111,145,233,102,
401 68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,233,72,137,204,102, 402 68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,233,72,137,204,102,
@@ -403,26 +404,26 @@ static const unsigned char build_actionlist[15958] = {
403 80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,139,191,233,139,191, 404 80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,139,191,233,139,191,
404 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198, 405 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,
405 4,193,232,16,129,252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255, 406 4,193,232,16,129,252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,
406 36,252,235,248,3,252,247,216,137,252,233,137,194,232,251,1,26,255,248,89, 407 36,252,235,248,3,252,247,216,137,252,233,137,194,232,251,1,26,255,248,90,
407 255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252, 408 255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,
408 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 409 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,
409 255,248,152,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 410 255,248,153,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,
410 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252, 411 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,
411 242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110, 412 242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,
412 208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1, 413 208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,
413 195,248,91,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37, 414 195,248,92,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,
414 252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139, 415 252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
415 68,36,8,195,255,248,153,72,184,237,237,102,72,15,110,208,72,184,237,237,102, 416 68,36,8,195,255,248,154,72,184,237,237,102,72,15,110,208,72,184,237,237,102,
416 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 417 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
417 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102, 418 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,
418 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40, 419 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,
419 193,248,1,195,248,112,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68, 420 193,248,1,195,248,113,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,
420 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 421 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,
421 255,248,154,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 422 255,248,155,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,
422 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15, 423 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,
423 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216, 424 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,
424 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40, 425 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,
425 193,248,1,195,248,155,255,15,40,232,252,242,15,94,193,72,184,237,237,102, 426 193,248,1,195,248,156,255,15,40,232,252,242,15,94,193,72,184,237,237,102,
426 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102, 427 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,
427 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227, 428 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,
428 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15, 429 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,
@@ -430,12 +431,12 @@ static const unsigned char build_actionlist[15958] = {
430 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252, 431 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,
431 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 432 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,
432 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255, 433 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,
433 248,96,217,252,234,222,201,248,156,217,84,36,8,129,124,36,8,0,0,128,127,15, 434 248,97,217,252,234,222,201,248,157,217,84,36,8,129,124,36,8,0,0,128,127,15,
434 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,157,217,192,217, 435 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,158,217,192,217,
435 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217, 436 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,
436 248,1,195,248,2,221,216,217,252,238,195,255,248,115,255,248,158,252,242,15, 437 248,1,195,248,2,221,216,217,252,238,195,255,248,116,255,248,159,252,242,15,
437 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 438 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,
438 159,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 439 160,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,
439 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 440 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,
440 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 441 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,
441 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 442 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,
@@ -451,28 +452,28 @@ static const unsigned char build_actionlist[15958] = {
451 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80, 452 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
452 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237, 453 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
453 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87, 454 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
454 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,160,255, 455 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,161,255,
455 131,252,250,1,15,130,244,89,15,132,244,91,131,252,250,3,15,130,244,112,15, 456 131,252,250,1,15,130,244,90,15,132,244,92,131,252,250,3,15,130,244,113,15,
456 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,68,36,8, 457 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,68,36,8,
457 131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,96,80,252,233,244, 458 131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,97,80,252,233,244,
458 253,248,1,232,244,156,255,80,252,233,244,253,248,2,131,252,250,7,15,132,244, 459 253,248,1,232,244,157,255,80,252,233,244,253,248,2,131,252,250,7,15,132,244,
459 247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1, 460 247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,
460 217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,15,132,244, 461 217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,15,132,244,
461 247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1, 462 247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,
462 255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,247,15,135, 463 255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,247,15,135,
463 244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92, 464 244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,
464 36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,131,252,250,1, 465 36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,131,252,250,1,
465 15,130,244,89,15,132,244,91,131,252,250,3,15,130,244,112,15,135,244,248,217, 466 15,130,244,90,15,132,244,92,131,252,250,3,15,130,244,113,15,135,244,248,217,
466 252,250,195,248,2,131,252,250,5,15,130,244,96,15,132,244,156,131,252,250, 467 252,250,195,248,2,131,252,250,5,15,130,244,97,15,132,244,157,131,252,250,
467 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1, 468 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,
468 217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,244,247,255,15, 469 217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,244,247,255,15,
469 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248, 470 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
470 2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217, 471 2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
471 252,242,221,216,195,255,248,9,204,255,248,161,255,65,131,252,248,1,15,132, 472 252,242,221,216,195,255,248,9,204,255,248,162,255,65,131,252,248,1,15,132,
472 244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195, 473 244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,
473 248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195, 474 248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,
474 248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,155,15,132, 475 248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,156,15,132,
475 244,115,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,237,255, 476 244,116,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,237,255,
476 102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15, 477 102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,
477 84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,36,8,252, 478 84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,36,8,252,
478 242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,243,248, 479 242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,243,248,
@@ -481,21 +482,21 @@ static const unsigned char build_actionlist[15958] = {
481 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221, 482 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
482 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193, 483 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
483 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 484 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
484 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,155,15,132, 485 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,156,15,132,
485 244,115,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195, 486 244,116,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
486 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248, 487 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
487 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 488 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
488 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 489 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
489 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 490 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
490 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 491 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
491 244,248,217,201,248,2,221,216,195,255,248,162,137,200,86,72,137,214,83,15, 492 244,248,217,201,248,2,221,216,195,255,248,163,137,200,86,72,137,214,83,15,
492 162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,248,163,255,85,72,137,229, 493 162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,248,164,255,85,72,137,229,
493 83,72,137,203,139,131,233,72,41,196,255,15,182,139,233,131,252,233,1,15,136, 494 83,72,137,203,139,131,233,72,41,196,255,15,182,139,233,131,252,233,1,15,136,
494 244,248,248,1,72,139,132,253,203,233,72,137,132,253,204,233,131,252,233,1, 495 244,248,248,1,72,139,132,253,203,233,72,137,132,253,204,233,131,252,233,1,
495 15,137,244,1,248,2,15,182,131,233,72,139,139,233,72,139,147,233,76,139,131, 496 15,137,244,1,248,2,15,182,131,233,72,139,139,233,72,139,147,233,76,139,131,
496 233,76,139,139,233,133,192,15,132,244,251,15,40,131,233,15,40,139,233,15, 497 233,76,139,139,233,133,192,15,132,244,251,15,40,131,233,15,40,139,233,15,
497 40,147,233,15,40,155,233,248,5,255,252,255,147,233,72,137,131,233,15,41,131, 498 40,147,233,15,40,155,233,248,5,255,252,255,147,233,72,137,131,233,15,41,131,
498 233,255,72,139,93,252,248,201,195,255,248,164,255,249,255,129,124,253,202, 499 233,255,72,139,93,252,248,201,195,255,248,165,255,249,255,129,124,253,202,
499 4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202,131, 500 4,239,15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,
500 198,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244,255, 501 198,4,59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244,255,
501 255,15,142,244,255,255,248,6,15,183,70,252,254,141,180,253,134,233,248,9, 502 255,15,142,244,255,255,248,6,15,183,70,252,254,141,180,253,134,233,248,9,
@@ -555,238 +556,240 @@ static const unsigned char build_actionlist[15958] = {
555 133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255, 556 133,244,248,139,4,194,255,139,128,233,248,1,199,68,202,4,237,137,4,202,255,
556 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233, 557 15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,
557 248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 558 248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
558 255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194,137,213, 559 255,36,252,235,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194,255,139,
559 232,251,1,20,255,252,242,15,42,192,255,137,252,234,15,182,78,252,253,252, 560 169,233,131,252,253,0,15,133,244,255,248,3,255,248,57,137,213,232,251,1,20,
560 233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15, 561 255,252,242,15,42,192,255,137,252,234,15,182,78,252,253,252,233,244,1,255,
561 133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,3,44,199,15, 562 248,9,252,246,133,233,235,15,133,244,3,252,233,244,56,255,15,182,252,236,
563 15,182,192,255,129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,
564 239,15,133,244,50,139,44,252,234,3,44,199,15,128,244,49,255,129,124,253,252,
565 234,4,239,15,133,244,52,129,124,253,199,4,239,15,133,244,52,139,4,199,3,4,
566 252,234,15,128,244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,
567 253,194,4,239,15,133,244,55,139,44,252,234,3,44,194,15,128,244,54,255,199,
568 68,202,4,237,255,129,124,253,252,234,4,239,15,131,244,50,255,129,124,253,
569 199,4,239,15,131,244,50,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,
570 221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,52,255,129,
571 124,253,199,4,239,15,131,244,52,255,252,242,15,16,4,199,252,242,15,88,4,252,
572 234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,
573 55,129,124,253,194,4,239,15,131,244,55,255,252,242,15,16,4,252,234,252,242,
574 15,88,4,194,255,221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,
575 133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,43,44,199,15,
562 128,244,49,255,129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4, 576 128,244,49,255,129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,
563 239,15,133,244,52,139,4,199,3,4,252,234,15,128,244,51,255,129,124,253,252, 577 239,15,133,244,52,139,4,199,43,4,252,234,15,128,244,51,255,129,124,253,252,
564 234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234, 578 234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,
565 3,44,194,15,128,244,54,255,199,68,202,4,237,255,129,124,253,252,234,4,239, 579 43,44,194,15,128,244,54,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,
566 15,131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4, 580 221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,
567 252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252, 581 255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,
568 234,4,239,15,131,244,52,255,129,124,253,199,4,239,15,131,244,52,255,252,242, 582 194,255,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,
569 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124, 583 50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,15,175,44,199,15,128,
570 253,252,234,4,239,15,131,244,55,129,124,253,194,4,239,15,131,244,55,255,252, 584 244,49,255,129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,
571 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129, 585 15,133,244,52,139,4,199,15,175,4,252,234,15,128,244,51,255,129,124,253,252,
572 124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139, 586 234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,
573 44,252,234,43,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244, 587 15,175,44,194,15,128,244,54,255,252,242,15,16,4,252,234,252,242,15,89,4,199,
574 52,129,124,253,199,4,239,15,133,244,52,139,4,199,43,4,252,234,15,128,244, 588 255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,
575 51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,15,133, 589 234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,
576 244,55,139,44,252,234,43,44,194,15,128,244,54,255,252,242,15,16,4,252,234, 590 4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,
577 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199, 591 94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,
578 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4, 592 94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,
579 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253, 593 242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,
580 252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252, 594 252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,
581 234,15,175,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244, 595 252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,
582 52,129,124,253,199,4,239,15,133,244,52,139,4,199,15,175,4,252,234,15,128, 596 252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,166,232,
583 244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239, 597 244,156,255,252,233,244,166,255,232,244,116,255,15,182,252,236,15,182,192,
584 15,133,244,55,139,44,252,234,15,175,44,194,15,128,244,54,255,252,242,15,16, 598 139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,35,137,205,137,
585 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15, 599 116,36,100,232,251,1,27,139,149,233,133,192,15,133,244,44,15,182,110,252,
586 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242, 600 255,15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204,15,182,
587 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252, 601 232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,
588 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255, 602 199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
589 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234, 603 16,252,255,36,252,235,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,
590 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52, 604 192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,
591 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221, 605 252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,
592 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221, 606 247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
593 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252, 607 255,36,252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,
594 234,221,4,194,255,248,165,232,244,155,255,252,233,244,165,255,232,244,115, 608 1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,
595 255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137, 609 4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,
596 192,65,41,232,248,35,137,205,137,116,36,100,232,251,1,27,139,149,233,133, 610 173,233,72,139,69,0,72,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,
597 192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,72,139,4,252,234,72, 611 232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,
598 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 612 233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,
599 235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182, 613 252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,
600 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,199, 614 198,4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,
601 68,202,4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202, 615 134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,
602 255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202, 616 1,28,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,
603 255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204, 617 253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,
604 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,141, 618 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
605 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244, 619 255,36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,
606 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255, 620 244,1,137,213,137,194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,
607 139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,202, 621 255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,
608 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139, 622 233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,
609 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139, 623 172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,
610 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244, 624 4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,
611 248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 625 189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,29,
612 235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15, 626 139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
613 132,244,1,135,213,141,139,233,255,232,251,1,28,137,252,234,252,233,244,1, 627 36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,
614 255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,133, 628 139,20,135,137,252,233,137,116,36,100,232,251,1,30,139,149,233,15,182,78,
615 233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15, 629 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
616 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246, 630 193,232,16,252,255,36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,
617 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139, 631 139,233,137,116,36,100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,
618 233,232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, 632 193,232,11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,
619 15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 633 251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,
620 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137, 634 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,
621 65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 635 0,0,252,233,244,2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,
622 255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149, 636 244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,139,
623 233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182,204, 637 233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,
624 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139, 638 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
625 108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36, 639 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,
626 100,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237, 640 251,1,32,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,
627 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139, 641 139,106,252,248,139,173,233,139,4,135,252,233,244,167,255,72,252,247,208,
628 108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251, 642 139,106,252,248,139,173,233,139,4,135,252,233,244,168,255,15,182,252,236,
629 248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244, 643 15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,255,129,
630 249,248,2,137,252,233,137,194,232,251,1,31,139,149,233,15,182,78,252,253, 644 124,253,194,4,239,15,133,244,251,139,4,194,255,129,124,253,194,4,239,15,131,
631 137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232, 645 244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,
632 16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232, 646 46,193,255,15,133,244,38,255,59,133,233,15,131,244,38,193,224,3,3,133,233,
633 251,1,32,15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96, 647 129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,
634 139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139, 648 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,
635 20,135,137,252,233,232,251,1,33,139,149,233,15,182,78,252,253,137,4,202,199, 649 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,
636 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 650 252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,
637 252,235,248,3,137,252,233,232,251,1,32,15,183,70,252,254,72,252,247,208,252, 651 239,15,133,244,38,139,4,194,252,233,244,167,255,15,182,252,236,15,182,192,
638 233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, 652 72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,
639 244,166,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, 653 234,248,167,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,
640 244,167,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, 654 239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,
641 38,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,139,4,194,255, 655 251,15,182,70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15,182,204,
642 129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,252,242,15,45, 656 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,252,253,
643 192,252,242,15,42,200,102,15,46,193,255,15,133,244,38,255,59,133,233,15,131, 657 199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,
644 244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139,40,72, 658 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,
645 137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 659 244,36,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
646 36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233, 660 37,139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,
647 235,15,132,244,38,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1, 661 4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,
648 248,5,255,129,124,253,194,4,239,15,133,244,38,139,4,194,252,233,244,166,255, 662 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,
649 15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4, 663 249,139,141,233,252,246,129,233,235,15,132,244,37,255,15,182,78,252,253,248,
650 239,15,133,244,36,139,44,252,234,248,166,139,141,233,35,136,233,105,201,239, 664 3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,
651 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250, 665 252,234,4,239,15,133,244,41,139,44,252,234,255,15,133,244,41,255,59,133,233,
652 129,121,253,4,239,15,132,244,251,15,182,70,252,253,72,139,41,72,137,44,194, 666 15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,
653 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 667 252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,72,137,40,139,6,15,
654 235,248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137, 668 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,
655 233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129, 669 233,0,15,132,244,1,139,141,233,252,246,129,233,235,255,15,132,244,41,15,182,
656 233,235,15,133,244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124, 670 78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,
657 253,252,234,4,239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193, 671 194,252,233,244,168,248,7,128,165,233,235,139,139,233,137,171,233,137,141,
658 224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202, 672 233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,
659 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 673 247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,
660 248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132, 674 248,168,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,
661 244,37,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15, 675 129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,
662 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,139,44,252, 676 15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,
663 234,255,15,133,244,41,255,59,133,233,15,131,244,41,193,224,3,3,133,233,129, 677 70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182,232,131,198,4,
664 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, 678 193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,2,137,76,36,
665 2,72,139,44,202,72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 679 80,139,141,233,252,246,129,233,235,15,132,244,39,139,76,36,80,252,233,244,
666 252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 680 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,
667 233,235,255,15,132,244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253, 681 252,252,246,129,233,235,15,132,244,39,248,6,137,68,36,80,199,68,36,84,237,
668 194,4,239,15,133,244,41,139,4,194,252,233,244,167,248,7,128,165,233,235,139, 682 137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,234,137,205,
669 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182, 683 137,116,36,100,232,251,1,34,139,149,233,139,108,36,32,137,193,252,233,244,
670 252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15, 684 2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,
671 133,244,39,139,44,252,234,248,167,139,141,233,35,136,233,105,201,239,198, 685 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,
672 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 686 44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,
673 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 687 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,12,202,
674 133,244,253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182, 688 72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
675 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233, 689 235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,
676 0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,39, 690 15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,
677 139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139, 691 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,
678 141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39,248,6,137, 692 80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,
679 68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68, 693 244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,233,
680 36,80,137,252,234,137,205,137,116,36,100,232,251,1,34,139,149,233,139,108, 694 15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,139,41,131,193,8,72,
681 36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233, 695 137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,182,
682 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234, 696 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,96,
683 4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224,3,3,133, 697 137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,35,139,
684 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 698 149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,
685 253,248,2,72,139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193, 699 233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124,253,
686 232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233, 700 202,4,239,139,44,202,15,133,244,58,141,84,202,8,137,114,252,252,139,181,233,
687 252,246,129,233,235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128, 701 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141,76,
688 165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233, 702 202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,59,
689 244,2,255,137,124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246, 703 139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
690 133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1, 704 68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,72,137,47,131,
691 252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72, 705 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233,
692 139,41,131,193,8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124, 706 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
693 36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 707 4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,
694 248,5,139,76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36, 708 253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
695 100,232,251,1,35,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128, 709 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,
696 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36, 710 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,
697 84,255,129,124,253,202,4,239,139,44,202,15,133,244,57,141,84,202,8,137,114, 711 141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,
698 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36, 712 224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,
699 252,235,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239, 713 133,244,29,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,
700 15,133,244,29,248,58,139,114,252,252,252,247,198,237,15,133,244,253,248,1, 714 205,131,198,4,252,255,36,252,235,255,137,124,36,80,137,92,36,84,139,108,202,
701 137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131, 715 252,240,139,68,202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,
702 193,8,72,137,47,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139, 716 15,131,244,251,129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248,
703 68,36,84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252, 717 255,72,139,44,199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,
704 233,15,182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15, 718 15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,84,139,124,36,80,139,
705 133,244,4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139, 719 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,
706 191,233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15, 720 192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,41,216,248,6,59,133,
707 133,244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198, 721 233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,239,15,132,244,253,
708 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137, 722 141,92,24,1,72,139,175,233,72,139,135,233,72,137,44,202,72,137,68,202,8,137,
709 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129, 723 92,202,252,248,252,233,244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,
710 252,248,239,184,237,15,133,244,29,137,202,137,114,252,252,139,181,233,139, 724 202,252,236,239,15,133,244,251,139,108,202,232,129,124,253,202,252,244,239,
711 14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,137,124,36, 725 15,133,244,251,129,124,253,202,252,252,239,15,133,244,251,128,189,233,235,
712 80,137,92,36,84,139,108,202,252,240,139,68,202,252,248,139,157,233,131,198, 726 15,133,244,251,141,180,253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,
713 4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,244, 727 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,198,70,
714 250,255,219,68,202,252,248,255,72,139,44,199,72,137,108,202,8,131,192,1,255, 728 252,252,235,141,180,253,134,233,198,6,235,252,233,244,1,255,15,182,252,236,
715 137,68,202,252,248,248,2,15,183,70,252,254,141,180,253,134,233,248,3,139, 729 15,182,192,137,124,36,80,141,188,253,194,233,141,12,202,43,122,252,252,133,
716 92,36,84,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 730 252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,
717 255,36,252,235,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244,1,248, 731 1,72,139,71,252,248,131,199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,
718 5,41,216,248,6,59,133,233,15,135,244,3,105,252,248,239,3,189,233,129,191, 732 57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,
719 233,239,15,132,244,253,141,92,24,1,72,139,175,233,72,139,135,233,72,137,44, 733 248,3,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
720 202,72,137,68,202,8,137,92,202,252,248,252,233,244,2,248,7,131,192,1,252, 734 255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3,
721 233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232, 735 137,197,193,252,237,3,131,197,1,137,108,36,84,139,108,36,96,1,200,59,133,
722 129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15, 736 233,15,135,244,253,248,6,255,72,139,71,252,248,131,199,8,72,137,1,131,193,
723 133,244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202, 737 8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,
724 252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 738 36,100,41,215,139,84,36,84,131,252,234,1,137,252,233,232,251,1,0,139,149,
725 255,36,252,235,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252, 739 233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,
726 233,244,1,255,15,182,252,236,15,182,192,137,124,36,80,141,188,253,194,233, 740 137,68,36,84,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1,
727 141,12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252, 741 15,132,244,249,248,2,72,139,44,15,72,137,111,252,248,131,199,8,131,232,1,
728 248,57,215,15,131,244,248,248,1,72,139,71,252,248,131,199,8,72,137,1,131, 742 15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,244,
729 193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131, 743 252,255,72,139,44,10,72,137,106,252,248,255,248,5,56,70,252,255,15,135,244,
730 193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182, 744 252,255,15,182,78,252,253,72,252,247,209,141,20,202,139,122,252,248,139,191,
731 232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137, 745 233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
732 208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,84, 746 36,252,235,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,
733 139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,72,139,71,252,248, 747 237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237,15,133,
734 131,199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137, 748 244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229,239,102,
735 149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137, 749 131,172,253,43,233,1,15,132,244,148,255,141,12,202,255,129,121,253,4,239,
736 252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225, 750 15,133,244,255,255,129,121,253,12,239,15,133,244,60,129,121,253,20,239,15,
737 3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255, 751 133,244,60,139,41,131,121,16,0,15,140,244,251,255,129,121,253,12,239,15,133,
738 248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,72,137,111,252, 752 244,165,129,121,253,20,239,15,133,244,165,255,139,105,16,133,252,237,15,136,
739 248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255, 753 244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,137,105,24,
740 248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,5, 754 255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,253,134,233,
741 56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20, 755 15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,6,141,180,
742 202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131, 756 253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,4,193,232,
743 198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199, 757 16,252,255,36,252,235,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244,7,
744 8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233, 758 255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244,7,255,
745 252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209, 759 252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,60,129,121,253,12,
746 252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,147,255,141,12,202, 760 239,15,131,244,60,255,129,121,253,12,239,15,131,244,165,129,121,253,20,239,
747 255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239,15,133,244,59, 761 15,131,244,165,255,139,105,20,255,129,252,253,239,15,131,244,60,255,252,242,
748 129,121,253,20,239,15,133,244,59,139,41,131,121,16,0,15,140,244,251,255,129, 762 15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,
749 121,253,12,239,15,133,244,164,129,121,253,20,239,15,133,244,164,255,139,105, 763 237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,
750 16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199, 764 17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,
751 65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255, 765 136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,
752 141,180,253,134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244, 766 252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233,255,141,180,
753 253,248,6,141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232, 767 253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255,15,130,244,
754 131,198,4,193,232,16,252,255,36,252,235,248,5,255,3,41,15,128,244,1,137,41, 768 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,
755 255,15,141,244,7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255, 769 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,
756 15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244, 770 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,
757 59,129,121,253,12,239,15,131,244,59,255,129,121,253,12,239,15,131,244,164, 771 65,252,248,255,139,139,233,139,4,129,72,139,128,233,139,108,36,96,137,147,
758 129,121,253,20,239,15,131,244,164,255,139,105,20,255,129,252,253,239,15,131, 772 233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,137,
759 244,59,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252, 773 124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127,185,233,
760 242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200, 774 102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233,102,68,
761 248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81, 775 15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68,15,127,
762 24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248, 776 177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,139,6,15,
763 1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134, 777 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137,252,245,
764 233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7, 778 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,150,255,139,190,
765 255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244, 779 233,139,108,36,96,141,12,202,59,141,233,15,135,244,24,15,182,142,233,57,200,
766 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252, 780 15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,
767 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137, 781 252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,
768 105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,139,128,233,139,108, 782 141,4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,
769 36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116, 783 12,200,59,141,233,15,135,244,23,137,209,137,194,15,182,174,233,133,252,237,
770 36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15, 784 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,
771 127,185,233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145, 785 56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,
772 233,102,68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102, 786 133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,
773 68,15,127,177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233, 787 232,16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,
774 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,137, 788 15,133,244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,
775 252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,149,255, 789 96,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,
776 139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,24,15,182,142, 790 72,137,252,250,137,252,233,255,15,135,244,22,199,131,233,237,255,252,255,
777 233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248, 791 215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,252,247,
778 3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255, 792 217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
779 141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,248,
780 139,108,36,96,141,12,200,59,141,233,15,135,244,23,137,209,137,194,15,182,
781 174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,
782 139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,
783 237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,
784 182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237,131,
785 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72,139,
786 189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141,233,
787 137,133,233,255,72,137,252,250,137,252,233,255,15,135,244,22,199,131,233,
788 237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,
789 12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
790}; 793};
791 794
792enum { 795enum {
@@ -837,6 +840,7 @@ enum {
837 GLOB_vmeta_arith_vvo, 840 GLOB_vmeta_arith_vvo,
838 GLOB_vmeta_arith_vv, 841 GLOB_vmeta_arith_vv,
839 GLOB_vmeta_len, 842 GLOB_vmeta_len,
843 GLOB_BC_LEN_Z,
840 GLOB_vmeta_call_ra, 844 GLOB_vmeta_call_ra,
841 GLOB_BC_CALLT_Z, 845 GLOB_BC_CALLT_Z,
842 GLOB_vmeta_for, 846 GLOB_vmeta_for,
@@ -998,6 +1002,7 @@ static const char *const globnames[] = {
998 "vmeta_arith_vvo", 1002 "vmeta_arith_vvo",
999 "vmeta_arith_vv", 1003 "vmeta_arith_vv",
1000 "vmeta_len", 1004 "vmeta_len",
1005 "BC_LEN_Z",
1001 "vmeta_call_ra", 1006 "vmeta_call_ra",
1002 "BC_CALLT_Z", 1007 "BC_CALLT_Z",
1003 "vmeta_for", 1008 "vmeta_for",
@@ -1213,638 +1218,643 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1213#if LJ_DUALNUM 1218#if LJ_DUALNUM
1214 dasm_put(Dst, 1428); 1219 dasm_put(Dst, 1428);
1215#endif 1220#endif
1216 dasm_put(Dst, 1474, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base), Dt1(->base)); 1221 dasm_put(Dst, 1474, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base));
1217 dasm_put(Dst, 1611, Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND); 1222#ifdef LUAJIT_ENABLE_LUA52COMPAT
1218 dasm_put(Dst, 1794, 1+1, ~LJ_TNUMX); 1223 dasm_put(Dst, 1580);
1224#else
1225 dasm_put(Dst, 1599);
1226#endif
1227 dasm_put(Dst, 1604, Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND);
1228 dasm_put(Dst, 1790, 1+1, ~LJ_TNUMX);
1219 if (cmov) { 1229 if (cmov) {
1220 dasm_put(Dst, 1839); 1230 dasm_put(Dst, 1859);
1221 } else { 1231 } else {
1222 dasm_put(Dst, 1843); 1232 dasm_put(Dst, 1863);
1223 } 1233 }
1224 dasm_put(Dst, 1852, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL); 1234 dasm_put(Dst, 1872, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL);
1225 dasm_put(Dst, 1931, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next)); 1235 dasm_put(Dst, 1951, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next));
1226 dasm_put(Dst, 1988, LJ_TNIL, LJ_TUDATA, LJ_TNUMX, LJ_TISNUM, LJ_TLIGHTUD); 1236 dasm_put(Dst, 2008, LJ_TNIL, LJ_TUDATA, LJ_TNUMX, LJ_TISNUM, LJ_TLIGHTUD);
1227 dasm_put(Dst, 2054, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB); 1237 dasm_put(Dst, 2074, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB);
1228 dasm_put(Dst, 2124, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB); 1238 dasm_put(Dst, 2144, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB);
1229 dasm_put(Dst, 2213, 1+1, LJ_TISNUM); 1239 dasm_put(Dst, 2233, 1+1, LJ_TISNUM);
1230 if (LJ_DUALNUM) { 1240 if (LJ_DUALNUM) {
1231 dasm_put(Dst, 2227); 1241 dasm_put(Dst, 2247);
1232 } else { 1242 } else {
1233 dasm_put(Dst, 2244); 1243 dasm_put(Dst, 2264);
1234 } 1244 }
1235 if (sse) { 1245 if (sse) {
1236 dasm_put(Dst, 2249); 1246 dasm_put(Dst, 2269);
1237 } else { 1247 } else {
1238 dasm_put(Dst, 2259); 1248 dasm_put(Dst, 2279);
1239 } 1249 }
1240 dasm_put(Dst, 2266, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1250 dasm_put(Dst, 2286, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1241 dasm_put(Dst, 2332, Dt1(->base)); 1251 dasm_put(Dst, 2352, Dt1(->base));
1242 if (LJ_DUALNUM) { 1252 if (LJ_DUALNUM) {
1243 dasm_put(Dst, 2356); 1253 dasm_put(Dst, 2376);
1244 } else { 1254 } else {
1245 dasm_put(Dst, 2361); 1255 dasm_put(Dst, 2381);
1246 } 1256 }
1247 dasm_put(Dst, 2366, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2); 1257 dasm_put(Dst, 2386, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2);
1248 dasm_put(Dst, 2459, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1258 dasm_put(Dst, 2479, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1249#ifdef LUAJIT_ENABLE_LUA52COMPAT 1259#ifdef LUAJIT_ENABLE_LUA52COMPAT
1250 dasm_put(Dst, 2506, Dt6(->metatable)); 1260 dasm_put(Dst, 2526, Dt6(->metatable));
1251#endif 1261#endif
1252 dasm_put(Dst, 2515, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1262 dasm_put(Dst, 2535, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1253 if (LJ_DUALNUM) { 1263 if (LJ_DUALNUM) {
1254 dasm_put(Dst, 2501); 1264 dasm_put(Dst, 2521);
1255 } else { 1265 } else {
1256 dasm_put(Dst, 2244); 1266 dasm_put(Dst, 2264);
1257 } 1267 }
1258 dasm_put(Dst, 2570); 1268 dasm_put(Dst, 2590);
1259 if (LJ_DUALNUM) { 1269 if (LJ_DUALNUM) {
1260 dasm_put(Dst, 2575, LJ_TISNUM); 1270 dasm_put(Dst, 2595, LJ_TISNUM);
1261 } else if (sse) { 1271 } else if (sse) {
1262 dasm_put(Dst, 2591, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1272 dasm_put(Dst, 2611, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1263 } else { 1273 } else {
1264 } 1274 }
1265 dasm_put(Dst, 2624, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1275 dasm_put(Dst, 2644, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1266 dasm_put(Dst, 2486, 1+1, LJ_TTAB); 1276 dasm_put(Dst, 2506, 1+1, LJ_TTAB);
1267#ifdef LUAJIT_ENABLE_LUA52COMPAT 1277#ifdef LUAJIT_ENABLE_LUA52COMPAT
1268 dasm_put(Dst, 2506, Dt6(->metatable)); 1278 dasm_put(Dst, 2526, Dt6(->metatable));
1269#endif 1279#endif
1270 dasm_put(Dst, 2701, Dt8(->upvalue[0]), LJ_TFUNC); 1280 dasm_put(Dst, 2721, Dt8(->upvalue[0]), LJ_TFUNC);
1271 if (LJ_DUALNUM) { 1281 if (LJ_DUALNUM) {
1272 dasm_put(Dst, 2722, LJ_TISNUM); 1282 dasm_put(Dst, 2742, LJ_TISNUM);
1273 } else if (sse) { 1283 } else if (sse) {
1274 dasm_put(Dst, 2734); 1284 dasm_put(Dst, 2754);
1275 } else { 1285 } else {
1276 dasm_put(Dst, 2744); 1286 dasm_put(Dst, 2764);
1277 } 1287 }
1278 dasm_put(Dst, 2751, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1288 dasm_put(Dst, 2771, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1279 dasm_put(Dst, 2815, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1289 dasm_put(Dst, 2835, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1280 dasm_put(Dst, 2905, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1290 dasm_put(Dst, 2925, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1281 dasm_put(Dst, 2993, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1291 dasm_put(Dst, 3013, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1282 dasm_put(Dst, 3106, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1292 dasm_put(Dst, 3126, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1283 dasm_put(Dst, 3204, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1293 dasm_put(Dst, 3224, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1284 dasm_put(Dst, 3271, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1294 dasm_put(Dst, 3291, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1285 dasm_put(Dst, 3359, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1295 dasm_put(Dst, 3379, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1286 dasm_put(Dst, 3471, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1296 dasm_put(Dst, 3491, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1287 if (!LJ_DUALNUM) { 1297 if (!LJ_DUALNUM) {
1288 dasm_put(Dst, 3498); 1298 dasm_put(Dst, 3518);
1289 } 1299 }
1290 if (sse) { 1300 if (sse) {
1291 dasm_put(Dst, 3501); 1301 dasm_put(Dst, 3521);
1292 } 1302 }
1293 dasm_put(Dst, 3516, 1+1); 1303 dasm_put(Dst, 3536, 1+1);
1294 if (LJ_DUALNUM) { 1304 if (LJ_DUALNUM) {
1295 dasm_put(Dst, 3527, LJ_TISNUM, LJ_TISNUM); 1305 dasm_put(Dst, 3547, LJ_TISNUM, LJ_TISNUM);
1296 } else { 1306 } else {
1297 dasm_put(Dst, 3607, LJ_TISNUM); 1307 dasm_put(Dst, 3627, LJ_TISNUM);
1298 } 1308 }
1299 if (sse) { 1309 if (sse) {
1300 dasm_put(Dst, 3617, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1310 dasm_put(Dst, 3637, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1301 } else { 1311 } else {
1302 dasm_put(Dst, 3648); 1312 dasm_put(Dst, 3668);
1303 } 1313 }
1304 dasm_put(Dst, 3665, 1+1, FRAME_TYPE, LJ_TNIL); 1314 dasm_put(Dst, 3685, 1+1, FRAME_TYPE, LJ_TNIL);
1305 if (LJ_DUALNUM) { 1315 if (LJ_DUALNUM) {
1306 dasm_put(Dst, 3761, LJ_TISNUM); 1316 dasm_put(Dst, 3781, LJ_TISNUM);
1307 } else { 1317 } else {
1308 dasm_put(Dst, 3607, LJ_TISNUM); 1318 dasm_put(Dst, 3627, LJ_TISNUM);
1309 } 1319 }
1310 if (sse) { 1320 if (sse) {
1311 dasm_put(Dst, 3783); 1321 dasm_put(Dst, 3803);
1312 if (LJ_DUALNUM) { 1322 if (LJ_DUALNUM) {
1313 dasm_put(Dst, 3792); 1323 dasm_put(Dst, 3812);
1314 } 1324 }
1315 dasm_put(Dst, 2254); 1325 dasm_put(Dst, 2274);
1316 } else { 1326 } else {
1317 dasm_put(Dst, 3826); 1327 dasm_put(Dst, 3846);
1318 if (LJ_DUALNUM) { 1328 if (LJ_DUALNUM) {
1319 } else { 1329 } else {
1320 dasm_put(Dst, 2261); 1330 dasm_put(Dst, 2281);
1321 } 1331 }
1322 } 1332 }
1323 dasm_put(Dst, 3832); 1333 dasm_put(Dst, 3852);
1324 if (LJ_DUALNUM) { 1334 if (LJ_DUALNUM) {
1325 dasm_put(Dst, 3761, LJ_TISNUM); 1335 dasm_put(Dst, 3781, LJ_TISNUM);
1326 } else { 1336 } else {
1327 dasm_put(Dst, 3607, LJ_TISNUM); 1337 dasm_put(Dst, 3627, LJ_TISNUM);
1328 } 1338 }
1329 if (sse) { 1339 if (sse) {
1330 dasm_put(Dst, 3835); 1340 dasm_put(Dst, 3855);
1331 if (LJ_DUALNUM) { 1341 if (LJ_DUALNUM) {
1332 dasm_put(Dst, 3792); 1342 dasm_put(Dst, 3812);
1333 } 1343 }
1334 dasm_put(Dst, 2254); 1344 dasm_put(Dst, 2274);
1335 } else { 1345 } else {
1336 dasm_put(Dst, 3844); 1346 dasm_put(Dst, 3864);
1337 if (LJ_DUALNUM) { 1347 if (LJ_DUALNUM) {
1338 } else { 1348 } else {
1339 dasm_put(Dst, 2261); 1349 dasm_put(Dst, 2281);
1340 } 1350 }
1341 } 1351 }
1342 if (sse) { 1352 if (sse) {
1343 dasm_put(Dst, 3850, 1+1, LJ_TISNUM); 1353 dasm_put(Dst, 3870, 1+1, LJ_TISNUM);
1344 } else { 1354 } else {
1345 dasm_put(Dst, 3879, 1+1, LJ_TISNUM); 1355 dasm_put(Dst, 3899, 1+1, LJ_TISNUM);
1346 } 1356 }
1347 dasm_put(Dst, 3908, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1357 dasm_put(Dst, 3928, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1348 dasm_put(Dst, 3977, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1358 dasm_put(Dst, 3997, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1349 dasm_put(Dst, 4034, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1359 dasm_put(Dst, 4054, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1350 dasm_put(Dst, 4097, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1360 dasm_put(Dst, 4117, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1351 dasm_put(Dst, 4187); 1361 dasm_put(Dst, 4207);
1352 if (sse) { 1362 if (sse) {
1353 dasm_put(Dst, 4199, 1+1, LJ_TISNUM); 1363 dasm_put(Dst, 4219, 1+1, LJ_TISNUM);
1354 } else { 1364 } else {
1355 } 1365 }
1356 dasm_put(Dst, 4224); 1366 dasm_put(Dst, 4244);
1357 if (sse) { 1367 if (sse) {
1358 dasm_put(Dst, 4238, 1+1, LJ_TISNUM); 1368 dasm_put(Dst, 4258, 1+1, LJ_TISNUM);
1359 } else { 1369 } else {
1360 } 1370 }
1361 dasm_put(Dst, 4263); 1371 dasm_put(Dst, 4283);
1362 if (sse) { 1372 if (sse) {
1363 dasm_put(Dst, 4277, 1+1, LJ_TISNUM); 1373 dasm_put(Dst, 4297, 1+1, LJ_TISNUM);
1364 } else { 1374 } else {
1365 } 1375 }
1366 dasm_put(Dst, 4302); 1376 dasm_put(Dst, 4322);
1367 if (sse) { 1377 if (sse) {
1368 dasm_put(Dst, 4318, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1378 dasm_put(Dst, 4338, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1369 } else { 1379 } else {
1370 dasm_put(Dst, 4357, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1380 dasm_put(Dst, 4377, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1371 } 1381 }
1372 dasm_put(Dst, 4390, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1382 dasm_put(Dst, 4410, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1373 dasm_put(Dst, 4455, 1+1, LJ_TISNUM); 1383 dasm_put(Dst, 4475, 1+1, LJ_TISNUM);
1374 if (sse) { 1384 if (sse) {
1375 dasm_put(Dst, 4554); 1385 dasm_put(Dst, 4574);
1376 } else { 1386 } else {
1377 dasm_put(Dst, 4560); 1387 dasm_put(Dst, 4580);
1378 } 1388 }
1379 dasm_put(Dst, 4569); 1389 dasm_put(Dst, 4589);
1380 if (sse) { 1390 if (sse) {
1381 dasm_put(Dst, 4594); 1391 dasm_put(Dst, 4614);
1382 } else { 1392 } else {
1383 dasm_put(Dst, 4600); 1393 dasm_put(Dst, 4620);
1384 } 1394 }
1385 dasm_put(Dst, 4603, 1+2); 1395 dasm_put(Dst, 4623, 1+2);
1386 if (sse) { 1396 if (sse) {
1387 dasm_put(Dst, 4612); 1397 dasm_put(Dst, 4632);
1388 } else { 1398 } else {
1389 dasm_put(Dst, 4620); 1399 dasm_put(Dst, 4640);
1390 } 1400 }
1391 dasm_put(Dst, 4628); 1401 dasm_put(Dst, 4648);
1392 if (sse) { 1402 if (sse) {
1393 dasm_put(Dst, 4631, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1403 dasm_put(Dst, 4651, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1394 } else { 1404 } else {
1395 dasm_put(Dst, 4658); 1405 dasm_put(Dst, 4678);
1396 } 1406 }
1397 dasm_put(Dst, 4677); 1407 dasm_put(Dst, 4697);
1398 if (sse) { 1408 if (sse) {
1399 dasm_put(Dst, 4693, 1+1, LJ_TISNUM); 1409 dasm_put(Dst, 4713, 1+1, LJ_TISNUM);
1400 } else { 1410 } else {
1401 dasm_put(Dst, 4718, 1+1, LJ_TISNUM); 1411 dasm_put(Dst, 4738, 1+1, LJ_TISNUM);
1402 } 1412 }
1403 dasm_put(Dst, 4740); 1413 dasm_put(Dst, 4760);
1404 if (sse) { 1414 if (sse) {
1405 dasm_put(Dst, 4762); 1415 dasm_put(Dst, 4782);
1406 } else { 1416 } else {
1407 dasm_put(Dst, 4788); 1417 dasm_put(Dst, 4808);
1408 } 1418 }
1409 dasm_put(Dst, 4805, 1+2); 1419 dasm_put(Dst, 4825, 1+2);
1410 if (sse) { 1420 if (sse) {
1411 dasm_put(Dst, 4845); 1421 dasm_put(Dst, 4865);
1412 } else { 1422 } else {
1413 dasm_put(Dst, 4853); 1423 dasm_put(Dst, 4873);
1414 } 1424 }
1415 dasm_put(Dst, 4863, 2+1, LJ_TISNUM, LJ_TISNUM); 1425 dasm_put(Dst, 4883, 2+1, LJ_TISNUM, LJ_TISNUM);
1416 if (sse) { 1426 if (sse) {
1417 dasm_put(Dst, 4915, 2+1, LJ_TISNUM, LJ_TISNUM); 1427 dasm_put(Dst, 4935, 2+1, LJ_TISNUM, LJ_TISNUM);
1418 } else { 1428 } else {
1419 dasm_put(Dst, 4962, 2+1, LJ_TISNUM, LJ_TISNUM); 1429 dasm_put(Dst, 4982, 2+1, LJ_TISNUM, LJ_TISNUM);
1420 } 1430 }
1421 dasm_put(Dst, 5003, LJ_TISNUM); 1431 dasm_put(Dst, 5023, LJ_TISNUM);
1422 if (LJ_DUALNUM) { 1432 if (LJ_DUALNUM) {
1423 dasm_put(Dst, 5016, LJ_TISNUM); 1433 dasm_put(Dst, 5036, LJ_TISNUM);
1424 if (sse) { 1434 if (sse) {
1425 dasm_put(Dst, 4554); 1435 dasm_put(Dst, 4574);
1426 } else { 1436 } else {
1427 } 1437 }
1428 dasm_put(Dst, 5066); 1438 dasm_put(Dst, 5086);
1429 } else { 1439 } else {
1430 dasm_put(Dst, 2244); 1440 dasm_put(Dst, 2264);
1431 } 1441 }
1432 if (sse) { 1442 if (sse) {
1433 dasm_put(Dst, 5077, LJ_TISNUM); 1443 dasm_put(Dst, 5097, LJ_TISNUM);
1434 if (LJ_DUALNUM) { 1444 if (LJ_DUALNUM) {
1435 dasm_put(Dst, 5098); 1445 dasm_put(Dst, 5118);
1436 } else { 1446 } else {
1437 dasm_put(Dst, 2244); 1447 dasm_put(Dst, 2264);
1438 } 1448 }
1439 dasm_put(Dst, 5119); 1449 dasm_put(Dst, 5139);
1440 } else { 1450 } else {
1441 } 1451 }
1442 dasm_put(Dst, 5144, LJ_TISNUM); 1452 dasm_put(Dst, 5164, LJ_TISNUM);
1443 if (LJ_DUALNUM) { 1453 if (LJ_DUALNUM) {
1444 dasm_put(Dst, 5157, LJ_TISNUM); 1454 dasm_put(Dst, 5177, LJ_TISNUM);
1445 if (sse) { 1455 if (sse) {
1446 dasm_put(Dst, 4554); 1456 dasm_put(Dst, 4574);
1447 } else { 1457 } else {
1448 } 1458 }
1449 dasm_put(Dst, 5066); 1459 dasm_put(Dst, 5086);
1450 } else { 1460 } else {
1451 dasm_put(Dst, 2244); 1461 dasm_put(Dst, 2264);
1452 } 1462 }
1453 if (sse) { 1463 if (sse) {
1454 dasm_put(Dst, 5077, LJ_TISNUM); 1464 dasm_put(Dst, 5097, LJ_TISNUM);
1455 if (LJ_DUALNUM) { 1465 if (LJ_DUALNUM) {
1456 dasm_put(Dst, 5098); 1466 dasm_put(Dst, 5118);
1457 } else { 1467 } else {
1458 dasm_put(Dst, 2244); 1468 dasm_put(Dst, 2264);
1459 } 1469 }
1460 dasm_put(Dst, 5207); 1470 dasm_put(Dst, 5227);
1461 } else { 1471 } else {
1462 } 1472 }
1463 if (!sse) { 1473 if (!sse) {
1464 dasm_put(Dst, 5232); 1474 dasm_put(Dst, 5252);
1465 } 1475 }
1466 dasm_put(Dst, 5241, 1+1, LJ_TSTR); 1476 dasm_put(Dst, 5261, 1+1, LJ_TSTR);
1467 if (LJ_DUALNUM) { 1477 if (LJ_DUALNUM) {
1468 dasm_put(Dst, 5263, Dt5(->len)); 1478 dasm_put(Dst, 5283, Dt5(->len));
1469 } else if (sse) { 1479 } else if (sse) {
1470 dasm_put(Dst, 5271, Dt5(->len)); 1480 dasm_put(Dst, 5291, Dt5(->len));
1471 } else { 1481 } else {
1472 dasm_put(Dst, 5282, Dt5(->len)); 1482 dasm_put(Dst, 5302, Dt5(->len));
1473 } 1483 }
1474 dasm_put(Dst, 5290, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1484 dasm_put(Dst, 5310, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1475 if (LJ_DUALNUM) { 1485 if (LJ_DUALNUM) {
1476 dasm_put(Dst, 5266); 1486 dasm_put(Dst, 5286);
1477 } else if (sse) { 1487 } else if (sse) {
1478 dasm_put(Dst, 5328); 1488 dasm_put(Dst, 5348);
1479 } else { 1489 } else {
1480 dasm_put(Dst, 5338); 1490 dasm_put(Dst, 5358);
1481 } 1491 }
1482 dasm_put(Dst, 5351, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1492 dasm_put(Dst, 5371, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1483 if (LJ_DUALNUM) { 1493 if (LJ_DUALNUM) {
1484 dasm_put(Dst, 5382); 1494 dasm_put(Dst, 5402);
1485 } else if (sse) { 1495 } else if (sse) {
1486 dasm_put(Dst, 5405); 1496 dasm_put(Dst, 5425);
1487 } else { 1497 } else {
1488 dasm_put(Dst, 5431); 1498 dasm_put(Dst, 5451);
1489 } 1499 }
1490 dasm_put(Dst, 5455, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1500 dasm_put(Dst, 5475, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1491 if (LJ_DUALNUM) { 1501 if (LJ_DUALNUM) {
1492 dasm_put(Dst, 5563); 1502 dasm_put(Dst, 5583);
1493 } else if (sse) { 1503 } else if (sse) {
1494 dasm_put(Dst, 5575); 1504 dasm_put(Dst, 5595);
1495 } else { 1505 } else {
1496 dasm_put(Dst, 5590); 1506 dasm_put(Dst, 5610);
1497 } 1507 }
1498 dasm_put(Dst, 5602, LJ_TSTR, LJ_TISNUM); 1508 dasm_put(Dst, 5622, LJ_TSTR, LJ_TISNUM);
1499 if (LJ_DUALNUM) { 1509 if (LJ_DUALNUM) {
1500 dasm_put(Dst, 2501); 1510 dasm_put(Dst, 2521);
1501 } else { 1511 } else {
1502 dasm_put(Dst, 2244); 1512 dasm_put(Dst, 2264);
1503 } 1513 }
1504 dasm_put(Dst, 5619, Dt5(->len)); 1514 dasm_put(Dst, 5639, Dt5(->len));
1505 if (LJ_DUALNUM) { 1515 if (LJ_DUALNUM) {
1506 dasm_put(Dst, 5629); 1516 dasm_put(Dst, 5649);
1507 } else if (sse) { 1517 } else if (sse) {
1508 dasm_put(Dst, 5633); 1518 dasm_put(Dst, 5653);
1509 } else { 1519 } else {
1510 } 1520 }
1511 dasm_put(Dst, 5640, sizeof(GCstr)-1); 1521 dasm_put(Dst, 5660, sizeof(GCstr)-1);
1512 dasm_put(Dst, 5715, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1522 dasm_put(Dst, 5735, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1513 dasm_put(Dst, 5774, LJ_TSTR, LJ_TISNUM); 1523 dasm_put(Dst, 5794, LJ_TSTR, LJ_TISNUM);
1514 if (LJ_DUALNUM) { 1524 if (LJ_DUALNUM) {
1515 dasm_put(Dst, 5791); 1525 dasm_put(Dst, 5811);
1516 } else if (sse) { 1526 } else if (sse) {
1517 dasm_put(Dst, 5799); 1527 dasm_put(Dst, 5819);
1518 } else { 1528 } else {
1519 dasm_put(Dst, 5810); 1529 dasm_put(Dst, 5830);
1520 } 1530 }
1521 dasm_put(Dst, 5826, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1531 dasm_put(Dst, 5846, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1522 dasm_put(Dst, 5891, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1532 dasm_put(Dst, 5911, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1523 dasm_put(Dst, 5954, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1533 dasm_put(Dst, 5974, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1524 dasm_put(Dst, 6025, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1534 dasm_put(Dst, 6045, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1525 dasm_put(Dst, 6110, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1535 dasm_put(Dst, 6130, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1526 dasm_put(Dst, 6180, 1+1, LJ_TTAB); 1536 dasm_put(Dst, 6200, 1+1, LJ_TTAB);
1527 if (LJ_DUALNUM) { 1537 if (LJ_DUALNUM) {
1528 dasm_put(Dst, 6248); 1538 dasm_put(Dst, 6268);
1529 } else if (sse) { 1539 } else if (sse) {
1530 dasm_put(Dst, 6255); 1540 dasm_put(Dst, 6275);
1531 } else { 1541 } else {
1532 } 1542 }
1533 dasm_put(Dst, 6265, 1+1, LJ_TISNUM); 1543 dasm_put(Dst, 6285, 1+1, LJ_TISNUM);
1534 if (LJ_DUALNUM) { 1544 if (LJ_DUALNUM) {
1535 dasm_put(Dst, 6281); 1545 dasm_put(Dst, 6301);
1536 } else { 1546 } else {
1537 dasm_put(Dst, 2244); 1547 dasm_put(Dst, 2264);
1538 } 1548 }
1539 if (sse) { 1549 if (sse) {
1540 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1550 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1541 } else { 1551 } else {
1542 } 1552 }
1543 dasm_put(Dst, 106); 1553 dasm_put(Dst, 106);
1544 if (LJ_DUALNUM || sse) { 1554 if (LJ_DUALNUM || sse) {
1545 if (!sse) { 1555 if (!sse) {
1546 } 1556 }
1547 dasm_put(Dst, 6322); 1557 dasm_put(Dst, 6342);
1548 } else { 1558 } else {
1549 } 1559 }
1550 dasm_put(Dst, 6327, 1+1); 1560 dasm_put(Dst, 6347, 1+1);
1551 if (sse) { 1561 if (sse) {
1552 dasm_put(Dst, 6338, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1562 dasm_put(Dst, 6358, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1553 } else { 1563 } else {
1554 dasm_put(Dst, 6348); 1564 dasm_put(Dst, 6368);
1555 } 1565 }
1556 dasm_put(Dst, 2221, LJ_TISNUM); 1566 dasm_put(Dst, 2241, LJ_TISNUM);
1557 if (LJ_DUALNUM) { 1567 if (LJ_DUALNUM) {
1558 dasm_put(Dst, 6357); 1568 dasm_put(Dst, 6377);
1559 } else { 1569 } else {
1560 dasm_put(Dst, 2244); 1570 dasm_put(Dst, 2264);
1561 } 1571 }
1562 if (sse) { 1572 if (sse) {
1563 dasm_put(Dst, 6374); 1573 dasm_put(Dst, 6394);
1564 } else { 1574 } else {
1565 } 1575 }
1566 dasm_put(Dst, 6389, LJ_TISNUM); 1576 dasm_put(Dst, 6409, LJ_TISNUM);
1567 if (LJ_DUALNUM) { 1577 if (LJ_DUALNUM) {
1568 dasm_put(Dst, 6414);
1569 } else {
1570 dasm_put(Dst, 6434); 1578 dasm_put(Dst, 6434);
1579 } else {
1580 dasm_put(Dst, 6454);
1571 } 1581 }
1572 if (sse) { 1582 if (sse) {
1573 dasm_put(Dst, 6439); 1583 dasm_put(Dst, 6459);
1574 } else { 1584 } else {
1575 } 1585 }
1576 dasm_put(Dst, 6456, 1+1); 1586 dasm_put(Dst, 6476, 1+1);
1577 if (sse) { 1587 if (sse) {
1578 dasm_put(Dst, 6338, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1588 dasm_put(Dst, 6358, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1579 } else { 1589 } else {
1580 dasm_put(Dst, 6348); 1590 dasm_put(Dst, 6368);
1581 } 1591 }
1582 dasm_put(Dst, 2221, LJ_TISNUM); 1592 dasm_put(Dst, 2241, LJ_TISNUM);
1583 if (LJ_DUALNUM) { 1593 if (LJ_DUALNUM) {
1584 dasm_put(Dst, 6357); 1594 dasm_put(Dst, 6377);
1585 } else { 1595 } else {
1586 dasm_put(Dst, 2244); 1596 dasm_put(Dst, 2264);
1587 } 1597 }
1588 if (sse) { 1598 if (sse) {
1589 dasm_put(Dst, 6374); 1599 dasm_put(Dst, 6394);
1590 } else { 1600 } else {
1591 } 1601 }
1592 dasm_put(Dst, 6389, LJ_TISNUM); 1602 dasm_put(Dst, 6409, LJ_TISNUM);
1593 if (LJ_DUALNUM) { 1603 if (LJ_DUALNUM) {
1594 dasm_put(Dst, 6474); 1604 dasm_put(Dst, 6494);
1595 } else { 1605 } else {
1596 dasm_put(Dst, 6434); 1606 dasm_put(Dst, 6454);
1597 } 1607 }
1598 if (sse) { 1608 if (sse) {
1599 dasm_put(Dst, 6494); 1609 dasm_put(Dst, 6514);
1600 } else { 1610 } else {
1601 } 1611 }
1602 dasm_put(Dst, 6511, 1+1); 1612 dasm_put(Dst, 6531, 1+1);
1603 if (sse) { 1613 if (sse) {
1604 dasm_put(Dst, 6338, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1614 dasm_put(Dst, 6358, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1605 } else { 1615 } else {
1606 dasm_put(Dst, 6348); 1616 dasm_put(Dst, 6368);
1607 } 1617 }
1608 dasm_put(Dst, 2221, LJ_TISNUM); 1618 dasm_put(Dst, 2241, LJ_TISNUM);
1609 if (LJ_DUALNUM) { 1619 if (LJ_DUALNUM) {
1610 dasm_put(Dst, 6357); 1620 dasm_put(Dst, 6377);
1611 } else { 1621 } else {
1612 dasm_put(Dst, 2244); 1622 dasm_put(Dst, 2264);
1613 } 1623 }
1614 if (sse) { 1624 if (sse) {
1615 dasm_put(Dst, 6374); 1625 dasm_put(Dst, 6394);
1616 } else { 1626 } else {
1617 } 1627 }
1618 dasm_put(Dst, 6389, LJ_TISNUM); 1628 dasm_put(Dst, 6409, LJ_TISNUM);
1619 if (LJ_DUALNUM) { 1629 if (LJ_DUALNUM) {
1620 dasm_put(Dst, 6529); 1630 dasm_put(Dst, 6549);
1621 } else { 1631 } else {
1622 dasm_put(Dst, 6434); 1632 dasm_put(Dst, 6454);
1623 } 1633 }
1624 if (sse) { 1634 if (sse) {
1625 dasm_put(Dst, 6549); 1635 dasm_put(Dst, 6569);
1626 } else { 1636 } else {
1627 } 1637 }
1628 dasm_put(Dst, 6566, 1+1, LJ_TISNUM); 1638 dasm_put(Dst, 6586, 1+1, LJ_TISNUM);
1629 if (LJ_DUALNUM) { 1639 if (LJ_DUALNUM) {
1630 dasm_put(Dst, 6357); 1640 dasm_put(Dst, 6377);
1631 } else { 1641 } else {
1632 dasm_put(Dst, 2244); 1642 dasm_put(Dst, 2264);
1633 } 1643 }
1634 if (sse) { 1644 if (sse) {
1635 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1645 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1636 } else { 1646 } else {
1637 } 1647 }
1638 dasm_put(Dst, 6589, 1+1, LJ_TISNUM); 1648 dasm_put(Dst, 6609, 1+1, LJ_TISNUM);
1639 if (LJ_DUALNUM) { 1649 if (LJ_DUALNUM) {
1640 dasm_put(Dst, 6357); 1650 dasm_put(Dst, 6377);
1641 } else { 1651 } else {
1642 dasm_put(Dst, 2244); 1652 dasm_put(Dst, 2264);
1643 } 1653 }
1644 if (sse) { 1654 if (sse) {
1645 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1655 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1646 } else { 1656 } else {
1647 } 1657 }
1648 dasm_put(Dst, 6613); 1658 dasm_put(Dst, 6633);
1649 if (LJ_DUALNUM) { 1659 if (LJ_DUALNUM) {
1650 dasm_put(Dst, 6322); 1660 dasm_put(Dst, 6342);
1651 } else if (sse) { 1661 } else if (sse) {
1652 dasm_put(Dst, 6619); 1662 dasm_put(Dst, 6639);
1653 } else { 1663 } else {
1654 } 1664 }
1655 dasm_put(Dst, 6631); 1665 dasm_put(Dst, 6651);
1656 if (LJ_DUALNUM) { 1666 if (LJ_DUALNUM) {
1657 dasm_put(Dst, 6642, 1+1, LJ_TISNUM); 1667 dasm_put(Dst, 6662, 1+1, LJ_TISNUM);
1658 if (LJ_DUALNUM) { 1668 if (LJ_DUALNUM) {
1659 dasm_put(Dst, 6357); 1669 dasm_put(Dst, 6377);
1660 } else { 1670 } else {
1661 dasm_put(Dst, 2244); 1671 dasm_put(Dst, 2264);
1662 } 1672 }
1663 if (sse) { 1673 if (sse) {
1664 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1674 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1665 } else { 1675 } else {
1666 } 1676 }
1667 dasm_put(Dst, 6658, LJ_TISNUM); 1677 dasm_put(Dst, 6678, LJ_TISNUM);
1668 } else if (sse) { 1678 } else if (sse) {
1669 dasm_put(Dst, 6673, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1679 dasm_put(Dst, 6693, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1670 } else { 1680 } else {
1671 } 1681 }
1672 dasm_put(Dst, 6740); 1682 dasm_put(Dst, 6760);
1673 if (LJ_DUALNUM) { 1683 if (LJ_DUALNUM) {
1674 dasm_put(Dst, 6747, 1+1, LJ_TISNUM); 1684 dasm_put(Dst, 6767, 1+1, LJ_TISNUM);
1675 if (LJ_DUALNUM) { 1685 if (LJ_DUALNUM) {
1676 dasm_put(Dst, 6357); 1686 dasm_put(Dst, 6377);
1677 } else { 1687 } else {
1678 dasm_put(Dst, 2244); 1688 dasm_put(Dst, 2264);
1679 } 1689 }
1680 if (sse) { 1690 if (sse) {
1681 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1691 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1682 } else { 1692 } else {
1683 } 1693 }
1684 dasm_put(Dst, 6658, LJ_TISNUM); 1694 dasm_put(Dst, 6678, LJ_TISNUM);
1685 } else if (sse) { 1695 } else if (sse) {
1686 dasm_put(Dst, 6763, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1696 dasm_put(Dst, 6783, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1687 } else { 1697 } else {
1688 } 1698 }
1689 dasm_put(Dst, 6830); 1699 dasm_put(Dst, 6850);
1690 if (LJ_DUALNUM) { 1700 if (LJ_DUALNUM) {
1691 dasm_put(Dst, 6838, 1+1, LJ_TISNUM); 1701 dasm_put(Dst, 6858, 1+1, LJ_TISNUM);
1692 if (LJ_DUALNUM) { 1702 if (LJ_DUALNUM) {
1693 dasm_put(Dst, 6357); 1703 dasm_put(Dst, 6377);
1694 } else { 1704 } else {
1695 dasm_put(Dst, 2244); 1705 dasm_put(Dst, 2264);
1696 } 1706 }
1697 if (sse) { 1707 if (sse) {
1698 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1708 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1699 } else { 1709 } else {
1700 } 1710 }
1701 dasm_put(Dst, 6658, LJ_TISNUM); 1711 dasm_put(Dst, 6678, LJ_TISNUM);
1702 } else if (sse) { 1712 } else if (sse) {
1703 dasm_put(Dst, 6854, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1713 dasm_put(Dst, 6874, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1704 } else { 1714 } else {
1705 } 1715 }
1706 dasm_put(Dst, 6921); 1716 dasm_put(Dst, 6941);
1707 if (LJ_DUALNUM) { 1717 if (LJ_DUALNUM) {
1708 dasm_put(Dst, 6929, 1+1, LJ_TISNUM); 1718 dasm_put(Dst, 6949, 1+1, LJ_TISNUM);
1709 if (LJ_DUALNUM) { 1719 if (LJ_DUALNUM) {
1710 dasm_put(Dst, 6357); 1720 dasm_put(Dst, 6377);
1711 } else { 1721 } else {
1712 dasm_put(Dst, 2244); 1722 dasm_put(Dst, 2264);
1713 } 1723 }
1714 if (sse) { 1724 if (sse) {
1715 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1725 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1716 } else { 1726 } else {
1717 } 1727 }
1718 dasm_put(Dst, 6658, LJ_TISNUM); 1728 dasm_put(Dst, 6678, LJ_TISNUM);
1719 } else if (sse) { 1729 } else if (sse) {
1720 dasm_put(Dst, 6945, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1730 dasm_put(Dst, 6965, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1721 } else { 1731 } else {
1722 } 1732 }
1723 dasm_put(Dst, 7012); 1733 dasm_put(Dst, 7032);
1724 if (LJ_DUALNUM) { 1734 if (LJ_DUALNUM) {
1725 dasm_put(Dst, 7019, 1+1, LJ_TISNUM); 1735 dasm_put(Dst, 7039, 1+1, LJ_TISNUM);
1726 if (LJ_DUALNUM) { 1736 if (LJ_DUALNUM) {
1727 dasm_put(Dst, 6357); 1737 dasm_put(Dst, 6377);
1728 } else { 1738 } else {
1729 dasm_put(Dst, 2244); 1739 dasm_put(Dst, 2264);
1730 } 1740 }
1731 if (sse) { 1741 if (sse) {
1732 dasm_put(Dst, 6298, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1742 dasm_put(Dst, 6318, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1733 } else { 1743 } else {
1734 } 1744 }
1735 dasm_put(Dst, 6658, LJ_TISNUM); 1745 dasm_put(Dst, 6678, LJ_TISNUM);
1736 } else if (sse) { 1746 } else if (sse) {
1737 dasm_put(Dst, 7035, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1747 dasm_put(Dst, 7055, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1738 } else { 1748 } else {
1739 } 1749 }
1740 dasm_put(Dst, 7102, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1750 dasm_put(Dst, 7122, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1741 dasm_put(Dst, 7178, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1751 dasm_put(Dst, 7198, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1742 dasm_put(Dst, 7305, Dt1(->top), Dt1(->base), Dt1(->top)); 1752 dasm_put(Dst, 7325, Dt1(->top), Dt1(->base), Dt1(->top));
1743#if LJ_HASJIT 1753#if LJ_HASJIT
1744 dasm_put(Dst, 7344, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1754 dasm_put(Dst, 7364, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1745#endif 1755#endif
1746 dasm_put(Dst, 7375, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1756 dasm_put(Dst, 7395, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1747 dasm_put(Dst, 7426, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1757 dasm_put(Dst, 7446, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1748#if LJ_HASJIT 1758#if LJ_HASJIT
1749 dasm_put(Dst, 7493, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1759 dasm_put(Dst, 7513, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1750#endif 1760#endif
1751 dasm_put(Dst, 7540); 1761 dasm_put(Dst, 7560);
1752#if LJ_HASJIT 1762#if LJ_HASJIT
1753 dasm_put(Dst, 7370); 1763 dasm_put(Dst, 7390);
1754#endif 1764#endif
1755 dasm_put(Dst, 7547); 1765 dasm_put(Dst, 7567);
1756#if LJ_HASJIT 1766#if LJ_HASJIT
1757 dasm_put(Dst, 7550); 1767 dasm_put(Dst, 7570);
1758#endif 1768#endif
1759 dasm_put(Dst, 7560, Dt1(->base), Dt1(->top)); 1769 dasm_put(Dst, 7580, Dt1(->base), Dt1(->top));
1760#if LJ_HASJIT 1770#if LJ_HASJIT
1761 dasm_put(Dst, 7594); 1771 dasm_put(Dst, 7614);
1762#endif 1772#endif
1763 dasm_put(Dst, 7599, Dt1(->base), Dt1(->top)); 1773 dasm_put(Dst, 7619, Dt1(->base), Dt1(->top));
1764#if LJ_HASJIT 1774#if LJ_HASJIT
1765 dasm_put(Dst, 7630, 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); 1775 dasm_put(Dst, 7650, 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);
1766#endif 1776#endif
1767 dasm_put(Dst, 7860); 1777 dasm_put(Dst, 7880);
1768#if LJ_HASJIT 1778#if LJ_HASJIT
1769 dasm_put(Dst, 7863, 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); 1779 dasm_put(Dst, 7883, 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);
1770 dasm_put(Dst, 8005); 1780 dasm_put(Dst, 8025);
1771#endif 1781#endif
1772 dasm_put(Dst, 8031); 1782 dasm_put(Dst, 8051);
1773 if (!sse) { 1783 if (!sse) {
1774 dasm_put(Dst, 8034); 1784 dasm_put(Dst, 8054);
1775 } 1785 }
1776 dasm_put(Dst, 8079, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1786 dasm_put(Dst, 8099, (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));
1777 if (!sse) { 1787 if (!sse) {
1778 dasm_put(Dst, 8165); 1788 dasm_put(Dst, 8185);
1779 } 1789 }
1780 dasm_put(Dst, 8210, (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)); 1790 dasm_put(Dst, 8230, (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));
1781 if (!sse) { 1791 if (!sse) {
1782 dasm_put(Dst, 8296); 1792 dasm_put(Dst, 8316);
1783 } 1793 }
1784 dasm_put(Dst, 8335, (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)); 1794 dasm_put(Dst, 8355, (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));
1785 if (sse) { 1795 if (sse) {
1786 dasm_put(Dst, 8424, (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)); 1796 dasm_put(Dst, 8444, (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));
1787 } else { 1797 } else {
1788 dasm_put(Dst, 8538); 1798 dasm_put(Dst, 8558);
1789 } 1799 }
1790 dasm_put(Dst, 8585); 1800 dasm_put(Dst, 8605);
1791 if (!sse) { 1801 if (!sse) {
1792 } else { 1802 } else {
1793 dasm_put(Dst, 8659); 1803 dasm_put(Dst, 8679);
1794 } 1804 }
1795 dasm_put(Dst, 8662); 1805 dasm_put(Dst, 8682);
1796 dasm_put(Dst, 8747, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1806 dasm_put(Dst, 8767, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1797 dasm_put(Dst, 8850, (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)); 1807 dasm_put(Dst, 8870, (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));
1798 dasm_put(Dst, 9006); 1808 dasm_put(Dst, 9026);
1799#if LJ_HASJIT 1809#if LJ_HASJIT
1800 if (sse) { 1810 if (sse) {
1801 dasm_put(Dst, 9047); 1811 dasm_put(Dst, 9067);
1802 dasm_put(Dst, 9117); 1812 dasm_put(Dst, 9137);
1803 dasm_put(Dst, 9190); 1813 dasm_put(Dst, 9210);
1804 } else { 1814 } else {
1805 dasm_put(Dst, 9240); 1815 dasm_put(Dst, 9260);
1806 dasm_put(Dst, 9332); 1816 dasm_put(Dst, 9352);
1807 } 1817 }
1808 dasm_put(Dst, 9378); 1818 dasm_put(Dst, 9398);
1809#endif 1819#endif
1810 dasm_put(Dst, 9382); 1820 dasm_put(Dst, 9402);
1811 if (sse) { 1821 if (sse) {
1812 dasm_put(Dst, 9385, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1822 dasm_put(Dst, 9405, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1813 dasm_put(Dst, 9474, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1823 dasm_put(Dst, 9494, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1814 } else { 1824 } else {
1815 dasm_put(Dst, 9598); 1825 dasm_put(Dst, 9618);
1816 dasm_put(Dst, 9681); 1826 dasm_put(Dst, 9701);
1817 if (cmov) { 1827 if (cmov) {
1818 dasm_put(Dst, 9736); 1828 dasm_put(Dst, 9756);
1819 } else { 1829 } else {
1820 dasm_put(Dst, 9755); 1830 dasm_put(Dst, 9775);
1821 } 1831 }
1822 dasm_put(Dst, 9378); 1832 dasm_put(Dst, 9398);
1823 } 1833 }
1824 dasm_put(Dst, 9796); 1834 dasm_put(Dst, 9816);
1825#if LJ_HASFFI 1835#if LJ_HASFFI
1826#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1836#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1827 dasm_put(Dst, 9824, DtE(->spadj)); 1837 dasm_put(Dst, 9844, DtE(->spadj));
1828#if LJ_TARGET_WINDOWS 1838#if LJ_TARGET_WINDOWS
1829#endif 1839#endif
1830 dasm_put(Dst, 9839, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3])); 1840 dasm_put(Dst, 9859, DtE(->nsp), offsetof(CCallState, stack), CCALL_SPS_EXTRA*8, DtE(->nfpr), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3]));
1831 dasm_put(Dst, 9920, DtE(->func), DtE(->gpr[0]), DtE(->fpr[0])); 1841 dasm_put(Dst, 9940, DtE(->func), DtE(->gpr[0]), DtE(->fpr[0]));
1832#if LJ_TARGET_WINDOWS 1842#if LJ_TARGET_WINDOWS
1833#endif 1843#endif
1834 dasm_put(Dst, 9933); 1844 dasm_put(Dst, 9953);
1835#endif 1845#endif
1836 dasm_put(Dst, 9941); 1846 dasm_put(Dst, 9961);
1837#ifdef LUA_USE_ASSERT 1847#ifdef LUA_USE_ASSERT
1838 dasm_put(Dst, 9380); 1848 dasm_put(Dst, 9400);
1839#endif 1849#endif
1840 dasm_put(Dst, 9380); 1850 dasm_put(Dst, 9400);
1841} 1851}
1842 1852
1843/* Generate the code for a single instruction. */ 1853/* Generate the code for a single instruction. */
1844static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1854static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1845{ 1855{
1846 int vk = 0; 1856 int vk = 0;
1847 dasm_put(Dst, 9944, defop); 1857 dasm_put(Dst, 9964, defop);
1848 1858
1849 switch (op) { 1859 switch (op) {
1850 1860
@@ -1855,296 +1865,303 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1855 1865
1856 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1866 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1857 if (LJ_DUALNUM) { 1867 if (LJ_DUALNUM) {
1858 dasm_put(Dst, 9946, LJ_TISNUM, LJ_TISNUM); 1868 dasm_put(Dst, 9966, LJ_TISNUM, LJ_TISNUM);
1859 switch (op) { 1869 switch (op) {
1860 case BC_ISLT: 1870 case BC_ISLT:
1861 dasm_put(Dst, 9976); 1871 dasm_put(Dst, 9996);
1862 break; 1872 break;
1863 case BC_ISGE: 1873 case BC_ISGE:
1864 dasm_put(Dst, 9981); 1874 dasm_put(Dst, 10001);
1865 break; 1875 break;
1866 case BC_ISLE: 1876 case BC_ISLE:
1867 dasm_put(Dst, 9986); 1877 dasm_put(Dst, 10006);
1868 break; 1878 break;
1869 case BC_ISGT: 1879 case BC_ISGT:
1870 dasm_put(Dst, 9991); 1880 dasm_put(Dst, 10011);
1871 break; 1881 break;
1872 default: break; /* Shut up GCC. */ 1882 default: break; /* Shut up GCC. */
1873 } 1883 }
1874 dasm_put(Dst, 9996, -BCBIAS_J*4, LJ_TISNUM); 1884 dasm_put(Dst, 10016, -BCBIAS_J*4, LJ_TISNUM);
1875 if (sse) { 1885 if (sse) {
1876 dasm_put(Dst, 10050); 1886 dasm_put(Dst, 10070);
1877 } else { 1887 } else {
1878 dasm_put(Dst, 10061); 1888 dasm_put(Dst, 10081);
1879 } 1889 }
1880 dasm_put(Dst, 10072); 1890 dasm_put(Dst, 10092);
1881 if (sse) { 1891 if (sse) {
1882 dasm_put(Dst, 10079); 1892 dasm_put(Dst, 10099);
1883 switch (op) { 1893 switch (op) {
1884 case BC_ISLT: 1894 case BC_ISLT:
1885 dasm_put(Dst, 10099); 1895 dasm_put(Dst, 10119);
1886 break; 1896 break;
1887 case BC_ISGE: 1897 case BC_ISGE:
1888 dasm_put(Dst, 10104); 1898 dasm_put(Dst, 10124);
1889 break; 1899 break;
1890 case BC_ISLE: 1900 case BC_ISLE:
1891 dasm_put(Dst, 10109); 1901 dasm_put(Dst, 10129);
1892 break; 1902 break;
1893 case BC_ISGT: 1903 case BC_ISGT:
1894 dasm_put(Dst, 10114); 1904 dasm_put(Dst, 10134);
1895 break; 1905 break;
1896 default: break; /* Shut up GCC. */ 1906 default: break; /* Shut up GCC. */
1897 } 1907 }
1898 dasm_put(Dst, 10119); 1908 dasm_put(Dst, 10139);
1899 } else { 1909 } else {
1900 dasm_put(Dst, 10124); 1910 dasm_put(Dst, 10144);
1901 } 1911 }
1902 } else { 1912 } else {
1903 dasm_put(Dst, 10132, LJ_TISNUM, LJ_TISNUM); 1913 dasm_put(Dst, 10152, LJ_TISNUM, LJ_TISNUM);
1904 } 1914 }
1905 if (sse) { 1915 if (sse) {
1906 dasm_put(Dst, 10153); 1916 dasm_put(Dst, 10173);
1907 } else { 1917 } else {
1908 dasm_put(Dst, 10174); 1918 dasm_put(Dst, 10194);
1909 if (cmov) { 1919 if (cmov) {
1910 dasm_put(Dst, 10190); 1920 dasm_put(Dst, 10210);
1911 } else { 1921 } else {
1912 dasm_put(Dst, 10196); 1922 dasm_put(Dst, 10216);
1913 } 1923 }
1914 } 1924 }
1915 if (LJ_DUALNUM) { 1925 if (LJ_DUALNUM) {
1916 switch (op) { 1926 switch (op) {
1917 case BC_ISLT: 1927 case BC_ISLT:
1918 dasm_put(Dst, 10099); 1928 dasm_put(Dst, 10119);
1919 break; 1929 break;
1920 case BC_ISGE: 1930 case BC_ISGE:
1921 dasm_put(Dst, 10104); 1931 dasm_put(Dst, 10124);
1922 break; 1932 break;
1923 case BC_ISLE: 1933 case BC_ISLE:
1924 dasm_put(Dst, 10109); 1934 dasm_put(Dst, 10129);
1925 break; 1935 break;
1926 case BC_ISGT: 1936 case BC_ISGT:
1927 dasm_put(Dst, 10114); 1937 dasm_put(Dst, 10134);
1928 break; 1938 break;
1929 default: break; /* Shut up GCC. */ 1939 default: break; /* Shut up GCC. */
1930 } 1940 }
1931 dasm_put(Dst, 10119); 1941 dasm_put(Dst, 10139);
1932 } else { 1942 } else {
1933 switch (op) { 1943 switch (op) {
1934 case BC_ISLT: 1944 case BC_ISLT:
1935 dasm_put(Dst, 10203); 1945 dasm_put(Dst, 10223);
1936 break; 1946 break;
1937 case BC_ISGE: 1947 case BC_ISGE:
1938 dasm_put(Dst, 10208); 1948 dasm_put(Dst, 10228);
1939 break; 1949 break;
1940 case BC_ISLE: 1950 case BC_ISLE:
1941 dasm_put(Dst, 10213); 1951 dasm_put(Dst, 10233);
1942 break; 1952 break;
1943 case BC_ISGT: 1953 case BC_ISGT:
1944 dasm_put(Dst, 10218); 1954 dasm_put(Dst, 10238);
1945 break; 1955 break;
1946 default: break; /* Shut up GCC. */ 1956 default: break; /* Shut up GCC. */
1947 } 1957 }
1948 dasm_put(Dst, 10223, -BCBIAS_J*4); 1958 dasm_put(Dst, 10243, -BCBIAS_J*4);
1949 } 1959 }
1950 break; 1960 break;
1951 1961
1952 case BC_ISEQV: case BC_ISNEV: 1962 case BC_ISEQV: case BC_ISNEV:
1953 vk = op == BC_ISEQV; 1963 vk = op == BC_ISEQV;
1954 dasm_put(Dst, 10255); 1964 dasm_put(Dst, 10275);
1955 if (LJ_DUALNUM) { 1965 if (LJ_DUALNUM) {
1956 dasm_put(Dst, 10263, LJ_TISNUM, LJ_TISNUM); 1966 dasm_put(Dst, 10283, LJ_TISNUM, LJ_TISNUM);
1957 if (vk) { 1967 if (vk) {
1958 dasm_put(Dst, 10288); 1968 dasm_put(Dst, 10308);
1959 } else { 1969 } else {
1960 dasm_put(Dst, 10293); 1970 dasm_put(Dst, 10313);
1961 } 1971 }
1962 dasm_put(Dst, 10298, -BCBIAS_J*4, LJ_TISNUM); 1972 dasm_put(Dst, 10318, -BCBIAS_J*4, LJ_TISNUM);
1963 if (sse) { 1973 if (sse) {
1964 dasm_put(Dst, 10350); 1974 dasm_put(Dst, 10370);
1965 } else { 1975 } else {
1966 dasm_put(Dst, 10357); 1976 dasm_put(Dst, 10377);
1967 } 1977 }
1968 dasm_put(Dst, 10361); 1978 dasm_put(Dst, 10381);
1969 if (sse) { 1979 if (sse) {
1970 dasm_put(Dst, 10372); 1980 dasm_put(Dst, 10392);
1971 } else { 1981 } else {
1972 dasm_put(Dst, 10384); 1982 dasm_put(Dst, 10404);
1973 } 1983 }
1974 dasm_put(Dst, 10391); 1984 dasm_put(Dst, 10411);
1975 } else { 1985 } else {
1976 dasm_put(Dst, 10396, LJ_TISNUM, LJ_TISNUM); 1986 dasm_put(Dst, 10416, LJ_TISNUM, LJ_TISNUM);
1977 } 1987 }
1978 if (sse) { 1988 if (sse) {
1979 dasm_put(Dst, 10415); 1989 dasm_put(Dst, 10435);
1980 } else { 1990 } else {
1981 dasm_put(Dst, 10433); 1991 dasm_put(Dst, 10453);
1982 if (cmov) { 1992 if (cmov) {
1983 dasm_put(Dst, 10190); 1993 dasm_put(Dst, 10210);
1984 } else { 1994 } else {
1985 dasm_put(Dst, 10196); 1995 dasm_put(Dst, 10216);
1986 } 1996 }
1987 } 1997 }
1988 iseqne_fp: 1998 iseqne_fp:
1989 if (vk) { 1999 if (vk) {
1990 dasm_put(Dst, 10446); 2000 dasm_put(Dst, 10466);
1991 } else { 2001 } else {
1992 dasm_put(Dst, 10455); 2002 dasm_put(Dst, 10475);
1993 } 2003 }
1994 iseqne_end: 2004 iseqne_end:
1995 if (vk) { 2005 if (vk) {
1996 dasm_put(Dst, 10464, -BCBIAS_J*4); 2006 dasm_put(Dst, 10484, -BCBIAS_J*4);
1997 if (!LJ_HASFFI) { 2007 if (!LJ_HASFFI) {
1998 dasm_put(Dst, 4609); 2008 dasm_put(Dst, 4629);
1999 } 2009 }
2000 } else { 2010 } else {
2001 if (!LJ_HASFFI) { 2011 if (!LJ_HASFFI) {
2002 dasm_put(Dst, 4609); 2012 dasm_put(Dst, 4629);
2003 } 2013 }
2004 dasm_put(Dst, 10479, -BCBIAS_J*4); 2014 dasm_put(Dst, 10499, -BCBIAS_J*4);
2005 } 2015 }
2006 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2016 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2007 op == BC_ISEQN || op == BC_ISNEN)) { 2017 op == BC_ISEQN || op == BC_ISNEN)) {
2008 dasm_put(Dst, 10494); 2018 dasm_put(Dst, 10514);
2009 } else { 2019 } else {
2010 dasm_put(Dst, 10235); 2020 dasm_put(Dst, 10255);
2011 } 2021 }
2012 if (op == BC_ISEQV || op == BC_ISNEV) { 2022 if (op == BC_ISEQV || op == BC_ISNEV) {
2013 dasm_put(Dst, 9917); 2023 dasm_put(Dst, 9937);
2014 if (LJ_HASFFI) { 2024 if (LJ_HASFFI) {
2015 dasm_put(Dst, 10499, LJ_TCDATA, LJ_TCDATA); 2025 dasm_put(Dst, 10519, LJ_TCDATA, LJ_TCDATA);
2016 } 2026 }
2017 dasm_put(Dst, 10518, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2027 dasm_put(Dst, 10538, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2018 if (vk) { 2028 if (vk) {
2019 dasm_put(Dst, 10574); 2029 dasm_put(Dst, 10594);
2020 } else { 2030 } else {
2021 dasm_put(Dst, 10578); 2031 dasm_put(Dst, 10598);
2022 } 2032 }
2023 dasm_put(Dst, 10584); 2033 dasm_put(Dst, 10604);
2024 } else if (LJ_HASFFI) { 2034 } else if (LJ_HASFFI) {
2025 dasm_put(Dst, 10589, LJ_TCDATA); 2035 dasm_put(Dst, 10609, LJ_TCDATA);
2026 if (LJ_DUALNUM && vk) { 2036 if (LJ_DUALNUM && vk) {
2027 dasm_put(Dst, 10596); 2037 dasm_put(Dst, 10616);
2028 } else { 2038 } else {
2029 dasm_put(Dst, 10569); 2039 dasm_put(Dst, 10589);
2030 } 2040 }
2031 dasm_put(Dst, 10601); 2041 dasm_put(Dst, 10621);
2032 } 2042 }
2033 break; 2043 break;
2034 case BC_ISEQS: case BC_ISNES: 2044 case BC_ISEQS: case BC_ISNES:
2035 vk = op == BC_ISEQS; 2045 vk = op == BC_ISEQS;
2036 dasm_put(Dst, 10606, LJ_TSTR); 2046 dasm_put(Dst, 10626, LJ_TSTR);
2037 iseqne_test: 2047 iseqne_test:
2038 if (vk) { 2048 if (vk) {
2039 dasm_put(Dst, 10450); 2049 dasm_put(Dst, 10470);
2040 } else { 2050 } else {
2041 dasm_put(Dst, 765); 2051 dasm_put(Dst, 765);
2042 } 2052 }
2043 goto iseqne_end; 2053 goto iseqne_end;
2044 case BC_ISEQN: case BC_ISNEN: 2054 case BC_ISEQN: case BC_ISNEN:
2045 vk = op == BC_ISEQN; 2055 vk = op == BC_ISEQN;
2046 dasm_put(Dst, 10632); 2056 dasm_put(Dst, 10652);
2047 if (LJ_DUALNUM) { 2057 if (LJ_DUALNUM) {
2048 dasm_put(Dst, 10640, LJ_TISNUM, LJ_TISNUM); 2058 dasm_put(Dst, 10660, LJ_TISNUM, LJ_TISNUM);
2049 if (vk) { 2059 if (vk) {
2050 dasm_put(Dst, 10288); 2060 dasm_put(Dst, 10308);
2051 } else { 2061 } else {
2052 dasm_put(Dst, 10293); 2062 dasm_put(Dst, 10313);
2053 } 2063 }
2054 dasm_put(Dst, 10665, -BCBIAS_J*4, LJ_TISNUM); 2064 dasm_put(Dst, 10685, -BCBIAS_J*4, LJ_TISNUM);
2055 if (sse) { 2065 if (sse) {
2056 dasm_put(Dst, 10713); 2066 dasm_put(Dst, 10733);
2057 } else { 2067 } else {
2058 dasm_put(Dst, 10720); 2068 dasm_put(Dst, 10740);
2059 } 2069 }
2060 dasm_put(Dst, 10724); 2070 dasm_put(Dst, 10744);
2061 if (sse) { 2071 if (sse) {
2062 dasm_put(Dst, 10731); 2072 dasm_put(Dst, 10751);
2063 } else { 2073 } else {
2064 dasm_put(Dst, 10743); 2074 dasm_put(Dst, 10763);
2065 } 2075 }
2066 dasm_put(Dst, 10391); 2076 dasm_put(Dst, 10411);
2067 } else { 2077 } else {
2068 dasm_put(Dst, 10750, LJ_TISNUM); 2078 dasm_put(Dst, 10770, LJ_TISNUM);
2069 } 2079 }
2070 if (sse) { 2080 if (sse) {
2071 dasm_put(Dst, 10759); 2081 dasm_put(Dst, 10779);
2072 } else { 2082 } else {
2073 dasm_put(Dst, 10777); 2083 dasm_put(Dst, 10797);
2074 if (cmov) { 2084 if (cmov) {
2075 dasm_put(Dst, 10190); 2085 dasm_put(Dst, 10210);
2076 } else { 2086 } else {
2077 dasm_put(Dst, 10196); 2087 dasm_put(Dst, 10216);
2078 } 2088 }
2079 } 2089 }
2080 goto iseqne_fp; 2090 goto iseqne_fp;
2081 case BC_ISEQP: case BC_ISNEP: 2091 case BC_ISEQP: case BC_ISNEP:
2082 vk = op == BC_ISEQP; 2092 vk = op == BC_ISEQP;
2083 dasm_put(Dst, 10790); 2093 dasm_put(Dst, 10810);
2084 if (!LJ_HASFFI) goto iseqne_test; 2094 if (!LJ_HASFFI) goto iseqne_test;
2085 if (vk) { 2095 if (vk) {
2086 dasm_put(Dst, 10804, -BCBIAS_J*4, LJ_TCDATA); 2096 dasm_put(Dst, 10824, -BCBIAS_J*4, LJ_TCDATA);
2087 } else { 2097 } else {
2088 dasm_put(Dst, 10854, LJ_TCDATA, -BCBIAS_J*4); 2098 dasm_put(Dst, 10874, LJ_TCDATA, -BCBIAS_J*4);
2089 } 2099 }
2090 break; 2100 break;
2091 2101
2092 /* -- Unary test and copy ops ------------------------------------------- */ 2102 /* -- Unary test and copy ops ------------------------------------------- */
2093 2103
2094 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2104 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2095 dasm_put(Dst, 10898, LJ_TISTRUECOND); 2105 dasm_put(Dst, 10918, LJ_TISTRUECOND);
2096 if (op == BC_IST || op == BC_ISTC) { 2106 if (op == BC_IST || op == BC_ISTC) {
2097 dasm_put(Dst, 10218); 2107 dasm_put(Dst, 10238);
2098 } else { 2108 } else {
2099 dasm_put(Dst, 10213); 2109 dasm_put(Dst, 10233);
2100 } 2110 }
2101 if (op == BC_ISTC || op == BC_ISFC) { 2111 if (op == BC_ISTC || op == BC_ISFC) {
2102 dasm_put(Dst, 10910); 2112 dasm_put(Dst, 10930);
2103 } 2113 }
2104 dasm_put(Dst, 10223, -BCBIAS_J*4); 2114 dasm_put(Dst, 10243, -BCBIAS_J*4);
2105 break; 2115 break;
2106 2116
2107 /* -- Unary ops --------------------------------------------------------- */ 2117 /* -- Unary ops --------------------------------------------------------- */
2108 2118
2109 case BC_MOV: 2119 case BC_MOV:
2110 dasm_put(Dst, 10921); 2120 dasm_put(Dst, 10941);
2111 break; 2121 break;
2112 case BC_NOT: 2122 case BC_NOT:
2113 dasm_put(Dst, 10949, LJ_TISTRUECOND, LJ_TTRUE); 2123 dasm_put(Dst, 10969, LJ_TISTRUECOND, LJ_TTRUE);
2114 break; 2124 break;
2115 case BC_UNM: 2125 case BC_UNM:
2116 if (LJ_DUALNUM) { 2126 if (LJ_DUALNUM) {
2117 dasm_put(Dst, 10985, LJ_TISNUM, LJ_TISNUM); 2127 dasm_put(Dst, 11005, LJ_TISNUM, LJ_TISNUM);
2118 } else { 2128 } else {
2119 dasm_put(Dst, 11062, LJ_TISNUM); 2129 dasm_put(Dst, 11082, LJ_TISNUM);
2120 } 2130 }
2121 if (sse) { 2131 if (sse) {
2122 dasm_put(Dst, 11073, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 2132 dasm_put(Dst, 11093, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
2123 } else { 2133 } else {
2124 dasm_put(Dst, 11098); 2134 dasm_put(Dst, 11118);
2125 } 2135 }
2126 if (LJ_DUALNUM) { 2136 if (LJ_DUALNUM) {
2127 dasm_put(Dst, 10494); 2137 dasm_put(Dst, 10514);
2128 } else { 2138 } else {
2129 dasm_put(Dst, 10235); 2139 dasm_put(Dst, 10255);
2130 } 2140 }
2131 break; 2141 break;
2132 case BC_LEN: 2142 case BC_LEN:
2133 dasm_put(Dst, 11107, LJ_TSTR); 2143 dasm_put(Dst, 11127, LJ_TSTR);
2134 if (LJ_DUALNUM) { 2144 if (LJ_DUALNUM) {
2135 dasm_put(Dst, 11121, Dt5(->len), LJ_TISNUM); 2145 dasm_put(Dst, 11141, Dt5(->len), LJ_TISNUM);
2136 } else if (sse) { 2146 } else if (sse) {
2137 dasm_put(Dst, 11135, Dt5(->len)); 2147 dasm_put(Dst, 11155, Dt5(->len));
2138 } else { 2148 } else {
2139 dasm_put(Dst, 11153, Dt5(->len)); 2149 dasm_put(Dst, 11173, Dt5(->len));
2140 } 2150 }
2141 dasm_put(Dst, 11162, LJ_TTAB); 2151 dasm_put(Dst, 11182, LJ_TTAB);
2152#ifdef LUAJIT_ENABLE_LUA52COMPAT
2153 dasm_put(Dst, 11217, Dt6(->metatable));
2154#endif
2155 dasm_put(Dst, 11231);
2142 if (LJ_DUALNUM) { 2156 if (LJ_DUALNUM) {
2143 } else if (sse) { 2157 } else if (sse) {
2144 dasm_put(Dst, 11203); 2158 dasm_put(Dst, 11240);
2145 } else { 2159 } else {
2146 } 2160 }
2147 dasm_put(Dst, 11209); 2161 dasm_put(Dst, 11246);
2162#ifdef LUAJIT_ENABLE_LUA52COMPAT
2163 dasm_put(Dst, 11259, Dt6(->nomm), 1<<MM_len);
2164#endif
2148 break; 2165 break;
2149 2166
2150 /* -- Binary ops -------------------------------------------------------- */ 2167 /* -- Binary ops -------------------------------------------------------- */
@@ -2152,605 +2169,605 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2152 2169
2153 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2170 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2154 if (LJ_DUALNUM) { 2171 if (LJ_DUALNUM) {
2155 dasm_put(Dst, 11222); 2172 dasm_put(Dst, 11275);
2156 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2173 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2157 switch (vk) { 2174 switch (vk) {
2158 case 0: 2175 case 0:
2159 dasm_put(Dst, 11230, LJ_TISNUM, LJ_TISNUM); 2176 dasm_put(Dst, 11283, LJ_TISNUM, LJ_TISNUM);
2160 break; 2177 break;
2161 case 1: 2178 case 1:
2162 dasm_put(Dst, 11263, LJ_TISNUM, LJ_TISNUM); 2179 dasm_put(Dst, 11316, LJ_TISNUM, LJ_TISNUM);
2163 break; 2180 break;
2164 default: 2181 default:
2165 dasm_put(Dst, 11296, LJ_TISNUM, LJ_TISNUM); 2182 dasm_put(Dst, 11349, LJ_TISNUM, LJ_TISNUM);
2166 break; 2183 break;
2167 } 2184 }
2168 dasm_put(Dst, 11329, LJ_TISNUM); 2185 dasm_put(Dst, 11382, LJ_TISNUM);
2169 if (vk == 1) { 2186 if (vk == 1) {
2170 dasm_put(Dst, 11131); 2187 dasm_put(Dst, 11151);
2171 } else { 2188 } else {
2172 dasm_put(Dst, 10917); 2189 dasm_put(Dst, 10937);
2173 } 2190 }
2174 dasm_put(Dst, 10235); 2191 dasm_put(Dst, 10255);
2175 } else { 2192 } else {
2176 dasm_put(Dst, 11222); 2193 dasm_put(Dst, 11275);
2177 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2194 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2178 switch (vk) { 2195 switch (vk) {
2179 case 0: 2196 case 0:
2180 dasm_put(Dst, 11335, LJ_TISNUM); 2197 dasm_put(Dst, 11388, LJ_TISNUM);
2181 if (LJ_DUALNUM) { 2198 if (LJ_DUALNUM) {
2182 dasm_put(Dst, 11347, LJ_TISNUM); 2199 dasm_put(Dst, 11400, LJ_TISNUM);
2183 } 2200 }
2184 if (sse) { 2201 if (sse) {
2185 dasm_put(Dst, 11358); 2202 dasm_put(Dst, 11411);
2186 } else { 2203 } else {
2187 dasm_put(Dst, 11372); 2204 dasm_put(Dst, 11425);
2188 } 2205 }
2189 break; 2206 break;
2190 case 1: 2207 case 1:
2191 dasm_put(Dst, 11380, LJ_TISNUM); 2208 dasm_put(Dst, 11433, LJ_TISNUM);
2192 if (LJ_DUALNUM) { 2209 if (LJ_DUALNUM) {
2193 dasm_put(Dst, 11392, LJ_TISNUM); 2210 dasm_put(Dst, 11445, LJ_TISNUM);
2194 } 2211 }
2195 if (sse) { 2212 if (sse) {
2196 dasm_put(Dst, 11403); 2213 dasm_put(Dst, 11456);
2197 } else { 2214 } else {
2198 dasm_put(Dst, 11417); 2215 dasm_put(Dst, 11470);
2199 } 2216 }
2200 break; 2217 break;
2201 default: 2218 default:
2202 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2219 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2203 if (sse) { 2220 if (sse) {
2204 dasm_put(Dst, 11447); 2221 dasm_put(Dst, 11500);
2205 } else { 2222 } else {
2206 dasm_put(Dst, 11461); 2223 dasm_put(Dst, 11514);
2207 } 2224 }
2208 break; 2225 break;
2209 } 2226 }
2210 if (sse) { 2227 if (sse) {
2211 dasm_put(Dst, 11091); 2228 dasm_put(Dst, 11111);
2212 } else { 2229 } else {
2213 dasm_put(Dst, 11103); 2230 dasm_put(Dst, 11123);
2214 } 2231 }
2215 dasm_put(Dst, 10235); 2232 dasm_put(Dst, 10255);
2216 } 2233 }
2217 break; 2234 break;
2218 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2235 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2219 if (LJ_DUALNUM) { 2236 if (LJ_DUALNUM) {
2220 dasm_put(Dst, 11222); 2237 dasm_put(Dst, 11275);
2221 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2238 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2222 switch (vk) { 2239 switch (vk) {
2223 case 0: 2240 case 0:
2224 dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM); 2241 dasm_put(Dst, 11522, LJ_TISNUM, LJ_TISNUM);
2225 break; 2242 break;
2226 case 1: 2243 case 1:
2227 dasm_put(Dst, 11502, LJ_TISNUM, LJ_TISNUM); 2244 dasm_put(Dst, 11555, LJ_TISNUM, LJ_TISNUM);
2228 break; 2245 break;
2229 default: 2246 default:
2230 dasm_put(Dst, 11535, LJ_TISNUM, LJ_TISNUM); 2247 dasm_put(Dst, 11588, LJ_TISNUM, LJ_TISNUM);
2231 break; 2248 break;
2232 } 2249 }
2233 dasm_put(Dst, 11329, LJ_TISNUM); 2250 dasm_put(Dst, 11382, LJ_TISNUM);
2234 if (vk == 1) { 2251 if (vk == 1) {
2235 dasm_put(Dst, 11131); 2252 dasm_put(Dst, 11151);
2236 } else { 2253 } else {
2237 dasm_put(Dst, 10917); 2254 dasm_put(Dst, 10937);
2238 } 2255 }
2239 dasm_put(Dst, 10235); 2256 dasm_put(Dst, 10255);
2240 } else { 2257 } else {
2241 dasm_put(Dst, 11222); 2258 dasm_put(Dst, 11275);
2242 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2259 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2243 switch (vk) { 2260 switch (vk) {
2244 case 0: 2261 case 0:
2245 dasm_put(Dst, 11335, LJ_TISNUM); 2262 dasm_put(Dst, 11388, LJ_TISNUM);
2246 if (LJ_DUALNUM) { 2263 if (LJ_DUALNUM) {
2247 dasm_put(Dst, 11347, LJ_TISNUM); 2264 dasm_put(Dst, 11400, LJ_TISNUM);
2248 } 2265 }
2249 if (sse) { 2266 if (sse) {
2250 dasm_put(Dst, 11568); 2267 dasm_put(Dst, 11621);
2251 } else { 2268 } else {
2252 dasm_put(Dst, 11582); 2269 dasm_put(Dst, 11635);
2253 } 2270 }
2254 break; 2271 break;
2255 case 1: 2272 case 1:
2256 dasm_put(Dst, 11380, LJ_TISNUM); 2273 dasm_put(Dst, 11433, LJ_TISNUM);
2257 if (LJ_DUALNUM) { 2274 if (LJ_DUALNUM) {
2258 dasm_put(Dst, 11392, LJ_TISNUM); 2275 dasm_put(Dst, 11445, LJ_TISNUM);
2259 } 2276 }
2260 if (sse) { 2277 if (sse) {
2261 dasm_put(Dst, 11590); 2278 dasm_put(Dst, 11643);
2262 } else { 2279 } else {
2263 dasm_put(Dst, 11604); 2280 dasm_put(Dst, 11657);
2264 } 2281 }
2265 break; 2282 break;
2266 default: 2283 default:
2267 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2284 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2268 if (sse) { 2285 if (sse) {
2269 dasm_put(Dst, 11612); 2286 dasm_put(Dst, 11665);
2270 } else { 2287 } else {
2271 dasm_put(Dst, 11626); 2288 dasm_put(Dst, 11679);
2272 } 2289 }
2273 break; 2290 break;
2274 } 2291 }
2275 if (sse) { 2292 if (sse) {
2276 dasm_put(Dst, 11091); 2293 dasm_put(Dst, 11111);
2277 } else { 2294 } else {
2278 dasm_put(Dst, 11103); 2295 dasm_put(Dst, 11123);
2279 } 2296 }
2280 dasm_put(Dst, 10235); 2297 dasm_put(Dst, 10255);
2281 } 2298 }
2282 break; 2299 break;
2283 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2300 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2284 if (LJ_DUALNUM) { 2301 if (LJ_DUALNUM) {
2285 dasm_put(Dst, 11222); 2302 dasm_put(Dst, 11275);
2286 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2303 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2287 switch (vk) { 2304 switch (vk) {
2288 case 0: 2305 case 0:
2289 dasm_put(Dst, 11634, LJ_TISNUM, LJ_TISNUM); 2306 dasm_put(Dst, 11687, LJ_TISNUM, LJ_TISNUM);
2290 break; 2307 break;
2291 case 1: 2308 case 1:
2292 dasm_put(Dst, 11668, LJ_TISNUM, LJ_TISNUM); 2309 dasm_put(Dst, 11721, LJ_TISNUM, LJ_TISNUM);
2293 break; 2310 break;
2294 default: 2311 default:
2295 dasm_put(Dst, 11702, LJ_TISNUM, LJ_TISNUM); 2312 dasm_put(Dst, 11755, LJ_TISNUM, LJ_TISNUM);
2296 break; 2313 break;
2297 } 2314 }
2298 dasm_put(Dst, 11329, LJ_TISNUM); 2315 dasm_put(Dst, 11382, LJ_TISNUM);
2299 if (vk == 1) { 2316 if (vk == 1) {
2300 dasm_put(Dst, 11131); 2317 dasm_put(Dst, 11151);
2301 } else { 2318 } else {
2302 dasm_put(Dst, 10917); 2319 dasm_put(Dst, 10937);
2303 } 2320 }
2304 dasm_put(Dst, 10235); 2321 dasm_put(Dst, 10255);
2305 } else { 2322 } else {
2306 dasm_put(Dst, 11222); 2323 dasm_put(Dst, 11275);
2307 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2324 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2308 switch (vk) { 2325 switch (vk) {
2309 case 0: 2326 case 0:
2310 dasm_put(Dst, 11335, LJ_TISNUM); 2327 dasm_put(Dst, 11388, LJ_TISNUM);
2311 if (LJ_DUALNUM) { 2328 if (LJ_DUALNUM) {
2312 dasm_put(Dst, 11347, LJ_TISNUM); 2329 dasm_put(Dst, 11400, LJ_TISNUM);
2313 } 2330 }
2314 if (sse) { 2331 if (sse) {
2315 dasm_put(Dst, 11736); 2332 dasm_put(Dst, 11789);
2316 } else { 2333 } else {
2317 dasm_put(Dst, 11750); 2334 dasm_put(Dst, 11803);
2318 } 2335 }
2319 break; 2336 break;
2320 case 1: 2337 case 1:
2321 dasm_put(Dst, 11380, LJ_TISNUM); 2338 dasm_put(Dst, 11433, LJ_TISNUM);
2322 if (LJ_DUALNUM) { 2339 if (LJ_DUALNUM) {
2323 dasm_put(Dst, 11392, LJ_TISNUM); 2340 dasm_put(Dst, 11445, LJ_TISNUM);
2324 } 2341 }
2325 if (sse) { 2342 if (sse) {
2326 dasm_put(Dst, 11758); 2343 dasm_put(Dst, 11811);
2327 } else { 2344 } else {
2328 dasm_put(Dst, 11772); 2345 dasm_put(Dst, 11825);
2329 } 2346 }
2330 break; 2347 break;
2331 default: 2348 default:
2332 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2349 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2333 if (sse) { 2350 if (sse) {
2334 dasm_put(Dst, 11780); 2351 dasm_put(Dst, 11833);
2335 } else { 2352 } else {
2336 dasm_put(Dst, 11794); 2353 dasm_put(Dst, 11847);
2337 } 2354 }
2338 break; 2355 break;
2339 } 2356 }
2340 if (sse) { 2357 if (sse) {
2341 dasm_put(Dst, 11091); 2358 dasm_put(Dst, 11111);
2342 } else { 2359 } else {
2343 dasm_put(Dst, 11103); 2360 dasm_put(Dst, 11123);
2344 } 2361 }
2345 dasm_put(Dst, 10235); 2362 dasm_put(Dst, 10255);
2346 } 2363 }
2347 break; 2364 break;
2348 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2365 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2349 dasm_put(Dst, 11222); 2366 dasm_put(Dst, 11275);
2350 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2367 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2351 switch (vk) { 2368 switch (vk) {
2352 case 0: 2369 case 0:
2353 dasm_put(Dst, 11335, LJ_TISNUM); 2370 dasm_put(Dst, 11388, LJ_TISNUM);
2354 if (LJ_DUALNUM) { 2371 if (LJ_DUALNUM) {
2355 dasm_put(Dst, 11347, LJ_TISNUM); 2372 dasm_put(Dst, 11400, LJ_TISNUM);
2356 } 2373 }
2357 if (sse) { 2374 if (sse) {
2358 dasm_put(Dst, 11802); 2375 dasm_put(Dst, 11855);
2359 } else { 2376 } else {
2360 dasm_put(Dst, 11816); 2377 dasm_put(Dst, 11869);
2361 } 2378 }
2362 break; 2379 break;
2363 case 1: 2380 case 1:
2364 dasm_put(Dst, 11380, LJ_TISNUM); 2381 dasm_put(Dst, 11433, LJ_TISNUM);
2365 if (LJ_DUALNUM) { 2382 if (LJ_DUALNUM) {
2366 dasm_put(Dst, 11392, LJ_TISNUM); 2383 dasm_put(Dst, 11445, LJ_TISNUM);
2367 } 2384 }
2368 if (sse) { 2385 if (sse) {
2369 dasm_put(Dst, 11824); 2386 dasm_put(Dst, 11877);
2370 } else { 2387 } else {
2371 dasm_put(Dst, 11838); 2388 dasm_put(Dst, 11891);
2372 } 2389 }
2373 break; 2390 break;
2374 default: 2391 default:
2375 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2392 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2376 if (sse) { 2393 if (sse) {
2377 dasm_put(Dst, 11846); 2394 dasm_put(Dst, 11899);
2378 } else { 2395 } else {
2379 dasm_put(Dst, 11860); 2396 dasm_put(Dst, 11913);
2380 } 2397 }
2381 break; 2398 break;
2382 } 2399 }
2383 if (sse) { 2400 if (sse) {
2384 dasm_put(Dst, 11091); 2401 dasm_put(Dst, 11111);
2385 } else { 2402 } else {
2386 dasm_put(Dst, 11103); 2403 dasm_put(Dst, 11123);
2387 } 2404 }
2388 dasm_put(Dst, 10235); 2405 dasm_put(Dst, 10255);
2389 break; 2406 break;
2390 case BC_MODVN: 2407 case BC_MODVN:
2391 dasm_put(Dst, 11222); 2408 dasm_put(Dst, 11275);
2392 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2409 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2393 switch (vk) { 2410 switch (vk) {
2394 case 0: 2411 case 0:
2395 dasm_put(Dst, 11335, LJ_TISNUM); 2412 dasm_put(Dst, 11388, LJ_TISNUM);
2396 if (LJ_DUALNUM) { 2413 if (LJ_DUALNUM) {
2397 dasm_put(Dst, 11347, LJ_TISNUM); 2414 dasm_put(Dst, 11400, LJ_TISNUM);
2398 } 2415 }
2399 if (sse) { 2416 if (sse) {
2400 dasm_put(Dst, 11868); 2417 dasm_put(Dst, 11921);
2401 } else { 2418 } else {
2402 dasm_put(Dst, 11882); 2419 dasm_put(Dst, 11935);
2403 } 2420 }
2404 break; 2421 break;
2405 case 1: 2422 case 1:
2406 dasm_put(Dst, 11380, LJ_TISNUM); 2423 dasm_put(Dst, 11433, LJ_TISNUM);
2407 if (LJ_DUALNUM) { 2424 if (LJ_DUALNUM) {
2408 dasm_put(Dst, 11392, LJ_TISNUM); 2425 dasm_put(Dst, 11445, LJ_TISNUM);
2409 } 2426 }
2410 if (sse) { 2427 if (sse) {
2411 dasm_put(Dst, 11890); 2428 dasm_put(Dst, 11943);
2412 } else { 2429 } else {
2413 dasm_put(Dst, 11904); 2430 dasm_put(Dst, 11957);
2414 } 2431 }
2415 break; 2432 break;
2416 default: 2433 default:
2417 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2434 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2418 if (sse) { 2435 if (sse) {
2419 dasm_put(Dst, 11912); 2436 dasm_put(Dst, 11965);
2420 } else { 2437 } else {
2421 dasm_put(Dst, 11926); 2438 dasm_put(Dst, 11979);
2422 } 2439 }
2423 break; 2440 break;
2424 } 2441 }
2425 dasm_put(Dst, 11934); 2442 dasm_put(Dst, 11987);
2426 if (sse) { 2443 if (sse) {
2427 dasm_put(Dst, 11091); 2444 dasm_put(Dst, 11111);
2428 } else { 2445 } else {
2429 dasm_put(Dst, 11103); 2446 dasm_put(Dst, 11123);
2430 } 2447 }
2431 dasm_put(Dst, 10235); 2448 dasm_put(Dst, 10255);
2432 break; 2449 break;
2433 case BC_MODNV: case BC_MODVV: 2450 case BC_MODNV: case BC_MODVV:
2434 dasm_put(Dst, 11222); 2451 dasm_put(Dst, 11275);
2435 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2452 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2436 switch (vk) { 2453 switch (vk) {
2437 case 0: 2454 case 0:
2438 dasm_put(Dst, 11335, LJ_TISNUM); 2455 dasm_put(Dst, 11388, LJ_TISNUM);
2439 if (LJ_DUALNUM) { 2456 if (LJ_DUALNUM) {
2440 dasm_put(Dst, 11347, LJ_TISNUM); 2457 dasm_put(Dst, 11400, LJ_TISNUM);
2441 } 2458 }
2442 if (sse) { 2459 if (sse) {
2443 dasm_put(Dst, 11868); 2460 dasm_put(Dst, 11921);
2444 } else { 2461 } else {
2445 dasm_put(Dst, 11882); 2462 dasm_put(Dst, 11935);
2446 } 2463 }
2447 break; 2464 break;
2448 case 1: 2465 case 1:
2449 dasm_put(Dst, 11380, LJ_TISNUM); 2466 dasm_put(Dst, 11433, LJ_TISNUM);
2450 if (LJ_DUALNUM) { 2467 if (LJ_DUALNUM) {
2451 dasm_put(Dst, 11392, LJ_TISNUM); 2468 dasm_put(Dst, 11445, LJ_TISNUM);
2452 } 2469 }
2453 if (sse) { 2470 if (sse) {
2454 dasm_put(Dst, 11890); 2471 dasm_put(Dst, 11943);
2455 } else { 2472 } else {
2456 dasm_put(Dst, 11904); 2473 dasm_put(Dst, 11957);
2457 } 2474 }
2458 break; 2475 break;
2459 default: 2476 default:
2460 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2477 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2461 if (sse) { 2478 if (sse) {
2462 dasm_put(Dst, 11912); 2479 dasm_put(Dst, 11965);
2463 } else { 2480 } else {
2464 dasm_put(Dst, 11926); 2481 dasm_put(Dst, 11979);
2465 } 2482 }
2466 break; 2483 break;
2467 } 2484 }
2468 dasm_put(Dst, 11940); 2485 dasm_put(Dst, 11993);
2469 break; 2486 break;
2470 case BC_POW: 2487 case BC_POW:
2471 dasm_put(Dst, 11222); 2488 dasm_put(Dst, 11275);
2472 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2489 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2473 switch (vk) { 2490 switch (vk) {
2474 case 0: 2491 case 0:
2475 dasm_put(Dst, 11335, LJ_TISNUM); 2492 dasm_put(Dst, 11388, LJ_TISNUM);
2476 if (LJ_DUALNUM) { 2493 if (LJ_DUALNUM) {
2477 dasm_put(Dst, 11347, LJ_TISNUM); 2494 dasm_put(Dst, 11400, LJ_TISNUM);
2478 } 2495 }
2479 if (sse) { 2496 if (sse) {
2480 dasm_put(Dst, 11868); 2497 dasm_put(Dst, 11921);
2481 } else { 2498 } else {
2482 dasm_put(Dst, 11882); 2499 dasm_put(Dst, 11935);
2483 } 2500 }
2484 break; 2501 break;
2485 case 1: 2502 case 1:
2486 dasm_put(Dst, 11380, LJ_TISNUM); 2503 dasm_put(Dst, 11433, LJ_TISNUM);
2487 if (LJ_DUALNUM) { 2504 if (LJ_DUALNUM) {
2488 dasm_put(Dst, 11392, LJ_TISNUM); 2505 dasm_put(Dst, 11445, LJ_TISNUM);
2489 } 2506 }
2490 if (sse) { 2507 if (sse) {
2491 dasm_put(Dst, 11890); 2508 dasm_put(Dst, 11943);
2492 } else { 2509 } else {
2493 dasm_put(Dst, 11904); 2510 dasm_put(Dst, 11957);
2494 } 2511 }
2495 break; 2512 break;
2496 default: 2513 default:
2497 dasm_put(Dst, 11425, LJ_TISNUM, LJ_TISNUM); 2514 dasm_put(Dst, 11478, LJ_TISNUM, LJ_TISNUM);
2498 if (sse) { 2515 if (sse) {
2499 dasm_put(Dst, 11912); 2516 dasm_put(Dst, 11965);
2500 } else { 2517 } else {
2501 dasm_put(Dst, 11926); 2518 dasm_put(Dst, 11979);
2502 } 2519 }
2503 break; 2520 break;
2504 } 2521 }
2505 dasm_put(Dst, 11945); 2522 dasm_put(Dst, 11998);
2506 if (sse) { 2523 if (sse) {
2507 dasm_put(Dst, 11091); 2524 dasm_put(Dst, 11111);
2508 } else { 2525 } else {
2509 dasm_put(Dst, 11103); 2526 dasm_put(Dst, 11123);
2510 } 2527 }
2511 dasm_put(Dst, 10235); 2528 dasm_put(Dst, 10255);
2512 break; 2529 break;
2513 2530
2514 case BC_CAT: 2531 case BC_CAT:
2515 dasm_put(Dst, 11949, Dt1(->base), Dt1(->base)); 2532 dasm_put(Dst, 12002, Dt1(->base), Dt1(->base));
2516 break; 2533 break;
2517 2534
2518 /* -- Constant ops ------------------------------------------------------ */ 2535 /* -- Constant ops ------------------------------------------------------ */
2519 2536
2520 case BC_KSTR: 2537 case BC_KSTR:
2521 dasm_put(Dst, 12032, LJ_TSTR); 2538 dasm_put(Dst, 12085, LJ_TSTR);
2522 break; 2539 break;
2523 case BC_KCDATA: 2540 case BC_KCDATA:
2524#if LJ_HASFFI 2541#if LJ_HASFFI
2525 dasm_put(Dst, 12032, LJ_TCDATA); 2542 dasm_put(Dst, 12085, LJ_TCDATA);
2526#endif 2543#endif
2527 break; 2544 break;
2528 case BC_KSHORT: 2545 case BC_KSHORT:
2529 if (LJ_DUALNUM) { 2546 if (LJ_DUALNUM) {
2530 dasm_put(Dst, 12067, LJ_TISNUM); 2547 dasm_put(Dst, 12120, LJ_TISNUM);
2531 } else if (sse) { 2548 } else if (sse) {
2532 dasm_put(Dst, 12079); 2549 dasm_put(Dst, 12132);
2533 } else { 2550 } else {
2534 dasm_put(Dst, 12094); 2551 dasm_put(Dst, 12147);
2535 } 2552 }
2536 dasm_put(Dst, 10235); 2553 dasm_put(Dst, 10255);
2537 break; 2554 break;
2538 case BC_KNUM: 2555 case BC_KNUM:
2539 if (sse) { 2556 if (sse) {
2540 dasm_put(Dst, 12102); 2557 dasm_put(Dst, 12155);
2541 } else { 2558 } else {
2542 dasm_put(Dst, 12115); 2559 dasm_put(Dst, 12168);
2543 } 2560 }
2544 dasm_put(Dst, 10235); 2561 dasm_put(Dst, 10255);
2545 break; 2562 break;
2546 case BC_KPRI: 2563 case BC_KPRI:
2547 dasm_put(Dst, 12122); 2564 dasm_put(Dst, 12175);
2548 break; 2565 break;
2549 case BC_KNIL: 2566 case BC_KNIL:
2550 dasm_put(Dst, 12150, LJ_TNIL); 2567 dasm_put(Dst, 12203, LJ_TNIL);
2551 break; 2568 break;
2552 2569
2553 /* -- Upvalue and function ops ------------------------------------------ */ 2570 /* -- Upvalue and function ops ------------------------------------------ */
2554 2571
2555 case BC_UGET: 2572 case BC_UGET:
2556 dasm_put(Dst, 12197, offsetof(GCfuncL, uvptr), DtA(->v)); 2573 dasm_put(Dst, 12250, offsetof(GCfuncL, uvptr), DtA(->v));
2557 break; 2574 break;
2558 case BC_USETV: 2575 case BC_USETV:
2559#define TV2MARKOFS \ 2576#define TV2MARKOFS \
2560 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2577 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2561 dasm_put(Dst, 12237, 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); 2578 dasm_put(Dst, 12290, 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);
2562 dasm_put(Dst, 12328); 2579 dasm_put(Dst, 12381);
2563 break; 2580 break;
2564#undef TV2MARKOFS 2581#undef TV2MARKOFS
2565 case BC_USETS: 2582 case BC_USETS:
2566 dasm_put(Dst, 12340, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2583 dasm_put(Dst, 12393, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2567 break; 2584 break;
2568 case BC_USETN: 2585 case BC_USETN:
2569 dasm_put(Dst, 12433); 2586 dasm_put(Dst, 12486);
2570 if (sse) { 2587 if (sse) {
2571 dasm_put(Dst, 12438); 2588 dasm_put(Dst, 12491);
2572 } else { 2589 } else {
2573 dasm_put(Dst, 10746); 2590 dasm_put(Dst, 10766);
2574 } 2591 }
2575 dasm_put(Dst, 12445, offsetof(GCfuncL, uvptr), DtA(->v)); 2592 dasm_put(Dst, 12498, offsetof(GCfuncL, uvptr), DtA(->v));
2576 if (sse) { 2593 if (sse) {
2577 dasm_put(Dst, 12454); 2594 dasm_put(Dst, 12507);
2578 } else { 2595 } else {
2579 dasm_put(Dst, 12460); 2596 dasm_put(Dst, 12513);
2580 } 2597 }
2581 dasm_put(Dst, 10235); 2598 dasm_put(Dst, 10255);
2582 break; 2599 break;
2583 case BC_USETP: 2600 case BC_USETP:
2584 dasm_put(Dst, 12463, offsetof(GCfuncL, uvptr), DtA(->v)); 2601 dasm_put(Dst, 12516, offsetof(GCfuncL, uvptr), DtA(->v));
2585 break; 2602 break;
2586 case BC_UCLO: 2603 case BC_UCLO:
2587 dasm_put(Dst, 12502, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2604 dasm_put(Dst, 12555, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2588 break; 2605 break;
2589 2606
2590 case BC_FNEW: 2607 case BC_FNEW:
2591 dasm_put(Dst, 12557, Dt1(->base), Dt1(->base), LJ_TFUNC); 2608 dasm_put(Dst, 12610, Dt1(->base), Dt1(->base), LJ_TFUNC);
2592 break; 2609 break;
2593 2610
2594 /* -- Table ops --------------------------------------------------------- */ 2611 /* -- Table ops --------------------------------------------------------- */
2595 2612
2596 case BC_TNEW: 2613 case BC_TNEW:
2597 dasm_put(Dst, 12623, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2614 dasm_put(Dst, 12676, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2598 break; 2615 break;
2599 case BC_TDUP: 2616 case BC_TDUP:
2600 dasm_put(Dst, 12745, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2617 dasm_put(Dst, 12798, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2601 break; 2618 break;
2602 2619
2603 case BC_GGET: 2620 case BC_GGET:
2604 dasm_put(Dst, 12840, Dt7(->env)); 2621 dasm_put(Dst, 12893, Dt7(->env));
2605 break; 2622 break;
2606 case BC_GSET: 2623 case BC_GSET:
2607 dasm_put(Dst, 12859, Dt7(->env)); 2624 dasm_put(Dst, 12912, Dt7(->env));
2608 break; 2625 break;
2609 2626
2610 case BC_TGETV: 2627 case BC_TGETV:
2611 dasm_put(Dst, 12878, LJ_TTAB); 2628 dasm_put(Dst, 12931, LJ_TTAB);
2612 if (LJ_DUALNUM) { 2629 if (LJ_DUALNUM) {
2613 dasm_put(Dst, 12901, LJ_TISNUM); 2630 dasm_put(Dst, 12954, LJ_TISNUM);
2614 } else { 2631 } else {
2615 dasm_put(Dst, 12915, LJ_TISNUM); 2632 dasm_put(Dst, 12968, LJ_TISNUM);
2616 if (sse) { 2633 if (sse) {
2617 dasm_put(Dst, 12926); 2634 dasm_put(Dst, 12979);
2618 } else { 2635 } else {
2619 } 2636 }
2620 dasm_put(Dst, 12947); 2637 dasm_put(Dst, 13000);
2621 } 2638 }
2622 dasm_put(Dst, 12952, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2639 dasm_put(Dst, 13005, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2623 dasm_put(Dst, 13043, LJ_TSTR); 2640 dasm_put(Dst, 13096, LJ_TSTR);
2624 break; 2641 break;
2625 case BC_TGETS: 2642 case BC_TGETS:
2626 dasm_put(Dst, 13061, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2643 dasm_put(Dst, 13114, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2627 dasm_put(Dst, 13145, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2644 dasm_put(Dst, 13198, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2628 break; 2645 break;
2629 case BC_TGETB: 2646 case BC_TGETB:
2630 dasm_put(Dst, 13216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2647 dasm_put(Dst, 13269, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2631 dasm_put(Dst, 13311, LJ_TNIL); 2648 dasm_put(Dst, 13364, LJ_TNIL);
2632 break; 2649 break;
2633 2650
2634 case BC_TSETV: 2651 case BC_TSETV:
2635 dasm_put(Dst, 13328, LJ_TTAB); 2652 dasm_put(Dst, 13381, LJ_TTAB);
2636 if (LJ_DUALNUM) { 2653 if (LJ_DUALNUM) {
2637 dasm_put(Dst, 12901, LJ_TISNUM); 2654 dasm_put(Dst, 12954, LJ_TISNUM);
2638 } else { 2655 } else {
2639 dasm_put(Dst, 12915, LJ_TISNUM); 2656 dasm_put(Dst, 12968, LJ_TISNUM);
2640 if (sse) { 2657 if (sse) {
2641 dasm_put(Dst, 12926); 2658 dasm_put(Dst, 12979);
2642 } else { 2659 } else {
2643 } 2660 }
2644 dasm_put(Dst, 13351); 2661 dasm_put(Dst, 13404);
2645 } 2662 }
2646 dasm_put(Dst, 13356, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2663 dasm_put(Dst, 13409, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2647 dasm_put(Dst, 13436, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2664 dasm_put(Dst, 13489, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2648 break; 2665 break;
2649 case BC_TSETS: 2666 case BC_TSETS:
2650 dasm_put(Dst, 13493, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2667 dasm_put(Dst, 13546, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2651 dasm_put(Dst, 13569, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2668 dasm_put(Dst, 13622, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2652 dasm_put(Dst, 13657, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2669 dasm_put(Dst, 13710, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2653 break; 2670 break;
2654 case BC_TSETB: 2671 case BC_TSETB:
2655 dasm_put(Dst, 13748, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2672 dasm_put(Dst, 13801, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2656 dasm_put(Dst, 13842, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2673 dasm_put(Dst, 13895, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2657 break; 2674 break;
2658 2675
2659 case BC_TSETM: 2676 case BC_TSETM:
2660 dasm_put(Dst, 13888, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2677 dasm_put(Dst, 13941, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2661 dasm_put(Dst, 14031, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2678 dasm_put(Dst, 14084, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2662 break; 2679 break;
2663 2680
2664 /* -- Calls and vararg handling ----------------------------------------- */ 2681 /* -- Calls and vararg handling ----------------------------------------- */
2665 2682
2666 case BC_CALL: case BC_CALLM: 2683 case BC_CALL: case BC_CALLM:
2667 dasm_put(Dst, 11226); 2684 dasm_put(Dst, 11279);
2668 if (op == BC_CALLM) { 2685 if (op == BC_CALLM) {
2669 dasm_put(Dst, 14049); 2686 dasm_put(Dst, 14102);
2670 } 2687 }
2671 dasm_put(Dst, 14054, LJ_TFUNC, Dt7(->pc)); 2688 dasm_put(Dst, 14107, LJ_TFUNC, Dt7(->pc));
2672 break; 2689 break;
2673 2690
2674 case BC_CALLMT: 2691 case BC_CALLMT:
2675 dasm_put(Dst, 14049); 2692 dasm_put(Dst, 14102);
2676 break; 2693 break;
2677 case BC_CALLT: 2694 case BC_CALLT:
2678 dasm_put(Dst, 14096, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2695 dasm_put(Dst, 14149, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2679 dasm_put(Dst, 14211, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2696 dasm_put(Dst, 14264, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2680 break; 2697 break;
2681 2698
2682 case BC_ITERC: 2699 case BC_ITERC:
2683 dasm_put(Dst, 14282, LJ_TFUNC, 2+1, Dt7(->pc)); 2700 dasm_put(Dst, 14335, LJ_TFUNC, 2+1, Dt7(->pc));
2684 break; 2701 break;
2685 2702
2686 case BC_ITERN: 2703 case BC_ITERN:
2687#if LJ_HASJIT 2704#if LJ_HASJIT
2688#endif 2705#endif
2689 dasm_put(Dst, 14353, Dt6(->asize), Dt6(->array), LJ_TNIL); 2706 dasm_put(Dst, 14406, Dt6(->asize), Dt6(->array), LJ_TNIL);
2690 if (LJ_DUALNUM) { 2707 if (LJ_DUALNUM) {
2691 dasm_put(Dst, 11126, LJ_TISNUM); 2708 dasm_put(Dst, 11146, LJ_TISNUM);
2692 } else if (sse) { 2709 } else if (sse) {
2693 dasm_put(Dst, 11203); 2710 dasm_put(Dst, 11240);
2694 } else { 2711 } else {
2695 dasm_put(Dst, 14399); 2712 dasm_put(Dst, 14452);
2696 } 2713 }
2697 dasm_put(Dst, 14405); 2714 dasm_put(Dst, 14458);
2698 if (LJ_DUALNUM) { 2715 if (LJ_DUALNUM) {
2699 } else if (sse) { 2716 } else if (sse) {
2700 dasm_put(Dst, 11091); 2717 dasm_put(Dst, 11111);
2701 } else { 2718 } else {
2702 dasm_put(Dst, 11103); 2719 dasm_put(Dst, 11123);
2703 } 2720 }
2704 dasm_put(Dst, 14418, -BCBIAS_J*4); 2721 dasm_put(Dst, 14471, -BCBIAS_J*4);
2705 if (!LJ_DUALNUM && !sse) { 2722 if (!LJ_DUALNUM && !sse) {
2706 dasm_put(Dst, 14470); 2723 dasm_put(Dst, 14523);
2707 } 2724 }
2708 dasm_put(Dst, 14476, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2725 dasm_put(Dst, 14529, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2709 break; 2726 break;
2710 2727
2711 case BC_ISNEXT: 2728 case BC_ISNEXT:
2712 dasm_put(Dst, 14548, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2729 dasm_put(Dst, 14601, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2713 break; 2730 break;
2714 2731
2715 case BC_VARG: 2732 case BC_VARG:
2716 dasm_put(Dst, 14648, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2733 dasm_put(Dst, 14701, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2717 dasm_put(Dst, 14808, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2734 dasm_put(Dst, 14861, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2718 break; 2735 break;
2719 2736
2720 /* -- Returns ----------------------------------------------------------- */ 2737 /* -- Returns ----------------------------------------------------------- */
2721 2738
2722 case BC_RETM: 2739 case BC_RETM:
2723 dasm_put(Dst, 14049); 2740 dasm_put(Dst, 14102);
2724 break; 2741 break;
2725 2742
2726 case BC_RET: case BC_RET0: case BC_RET1: 2743 case BC_RET: case BC_RET0: case BC_RET1:
2727 if (op != BC_RET0) { 2744 if (op != BC_RET0) {
2728 dasm_put(Dst, 14874); 2745 dasm_put(Dst, 14927);
2729 } 2746 }
2730 dasm_put(Dst, 14878, FRAME_TYPE); 2747 dasm_put(Dst, 14931, FRAME_TYPE);
2731 switch (op) { 2748 switch (op) {
2732 case BC_RET: 2749 case BC_RET:
2733 dasm_put(Dst, 14897); 2750 dasm_put(Dst, 14950);
2734 break; 2751 break;
2735 case BC_RET1: 2752 case BC_RET1:
2736 dasm_put(Dst, 14949); 2753 dasm_put(Dst, 15002);
2737 /* fallthrough */ 2754 /* fallthrough */
2738 case BC_RET0: 2755 case BC_RET0:
2739 dasm_put(Dst, 14959); 2756 dasm_put(Dst, 15012);
2740 default: 2757 default:
2741 break; 2758 break;
2742 } 2759 }
2743 dasm_put(Dst, 14970, Dt7(->pc), PC2PROTO(k)); 2760 dasm_put(Dst, 15023, Dt7(->pc), PC2PROTO(k));
2744 if (op == BC_RET) { 2761 if (op == BC_RET) {
2745 dasm_put(Dst, 15014, LJ_TNIL); 2762 dasm_put(Dst, 15067, LJ_TNIL);
2746 } else { 2763 } else {
2747 dasm_put(Dst, 15023, LJ_TNIL); 2764 dasm_put(Dst, 15076, LJ_TNIL);
2748 } 2765 }
2749 dasm_put(Dst, 15030, -FRAME_VARG, FRAME_TYPEP); 2766 dasm_put(Dst, 15083, -FRAME_VARG, FRAME_TYPEP);
2750 if (op != BC_RET0) { 2767 if (op != BC_RET0) {
2751 dasm_put(Dst, 15054); 2768 dasm_put(Dst, 15107);
2752 } 2769 }
2753 dasm_put(Dst, 4688); 2770 dasm_put(Dst, 4708);
2754 break; 2771 break;
2755 2772
2756 /* -- Loops and branches ------------------------------------------------ */ 2773 /* -- Loops and branches ------------------------------------------------ */
@@ -2758,7 +2775,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2758 2775
2759 case BC_FORL: 2776 case BC_FORL:
2760#if LJ_HASJIT 2777#if LJ_HASJIT
2761 dasm_put(Dst, 15058, HOTCOUNT_PCMASK, GG_DISP2HOT); 2778 dasm_put(Dst, 15111, HOTCOUNT_PCMASK, GG_DISP2HOT);
2762#endif 2779#endif
2763 break; 2780 break;
2764 2781
@@ -2770,111 +2787,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2770 case BC_FORI: 2787 case BC_FORI:
2771 case BC_IFORL: 2788 case BC_IFORL:
2772 vk = (op == BC_IFORL || op == BC_JFORL); 2789 vk = (op == BC_IFORL || op == BC_JFORL);
2773 dasm_put(Dst, 15079); 2790 dasm_put(Dst, 15132);
2774 if (LJ_DUALNUM) { 2791 if (LJ_DUALNUM) {
2775 dasm_put(Dst, 15083, LJ_TISNUM); 2792 dasm_put(Dst, 15136, LJ_TISNUM);
2776 if (!vk) { 2793 if (!vk) {
2777 dasm_put(Dst, 15093, LJ_TISNUM, LJ_TISNUM); 2794 dasm_put(Dst, 15146, LJ_TISNUM, LJ_TISNUM);
2778 } else { 2795 } else {
2779#ifdef LUA_USE_ASSERT 2796#ifdef LUA_USE_ASSERT
2780 dasm_put(Dst, 15122, LJ_TISNUM, LJ_TISNUM); 2797 dasm_put(Dst, 15175, LJ_TISNUM, LJ_TISNUM);
2781#endif 2798#endif
2782 dasm_put(Dst, 15141); 2799 dasm_put(Dst, 15194);
2783 } 2800 }
2784 dasm_put(Dst, 15160, LJ_TISNUM); 2801 dasm_put(Dst, 15213, LJ_TISNUM);
2785 if (op == BC_FORI) { 2802 if (op == BC_FORI) {
2786 dasm_put(Dst, 15171, -BCBIAS_J*4); 2803 dasm_put(Dst, 15224, -BCBIAS_J*4);
2787 } else if (op == BC_JFORI) { 2804 } else if (op == BC_JFORI) {
2788 dasm_put(Dst, 15185, -BCBIAS_J*4, BC_JLOOP); 2805 dasm_put(Dst, 15238, -BCBIAS_J*4, BC_JLOOP);
2789 } else if (op == BC_IFORL) { 2806 } else if (op == BC_IFORL) {
2790 dasm_put(Dst, 15203, -BCBIAS_J*4); 2807 dasm_put(Dst, 15256, -BCBIAS_J*4);
2791 } else { 2808 } else {
2792 dasm_put(Dst, 15195, BC_JLOOP); 2809 dasm_put(Dst, 15248, BC_JLOOP);
2793 } 2810 }
2794 dasm_put(Dst, 15217); 2811 dasm_put(Dst, 15270);
2795 if (vk) { 2812 if (vk) {
2796 dasm_put(Dst, 15241); 2813 dasm_put(Dst, 15294);
2797 } 2814 }
2798 dasm_put(Dst, 15160, LJ_TISNUM); 2815 dasm_put(Dst, 15213, LJ_TISNUM);
2799 if (op == BC_FORI) { 2816 if (op == BC_FORI) {
2800 dasm_put(Dst, 15250); 2817 dasm_put(Dst, 15303);
2801 } else if (op == BC_JFORI) { 2818 } else if (op == BC_JFORI) {
2802 dasm_put(Dst, 15255, -BCBIAS_J*4, BC_JLOOP); 2819 dasm_put(Dst, 15308, -BCBIAS_J*4, BC_JLOOP);
2803 } else if (op == BC_IFORL) { 2820 } else if (op == BC_IFORL) {
2804 dasm_put(Dst, 15269); 2821 dasm_put(Dst, 15322);
2805 } else { 2822 } else {
2806 dasm_put(Dst, 15265, BC_JLOOP); 2823 dasm_put(Dst, 15318, BC_JLOOP);
2807 } 2824 }
2808 dasm_put(Dst, 15274); 2825 dasm_put(Dst, 15327);
2809 } else if (!vk) { 2826 } else if (!vk) {
2810 dasm_put(Dst, 15281, LJ_TISNUM); 2827 dasm_put(Dst, 15334, LJ_TISNUM);
2811 } 2828 }
2812 if (!vk) { 2829 if (!vk) {
2813 dasm_put(Dst, 15287, LJ_TISNUM); 2830 dasm_put(Dst, 15340, LJ_TISNUM);
2814 } else { 2831 } else {
2815#ifdef LUA_USE_ASSERT 2832#ifdef LUA_USE_ASSERT
2816 dasm_put(Dst, 15301, LJ_TISNUM, LJ_TISNUM); 2833 dasm_put(Dst, 15354, LJ_TISNUM, LJ_TISNUM);
2817#endif 2834#endif
2818 } 2835 }
2819 dasm_put(Dst, 15320); 2836 dasm_put(Dst, 15373);
2820 if (!vk) { 2837 if (!vk) {
2821 dasm_put(Dst, 15324, LJ_TISNUM); 2838 dasm_put(Dst, 15377, LJ_TISNUM);
2822 } 2839 }
2823 if (sse) { 2840 if (sse) {
2824 dasm_put(Dst, 15333); 2841 dasm_put(Dst, 15386);
2825 if (vk) { 2842 if (vk) {
2826 dasm_put(Dst, 15345); 2843 dasm_put(Dst, 15398);
2827 } else { 2844 } else {
2828 dasm_put(Dst, 15364); 2845 dasm_put(Dst, 15417);
2829 } 2846 }
2830 dasm_put(Dst, 15369); 2847 dasm_put(Dst, 15422);
2831 } else { 2848 } else {
2832 dasm_put(Dst, 15382); 2849 dasm_put(Dst, 15435);
2833 if (vk) { 2850 if (vk) {
2834 dasm_put(Dst, 15388); 2851 dasm_put(Dst, 15441);
2835 } else { 2852 } else {
2836 dasm_put(Dst, 15404); 2853 dasm_put(Dst, 15457);
2837 } 2854 }
2838 dasm_put(Dst, 15412); 2855 dasm_put(Dst, 15465);
2839 if (cmov) { 2856 if (cmov) {
2840 dasm_put(Dst, 10190); 2857 dasm_put(Dst, 10210);
2841 } else { 2858 } else {
2842 dasm_put(Dst, 10196); 2859 dasm_put(Dst, 10216);
2843 } 2860 }
2844 if (!cmov) { 2861 if (!cmov) {
2845 dasm_put(Dst, 15417); 2862 dasm_put(Dst, 15470);
2846 } 2863 }
2847 } 2864 }
2848 if (op == BC_FORI) { 2865 if (op == BC_FORI) {
2849 if (LJ_DUALNUM) { 2866 if (LJ_DUALNUM) {
2850 dasm_put(Dst, 15423); 2867 dasm_put(Dst, 15476);
2851 } else { 2868 } else {
2852 dasm_put(Dst, 15428, -BCBIAS_J*4); 2869 dasm_put(Dst, 15481, -BCBIAS_J*4);
2853 } 2870 }
2854 } else if (op == BC_JFORI) { 2871 } else if (op == BC_JFORI) {
2855 dasm_put(Dst, 15438, -BCBIAS_J*4, BC_JLOOP); 2872 dasm_put(Dst, 15491, -BCBIAS_J*4, BC_JLOOP);
2856 } else if (op == BC_IFORL) { 2873 } else if (op == BC_IFORL) {
2857 if (LJ_DUALNUM) { 2874 if (LJ_DUALNUM) {
2858 dasm_put(Dst, 15452); 2875 dasm_put(Dst, 15505);
2859 } else { 2876 } else {
2860 dasm_put(Dst, 15457, -BCBIAS_J*4); 2877 dasm_put(Dst, 15510, -BCBIAS_J*4);
2861 } 2878 }
2862 } else { 2879 } else {
2863 dasm_put(Dst, 15448, BC_JLOOP); 2880 dasm_put(Dst, 15501, BC_JLOOP);
2864 } 2881 }
2865 if (LJ_DUALNUM) { 2882 if (LJ_DUALNUM) {
2866 dasm_put(Dst, 10119); 2883 dasm_put(Dst, 10139);
2867 } else { 2884 } else {
2868 dasm_put(Dst, 10876); 2885 dasm_put(Dst, 10896);
2869 } 2886 }
2870 if (sse) { 2887 if (sse) {
2871 dasm_put(Dst, 15467); 2888 dasm_put(Dst, 15520);
2872 } 2889 }
2873 break; 2890 break;
2874 2891
2875 case BC_ITERL: 2892 case BC_ITERL:
2876#if LJ_HASJIT 2893#if LJ_HASJIT
2877 dasm_put(Dst, 15058, HOTCOUNT_PCMASK, GG_DISP2HOT); 2894 dasm_put(Dst, 15111, HOTCOUNT_PCMASK, GG_DISP2HOT);
2878#endif 2895#endif
2879 break; 2896 break;
2880 2897
@@ -2883,33 +2900,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2883 break; 2900 break;
2884#endif 2901#endif
2885 case BC_IITERL: 2902 case BC_IITERL:
2886 dasm_put(Dst, 15478, LJ_TNIL); 2903 dasm_put(Dst, 15531, LJ_TNIL);
2887 if (op == BC_JITERL) { 2904 if (op == BC_JITERL) {
2888 dasm_put(Dst, 15493, BC_JLOOP); 2905 dasm_put(Dst, 15546, BC_JLOOP);
2889 } else { 2906 } else {
2890 dasm_put(Dst, 15507, -BCBIAS_J*4); 2907 dasm_put(Dst, 15560, -BCBIAS_J*4);
2891 } 2908 }
2892 dasm_put(Dst, 10233); 2909 dasm_put(Dst, 10253);
2893 break; 2910 break;
2894 2911
2895 case BC_LOOP: 2912 case BC_LOOP:
2896#if LJ_HASJIT 2913#if LJ_HASJIT
2897 dasm_put(Dst, 15058, HOTCOUNT_PCMASK, GG_DISP2HOT); 2914 dasm_put(Dst, 15111, HOTCOUNT_PCMASK, GG_DISP2HOT);
2898#endif 2915#endif
2899 break; 2916 break;
2900 2917
2901 case BC_ILOOP: 2918 case BC_ILOOP:
2902 dasm_put(Dst, 10235); 2919 dasm_put(Dst, 10255);
2903 break; 2920 break;
2904 2921
2905 case BC_JLOOP: 2922 case BC_JLOOP:
2906#if LJ_HASJIT 2923#if LJ_HASJIT
2907 dasm_put(Dst, 15523, 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); 2924 dasm_put(Dst, 15576, 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);
2908#endif 2925#endif
2909 break; 2926 break;
2910 2927
2911 case BC_JMP: 2928 case BC_JMP:
2912 dasm_put(Dst, 15632, -BCBIAS_J*4); 2929 dasm_put(Dst, 15685, -BCBIAS_J*4);
2913 break; 2930 break;
2914 2931
2915 /* -- Function headers -------------------------------------------------- */ 2932 /* -- Function headers -------------------------------------------------- */
@@ -2923,7 +2940,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2923 2940
2924 case BC_FUNCF: 2941 case BC_FUNCF:
2925#if LJ_HASJIT 2942#if LJ_HASJIT
2926 dasm_put(Dst, 15657, HOTCOUNT_PCMASK, GG_DISP2HOT); 2943 dasm_put(Dst, 15710, HOTCOUNT_PCMASK, GG_DISP2HOT);
2927#endif 2944#endif
2928 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2945 case BC_FUNCV: /* NYI: compiled vararg functions. */
2929 break; 2946 break;
@@ -2933,47 +2950,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2933 break; 2950 break;
2934#endif 2951#endif
2935 case BC_IFUNCF: 2952 case BC_IFUNCF:
2936 dasm_put(Dst, 15678, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2953 dasm_put(Dst, 15731, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2937 if (op == BC_JFUNCF) { 2954 if (op == BC_JFUNCF) {
2938 dasm_put(Dst, 15708, BC_JLOOP); 2955 dasm_put(Dst, 15761, BC_JLOOP);
2939 } else { 2956 } else {
2940 dasm_put(Dst, 10235); 2957 dasm_put(Dst, 10255);
2941 } 2958 }
2942 dasm_put(Dst, 15717, LJ_TNIL); 2959 dasm_put(Dst, 15770, LJ_TNIL);
2943 break; 2960 break;
2944 2961
2945 case BC_JFUNCV: 2962 case BC_JFUNCV:
2946#if !LJ_HASJIT 2963#if !LJ_HASJIT
2947 break; 2964 break;
2948#endif 2965#endif
2949 dasm_put(Dst, 9380); 2966 dasm_put(Dst, 9400);
2950 break; /* NYI: compiled vararg functions. */ 2967 break; /* NYI: compiled vararg functions. */
2951 2968
2952 case BC_IFUNCV: 2969 case BC_IFUNCV:
2953 dasm_put(Dst, 15739, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2970 dasm_put(Dst, 15792, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2954 if (op == BC_JFUNCV) { 2971 if (op == BC_JFUNCV) {
2955 dasm_put(Dst, 15708, BC_JLOOP); 2972 dasm_put(Dst, 15761, BC_JLOOP);
2956 } else { 2973 } else {
2957 dasm_put(Dst, 15830, -4+PC2PROTO(k)); 2974 dasm_put(Dst, 15883, -4+PC2PROTO(k));
2958 } 2975 }
2959 dasm_put(Dst, 15853, LJ_TNIL); 2976 dasm_put(Dst, 15906, LJ_TNIL);
2960 break; 2977 break;
2961 2978
2962 case BC_FUNCC: 2979 case BC_FUNCC:
2963 case BC_FUNCCW: 2980 case BC_FUNCCW:
2964 dasm_put(Dst, 15875, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2981 dasm_put(Dst, 15928, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2965 if (op == BC_FUNCC) { 2982 if (op == BC_FUNCC) {
2966 dasm_put(Dst, 2352); 2983 dasm_put(Dst, 2372);
2967 } else { 2984 } else {
2968 dasm_put(Dst, 15905); 2985 dasm_put(Dst, 15958);
2969 } 2986 }
2970 dasm_put(Dst, 15913, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2987 dasm_put(Dst, 15966, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2971 if (op == BC_FUNCC) { 2988 if (op == BC_FUNCC) {
2972 dasm_put(Dst, 15922); 2989 dasm_put(Dst, 15975);
2973 } else { 2990 } else {
2974 dasm_put(Dst, 15926, DISPATCH_GL(wrapf)); 2991 dasm_put(Dst, 15979, DISPATCH_GL(wrapf));
2975 } 2992 }
2976 dasm_put(Dst, 15931, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2993 dasm_put(Dst, 15984, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2977 break; 2994 break;
2978 2995
2979 /* ---------------------------------------------------------------------- */ 2996 /* ---------------------------------------------------------------------- */
@@ -3001,7 +3018,7 @@ static int build_backend(BuildCtx *ctx)
3001 3018
3002 build_subroutines(ctx, cmov, sse); 3019 build_subroutines(ctx, cmov, sse);
3003 3020
3004 dasm_put(Dst, 15956); 3021 dasm_put(Dst, 16009);
3005 for (op = 0; op < BC__MAX; op++) 3022 for (op = 0; op < BC__MAX; op++)
3006 build_ins(ctx, (BCOp)op, op, cmov, sse); 3023 build_ins(ctx, (BCOp)op, op, cmov, sse);
3007 3024
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 242f8d6d..effd0737 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -1167,9 +1167,17 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1167 | mov L:FCARG1, L:RB 1167 | mov L:FCARG1, L:RB
1168 | mov SAVE_PC, PC 1168 | mov SAVE_PC, PC
1169 | call extern lj_meta_len@8 // (lua_State *L, TValue *o) 1169 | call extern lj_meta_len@8 // (lua_State *L, TValue *o)
1170 | // TValue * (metamethod) returned in eax (RC). 1170 | // NULL (retry) or TValue * (metamethod) returned in eax (RC).
1171 | mov BASE, L:RB->base 1171 | mov BASE, L:RB->base
1172#ifdef LUAJIT_ENABLE_LUA52COMPAT
1173 | test RC, RC
1174 | jne ->vmeta_binop // Binop call for compatibility.
1175 | movzx RD, PC_RD
1176 | mov TAB:FCARG1, [BASE+RD*8]
1177 | jmp ->BC_LEN_Z
1178#else
1172 | jmp ->vmeta_binop // Binop call for compatibility. 1179 | jmp ->vmeta_binop // Binop call for compatibility.
1180#endif
1173 | 1181 |
1174 |//-- Call metamethod ---------------------------------------------------- 1182 |//-- Call metamethod ----------------------------------------------------
1175 | 1183 |
@@ -4244,6 +4252,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
4244 |2: 4252 |2:
4245 | checktab RD, ->vmeta_len 4253 | checktab RD, ->vmeta_len
4246 | mov TAB:FCARG1, [BASE+RD*8] 4254 | mov TAB:FCARG1, [BASE+RD*8]
4255#ifdef LUAJIT_ENABLE_LUA52COMPAT
4256 | mov TAB:RB, TAB:FCARG1->metatable
4257 | cmp TAB:RB, 0
4258 | jnz >9
4259 |3:
4260#endif
4261 |->BC_LEN_Z:
4247 | mov RB, BASE // Save BASE. 4262 | mov RB, BASE // Save BASE.
4248 | call extern lj_tab_len@4 // (GCtab *t) 4263 | call extern lj_tab_len@4 // (GCtab *t)
4249 | // Length of table returned in eax (RD). 4264 | // Length of table returned in eax (RD).
@@ -4260,6 +4275,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
4260 | mov BASE, RB // Restore BASE. 4275 | mov BASE, RB // Restore BASE.
4261 | movzx RA, PC_RA 4276 | movzx RA, PC_RA
4262 | jmp <1 4277 | jmp <1
4278#ifdef LUAJIT_ENABLE_LUA52COMPAT
4279 |9: // Check for __len.
4280 | test byte TAB:RB->nomm, 1<<MM_len
4281 | jnz <3
4282 | jmp ->vmeta_len // 'no __len' flag NOT set: check.
4283#endif
4263 break; 4284 break;
4264 4285
4265 /* -- Binary ops -------------------------------------------------------- */ 4286 /* -- Binary ops -------------------------------------------------------- */
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 289f4bb9..7adb2637 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[17058] = { 15static const unsigned char build_actionlist[17111] = {
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,
@@ -90,89 +90,90 @@ static const unsigned char build_actionlist[17058] = {
90 137,116,36,24,232,251,1,6,139,149,233,133,192,15,132,244,42,248,44,137,193, 90 137,116,36,24,232,251,1,6,139,149,233,133,192,15,132,244,42,248,44,137,193,
91 41,208,137,113,252,244,141,176,233,184,237,252,233,244,28,248,56,139,108, 91 41,208,137,113,252,244,141,176,233,184,237,252,233,244,28,248,56,139,108,
92 36,48,137,149,233,141,20,194,137,252,233,137,116,36,24,232,251,1,7,139,149, 92 36,48,137,149,233,141,20,194,137,252,233,137,116,36,24,232,251,1,7,139,149,
93 233,252,233,244,44,248,57,141,76,202,8,248,29,137,76,36,20,137,68,36,16,131, 93 233,255,133,192,15,133,244,44,15,183,70,252,254,139,12,194,252,233,244,57,
94 252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,149, 94 255,252,233,244,44,255,248,58,141,76,202,8,248,29,137,76,36,20,137,68,36,
95 233,255,137,116,36,24,232,251,1,8,139,149,233,139,76,36,20,139,68,36,16,139, 95 16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,
96 105,252,248,131,192,1,57,215,15,132,244,58,137,202,137,114,252,252,139,181, 96 137,149,233,137,116,36,24,232,251,1,8,139,149,233,139,76,36,20,139,68,36,
97 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,59,139, 97 16,139,105,252,248,131,192,1,57,215,15,132,244,59,137,202,137,114,252,252,
98 108,36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,1,9,139,149, 98 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,
99 233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233, 99 60,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,1,
100 248,60,129,252,248,239,15,130,244,61,139,106,4,129,252,253,239,15,131,244, 100 9,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,
101 61,139,114,252,252,137,68,36,20,137,106,252,252,139,42,137,106,252,248,131, 101 253,171,233,248,61,129,252,248,239,15,130,244,62,139,106,4,129,252,253,239,
102 232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,105,252,252,139, 102 15,131,244,62,139,114,252,252,137,68,36,20,137,106,252,252,139,42,137,106,
103 41,137,105,252,248,131,232,1,15,133,244,1,248,2,255,139,68,36,20,252,233, 103 252,248,131,232,2,15,132,244,248,255,137,209,248,1,131,193,8,139,105,4,137,
104 244,62,248,63,129,252,248,239,15,130,244,61,139,106,4,184,237,252,247,213, 104 105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,
105 57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,106,252, 105 20,252,233,244,63,248,64,129,252,248,239,15,130,244,62,139,106,4,184,237,
106 248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,252,248, 106 252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,
107 252,233,244,64,248,65,129,252,248,239,15,130,244,61,139,106,4,139,114,252, 107 2,139,106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237,
108 252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252, 108 137,66,252,248,252,233,244,65,248,66,129,252,248,239,15,130,244,62,139,106,
109 237,199,66,252,252,237,15,132,244,64,139,131,233,199,66,252,252,237,255,137, 109 4,139,114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,
110 106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233, 110 248,2,133,252,237,199,66,252,252,237,15,132,244,65,139,131,233,199,66,252,
111 239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15, 111 252,237,255,137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,
112 133,244,3,252,233,244,64,248,5,139,105,4,129,252,253,239,255,15,132,244,64, 112 248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,
113 139,1,137,106,252,252,137,66,252,248,252,233,244,64,248,6,129,252,253,239, 113 137,233,133,201,15,133,244,3,252,233,244,65,248,5,139,105,4,129,252,253,239,
114 15,132,244,1,129,252,253,239,15,135,244,254,189,237,248,8,252,247,213,139, 114 255,15,132,244,65,139,1,137,106,252,252,137,66,252,248,252,233,244,65,248,
115 172,253,171,233,252,233,244,2,248,66,129,252,248,239,15,130,244,61,255,129, 115 6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,254,189,237,248,
116 122,253,4,239,15,133,244,61,139,42,131,189,233,0,15,133,244,61,129,122,253, 116 8,252,247,213,139,172,253,171,233,252,233,244,2,248,67,129,252,248,239,15,
117 12,239,15,133,244,61,139,66,8,137,133,233,139,114,252,252,199,66,252,252, 117 130,244,62,255,129,122,253,4,239,15,133,244,62,139,42,131,189,233,0,15,133,
118 237,137,106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139, 118 244,62,129,122,253,12,239,15,133,244,62,139,66,8,137,133,233,139,114,252,
119 131,233,137,171,233,137,133,233,248,1,255,252,233,244,64,248,67,129,252,248, 119 252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247,
120 239,15,130,244,61,129,122,253,4,239,15,133,244,61,139,2,139,108,36,48,137, 120 128,165,233,235,139,131,233,137,171,233,137,133,233,248,1,255,252,233,244,
121 68,36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,1,10,137,252,234, 121 65,248,68,129,252,248,239,15,130,244,62,129,122,253,4,239,15,133,244,62,139,
122 139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,233,244, 122 2,139,108,36,48,137,68,36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,
123 64,248,68,129,252,248,239,15,133,244,61,129,122,253,4,239,255,15,133,244, 123 1,10,137,252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252,
124 247,139,42,252,233,244,69,248,1,15,135,244,61,255,15,131,244,61,255,252,242, 124 252,252,233,244,65,248,69,129,252,248,239,15,133,244,62,129,122,253,4,239,
125 15,16,2,252,233,244,70,255,221,2,252,233,244,71,255,248,72,129,252,248,239, 125 255,15,133,244,247,139,42,252,233,244,70,248,1,15,135,244,62,255,15,131,244,
126 15,130,244,61,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2,248, 126 62,255,252,242,15,16,2,252,233,244,71,255,221,2,252,233,244,72,255,248,73,
127 2,199,66,252,252,237,137,66,252,248,252,233,244,64,248,3,129,122,253,4,239, 127 129,252,248,239,15,130,244,62,139,114,252,252,129,122,253,4,239,15,133,244,
128 15,135,244,61,131,187,233,0,15,133,244,61,139,171,233,59,171,233,255,15,130, 128 249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244,65,248,3,129,
129 244,247,232,244,73,248,1,139,108,36,48,137,149,233,137,116,36,24,137,252, 129 122,253,4,239,15,135,244,62,131,187,233,0,15,133,244,62,139,171,233,59,171,
130 233,255,232,251,1,11,255,232,251,1,12,255,139,149,233,252,233,244,2,248,74, 130 233,255,15,130,244,247,232,244,74,248,1,139,108,36,48,137,149,233,137,116,
131 129,252,248,239,15,130,244,61,15,132,244,248,248,1,129,122,253,4,239,15,133, 131 36,24,137,252,233,255,232,251,1,11,255,232,251,1,12,255,139,149,233,252,233,
132 244,61,139,108,36,48,137,149,233,137,149,233,139,114,252,252,139,2,137,68, 132 244,2,248,75,129,252,248,239,15,130,244,62,15,132,244,248,248,1,129,122,253,
133 36,4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232,251,1,13,139,149,233, 133 4,239,15,133,244,62,139,108,36,48,137,149,233,137,149,233,139,114,252,252,
134 133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252, 134 139,2,137,68,36,4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232,251,1,
135 139,106,16,139,66,20,137,42,137,66,4,248,75,184,237,255,252,233,244,76,248, 135 13,139,149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,
136 2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,64,248, 136 137,66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,76,184,237,255,252,
137 77,129,252,248,239,15,130,244,61,139,42,129,122,253,4,239,15,133,244,61,255, 137 233,244,77,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,
138 131,189,233,0,15,133,244,61,255,139,106,252,248,139,133,233,139,114,252,252, 138 233,244,65,248,78,129,252,248,239,15,130,244,62,139,42,129,122,253,4,239,
139 199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,76,248, 139 15,133,244,62,255,131,189,233,0,15,133,244,62,255,139,106,252,248,139,133,
140 78,129,252,248,239,15,130,244,61,129,122,253,4,239,15,133,244,61,129,122, 140 233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,
141 253,12,239,255,139,114,252,252,255,139,66,8,131,192,1,199,66,252,252,237, 141 252,233,244,77,248,79,129,252,248,239,15,130,244,62,129,122,253,4,239,15,
142 137,66,252,248,255,252,242,15,16,66,8,189,0,0,252,240,63,102,15,110,205,102, 142 133,244,62,129,122,253,12,239,255,139,114,252,252,255,139,66,8,131,192,1,
143 15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248, 143 199,66,252,252,237,137,66,252,248,255,252,242,15,16,66,8,189,0,0,252,240,
144 255,221,66,8,217,232,222,193,219,20,36,221,90,252,248,139,4,36,255,139,42, 144 63,102,15,110,205,102,15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,
145 59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15, 145 242,15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,36,221,90,252,248,
146 132,244,79,139,40,139,64,4,137,42,137,66,4,252,233,244,75,248,2,131,189,233, 146 139,4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,
147 0,15,132,244,79,137,252,233,137,213,137,194,232,251,1,14,137,252,234,133, 147 120,253,4,239,15,132,244,80,139,40,139,64,4,137,42,137,66,4,252,233,244,76,
148 192,15,133,244,1,248,79,184,237,252,233,244,76,248,80,255,139,106,252,248, 148 248,2,131,189,233,0,15,132,244,80,137,252,233,137,213,137,194,232,251,1,14,
149 139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,199,66, 149 137,252,234,133,192,15,133,244,1,248,80,184,237,252,233,244,77,248,81,255,
150 12,237,199,66,8,0,0,0,0,255,15,87,192,252,242,15,17,66,8,255,217,252,238, 150 139,106,252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,
151 221,90,8,255,184,237,252,233,244,76,248,81,129,252,248,239,15,130,244,61, 151 248,255,199,66,12,237,199,66,8,0,0,0,0,255,15,87,192,252,242,15,17,66,8,255,
152 141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1, 152 217,252,238,221,90,8,255,184,237,252,233,244,77,248,82,129,252,248,239,15,
153 1,252,238,252,233,244,28,248,82,129,252,248,239,15,130,244,61,129,122,253, 153 130,244,62,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,
154 12,239,15,133,244,61,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114, 154 131,229,1,1,252,238,252,233,244,28,248,83,129,252,248,239,15,130,244,62,129,
155 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,83,129,252, 155 122,253,12,239,15,133,244,62,255,139,106,4,137,106,12,199,66,4,237,139,42,
156 248,239,15,130,244,61,139,42,139,114,252,252,137,116,36,24,137,44,36,129, 156 139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,
157 122,253,4,239,15,133,244,61,131,189,233,0,15,133,244,61,128,189,233,235,15, 157 84,129,252,248,239,15,130,244,62,139,42,139,114,252,252,137,116,36,24,137,
158 135,244,61,139,141,233,15,132,244,247,255,59,141,233,15,132,244,61,248,1, 158 44,36,129,122,253,4,239,15,133,244,62,131,189,233,0,15,133,244,62,128,189,
159 141,116,193,252,240,59,181,233,15,135,244,61,137,181,233,139,108,36,48,137, 159 233,235,15,135,244,62,139,141,233,15,132,244,247,255,59,141,233,15,132,244,
160 149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244, 160 62,248,1,141,116,193,252,240,59,181,233,15,135,244,62,137,181,233,139,108,
161 249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238, 161 36,48,137,149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,
162 8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232, 162 15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,
163 244,25,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248, 163 252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,
164 239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254, 164 36,8,232,244,25,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,
165 41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137, 165 252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,
166 213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249, 166 252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,
167 15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68, 167 255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,
168 36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244, 168 252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,
169 13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137, 169 137,68,36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,
170 142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12, 170 244,13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,
171 36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233, 171 137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,
172 252,233,244,4,248,84,139,106,252,248,139,173,233,139,114,252,252,137,116, 172 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
173 36,24,137,44,36,131,189,233,0,15,133,244,61,255,128,189,233,235,15,135,244, 173 252,233,244,4,248,85,139,106,252,248,139,173,233,139,114,252,252,137,116,
174 61,139,141,233,15,132,244,247,59,141,233,15,132,244,61,248,1,141,116,193, 174 36,24,137,44,36,131,189,233,0,15,133,244,62,255,128,189,233,235,15,135,244,
175 252,248,59,181,233,15,135,244,61,137,181,233,139,108,36,48,137,149,233,137, 175 62,139,141,233,15,132,244,247,59,141,233,15,132,244,62,248,1,141,116,193,
176 252,248,59,181,233,15,135,244,62,137,181,233,139,108,36,48,137,149,233,137,
176 149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139, 177 149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,
177 68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133, 178 68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,
178 244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,25,199,131, 179 244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,25,199,131,
@@ -183,243 +184,243 @@ static const unsigned char build_actionlist[17058] = {
183 6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132, 184 6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,
184 244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,15,248,9,139, 185 244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,15,248,9,139,
185 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233, 186 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
186 252,233,244,4,248,85,139,108,36,48,252,247,133,233,237,15,132,244,61,255, 187 252,233,244,4,248,86,139,108,36,48,252,247,133,233,237,15,132,244,62,255,
187 137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176,235,136, 188 137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176,235,136,
188 133,233,252,233,244,16,255,248,69,255,248,71,139,114,252,252,221,90,252,248, 189 133,233,252,233,244,16,255,248,70,255,248,72,139,114,252,252,221,90,252,248,
189 252,233,244,64,255,248,86,129,252,248,239,15,130,244,61,255,129,122,253,4, 190 252,233,244,65,255,248,87,129,252,248,239,15,130,244,62,255,129,122,253,4,
190 239,15,133,244,248,139,42,131,252,253,0,15,137,244,69,252,247,221,15,136, 191 239,15,133,244,248,139,42,131,252,253,0,15,137,244,70,252,247,221,15,136,
191 244,247,248,87,248,69,139,114,252,252,199,66,252,252,237,137,106,252,248, 192 244,247,248,88,248,70,139,114,252,252,199,66,252,252,237,137,106,252,248,
192 252,233,244,64,248,1,139,114,252,252,199,66,252,252,0,0,224,65,199,66,252, 193 252,233,244,65,248,1,139,114,252,252,199,66,252,252,0,0,224,65,199,66,252,
193 248,0,0,0,0,252,233,244,64,248,2,15,135,244,61,255,129,122,253,4,239,15,131, 194 248,0,0,0,0,252,233,244,65,248,2,15,135,244,62,255,129,122,253,4,239,15,131,
194 244,61,255,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209, 195 244,62,255,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209,
195 1,15,84,193,248,70,139,114,252,252,252,242,15,17,66,252,248,255,221,2,217, 196 1,15,84,193,248,71,139,114,252,252,252,242,15,17,66,252,248,255,221,2,217,
196 225,248,70,248,71,139,114,252,252,221,90,252,248,255,248,64,184,237,248,76, 197 225,248,71,248,72,139,114,252,252,221,90,252,248,255,248,65,184,237,248,77,
197 137,68,36,20,248,62,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15, 198 137,68,36,20,248,63,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,
198 135,244,252,15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15, 199 135,244,252,15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15,
199 182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237, 200 182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237,
200 131,192,1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233, 201 131,192,1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233,
201 244,14,248,88,255,129,122,253,4,239,15,133,244,247,139,42,252,233,244,69, 202 244,14,248,89,255,129,122,253,4,239,15,133,244,247,139,42,252,233,244,70,
202 248,1,15,135,244,61,255,252,242,15,16,2,232,244,89,255,252,242,15,45,232, 203 248,1,15,135,244,62,255,252,242,15,16,2,232,244,90,255,252,242,15,45,232,
203 129,252,253,0,0,0,128,15,133,244,69,252,242,15,42,205,102,15,46,193,15,138, 204 129,252,253,0,0,0,128,15,133,244,70,252,242,15,42,205,102,15,46,193,15,138,
204 244,70,15,132,244,69,255,221,2,232,244,89,255,219,20,36,139,44,36,129,252, 205 244,71,15,132,244,70,255,221,2,232,244,90,255,219,20,36,139,44,36,129,252,
205 253,0,0,0,128,15,133,244,248,217,192,219,4,36,255,223,252,233,221,216,255, 206 253,0,0,0,128,15,133,244,248,217,192,219,4,36,255,223,252,233,221,216,255,
206 218,252,233,223,224,158,255,15,138,244,71,15,133,244,71,248,2,221,216,252, 207 218,252,233,223,224,158,255,15,138,244,72,15,133,244,72,248,2,221,216,252,
207 233,244,69,255,248,90,255,252,242,15,16,2,232,244,91,255,221,2,232,244,91, 208 233,244,70,255,248,91,255,252,242,15,16,2,232,244,92,255,221,2,232,244,92,
208 255,248,92,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61, 209 255,248,93,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,
209 252,242,15,81,2,252,233,244,70,255,248,92,129,252,248,239,15,130,244,61,129, 210 252,242,15,81,2,252,233,244,71,255,248,93,129,252,248,239,15,130,244,62,129,
210 122,253,4,239,15,131,244,61,221,2,217,252,250,252,233,244,71,255,248,93,129, 211 122,253,4,239,15,131,244,62,221,2,217,252,250,252,233,244,72,255,248,94,129,
211 252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,217,252,237,221, 212 252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,217,252,237,221,
212 2,217,252,241,252,233,244,71,248,94,129,252,248,239,15,130,244,61,129,122, 213 2,217,252,241,252,233,244,72,248,95,129,252,248,239,15,130,244,62,129,122,
213 253,4,239,15,131,244,61,217,252,236,221,2,217,252,241,252,233,244,71,248, 214 253,4,239,15,131,244,62,217,252,236,221,2,217,252,241,252,233,244,72,248,
214 95,129,252,248,239,255,15,130,244,61,129,122,253,4,239,15,131,244,61,221, 215 96,129,252,248,239,255,15,130,244,62,129,122,253,4,239,15,131,244,62,221,
215 2,232,244,96,252,233,244,71,248,97,129,252,248,239,15,130,244,61,129,122, 216 2,232,244,97,252,233,244,72,248,98,129,252,248,239,15,130,244,62,129,122,
216 253,4,239,15,131,244,61,221,2,217,252,254,252,233,244,71,248,98,129,252,248, 217 253,4,239,15,131,244,62,221,2,217,252,254,252,233,244,72,248,99,129,252,248,
217 239,255,15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,217,252,255,252, 218 239,255,15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,217,252,255,252,
218 233,244,71,248,99,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 219 233,244,72,248,100,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
219 244,61,221,2,217,252,242,221,216,252,233,244,71,248,100,129,252,248,239,15, 220 244,62,221,2,217,252,242,221,216,252,233,244,72,248,101,129,252,248,239,15,
220 130,244,61,255,129,122,253,4,239,15,131,244,61,221,2,217,192,216,200,217, 221 130,244,62,255,129,122,253,4,239,15,131,244,62,221,2,217,192,216,200,217,
221 232,222,225,217,252,250,217,252,243,252,233,244,71,248,101,129,252,248,239, 222 232,222,225,217,252,250,217,252,243,252,233,244,72,248,102,129,252,248,239,
222 15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,217,192,216,200,217,232, 223 15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,217,192,216,200,217,232,
223 222,225,217,252,250,217,201,217,252,243,252,233,244,71,248,102,129,252,248, 224 222,225,217,252,250,217,201,217,252,243,252,233,244,72,248,103,129,252,248,
224 239,15,130,244,61,129,122,253,4,239,15,131,244,61,255,221,2,217,232,217,252, 225 239,15,130,244,62,129,122,253,4,239,15,131,244,62,255,221,2,217,232,217,252,
225 243,252,233,244,71,255,248,103,129,252,248,239,15,130,244,61,129,122,253, 226 243,252,233,244,72,255,248,104,129,252,248,239,15,130,244,62,129,122,253,
226 4,239,15,131,244,61,252,242,15,16,2,252,242,15,17,4,36,255,248,103,129,252, 227 4,239,15,131,244,62,252,242,15,16,2,252,242,15,17,4,36,255,248,104,129,252,
227 248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,221,2,221,28,36,255, 228 248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,221,2,221,28,36,255,
228 137,213,232,251,1,16,137,252,234,252,233,244,71,255,248,104,129,252,248,239, 229 137,213,232,251,1,16,137,252,234,252,233,244,72,255,248,105,129,252,248,239,
229 15,130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2,252,242,15, 230 15,130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,252,242,15,
230 17,4,36,255,248,104,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 231 17,4,36,255,248,105,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
231 244,61,221,2,221,28,36,255,137,213,232,251,1,17,137,252,234,252,233,244,71, 232 244,62,221,2,221,28,36,255,137,213,232,251,1,17,137,252,234,252,233,244,72,
232 255,248,105,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61, 233 255,248,106,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,
233 252,242,15,16,2,252,242,15,17,4,36,255,248,105,129,252,248,239,15,130,244, 234 252,242,15,16,2,252,242,15,17,4,36,255,248,106,129,252,248,239,15,130,244,
234 61,129,122,253,4,239,15,131,244,61,221,2,221,28,36,255,137,213,232,251,1, 235 62,129,122,253,4,239,15,131,244,62,221,2,221,28,36,255,137,213,232,251,1,
235 18,137,252,234,252,233,244,71,248,106,255,248,107,129,252,248,239,15,130, 236 18,137,252,234,252,233,244,72,248,107,255,248,108,129,252,248,239,15,130,
236 244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2,139,106,252,248,252, 237 244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,139,106,252,248,252,
237 242,15,89,133,233,252,233,244,70,255,248,107,129,252,248,239,15,130,244,61, 238 242,15,89,133,233,252,233,244,71,255,248,108,129,252,248,239,15,130,244,62,
238 129,122,253,4,239,15,131,244,61,221,2,139,106,252,248,220,141,233,252,233, 239 129,122,253,4,239,15,131,244,62,221,2,139,106,252,248,220,141,233,252,233,
239 244,71,255,248,108,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131, 240 244,72,255,248,109,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,
240 244,61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,217,252,243,252,233, 241 244,62,129,122,253,12,239,15,131,244,62,221,2,221,66,8,217,252,243,252,233,
241 244,71,248,109,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244, 242 244,72,248,110,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,
242 61,129,122,253,12,239,255,15,131,244,61,221,66,8,221,2,217,252,253,221,217, 243 62,129,122,253,12,239,255,15,131,244,62,221,66,8,221,2,217,252,253,221,217,
243 252,233,244,71,248,110,129,252,248,239,15,130,244,61,139,106,4,129,252,253, 244 252,233,244,72,248,111,129,252,248,239,15,130,244,62,139,106,4,129,252,253,
244 239,15,131,244,61,139,114,252,252,139,2,137,106,252,252,137,66,252,248,209, 245 239,15,131,244,62,139,114,252,252,139,2,137,106,252,252,137,66,252,248,209,
245 229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252, 246 229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,
246 254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197, 247 254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,
247 255,252,242,15,42,197,255,137,108,36,16,219,68,36,16,255,139,106,252,252, 248 255,252,242,15,42,197,255,137,108,36,16,219,68,36,16,255,139,106,252,252,
248 129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255, 249 129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,
249 252,242,15,17,2,255,221,26,255,184,237,252,233,244,76,248,3,255,15,87,192, 250 252,242,15,17,2,255,221,26,255,184,237,252,233,244,77,248,3,255,15,87,192,
250 252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2, 251 252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,
251 189,0,0,80,67,102,15,110,205,102,15,112,201,81,252,242,15,89,193,252,242, 252 189,0,0,80,67,102,15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,
252 15,17,66,252,248,255,221,2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252, 253 15,17,66,252,248,255,221,2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,
253 248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,111,129, 254 248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,112,129,
254 252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,252,242,15,16,2, 255 252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,252,242,15,16,2,
255 255,248,111,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61, 256 255,248,112,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,
256 221,2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15, 257 221,2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,
257 132,244,250,255,15,40,224,232,244,112,252,242,15,92,224,248,1,252,242,15, 258 132,244,250,255,15,40,224,232,244,113,252,242,15,92,224,248,1,252,242,15,
258 17,66,252,248,252,242,15,17,34,255,217,192,232,244,112,220,252,233,248,1, 259 17,66,252,248,252,242,15,17,34,255,217,192,232,244,113,220,252,233,248,1,
259 221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249, 260 221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,
260 248,2,184,237,252,233,244,76,248,3,129,252,245,0,0,0,128,137,106,4,252,233, 261 248,2,184,237,252,233,244,77,248,3,129,252,245,0,0,0,128,137,106,4,252,233,
261 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244, 262 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,
262 1,255,248,113,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244, 263 1,255,248,114,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,
263 61,129,122,253,12,239,15,131,244,61,221,66,8,221,2,248,1,217,252,248,223, 264 62,129,122,253,12,239,15,131,244,62,221,66,8,221,2,248,1,217,252,248,223,
264 224,158,15,138,244,1,221,217,252,233,244,71,255,248,114,129,252,248,239,15, 265 224,158,15,138,244,1,221,217,252,233,244,72,255,248,115,129,252,248,239,15,
265 130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244, 266 130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,
266 61,252,242,15,16,2,252,242,15,16,74,8,232,244,115,252,233,244,70,255,248, 267 62,252,242,15,16,2,252,242,15,16,74,8,232,244,116,252,233,244,71,255,248,
267 114,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122, 268 115,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,
268 253,12,239,15,131,244,61,221,2,221,66,8,232,244,115,252,233,244,71,255,248, 269 253,12,239,15,131,244,62,221,2,221,66,8,232,244,116,252,233,244,72,255,248,
269 116,185,2,0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193, 270 117,185,2,0,0,0,129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,
270 15,131,244,69,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248, 271 15,131,244,70,129,124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,
271 15,79,108,202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,61,255,252, 272 15,79,108,202,252,248,131,193,1,252,233,244,1,248,3,15,135,244,62,255,252,
272 233,244,252,248,4,15,135,244,61,255,252,242,15,16,2,248,5,57,193,15,131,244, 273 233,244,252,248,4,15,135,244,62,255,252,242,15,16,2,248,5,57,193,15,131,244,
273 70,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,61,252,242,15, 274 71,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,62,252,242,15,
274 42,76,202,252,248,252,233,244,253,255,248,6,252,242,15,16,76,202,252,248, 275 42,76,202,252,248,252,233,244,253,255,248,6,252,242,15,16,76,202,252,248,
275 248,7,252,242,15,93,193,131,193,1,252,233,244,5,255,221,2,248,5,57,193,15, 276 248,7,252,242,15,93,193,131,193,1,252,233,244,5,255,221,2,248,5,57,193,15,
276 131,244,71,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,255, 277 131,244,72,129,124,253,202,252,252,239,255,15,130,244,252,15,135,244,255,
277 219,68,202,252,248,252,233,244,253,255,15,131,244,255,255,248,6,221,68,202, 278 219,68,202,252,248,252,233,244,253,255,15,131,244,255,255,248,6,221,68,202,
278 252,248,248,7,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252, 279 252,248,248,7,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,
279 246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,248,117,185,2,0,0,0, 280 246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,248,118,185,2,0,0,0,
280 129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,69,129, 281 129,122,253,4,239,255,15,133,244,250,139,42,248,1,57,193,15,131,244,70,129,
281 124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,76,108,202,252, 282 124,253,202,252,252,239,15,133,244,249,59,108,202,252,248,15,76,108,202,252,
282 248,131,193,1,252,233,244,1,248,3,15,135,244,61,255,248,6,252,242,15,16,76, 283 248,131,193,1,252,233,244,1,248,3,15,135,244,62,255,248,6,252,242,15,16,76,
283 202,252,248,248,7,252,242,15,95,193,131,193,1,252,233,244,5,255,219,252,233, 284 202,252,248,248,7,252,242,15,95,193,131,193,1,252,233,244,5,255,219,252,233,
284 218,209,221,217,255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201, 285 218,209,221,217,255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
285 248,2,221,216,88,255,248,9,221,216,252,233,244,61,255,248,118,129,252,248, 286 248,2,221,216,88,255,248,9,221,216,252,233,244,62,255,248,119,129,252,248,
286 239,15,130,244,61,129,122,253,4,239,15,133,244,61,139,42,255,139,173,233, 287 239,15,130,244,62,129,122,253,4,239,15,133,244,62,139,42,255,139,173,233,
287 252,233,244,69,255,252,242,15,42,133,233,252,233,244,70,255,219,133,233,252, 288 252,233,244,70,255,252,242,15,42,133,233,252,233,244,71,255,219,133,233,252,
288 233,244,71,255,248,119,129,252,248,239,15,133,244,61,129,122,253,4,239,15, 289 233,244,72,255,248,120,129,252,248,239,15,133,244,62,129,122,253,4,239,15,
289 133,244,61,139,42,139,114,252,252,131,189,233,1,15,130,244,79,15,182,173, 290 133,244,62,139,42,139,114,252,252,131,189,233,1,15,130,244,80,15,182,173,
290 233,255,252,242,15,42,197,252,233,244,70,255,137,108,36,16,219,68,36,16,252, 291 233,255,252,242,15,42,197,252,233,244,71,255,137,108,36,16,219,68,36,16,252,
291 233,244,71,255,248,120,139,171,233,59,171,233,15,130,244,247,232,244,73,248, 292 233,244,72,255,248,121,139,171,233,59,171,233,15,130,244,247,232,244,74,248,
292 1,129,252,248,239,15,133,244,61,129,122,253,4,239,255,15,133,244,61,139,42, 293 1,129,252,248,239,15,133,244,62,129,122,253,4,239,255,15,133,244,62,139,42,
293 129,252,253,252,255,0,0,0,15,135,244,61,137,108,36,20,255,15,131,244,61,252, 294 129,252,253,252,255,0,0,0,15,135,244,62,137,108,36,20,255,15,131,244,62,252,
294 242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,61,137,108,36,20,255,15, 295 242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,62,137,108,36,20,255,15,
295 131,244,61,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,61,255, 296 131,244,62,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,62,255,
296 199,68,36,8,1,0,0,0,141,68,36,20,248,121,139,108,36,48,137,149,233,137,68, 297 199,68,36,8,1,0,0,0,141,68,36,20,248,122,139,108,36,48,137,149,233,137,68,
297 36,4,137,44,36,137,116,36,24,232,251,1,19,139,149,233,139,114,252,252,199, 298 36,4,137,44,36,137,116,36,24,232,251,1,19,139,149,233,139,114,252,252,199,
298 66,252,252,237,137,66,252,248,252,233,244,64,248,122,139,171,233,59,171,233, 299 66,252,252,237,137,66,252,248,252,233,244,65,248,123,139,171,233,59,171,233,
299 15,130,244,247,232,244,73,248,1,199,68,36,20,252,255,252,255,252,255,252, 300 15,130,244,247,232,244,74,248,1,199,68,36,20,252,255,252,255,252,255,252,
300 255,129,252,248,239,15,130,244,61,15,134,244,247,129,122,253,20,239,255,15, 301 255,129,252,248,239,15,130,244,62,15,134,244,247,129,122,253,20,239,255,15,
301 133,244,61,139,106,16,137,108,36,20,255,15,131,244,61,252,242,15,44,106,16, 302 133,244,62,139,106,16,137,108,36,20,255,15,131,244,62,252,242,15,44,106,16,
302 137,108,36,20,255,15,131,244,61,221,66,16,219,92,36,20,255,248,1,129,122, 303 137,108,36,20,255,15,131,244,62,221,66,16,219,92,36,20,255,248,1,129,122,
303 253,4,239,15,133,244,61,129,122,253,12,239,255,139,42,137,108,36,12,139,173, 304 253,4,239,15,133,244,62,129,122,253,12,239,255,139,42,137,108,36,12,139,173,
304 233,255,139,74,8,255,252,242,15,44,74,8,255,221,66,8,219,92,36,8,139,76,36, 305 233,255,139,74,8,255,252,242,15,44,74,8,255,221,66,8,219,92,36,8,139,76,36,
305 8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248, 306 8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,
306 3,139,108,36,12,41,200,15,140,244,123,141,172,253,13,233,131,192,1,248,4, 307 3,139,108,36,12,41,200,15,140,244,124,141,172,253,13,233,131,192,1,248,4,
307 137,68,36,8,137,232,252,233,244,121,248,5,15,140,244,252,141,68,40,1,252, 308 137,68,36,8,137,232,252,233,244,122,248,5,15,140,244,252,141,68,40,1,252,
308 233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233, 309 233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,
309 131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,123,49,192,252, 310 131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,124,49,192,252,
310 233,244,4,248,124,129,252,248,239,15,130,244,61,139,171,233,59,171,233,15, 311 233,244,4,248,125,129,252,248,239,15,130,244,62,139,171,233,59,171,233,15,
311 130,244,247,232,244,73,248,1,255,129,122,253,4,239,15,133,244,61,129,122, 312 130,244,247,232,244,74,248,1,255,129,122,253,4,239,15,133,244,62,129,122,
312 253,12,239,139,42,255,15,133,244,61,139,66,8,255,15,131,244,61,252,242,15, 313 253,12,239,139,42,255,15,133,244,62,139,66,8,255,15,131,244,62,252,242,15,
313 44,66,8,255,15,131,244,61,221,66,8,219,92,36,20,139,68,36,20,255,133,192, 314 44,66,8,255,15,131,244,62,221,66,8,219,92,36,20,139,68,36,20,255,133,192,
314 15,142,244,123,131,189,233,1,15,130,244,123,15,133,244,125,57,131,233,15, 315 15,142,244,124,131,189,233,1,15,130,244,124,15,133,244,126,57,131,233,15,
315 130,244,125,15,182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197, 316 130,244,126,15,182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197,
316 1,131,232,1,15,133,244,1,139,131,233,252,233,244,121,248,126,129,252,248, 317 1,131,232,1,15,133,244,1,139,131,233,252,233,244,122,248,127,129,252,248,
317 239,255,15,130,244,61,139,171,233,59,171,233,15,130,244,247,232,244,73,248, 318 239,255,15,130,244,62,139,171,233,59,171,233,15,130,244,247,232,244,74,248,
318 1,129,122,253,4,239,15,133,244,61,139,42,139,133,233,133,192,15,132,244,123, 319 1,129,122,253,4,239,15,133,244,62,139,42,139,133,233,133,192,15,132,244,124,
319 57,131,233,15,130,244,127,129,197,239,137,116,36,20,137,68,36,8,139,179,233, 320 57,131,233,15,130,244,128,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
320 248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240, 321 248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,
321 139,116,36,20,252,233,244,121,248,128,129,252,248,239,15,130,244,61,139,171, 322 139,116,36,20,252,233,244,122,248,129,129,252,248,239,15,130,244,62,139,171,
322 233,59,171,233,15,130,244,247,232,244,73,248,1,129,122,253,4,239,15,133,244, 323 233,59,171,233,15,130,244,247,232,244,74,248,1,129,122,253,4,239,15,133,244,
323 61,139,42,139,133,233,57,131,233,255,15,130,244,127,129,197,239,137,116,36, 324 62,139,42,139,133,233,57,131,233,255,15,130,244,128,129,197,239,137,116,36,
324 20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249, 325 20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,
325 65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136, 326 65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,
326 12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,121, 327 12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,122,
327 248,129,129,252,248,239,15,130,244,61,255,139,171,233,59,171,233,15,130,244, 328 248,130,129,252,248,239,15,130,244,62,255,139,171,233,59,171,233,15,130,244,
328 247,232,244,73,248,1,129,122,253,4,239,15,133,244,61,139,42,139,133,233,57, 329 247,232,244,74,248,1,129,122,253,4,239,15,133,244,62,139,42,139,133,233,57,
329 131,233,15,130,244,127,129,197,239,137,116,36,20,137,68,36,8,139,179,233, 330 131,233,15,130,244,128,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
330 252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131, 331 252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,
331 252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1, 332 252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,
332 15,137,244,1,137,252,240,139,116,36,20,252,233,244,121,248,130,129,252,248, 333 15,137,244,1,137,252,240,139,116,36,20,252,233,244,122,248,131,129,252,248,
333 239,15,130,244,61,129,122,253,4,239,15,133,244,61,137,213,139,10,232,251, 334 239,15,130,244,62,129,122,253,4,239,15,133,244,62,137,213,139,10,232,251,
334 1,20,137,252,234,255,137,197,252,233,244,69,255,252,242,15,42,192,252,233, 335 1,20,137,252,234,255,137,197,252,233,244,70,255,252,242,15,42,192,252,233,
335 244,70,255,137,4,36,219,4,36,252,233,244,71,255,248,131,129,252,248,239,15, 336 244,71,255,137,4,36,219,4,36,252,233,244,72,255,248,132,129,252,248,239,15,
336 130,244,61,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,87,248, 337 130,244,62,129,122,253,4,239,255,15,133,244,247,139,42,252,233,244,88,248,
337 1,15,135,244,61,255,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112, 338 1,15,135,244,62,255,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,
338 201,81,252,242,15,88,193,102,15,126,197,255,221,2,199,68,36,16,0,0,192,89, 339 201,81,252,242,15,88,193,102,15,126,197,255,221,2,199,68,36,16,0,0,192,89,
339 216,68,36,16,221,28,36,255,139,44,36,255,252,233,244,87,255,248,132,129,252, 340 216,68,36,16,221,28,36,255,139,44,36,255,252,233,244,88,255,248,133,129,252,
340 248,239,15,130,244,61,255,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 341 248,239,15,130,244,62,255,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
341 255,199,68,36,16,0,0,192,89,255,15,133,244,247,139,42,252,233,244,248,248, 342 255,199,68,36,16,0,0,192,89,255,15,133,244,247,139,42,252,233,244,248,248,
342 1,15,135,244,61,255,252,242,15,16,2,252,242,15,88,193,102,15,126,197,255, 343 1,15,135,244,62,255,252,242,15,16,2,252,242,15,88,193,102,15,126,197,255,
343 221,2,216,68,36,16,221,28,36,139,44,36,255,248,2,137,68,36,20,141,68,194, 344 221,2,216,68,36,16,221,28,36,139,44,36,255,248,2,137,68,36,20,141,68,194,
344 252,240,248,1,57,208,15,134,244,87,129,120,253,4,239,255,15,133,244,248,35, 345 252,240,248,1,57,208,15,134,244,88,129,120,253,4,239,255,15,133,244,248,35,
345 40,131,232,8,252,233,244,1,248,2,15,135,244,133,255,15,131,244,133,255,252, 346 40,131,232,8,252,233,244,1,248,2,15,135,244,134,255,15,131,244,134,255,252,
346 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16, 347 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16,
347 221,28,36,35,44,36,255,131,232,8,252,233,244,1,248,134,129,252,248,239,15, 348 221,28,36,35,44,36,255,131,232,8,252,233,244,1,248,135,129,252,248,239,15,
348 130,244,61,255,15,133,244,248,11,40,131,232,8,252,233,244,1,248,2,15,135, 349 130,244,62,255,15,133,244,248,11,40,131,232,8,252,233,244,1,248,2,15,135,
349 244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,221, 350 244,134,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,
350 0,216,68,36,16,221,28,36,11,44,36,255,131,232,8,252,233,244,1,248,135,129, 351 0,216,68,36,16,221,28,36,11,44,36,255,131,232,8,252,233,244,1,248,136,129,
351 252,248,239,15,130,244,61,255,15,133,244,248,51,40,131,232,8,252,233,244, 352 252,248,239,15,130,244,62,255,15,133,244,248,51,40,131,232,8,252,233,244,
352 1,248,2,15,135,244,133,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, 353 1,248,2,15,135,244,134,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,
353 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,131,232,8,252,233,244, 354 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,131,232,8,252,233,244,
354 1,248,136,129,252,248,239,15,130,244,61,129,122,253,4,239,255,221,2,199,68, 355 1,248,137,129,252,248,239,15,130,244,62,129,122,253,4,239,255,221,2,199,68,
355 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,248,2,15,205,252,233, 356 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,248,2,15,205,252,233,
356 244,87,248,137,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2, 357 244,88,248,138,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,2,
357 252,247,213,255,248,87,252,242,15,42,197,252,233,244,70,255,248,87,137,44, 358 252,247,213,255,248,88,252,242,15,42,197,252,233,244,71,255,248,88,137,44,
358 36,219,4,36,252,233,244,71,255,248,133,139,68,36,20,252,233,244,61,255,248, 359 36,219,4,36,252,233,244,72,255,248,134,139,68,36,20,252,233,244,62,255,248,
359 138,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248,2,129,122,253, 360 139,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,2,129,122,253,
360 12,239,15,133,244,61,139,74,8,255,248,138,129,252,248,239,15,130,244,61,129, 361 12,239,15,133,244,62,139,74,8,255,248,139,129,252,248,239,15,130,244,62,129,
361 122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242,15,16, 362 122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,15,16,
362 2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242, 363 2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,
363 15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,248,138,129, 364 15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,248,139,129,
364 252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122,253,12, 365 252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,
365 239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221, 366 239,15,131,244,62,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,
366 92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,229,252,233, 367 92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,229,252,233,
367 244,87,255,248,139,129,252,248,239,15,130,244,61,129,122,253,4,239,255,248, 368 244,88,255,248,140,129,252,248,239,15,130,244,62,129,122,253,4,239,255,248,
368 139,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122, 369 140,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,
369 253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67, 370 253,12,239,15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,
370 102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102, 371 102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,102,
371 15,126,197,102,15,126,201,255,248,139,129,252,248,239,15,130,244,61,129,122, 372 15,126,197,102,15,126,201,255,248,140,129,252,248,239,15,130,244,62,129,122,
372 253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,2,221,66,8,199, 373 253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,221,2,221,66,8,199,
373 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76, 374 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,
374 36,8,139,44,36,255,211,252,237,252,233,244,87,255,248,140,129,252,248,239, 375 36,8,139,44,36,255,211,252,237,252,233,244,88,255,248,141,129,252,248,239,
375 15,130,244,61,129,122,253,4,239,255,248,140,129,252,248,239,15,130,244,61, 376 15,130,244,62,129,122,253,4,239,255,248,141,129,252,248,239,15,130,244,62,
376 129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252,242, 377 129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,242,
377 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81, 378 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
378 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,248, 379 252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,248,
379 140,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129,122, 380 141,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,122,
380 253,12,239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36, 381 253,12,239,15,131,244,62,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,
381 16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,252,253, 382 16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,252,253,
382 252,233,244,87,255,248,141,129,252,248,239,15,130,244,61,129,122,253,4,239, 383 252,233,244,88,255,248,142,129,252,248,239,15,130,244,62,129,122,253,4,239,
383 255,248,141,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61, 384 255,248,142,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,
384 129,122,253,12,239,15,131,244,61,252,242,15,16,2,252,242,15,16,74,8,189,0, 385 129,122,253,12,239,15,131,244,62,252,242,15,16,2,252,242,15,16,74,8,189,0,
385 0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88, 386 0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,
386 202,102,15,126,197,102,15,126,201,255,248,141,129,252,248,239,15,130,244, 387 202,102,15,126,197,102,15,126,201,255,248,142,129,252,248,239,15,130,244,
387 61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,221,2, 388 62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,221,2,
388 221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221, 389 221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,
389 28,36,139,76,36,8,139,44,36,255,211,197,252,233,244,87,255,248,142,129,252, 390 28,36,139,76,36,8,139,44,36,255,211,197,252,233,244,88,255,248,143,129,252,
390 248,239,15,130,244,61,129,122,253,4,239,255,248,142,129,252,248,239,15,130, 391 248,239,15,130,244,62,129,122,253,4,239,255,248,143,129,252,248,239,15,130,
391 244,61,129,122,253,4,239,15,131,244,61,129,122,253,12,239,15,131,244,61,252, 392 244,62,129,122,253,4,239,15,131,244,62,129,122,253,12,239,15,131,244,62,252,
392 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 393 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
393 81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255, 394 81,252,242,15,88,194,252,242,15,88,202,102,15,126,197,102,15,126,201,255,
394 248,142,129,252,248,239,15,130,244,61,129,122,253,4,239,15,131,244,61,129, 395 248,143,129,252,248,239,15,130,244,62,129,122,253,4,239,15,131,244,62,129,
395 122,253,12,239,15,131,244,61,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68, 396 122,253,12,239,15,131,244,62,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,
396 36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,205, 397 36,16,221,92,36,8,216,68,36,16,221,28,36,139,76,36,8,139,44,36,255,211,205,
397 252,233,244,87,248,125,184,237,252,233,244,61,248,127,184,237,248,61,139, 398 252,233,244,88,248,126,184,237,252,233,244,62,248,128,184,237,248,62,139,
398 108,36,48,139,114,252,252,137,116,36,24,137,149,233,141,68,194,252,248,141, 399 108,36,48,139,114,252,252,137,116,36,24,137,149,233,141,68,194,252,248,141,
399 136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,44,36,252, 400 136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,44,36,252,
400 255,144,233,139,149,233,133,192,15,143,244,76,248,1,255,139,141,233,41,209, 401 255,144,233,139,149,233,133,192,15,143,244,77,248,1,255,139,141,233,41,209,
401 193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,32,139,181,233, 402 193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,32,139,181,233,
402 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,32,137,209, 403 139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,248,32,137,209,
403 252,247,198,237,15,133,244,249,15,182,110,252,253,252,247,213,141,20,252, 404 252,247,198,237,15,133,244,249,15,182,110,252,253,252,247,213,141,20,252,
404 234,252,233,244,28,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244, 405 234,252,233,244,28,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244,
405 28,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1, 406 28,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1,
406 248,73,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149,233,255,141,68, 407 248,74,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149,233,255,141,68,
407 194,252,248,137,252,233,137,133,233,232,251,1,21,139,149,233,139,133,233, 408 194,252,248,137,252,233,137,133,233,232,251,1,21,139,149,233,139,133,233,
408 41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,143,255,15,182,131,233, 409 41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,144,255,15,182,131,233,
409 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,252, 410 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,252,
410 255,139,233,252,233,244,247,255,248,144,15,182,131,233,168,235,15,133,244, 411 255,139,233,252,233,244,247,255,248,145,15,182,131,233,168,235,15,133,244,
411 251,252,233,244,247,248,145,15,182,131,233,168,235,15,133,244,251,168,235, 412 251,252,233,244,247,248,146,15,182,131,233,168,235,15,133,244,251,168,235,
412 15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,248, 413 15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,248,
413 1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,232,251,1,22,248, 414 1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,232,251,1,22,248,
414 3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183,70, 415 3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183,70,
415 252,254,252,255,164,253,171,233,248,146,131,198,4,139,77,232,137,76,36,20, 416 252,254,252,255,164,253,171,233,248,147,131,198,4,139,77,232,137,76,36,20,
416 252,233,244,4,248,147,255,139,106,252,248,139,173,233,15,182,133,233,141, 417 252,233,244,4,248,148,255,139,106,252,248,139,173,233,15,182,133,233,141,
417 4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137,171, 418 4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137,171,
418 233,137,116,36,24,232,251,1,23,252,233,244,3,255,248,148,137,116,36,24,255, 419 233,137,116,36,24,232,251,1,23,252,233,244,3,255,248,149,137,116,36,24,255,
419 248,149,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139,108, 420 248,150,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139,108,
420 36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,24,199,68, 421 36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,24,199,68,
421 36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233,41, 422 36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233,41,
422 208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,150,255, 423 208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,151,255,
423 85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125, 424 85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,
424 252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233, 425 252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,
425 137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208,252, 426 137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208,252,
@@ -427,31 +428,31 @@ static const unsigned char build_actionlist[17058] = {
427 85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,233, 428 85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,233,
428 137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233,232, 429 137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233,232,
429 251,1,25,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139,177, 430 251,1,25,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139,177,
430 233,255,248,151,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248,139, 431 233,255,248,152,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248,139,
431 191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204, 432 191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,
432 15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68,36, 433 15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68,36,
433 20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251,1,26, 434 20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251,1,26,
434 255,248,89,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37, 435 255,248,90,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,
435 252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139, 436 252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
436 68,36,8,195,255,248,152,102,15,252,239,210,102,15,118,210,102,15,115,210, 437 68,36,8,195,255,248,153,102,15,252,239,210,102,15,118,210,102,15,115,210,
437 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202, 438 1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,
438 102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92, 439 102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,
439 203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252, 440 203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,
440 242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248, 441 242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,
441 91,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255, 442 92,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,
442 252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8, 443 252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,
443 195,255,248,153,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0, 444 195,255,248,154,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,
444 0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46, 445 0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,
445 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 446 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
446 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15, 447 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,
447 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,112,255, 448 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,113,255,
448 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217, 449 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,
449 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,154,102,15,252, 450 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,155,102,15,252,
450 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102, 451 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,
451 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 452 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
452 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102, 453 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,
453 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15, 454 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,
454 92,200,102,15,86,202,15,40,193,248,1,195,248,155,255,15,40,232,252,242,15, 455 92,200,102,15,86,202,15,40,193,248,1,195,248,156,255,15,40,232,252,242,15,
455 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 456 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
456 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134, 457 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,
457 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184, 458 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,
@@ -460,10 +461,10 @@ static const unsigned char build_actionlist[17058] = {
460 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216, 461 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,
461 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102, 462 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
462 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195, 463 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,
463 255,248,96,217,252,234,222,201,248,156,217,84,36,4,129,124,36,4,0,0,128,127, 464 255,248,97,217,252,234,222,201,248,157,217,84,36,4,129,124,36,4,0,0,128,127,
464 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,157,217,192, 465 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,158,217,192,
465 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 466 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
466 217,248,1,195,248,2,221,216,217,252,238,195,255,248,115,219,84,36,4,219,68, 467 217,248,1,195,248,2,221,216,217,252,238,195,255,248,116,219,84,36,4,219,68,
467 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138, 468 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,
468 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0, 469 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,
469 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 470 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
@@ -472,14 +473,14 @@ static const unsigned char build_actionlist[17058] = {
472 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221, 473 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,
473 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224, 474 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,
474 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0, 475 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,
475 0,252,255,15,132,244,250,217,252,241,252,233,244,157,248,9,255,217,232,255, 476 0,252,255,15,132,244,250,217,252,241,252,233,244,158,248,9,255,217,232,255,
476 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1, 477 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,
477 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217, 478 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,
478 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201, 479 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,
479 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216, 480 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,
480 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217, 481 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,
481 68,36,4,195,255,248,115,255,248,158,252,242,15,45,193,252,242,15,42,208,102, 482 68,36,4,195,255,248,116,255,248,159,252,242,15,45,193,252,242,15,42,208,102,
482 15,46,202,15,133,244,254,15,138,244,255,248,159,131,252,248,1,15,142,244, 483 15,46,202,15,133,244,254,15,138,244,255,248,160,131,252,248,1,15,142,244,
483 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244, 484 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,
484 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232, 485 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,
485 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252, 486 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,
@@ -498,29 +499,29 @@ static const unsigned char build_actionlist[17058] = {
498 1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184, 499 1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,
499 0,0,252,240,127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80,193, 500 0,0,252,240,127,102,15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,
500 133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244, 501 133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,
501 3,255,15,87,192,195,248,160,255,139,68,36,12,252,242,15,16,68,36,4,131,252, 502 3,255,15,87,192,195,248,161,255,139,68,36,12,252,242,15,16,68,36,4,131,252,
502 248,1,15,132,244,247,15,135,244,248,232,244,89,252,233,244,253,248,1,232, 503 248,1,15,132,244,247,15,135,244,248,232,244,90,252,233,244,253,248,1,232,
503 244,91,252,233,244,253,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 504 244,92,252,233,244,253,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
504 232,244,112,255,252,233,244,253,248,1,252,242,15,81,192,248,7,252,242,15, 505 232,244,113,255,252,233,244,253,248,1,252,242,15,81,192,248,7,252,242,15,
505 17,68,36,4,221,68,36,4,195,248,2,221,68,36,4,131,252,248,5,15,130,244,96, 506 17,68,36,4,221,68,36,4,195,248,2,221,68,36,4,131,252,248,5,15,130,244,97,
506 15,132,244,156,248,2,131,252,248,7,15,132,244,247,15,135,244,248,217,252, 507 15,132,244,157,248,2,131,252,248,7,15,132,244,247,15,135,244,248,217,252,
507 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131, 508 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,
508 252,248,9,15,132,244,247,15,135,244,248,255,217,252,236,217,201,217,252,241, 509 252,248,9,15,132,244,247,15,135,244,248,255,217,252,236,217,201,217,252,241,
509 195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244, 510 195,248,1,217,252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,
510 255,217,252,255,195,248,1,217,252,242,221,216,195,255,139,68,36,12,221,68, 511 255,217,252,255,195,248,1,217,252,242,221,216,195,255,139,68,36,12,221,68,
511 36,4,131,252,248,1,15,130,244,89,15,132,244,91,131,252,248,3,15,130,244,112, 512 36,4,131,252,248,1,15,130,244,90,15,132,244,92,131,252,248,3,15,130,244,113,
512 15,135,244,248,217,252,250,195,248,2,131,252,248,5,15,130,244,96,15,132,244, 513 15,135,244,248,217,252,250,195,248,2,131,252,248,5,15,130,244,97,15,132,244,
513 156,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252, 514 157,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
514 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132, 515 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,
515 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, 516 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
516 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255, 517 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,
517 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,161,255,139,68,36, 518 195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,162,255,139,68,36,
518 20,252,242,15,16,68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244, 519 20,252,242,15,16,68,36,4,252,242,15,16,76,36,12,131,252,248,1,15,132,244,
519 247,15,135,244,248,252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36, 520 247,15,135,244,248,252,242,15,88,193,248,7,252,242,15,17,68,36,4,221,68,36,
520 4,195,248,1,252,242,15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244, 521 4,195,248,1,252,242,15,92,193,252,233,244,7,248,2,131,252,248,3,15,132,244,
521 247,15,135,244,248,252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193, 522 247,15,135,244,248,252,242,15,89,193,252,233,244,7,248,1,252,242,15,94,193,
522 252,233,244,7,248,2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244, 523 252,233,244,7,248,2,131,252,248,5,15,132,244,247,255,15,135,244,248,232,244,
523 155,252,233,244,7,248,1,90,232,244,115,82,252,233,244,7,248,2,131,252,248, 524 156,252,233,244,7,248,1,90,232,244,116,82,252,233,244,7,248,2,131,252,248,
524 7,15,132,244,247,15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201, 525 7,15,132,244,247,15,135,244,248,184,0,0,0,128,102,15,110,200,102,15,112,201,
525 81,15,87,193,252,233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15, 526 81,15,87,193,252,233,244,7,248,1,102,15,252,239,201,102,15,118,201,102,15,
526 115,209,1,15,84,193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248, 527 115,209,1,15,84,193,252,233,244,7,248,2,255,131,252,248,9,15,135,244,248,
@@ -530,21 +531,21 @@ static const unsigned char build_actionlist[17058] = {
530 255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15, 531 255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,
531 135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132, 532 135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,
532 244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248, 533 244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,
533 5,15,130,244,155,15,132,244,115,131,252,248,7,15,132,244,247,15,135,244,248, 534 5,15,130,244,156,15,132,244,116,131,252,248,7,15,132,244,247,15,135,244,248,
534 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, 535 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,
535 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, 536 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,
536 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, 537 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,
537 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, 538 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,
538 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, 539 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,
539 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,162, 540 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,163,
540 156,90,137,209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244, 541 156,90,137,209,129,252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,
541 247,139,68,36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87, 542 247,139,68,36,4,87,83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,
542 12,91,95,248,1,195,248,163,255,85,137,229,83,137,203,43,163,233,255,137,163, 543 12,91,95,248,1,195,248,164,255,85,137,229,83,137,203,43,163,233,255,137,163,
543 233,255,15,182,139,233,131,252,233,1,15,136,244,248,248,1,139,132,253,139, 544 233,255,15,182,139,233,131,252,233,1,15,136,244,248,248,1,139,132,253,139,
544 233,137,4,140,131,252,233,1,15,137,244,1,248,2,139,139,233,139,147,233,252, 545 233,137,4,140,131,252,233,1,15,137,244,1,248,2,139,139,233,139,147,233,252,
545 255,147,233,137,131,233,137,147,233,128,187,233,1,15,130,244,253,15,132,244, 546 255,147,233,137,131,233,137,147,233,128,187,233,1,15,130,244,253,15,132,244,
546 252,221,155,233,252,233,244,253,248,6,255,217,155,233,248,7,255,41,163,233, 547 252,221,155,233,252,233,244,253,248,6,255,217,155,233,248,7,255,41,163,233,
547 255,139,93,252,252,201,195,255,248,164,255,249,255,129,124,253,202,4,239, 548 255,139,93,252,252,201,195,255,248,165,255,249,255,129,124,253,202,4,239,
548 15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,198,4, 549 15,133,244,253,129,124,253,194,4,239,15,133,244,254,139,44,202,131,198,4,
549 59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244,255,255,15, 550 59,44,194,255,15,141,244,255,255,15,140,244,255,255,15,143,244,255,255,15,
550 142,244,255,255,248,6,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15, 551 142,244,255,255,248,6,15,183,70,252,254,141,180,253,134,233,248,9,139,6,15,
@@ -604,238 +605,239 @@ static const unsigned char build_actionlist[17058] = {
604 137,4,202,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255, 605 137,4,202,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,
605 219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193, 606 219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,
606 232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194, 607 232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,56,139,12,194,
607 137,213,232,251,1,20,255,252,242,15,42,192,255,137,4,36,219,4,36,255,137, 608 255,139,169,233,131,252,253,0,15,133,244,255,248,3,255,248,57,137,213,232,
608 252,234,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, 609 251,1,20,255,252,242,15,42,192,255,137,4,36,219,4,36,255,137,252,234,15,182,
609 129,124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244, 610 78,252,253,252,233,244,1,255,248,9,252,246,133,233,235,15,133,244,3,252,233,
610 50,139,44,252,234,3,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15, 611 244,56,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,133,
611 133,244,52,129,124,253,199,4,239,15,133,244,52,139,4,199,3,4,252,234,15,128, 612 244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,234,3,44,199,15,128,
613 244,49,255,129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,
614 15,133,244,52,139,4,199,3,4,252,234,15,128,244,51,255,129,124,253,252,234,
615 4,239,15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,3,
616 44,194,15,128,244,54,255,199,68,202,4,237,255,129,124,253,252,234,4,239,15,
617 131,244,50,255,129,124,253,199,4,239,15,131,244,50,255,252,242,15,16,4,252,
618 234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,
619 4,239,15,131,244,52,255,129,124,253,199,4,239,15,131,244,52,255,252,242,15,
620 16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
621 253,252,234,4,239,15,131,244,55,129,124,253,194,4,239,15,131,244,55,255,252,
622 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,129,
623 124,253,252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,
624 44,252,234,43,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,
625 52,129,124,253,199,4,239,15,133,244,52,139,4,199,43,4,252,234,15,128,244,
626 51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,15,133,
627 244,55,139,44,252,234,43,44,194,15,128,244,54,255,252,242,15,16,4,252,234,
628 252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,
629 252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,
630 252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,129,124,253,
631 252,234,4,239,15,133,244,50,129,124,253,199,4,239,15,133,244,50,139,44,252,
632 234,15,175,44,199,15,128,244,49,255,129,124,253,252,234,4,239,15,133,244,
633 52,129,124,253,199,4,239,15,133,244,52,139,4,199,15,175,4,252,234,15,128,
612 244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239, 634 244,51,255,129,124,253,252,234,4,239,15,133,244,55,129,124,253,194,4,239,
613 15,133,244,55,139,44,252,234,3,44,194,15,128,244,54,255,199,68,202,4,237, 635 15,133,244,55,139,44,252,234,15,175,44,194,15,128,244,54,255,252,242,15,16,
614 255,129,124,253,252,234,4,239,15,131,244,50,255,129,124,253,199,4,239,15, 636 4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,
615 131,244,50,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252, 637 16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,
616 234,220,4,199,255,129,124,253,252,234,4,239,15,131,244,52,255,129,124,253, 638 15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,
617 199,4,239,15,131,244,52,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255, 639 242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,
618 221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,131,244,55,129,124, 640 252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,
619 253,194,4,239,15,131,244,55,255,252,242,15,16,4,252,234,252,242,15,88,4,194, 641 255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,
620 255,221,4,252,234,220,4,194,255,129,124,253,252,234,4,239,15,133,244,50,129, 642 194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,
621 124,253,199,4,239,15,133,244,50,139,44,252,234,43,44,199,15,128,244,49,255, 643 4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,
622 129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,15,133,244, 644 4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,
623 52,139,4,199,43,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239,15, 645 234,221,4,194,255,248,166,232,244,156,255,252,233,244,166,255,232,244,116,
624 133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,43,44,194,15, 646 255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,
625 128,244,54,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252, 647 35,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,27,139,149,
626 234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4, 648 233,133,192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,139,68,252,
627 199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221, 649 234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,
628 4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,133,244,50,129,124, 650 131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,202,
629 253,199,4,239,15,133,244,50,139,44,252,234,15,175,44,199,15,128,244,49,255, 651 4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
630 129,124,253,252,234,4,239,15,133,244,52,129,124,253,199,4,239,15,133,244, 652 36,171,255,15,191,192,199,68,202,4,237,137,4,202,255,15,191,192,252,242,15,
631 52,139,4,199,15,175,4,252,234,15,128,244,51,255,129,124,253,252,234,4,239, 653 42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,
632 15,133,244,55,129,124,253,194,4,239,15,133,244,55,139,44,252,234,15,175,44, 654 4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,
633 194,15,128,244,54,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221, 655 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
634 4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255, 656 141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,
635 221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194, 657 57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
636 255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4, 658 255,36,171,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,
637 199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4, 659 109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
638 252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242, 660 16,252,255,36,171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,
639 15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252, 661 173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,
640 242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252, 662 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
641 242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252, 663 232,16,252,255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,
642 234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,165,232,244, 664 246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,28,137,252,
643 155,255,252,233,244,165,255,232,244,115,255,15,182,252,236,15,182,192,141, 665 234,252,233,244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,
644 12,194,41,232,137,76,36,4,137,68,36,8,248,35,139,108,36,48,137,44,36,137, 666 12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,
645 149,233,137,116,36,24,232,251,1,27,139,149,233,133,192,15,133,244,44,15,182, 667 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
646 110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202, 668 2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,
647 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 669 194,141,139,233,232,251,1,28,137,252,234,252,233,244,1,255,139,106,252,248,
648 171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204, 670 255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,
649 15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,191,192,199,68,202, 671 17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,
650 4,237,137,4,202,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255, 672 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
651 223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255, 673 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,
652 221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182, 674 149,233,141,20,202,137,252,233,232,251,1,29,139,149,233,248,1,139,6,15,182,
653 232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189, 675 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,
654 237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182, 676 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,
655 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139, 677 233,137,116,36,24,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,
656 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139, 678 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
657 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252, 679 171,255,139,108,36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,
658 248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4, 680 131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,
659 137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1, 681 252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,31,139,
660 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129, 682 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,
661 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135, 683 182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,
662 213,141,139,233,255,232,251,1,28,137,252,234,252,233,244,1,255,252,247,208, 684 2,248,5,137,252,233,232,251,1,32,15,183,70,252,254,252,233,244,1,255,252,
663 139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4, 685 247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,15,
664 237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232, 686 131,244,249,248,2,139,20,135,137,252,233,232,251,1,33,139,149,233,15,182,
665 131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244, 687 78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,
666 1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,28,137, 688 4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,32,15,183,70,252,
667 252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139, 689 254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,139,173,233,
668 172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208, 690 139,4,135,252,233,244,167,255,252,247,208,139,106,252,248,139,173,233,139,
669 139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204, 691 4,135,252,233,244,168,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
670 15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139, 692 239,15,133,244,38,139,44,252,234,255,129,124,253,194,4,239,15,133,244,251,
671 108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233, 693 139,4,194,255,129,124,253,194,4,239,15,131,244,251,255,252,242,15,16,4,194,
672 232,251,1,29,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193, 694 252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,
673 232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36, 695 219,4,36,255,15,133,244,38,255,59,133,233,15,131,244,38,193,224,3,3,133,233,
674 48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1, 696 129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,
675 30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182, 697 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
676 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,36,48,137, 698 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,
677 149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,1,137,193, 699 38,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,248,5,255,129,124,
678 37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,132,244,249, 700 253,194,4,239,15,133,244,38,139,4,194,252,233,244,167,255,15,182,252,236,
679 248,2,137,44,36,137,68,36,4,232,251,1,31,139,149,233,15,182,78,252,253,137, 701 15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,36,
680 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 702 139,44,252,234,248,167,139,141,233,35,136,233,105,201,239,3,141,233,248,1,
681 255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,32, 703 129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,
682 15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233, 704 15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4,
683 137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137, 705 248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
684 252,233,232,251,1,33,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4, 706 248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,
685 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3, 707 133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,
686 137,252,233,232,251,1,32,15,183,70,252,254,252,247,208,252,233,244,2,255, 708 235,15,133,244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124,253,
687 252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,166,255,252, 709 252,234,4,239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,224,
688 247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,167,255,15,182, 710 3,3,133,233,129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,
689 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234, 711 68,202,4,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
690 255,129,124,253,194,4,239,15,133,244,251,139,4,194,255,129,124,253,194,4, 712 171,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,
691 239,15,131,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42, 713 132,244,37,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,
692 200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,38,255, 714 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,139,44,
693 59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244, 715 252,234,255,15,133,244,41,255,59,133,233,15,131,244,41,193,224,3,3,133,233,
694 248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15,182, 716 129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,
695 232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,249, 717 248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,
696 139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,248,3,199, 718 131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,
697 68,202,4,237,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38, 719 141,233,252,246,129,233,235,255,15,132,244,41,15,182,78,252,253,252,233,244,
698 139,4,194,252,233,244,166,255,15,182,252,236,15,182,192,252,247,208,139,4, 720 1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,244,168,248,
699 135,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,166,139,141, 721 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,
700 233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250, 722 233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,
701 57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252, 723 252,234,4,239,15,133,244,39,139,44,252,234,248,168,139,141,233,35,136,233,
702 253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139,6,15,182,204,15, 724 105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,
703 182,232,131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,199,68, 725 57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,
704 194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139, 726 246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,
705 141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244, 727 4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
706 36,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,37, 728 255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,
707 139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4, 729 246,129,233,235,15,132,244,39,139,76,36,16,252,233,244,2,248,5,139,137,233,
708 239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15, 730 133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,
709 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233, 731 235,15,132,244,39,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,
710 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,37,255,15,182, 732 36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,
711 78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182, 733 36,24,232,251,1,34,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,
712 192,129,124,253,252,234,4,239,15,133,244,41,139,44,252,234,255,15,133,244, 734 128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
713 41,255,59,133,233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15, 735 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252,
714 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4, 736 234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132,
715 139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232, 737 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
716 16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 738 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
717 233,235,255,15,132,244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253, 739 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
718 194,4,239,15,133,244,41,139,4,194,252,233,244,167,248,7,128,165,233,235,139, 740 235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
719 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182, 741 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
720 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 742 36,16,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,
721 244,39,139,44,252,234,248,167,139,141,233,35,136,233,105,201,239,198,133, 743 133,244,253,248,2,139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,
722 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244, 744 233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,
723 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133, 745 105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,
724 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139, 746 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
725 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189, 747 5,137,108,36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,
726 233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244, 748 24,232,251,1,35,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,
727 39,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255, 749 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,
728 139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,39,248, 750 20,255,129,124,253,202,4,239,139,44,202,15,133,244,58,141,84,202,8,137,114,
729 6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139, 751 252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,
730 108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,34,139, 752 171,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
731 149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131, 753 244,29,248,59,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,
732 233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129, 754 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,
733 124,253,252,234,4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244, 755 4,131,193,8,137,111,4,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,
734 40,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133, 756 3,139,68,36,20,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,
735 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139, 757 252,233,15,182,205,131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,
736 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189, 758 133,244,4,15,182,78,252,253,252,247,209,141,12,202,139,121,252,248,139,191,
737 233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,40,15,182, 759 233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,
738 78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137, 760 244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,
739 141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,139,60,199,248, 761 252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,
740 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139, 762 139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,
741 68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,135,244,251,41, 763 137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,29,137,
742 252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111, 764 202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
743 4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15, 765 4,252,255,36,171,255,137,124,36,16,137,92,36,20,139,108,202,252,240,139,68,
744 182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36, 766 202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,15,131,244,251,
745 48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,35,139,149,233, 767 129,124,253,199,4,239,15,132,244,250,255,219,68,202,252,248,255,139,108,199,
746 15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137, 768 4,137,108,202,12,139,44,199,137,108,202,8,131,192,1,255,137,68,202,252,248,
747 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239, 769 248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,20,139,124,36,
748 139,44,202,15,133,244,57,141,84,202,8,137,114,252,252,139,181,233,139,14, 770 16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,
749 15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215, 771 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,41,216,248,6,59,
750 139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,58,139,114,252, 772 133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,239,15,132,244,
751 252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131, 773 253,141,92,24,1,139,175,233,139,135,233,137,44,202,137,68,202,4,139,175,233,
752 232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,131,193,8,137,111,4,131, 774 139,135,233,137,108,202,8,137,68,202,12,137,92,202,252,248,252,233,244,2,
753 199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233, 775 248,7,255,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,
754 1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 776 244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,
755 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253, 777 253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180,
756 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244, 778 253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,
757 4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,137,215, 779 131,198,4,193,232,16,252,255,36,171,248,5,198,70,252,252,235,141,180,253,
758 139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,141,76, 780 134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36,
759 202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252, 781 16,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251,
760 244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252, 782 141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,
761 252,129,252,248,239,184,237,15,133,244,29,137,202,137,114,252,252,139,181, 783 139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,
762 233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,137,124, 784 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,
763 36,16,137,92,36,20,139,108,202,252,240,139,68,202,252,248,139,157,233,131, 785 3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
764 198,4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132, 786 36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,
765 244,250,255,219,68,202,252,248,255,139,108,199,4,137,108,202,12,139,44,199, 787 193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,
766 137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141, 788 244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,
767 180,253,134,233,248,3,139,92,36,20,139,124,36,16,139,6,15,182,204,15,182, 789 131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,
768 232,131,198,4,193,232,16,252,255,36,171,248,4,131,192,1,255,137,68,202,252, 790 137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,
769 248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252, 791 149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,
770 248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,139,175,233, 792 252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,
771 139,135,233,137,44,202,137,68,202,4,139,175,233,139,135,233,137,108,202,8, 793 1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,
772 137,68,202,12,137,92,202,252,248,252,233,244,2,248,7,255,131,192,1,252,233, 794 252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,
773 244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129, 795 248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,
774 124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133, 796 106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,
775 244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252, 797 252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,
776 248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 798 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,
777 36,171,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233,244, 799 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,
778 1,255,15,182,252,236,15,182,192,137,124,36,16,141,188,253,194,233,141,12, 800 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,
779 202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57, 801 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,148,
780 215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137, 802 255,141,12,202,255,129,121,253,4,239,15,133,244,255,255,129,121,253,12,239,
781 65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65, 803 15,133,244,60,129,121,253,20,239,15,133,244,60,139,41,131,121,16,0,15,140,
782 4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182, 804 244,251,255,129,121,253,12,239,15,133,244,165,129,121,253,20,239,15,133,244,
783 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0, 805 165,255,139,105,16,133,252,237,15,136,244,251,3,41,15,128,244,247,137,41,
784 0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108, 806 255,59,105,8,199,65,28,237,137,105,24,255,15,142,244,253,248,1,248,6,141,
785 36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255,139,71,252, 807 180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,142,245,248,
786 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6, 808 1,248,6,255,15,143,244,253,248,6,141,180,253,134,233,248,1,255,248,7,139,
787 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,139,84,36, 809 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,255,3,41,
788 20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252, 810 15,128,244,1,137,41,255,15,141,244,7,255,141,180,253,134,233,15,183,70,252,
789 233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198, 811 254,15,141,245,255,15,140,244,7,255,252,233,244,6,248,9,255,129,121,253,4,
790 237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139, 812 239,255,15,131,244,60,129,121,253,12,239,15,131,244,60,255,129,121,253,12,
791 44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15, 813 239,15,131,244,165,129,121,253,20,239,15,131,244,165,255,139,105,20,255,129,
792 133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252, 814 252,253,239,15,131,244,60,255,252,242,15,16,1,252,242,15,16,73,8,255,252,
793 255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70, 815 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,
794 252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122, 816 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,
795 252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193, 817 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,
796 232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194, 818 247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,7,255,15,131,244,
797 252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237, 819 248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,
798 15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229, 820 245,255,15,130,244,7,255,15,130,244,248,141,180,253,134,233,255,248,3,102,
799 239,102,131,172,253,43,233,1,15,132,244,147,255,141,12,202,255,129,121,253, 821 15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,
800 4,239,15,133,244,255,255,129,121,253,12,239,15,133,244,59,129,121,253,20, 822 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,
801 239,15,133,244,59,139,41,131,121,16,0,15,140,244,251,255,129,121,253,12,239, 823 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,
802 15,133,244,164,129,121,253,20,239,15,133,244,164,255,139,105,16,133,252,237, 824 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,
803 15,136,244,251,3,41,15,128,244,247,137,41,255,59,105,8,199,65,28,237,137, 825 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
804 105,24,255,15,142,244,253,248,1,248,6,141,180,253,134,233,255,141,180,253, 826 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,150,
805 134,233,15,183,70,252,254,15,142,245,248,1,248,6,255,15,143,244,253,248,6, 827 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,24,15,182,
806 141,180,253,134,233,248,1,255,248,7,139,6,15,182,204,15,182,232,131,198,4, 828 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,
807 193,232,16,252,255,36,171,248,5,255,3,41,15,128,244,1,137,41,255,15,141,244, 829 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
808 7,255,141,180,253,134,233,15,183,70,252,254,15,141,245,255,15,140,244,7,255, 830 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
809 252,233,244,6,248,9,255,129,121,253,4,239,255,15,131,244,59,129,121,253,12, 831 248,139,108,36,48,141,12,200,59,141,233,15,135,244,23,137,209,137,194,15,
810 239,15,131,244,59,255,129,121,253,12,239,15,131,244,164,129,121,253,20,239, 832 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
811 15,131,244,164,255,139,105,20,255,129,252,253,239,15,131,244,59,255,252,242, 833 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
812 15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252, 834 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
813 237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15, 835 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131,
814 17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15, 836 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139,189,
815 136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70, 837 233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,
816 252,254,255,15,131,244,7,255,15,131,244,248,141,180,253,134,233,255,141,180, 838 133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,22,199,131,
817 253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,7,255,15,130,244, 839 233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,
818 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12, 840 141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
819 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,
820 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137,
821 65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48,137,147,233,
822 137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232,
823 131,198,4,193,232,16,252,255,36,171,255,137,252,245,209,252,237,129,229,239,
824 102,131,172,253,43,233,1,15,132,244,149,255,139,190,233,139,108,36,48,141,
825 12,202,59,141,233,15,135,244,24,15,182,142,233,57,200,15,134,244,249,248,
826 2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,
827 192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,
828 122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12,200,59,141,
829 233,15,135,244,23,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,
830 248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,
831 252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,
832 2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
833 36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,
834 244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194,252,248,137,
835 149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255,137,124,36,4,
836 137,44,36,255,15,135,244,22,199,131,233,237,255,252,255,215,255,252,255,147,
837 233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,
838 114,252,252,252,233,244,12,255,254,0
839}; 841};
840 842
841enum { 843enum {
@@ -886,6 +888,7 @@ enum {
886 GLOB_vmeta_arith_vvo, 888 GLOB_vmeta_arith_vvo,
887 GLOB_vmeta_arith_vv, 889 GLOB_vmeta_arith_vv,
888 GLOB_vmeta_len, 890 GLOB_vmeta_len,
891 GLOB_BC_LEN_Z,
889 GLOB_vmeta_call_ra, 892 GLOB_vmeta_call_ra,
890 GLOB_BC_CALLT_Z, 893 GLOB_BC_CALLT_Z,
891 GLOB_vmeta_for, 894 GLOB_vmeta_for,
@@ -1047,6 +1050,7 @@ static const char *const globnames[] = {
1047 "vmeta_arith_vvo", 1050 "vmeta_arith_vvo",
1048 "vmeta_arith_vv", 1051 "vmeta_arith_vv",
1049 "vmeta_len", 1052 "vmeta_len",
1053 "BC_LEN_Z",
1050 "vmeta_call_ra", 1054 "vmeta_call_ra",
1051 "BC_CALLT_Z", 1055 "BC_CALLT_Z",
1052 "vmeta_for", 1056 "vmeta_for",
@@ -1264,730 +1268,735 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1264#if LJ_DUALNUM 1268#if LJ_DUALNUM
1265 dasm_put(Dst, 1442); 1269 dasm_put(Dst, 1442);
1266#endif 1270#endif
1267 dasm_put(Dst, 1488, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base), Dt1(->base)); 1271 dasm_put(Dst, 1488, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1, Dt1(->base), Dt1(->base));
1268 dasm_put(Dst, 1643, Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND); 1272#ifdef LUAJIT_ENABLE_LUA52COMPAT
1269 dasm_put(Dst, 1820, 1+1, ~LJ_TNUMX); 1273 dasm_put(Dst, 1598);
1274#else
1275 dasm_put(Dst, 1617);
1276#endif
1277 dasm_put(Dst, 1622, Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND);
1278 dasm_put(Dst, 1811, 1+1, ~LJ_TNUMX);
1270 if (cmov) { 1279 if (cmov) {
1271 dasm_put(Dst, 1849); 1280 dasm_put(Dst, 1869);
1272 } else { 1281 } else {
1273 dasm_put(Dst, 1853); 1282 dasm_put(Dst, 1873);
1274 } 1283 }
1275 dasm_put(Dst, 1862, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB); 1284 dasm_put(Dst, 1882, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB);
1276 dasm_put(Dst, 1945, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1285 dasm_put(Dst, 1965, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1277 dasm_put(Dst, 2003, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1); 1286 dasm_put(Dst, 2023, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1);
1278 dasm_put(Dst, 2066, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1287 dasm_put(Dst, 2086, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1279 dasm_put(Dst, 2138, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1288 dasm_put(Dst, 2158, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1280 if (LJ_DUALNUM) { 1289 if (LJ_DUALNUM) {
1281 dasm_put(Dst, 2227); 1290 dasm_put(Dst, 2247);
1282 } else { 1291 } else {
1283 dasm_put(Dst, 2244); 1292 dasm_put(Dst, 2264);
1284 } 1293 }
1285 if (sse) { 1294 if (sse) {
1286 dasm_put(Dst, 2249); 1295 dasm_put(Dst, 2269);
1287 } else { 1296 } else {
1288 dasm_put(Dst, 2259); 1297 dasm_put(Dst, 2279);
1289 } 1298 }
1290 dasm_put(Dst, 2266, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1299 dasm_put(Dst, 2286, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1291 dasm_put(Dst, 2332, Dt1(->base)); 1300 dasm_put(Dst, 2352, Dt1(->base));
1292 if (LJ_DUALNUM) { 1301 if (LJ_DUALNUM) {
1293 dasm_put(Dst, 2356); 1302 dasm_put(Dst, 2376);
1294 } else { 1303 } else {
1295 dasm_put(Dst, 2361); 1304 dasm_put(Dst, 2381);
1296 } 1305 }
1297 dasm_put(Dst, 2366, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2); 1306 dasm_put(Dst, 2386, Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->top), Dt1(->base), 1+2);
1298 dasm_put(Dst, 2475, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1307 dasm_put(Dst, 2495, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1299#ifdef LUAJIT_ENABLE_LUA52COMPAT 1308#ifdef LUAJIT_ENABLE_LUA52COMPAT
1300 dasm_put(Dst, 2522, Dt6(->metatable)); 1309 dasm_put(Dst, 2542, Dt6(->metatable));
1301#endif 1310#endif
1302 dasm_put(Dst, 2531, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1311 dasm_put(Dst, 2551, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1303 if (LJ_DUALNUM) { 1312 if (LJ_DUALNUM) {
1304 dasm_put(Dst, 2517); 1313 dasm_put(Dst, 2537);
1305 } else { 1314 } else {
1306 dasm_put(Dst, 2244); 1315 dasm_put(Dst, 2264);
1307 } 1316 }
1308 dasm_put(Dst, 2586); 1317 dasm_put(Dst, 2606);
1309 if (LJ_DUALNUM) { 1318 if (LJ_DUALNUM) {
1310 dasm_put(Dst, 2591, LJ_TISNUM); 1319 dasm_put(Dst, 2611, LJ_TISNUM);
1311 } else if (sse) { 1320 } else if (sse) {
1312 dasm_put(Dst, 2607); 1321 dasm_put(Dst, 2627);
1313 } else { 1322 } else {
1314 dasm_put(Dst, 2646); 1323 dasm_put(Dst, 2666);
1315 } 1324 }
1316 dasm_put(Dst, 2664, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1325 dasm_put(Dst, 2684, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1317 dasm_put(Dst, 2502, 1+1, LJ_TTAB); 1326 dasm_put(Dst, 2522, 1+1, LJ_TTAB);
1318#ifdef LUAJIT_ENABLE_LUA52COMPAT 1327#ifdef LUAJIT_ENABLE_LUA52COMPAT
1319 dasm_put(Dst, 2522, Dt6(->metatable)); 1328 dasm_put(Dst, 2542, Dt6(->metatable));
1320#endif 1329#endif
1321 dasm_put(Dst, 2745, Dt8(->upvalue[0]), LJ_TFUNC); 1330 dasm_put(Dst, 2765, Dt8(->upvalue[0]), LJ_TFUNC);
1322 if (LJ_DUALNUM) { 1331 if (LJ_DUALNUM) {
1323 dasm_put(Dst, 2766, LJ_TISNUM); 1332 dasm_put(Dst, 2786, LJ_TISNUM);
1324 } else if (sse) { 1333 } else if (sse) {
1325 dasm_put(Dst, 2778); 1334 dasm_put(Dst, 2798);
1326 } else { 1335 } else {
1327 dasm_put(Dst, 2788); 1336 dasm_put(Dst, 2808);
1328 } 1337 }
1329 dasm_put(Dst, 2795, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1338 dasm_put(Dst, 2815, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1330 dasm_put(Dst, 2859, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1339 dasm_put(Dst, 2879, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1331 dasm_put(Dst, 2947, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1340 dasm_put(Dst, 2967, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1332 dasm_put(Dst, 3048, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1341 dasm_put(Dst, 3068, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1333 dasm_put(Dst, 3162, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1342 dasm_put(Dst, 3182, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1334 dasm_put(Dst, 3260, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1343 dasm_put(Dst, 3280, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1335 dasm_put(Dst, 3326, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1344 dasm_put(Dst, 3346, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1336 dasm_put(Dst, 3427, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1345 dasm_put(Dst, 3447, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1337 dasm_put(Dst, 3540, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1346 dasm_put(Dst, 3560, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1338 if (!LJ_DUALNUM) { 1347 if (!LJ_DUALNUM) {
1339 dasm_put(Dst, 3566); 1348 dasm_put(Dst, 3586);
1340 } 1349 }
1341 if (sse) { 1350 if (sse) {
1342 dasm_put(Dst, 3569); 1351 dasm_put(Dst, 3589);
1343 } 1352 }
1344 dasm_put(Dst, 3584, 1+1); 1353 dasm_put(Dst, 3604, 1+1);
1345 if (LJ_DUALNUM) { 1354 if (LJ_DUALNUM) {
1346 dasm_put(Dst, 3595, LJ_TISNUM, LJ_TISNUM); 1355 dasm_put(Dst, 3615, LJ_TISNUM, LJ_TISNUM);
1347 } else { 1356 } else {
1348 dasm_put(Dst, 3675, LJ_TISNUM); 1357 dasm_put(Dst, 3695, LJ_TISNUM);
1349 } 1358 }
1350 if (sse) { 1359 if (sse) {
1351 dasm_put(Dst, 3685); 1360 dasm_put(Dst, 3705);
1352 } else { 1361 } else {
1353 dasm_put(Dst, 3721); 1362 dasm_put(Dst, 3741);
1354 } 1363 }
1355 dasm_put(Dst, 3738, 1+1, FRAME_TYPE, LJ_TNIL); 1364 dasm_put(Dst, 3758, 1+1, FRAME_TYPE, LJ_TNIL);
1356 if (LJ_DUALNUM) { 1365 if (LJ_DUALNUM) {
1357 dasm_put(Dst, 3830, LJ_TISNUM); 1366 dasm_put(Dst, 3850, LJ_TISNUM);
1358 } else { 1367 } else {
1359 dasm_put(Dst, 3675, LJ_TISNUM); 1368 dasm_put(Dst, 3695, LJ_TISNUM);
1360 } 1369 }
1361 if (sse) { 1370 if (sse) {
1362 dasm_put(Dst, 3852); 1371 dasm_put(Dst, 3872);
1363 if (LJ_DUALNUM) { 1372 if (LJ_DUALNUM) {
1364 dasm_put(Dst, 3861); 1373 dasm_put(Dst, 3881);
1365 } 1374 }
1366 dasm_put(Dst, 2254); 1375 dasm_put(Dst, 2274);
1367 } else { 1376 } else {
1368 dasm_put(Dst, 3895); 1377 dasm_put(Dst, 3915);
1369 if (LJ_DUALNUM) { 1378 if (LJ_DUALNUM) {
1370 dasm_put(Dst, 3901); 1379 dasm_put(Dst, 3921);
1371 if (cmov) { 1380 if (cmov) {
1372 dasm_put(Dst, 3924); 1381 dasm_put(Dst, 3944);
1373 } else { 1382 } else {
1374 dasm_put(Dst, 3930); 1383 dasm_put(Dst, 3950);
1375 } 1384 }
1376 dasm_put(Dst, 3937); 1385 dasm_put(Dst, 3957);
1377 } else { 1386 } else {
1378 dasm_put(Dst, 2261); 1387 dasm_put(Dst, 2281);
1379 } 1388 }
1380 } 1389 }
1381 dasm_put(Dst, 3954); 1390 dasm_put(Dst, 3974);
1382 if (LJ_DUALNUM) { 1391 if (LJ_DUALNUM) {
1383 dasm_put(Dst, 3830, LJ_TISNUM); 1392 dasm_put(Dst, 3850, LJ_TISNUM);
1384 } else { 1393 } else {
1385 dasm_put(Dst, 3675, LJ_TISNUM); 1394 dasm_put(Dst, 3695, LJ_TISNUM);
1386 } 1395 }
1387 if (sse) { 1396 if (sse) {
1388 dasm_put(Dst, 3957); 1397 dasm_put(Dst, 3977);
1389 if (LJ_DUALNUM) { 1398 if (LJ_DUALNUM) {
1390 dasm_put(Dst, 3861); 1399 dasm_put(Dst, 3881);
1391 } 1400 }
1392 dasm_put(Dst, 2254); 1401 dasm_put(Dst, 2274);
1393 } else { 1402 } else {
1394 dasm_put(Dst, 3966); 1403 dasm_put(Dst, 3986);
1395 if (LJ_DUALNUM) { 1404 if (LJ_DUALNUM) {
1396 dasm_put(Dst, 3901); 1405 dasm_put(Dst, 3921);
1397 if (cmov) { 1406 if (cmov) {
1398 dasm_put(Dst, 3924); 1407 dasm_put(Dst, 3944);
1399 } else { 1408 } else {
1400 dasm_put(Dst, 3930); 1409 dasm_put(Dst, 3950);
1401 } 1410 }
1402 dasm_put(Dst, 3937); 1411 dasm_put(Dst, 3957);
1403 } else { 1412 } else {
1404 dasm_put(Dst, 2261); 1413 dasm_put(Dst, 2281);
1405 } 1414 }
1406 } 1415 }
1407 if (sse) { 1416 if (sse) {
1408 dasm_put(Dst, 3972, 1+1, LJ_TISNUM); 1417 dasm_put(Dst, 3992, 1+1, LJ_TISNUM);
1409 } else { 1418 } else {
1410 dasm_put(Dst, 4001, 1+1, LJ_TISNUM); 1419 dasm_put(Dst, 4021, 1+1, LJ_TISNUM);
1411 } 1420 }
1412 dasm_put(Dst, 4030, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1421 dasm_put(Dst, 4050, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1413 dasm_put(Dst, 4099, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1422 dasm_put(Dst, 4119, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1414 dasm_put(Dst, 4156, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1423 dasm_put(Dst, 4176, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1415 dasm_put(Dst, 4219, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1424 dasm_put(Dst, 4239, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1416 dasm_put(Dst, 4309); 1425 dasm_put(Dst, 4329);
1417 if (sse) { 1426 if (sse) {
1418 dasm_put(Dst, 4321, 1+1, LJ_TISNUM); 1427 dasm_put(Dst, 4341, 1+1, LJ_TISNUM);
1419 } else { 1428 } else {
1420 dasm_put(Dst, 4352, 1+1, LJ_TISNUM); 1429 dasm_put(Dst, 4372, 1+1, LJ_TISNUM);
1421 } 1430 }
1422 dasm_put(Dst, 4377); 1431 dasm_put(Dst, 4397);
1423 if (sse) { 1432 if (sse) {
1424 dasm_put(Dst, 4391, 1+1, LJ_TISNUM); 1433 dasm_put(Dst, 4411, 1+1, LJ_TISNUM);
1425 } else { 1434 } else {
1426 dasm_put(Dst, 4422, 1+1, LJ_TISNUM); 1435 dasm_put(Dst, 4442, 1+1, LJ_TISNUM);
1427 } 1436 }
1428 dasm_put(Dst, 4447); 1437 dasm_put(Dst, 4467);
1429 if (sse) { 1438 if (sse) {
1430 dasm_put(Dst, 4461, 1+1, LJ_TISNUM); 1439 dasm_put(Dst, 4481, 1+1, LJ_TISNUM);
1431 } else { 1440 } else {
1432 dasm_put(Dst, 4492, 1+1, LJ_TISNUM); 1441 dasm_put(Dst, 4512, 1+1, LJ_TISNUM);
1433 } 1442 }
1434 dasm_put(Dst, 4517); 1443 dasm_put(Dst, 4537);
1435 if (sse) { 1444 if (sse) {
1436 dasm_put(Dst, 4533, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1445 dasm_put(Dst, 4553, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1437 } else { 1446 } else {
1438 dasm_put(Dst, 4572, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1447 dasm_put(Dst, 4592, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1439 } 1448 }
1440 dasm_put(Dst, 4605, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1449 dasm_put(Dst, 4625, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1441 dasm_put(Dst, 4670, 1+1, LJ_TISNUM); 1450 dasm_put(Dst, 4690, 1+1, LJ_TISNUM);
1442 if (sse) { 1451 if (sse) {
1443 dasm_put(Dst, 4769); 1452 dasm_put(Dst, 4789);
1444 } else { 1453 } else {
1445 dasm_put(Dst, 4775); 1454 dasm_put(Dst, 4795);
1446 } 1455 }
1447 dasm_put(Dst, 4784); 1456 dasm_put(Dst, 4804);
1448 if (sse) { 1457 if (sse) {
1449 dasm_put(Dst, 4809); 1458 dasm_put(Dst, 4829);
1450 } else { 1459 } else {
1451 dasm_put(Dst, 4815); 1460 dasm_put(Dst, 4835);
1452 } 1461 }
1453 dasm_put(Dst, 4818, 1+2); 1462 dasm_put(Dst, 4838, 1+2);
1454 if (sse) { 1463 if (sse) {
1455 dasm_put(Dst, 4827); 1464 dasm_put(Dst, 4847);
1456 } else { 1465 } else {
1457 dasm_put(Dst, 4835); 1466 dasm_put(Dst, 4855);
1458 } 1467 }
1459 dasm_put(Dst, 4843); 1468 dasm_put(Dst, 4863);
1460 if (sse) { 1469 if (sse) {
1461 dasm_put(Dst, 4846); 1470 dasm_put(Dst, 4866);
1462 } else { 1471 } else {
1463 dasm_put(Dst, 4878); 1472 dasm_put(Dst, 4898);
1464 } 1473 }
1465 dasm_put(Dst, 4897); 1474 dasm_put(Dst, 4917);
1466 if (sse) { 1475 if (sse) {
1467 dasm_put(Dst, 4913, 1+1, LJ_TISNUM); 1476 dasm_put(Dst, 4933, 1+1, LJ_TISNUM);
1468 } else { 1477 } else {
1469 dasm_put(Dst, 4938, 1+1, LJ_TISNUM); 1478 dasm_put(Dst, 4958, 1+1, LJ_TISNUM);
1470 } 1479 }
1471 dasm_put(Dst, 4960); 1480 dasm_put(Dst, 4980);
1472 if (sse) { 1481 if (sse) {
1473 dasm_put(Dst, 4982); 1482 dasm_put(Dst, 5002);
1474 } else { 1483 } else {
1475 dasm_put(Dst, 5008); 1484 dasm_put(Dst, 5028);
1476 } 1485 }
1477 dasm_put(Dst, 5025, 1+2); 1486 dasm_put(Dst, 5045, 1+2);
1478 if (sse) { 1487 if (sse) {
1479 dasm_put(Dst, 5065); 1488 dasm_put(Dst, 5085);
1480 } else { 1489 } else {
1481 dasm_put(Dst, 5073); 1490 dasm_put(Dst, 5093);
1482 } 1491 }
1483 dasm_put(Dst, 5083, 2+1, LJ_TISNUM, LJ_TISNUM); 1492 dasm_put(Dst, 5103, 2+1, LJ_TISNUM, LJ_TISNUM);
1484 if (sse) { 1493 if (sse) {
1485 dasm_put(Dst, 5135, 2+1, LJ_TISNUM, LJ_TISNUM); 1494 dasm_put(Dst, 5155, 2+1, LJ_TISNUM, LJ_TISNUM);
1486 } else { 1495 } else {
1487 dasm_put(Dst, 5182, 2+1, LJ_TISNUM, LJ_TISNUM); 1496 dasm_put(Dst, 5202, 2+1, LJ_TISNUM, LJ_TISNUM);
1488 } 1497 }
1489 dasm_put(Dst, 5223, LJ_TISNUM); 1498 dasm_put(Dst, 5243, LJ_TISNUM);
1490 if (LJ_DUALNUM) { 1499 if (LJ_DUALNUM) {
1491 dasm_put(Dst, 5236, LJ_TISNUM); 1500 dasm_put(Dst, 5256, LJ_TISNUM);
1492 if (sse) { 1501 if (sse) {
1493 dasm_put(Dst, 4769); 1502 dasm_put(Dst, 4789);
1494 } else { 1503 } else {
1495 dasm_put(Dst, 4775); 1504 dasm_put(Dst, 4795);
1496 } 1505 }
1497 dasm_put(Dst, 5286); 1506 dasm_put(Dst, 5306);
1498 } else { 1507 } else {
1499 dasm_put(Dst, 2244); 1508 dasm_put(Dst, 2264);
1500 } 1509 }
1501 if (sse) { 1510 if (sse) {
1502 dasm_put(Dst, 5297, LJ_TISNUM); 1511 dasm_put(Dst, 5317, LJ_TISNUM);
1503 if (LJ_DUALNUM) { 1512 if (LJ_DUALNUM) {
1504 dasm_put(Dst, 5318); 1513 dasm_put(Dst, 5338);
1505 } else { 1514 } else {
1506 dasm_put(Dst, 2244); 1515 dasm_put(Dst, 2264);
1507 } 1516 }
1508 dasm_put(Dst, 5339); 1517 dasm_put(Dst, 5359);
1509 } else { 1518 } else {
1510 dasm_put(Dst, 5364, LJ_TISNUM); 1519 dasm_put(Dst, 5384, LJ_TISNUM);
1511 if (LJ_DUALNUM) { 1520 if (LJ_DUALNUM) {
1512 dasm_put(Dst, 5382); 1521 dasm_put(Dst, 5402);
1513 } else { 1522 } else {
1514 dasm_put(Dst, 5400); 1523 dasm_put(Dst, 5420);
1515 } 1524 }
1516 dasm_put(Dst, 5405); 1525 dasm_put(Dst, 5425);
1517 if (cmov) { 1526 if (cmov) {
1518 dasm_put(Dst, 5415); 1527 dasm_put(Dst, 5435);
1519 } else { 1528 } else {
1520 dasm_put(Dst, 5423); 1529 dasm_put(Dst, 5443);
1521 } 1530 }
1522 dasm_put(Dst, 5356); 1531 dasm_put(Dst, 5376);
1523 } 1532 }
1524 dasm_put(Dst, 5444, LJ_TISNUM); 1533 dasm_put(Dst, 5464, LJ_TISNUM);
1525 if (LJ_DUALNUM) { 1534 if (LJ_DUALNUM) {
1526 dasm_put(Dst, 5457, LJ_TISNUM); 1535 dasm_put(Dst, 5477, LJ_TISNUM);
1527 if (sse) { 1536 if (sse) {
1528 dasm_put(Dst, 4769); 1537 dasm_put(Dst, 4789);
1529 } else { 1538 } else {
1530 dasm_put(Dst, 4775); 1539 dasm_put(Dst, 4795);
1531 } 1540 }
1532 dasm_put(Dst, 5286); 1541 dasm_put(Dst, 5306);
1533 } else { 1542 } else {
1534 dasm_put(Dst, 2244); 1543 dasm_put(Dst, 2264);
1535 } 1544 }
1536 if (sse) { 1545 if (sse) {
1537 dasm_put(Dst, 5297, LJ_TISNUM); 1546 dasm_put(Dst, 5317, LJ_TISNUM);
1538 if (LJ_DUALNUM) { 1547 if (LJ_DUALNUM) {
1539 dasm_put(Dst, 5318); 1548 dasm_put(Dst, 5338);
1540 } else { 1549 } else {
1541 dasm_put(Dst, 2244); 1550 dasm_put(Dst, 2264);
1542 } 1551 }
1543 dasm_put(Dst, 5507); 1552 dasm_put(Dst, 5527);
1544 } else { 1553 } else {
1545 dasm_put(Dst, 5364, LJ_TISNUM); 1554 dasm_put(Dst, 5384, LJ_TISNUM);
1546 if (LJ_DUALNUM) { 1555 if (LJ_DUALNUM) {
1547 dasm_put(Dst, 5382); 1556 dasm_put(Dst, 5402);
1548 } else { 1557 } else {
1549 dasm_put(Dst, 5400); 1558 dasm_put(Dst, 5420);
1550 } 1559 }
1551 dasm_put(Dst, 5405); 1560 dasm_put(Dst, 5425);
1552 if (cmov) { 1561 if (cmov) {
1553 dasm_put(Dst, 5532); 1562 dasm_put(Dst, 5552);
1554 } else { 1563 } else {
1555 dasm_put(Dst, 5540); 1564 dasm_put(Dst, 5560);
1556 } 1565 }
1557 dasm_put(Dst, 5356); 1566 dasm_put(Dst, 5376);
1558 } 1567 }
1559 if (!sse) { 1568 if (!sse) {
1560 dasm_put(Dst, 5561); 1569 dasm_put(Dst, 5581);
1561 } 1570 }
1562 dasm_put(Dst, 5570, 1+1, LJ_TSTR); 1571 dasm_put(Dst, 5590, 1+1, LJ_TSTR);
1563 if (LJ_DUALNUM) { 1572 if (LJ_DUALNUM) {
1564 dasm_put(Dst, 5592, Dt5(->len)); 1573 dasm_put(Dst, 5612, Dt5(->len));
1565 } else if (sse) { 1574 } else if (sse) {
1566 dasm_put(Dst, 5600, Dt5(->len)); 1575 dasm_put(Dst, 5620, Dt5(->len));
1567 } else { 1576 } else {
1568 dasm_put(Dst, 5611, Dt5(->len)); 1577 dasm_put(Dst, 5631, Dt5(->len));
1569 } 1578 }
1570 dasm_put(Dst, 5619, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1579 dasm_put(Dst, 5639, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1571 if (LJ_DUALNUM) { 1580 if (LJ_DUALNUM) {
1572 dasm_put(Dst, 3949); 1581 dasm_put(Dst, 3969);
1573 } else if (sse) { 1582 } else if (sse) {
1574 dasm_put(Dst, 5657); 1583 dasm_put(Dst, 5677);
1575 } else { 1584 } else {
1576 dasm_put(Dst, 5667); 1585 dasm_put(Dst, 5687);
1577 } 1586 }
1578 dasm_put(Dst, 5680, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1587 dasm_put(Dst, 5700, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1579 if (LJ_DUALNUM) { 1588 if (LJ_DUALNUM) {
1580 dasm_put(Dst, 5711); 1589 dasm_put(Dst, 5731);
1581 } else if (sse) { 1590 } else if (sse) {
1582 dasm_put(Dst, 5734); 1591 dasm_put(Dst, 5754);
1583 } else { 1592 } else {
1584 dasm_put(Dst, 5760); 1593 dasm_put(Dst, 5780);
1585 } 1594 }
1586 dasm_put(Dst, 5784, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1595 dasm_put(Dst, 5804, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1587 if (LJ_DUALNUM) { 1596 if (LJ_DUALNUM) {
1588 dasm_put(Dst, 5887); 1597 dasm_put(Dst, 5907);
1589 } else if (sse) { 1598 } else if (sse) {
1590 dasm_put(Dst, 5899); 1599 dasm_put(Dst, 5919);
1591 } else { 1600 } else {
1592 dasm_put(Dst, 5914); 1601 dasm_put(Dst, 5934);
1593 } 1602 }
1594 dasm_put(Dst, 5926, LJ_TSTR, LJ_TISNUM); 1603 dasm_put(Dst, 5946, LJ_TSTR, LJ_TISNUM);
1595 if (LJ_DUALNUM) { 1604 if (LJ_DUALNUM) {
1596 dasm_put(Dst, 2517); 1605 dasm_put(Dst, 2537);
1597 } else { 1606 } else {
1598 dasm_put(Dst, 2244); 1607 dasm_put(Dst, 2264);
1599 } 1608 }
1600 dasm_put(Dst, 5943, Dt5(->len)); 1609 dasm_put(Dst, 5963, Dt5(->len));
1601 if (LJ_DUALNUM) { 1610 if (LJ_DUALNUM) {
1602 dasm_put(Dst, 5953); 1611 dasm_put(Dst, 5973);
1603 } else if (sse) { 1612 } else if (sse) {
1604 dasm_put(Dst, 5957); 1613 dasm_put(Dst, 5977);
1605 } else { 1614 } else {
1606 dasm_put(Dst, 5964); 1615 dasm_put(Dst, 5984);
1607 } 1616 }
1608 dasm_put(Dst, 5976, sizeof(GCstr)-1); 1617 dasm_put(Dst, 5996, sizeof(GCstr)-1);
1609 dasm_put(Dst, 6051, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1618 dasm_put(Dst, 6071, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1610 dasm_put(Dst, 6110, LJ_TSTR, LJ_TISNUM); 1619 dasm_put(Dst, 6130, LJ_TSTR, LJ_TISNUM);
1611 if (LJ_DUALNUM) { 1620 if (LJ_DUALNUM) {
1612 dasm_put(Dst, 6127); 1621 dasm_put(Dst, 6147);
1613 } else if (sse) { 1622 } else if (sse) {
1614 dasm_put(Dst, 6135); 1623 dasm_put(Dst, 6155);
1615 } else { 1624 } else {
1616 dasm_put(Dst, 6146); 1625 dasm_put(Dst, 6166);
1617 } 1626 }
1618 dasm_put(Dst, 6162, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1627 dasm_put(Dst, 6182, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1619 dasm_put(Dst, 6227, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1628 dasm_put(Dst, 6247, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1620 dasm_put(Dst, 6290, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1629 dasm_put(Dst, 6310, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1621 dasm_put(Dst, 6361, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1630 dasm_put(Dst, 6381, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1622 dasm_put(Dst, 6446, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1631 dasm_put(Dst, 6466, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1623 dasm_put(Dst, 6516, 1+1, LJ_TTAB); 1632 dasm_put(Dst, 6536, 1+1, LJ_TTAB);
1624 if (LJ_DUALNUM) { 1633 if (LJ_DUALNUM) {
1625 dasm_put(Dst, 6584); 1634 dasm_put(Dst, 6604);
1626 } else if (sse) { 1635 } else if (sse) {
1627 dasm_put(Dst, 6591); 1636 dasm_put(Dst, 6611);
1628 } else { 1637 } else {
1629 dasm_put(Dst, 6601); 1638 dasm_put(Dst, 6621);
1630 } 1639 }
1631 dasm_put(Dst, 6612, 1+1, LJ_TISNUM); 1640 dasm_put(Dst, 6632, 1+1, LJ_TISNUM);
1632 if (LJ_DUALNUM) { 1641 if (LJ_DUALNUM) {
1633 dasm_put(Dst, 6628); 1642 dasm_put(Dst, 6648);
1634 } else { 1643 } else {
1635 dasm_put(Dst, 2244); 1644 dasm_put(Dst, 2264);
1636 } 1645 }
1637 if (sse) { 1646 if (sse) {
1638 dasm_put(Dst, 6645); 1647 dasm_put(Dst, 6665);
1639 } else { 1648 } else {
1640 dasm_put(Dst, 6674); 1649 dasm_put(Dst, 6694);
1641 } 1650 }
1642 dasm_put(Dst, 111); 1651 dasm_put(Dst, 111);
1643 if (LJ_DUALNUM || sse) { 1652 if (LJ_DUALNUM || sse) {
1644 if (!sse) { 1653 if (!sse) {
1645 dasm_put(Dst, 6692); 1654 dasm_put(Dst, 6712);
1646 } 1655 }
1647 dasm_put(Dst, 6696); 1656 dasm_put(Dst, 6716);
1648 } else { 1657 } else {
1649 dasm_put(Dst, 6604); 1658 dasm_put(Dst, 6624);
1650 } 1659 }
1651 dasm_put(Dst, 6701, 1+1); 1660 dasm_put(Dst, 6721, 1+1);
1652 if (sse) { 1661 if (sse) {
1653 dasm_put(Dst, 6712); 1662 dasm_put(Dst, 6732);
1654 } else { 1663 } else {
1655 dasm_put(Dst, 6727); 1664 dasm_put(Dst, 6747);
1656 } 1665 }
1657 dasm_put(Dst, 2221, LJ_TISNUM); 1666 dasm_put(Dst, 2241, LJ_TISNUM);
1658 if (LJ_DUALNUM) { 1667 if (LJ_DUALNUM) {
1659 dasm_put(Dst, 6736); 1668 dasm_put(Dst, 6756);
1660 } else { 1669 } else {
1661 dasm_put(Dst, 2244); 1670 dasm_put(Dst, 2264);
1662 } 1671 }
1663 if (sse) { 1672 if (sse) {
1664 dasm_put(Dst, 6753); 1673 dasm_put(Dst, 6773);
1665 } else { 1674 } else {
1666 dasm_put(Dst, 6768); 1675 dasm_put(Dst, 6788);
1667 } 1676 }
1668 dasm_put(Dst, 6781, LJ_TISNUM); 1677 dasm_put(Dst, 6801, LJ_TISNUM);
1669 if (LJ_DUALNUM) { 1678 if (LJ_DUALNUM) {
1670 dasm_put(Dst, 6806);
1671 } else {
1672 dasm_put(Dst, 6826); 1679 dasm_put(Dst, 6826);
1680 } else {
1681 dasm_put(Dst, 6846);
1673 } 1682 }
1674 if (sse) { 1683 if (sse) {
1675 dasm_put(Dst, 6831); 1684 dasm_put(Dst, 6851);
1676 } else { 1685 } else {
1677 dasm_put(Dst, 6848); 1686 dasm_put(Dst, 6868);
1678 } 1687 }
1679 dasm_put(Dst, 6861, 1+1); 1688 dasm_put(Dst, 6881, 1+1);
1680 if (sse) { 1689 if (sse) {
1681 dasm_put(Dst, 6712); 1690 dasm_put(Dst, 6732);
1682 } else { 1691 } else {
1683 dasm_put(Dst, 6727); 1692 dasm_put(Dst, 6747);
1684 } 1693 }
1685 dasm_put(Dst, 2221, LJ_TISNUM); 1694 dasm_put(Dst, 2241, LJ_TISNUM);
1686 if (LJ_DUALNUM) { 1695 if (LJ_DUALNUM) {
1687 dasm_put(Dst, 6736); 1696 dasm_put(Dst, 6756);
1688 } else { 1697 } else {
1689 dasm_put(Dst, 2244); 1698 dasm_put(Dst, 2264);
1690 } 1699 }
1691 if (sse) { 1700 if (sse) {
1692 dasm_put(Dst, 6753); 1701 dasm_put(Dst, 6773);
1693 } else { 1702 } else {
1694 dasm_put(Dst, 6768); 1703 dasm_put(Dst, 6788);
1695 } 1704 }
1696 dasm_put(Dst, 6781, LJ_TISNUM); 1705 dasm_put(Dst, 6801, LJ_TISNUM);
1697 if (LJ_DUALNUM) { 1706 if (LJ_DUALNUM) {
1698 dasm_put(Dst, 6879); 1707 dasm_put(Dst, 6899);
1699 } else { 1708 } else {
1700 dasm_put(Dst, 6826); 1709 dasm_put(Dst, 6846);
1701 } 1710 }
1702 if (sse) { 1711 if (sse) {
1703 dasm_put(Dst, 6899); 1712 dasm_put(Dst, 6919);
1704 } else { 1713 } else {
1705 dasm_put(Dst, 6916); 1714 dasm_put(Dst, 6936);
1706 } 1715 }
1707 dasm_put(Dst, 6929, 1+1); 1716 dasm_put(Dst, 6949, 1+1);
1708 if (sse) { 1717 if (sse) {
1709 dasm_put(Dst, 6712); 1718 dasm_put(Dst, 6732);
1710 } else { 1719 } else {
1711 dasm_put(Dst, 6727); 1720 dasm_put(Dst, 6747);
1712 } 1721 }
1713 dasm_put(Dst, 2221, LJ_TISNUM); 1722 dasm_put(Dst, 2241, LJ_TISNUM);
1714 if (LJ_DUALNUM) { 1723 if (LJ_DUALNUM) {
1715 dasm_put(Dst, 6736); 1724 dasm_put(Dst, 6756);
1716 } else { 1725 } else {
1717 dasm_put(Dst, 2244); 1726 dasm_put(Dst, 2264);
1718 } 1727 }
1719 if (sse) { 1728 if (sse) {
1720 dasm_put(Dst, 6753); 1729 dasm_put(Dst, 6773);
1721 } else { 1730 } else {
1722 dasm_put(Dst, 6768); 1731 dasm_put(Dst, 6788);
1723 } 1732 }
1724 dasm_put(Dst, 6781, LJ_TISNUM); 1733 dasm_put(Dst, 6801, LJ_TISNUM);
1725 if (LJ_DUALNUM) { 1734 if (LJ_DUALNUM) {
1726 dasm_put(Dst, 6947); 1735 dasm_put(Dst, 6967);
1727 } else { 1736 } else {
1728 dasm_put(Dst, 6826); 1737 dasm_put(Dst, 6846);
1729 } 1738 }
1730 if (sse) { 1739 if (sse) {
1731 dasm_put(Dst, 6967); 1740 dasm_put(Dst, 6987);
1732 } else { 1741 } else {
1733 dasm_put(Dst, 6984); 1742 dasm_put(Dst, 7004);
1734 } 1743 }
1735 dasm_put(Dst, 6997, 1+1, LJ_TISNUM); 1744 dasm_put(Dst, 7017, 1+1, LJ_TISNUM);
1736 if (LJ_DUALNUM) { 1745 if (LJ_DUALNUM) {
1737 dasm_put(Dst, 6736); 1746 dasm_put(Dst, 6756);
1738 } else { 1747 } else {
1739 dasm_put(Dst, 2244); 1748 dasm_put(Dst, 2264);
1740 } 1749 }
1741 if (sse) { 1750 if (sse) {
1742 dasm_put(Dst, 6645); 1751 dasm_put(Dst, 6665);
1743 } else { 1752 } else {
1744 dasm_put(Dst, 7020); 1753 dasm_put(Dst, 7040);
1745 } 1754 }
1746 dasm_put(Dst, 7041, 1+1, LJ_TISNUM); 1755 dasm_put(Dst, 7061, 1+1, LJ_TISNUM);
1747 if (LJ_DUALNUM) { 1756 if (LJ_DUALNUM) {
1748 dasm_put(Dst, 6736); 1757 dasm_put(Dst, 6756);
1749 } else { 1758 } else {
1750 dasm_put(Dst, 2244); 1759 dasm_put(Dst, 2264);
1751 } 1760 }
1752 if (sse) { 1761 if (sse) {
1753 dasm_put(Dst, 6645); 1762 dasm_put(Dst, 6665);
1754 } else { 1763 } else {
1755 dasm_put(Dst, 7020); 1764 dasm_put(Dst, 7040);
1756 } 1765 }
1757 dasm_put(Dst, 7065); 1766 dasm_put(Dst, 7085);
1758 if (LJ_DUALNUM) { 1767 if (LJ_DUALNUM) {
1759 dasm_put(Dst, 6696); 1768 dasm_put(Dst, 6716);
1760 } else if (sse) { 1769 } else if (sse) {
1761 dasm_put(Dst, 7071); 1770 dasm_put(Dst, 7091);
1762 } else { 1771 } else {
1763 dasm_put(Dst, 7083); 1772 dasm_put(Dst, 7103);
1764 } 1773 }
1765 dasm_put(Dst, 7096); 1774 dasm_put(Dst, 7116);
1766 if (LJ_DUALNUM) { 1775 if (LJ_DUALNUM) {
1767 dasm_put(Dst, 7107, 1+1, LJ_TISNUM); 1776 dasm_put(Dst, 7127, 1+1, LJ_TISNUM);
1768 if (LJ_DUALNUM) { 1777 if (LJ_DUALNUM) {
1769 dasm_put(Dst, 6736); 1778 dasm_put(Dst, 6756);
1770 } else { 1779 } else {
1771 dasm_put(Dst, 2244); 1780 dasm_put(Dst, 2264);
1772 } 1781 }
1773 if (sse) { 1782 if (sse) {
1774 dasm_put(Dst, 6645); 1783 dasm_put(Dst, 6665);
1775 } else { 1784 } else {
1776 dasm_put(Dst, 7020); 1785 dasm_put(Dst, 7040);
1777 } 1786 }
1778 dasm_put(Dst, 7123, LJ_TISNUM); 1787 dasm_put(Dst, 7143, LJ_TISNUM);
1779 } else if (sse) { 1788 } else if (sse) {
1780 dasm_put(Dst, 7138, 2+1, LJ_TISNUM, LJ_TISNUM); 1789 dasm_put(Dst, 7158, 2+1, LJ_TISNUM, LJ_TISNUM);
1781 } else { 1790 } else {
1782 dasm_put(Dst, 7210, 2+1, LJ_TISNUM, LJ_TISNUM); 1791 dasm_put(Dst, 7230, 2+1, LJ_TISNUM, LJ_TISNUM);
1783 } 1792 }
1784 dasm_put(Dst, 7274); 1793 dasm_put(Dst, 7294);
1785 if (LJ_DUALNUM) { 1794 if (LJ_DUALNUM) {
1786 dasm_put(Dst, 7281, 1+1, LJ_TISNUM); 1795 dasm_put(Dst, 7301, 1+1, LJ_TISNUM);
1787 if (LJ_DUALNUM) { 1796 if (LJ_DUALNUM) {
1788 dasm_put(Dst, 6736); 1797 dasm_put(Dst, 6756);
1789 } else { 1798 } else {
1790 dasm_put(Dst, 2244); 1799 dasm_put(Dst, 2264);
1791 } 1800 }
1792 if (sse) { 1801 if (sse) {
1793 dasm_put(Dst, 6645); 1802 dasm_put(Dst, 6665);
1794 } else { 1803 } else {
1795 dasm_put(Dst, 7020); 1804 dasm_put(Dst, 7040);
1796 } 1805 }
1797 dasm_put(Dst, 7123, LJ_TISNUM); 1806 dasm_put(Dst, 7143, LJ_TISNUM);
1798 } else if (sse) { 1807 } else if (sse) {
1799 dasm_put(Dst, 7297, 2+1, LJ_TISNUM, LJ_TISNUM); 1808 dasm_put(Dst, 7317, 2+1, LJ_TISNUM, LJ_TISNUM);
1800 } else { 1809 } else {
1801 dasm_put(Dst, 7369, 2+1, LJ_TISNUM, LJ_TISNUM); 1810 dasm_put(Dst, 7389, 2+1, LJ_TISNUM, LJ_TISNUM);
1802 } 1811 }
1803 dasm_put(Dst, 7433); 1812 dasm_put(Dst, 7453);
1804 if (LJ_DUALNUM) { 1813 if (LJ_DUALNUM) {
1805 dasm_put(Dst, 7441, 1+1, LJ_TISNUM); 1814 dasm_put(Dst, 7461, 1+1, LJ_TISNUM);
1806 if (LJ_DUALNUM) { 1815 if (LJ_DUALNUM) {
1807 dasm_put(Dst, 6736); 1816 dasm_put(Dst, 6756);
1808 } else { 1817 } else {
1809 dasm_put(Dst, 2244); 1818 dasm_put(Dst, 2264);
1810 } 1819 }
1811 if (sse) { 1820 if (sse) {
1812 dasm_put(Dst, 6645); 1821 dasm_put(Dst, 6665);
1813 } else { 1822 } else {
1814 dasm_put(Dst, 7020); 1823 dasm_put(Dst, 7040);
1815 } 1824 }
1816 dasm_put(Dst, 7123, LJ_TISNUM); 1825 dasm_put(Dst, 7143, LJ_TISNUM);
1817 } else if (sse) { 1826 } else if (sse) {
1818 dasm_put(Dst, 7457, 2+1, LJ_TISNUM, LJ_TISNUM); 1827 dasm_put(Dst, 7477, 2+1, LJ_TISNUM, LJ_TISNUM);
1819 } else { 1828 } else {
1820 dasm_put(Dst, 7529, 2+1, LJ_TISNUM, LJ_TISNUM); 1829 dasm_put(Dst, 7549, 2+1, LJ_TISNUM, LJ_TISNUM);
1821 } 1830 }
1822 dasm_put(Dst, 7593); 1831 dasm_put(Dst, 7613);
1823 if (LJ_DUALNUM) { 1832 if (LJ_DUALNUM) {
1824 dasm_put(Dst, 7601, 1+1, LJ_TISNUM); 1833 dasm_put(Dst, 7621, 1+1, LJ_TISNUM);
1825 if (LJ_DUALNUM) { 1834 if (LJ_DUALNUM) {
1826 dasm_put(Dst, 6736); 1835 dasm_put(Dst, 6756);
1827 } else { 1836 } else {
1828 dasm_put(Dst, 2244); 1837 dasm_put(Dst, 2264);
1829 } 1838 }
1830 if (sse) { 1839 if (sse) {
1831 dasm_put(Dst, 6645); 1840 dasm_put(Dst, 6665);
1832 } else { 1841 } else {
1833 dasm_put(Dst, 7020); 1842 dasm_put(Dst, 7040);
1834 } 1843 }
1835 dasm_put(Dst, 7123, LJ_TISNUM); 1844 dasm_put(Dst, 7143, LJ_TISNUM);
1836 } else if (sse) { 1845 } else if (sse) {
1837 dasm_put(Dst, 7617, 2+1, LJ_TISNUM, LJ_TISNUM); 1846 dasm_put(Dst, 7637, 2+1, LJ_TISNUM, LJ_TISNUM);
1838 } else { 1847 } else {
1839 dasm_put(Dst, 7689, 2+1, LJ_TISNUM, LJ_TISNUM); 1848 dasm_put(Dst, 7709, 2+1, LJ_TISNUM, LJ_TISNUM);
1840 } 1849 }
1841 dasm_put(Dst, 7753); 1850 dasm_put(Dst, 7773);
1842 if (LJ_DUALNUM) { 1851 if (LJ_DUALNUM) {
1843 dasm_put(Dst, 7760, 1+1, LJ_TISNUM); 1852 dasm_put(Dst, 7780, 1+1, LJ_TISNUM);
1844 if (LJ_DUALNUM) { 1853 if (LJ_DUALNUM) {
1845 dasm_put(Dst, 6736); 1854 dasm_put(Dst, 6756);
1846 } else { 1855 } else {
1847 dasm_put(Dst, 2244); 1856 dasm_put(Dst, 2264);
1848 } 1857 }
1849 if (sse) { 1858 if (sse) {
1850 dasm_put(Dst, 6645); 1859 dasm_put(Dst, 6665);
1851 } else { 1860 } else {
1852 dasm_put(Dst, 7020); 1861 dasm_put(Dst, 7040);
1853 } 1862 }
1854 dasm_put(Dst, 7123, LJ_TISNUM); 1863 dasm_put(Dst, 7143, LJ_TISNUM);
1855 } else if (sse) { 1864 } else if (sse) {
1856 dasm_put(Dst, 7776, 2+1, LJ_TISNUM, LJ_TISNUM); 1865 dasm_put(Dst, 7796, 2+1, LJ_TISNUM, LJ_TISNUM);
1857 } else { 1866 } else {
1858 dasm_put(Dst, 7848, 2+1, LJ_TISNUM, LJ_TISNUM); 1867 dasm_put(Dst, 7868, 2+1, LJ_TISNUM, LJ_TISNUM);
1859 } 1868 }
1860 dasm_put(Dst, 7912, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1869 dasm_put(Dst, 7932, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1861 dasm_put(Dst, 7988, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1870 dasm_put(Dst, 8008, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1862 dasm_put(Dst, 8112, Dt1(->top), Dt1(->base), Dt1(->top)); 1871 dasm_put(Dst, 8132, Dt1(->top), Dt1(->base), Dt1(->top));
1863#if LJ_HASJIT 1872#if LJ_HASJIT
1864 dasm_put(Dst, 8150, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1873 dasm_put(Dst, 8170, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1865#endif 1874#endif
1866 dasm_put(Dst, 8181, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1875 dasm_put(Dst, 8201, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1867 dasm_put(Dst, 8232, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1876 dasm_put(Dst, 8252, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1868#if LJ_HASJIT 1877#if LJ_HASJIT
1869 dasm_put(Dst, 8298, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1878 dasm_put(Dst, 8318, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1870#endif 1879#endif
1871 dasm_put(Dst, 8344); 1880 dasm_put(Dst, 8364);
1872#if LJ_HASJIT 1881#if LJ_HASJIT
1873 dasm_put(Dst, 8176); 1882 dasm_put(Dst, 8196);
1874#endif 1883#endif
1875 dasm_put(Dst, 8351); 1884 dasm_put(Dst, 8371);
1876#if LJ_HASJIT 1885#if LJ_HASJIT
1877 dasm_put(Dst, 8354); 1886 dasm_put(Dst, 8374);
1878#endif 1887#endif
1879 dasm_put(Dst, 8364, Dt1(->base), Dt1(->top)); 1888 dasm_put(Dst, 8384, Dt1(->base), Dt1(->top));
1880#if LJ_HASJIT 1889#if LJ_HASJIT
1881 dasm_put(Dst, 8398); 1890 dasm_put(Dst, 8418);
1882#endif 1891#endif
1883 dasm_put(Dst, 8403, Dt1(->base), Dt1(->top)); 1892 dasm_put(Dst, 8423, Dt1(->base), Dt1(->top));
1884#if LJ_HASJIT 1893#if LJ_HASJIT
1885 dasm_put(Dst, 8432, 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); 1894 dasm_put(Dst, 8452, 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);
1886#endif 1895#endif
1887 dasm_put(Dst, 8575); 1896 dasm_put(Dst, 8595);
1888#if LJ_HASJIT 1897#if LJ_HASJIT
1889 dasm_put(Dst, 8578, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1898 dasm_put(Dst, 8598, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1890#endif 1899#endif
1891 dasm_put(Dst, 8656); 1900 dasm_put(Dst, 8676);
1892 if (!sse) { 1901 if (!sse) {
1893 dasm_put(Dst, 8659); 1902 dasm_put(Dst, 8679);
1894 } 1903 }
1895 dasm_put(Dst, 8704); 1904 dasm_put(Dst, 8724);
1896 if (!sse) { 1905 if (!sse) {
1897 dasm_put(Dst, 8806); 1906 dasm_put(Dst, 8826);
1898 } 1907 }
1899 dasm_put(Dst, 8851); 1908 dasm_put(Dst, 8871);
1900 if (!sse) { 1909 if (!sse) {
1901 dasm_put(Dst, 8953); 1910 dasm_put(Dst, 8973);
1902 } 1911 }
1903 dasm_put(Dst, 8992); 1912 dasm_put(Dst, 9012);
1904 if (sse) { 1913 if (sse) {
1905 dasm_put(Dst, 9097); 1914 dasm_put(Dst, 9117);
1906 } else { 1915 } else {
1907 dasm_put(Dst, 9227); 1916 dasm_put(Dst, 9247);
1908 } 1917 }
1909 dasm_put(Dst, 9274); 1918 dasm_put(Dst, 9294);
1910 if (!sse) { 1919 if (!sse) {
1911 dasm_put(Dst, 9348); 1920 dasm_put(Dst, 9368);
1912 if (cmov) { 1921 if (cmov) {
1913 dasm_put(Dst, 9359); 1922 dasm_put(Dst, 9379);
1914 } else { 1923 } else {
1915 dasm_put(Dst, 9363); 1924 dasm_put(Dst, 9383);
1916 } 1925 }
1917 dasm_put(Dst, 9370); 1926 dasm_put(Dst, 9390);
1918 dasm_put(Dst, 9444); 1927 dasm_put(Dst, 9464);
1919 dasm_put(Dst, 9544); 1928 dasm_put(Dst, 9564);
1920 if (cmov) { 1929 if (cmov) {
1921 dasm_put(Dst, 9547); 1930 dasm_put(Dst, 9567);
1922 } else { 1931 } else {
1923 dasm_put(Dst, 9551); 1932 dasm_put(Dst, 9571);
1924 } 1933 }
1925 dasm_put(Dst, 9558); 1934 dasm_put(Dst, 9578);
1926 if (cmov) { 1935 if (cmov) {
1927 dasm_put(Dst, 9359); 1936 dasm_put(Dst, 9379);
1928 } else { 1937 } else {
1929 dasm_put(Dst, 9363); 1938 dasm_put(Dst, 9383);
1930 } 1939 }
1931 dasm_put(Dst, 9576); 1940 dasm_put(Dst, 9596);
1932 } else { 1941 } else {
1933 dasm_put(Dst, 9655); 1942 dasm_put(Dst, 9675);
1934 } 1943 }
1935 dasm_put(Dst, 9658); 1944 dasm_put(Dst, 9678);
1936 dasm_put(Dst, 9743); 1945 dasm_put(Dst, 9763);
1937 dasm_put(Dst, 9873); 1946 dasm_put(Dst, 9893);
1938 dasm_put(Dst, 10079); 1947 dasm_put(Dst, 10099);
1939#if LJ_HASJIT 1948#if LJ_HASJIT
1940 if (sse) { 1949 if (sse) {
1941 dasm_put(Dst, 10086); 1950 dasm_put(Dst, 10106);
1942 dasm_put(Dst, 10143); 1951 dasm_put(Dst, 10163);
1943 dasm_put(Dst, 10234); 1952 dasm_put(Dst, 10254);
1944 } else { 1953 } else {
1945 dasm_put(Dst, 10276); 1954 dasm_put(Dst, 10296);
1946 dasm_put(Dst, 10368); 1955 dasm_put(Dst, 10388);
1947 } 1956 }
1948 dasm_put(Dst, 10414); 1957 dasm_put(Dst, 10434);
1949#endif 1958#endif
1950 dasm_put(Dst, 10418); 1959 dasm_put(Dst, 10438);
1951 if (sse) { 1960 if (sse) {
1952 dasm_put(Dst, 10421); 1961 dasm_put(Dst, 10441);
1953 dasm_put(Dst, 10526); 1962 dasm_put(Dst, 10546);
1954 dasm_put(Dst, 10609); 1963 dasm_put(Dst, 10629);
1955 } else { 1964 } else {
1956 dasm_put(Dst, 10681); 1965 dasm_put(Dst, 10701);
1957 dasm_put(Dst, 10764); 1966 dasm_put(Dst, 10784);
1958 if (cmov) { 1967 if (cmov) {
1959 dasm_put(Dst, 10819); 1968 dasm_put(Dst, 10839);
1960 } else { 1969 } else {
1961 dasm_put(Dst, 10838); 1970 dasm_put(Dst, 10858);
1962 } 1971 }
1963 dasm_put(Dst, 10414); 1972 dasm_put(Dst, 10434);
1964 } 1973 }
1965 dasm_put(Dst, 10879); 1974 dasm_put(Dst, 10899);
1966#if LJ_HASFFI 1975#if LJ_HASFFI
1967#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1976#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1968 dasm_put(Dst, 10935, DtE(->spadj)); 1977 dasm_put(Dst, 10955, DtE(->spadj));
1969#if LJ_TARGET_WINDOWS 1978#if LJ_TARGET_WINDOWS
1970 dasm_put(Dst, 10945, DtE(->spadj)); 1979 dasm_put(Dst, 10965, DtE(->spadj));
1971#endif 1980#endif
1972 dasm_put(Dst, 10949, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0])); 1981 dasm_put(Dst, 10969, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0]));
1973 dasm_put(Dst, 11019, DtE(->fpr[0].f[0])); 1982 dasm_put(Dst, 11039, DtE(->fpr[0].f[0]));
1974#if LJ_TARGET_WINDOWS 1983#if LJ_TARGET_WINDOWS
1975 dasm_put(Dst, 11025, DtE(->spadj)); 1984 dasm_put(Dst, 11045, DtE(->spadj));
1976#endif 1985#endif
1977 dasm_put(Dst, 11029); 1986 dasm_put(Dst, 11049);
1978#endif 1987#endif
1979 dasm_put(Dst, 11036); 1988 dasm_put(Dst, 11056);
1980#ifdef LUA_USE_ASSERT 1989#ifdef LUA_USE_ASSERT
1981 dasm_put(Dst, 10416); 1990 dasm_put(Dst, 10436);
1982#endif 1991#endif
1983 dasm_put(Dst, 10416); 1992 dasm_put(Dst, 10436);
1984} 1993}
1985 1994
1986/* Generate the code for a single instruction. */ 1995/* Generate the code for a single instruction. */
1987static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1996static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1988{ 1997{
1989 int vk = 0; 1998 int vk = 0;
1990 dasm_put(Dst, 11039, defop); 1999 dasm_put(Dst, 11059, defop);
1991 2000
1992 switch (op) { 2001 switch (op) {
1993 2002
@@ -1998,297 +2007,304 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1998 2007
1999 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 2008 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
2000 if (LJ_DUALNUM) { 2009 if (LJ_DUALNUM) {
2001 dasm_put(Dst, 11041, LJ_TISNUM, LJ_TISNUM); 2010 dasm_put(Dst, 11061, LJ_TISNUM, LJ_TISNUM);
2002 switch (op) { 2011 switch (op) {
2003 case BC_ISLT: 2012 case BC_ISLT:
2004 dasm_put(Dst, 11071); 2013 dasm_put(Dst, 11091);
2005 break; 2014 break;
2006 case BC_ISGE: 2015 case BC_ISGE:
2007 dasm_put(Dst, 11076); 2016 dasm_put(Dst, 11096);
2008 break; 2017 break;
2009 case BC_ISLE: 2018 case BC_ISLE:
2010 dasm_put(Dst, 11081); 2019 dasm_put(Dst, 11101);
2011 break; 2020 break;
2012 case BC_ISGT: 2021 case BC_ISGT:
2013 dasm_put(Dst, 11086); 2022 dasm_put(Dst, 11106);
2014 break; 2023 break;
2015 default: break; /* Shut up GCC. */ 2024 default: break; /* Shut up GCC. */
2016 } 2025 }
2017 dasm_put(Dst, 11091, -BCBIAS_J*4, LJ_TISNUM); 2026 dasm_put(Dst, 11111, -BCBIAS_J*4, LJ_TISNUM);
2018 if (sse) { 2027 if (sse) {
2019 dasm_put(Dst, 11144); 2028 dasm_put(Dst, 11164);
2020 } else { 2029 } else {
2021 dasm_put(Dst, 11155); 2030 dasm_put(Dst, 11175);
2022 } 2031 }
2023 dasm_put(Dst, 11166); 2032 dasm_put(Dst, 11186);
2024 if (sse) { 2033 if (sse) {
2025 dasm_put(Dst, 11173); 2034 dasm_put(Dst, 11193);
2026 switch (op) { 2035 switch (op) {
2027 case BC_ISLT: 2036 case BC_ISLT:
2028 dasm_put(Dst, 11193); 2037 dasm_put(Dst, 11213);
2029 break; 2038 break;
2030 case BC_ISGE: 2039 case BC_ISGE:
2031 dasm_put(Dst, 11198); 2040 dasm_put(Dst, 11218);
2032 break; 2041 break;
2033 case BC_ISLE: 2042 case BC_ISLE:
2034 dasm_put(Dst, 11203); 2043 dasm_put(Dst, 11223);
2035 break; 2044 break;
2036 case BC_ISGT: 2045 case BC_ISGT:
2037 dasm_put(Dst, 11208); 2046 dasm_put(Dst, 11228);
2038 break; 2047 break;
2039 default: break; /* Shut up GCC. */ 2048 default: break; /* Shut up GCC. */
2040 } 2049 }
2041 dasm_put(Dst, 11213); 2050 dasm_put(Dst, 11233);
2042 } else { 2051 } else {
2043 dasm_put(Dst, 11218); 2052 dasm_put(Dst, 11238);
2044 } 2053 }
2045 } else { 2054 } else {
2046 dasm_put(Dst, 11226, LJ_TISNUM, LJ_TISNUM); 2055 dasm_put(Dst, 11246, LJ_TISNUM, LJ_TISNUM);
2047 } 2056 }
2048 if (sse) { 2057 if (sse) {
2049 dasm_put(Dst, 11247); 2058 dasm_put(Dst, 11267);
2050 } else { 2059 } else {
2051 dasm_put(Dst, 11268); 2060 dasm_put(Dst, 11288);
2052 if (cmov) { 2061 if (cmov) {
2053 dasm_put(Dst, 3924); 2062 dasm_put(Dst, 3944);
2054 } else { 2063 } else {
2055 dasm_put(Dst, 3930); 2064 dasm_put(Dst, 3950);
2056 } 2065 }
2057 } 2066 }
2058 if (LJ_DUALNUM) { 2067 if (LJ_DUALNUM) {
2059 switch (op) { 2068 switch (op) {
2060 case BC_ISLT: 2069 case BC_ISLT:
2061 dasm_put(Dst, 11193); 2070 dasm_put(Dst, 11213);
2062 break; 2071 break;
2063 case BC_ISGE: 2072 case BC_ISGE:
2064 dasm_put(Dst, 11198); 2073 dasm_put(Dst, 11218);
2065 break; 2074 break;
2066 case BC_ISLE: 2075 case BC_ISLE:
2067 dasm_put(Dst, 11203); 2076 dasm_put(Dst, 11223);
2068 break; 2077 break;
2069 case BC_ISGT: 2078 case BC_ISGT:
2070 dasm_put(Dst, 11208); 2079 dasm_put(Dst, 11228);
2071 break; 2080 break;
2072 default: break; /* Shut up GCC. */ 2081 default: break; /* Shut up GCC. */
2073 } 2082 }
2074 dasm_put(Dst, 11213); 2083 dasm_put(Dst, 11233);
2075 } else { 2084 } else {
2076 switch (op) { 2085 switch (op) {
2077 case BC_ISLT: 2086 case BC_ISLT:
2078 dasm_put(Dst, 11284); 2087 dasm_put(Dst, 11304);
2079 break; 2088 break;
2080 case BC_ISGE: 2089 case BC_ISGE:
2081 dasm_put(Dst, 11289); 2090 dasm_put(Dst, 11309);
2082 break; 2091 break;
2083 case BC_ISLE: 2092 case BC_ISLE:
2084 dasm_put(Dst, 11294); 2093 dasm_put(Dst, 11314);
2085 break; 2094 break;
2086 case BC_ISGT: 2095 case BC_ISGT:
2087 dasm_put(Dst, 11299); 2096 dasm_put(Dst, 11319);
2088 break; 2097 break;
2089 default: break; /* Shut up GCC. */ 2098 default: break; /* Shut up GCC. */
2090 } 2099 }
2091 dasm_put(Dst, 11304, -BCBIAS_J*4); 2100 dasm_put(Dst, 11324, -BCBIAS_J*4);
2092 } 2101 }
2093 break; 2102 break;
2094 2103
2095 case BC_ISEQV: case BC_ISNEV: 2104 case BC_ISEQV: case BC_ISNEV:
2096 vk = op == BC_ISEQV; 2105 vk = op == BC_ISEQV;
2097 dasm_put(Dst, 11335); 2106 dasm_put(Dst, 11355);
2098 if (LJ_DUALNUM) { 2107 if (LJ_DUALNUM) {
2099 dasm_put(Dst, 11343, LJ_TISNUM, LJ_TISNUM); 2108 dasm_put(Dst, 11363, LJ_TISNUM, LJ_TISNUM);
2100 if (vk) { 2109 if (vk) {
2101 dasm_put(Dst, 11368); 2110 dasm_put(Dst, 11388);
2102 } else { 2111 } else {
2103 dasm_put(Dst, 11373); 2112 dasm_put(Dst, 11393);
2104 } 2113 }
2105 dasm_put(Dst, 11378, -BCBIAS_J*4, LJ_TISNUM); 2114 dasm_put(Dst, 11398, -BCBIAS_J*4, LJ_TISNUM);
2106 if (sse) { 2115 if (sse) {
2107 dasm_put(Dst, 11429); 2116 dasm_put(Dst, 11449);
2108 } else { 2117 } else {
2109 dasm_put(Dst, 11436); 2118 dasm_put(Dst, 11456);
2110 } 2119 }
2111 dasm_put(Dst, 11440); 2120 dasm_put(Dst, 11460);
2112 if (sse) { 2121 if (sse) {
2113 dasm_put(Dst, 11451); 2122 dasm_put(Dst, 11471);
2114 } else { 2123 } else {
2115 dasm_put(Dst, 11463); 2124 dasm_put(Dst, 11483);
2116 } 2125 }
2117 dasm_put(Dst, 11470); 2126 dasm_put(Dst, 11490);
2118 } else { 2127 } else {
2119 dasm_put(Dst, 11475, LJ_TISNUM, LJ_TISNUM); 2128 dasm_put(Dst, 11495, LJ_TISNUM, LJ_TISNUM);
2120 } 2129 }
2121 if (sse) { 2130 if (sse) {
2122 dasm_put(Dst, 11494); 2131 dasm_put(Dst, 11514);
2123 } else { 2132 } else {
2124 dasm_put(Dst, 11512); 2133 dasm_put(Dst, 11532);
2125 if (cmov) { 2134 if (cmov) {
2126 dasm_put(Dst, 3924); 2135 dasm_put(Dst, 3944);
2127 } else { 2136 } else {
2128 dasm_put(Dst, 3930); 2137 dasm_put(Dst, 3950);
2129 } 2138 }
2130 } 2139 }
2131 iseqne_fp: 2140 iseqne_fp:
2132 if (vk) { 2141 if (vk) {
2133 dasm_put(Dst, 11525); 2142 dasm_put(Dst, 11545);
2134 } else { 2143 } else {
2135 dasm_put(Dst, 11534); 2144 dasm_put(Dst, 11554);
2136 } 2145 }
2137 iseqne_end: 2146 iseqne_end:
2138 if (vk) { 2147 if (vk) {
2139 dasm_put(Dst, 11543, -BCBIAS_J*4); 2148 dasm_put(Dst, 11563, -BCBIAS_J*4);
2140 if (!LJ_HASFFI) { 2149 if (!LJ_HASFFI) {
2141 dasm_put(Dst, 4824); 2150 dasm_put(Dst, 4844);
2142 } 2151 }
2143 } else { 2152 } else {
2144 if (!LJ_HASFFI) { 2153 if (!LJ_HASFFI) {
2145 dasm_put(Dst, 4824); 2154 dasm_put(Dst, 4844);
2146 } 2155 }
2147 dasm_put(Dst, 11558, -BCBIAS_J*4); 2156 dasm_put(Dst, 11578, -BCBIAS_J*4);
2148 } 2157 }
2149 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV || 2158 if (LJ_DUALNUM && (op == BC_ISEQV || op == BC_ISNEV ||
2150 op == BC_ISEQN || op == BC_ISNEN)) { 2159 op == BC_ISEQN || op == BC_ISNEN)) {
2151 dasm_put(Dst, 11573); 2160 dasm_put(Dst, 11593);
2152 } else { 2161 } else {
2153 dasm_put(Dst, 11316); 2162 dasm_put(Dst, 11336);
2154 } 2163 }
2155 if (op == BC_ISEQV || op == BC_ISNEV) { 2164 if (op == BC_ISEQV || op == BC_ISNEV) {
2156 dasm_put(Dst, 11578); 2165 dasm_put(Dst, 11598);
2157 if (LJ_HASFFI) { 2166 if (LJ_HASFFI) {
2158 dasm_put(Dst, 11581, LJ_TCDATA, LJ_TCDATA); 2167 dasm_put(Dst, 11601, LJ_TCDATA, LJ_TCDATA);
2159 } 2168 }
2160 dasm_put(Dst, 11600, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 2169 dasm_put(Dst, 11620, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
2161 if (vk) { 2170 if (vk) {
2162 dasm_put(Dst, 11656); 2171 dasm_put(Dst, 11676);
2163 } else { 2172 } else {
2164 dasm_put(Dst, 11660); 2173 dasm_put(Dst, 11680);
2165 } 2174 }
2166 dasm_put(Dst, 11666); 2175 dasm_put(Dst, 11686);
2167 } else if (LJ_HASFFI) { 2176 } else if (LJ_HASFFI) {
2168 dasm_put(Dst, 11671, LJ_TCDATA); 2177 dasm_put(Dst, 11691, LJ_TCDATA);
2169 if (LJ_DUALNUM && vk) { 2178 if (LJ_DUALNUM && vk) {
2170 dasm_put(Dst, 11678); 2179 dasm_put(Dst, 11698);
2171 } else { 2180 } else {
2172 dasm_put(Dst, 11651); 2181 dasm_put(Dst, 11671);
2173 } 2182 }
2174 dasm_put(Dst, 11683); 2183 dasm_put(Dst, 11703);
2175 } 2184 }
2176 break; 2185 break;
2177 case BC_ISEQS: case BC_ISNES: 2186 case BC_ISEQS: case BC_ISNES:
2178 vk = op == BC_ISEQS; 2187 vk = op == BC_ISEQS;
2179 dasm_put(Dst, 11688, LJ_TSTR); 2188 dasm_put(Dst, 11708, LJ_TSTR);
2180 iseqne_test: 2189 iseqne_test:
2181 if (vk) { 2190 if (vk) {
2182 dasm_put(Dst, 11529); 2191 dasm_put(Dst, 11549);
2183 } else { 2192 } else {
2184 dasm_put(Dst, 748); 2193 dasm_put(Dst, 748);
2185 } 2194 }
2186 goto iseqne_end; 2195 goto iseqne_end;
2187 case BC_ISEQN: case BC_ISNEN: 2196 case BC_ISEQN: case BC_ISNEN:
2188 vk = op == BC_ISEQN; 2197 vk = op == BC_ISEQN;
2189 dasm_put(Dst, 11713); 2198 dasm_put(Dst, 11733);
2190 if (LJ_DUALNUM) { 2199 if (LJ_DUALNUM) {
2191 dasm_put(Dst, 11721, LJ_TISNUM, LJ_TISNUM); 2200 dasm_put(Dst, 11741, LJ_TISNUM, LJ_TISNUM);
2192 if (vk) { 2201 if (vk) {
2193 dasm_put(Dst, 11368); 2202 dasm_put(Dst, 11388);
2194 } else { 2203 } else {
2195 dasm_put(Dst, 11373); 2204 dasm_put(Dst, 11393);
2196 } 2205 }
2197 dasm_put(Dst, 11746, -BCBIAS_J*4, LJ_TISNUM); 2206 dasm_put(Dst, 11766, -BCBIAS_J*4, LJ_TISNUM);
2198 if (sse) { 2207 if (sse) {
2199 dasm_put(Dst, 11793); 2208 dasm_put(Dst, 11813);
2200 } else { 2209 } else {
2201 dasm_put(Dst, 11800); 2210 dasm_put(Dst, 11820);
2202 } 2211 }
2203 dasm_put(Dst, 11804); 2212 dasm_put(Dst, 11824);
2204 if (sse) { 2213 if (sse) {
2205 dasm_put(Dst, 11811); 2214 dasm_put(Dst, 11831);
2206 } else { 2215 } else {
2207 dasm_put(Dst, 11823); 2216 dasm_put(Dst, 11843);
2208 } 2217 }
2209 dasm_put(Dst, 11470); 2218 dasm_put(Dst, 11490);
2210 } else { 2219 } else {
2211 dasm_put(Dst, 11830, LJ_TISNUM); 2220 dasm_put(Dst, 11850, LJ_TISNUM);
2212 } 2221 }
2213 if (sse) { 2222 if (sse) {
2214 dasm_put(Dst, 11839); 2223 dasm_put(Dst, 11859);
2215 } else { 2224 } else {
2216 dasm_put(Dst, 11857); 2225 dasm_put(Dst, 11877);
2217 if (cmov) { 2226 if (cmov) {
2218 dasm_put(Dst, 3924); 2227 dasm_put(Dst, 3944);
2219 } else { 2228 } else {
2220 dasm_put(Dst, 3930); 2229 dasm_put(Dst, 3950);
2221 } 2230 }
2222 } 2231 }
2223 goto iseqne_fp; 2232 goto iseqne_fp;
2224 case BC_ISEQP: case BC_ISNEP: 2233 case BC_ISEQP: case BC_ISNEP:
2225 vk = op == BC_ISEQP; 2234 vk = op == BC_ISEQP;
2226 dasm_put(Dst, 11870); 2235 dasm_put(Dst, 11890);
2227 if (!LJ_HASFFI) goto iseqne_test; 2236 if (!LJ_HASFFI) goto iseqne_test;
2228 if (vk) { 2237 if (vk) {
2229 dasm_put(Dst, 11883, -BCBIAS_J*4, LJ_TCDATA); 2238 dasm_put(Dst, 11903, -BCBIAS_J*4, LJ_TCDATA);
2230 } else { 2239 } else {
2231 dasm_put(Dst, 11932, LJ_TCDATA, -BCBIAS_J*4); 2240 dasm_put(Dst, 11952, LJ_TCDATA, -BCBIAS_J*4);
2232 } 2241 }
2233 break; 2242 break;
2234 2243
2235 /* -- Unary test and copy ops ------------------------------------------- */ 2244 /* -- Unary test and copy ops ------------------------------------------- */
2236 2245
2237 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 2246 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
2238 dasm_put(Dst, 11975, LJ_TISTRUECOND); 2247 dasm_put(Dst, 11995, LJ_TISTRUECOND);
2239 if (op == BC_IST || op == BC_ISTC) { 2248 if (op == BC_IST || op == BC_ISTC) {
2240 dasm_put(Dst, 11299); 2249 dasm_put(Dst, 11319);
2241 } else { 2250 } else {
2242 dasm_put(Dst, 11294); 2251 dasm_put(Dst, 11314);
2243 } 2252 }
2244 if (op == BC_ISTC || op == BC_ISFC) { 2253 if (op == BC_ISTC || op == BC_ISFC) {
2245 dasm_put(Dst, 11987); 2254 dasm_put(Dst, 12007);
2246 } 2255 }
2247 dasm_put(Dst, 11304, -BCBIAS_J*4); 2256 dasm_put(Dst, 11324, -BCBIAS_J*4);
2248 break; 2257 break;
2249 2258
2250 /* -- Unary ops --------------------------------------------------------- */ 2259 /* -- Unary ops --------------------------------------------------------- */
2251 2260
2252 case BC_MOV: 2261 case BC_MOV:
2253 dasm_put(Dst, 11998); 2262 dasm_put(Dst, 12018);
2254 break; 2263 break;
2255 case BC_NOT: 2264 case BC_NOT:
2256 dasm_put(Dst, 12031, LJ_TISTRUECOND, LJ_TTRUE); 2265 dasm_put(Dst, 12051, LJ_TISTRUECOND, LJ_TTRUE);
2257 break; 2266 break;
2258 case BC_UNM: 2267 case BC_UNM:
2259 if (LJ_DUALNUM) { 2268 if (LJ_DUALNUM) {
2260 dasm_put(Dst, 12066, LJ_TISNUM, LJ_TISNUM); 2269 dasm_put(Dst, 12086, LJ_TISNUM, LJ_TISNUM);
2261 } else { 2270 } else {
2262 dasm_put(Dst, 12142, LJ_TISNUM); 2271 dasm_put(Dst, 12162, LJ_TISNUM);
2263 } 2272 }
2264 if (sse) { 2273 if (sse) {
2265 dasm_put(Dst, 12153); 2274 dasm_put(Dst, 12173);
2266 } else { 2275 } else {
2267 dasm_put(Dst, 12183); 2276 dasm_put(Dst, 12203);
2268 } 2277 }
2269 if (LJ_DUALNUM) { 2278 if (LJ_DUALNUM) {
2270 dasm_put(Dst, 11573); 2279 dasm_put(Dst, 11593);
2271 } else { 2280 } else {
2272 dasm_put(Dst, 11316); 2281 dasm_put(Dst, 11336);
2273 } 2282 }
2274 break; 2283 break;
2275 case BC_LEN: 2284 case BC_LEN:
2276 dasm_put(Dst, 12192, LJ_TSTR); 2285 dasm_put(Dst, 12212, LJ_TSTR);
2277 if (LJ_DUALNUM) { 2286 if (LJ_DUALNUM) {
2278 dasm_put(Dst, 12206, Dt5(->len), LJ_TISNUM); 2287 dasm_put(Dst, 12226, Dt5(->len), LJ_TISNUM);
2279 } else if (sse) { 2288 } else if (sse) {
2280 dasm_put(Dst, 12220, Dt5(->len)); 2289 dasm_put(Dst, 12240, Dt5(->len));
2281 } else { 2290 } else {
2282 dasm_put(Dst, 12238, Dt5(->len)); 2291 dasm_put(Dst, 12258, Dt5(->len));
2283 } 2292 }
2284 dasm_put(Dst, 12247, LJ_TTAB); 2293 dasm_put(Dst, 12267, LJ_TTAB);
2294#ifdef LUAJIT_ENABLE_LUA52COMPAT
2295 dasm_put(Dst, 12301, Dt6(->metatable));
2296#endif
2297 dasm_put(Dst, 12315);
2285 if (LJ_DUALNUM) { 2298 if (LJ_DUALNUM) {
2286 } else if (sse) { 2299 } else if (sse) {
2287 dasm_put(Dst, 12287); 2300 dasm_put(Dst, 12324);
2288 } else { 2301 } else {
2289 dasm_put(Dst, 12293); 2302 dasm_put(Dst, 12330);
2290 } 2303 }
2291 dasm_put(Dst, 12300); 2304 dasm_put(Dst, 12337);
2305#ifdef LUAJIT_ENABLE_LUA52COMPAT
2306 dasm_put(Dst, 12350, Dt6(->nomm), 1<<MM_len);
2307#endif
2292 break; 2308 break;
2293 2309
2294 /* -- Binary ops -------------------------------------------------------- */ 2310 /* -- Binary ops -------------------------------------------------------- */
@@ -2296,620 +2312,620 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2296 2312
2297 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 2313 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
2298 if (LJ_DUALNUM) { 2314 if (LJ_DUALNUM) {
2299 dasm_put(Dst, 12313); 2315 dasm_put(Dst, 12366);
2300 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2316 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2301 switch (vk) { 2317 switch (vk) {
2302 case 0: 2318 case 0:
2303 dasm_put(Dst, 12321, LJ_TISNUM, LJ_TISNUM); 2319 dasm_put(Dst, 12374, LJ_TISNUM, LJ_TISNUM);
2304 break; 2320 break;
2305 case 1: 2321 case 1:
2306 dasm_put(Dst, 12354, LJ_TISNUM, LJ_TISNUM); 2322 dasm_put(Dst, 12407, LJ_TISNUM, LJ_TISNUM);
2307 break; 2323 break;
2308 default: 2324 default:
2309 dasm_put(Dst, 12387, LJ_TISNUM, LJ_TISNUM); 2325 dasm_put(Dst, 12440, LJ_TISNUM, LJ_TISNUM);
2310 break; 2326 break;
2311 } 2327 }
2312 dasm_put(Dst, 12420, LJ_TISNUM); 2328 dasm_put(Dst, 12473, LJ_TISNUM);
2313 if (vk == 1) { 2329 if (vk == 1) {
2314 dasm_put(Dst, 12216); 2330 dasm_put(Dst, 12236);
2315 } else { 2331 } else {
2316 dasm_put(Dst, 11994); 2332 dasm_put(Dst, 12014);
2317 } 2333 }
2318 dasm_put(Dst, 11316); 2334 dasm_put(Dst, 11336);
2319 } else { 2335 } else {
2320 dasm_put(Dst, 12313); 2336 dasm_put(Dst, 12366);
2321 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2337 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2322 switch (vk) { 2338 switch (vk) {
2323 case 0: 2339 case 0:
2324 dasm_put(Dst, 12426, LJ_TISNUM); 2340 dasm_put(Dst, 12479, LJ_TISNUM);
2325 if (LJ_DUALNUM) { 2341 if (LJ_DUALNUM) {
2326 dasm_put(Dst, 12438, LJ_TISNUM); 2342 dasm_put(Dst, 12491, LJ_TISNUM);
2327 } 2343 }
2328 if (sse) { 2344 if (sse) {
2329 dasm_put(Dst, 12449); 2345 dasm_put(Dst, 12502);
2330 } else { 2346 } else {
2331 dasm_put(Dst, 12463); 2347 dasm_put(Dst, 12516);
2332 } 2348 }
2333 break; 2349 break;
2334 case 1: 2350 case 1:
2335 dasm_put(Dst, 12471, LJ_TISNUM); 2351 dasm_put(Dst, 12524, LJ_TISNUM);
2336 if (LJ_DUALNUM) { 2352 if (LJ_DUALNUM) {
2337 dasm_put(Dst, 12483, LJ_TISNUM); 2353 dasm_put(Dst, 12536, LJ_TISNUM);
2338 } 2354 }
2339 if (sse) { 2355 if (sse) {
2340 dasm_put(Dst, 12494); 2356 dasm_put(Dst, 12547);
2341 } else { 2357 } else {
2342 dasm_put(Dst, 12508); 2358 dasm_put(Dst, 12561);
2343 } 2359 }
2344 break; 2360 break;
2345 default: 2361 default:
2346 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2362 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2347 if (sse) { 2363 if (sse) {
2348 dasm_put(Dst, 12538); 2364 dasm_put(Dst, 12591);
2349 } else { 2365 } else {
2350 dasm_put(Dst, 12552); 2366 dasm_put(Dst, 12605);
2351 } 2367 }
2352 break; 2368 break;
2353 } 2369 }
2354 if (sse) { 2370 if (sse) {
2355 dasm_put(Dst, 12176); 2371 dasm_put(Dst, 12196);
2356 } else { 2372 } else {
2357 dasm_put(Dst, 12188); 2373 dasm_put(Dst, 12208);
2358 } 2374 }
2359 dasm_put(Dst, 11316); 2375 dasm_put(Dst, 11336);
2360 } 2376 }
2361 break; 2377 break;
2362 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 2378 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
2363 if (LJ_DUALNUM) { 2379 if (LJ_DUALNUM) {
2364 dasm_put(Dst, 12313); 2380 dasm_put(Dst, 12366);
2365 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2381 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2366 switch (vk) { 2382 switch (vk) {
2367 case 0: 2383 case 0:
2368 dasm_put(Dst, 12560, LJ_TISNUM, LJ_TISNUM); 2384 dasm_put(Dst, 12613, LJ_TISNUM, LJ_TISNUM);
2369 break; 2385 break;
2370 case 1: 2386 case 1:
2371 dasm_put(Dst, 12593, LJ_TISNUM, LJ_TISNUM); 2387 dasm_put(Dst, 12646, LJ_TISNUM, LJ_TISNUM);
2372 break; 2388 break;
2373 default: 2389 default:
2374 dasm_put(Dst, 12626, LJ_TISNUM, LJ_TISNUM); 2390 dasm_put(Dst, 12679, LJ_TISNUM, LJ_TISNUM);
2375 break; 2391 break;
2376 } 2392 }
2377 dasm_put(Dst, 12420, LJ_TISNUM); 2393 dasm_put(Dst, 12473, LJ_TISNUM);
2378 if (vk == 1) { 2394 if (vk == 1) {
2379 dasm_put(Dst, 12216); 2395 dasm_put(Dst, 12236);
2380 } else { 2396 } else {
2381 dasm_put(Dst, 11994); 2397 dasm_put(Dst, 12014);
2382 } 2398 }
2383 dasm_put(Dst, 11316); 2399 dasm_put(Dst, 11336);
2384 } else { 2400 } else {
2385 dasm_put(Dst, 12313); 2401 dasm_put(Dst, 12366);
2386 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2402 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2387 switch (vk) { 2403 switch (vk) {
2388 case 0: 2404 case 0:
2389 dasm_put(Dst, 12426, LJ_TISNUM); 2405 dasm_put(Dst, 12479, LJ_TISNUM);
2390 if (LJ_DUALNUM) { 2406 if (LJ_DUALNUM) {
2391 dasm_put(Dst, 12438, LJ_TISNUM); 2407 dasm_put(Dst, 12491, LJ_TISNUM);
2392 } 2408 }
2393 if (sse) { 2409 if (sse) {
2394 dasm_put(Dst, 12659); 2410 dasm_put(Dst, 12712);
2395 } else { 2411 } else {
2396 dasm_put(Dst, 12673); 2412 dasm_put(Dst, 12726);
2397 } 2413 }
2398 break; 2414 break;
2399 case 1: 2415 case 1:
2400 dasm_put(Dst, 12471, LJ_TISNUM); 2416 dasm_put(Dst, 12524, LJ_TISNUM);
2401 if (LJ_DUALNUM) { 2417 if (LJ_DUALNUM) {
2402 dasm_put(Dst, 12483, LJ_TISNUM); 2418 dasm_put(Dst, 12536, LJ_TISNUM);
2403 } 2419 }
2404 if (sse) { 2420 if (sse) {
2405 dasm_put(Dst, 12681); 2421 dasm_put(Dst, 12734);
2406 } else { 2422 } else {
2407 dasm_put(Dst, 12695); 2423 dasm_put(Dst, 12748);
2408 } 2424 }
2409 break; 2425 break;
2410 default: 2426 default:
2411 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2427 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2412 if (sse) { 2428 if (sse) {
2413 dasm_put(Dst, 12703); 2429 dasm_put(Dst, 12756);
2414 } else { 2430 } else {
2415 dasm_put(Dst, 12717); 2431 dasm_put(Dst, 12770);
2416 } 2432 }
2417 break; 2433 break;
2418 } 2434 }
2419 if (sse) { 2435 if (sse) {
2420 dasm_put(Dst, 12176); 2436 dasm_put(Dst, 12196);
2421 } else { 2437 } else {
2422 dasm_put(Dst, 12188); 2438 dasm_put(Dst, 12208);
2423 } 2439 }
2424 dasm_put(Dst, 11316); 2440 dasm_put(Dst, 11336);
2425 } 2441 }
2426 break; 2442 break;
2427 case BC_MULVN: case BC_MULNV: case BC_MULVV: 2443 case BC_MULVN: case BC_MULNV: case BC_MULVV:
2428 if (LJ_DUALNUM) { 2444 if (LJ_DUALNUM) {
2429 dasm_put(Dst, 12313); 2445 dasm_put(Dst, 12366);
2430 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2446 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2431 switch (vk) { 2447 switch (vk) {
2432 case 0: 2448 case 0:
2433 dasm_put(Dst, 12725, LJ_TISNUM, LJ_TISNUM); 2449 dasm_put(Dst, 12778, LJ_TISNUM, LJ_TISNUM);
2434 break; 2450 break;
2435 case 1: 2451 case 1:
2436 dasm_put(Dst, 12759, LJ_TISNUM, LJ_TISNUM); 2452 dasm_put(Dst, 12812, LJ_TISNUM, LJ_TISNUM);
2437 break; 2453 break;
2438 default: 2454 default:
2439 dasm_put(Dst, 12793, LJ_TISNUM, LJ_TISNUM); 2455 dasm_put(Dst, 12846, LJ_TISNUM, LJ_TISNUM);
2440 break; 2456 break;
2441 } 2457 }
2442 dasm_put(Dst, 12420, LJ_TISNUM); 2458 dasm_put(Dst, 12473, LJ_TISNUM);
2443 if (vk == 1) { 2459 if (vk == 1) {
2444 dasm_put(Dst, 12216); 2460 dasm_put(Dst, 12236);
2445 } else { 2461 } else {
2446 dasm_put(Dst, 11994); 2462 dasm_put(Dst, 12014);
2447 } 2463 }
2448 dasm_put(Dst, 11316); 2464 dasm_put(Dst, 11336);
2449 } else { 2465 } else {
2450 dasm_put(Dst, 12313); 2466 dasm_put(Dst, 12366);
2451 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2467 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2452 switch (vk) { 2468 switch (vk) {
2453 case 0: 2469 case 0:
2454 dasm_put(Dst, 12426, LJ_TISNUM); 2470 dasm_put(Dst, 12479, LJ_TISNUM);
2455 if (LJ_DUALNUM) { 2471 if (LJ_DUALNUM) {
2456 dasm_put(Dst, 12438, LJ_TISNUM); 2472 dasm_put(Dst, 12491, LJ_TISNUM);
2457 } 2473 }
2458 if (sse) { 2474 if (sse) {
2459 dasm_put(Dst, 12827); 2475 dasm_put(Dst, 12880);
2460 } else { 2476 } else {
2461 dasm_put(Dst, 12841); 2477 dasm_put(Dst, 12894);
2462 } 2478 }
2463 break; 2479 break;
2464 case 1: 2480 case 1:
2465 dasm_put(Dst, 12471, LJ_TISNUM); 2481 dasm_put(Dst, 12524, LJ_TISNUM);
2466 if (LJ_DUALNUM) { 2482 if (LJ_DUALNUM) {
2467 dasm_put(Dst, 12483, LJ_TISNUM); 2483 dasm_put(Dst, 12536, LJ_TISNUM);
2468 } 2484 }
2469 if (sse) { 2485 if (sse) {
2470 dasm_put(Dst, 12849); 2486 dasm_put(Dst, 12902);
2471 } else { 2487 } else {
2472 dasm_put(Dst, 12863); 2488 dasm_put(Dst, 12916);
2473 } 2489 }
2474 break; 2490 break;
2475 default: 2491 default:
2476 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2492 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2477 if (sse) { 2493 if (sse) {
2478 dasm_put(Dst, 12871); 2494 dasm_put(Dst, 12924);
2479 } else { 2495 } else {
2480 dasm_put(Dst, 12885); 2496 dasm_put(Dst, 12938);
2481 } 2497 }
2482 break; 2498 break;
2483 } 2499 }
2484 if (sse) { 2500 if (sse) {
2485 dasm_put(Dst, 12176); 2501 dasm_put(Dst, 12196);
2486 } else { 2502 } else {
2487 dasm_put(Dst, 12188); 2503 dasm_put(Dst, 12208);
2488 } 2504 }
2489 dasm_put(Dst, 11316); 2505 dasm_put(Dst, 11336);
2490 } 2506 }
2491 break; 2507 break;
2492 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 2508 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
2493 dasm_put(Dst, 12313); 2509 dasm_put(Dst, 12366);
2494 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2510 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2495 switch (vk) { 2511 switch (vk) {
2496 case 0: 2512 case 0:
2497 dasm_put(Dst, 12426, LJ_TISNUM); 2513 dasm_put(Dst, 12479, LJ_TISNUM);
2498 if (LJ_DUALNUM) { 2514 if (LJ_DUALNUM) {
2499 dasm_put(Dst, 12438, LJ_TISNUM); 2515 dasm_put(Dst, 12491, LJ_TISNUM);
2500 } 2516 }
2501 if (sse) { 2517 if (sse) {
2502 dasm_put(Dst, 12893); 2518 dasm_put(Dst, 12946);
2503 } else { 2519 } else {
2504 dasm_put(Dst, 12907); 2520 dasm_put(Dst, 12960);
2505 } 2521 }
2506 break; 2522 break;
2507 case 1: 2523 case 1:
2508 dasm_put(Dst, 12471, LJ_TISNUM); 2524 dasm_put(Dst, 12524, LJ_TISNUM);
2509 if (LJ_DUALNUM) { 2525 if (LJ_DUALNUM) {
2510 dasm_put(Dst, 12483, LJ_TISNUM); 2526 dasm_put(Dst, 12536, LJ_TISNUM);
2511 } 2527 }
2512 if (sse) { 2528 if (sse) {
2513 dasm_put(Dst, 12915); 2529 dasm_put(Dst, 12968);
2514 } else { 2530 } else {
2515 dasm_put(Dst, 12929); 2531 dasm_put(Dst, 12982);
2516 } 2532 }
2517 break; 2533 break;
2518 default: 2534 default:
2519 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2535 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2520 if (sse) { 2536 if (sse) {
2521 dasm_put(Dst, 12937); 2537 dasm_put(Dst, 12990);
2522 } else { 2538 } else {
2523 dasm_put(Dst, 12951); 2539 dasm_put(Dst, 13004);
2524 } 2540 }
2525 break; 2541 break;
2526 } 2542 }
2527 if (sse) { 2543 if (sse) {
2528 dasm_put(Dst, 12176); 2544 dasm_put(Dst, 12196);
2529 } else { 2545 } else {
2530 dasm_put(Dst, 12188); 2546 dasm_put(Dst, 12208);
2531 } 2547 }
2532 dasm_put(Dst, 11316); 2548 dasm_put(Dst, 11336);
2533 break; 2549 break;
2534 case BC_MODVN: 2550 case BC_MODVN:
2535 dasm_put(Dst, 12313); 2551 dasm_put(Dst, 12366);
2536 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2552 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2537 switch (vk) { 2553 switch (vk) {
2538 case 0: 2554 case 0:
2539 dasm_put(Dst, 12426, LJ_TISNUM); 2555 dasm_put(Dst, 12479, LJ_TISNUM);
2540 if (LJ_DUALNUM) { 2556 if (LJ_DUALNUM) {
2541 dasm_put(Dst, 12438, LJ_TISNUM); 2557 dasm_put(Dst, 12491, LJ_TISNUM);
2542 } 2558 }
2543 if (sse) { 2559 if (sse) {
2544 dasm_put(Dst, 12959); 2560 dasm_put(Dst, 13012);
2545 } else { 2561 } else {
2546 dasm_put(Dst, 12973); 2562 dasm_put(Dst, 13026);
2547 } 2563 }
2548 break; 2564 break;
2549 case 1: 2565 case 1:
2550 dasm_put(Dst, 12471, LJ_TISNUM); 2566 dasm_put(Dst, 12524, LJ_TISNUM);
2551 if (LJ_DUALNUM) { 2567 if (LJ_DUALNUM) {
2552 dasm_put(Dst, 12483, LJ_TISNUM); 2568 dasm_put(Dst, 12536, LJ_TISNUM);
2553 } 2569 }
2554 if (sse) { 2570 if (sse) {
2555 dasm_put(Dst, 12981); 2571 dasm_put(Dst, 13034);
2556 } else { 2572 } else {
2557 dasm_put(Dst, 12995); 2573 dasm_put(Dst, 13048);
2558 } 2574 }
2559 break; 2575 break;
2560 default: 2576 default:
2561 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2577 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2562 if (sse) { 2578 if (sse) {
2563 dasm_put(Dst, 13003); 2579 dasm_put(Dst, 13056);
2564 } else { 2580 } else {
2565 dasm_put(Dst, 13017); 2581 dasm_put(Dst, 13070);
2566 } 2582 }
2567 break; 2583 break;
2568 } 2584 }
2569 dasm_put(Dst, 13025); 2585 dasm_put(Dst, 13078);
2570 if (sse) { 2586 if (sse) {
2571 dasm_put(Dst, 12176); 2587 dasm_put(Dst, 12196);
2572 } else { 2588 } else {
2573 dasm_put(Dst, 12188); 2589 dasm_put(Dst, 12208);
2574 } 2590 }
2575 dasm_put(Dst, 11316); 2591 dasm_put(Dst, 11336);
2576 break; 2592 break;
2577 case BC_MODNV: case BC_MODVV: 2593 case BC_MODNV: case BC_MODVV:
2578 dasm_put(Dst, 12313); 2594 dasm_put(Dst, 12366);
2579 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2595 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2580 switch (vk) { 2596 switch (vk) {
2581 case 0: 2597 case 0:
2582 dasm_put(Dst, 12426, LJ_TISNUM); 2598 dasm_put(Dst, 12479, LJ_TISNUM);
2583 if (LJ_DUALNUM) { 2599 if (LJ_DUALNUM) {
2584 dasm_put(Dst, 12438, LJ_TISNUM); 2600 dasm_put(Dst, 12491, LJ_TISNUM);
2585 } 2601 }
2586 if (sse) { 2602 if (sse) {
2587 dasm_put(Dst, 12959); 2603 dasm_put(Dst, 13012);
2588 } else { 2604 } else {
2589 dasm_put(Dst, 12973); 2605 dasm_put(Dst, 13026);
2590 } 2606 }
2591 break; 2607 break;
2592 case 1: 2608 case 1:
2593 dasm_put(Dst, 12471, LJ_TISNUM); 2609 dasm_put(Dst, 12524, LJ_TISNUM);
2594 if (LJ_DUALNUM) { 2610 if (LJ_DUALNUM) {
2595 dasm_put(Dst, 12483, LJ_TISNUM); 2611 dasm_put(Dst, 12536, LJ_TISNUM);
2596 } 2612 }
2597 if (sse) { 2613 if (sse) {
2598 dasm_put(Dst, 12981); 2614 dasm_put(Dst, 13034);
2599 } else { 2615 } else {
2600 dasm_put(Dst, 12995); 2616 dasm_put(Dst, 13048);
2601 } 2617 }
2602 break; 2618 break;
2603 default: 2619 default:
2604 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2620 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2605 if (sse) { 2621 if (sse) {
2606 dasm_put(Dst, 13003); 2622 dasm_put(Dst, 13056);
2607 } else { 2623 } else {
2608 dasm_put(Dst, 13017); 2624 dasm_put(Dst, 13070);
2609 } 2625 }
2610 break; 2626 break;
2611 } 2627 }
2612 dasm_put(Dst, 13031); 2628 dasm_put(Dst, 13084);
2613 break; 2629 break;
2614 case BC_POW: 2630 case BC_POW:
2615 dasm_put(Dst, 12313); 2631 dasm_put(Dst, 12366);
2616 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 2632 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
2617 switch (vk) { 2633 switch (vk) {
2618 case 0: 2634 case 0:
2619 dasm_put(Dst, 12426, LJ_TISNUM); 2635 dasm_put(Dst, 12479, LJ_TISNUM);
2620 if (LJ_DUALNUM) { 2636 if (LJ_DUALNUM) {
2621 dasm_put(Dst, 12438, LJ_TISNUM); 2637 dasm_put(Dst, 12491, LJ_TISNUM);
2622 } 2638 }
2623 if (sse) { 2639 if (sse) {
2624 dasm_put(Dst, 12959); 2640 dasm_put(Dst, 13012);
2625 } else { 2641 } else {
2626 dasm_put(Dst, 12973); 2642 dasm_put(Dst, 13026);
2627 } 2643 }
2628 break; 2644 break;
2629 case 1: 2645 case 1:
2630 dasm_put(Dst, 12471, LJ_TISNUM); 2646 dasm_put(Dst, 12524, LJ_TISNUM);
2631 if (LJ_DUALNUM) { 2647 if (LJ_DUALNUM) {
2632 dasm_put(Dst, 12483, LJ_TISNUM); 2648 dasm_put(Dst, 12536, LJ_TISNUM);
2633 } 2649 }
2634 if (sse) { 2650 if (sse) {
2635 dasm_put(Dst, 12981); 2651 dasm_put(Dst, 13034);
2636 } else { 2652 } else {
2637 dasm_put(Dst, 12995); 2653 dasm_put(Dst, 13048);
2638 } 2654 }
2639 break; 2655 break;
2640 default: 2656 default:
2641 dasm_put(Dst, 12516, LJ_TISNUM, LJ_TISNUM); 2657 dasm_put(Dst, 12569, LJ_TISNUM, LJ_TISNUM);
2642 if (sse) { 2658 if (sse) {
2643 dasm_put(Dst, 13003); 2659 dasm_put(Dst, 13056);
2644 } else { 2660 } else {
2645 dasm_put(Dst, 13017); 2661 dasm_put(Dst, 13070);
2646 } 2662 }
2647 break; 2663 break;
2648 } 2664 }
2649 dasm_put(Dst, 13036); 2665 dasm_put(Dst, 13089);
2650 if (sse) { 2666 if (sse) {
2651 dasm_put(Dst, 12176); 2667 dasm_put(Dst, 12196);
2652 } else { 2668 } else {
2653 dasm_put(Dst, 12188); 2669 dasm_put(Dst, 12208);
2654 } 2670 }
2655 dasm_put(Dst, 11316); 2671 dasm_put(Dst, 11336);
2656 break; 2672 break;
2657 2673
2658 case BC_CAT: 2674 case BC_CAT:
2659 dasm_put(Dst, 13040, Dt1(->base), Dt1(->base)); 2675 dasm_put(Dst, 13093, Dt1(->base), Dt1(->base));
2660 break; 2676 break;
2661 2677
2662 /* -- Constant ops ------------------------------------------------------ */ 2678 /* -- Constant ops ------------------------------------------------------ */
2663 2679
2664 case BC_KSTR: 2680 case BC_KSTR:
2665 dasm_put(Dst, 13134, LJ_TSTR); 2681 dasm_put(Dst, 13187, LJ_TSTR);
2666 break; 2682 break;
2667 case BC_KCDATA: 2683 case BC_KCDATA:
2668#if LJ_HASFFI 2684#if LJ_HASFFI
2669 dasm_put(Dst, 13134, LJ_TCDATA); 2685 dasm_put(Dst, 13187, LJ_TCDATA);
2670#endif 2686#endif
2671 break; 2687 break;
2672 case BC_KSHORT: 2688 case BC_KSHORT:
2673 if (LJ_DUALNUM) { 2689 if (LJ_DUALNUM) {
2674 dasm_put(Dst, 13167, LJ_TISNUM); 2690 dasm_put(Dst, 13220, LJ_TISNUM);
2675 } else if (sse) { 2691 } else if (sse) {
2676 dasm_put(Dst, 13179); 2692 dasm_put(Dst, 13232);
2677 } else { 2693 } else {
2678 dasm_put(Dst, 13194); 2694 dasm_put(Dst, 13247);
2679 } 2695 }
2680 dasm_put(Dst, 11316); 2696 dasm_put(Dst, 11336);
2681 break; 2697 break;
2682 case BC_KNUM: 2698 case BC_KNUM:
2683 if (sse) { 2699 if (sse) {
2684 dasm_put(Dst, 13202); 2700 dasm_put(Dst, 13255);
2685 } else { 2701 } else {
2686 dasm_put(Dst, 13215); 2702 dasm_put(Dst, 13268);
2687 } 2703 }
2688 dasm_put(Dst, 11316); 2704 dasm_put(Dst, 11336);
2689 break; 2705 break;
2690 case BC_KPRI: 2706 case BC_KPRI:
2691 dasm_put(Dst, 13222); 2707 dasm_put(Dst, 13275);
2692 break; 2708 break;
2693 case BC_KNIL: 2709 case BC_KNIL:
2694 dasm_put(Dst, 13248, LJ_TNIL); 2710 dasm_put(Dst, 13301, LJ_TNIL);
2695 break; 2711 break;
2696 2712
2697 /* -- Upvalue and function ops ------------------------------------------ */ 2713 /* -- Upvalue and function ops ------------------------------------------ */
2698 2714
2699 case BC_UGET: 2715 case BC_UGET:
2700 dasm_put(Dst, 13294, offsetof(GCfuncL, uvptr), DtA(->v)); 2716 dasm_put(Dst, 13347, offsetof(GCfuncL, uvptr), DtA(->v));
2701 break; 2717 break;
2702 case BC_USETV: 2718 case BC_USETV:
2703#define TV2MARKOFS \ 2719#define TV2MARKOFS \
2704 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2720 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2705 dasm_put(Dst, 13338, 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); 2721 dasm_put(Dst, 13391, 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);
2706 dasm_put(Dst, 13428); 2722 dasm_put(Dst, 13481);
2707 break; 2723 break;
2708#undef TV2MARKOFS 2724#undef TV2MARKOFS
2709 case BC_USETS: 2725 case BC_USETS:
2710 dasm_put(Dst, 13440, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2726 dasm_put(Dst, 13493, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2711 break; 2727 break;
2712 case BC_USETN: 2728 case BC_USETN:
2713 dasm_put(Dst, 13531); 2729 dasm_put(Dst, 13584);
2714 if (sse) { 2730 if (sse) {
2715 dasm_put(Dst, 13536); 2731 dasm_put(Dst, 13589);
2716 } else { 2732 } else {
2717 dasm_put(Dst, 11826); 2733 dasm_put(Dst, 11846);
2718 } 2734 }
2719 dasm_put(Dst, 13543, offsetof(GCfuncL, uvptr), DtA(->v)); 2735 dasm_put(Dst, 13596, offsetof(GCfuncL, uvptr), DtA(->v));
2720 if (sse) { 2736 if (sse) {
2721 dasm_put(Dst, 13552); 2737 dasm_put(Dst, 13605);
2722 } else { 2738 } else {
2723 dasm_put(Dst, 13558); 2739 dasm_put(Dst, 13611);
2724 } 2740 }
2725 dasm_put(Dst, 11316); 2741 dasm_put(Dst, 11336);
2726 break; 2742 break;
2727 case BC_USETP: 2743 case BC_USETP:
2728 dasm_put(Dst, 13561, offsetof(GCfuncL, uvptr), DtA(->v)); 2744 dasm_put(Dst, 13614, offsetof(GCfuncL, uvptr), DtA(->v));
2729 break; 2745 break;
2730 case BC_UCLO: 2746 case BC_UCLO:
2731 dasm_put(Dst, 13598, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2747 dasm_put(Dst, 13651, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2732 break; 2748 break;
2733 2749
2734 case BC_FNEW: 2750 case BC_FNEW:
2735 dasm_put(Dst, 13652, Dt1(->base), Dt1(->base), LJ_TFUNC); 2751 dasm_put(Dst, 13705, Dt1(->base), Dt1(->base), LJ_TFUNC);
2736 break; 2752 break;
2737 2753
2738 /* -- Table ops --------------------------------------------------------- */ 2754 /* -- Table ops --------------------------------------------------------- */
2739 2755
2740 case BC_TNEW: 2756 case BC_TNEW:
2741 dasm_put(Dst, 13723, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2757 dasm_put(Dst, 13776, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2742 break; 2758 break;
2743 case BC_TDUP: 2759 case BC_TDUP:
2744 dasm_put(Dst, 13849, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2760 dasm_put(Dst, 13902, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2745 break; 2761 break;
2746 2762
2747 case BC_GGET: 2763 case BC_GGET:
2748 dasm_put(Dst, 13941, Dt7(->env)); 2764 dasm_put(Dst, 13994, Dt7(->env));
2749 break; 2765 break;
2750 case BC_GSET: 2766 case BC_GSET:
2751 dasm_put(Dst, 13959, Dt7(->env)); 2767 dasm_put(Dst, 14012, Dt7(->env));
2752 break; 2768 break;
2753 2769
2754 case BC_TGETV: 2770 case BC_TGETV:
2755 dasm_put(Dst, 13977, LJ_TTAB); 2771 dasm_put(Dst, 14030, LJ_TTAB);
2756 if (LJ_DUALNUM) { 2772 if (LJ_DUALNUM) {
2757 dasm_put(Dst, 14000, LJ_TISNUM); 2773 dasm_put(Dst, 14053, LJ_TISNUM);
2758 } else { 2774 } else {
2759 dasm_put(Dst, 14014, LJ_TISNUM); 2775 dasm_put(Dst, 14067, LJ_TISNUM);
2760 if (sse) { 2776 if (sse) {
2761 dasm_put(Dst, 14025); 2777 dasm_put(Dst, 14078);
2762 } else { 2778 } else {
2763 dasm_put(Dst, 14046); 2779 dasm_put(Dst, 14099);
2764 if (cmov) { 2780 if (cmov) {
2765 dasm_put(Dst, 3924); 2781 dasm_put(Dst, 3944);
2766 } else { 2782 } else {
2767 dasm_put(Dst, 3930); 2783 dasm_put(Dst, 3950);
2768 } 2784 }
2769 dasm_put(Dst, 2660); 2785 dasm_put(Dst, 2680);
2770 } 2786 }
2771 dasm_put(Dst, 14056); 2787 dasm_put(Dst, 14109);
2772 } 2788 }
2773 dasm_put(Dst, 14061, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL); 2789 dasm_put(Dst, 14114, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TNIL);
2774 dasm_put(Dst, 14156, LJ_TSTR); 2790 dasm_put(Dst, 14209, LJ_TSTR);
2775 break; 2791 break;
2776 case BC_TGETS: 2792 case BC_TGETS:
2777 dasm_put(Dst, 14174, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2793 dasm_put(Dst, 14227, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2778 dasm_put(Dst, 14262, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2794 dasm_put(Dst, 14315, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2779 break; 2795 break;
2780 case BC_TGETB: 2796 case BC_TGETB:
2781 dasm_put(Dst, 14332, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2797 dasm_put(Dst, 14385, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2782 dasm_put(Dst, 14431, LJ_TNIL); 2798 dasm_put(Dst, 14484, LJ_TNIL);
2783 break; 2799 break;
2784 2800
2785 case BC_TSETV: 2801 case BC_TSETV:
2786 dasm_put(Dst, 14448, LJ_TTAB); 2802 dasm_put(Dst, 14501, LJ_TTAB);
2787 if (LJ_DUALNUM) { 2803 if (LJ_DUALNUM) {
2788 dasm_put(Dst, 14000, LJ_TISNUM); 2804 dasm_put(Dst, 14053, LJ_TISNUM);
2789 } else { 2805 } else {
2790 dasm_put(Dst, 14014, LJ_TISNUM); 2806 dasm_put(Dst, 14067, LJ_TISNUM);
2791 if (sse) { 2807 if (sse) {
2792 dasm_put(Dst, 14025); 2808 dasm_put(Dst, 14078);
2793 } else { 2809 } else {
2794 dasm_put(Dst, 14046); 2810 dasm_put(Dst, 14099);
2795 if (cmov) { 2811 if (cmov) {
2796 dasm_put(Dst, 3924); 2812 dasm_put(Dst, 3944);
2797 } else { 2813 } else {
2798 dasm_put(Dst, 3930); 2814 dasm_put(Dst, 3950);
2799 } 2815 }
2800 dasm_put(Dst, 2660); 2816 dasm_put(Dst, 2680);
2801 } 2817 }
2802 dasm_put(Dst, 14471); 2818 dasm_put(Dst, 14524);
2803 } 2819 }
2804 dasm_put(Dst, 14476, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 2820 dasm_put(Dst, 14529, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
2805 dasm_put(Dst, 14560, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2821 dasm_put(Dst, 14613, LJ_TSTR, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2806 break; 2822 break;
2807 case BC_TSETS: 2823 case BC_TSETS:
2808 dasm_put(Dst, 14617, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2824 dasm_put(Dst, 14670, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2809 dasm_put(Dst, 14692, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2825 dasm_put(Dst, 14745, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2810 dasm_put(Dst, 14784, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2826 dasm_put(Dst, 14837, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2811 break; 2827 break;
2812 case BC_TSETB: 2828 case BC_TSETB:
2813 dasm_put(Dst, 14880, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2829 dasm_put(Dst, 14933, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2814 dasm_put(Dst, 14978, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2830 dasm_put(Dst, 15031, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2815 break; 2831 break;
2816 2832
2817 case BC_TSETM: 2833 case BC_TSETM:
2818 dasm_put(Dst, 15024, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2834 dasm_put(Dst, 15077, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2819 dasm_put(Dst, 15173, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2835 dasm_put(Dst, 15226, Dt6(->marked), (uint8_t)~LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2820 break; 2836 break;
2821 2837
2822 /* -- Calls and vararg handling ----------------------------------------- */ 2838 /* -- Calls and vararg handling ----------------------------------------- */
2823 2839
2824 case BC_CALL: case BC_CALLM: 2840 case BC_CALL: case BC_CALLM:
2825 dasm_put(Dst, 12317); 2841 dasm_put(Dst, 12370);
2826 if (op == BC_CALLM) { 2842 if (op == BC_CALLM) {
2827 dasm_put(Dst, 15191); 2843 dasm_put(Dst, 15244);
2828 } 2844 }
2829 dasm_put(Dst, 15196, LJ_TFUNC, Dt7(->pc)); 2845 dasm_put(Dst, 15249, LJ_TFUNC, Dt7(->pc));
2830 break; 2846 break;
2831 2847
2832 case BC_CALLMT: 2848 case BC_CALLMT:
2833 dasm_put(Dst, 15191); 2849 dasm_put(Dst, 15244);
2834 break; 2850 break;
2835 case BC_CALLT: 2851 case BC_CALLT:
2836 dasm_put(Dst, 15237, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2852 dasm_put(Dst, 15290, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2837 dasm_put(Dst, 15355, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2853 dasm_put(Dst, 15408, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2838 break; 2854 break;
2839 2855
2840 case BC_ITERC: 2856 case BC_ITERC:
2841 dasm_put(Dst, 15425, LJ_TFUNC, 2+1, Dt7(->pc)); 2857 dasm_put(Dst, 15478, LJ_TFUNC, 2+1, Dt7(->pc));
2842 break; 2858 break;
2843 2859
2844 case BC_ITERN: 2860 case BC_ITERN:
2845#if LJ_HASJIT 2861#if LJ_HASJIT
2846#endif 2862#endif
2847 dasm_put(Dst, 15505, Dt6(->asize), Dt6(->array), LJ_TNIL); 2863 dasm_put(Dst, 15558, Dt6(->asize), Dt6(->array), LJ_TNIL);
2848 if (LJ_DUALNUM) { 2864 if (LJ_DUALNUM) {
2849 dasm_put(Dst, 12211, LJ_TISNUM); 2865 dasm_put(Dst, 12231, LJ_TISNUM);
2850 } else if (sse) { 2866 } else if (sse) {
2851 dasm_put(Dst, 12287); 2867 dasm_put(Dst, 12324);
2852 } else { 2868 } else {
2853 dasm_put(Dst, 15551); 2869 dasm_put(Dst, 15604);
2854 } 2870 }
2855 dasm_put(Dst, 15557); 2871 dasm_put(Dst, 15610);
2856 if (LJ_DUALNUM) { 2872 if (LJ_DUALNUM) {
2857 } else if (sse) { 2873 } else if (sse) {
2858 dasm_put(Dst, 12176); 2874 dasm_put(Dst, 12196);
2859 } else { 2875 } else {
2860 dasm_put(Dst, 12188); 2876 dasm_put(Dst, 12208);
2861 } 2877 }
2862 dasm_put(Dst, 15576, -BCBIAS_J*4); 2878 dasm_put(Dst, 15629, -BCBIAS_J*4);
2863 if (!LJ_DUALNUM && !sse) { 2879 if (!LJ_DUALNUM && !sse) {
2864 dasm_put(Dst, 15627); 2880 dasm_put(Dst, 15680);
2865 } 2881 }
2866 dasm_put(Dst, 15633, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2882 dasm_put(Dst, 15686, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2867 dasm_put(Dst, 15708); 2883 dasm_put(Dst, 15761);
2868 break; 2884 break;
2869 2885
2870 case BC_ISNEXT: 2886 case BC_ISNEXT:
2871 dasm_put(Dst, 15716, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2887 dasm_put(Dst, 15769, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2872 break; 2888 break;
2873 2889
2874 case BC_VARG: 2890 case BC_VARG:
2875 dasm_put(Dst, 15815, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2891 dasm_put(Dst, 15868, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2876 dasm_put(Dst, 15979, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2892 dasm_put(Dst, 16032, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2877 break; 2893 break;
2878 2894
2879 /* -- Returns ----------------------------------------------------------- */ 2895 /* -- Returns ----------------------------------------------------------- */
2880 2896
2881 case BC_RETM: 2897 case BC_RETM:
2882 dasm_put(Dst, 15191); 2898 dasm_put(Dst, 15244);
2883 break; 2899 break;
2884 2900
2885 case BC_RET: case BC_RET0: case BC_RET1: 2901 case BC_RET: case BC_RET0: case BC_RET1:
2886 if (op != BC_RET0) { 2902 if (op != BC_RET0) {
2887 dasm_put(Dst, 16050); 2903 dasm_put(Dst, 16103);
2888 } 2904 }
2889 dasm_put(Dst, 16054, FRAME_TYPE); 2905 dasm_put(Dst, 16107, FRAME_TYPE);
2890 switch (op) { 2906 switch (op) {
2891 case BC_RET: 2907 case BC_RET:
2892 dasm_put(Dst, 16073); 2908 dasm_put(Dst, 16126);
2893 break; 2909 break;
2894 case BC_RET1: 2910 case BC_RET1:
2895 dasm_put(Dst, 16131); 2911 dasm_put(Dst, 16184);
2896 /* fallthrough */ 2912 /* fallthrough */
2897 case BC_RET0: 2913 case BC_RET0:
2898 dasm_put(Dst, 16147); 2914 dasm_put(Dst, 16200);
2899 default: 2915 default:
2900 break; 2916 break;
2901 } 2917 }
2902 dasm_put(Dst, 16158, Dt7(->pc), PC2PROTO(k)); 2918 dasm_put(Dst, 16211, Dt7(->pc), PC2PROTO(k));
2903 if (op == BC_RET) { 2919 if (op == BC_RET) {
2904 dasm_put(Dst, 16200, LJ_TNIL); 2920 dasm_put(Dst, 16253, LJ_TNIL);
2905 } else { 2921 } else {
2906 dasm_put(Dst, 16209, LJ_TNIL); 2922 dasm_put(Dst, 16262, LJ_TNIL);
2907 } 2923 }
2908 dasm_put(Dst, 16216, -FRAME_VARG, FRAME_TYPEP); 2924 dasm_put(Dst, 16269, -FRAME_VARG, FRAME_TYPEP);
2909 if (op != BC_RET0) { 2925 if (op != BC_RET0) {
2910 dasm_put(Dst, 16240); 2926 dasm_put(Dst, 16293);
2911 } 2927 }
2912 dasm_put(Dst, 4908); 2928 dasm_put(Dst, 4928);
2913 break; 2929 break;
2914 2930
2915 /* -- Loops and branches ------------------------------------------------ */ 2931 /* -- Loops and branches ------------------------------------------------ */
@@ -2917,7 +2933,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2917 2933
2918 case BC_FORL: 2934 case BC_FORL:
2919#if LJ_HASJIT 2935#if LJ_HASJIT
2920 dasm_put(Dst, 16244, HOTCOUNT_PCMASK, GG_DISP2HOT); 2936 dasm_put(Dst, 16297, HOTCOUNT_PCMASK, GG_DISP2HOT);
2921#endif 2937#endif
2922 break; 2938 break;
2923 2939
@@ -2929,111 +2945,111 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2929 case BC_FORI: 2945 case BC_FORI:
2930 case BC_IFORL: 2946 case BC_IFORL:
2931 vk = (op == BC_IFORL || op == BC_JFORL); 2947 vk = (op == BC_IFORL || op == BC_JFORL);
2932 dasm_put(Dst, 16265); 2948 dasm_put(Dst, 16318);
2933 if (LJ_DUALNUM) { 2949 if (LJ_DUALNUM) {
2934 dasm_put(Dst, 16269, LJ_TISNUM); 2950 dasm_put(Dst, 16322, LJ_TISNUM);
2935 if (!vk) { 2951 if (!vk) {
2936 dasm_put(Dst, 16279, LJ_TISNUM, LJ_TISNUM); 2952 dasm_put(Dst, 16332, LJ_TISNUM, LJ_TISNUM);
2937 } else { 2953 } else {
2938#ifdef LUA_USE_ASSERT 2954#ifdef LUA_USE_ASSERT
2939 dasm_put(Dst, 16308, LJ_TISNUM, LJ_TISNUM); 2955 dasm_put(Dst, 16361, LJ_TISNUM, LJ_TISNUM);
2940#endif 2956#endif
2941 dasm_put(Dst, 16327); 2957 dasm_put(Dst, 16380);
2942 } 2958 }
2943 dasm_put(Dst, 16346, LJ_TISNUM); 2959 dasm_put(Dst, 16399, LJ_TISNUM);
2944 if (op == BC_FORI) { 2960 if (op == BC_FORI) {
2945 dasm_put(Dst, 16357, -BCBIAS_J*4); 2961 dasm_put(Dst, 16410, -BCBIAS_J*4);
2946 } else if (op == BC_JFORI) { 2962 } else if (op == BC_JFORI) {
2947 dasm_put(Dst, 16371, -BCBIAS_J*4, BC_JLOOP); 2963 dasm_put(Dst, 16424, -BCBIAS_J*4, BC_JLOOP);
2948 } else if (op == BC_IFORL) { 2964 } else if (op == BC_IFORL) {
2949 dasm_put(Dst, 16389, -BCBIAS_J*4); 2965 dasm_put(Dst, 16442, -BCBIAS_J*4);
2950 } else { 2966 } else {
2951 dasm_put(Dst, 16381, BC_JLOOP); 2967 dasm_put(Dst, 16434, BC_JLOOP);
2952 } 2968 }
2953 dasm_put(Dst, 16403); 2969 dasm_put(Dst, 16456);
2954 if (vk) { 2970 if (vk) {
2955 dasm_put(Dst, 16426); 2971 dasm_put(Dst, 16479);
2956 } 2972 }
2957 dasm_put(Dst, 16346, LJ_TISNUM); 2973 dasm_put(Dst, 16399, LJ_TISNUM);
2958 if (op == BC_FORI) { 2974 if (op == BC_FORI) {
2959 dasm_put(Dst, 16435); 2975 dasm_put(Dst, 16488);
2960 } else if (op == BC_JFORI) { 2976 } else if (op == BC_JFORI) {
2961 dasm_put(Dst, 16440, -BCBIAS_J*4, BC_JLOOP); 2977 dasm_put(Dst, 16493, -BCBIAS_J*4, BC_JLOOP);
2962 } else if (op == BC_IFORL) { 2978 } else if (op == BC_IFORL) {
2963 dasm_put(Dst, 16454); 2979 dasm_put(Dst, 16507);
2964 } else { 2980 } else {
2965 dasm_put(Dst, 16450, BC_JLOOP); 2981 dasm_put(Dst, 16503, BC_JLOOP);
2966 } 2982 }
2967 dasm_put(Dst, 16459); 2983 dasm_put(Dst, 16512);
2968 } else if (!vk) { 2984 } else if (!vk) {
2969 dasm_put(Dst, 16466, LJ_TISNUM); 2985 dasm_put(Dst, 16519, LJ_TISNUM);
2970 } 2986 }
2971 if (!vk) { 2987 if (!vk) {
2972 dasm_put(Dst, 16472, LJ_TISNUM); 2988 dasm_put(Dst, 16525, LJ_TISNUM);
2973 } else { 2989 } else {
2974#ifdef LUA_USE_ASSERT 2990#ifdef LUA_USE_ASSERT
2975 dasm_put(Dst, 16486, LJ_TISNUM, LJ_TISNUM); 2991 dasm_put(Dst, 16539, LJ_TISNUM, LJ_TISNUM);
2976#endif 2992#endif
2977 } 2993 }
2978 dasm_put(Dst, 16505); 2994 dasm_put(Dst, 16558);
2979 if (!vk) { 2995 if (!vk) {
2980 dasm_put(Dst, 16509, LJ_TISNUM); 2996 dasm_put(Dst, 16562, LJ_TISNUM);
2981 } 2997 }
2982 if (sse) { 2998 if (sse) {
2983 dasm_put(Dst, 16518); 2999 dasm_put(Dst, 16571);
2984 if (vk) { 3000 if (vk) {
2985 dasm_put(Dst, 16530); 3001 dasm_put(Dst, 16583);
2986 } else { 3002 } else {
2987 dasm_put(Dst, 16549); 3003 dasm_put(Dst, 16602);
2988 } 3004 }
2989 dasm_put(Dst, 16554); 3005 dasm_put(Dst, 16607);
2990 } else { 3006 } else {
2991 dasm_put(Dst, 16567); 3007 dasm_put(Dst, 16620);
2992 if (vk) { 3008 if (vk) {
2993 dasm_put(Dst, 16573); 3009 dasm_put(Dst, 16626);
2994 } else { 3010 } else {
2995 dasm_put(Dst, 16589); 3011 dasm_put(Dst, 16642);
2996 } 3012 }
2997 dasm_put(Dst, 16597); 3013 dasm_put(Dst, 16650);
2998 if (cmov) { 3014 if (cmov) {
2999 dasm_put(Dst, 3924); 3015 dasm_put(Dst, 3944);
3000 } else { 3016 } else {
3001 dasm_put(Dst, 3930); 3017 dasm_put(Dst, 3950);
3002 } 3018 }
3003 if (!cmov) { 3019 if (!cmov) {
3004 dasm_put(Dst, 16602); 3020 dasm_put(Dst, 16655);
3005 } 3021 }
3006 } 3022 }
3007 if (op == BC_FORI) { 3023 if (op == BC_FORI) {
3008 if (LJ_DUALNUM) { 3024 if (LJ_DUALNUM) {
3009 dasm_put(Dst, 16608); 3025 dasm_put(Dst, 16661);
3010 } else { 3026 } else {
3011 dasm_put(Dst, 16613, -BCBIAS_J*4); 3027 dasm_put(Dst, 16666, -BCBIAS_J*4);
3012 } 3028 }
3013 } else if (op == BC_JFORI) { 3029 } else if (op == BC_JFORI) {
3014 dasm_put(Dst, 16623, -BCBIAS_J*4, BC_JLOOP); 3030 dasm_put(Dst, 16676, -BCBIAS_J*4, BC_JLOOP);
3015 } else if (op == BC_IFORL) { 3031 } else if (op == BC_IFORL) {
3016 if (LJ_DUALNUM) { 3032 if (LJ_DUALNUM) {
3017 dasm_put(Dst, 16637); 3033 dasm_put(Dst, 16690);
3018 } else { 3034 } else {
3019 dasm_put(Dst, 16642, -BCBIAS_J*4); 3035 dasm_put(Dst, 16695, -BCBIAS_J*4);
3020 } 3036 }
3021 } else { 3037 } else {
3022 dasm_put(Dst, 16633, BC_JLOOP); 3038 dasm_put(Dst, 16686, BC_JLOOP);
3023 } 3039 }
3024 if (LJ_DUALNUM) { 3040 if (LJ_DUALNUM) {
3025 dasm_put(Dst, 11213); 3041 dasm_put(Dst, 11233);
3026 } else { 3042 } else {
3027 dasm_put(Dst, 11954); 3043 dasm_put(Dst, 11974);
3028 } 3044 }
3029 if (sse) { 3045 if (sse) {
3030 dasm_put(Dst, 16652); 3046 dasm_put(Dst, 16705);
3031 } 3047 }
3032 break; 3048 break;
3033 3049
3034 case BC_ITERL: 3050 case BC_ITERL:
3035#if LJ_HASJIT 3051#if LJ_HASJIT
3036 dasm_put(Dst, 16244, HOTCOUNT_PCMASK, GG_DISP2HOT); 3052 dasm_put(Dst, 16297, HOTCOUNT_PCMASK, GG_DISP2HOT);
3037#endif 3053#endif
3038 break; 3054 break;
3039 3055
@@ -3042,33 +3058,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3042 break; 3058 break;
3043#endif 3059#endif
3044 case BC_IITERL: 3060 case BC_IITERL:
3045 dasm_put(Dst, 16663, LJ_TNIL); 3061 dasm_put(Dst, 16716, LJ_TNIL);
3046 if (op == BC_JITERL) { 3062 if (op == BC_JITERL) {
3047 dasm_put(Dst, 16678, BC_JLOOP); 3063 dasm_put(Dst, 16731, BC_JLOOP);
3048 } else { 3064 } else {
3049 dasm_put(Dst, 16692, -BCBIAS_J*4); 3065 dasm_put(Dst, 16745, -BCBIAS_J*4);
3050 } 3066 }
3051 dasm_put(Dst, 11314); 3067 dasm_put(Dst, 11334);
3052 break; 3068 break;
3053 3069
3054 case BC_LOOP: 3070 case BC_LOOP:
3055#if LJ_HASJIT 3071#if LJ_HASJIT
3056 dasm_put(Dst, 16244, HOTCOUNT_PCMASK, GG_DISP2HOT); 3072 dasm_put(Dst, 16297, HOTCOUNT_PCMASK, GG_DISP2HOT);
3057#endif 3073#endif
3058 break; 3074 break;
3059 3075
3060 case BC_ILOOP: 3076 case BC_ILOOP:
3061 dasm_put(Dst, 11316); 3077 dasm_put(Dst, 11336);
3062 break; 3078 break;
3063 3079
3064 case BC_JLOOP: 3080 case BC_JLOOP:
3065#if LJ_HASJIT 3081#if LJ_HASJIT
3066 dasm_put(Dst, 16708, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 3082 dasm_put(Dst, 16761, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
3067#endif 3083#endif
3068 break; 3084 break;
3069 3085
3070 case BC_JMP: 3086 case BC_JMP:
3071 dasm_put(Dst, 16731, -BCBIAS_J*4); 3087 dasm_put(Dst, 16784, -BCBIAS_J*4);
3072 break; 3088 break;
3073 3089
3074 /* -- Function headers -------------------------------------------------- */ 3090 /* -- Function headers -------------------------------------------------- */
@@ -3082,7 +3098,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3082 3098
3083 case BC_FUNCF: 3099 case BC_FUNCF:
3084#if LJ_HASJIT 3100#if LJ_HASJIT
3085 dasm_put(Dst, 16755, HOTCOUNT_PCMASK, GG_DISP2HOT); 3101 dasm_put(Dst, 16808, HOTCOUNT_PCMASK, GG_DISP2HOT);
3086#endif 3102#endif
3087 case BC_FUNCV: /* NYI: compiled vararg functions. */ 3103 case BC_FUNCV: /* NYI: compiled vararg functions. */
3088 break; 3104 break;
@@ -3092,47 +3108,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
3092 break; 3108 break;
3093#endif 3109#endif
3094 case BC_IFUNCF: 3110 case BC_IFUNCF:
3095 dasm_put(Dst, 16776, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 3111 dasm_put(Dst, 16829, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
3096 if (op == BC_JFUNCF) { 3112 if (op == BC_JFUNCF) {
3097 dasm_put(Dst, 16806, BC_JLOOP); 3113 dasm_put(Dst, 16859, BC_JLOOP);
3098 } else { 3114 } else {
3099 dasm_put(Dst, 11316); 3115 dasm_put(Dst, 11336);
3100 } 3116 }
3101 dasm_put(Dst, 16815, LJ_TNIL); 3117 dasm_put(Dst, 16868, LJ_TNIL);
3102 break; 3118 break;
3103 3119
3104 case BC_JFUNCV: 3120 case BC_JFUNCV:
3105#if !LJ_HASJIT 3121#if !LJ_HASJIT
3106 break; 3122 break;
3107#endif 3123#endif
3108 dasm_put(Dst, 10416); 3124 dasm_put(Dst, 10436);
3109 break; /* NYI: compiled vararg functions. */ 3125 break; /* NYI: compiled vararg functions. */
3110 3126
3111 case BC_IFUNCV: 3127 case BC_IFUNCV:
3112 dasm_put(Dst, 16837, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 3128 dasm_put(Dst, 16890, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
3113 if (op == BC_JFUNCV) { 3129 if (op == BC_JFUNCV) {
3114 dasm_put(Dst, 16806, BC_JLOOP); 3130 dasm_put(Dst, 16859, BC_JLOOP);
3115 } else { 3131 } else {
3116 dasm_put(Dst, 16928, -4+PC2PROTO(k)); 3132 dasm_put(Dst, 16981, -4+PC2PROTO(k));
3117 } 3133 }
3118 dasm_put(Dst, 16950, LJ_TNIL); 3134 dasm_put(Dst, 17003, LJ_TNIL);
3119 break; 3135 break;
3120 3136
3121 case BC_FUNCC: 3137 case BC_FUNCC:
3122 case BC_FUNCCW: 3138 case BC_FUNCCW:
3123 dasm_put(Dst, 16972, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 3139 dasm_put(Dst, 17025, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
3124 if (op == BC_FUNCC) { 3140 if (op == BC_FUNCC) {
3125 dasm_put(Dst, 17001); 3141 dasm_put(Dst, 17054);
3126 } else { 3142 } else {
3127 dasm_put(Dst, 17005); 3143 dasm_put(Dst, 17058);
3128 } 3144 }
3129 dasm_put(Dst, 17013, DISPATCH_GL(vmstate), ~LJ_VMST_C); 3145 dasm_put(Dst, 17066, DISPATCH_GL(vmstate), ~LJ_VMST_C);
3130 if (op == BC_FUNCC) { 3146 if (op == BC_FUNCC) {
3131 dasm_put(Dst, 17022); 3147 dasm_put(Dst, 17075);
3132 } else { 3148 } else {
3133 dasm_put(Dst, 17026, DISPATCH_GL(wrapf)); 3149 dasm_put(Dst, 17079, DISPATCH_GL(wrapf));
3134 } 3150 }
3135 dasm_put(Dst, 17031, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 3151 dasm_put(Dst, 17084, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
3136 break; 3152 break;
3137 3153
3138 /* ---------------------------------------------------------------------- */ 3154 /* ---------------------------------------------------------------------- */
@@ -3160,7 +3176,7 @@ static int build_backend(BuildCtx *ctx)
3160 3176
3161 build_subroutines(ctx, cmov, sse); 3177 build_subroutines(ctx, cmov, sse);
3162 3178
3163 dasm_put(Dst, 17056); 3179 dasm_put(Dst, 17109);
3164 for (op = 0; op < BC__MAX; op++) 3180 for (op = 0; op < BC__MAX; op++)
3165 build_ins(ctx, (BCOp)op, op, cmov, sse); 3181 build_ins(ctx, (BCOp)op, op, cmov, sse);
3166 3182
diff --git a/src/lj_meta.c b/src/lj_meta.c
index fcb9df66..278d2d34 100644
--- a/src/lj_meta.c
+++ b/src/lj_meta.c
@@ -309,10 +309,19 @@ TValue * LJ_FASTCALL lj_meta_len(lua_State *L, cTValue *o)
309{ 309{
310 cTValue *mo = lj_meta_lookup(L, o, MM_len); 310 cTValue *mo = lj_meta_lookup(L, o, MM_len);
311 if (tvisnil(mo)) { 311 if (tvisnil(mo)) {
312 lj_err_optype(L, o, LJ_ERR_OPLEN); 312#ifdef LUAJIT_ENABLE_LUA52COMPAT
313 return NULL; /* unreachable */ 313 if (tvistab(o))
314 tabref(tabV(o)->metatable)->nomm |= (uint8_t)(1u<<MM_len);
315 else
316#endif
317 lj_err_optype(L, o, LJ_ERR_OPLEN);
318 return NULL;
314 } 319 }
320#ifdef LUAJIT_ENABLE_LUA52COMPAT
321 return mmcall(L, lj_cont_ra, mo, o, o);
322#else
315 return mmcall(L, lj_cont_ra, mo, o, niltv(L)); 323 return mmcall(L, lj_cont_ra, mo, o, niltv(L));
324#endif
316} 325}
317 326
318/* Helper for equality comparisons. __eq metamethod. */ 327/* Helper for equality comparisons. __eq metamethod. */
diff --git a/src/lj_obj.h b/src/lj_obj.h
index 7cdc4a1a..afb29d0f 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -441,9 +441,9 @@ enum {
441#endif 441#endif
442 442
443#define MMDEF(_) \ 443#define MMDEF(_) \
444 _(index) _(newindex) _(gc) _(mode) _(eq) \ 444 _(index) _(newindex) _(gc) _(mode) _(eq) _(len) \
445 /* Only the above (fast) metamethods are negative cached (max. 8). */ \ 445 /* Only the above (fast) metamethods are negative cached (max. 8). */ \
446 _(len) _(lt) _(le) _(concat) _(call) \ 446 _(lt) _(le) _(concat) _(call) \
447 /* The following must be in ORDER ARITH. */ \ 447 /* The following must be in ORDER ARITH. */ \
448 _(add) _(sub) _(mul) _(div) _(mod) _(pow) _(unm) \ 448 _(add) _(sub) _(mul) _(div) _(mod) _(pow) _(unm) \
449 /* The following are used in the standard libraries. */ \ 449 /* The following are used in the standard libraries. */ \
@@ -455,7 +455,7 @@ MMDEF(MMENUM)
455#undef MMENUM 455#undef MMENUM
456 MM__MAX, 456 MM__MAX,
457 MM____ = MM__MAX, 457 MM____ = MM__MAX,
458 MM_FAST = MM_eq 458 MM_FAST = MM_len
459} MMS; 459} MMS;
460 460
461/* GC root IDs. */ 461/* GC root IDs. */
diff --git a/src/lj_record.c b/src/lj_record.c
index 1a18724a..edfff50b 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -819,7 +819,7 @@ nocheck:
819 return 0; /* No metamethod. */ 819 return 0; /* No metamethod. */
820} 820}
821 821
822/* Record call to arithmetic metamethod (and MM_len). */ 822/* Record call to arithmetic metamethod. */
823static TRef rec_mm_arith(jit_State *J, RecordIndex *ix, MMS mm) 823static TRef rec_mm_arith(jit_State *J, RecordIndex *ix, MMS mm)
824{ 824{
825 /* Set up metamethod call first to save ix->tab and ix->tabv. */ 825 /* Set up metamethod call first to save ix->tab and ix->tabv. */
@@ -830,7 +830,7 @@ static TRef rec_mm_arith(jit_State *J, RecordIndex *ix, MMS mm)
830 copyTV(J->L, basev+1, &ix->tabv); 830 copyTV(J->L, basev+1, &ix->tabv);
831 copyTV(J->L, basev+2, &ix->keyv); 831 copyTV(J->L, basev+2, &ix->keyv);
832 if (!lj_record_mm_lookup(J, ix, mm)) { /* Lookup mm on 1st operand. */ 832 if (!lj_record_mm_lookup(J, ix, mm)) { /* Lookup mm on 1st operand. */
833 if (mm != MM_len) { 833 if (mm != MM_unm) {
834 ix->tab = ix->key; 834 ix->tab = ix->key;
835 copyTV(J->L, &ix->tabv, &ix->keyv); 835 copyTV(J->L, &ix->tabv, &ix->keyv);
836 if (lj_record_mm_lookup(J, ix, mm)) /* Lookup mm on 2nd operand. */ 836 if (lj_record_mm_lookup(J, ix, mm)) /* Lookup mm on 2nd operand. */
@@ -845,6 +845,34 @@ ok:
845 return 0; /* No result yet. */ 845 return 0; /* No result yet. */
846} 846}
847 847
848/* Record call to __len metamethod. */
849static TRef rec_mm_len(jit_State *J, TRef tr, TValue *tv)
850{
851 RecordIndex ix;
852 ix.tab = tr;
853 copyTV(J->L, &ix.tabv, tv);
854 if (lj_record_mm_lookup(J, &ix, MM_len)) {
855 BCReg func = rec_mm_prep(J, lj_cont_ra);
856 TRef *base = J->base + func;
857 TValue *basev = J->L->base + func;
858 base[0] = ix.mobj; copyTV(J->L, basev+0, &ix.mobjv);
859 base[1] = tr; copyTV(J->L, basev+1, tv);
860#ifdef LUAJIT_ENABLE_LUA52COMPAT
861 base[2] = tr; copyTV(J->L, basev+2, tv);
862#else
863 base[2] = TREF_NIL; setnilV(basev+2);
864#endif
865 lj_record_call(J, func, 2);
866 } else {
867#ifdef LUAJIT_ENABLE_LUA52COMPAT
868 if (tref_istab(tr))
869 return lj_ir_call(J, IRCALL_lj_tab_len, tr);
870#endif
871 lj_trace_err(J, LJ_TRERR_NOMM);
872 }
873 return 0; /* No result yet. */
874}
875
848/* Call a comparison metamethod. */ 876/* Call a comparison metamethod. */
849static void rec_mm_callcomp(jit_State *J, RecordIndex *ix, int op) 877static void rec_mm_callcomp(jit_State *J, RecordIndex *ix, int op)
850{ 878{
@@ -1667,17 +1695,14 @@ void lj_record_ins(jit_State *J)
1667 break; 1695 break;
1668 1696
1669 case BC_LEN: 1697 case BC_LEN:
1670 if (tref_isstr(rc)) { 1698 if (tref_isstr(rc))
1671 rc = emitir(IRTI(IR_FLOAD), rc, IRFL_STR_LEN); 1699 rc = emitir(IRTI(IR_FLOAD), rc, IRFL_STR_LEN);
1672 } else if (tref_istab(rc)) { 1700#ifndef LUAJIT_ENABLE_LUA52COMPAT
1701 else if (tref_istab(rc))
1673 rc = lj_ir_call(J, IRCALL_lj_tab_len, rc); 1702 rc = lj_ir_call(J, IRCALL_lj_tab_len, rc);
1674 } else { 1703#endif
1675 ix.tab = rc; 1704 else
1676 copyTV(J->L, &ix.tabv, rcv); 1705 rc = rec_mm_len(J, rc, rcv);
1677 ix.key = TREF_NIL;
1678 setnilV(&ix.keyv);
1679 rc = rec_mm_arith(J, &ix, MM_len);
1680 }
1681 break; 1706 break;
1682 1707
1683 /* -- Arithmetic ops ---------------------------------------------------- */ 1708 /* -- Arithmetic ops ---------------------------------------------------- */