aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-27 21:40:40 +0100
committerMike Pall <mike>2010-02-27 21:40:40 +0100
commit2144d55eb83f8b92732c3e5aa51ece61071a7b8f (patch)
treecffae5fd4a9843d6fd697596ef89046ac36f6488 /src
parentec78d3177e1b24c24a89f0e83c19eb3e3e0f8023 (diff)
downloadluajit-2144d55eb83f8b92732c3e5aa51ece61071a7b8f.tar.gz
luajit-2144d55eb83f8b92732c3e5aa51ece61071a7b8f.tar.bz2
luajit-2144d55eb83f8b92732c3e5aa51ece61071a7b8f.zip
Save/restore remaining callee-save regs on trace<->interp transitions.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_x64.h1327
-rw-r--r--src/buildvm_x64win.h884
-rw-r--r--src/buildvm_x86.dasc79
-rw-r--r--src/buildvm_x86.h656
-rw-r--r--src/lj_frame.h8
-rw-r--r--src/lj_target_x86.h4
6 files changed, 1511 insertions, 1447 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 485613e0..c394624d 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,87 +12,87 @@
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[13995] = { 15static const unsigned char build_actionlist[14028] = {
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,252,247,195,237,15,132,244,10,65,199, 18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199,
19 134,233,237,131,227,252,248,41,211,252,247,219,131,232,1,15,132,244,248,248, 19 134,233,237,131,227,252,248,41,211,252,247,219,131,232,1,15,132,244,248,248,
20 1,139,44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232, 20 1,139,44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,
21 1,15,133,244,1,248,2,255,139,108,36,16,137,157,233,248,3,139,68,36,4,139, 21 1,15,133,244,1,248,2,255,139,108,36,24,137,157,233,248,3,139,68,36,4,139,
22 76,36,8,248,4,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,15, 22 76,36,16,248,4,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,
23 72,139,76,36,32,72,137,141,233,49,192,248,16,72,131,196,40,65,94,65,95,91, 23 15,72,139,76,36,32,72,137,141,233,49,192,248,16,72,131,196,40,65,94,65,95,
24 93,195,248,6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237, 24 91,93,195,248,6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,
25 131,194,8,131,192,1,252,233,244,4,248,7,255,133,201,15,132,244,5,41,193,141, 25 131,194,8,131,192,1,252,233,244,4,248,7,255,133,201,15,132,244,5,41,193,141,
26 20,202,252,233,244,5,248,8,137,149,233,137,68,36,4,137,206,137,252,239,232, 26 20,202,252,233,244,5,248,8,137,149,233,137,68,36,4,137,206,137,252,239,232,
27 251,1,0,139,149,233,252,233,244,3,248,17,137,252,240,72,137,252,252,248,18, 27 251,1,0,139,149,233,252,233,244,3,248,17,137,252,240,72,137,252,252,248,18,
28 139,108,36,16,139,173,233,199,133,233,237,252,233,244,16,248,19,72,129,231, 28 139,108,36,24,139,173,233,199,133,233,237,252,233,244,16,248,19,72,129,231,
29 239,72,137,252,252,248,20,139,108,36,16,72,199,193,252,248,252,255,252,255, 29 239,72,137,252,252,248,20,139,108,36,24,72,199,193,252,248,252,255,252,255,
30 252,255,184,237,255,139,149,233,68,139,181,233,65,129,198,239,139,90,252, 30 252,255,184,237,255,139,149,233,68,139,181,233,65,129,198,239,139,90,252,
31 252,199,66,252,252,237,65,199,134,233,237,252,233,244,12,248,21,190,237,252, 31 252,199,66,252,252,237,65,199,134,233,237,252,233,244,12,248,21,190,237,252,
32 233,244,248,248,22,131,232,8,252,233,244,247,248,23,141,68,194,252,248,248, 32 233,244,248,248,22,131,232,8,252,233,244,247,248,23,141,68,194,252,248,248,
33 1,15,182,139,233,131,195,4,137,149,233,137,133,233,255,137,92,36,20,137,206, 33 1,15,182,139,233,131,195,4,137,149,233,137,133,233,255,137,92,36,28,137,206,
34 248,2,137,252,239,232,251,1,0,139,149,233,139,133,233,139,106,252,248,139, 34 248,2,137,252,239,232,251,1,0,139,149,233,139,133,233,139,106,252,248,139,
35 90,252,252,41,208,193,232,3,131,192,1,139,157,233,139,11,15,182,252,233,15, 35 90,252,252,41,208,193,232,3,131,192,1,139,157,233,139,11,15,182,252,233,15,
36 182,205,131,195,4,65,252,255,36,252,238,248,24,85,83,65,87,65,86,72,131,252, 36 182,205,131,195,4,65,252,255,36,252,238,248,24,85,83,65,87,65,86,72,131,252,
37 236,40,137,252,253,137,124,36,16,137,252,241,187,237,49,192,76,141,188,253, 37 236,40,137,252,253,137,124,36,24,137,252,241,187,237,49,192,76,141,188,253,
38 36,233,68,139,181,233,65,129,198,239,76,137,189,233,137,68,36,20,72,137,68, 38 36,233,68,139,181,233,65,129,198,239,76,137,189,233,137,68,36,28,72,137,68,
39 36,32,137,68,36,8,137,68,36,12,56,133,233,15,132,244,249,65,199,134,233,237, 39 36,32,137,68,36,16,137,68,36,20,56,133,233,15,132,244,249,65,199,134,233,
40 136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41,209,139, 40 237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41,209,
41 90,252,252,137,68,36,4,252,247,195,237,15,132,244,13,255,252,233,244,14,248, 41 139,90,252,252,137,68,36,4,252,247,195,237,15,132,244,13,255,252,233,244,
42 25,85,83,65,87,65,86,72,131,252,236,40,187,237,137,76,36,12,252,233,244,247, 42 14,248,25,85,83,65,87,65,86,72,131,252,236,40,187,237,137,76,36,20,252,233,
43 248,26,85,83,65,87,65,86,72,131,252,236,40,187,237,248,1,137,84,36,8,137, 43 244,247,248,26,85,83,65,87,65,86,72,131,252,236,40,187,237,248,1,137,84,36,
44 252,253,137,124,36,16,137,252,241,248,2,76,139,189,233,76,137,124,36,32,137, 44 16,137,252,253,137,124,36,24,137,252,241,248,2,76,139,189,233,76,137,124,
45 108,36,20,72,137,165,233,68,139,181,233,65,129,198,239,248,3,65,199,134,233, 45 36,32,137,108,36,28,72,137,165,233,68,139,181,233,65,129,198,239,248,3,65,
46 237,139,149,233,1,203,41,211,139,133,233,41,200,193,232,3,131,192,1,248,27, 46 199,134,233,237,139,149,233,1,203,41,211,139,133,233,41,200,193,232,3,131,
47 255,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,29,137,202, 47 192,1,248,27,255,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,
48 137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65, 48 29,137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,
49 252,255,36,252,238,248,30,85,83,65,87,65,86,72,131,252,236,40,137,252,253, 49 195,4,65,252,255,36,252,238,248,30,85,83,65,87,65,86,72,131,252,236,40,137,
50 137,124,36,16,137,108,36,20,68,139,189,233,68,43,189,233,199,68,36,12,0,0, 50 252,253,137,124,36,24,137,108,36,28,68,139,189,233,68,43,189,233,199,68,36,
51 0,0,68,137,124,36,8,76,139,189,233,76,137,124,36,32,72,137,165,233,252,255, 51 20,0,0,0,0,68,137,124,36,16,76,139,189,233,76,137,124,36,32,72,137,165,233,
52 209,133,192,15,132,244,15,137,193,187,237,252,233,244,2,248,11,1,209,131, 52 252,255,209,133,192,15,132,244,15,137,193,187,237,252,233,244,2,248,11,1,
53 227,252,248,137,213,41,218,199,68,193,252,252,237,137,200,139,93,252,244, 53 209,131,227,252,248,137,213,41,218,199,68,193,252,252,237,137,200,139,93,
54 72,99,77,252,240,76,141,61,245,76,1,252,249,68,139,122,252,248,69,139,191, 54 252,244,72,99,77,252,240,76,141,61,245,76,1,252,249,68,139,122,252,248,69,
55 233,255,69,139,191,233,252,255,225,248,31,15,182,75,252,255,131,252,237,16, 55 139,191,233,255,69,139,191,233,252,255,225,248,31,15,182,75,252,255,131,252,
56 141,12,202,41,252,233,15,132,244,32,252,247,217,193,252,233,3,139,124,36, 56 237,16,141,12,202,41,252,233,15,132,244,32,252,247,217,193,252,233,3,139,
57 16,137,151,233,137,202,139,72,4,139,0,137,77,4,137,69,0,137,252,238,252,233, 57 124,36,24,137,151,233,137,202,139,72,4,139,0,137,77,4,137,69,0,137,252,238,
58 244,33,248,34,137,4,36,199,68,36,4,237,72,141,4,36,128,123,252,252,235,15, 58 252,233,244,33,248,34,137,4,36,199,68,36,4,237,72,141,4,36,128,123,252,252,
59 133,244,247,65,141,142,233,137,41,199,65,4,237,137,205,252,233,244,248,248, 59 235,15,133,244,247,65,141,142,233,137,41,199,65,4,237,137,205,252,233,244,
60 35,15,182,67,252,254,255,252,242,15,42,192,252,242,15,17,4,36,255,72,141, 60 248,248,35,15,182,67,252,254,255,252,242,15,42,192,252,242,15,17,4,36,255,
61 4,36,252,233,244,247,248,36,15,182,67,252,254,141,4,194,248,1,15,182,107, 61 72,141,4,36,252,233,244,247,248,36,15,182,67,252,254,141,4,194,248,1,15,182,
62 252,255,141,44,252,234,248,2,139,124,36,16,137,151,233,137,252,238,72,137, 62 107,252,255,141,44,252,234,248,2,139,124,36,24,137,151,233,137,252,238,72,
63 194,137,252,253,137,92,36,20,232,251,1,1,139,149,233,133,192,15,132,244,249, 63 137,194,137,252,253,137,92,36,28,232,251,1,1,139,149,233,133,192,15,132,244,
64 248,32,15,182,75,252,253,139,104,4,139,0,137,108,202,4,137,4,202,139,3,15, 64 249,248,32,15,182,75,252,253,139,104,4,139,0,137,108,202,4,137,4,202,139,
65 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,139,141, 65 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,
66 233,137,89,252,244,141,153,233,41,211,139,105,252,248,184,237,252,233,244, 66 139,141,233,137,89,252,244,141,153,233,41,211,139,105,252,248,184,237,252,
67 29,248,37,137,4,36,199,68,36,4,237,72,141,4,36,128,123,252,252,235,15,133, 67 233,244,29,248,37,137,4,36,199,68,36,4,237,72,141,4,36,128,123,252,252,235,
68 244,247,255,65,141,142,233,137,41,199,65,4,237,137,205,252,233,244,248,248, 68 15,133,244,247,255,65,141,142,233,137,41,199,65,4,237,137,205,252,233,244,
69 38,15,182,67,252,254,255,72,141,4,36,252,233,244,247,248,39,15,182,67,252, 69 248,248,38,15,182,67,252,254,255,72,141,4,36,252,233,244,247,248,39,15,182,
70 254,141,4,194,248,1,15,182,107,252,255,141,44,252,234,248,2,139,124,36,16, 70 67,252,254,141,4,194,248,1,15,182,107,252,255,141,44,252,234,248,2,139,124,
71 137,151,233,137,252,238,72,137,194,137,252,253,137,92,36,20,232,251,1,2,139, 71 36,24,137,151,233,137,252,238,72,137,194,137,252,253,137,92,36,28,232,251,
72 149,233,133,192,15,132,244,249,15,182,75,252,253,139,108,202,4,139,12,202, 72 1,2,139,149,233,133,192,15,132,244,249,15,182,75,252,253,139,108,202,4,139,
73 137,104,4,137,8,248,40,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 73 12,202,137,104,4,137,8,248,40,139,3,15,182,204,15,182,232,131,195,4,193,232,
74 252,255,36,252,238,248,3,139,141,233,137,89,252,244,15,182,67,252,253,139, 74 16,65,252,255,36,252,238,248,3,139,141,233,137,89,252,244,15,182,67,252,253,
75 108,194,4,139,4,194,137,105,20,137,65,16,141,153,233,41,211,139,105,252,248, 75 139,108,194,4,139,4,194,137,105,20,137,65,16,141,153,233,41,211,139,105,252,
76 184,237,252,233,244,29,248,41,139,108,36,16,137,149,233,141,52,202,141,20, 76 248,184,237,252,233,244,29,248,41,139,108,36,24,137,149,233,141,52,202,141,
77 194,137,252,239,15,182,75,252,252,137,92,36,20,232,251,1,3,248,3,139,149, 77 20,194,137,252,239,15,182,75,252,252,137,92,36,28,232,251,1,3,248,3,139,149,
78 233,255,131,252,248,1,15,135,244,42,248,4,141,91,4,15,130,244,252,248,5,15, 78 233,255,131,252,248,1,15,135,244,42,248,4,141,91,4,15,130,244,252,248,5,15,
79 183,67,252,254,141,156,253,131,233,248,6,139,3,15,182,204,15,182,232,131, 79 183,67,252,254,141,156,253,131,233,248,6,139,3,15,182,204,15,182,232,131,
80 195,4,193,232,16,65,252,255,36,252,238,248,43,131,195,4,129,120,253,4,239, 80 195,4,193,232,16,65,252,255,36,252,238,248,43,131,195,4,129,120,253,4,239,
81 15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233,244,4,248,45, 81 15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233,244,4,248,45,
82 131,252,235,4,137,206,137,252,233,139,108,36,16,137,149,233,255,137,194,137, 82 131,252,235,4,137,206,137,252,233,139,108,36,24,137,149,233,255,137,194,137,
83 252,239,137,92,36,20,232,251,1,4,252,233,244,3,248,46,65,141,4,199,252,233, 83 252,239,137,92,36,28,232,251,1,4,252,233,244,3,248,46,65,141,4,199,252,233,
84 244,247,248,47,65,141,4,199,141,44,252,234,149,252,233,244,248,248,48,141, 84 244,247,248,47,65,141,4,199,141,44,252,234,149,252,233,244,248,248,48,141,
85 4,194,137,197,252,233,244,248,248,49,141,4,194,248,1,141,44,252,234,248,2, 85 4,194,137,197,252,233,244,248,248,49,141,4,194,248,1,141,44,252,234,248,2,
86 141,12,202,68,15,182,67,252,252,137,206,137,193,139,124,36,16,137,151,233, 86 141,12,202,68,15,182,67,252,252,137,206,137,193,139,124,36,24,137,151,233,
87 137,252,234,137,252,253,137,92,36,20,232,251,1,5,139,149,233,133,192,15,132, 87 137,252,234,137,252,253,137,92,36,28,232,251,1,5,139,149,233,133,192,15,132,
88 244,40,248,42,137,193,41,208,137,89,252,244,141,152,233,255,184,237,252,233, 88 244,40,248,42,137,193,41,208,137,89,252,244,141,152,233,255,184,237,252,233,
89 244,27,248,50,139,108,36,16,137,149,233,141,52,194,137,252,239,137,92,36, 89 244,27,248,50,139,108,36,24,137,149,233,141,52,194,137,252,239,137,92,36,
90 20,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137, 90 28,232,251,1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137,
91 76,36,4,137,4,36,131,252,233,8,139,108,36,16,137,149,233,137,206,141,20,193, 91 76,36,4,137,4,36,131,252,233,8,139,108,36,24,137,149,233,137,206,141,20,193,
92 137,252,239,137,92,36,20,232,251,1,7,139,149,233,139,76,36,4,139,4,36,139, 92 137,252,239,137,92,36,28,232,251,1,7,139,149,233,139,76,36,4,139,4,36,139,
93 105,252,248,131,192,1,65,57,215,15,132,244,52,137,202,137,90,252,252,139, 93 105,252,248,131,192,1,65,57,215,15,132,244,52,137,202,137,90,252,252,139,
94 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238, 94 157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,
95 248,53,139,108,36,16,137,149,233,137,206,137,252,239,137,92,36,20,232,251, 95 248,53,139,108,36,24,137,149,233,137,206,137,252,239,137,92,36,28,232,251,
96 1,8,139,149,233,139,67,252,252,15,182,204,15,182,232,193,232,16,65,252,255, 96 1,8,139,149,233,139,67,252,252,15,182,204,15,182,232,193,232,16,65,252,255,
97 164,253,252,238,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129, 97 164,253,252,238,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,
98 252,253,239,15,131,244,55,139,90,252,252,137,68,36,4,137,106,252,252,139, 98 252,253,239,15,131,244,55,139,90,252,252,137,68,36,4,137,106,252,252,139,
@@ -116,7 +116,7 @@ static const unsigned char build_actionlist[13995] = {
116 8,137,133,233,139,90,252,252,199,66,252,252,237,137,106,252,248,252,246,133, 116 8,137,133,233,139,90,252,252,199,66,252,252,237,137,106,252,248,252,246,133,
117 233,235,15,132,244,247,128,165,233,235,255,65,139,134,233,65,137,174,233, 117 233,235,15,132,244,247,128,165,233,235,255,65,139,134,233,65,137,174,233,
118 137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,55,129, 118 137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,55,129,
119 122,253,4,239,15,133,244,55,137,213,139,50,141,82,8,139,124,36,16,232,251, 119 122,253,4,239,15,133,244,55,137,213,139,50,141,82,8,139,124,36,24,232,251,
120 1,9,137,252,234,139,40,139,64,4,139,90,252,252,137,106,252,248,137,66,252, 120 1,9,137,252,234,139,40,139,64,4,139,90,252,252,137,106,252,248,137,66,252,
121 252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239, 121 252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,
122 255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244, 122 255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,
@@ -124,10 +124,10 @@ static const unsigned char build_actionlist[13995] = {
124 239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233, 124 239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,
125 244,58,248,3,129,122,253,4,239,15,135,244,55,65,131,190,233,0,15,133,244, 125 244,58,248,3,129,122,253,4,239,15,135,244,55,65,131,190,233,0,15,133,244,
126 55,65,139,174,233,65,59,174,233,255,15,130,244,247,232,244,66,248,1,139,108, 126 55,65,139,174,233,65,59,174,233,255,15,130,244,247,232,244,66,248,1,139,108,
127 36,16,137,149,233,137,92,36,20,137,214,137,252,239,232,251,1,10,139,149,233, 127 36,24,137,149,233,137,92,36,28,137,214,137,252,239,232,251,1,10,139,149,233,
128 252,233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129, 128 252,233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,
129 122,253,4,239,15,133,244,55,139,108,36,16,137,149,233,255,139,90,252,252, 129 122,253,4,239,15,133,244,55,139,108,36,24,137,149,233,255,139,90,252,252,
130 139,50,141,82,8,137,252,239,137,92,36,20,232,251,1,11,139,149,233,133,192, 130 139,50,141,82,8,137,252,239,137,92,36,28,232,251,1,11,139,149,233,133,192,
131 15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106, 131 15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,
132 16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12, 132 16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12,
133 237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252, 133 237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252,
@@ -148,36 +148,36 @@ static const unsigned char build_actionlist[13995] = {
148 235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239, 148 235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
149 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,90,8,137,106, 149 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,90,8,137,106,
150 8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,252,248,239, 150 8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,252,248,239,
151 15,130,244,55,139,42,139,90,252,252,137,92,36,20,137,44,36,129,122,253,4, 151 15,130,244,55,139,42,139,90,252,252,137,92,36,28,137,44,36,129,122,253,4,
152 239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,15,135,244, 152 239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,15,135,244,
153 55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,92,193, 153 55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,92,193,
154 252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,16,137,149,233,131, 154 252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,131,
155 194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,249,248,2,139, 155 194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,249,248,2,139,
156 68,43,4,137,67,252,252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133, 156 68,43,4,137,67,252,252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,
157 244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,255,139,108,36, 157 244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,255,139,108,36,
158 16,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139,233, 158 24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139,233,
159 68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4,26, 159 68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4,26,
160 193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,5,139,1,137, 160 193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,5,139,1,137,
161 4,41,139,65,4,137,68,41,4,131,193,8,68,57,252,249,15,133,244,5,248,6,141, 161 4,41,139,65,4,137,68,41,4,131,193,8,68,57,252,249,15,133,244,5,248,6,141,
162 67,2,199,66,252,252,237,248,7,139,92,36,20,137,68,36,4,72,199,193,252,248, 162 67,2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,193,252,248,
163 252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14, 163 252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,
164 248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,139,1,137, 164 248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,139,1,137,
165 2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233, 165 2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,
166 137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4,248,77,139,106, 166 137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4,248,77,139,106,
167 252,248,139,173,233,139,90,252,252,137,92,36,20,137,44,36,72,131,189,233, 167 252,248,139,173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,189,233,
168 0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244, 168 0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,
169 247,59,141,233,15,132,244,55,248,1,141,92,193,252,248,59,157,233,15,135,244, 169 247,59,141,233,15,132,244,55,248,1,141,92,193,252,248,59,157,233,15,135,244,
170 55,137,157,233,139,108,36,16,137,149,233,137,149,233,141,108,194,252,240, 170 55,137,157,233,139,108,36,24,137,149,233,137,149,233,141,108,194,252,240,
171 72,41,221,57,203,15,132,244,249,248,2,255,139,68,43,4,137,67,252,252,139, 171 72,41,221,57,203,15,132,244,249,248,2,255,139,68,43,4,137,67,252,252,139,
172 4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,60, 172 4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,60,
173 36,232,244,24,65,199,134,233,237,139,108,36,16,139,28,36,139,149,233,129, 173 36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149,233,129,
174 252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68, 174 252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68,
175 137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135, 175 137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135,
176 244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131, 176 244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,
177 193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,20,137,68, 177 193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,28,137,68,
178 36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,222,137, 178 36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,222,137,
179 252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232, 179 252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,
180 251,1,0,139,149,233,252,233,244,4,248,78,139,108,36,16,72,252,247,133,233, 180 251,1,0,139,149,233,252,233,244,4,248,78,139,108,36,24,72,252,247,133,233,
181 237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72, 181 237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,
182 137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,252,252, 182 137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,252,252,
183 221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122, 183 221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,
@@ -266,42 +266,42 @@ static const unsigned char build_actionlist[13995] = {
266 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232, 266 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
267 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55, 267 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
268 255,252,242,15,45,2,61,252,255,0,0,0,15,135,244,55,137,68,36,4,255,221,2, 268 255,252,242,15,45,2,61,252,255,0,0,0,15,135,244,55,137,68,36,4,255,221,2,
269 219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,36,24,1,0, 269 219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,36,8,1,0,
270 0,0,72,141,68,36,4,248,113,139,108,36,16,137,149,233,139,84,36,24,72,137, 270 0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,72,137,198,
271 198,137,252,239,137,92,36,20,232,251,1,17,139,149,233,139,90,252,252,199, 271 137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,199,66,252,
272 66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,59, 272 252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,59,174,233,
273 174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,255, 273 15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,255,252,255,
274 252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255, 274 129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,
275 252,242,15,45,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,129, 275 15,45,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,129,122,253,
276 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108, 276 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,8,
277 36,24,139,173,233,255,252,242,15,45,74,8,255,139,68,36,4,57,197,15,130,244, 277 139,173,233,255,252,242,15,45,74,8,255,139,68,36,4,57,197,15,130,244,251,
278 251,248,2,133,201,15,142,244,253,248,3,139,108,36,24,41,200,15,140,244,115, 278 248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,115,141,
279 141,172,253,13,233,131,192,1,248,4,137,68,36,24,137,232,252,233,244,113,248, 279 172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5,
280 5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248, 280 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
281 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252, 281 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
282 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244, 282 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
283 55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,129,122, 283 55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,129,122,
284 253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242, 284 253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,
285 15,45,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,244,115, 285 15,45,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,244,115,
286 131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,244,117, 286 131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,244,117,
287 15,182,141,233,65,139,174,233,137,68,36,24,248,1,136,77,0,131,197,1,131,232, 287 15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,
288 1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,239,255, 288 1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,239,255,
289 15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248, 289 15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,
290 1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115, 290 1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,
291 65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,24,65,139, 291 65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158,
292 158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,244,1,137, 292 233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,244,1,137,216,
293 216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,244,55,65, 293 139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,244,55,65,139,
294 139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239, 294 174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,
295 15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,129,197, 295 133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,129,197,239,
296 239,137,92,36,4,137,68,36,24,65,139,158,233,252,233,244,249,248,1,15,182, 296 137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,
297 76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252, 297 0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,
298 241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252, 298 32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,
299 233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,233,65,59, 299 244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,233,65,59,174,
300 174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139, 300 233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,
301 42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68, 301 139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,
302 36,24,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15, 302 8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,
303 130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12, 303 244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,3,
304 3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,248,122, 304 248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,248,122,
305 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,139, 305 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,139,
306 58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,255,248, 306 58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,255,248,
307 123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 307 123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
@@ -342,8 +342,8 @@ static const unsigned char build_actionlist[13995] = {
342 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16, 342 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
343 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202, 343 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,
344 137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,244,125, 344 137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,244,125,
345 248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,16,139,90, 345 248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,24,139,90,
346 252,252,137,92,36,20,137,149,233,141,68,194,252,248,141,136,233,137,133,233, 346 252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,137,133,233,
347 139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,144,233,139, 347 139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,
348 149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131, 348 149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,
349 192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,139,11,15, 349 192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,139,11,15,
@@ -351,21 +351,21 @@ static const unsigned char build_actionlist[13995] = {
351 247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,234, 351 247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,234,
352 252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,248, 352 252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,248,
353 5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72, 353 5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72,
354 137,108,36,24,139,108,36,16,137,92,36,20,137,149,233,255,141,68,194,252,248, 354 137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,252,248,
355 137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232, 355 137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,
356 3,131,192,1,72,139,108,36,24,85,195,248,136,255,65,15,182,134,233,168,235, 356 3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,168,235,
357 15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142, 357 15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142,
358 233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,244,251, 358 233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,244,251,
359 252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,168,235, 359 252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,168,235,
360 15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248, 360 15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248,
361 1,255,139,108,36,16,137,149,233,137,222,137,252,239,232,251,1,20,248,3,139, 361 1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,248,3,139,
362 149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254, 362 149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254,
363 65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,76,36,4,252, 363 65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,76,36,4,252,
364 233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194, 364 233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,
365 139,108,36,16,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233, 365 139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233,
366 137,92,36,20,232,251,1,21,252,233,244,3,255,248,141,137,92,36,20,255,248, 366 137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,36,28,255,248,
367 142,255,137,92,36,20,131,203,1,248,1,255,141,68,194,252,248,139,108,36,16, 367 142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,139,108,36,24,
368 137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,68,36,20,0,0, 368 137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,68,36,28,0,0,
369 0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72, 369 0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,
370 137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65, 370 137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65,
371 85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80, 371 85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,
@@ -378,253 +378,254 @@ static const unsigned char build_actionlist[13995] = {
378 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242, 378 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242,
379 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174, 379 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,
380 233,137,149,233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72, 380 233,137,149,233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72,
381 129,225,239,72,137,204,137,108,36,16,133,192,15,133,244,247,139,149,233,139, 381 129,225,239,72,137,204,137,169,233,139,149,233,139,153,233,252,233,244,247,
382 92,36,20,255,248,144,255,68,139,122,252,248,69,139,191,233,69,139,191,233, 382 255,248,144,255,49,192,72,131,196,16,248,1,76,139,108,36,8,76,139,36,36,133,
383 65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131, 383 192,15,133,244,248,68,139,122,252,248,69,139,191,233,69,139,191,233,65,199,
384 195,4,193,232,16,65,252,255,36,252,238,248,1,137,252,239,137,198,232,251, 384 134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131,195,4,
385 1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102, 385 193,232,16,65,252,255,36,252,238,248,2,137,252,239,137,198,232,251,1,24,255,
386 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 386 248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,
387 139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237, 387 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
388 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102, 388 36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,102,
389 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237, 389 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
390 102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15, 390 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,
391 40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68, 391 72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,
392 36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217, 392 193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,
393 108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72, 393 4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
394 184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134, 394 36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,184,
395 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72, 395 237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
396 184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242, 396 247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
397 15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184, 397 237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,
398 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 398 200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,
399 139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237, 399 102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,
400 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102, 400 68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,102,
401 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102, 401 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
402 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15, 402 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,
403 86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184, 403 15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,
404 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102, 404 202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,237,
405 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252, 405 237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,
406 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194, 406 226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,
407 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242, 407 15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,
408 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255, 408 1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,
409 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255, 409 92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,
410 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222, 410 193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,
411 252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,252,248,129, 411 247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,
412 124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252, 412 233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,252,248,129,124,
413 255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252, 413 36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252,255,
414 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238, 414 15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,
415 195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,15,46, 415 217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,
416 202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,252,248, 416 255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,
417 1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248, 417 15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,
418 2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132, 418 169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,
419 244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15, 419 209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,
420 89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,237,102, 420 250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,
421 72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15, 421 193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,
422 132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,248,8, 422 15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,
423 102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244, 423 244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,
424 248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,72,61,252, 424 72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,
425 254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,17,68,36, 425 255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,
426 252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,217,252,252, 426 15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,17,68,36,252,
427 220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92, 427 248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,217,252,252,220,
428 36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,102,72,15, 428 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,
429 110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237, 429 252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,102,72,15,110,
430 237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102, 430 208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,
431 15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224, 431 102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,
432 15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15, 432 194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,
433 80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15, 433 244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,
434 132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,132,244, 434 133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,
435 84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248, 435 3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,132,244,84,131,
436 2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,135,244, 436 252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,
437 248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,252,233, 437 15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,135,244,248,15,132,
438 244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217, 438 244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,252,233,244,253,
439 201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233, 439 248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,
440 244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,236,217, 440 252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233,244,253,
441 201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248, 441 248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,236,217,201,217,
442 2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253, 442 252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,
443 248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,36,252, 443 255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,
444 248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,15,132, 444 252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,255,
445 244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2, 445 139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,15,132,244,84,131,252,
446 131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,247,15, 446 255,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,255,5,15,
447 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217, 447 130,244,88,15,132,244,149,131,252,255,7,15,132,244,247,15,135,244,248,217,
448 252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,217,252, 448 252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,
449 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,11,15, 449 2,131,252,255,9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,
450 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195, 450 252,241,195,248,1,217,252,254,195,248,2,131,252,255,11,15,132,244,247,15,
451 255,248,9,204,248,154,255,131,252,255,1,15,132,244,247,15,135,244,248,252, 451 135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,
452 242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,15,132, 452 154,255,131,252,255,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,
453 244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195, 453 248,1,252,242,15,92,193,195,248,2,131,252,255,3,15,132,244,247,15,135,244,
454 248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,244, 454 248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,2,131,252,255,5,
455 247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,248, 455 15,130,244,148,15,132,244,107,131,252,255,7,15,132,244,247,15,135,244,248,
456 1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,15,135, 456 72,184,237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,
457 244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,68,36, 457 72,15,110,200,15,84,193,195,248,2,131,252,255,9,15,135,244,248,252,242,15,
458 252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,252, 458 17,68,36,252,248,252,242,15,17,76,36,252,240,221,68,36,252,248,221,68,36,
459 248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,252, 459 252,240,15,132,244,247,217,252,243,248,7,221,92,36,252,248,252,242,15,16,
460 233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,15,93, 460 68,36,252,248,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,131,
461 193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36, 461 252,255,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,
462 4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248, 462 242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,
463 1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201, 463 252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,
464 195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107, 464 248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,
465 131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1, 465 249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,
466 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217, 466 132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,
467 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15, 467 195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,
468 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 468 1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,
469 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 469 135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,
470 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 470 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,
471 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6, 471 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
472 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41, 472 248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,137,94,4,137,78,
473 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102, 473 8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,
474 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255, 474 4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,15,46,4,202,255,
475 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15, 475 221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,218,252,233,223,
476 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131, 476 224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,67,252,254,
477 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252, 477 141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
478 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15, 478 65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,253,239,15,135,
479 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133, 479 244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,
480 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141, 480 15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,
481 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248, 481 15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,156,253,131,
482 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12, 482 233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,1,255,248,5,
483 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233, 483 57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,
484 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237, 484 57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,
485 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253, 485 15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,
486 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253, 486 0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,202,4,239,
487 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221, 487 15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,202,4,239,
488 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194, 488 15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,4,202,65,
489 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137, 489 221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,4,131,
490 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233, 490 195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,
491 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 491 4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,248,1,139,
492 238,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204, 492 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,
493 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129, 493 108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204,15,182,232,131,
494 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131, 494 195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,
495 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244, 495 129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
496 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252, 496 65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,48,255,252,242,
497 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239, 497 15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,
498 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242, 498 255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,
499 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182, 499 139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,
500 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239, 500 219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,
501 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 501 232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,
502 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, 502 60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,
503 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242, 503 75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,
504 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239, 504 234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,
505 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221, 505 255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,
506 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253, 506 255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,
507 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, 507 252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,
508 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199, 508 15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,
509 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92, 509 234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,
510 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252, 510 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,
511 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234, 511 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,
512 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15, 512 4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65,
513 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252, 513 15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252,
514 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 514 242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,
515 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52, 515 234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,
516 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220, 516 252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242,
517 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252, 517 65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,
518 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221, 518 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,
519 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234, 519 255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65,
520 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, 520 221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,
521 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244, 521 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,
522 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,16,137,151,233, 522 221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,
523 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,20,232,251,1,25, 523 244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,
524 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,139, 524 137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,139,149,233,
525 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182, 525 133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,139,68,252,234,
526 232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139, 526 4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,
527 4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193, 527 195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199,
528 232,16,65,252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15, 528 68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
529 17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242, 529 252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,
530 15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139, 530 223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,
531 255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,3,15,182,
532 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,76,202,
533 12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,
534 134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
535 252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,
536 109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,193,232,
537 16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,128,189,
538 233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,
539 252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,131,
540 195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,248,239,
541 15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,65,141,
542 190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,208,139,
543 106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,64,4,
544 237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,232,
545 131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,15,132,
546 244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,251,1,
547 26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,16,4,199,
548 255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,
549 252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,
531 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141, 550 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,
532 76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57, 551 156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,149,233,141,
533 193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252, 552 52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204,15,182,
534 255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69, 553 232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,139,108,
535 4,139,109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4, 554 36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,36,28,232,
536 193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233, 555 251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,
537 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132, 556 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,124,
538 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182, 557 36,24,137,151,233,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,
539 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252, 558 7,0,0,15,132,244,249,248,2,137,198,65,139,134,233,137,252,253,65,59,134,233,
540 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213, 559 137,92,36,28,15,131,244,251,232,251,1,29,139,149,233,15,182,75,252,253,137,
541 65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247, 560 4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
542 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199, 561 252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,232,251,1,30,15,
543 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182, 562 183,67,252,254,137,252,239,252,233,244,1,255,72,252,247,208,139,108,36,24,
544 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235, 563 65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,131,244,249,248,
545 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232, 564 2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252,253,137,
546 251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15, 565 4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
547 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 566 252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,
548 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137, 567 247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,65,139,
549 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 568 4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,233,65,139,
550 255,141,156,253,131,233,139,108,36,16,131,189,233,0,15,132,244,247,137,149, 569 4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
551 233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204, 570 239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,
552 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208, 571 252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,
553 139,108,36,16,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92, 572 15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,
554 36,20,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 573 239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3,15,
555 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255, 574 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,
556 139,124,36,16,137,151,233,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61, 575 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,75,
557 252,255,7,0,0,15,132,244,249,248,2,137,198,65,139,134,233,137,252,253,65, 576 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
558 59,134,233,137,92,36,20,15,131,244,251,232,251,1,29,139,149,233,15,182,75, 577 194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,
559 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4, 578 135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,
560 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,232, 579 233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,
561 251,1,30,15,183,67,252,254,137,252,239,252,233,244,1,255,72,252,247,208,139, 580 57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,67,252,
562 108,36,16,65,139,142,233,137,92,36,20,65,59,142,233,137,149,233,15,131,244, 581 253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182,204,15,
563 249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252, 582 182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,252,253,
564 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193, 583 185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,
565 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252, 584 233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,
566 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173, 585 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,
567 233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173, 586 44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,
568 233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253, 587 15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3,15,182,
569 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244, 588 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,
570 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46, 589 0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,
571 193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120, 590 236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,
572 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139, 591 124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,
573 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2, 592 39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,
574 131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36, 593 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,
575 15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244, 594 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,
576 36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208, 595 131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,244,
577 65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157, 596 39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,
578 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133, 597 39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142,233,65,137,
579 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182, 598 174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,252,236,15,
580 67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182, 599 182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,
581 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67, 600 37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233,
582 252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248, 601 0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,
583 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233, 602 129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,
584 244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, 603 253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,3,
585 35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253, 604 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,
586 4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3, 605 189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,15,132,244,
587 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131, 606 37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,
588 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,35,255, 607 141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,
589 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44, 608 4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,141,20,36,
590 252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233, 609 137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,108,36,
591 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1, 610 8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,174,233,
592 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104, 611 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
593 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 612 4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,
594 238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235, 613 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
595 15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239, 614 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,15,182,
596 15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142, 615 232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,
597 233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182, 616 244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,252,253,
598 252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239, 617 252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,137,141,
599 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, 618 233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,255,248,1,141,12,202,
600 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 619 139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,4,255,
601 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 620 252,242,68,15,45,252,248,255,131,232,1,15,132,244,250,68,1,252,248,59,133,
602 133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137, 621 233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,41,65,
603 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 622 137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,244,
604 248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235, 623 3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
605 15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244, 624 252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,137,
606 1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, 625 252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,244,
607 248,6,137,4,36,199,68,36,4,237,137,108,36,24,139,124,36,16,137,151,233,72, 626 1,248,7,128,165,233,235,65,139,134,233,65,137,174,233,255,137,133,233,252,
608 141,20,36,137,252,238,137,252,253,137,92,36,20,232,251,1,32,139,149,233,139, 627 233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,51,
609 108,36,24,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137, 628 141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
610 174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
611 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,
612 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,
613 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,
614 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
615 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
616 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
617 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,255,248,1,141,
618 12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,
619 4,255,252,242,68,15,45,252,248,255,131,232,1,15,132,244,250,68,1,252,248,
620 59,133,233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,
621 41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,
622 244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
623 65,252,255,36,252,238,248,5,139,124,36,16,137,151,233,137,252,238,137,194,
624 137,252,253,137,92,36,20,232,251,1,33,139,149,233,15,182,75,252,253,252,233,
625 244,1,248,7,128,165,233,235,65,139,134,233,65,137,174,233,255,137,133,233,
626 252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,
627 51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
628 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248, 629 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,
629 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237, 630 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237,
630 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249, 631 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,
@@ -646,9 +647,9 @@ static const unsigned char build_actionlist[13995] = {
646 237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204, 647 237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,
647 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1, 648 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,
648 0,0,0,137,208,68,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197, 649 0,0,0,137,208,68,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,
649 1,137,108,36,4,139,108,36,16,1,200,59,133,233,15,135,244,253,248,6,65,139, 650 1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,65,139,
650 71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,65,57, 651 71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,65,57,
651 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,20, 652 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28,
652 65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233, 653 65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,
653 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252, 654 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,
654 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232, 655 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232,
@@ -672,24 +673,24 @@ static const unsigned char build_actionlist[13995] = {
672 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253, 673 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
673 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245, 674 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
674 255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142, 675 255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,
675 233,139,4,193,72,139,128,233,139,108,36,16,65,137,150,233,65,137,174,233, 676 233,139,4,193,72,139,128,233,139,108,36,24,65,137,150,233,65,137,174,233,
676 252,255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4, 677 76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,224,255,141,156,253,
677 193,232,16,65,252,255,36,252,238,255,68,139,187,233,139,108,36,16,141,12, 678 131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
678 202,59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255, 679 238,255,68,139,187,233,139,108,36,24,141,12,202,59,141,233,15,135,244,23,
679 15,183,67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1, 680 15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,67,252,254,252,233,
680 57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122, 681 245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,
681 252,248,137,104,252,252,68,137,120,252,248,139,108,36,16,141,12,200,59,141, 682 244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,137,104,252,252,68,
682 233,15,135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248, 683 137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,135,244,22,137,209,
683 248,1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139, 684 137,194,15,182,171,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,
684 121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133, 685 15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,252,252,68,137,120,
685 244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193, 686 4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,68,139,
686 232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237, 687 187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
687 1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36, 688 238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,
688 16,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255, 689 2,255,139,106,252,248,76,139,189,233,139,108,36,24,141,68,194,252,248,137,
689 137,252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233, 690 149,233,141,136,233,59,141,233,137,133,233,255,137,252,239,255,76,137,252,
690 237,255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139, 691 254,137,252,239,255,15,135,244,21,65,199,134,233,237,255,65,252,255,215,255,
691 149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255, 692 65,252,255,150,233,255,65,199,134,233,237,139,149,233,141,12,194,252,247,
692 254,0 693 217,3,141,233,139,90,252,252,252,233,244,12,255,254,0
693}; 694};
694 695
695enum { 696enum {
@@ -1364,62 +1365,62 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1364#endif 1365#endif
1365 dasm_put(Dst, 7296, Dt1(->base), Dt1(->top)); 1366 dasm_put(Dst, 7296, Dt1(->base), Dt1(->top));
1366#if LJ_HASJIT 1367#if LJ_HASJIT
1367 dasm_put(Dst, 7327, 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), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, Dt1(->base)); 1368 dasm_put(Dst, 7327, 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), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1368#endif 1369#endif
1369 dasm_put(Dst, 7562); 1370 dasm_put(Dst, 7558);
1370#if LJ_HASJIT 1371#if LJ_HASJIT
1371 dasm_put(Dst, 7565, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1372 dasm_put(Dst, 7561, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1372#endif 1373#endif
1373 dasm_put(Dst, 7623); 1374 dasm_put(Dst, 7642);
1374 if (!sse) { 1375 if (!sse) {
1375 dasm_put(Dst, 7626); 1376 dasm_put(Dst, 7645);
1376 } 1377 }
1377 dasm_put(Dst, 7671, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1378 dasm_put(Dst, 7690, (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));
1378 if (!sse) { 1379 if (!sse) {
1379 dasm_put(Dst, 7757); 1380 dasm_put(Dst, 7776);
1380 } 1381 }
1381 dasm_put(Dst, 7802, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1382 dasm_put(Dst, 7821, (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));
1382 if (!sse) { 1383 if (!sse) {
1383 dasm_put(Dst, 7888); 1384 dasm_put(Dst, 7907);
1384 } 1385 }
1385 dasm_put(Dst, 7927, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1386 dasm_put(Dst, 7946, (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));
1386 if (sse) { 1387 if (sse) {
1387 dasm_put(Dst, 8016, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1388 dasm_put(Dst, 8035, (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));
1388 } else { 1389 } else {
1389 dasm_put(Dst, 8130); 1390 dasm_put(Dst, 8149);
1390 } 1391 }
1391 dasm_put(Dst, 8177); 1392 dasm_put(Dst, 8196);
1392 if (!sse) { 1393 if (!sse) {
1393 } else { 1394 } else {
1394 dasm_put(Dst, 8254); 1395 dasm_put(Dst, 8273);
1395 } 1396 }
1396 dasm_put(Dst, 8257); 1397 dasm_put(Dst, 8276);
1397 dasm_put(Dst, 8342, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1398 dasm_put(Dst, 8361, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1398 dasm_put(Dst, 8443, (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)); 1399 dasm_put(Dst, 8462, (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));
1399 dasm_put(Dst, 8617); 1400 dasm_put(Dst, 8636);
1400 if (sse) { 1401 if (sse) {
1401 dasm_put(Dst, 8658); 1402 dasm_put(Dst, 8677);
1402 dasm_put(Dst, 8728); 1403 dasm_put(Dst, 8747);
1403 dasm_put(Dst, 8800); 1404 dasm_put(Dst, 8819);
1404 } else { 1405 } else {
1405 dasm_put(Dst, 8852); 1406 dasm_put(Dst, 8871);
1406 dasm_put(Dst, 8944); 1407 dasm_put(Dst, 8963);
1407 } 1408 }
1408 dasm_put(Dst, 8990); 1409 dasm_put(Dst, 9009);
1409 if (sse) { 1410 if (sse) {
1410 dasm_put(Dst, 8996, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1411 dasm_put(Dst, 9015, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1411 dasm_put(Dst, 9081, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1412 dasm_put(Dst, 9100, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1412 } else { 1413 } else {
1413 dasm_put(Dst, 9209); 1414 dasm_put(Dst, 9228);
1414 dasm_put(Dst, 9292); 1415 dasm_put(Dst, 9311);
1415 if (cmov) { 1416 if (cmov) {
1416 dasm_put(Dst, 9347);
1417 } else {
1418 dasm_put(Dst, 9366); 1417 dasm_put(Dst, 9366);
1418 } else {
1419 dasm_put(Dst, 9385);
1419 } 1420 }
1420 dasm_put(Dst, 9205); 1421 dasm_put(Dst, 9224);
1421 } 1422 }
1422 dasm_put(Dst, 9407); 1423 dasm_put(Dst, 9426);
1423} 1424}
1424 1425
1425/* Generate the code for a single instruction. */ 1426/* Generate the code for a single instruction. */
@@ -1435,600 +1436,600 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1435 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1436 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1436 1437
1437 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1438 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1438 dasm_put(Dst, 9429, LJ_TISNUM, LJ_TISNUM); 1439 dasm_put(Dst, 9448, LJ_TISNUM, LJ_TISNUM);
1439 if (sse) { 1440 if (sse) {
1440 dasm_put(Dst, 9450); 1441 dasm_put(Dst, 9469);
1441 } else { 1442 } else {
1442 dasm_put(Dst, 9465); 1443 dasm_put(Dst, 9484);
1443 if (cmov) { 1444 if (cmov) {
1444 dasm_put(Dst, 9475); 1445 dasm_put(Dst, 9494);
1445 } else { 1446 } else {
1446 dasm_put(Dst, 9481); 1447 dasm_put(Dst, 9500);
1447 } 1448 }
1448 } 1449 }
1449 switch (op) { 1450 switch (op) {
1450 case BC_ISLT: 1451 case BC_ISLT:
1451 dasm_put(Dst, 9488); 1452 dasm_put(Dst, 9507);
1452 break; 1453 break;
1453 case BC_ISGE: 1454 case BC_ISGE:
1454 dasm_put(Dst, 9287); 1455 dasm_put(Dst, 9306);
1455 break; 1456 break;
1456 case BC_ISLE: 1457 case BC_ISLE:
1457 dasm_put(Dst, 5942); 1458 dasm_put(Dst, 5942);
1458 break; 1459 break;
1459 case BC_ISGT: 1460 case BC_ISGT:
1460 dasm_put(Dst, 9493); 1461 dasm_put(Dst, 9512);
1461 break; 1462 break;
1462 default: break; /* Shut up GCC. */ 1463 default: break; /* Shut up GCC. */
1463 } 1464 }
1464 dasm_put(Dst, 9498, -BCBIAS_J*4); 1465 dasm_put(Dst, 9517, -BCBIAS_J*4);
1465 break; 1466 break;
1466 1467
1467 case BC_ISEQV: case BC_ISNEV: 1468 case BC_ISEQV: case BC_ISNEV:
1468 vk = op == BC_ISEQV; 1469 vk = op == BC_ISEQV;
1469 dasm_put(Dst, 9533, LJ_TISNUM, LJ_TISNUM); 1470 dasm_put(Dst, 9552, LJ_TISNUM, LJ_TISNUM);
1470 if (sse) { 1471 if (sse) {
1471 dasm_put(Dst, 9559); 1472 dasm_put(Dst, 9578);
1472 } else { 1473 } else {
1473 dasm_put(Dst, 9571); 1474 dasm_put(Dst, 9590);
1474 if (cmov) { 1475 if (cmov) {
1475 dasm_put(Dst, 9475); 1476 dasm_put(Dst, 9494);
1476 } else { 1477 } else {
1477 dasm_put(Dst, 9481); 1478 dasm_put(Dst, 9500);
1478 } 1479 }
1479 } 1480 }
1480 iseqne_fp: 1481 iseqne_fp:
1481 if (vk) { 1482 if (vk) {
1482 dasm_put(Dst, 9578); 1483 dasm_put(Dst, 9597);
1483 } else { 1484 } else {
1484 dasm_put(Dst, 9587); 1485 dasm_put(Dst, 9606);
1485 } 1486 }
1486 iseqne_end: 1487 iseqne_end:
1487 if (vk) { 1488 if (vk) {
1488 dasm_put(Dst, 9596, -BCBIAS_J*4); 1489 dasm_put(Dst, 9615, -BCBIAS_J*4);
1489 } else { 1490 } else {
1490 dasm_put(Dst, 9611, -BCBIAS_J*4); 1491 dasm_put(Dst, 9630, -BCBIAS_J*4);
1491 } 1492 }
1492 dasm_put(Dst, 9512); 1493 dasm_put(Dst, 9531);
1493 if (op == BC_ISEQV || op == BC_ISNEV) { 1494 if (op == BC_ISEQV || op == BC_ISNEV) {
1494 dasm_put(Dst, 9626, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1495 dasm_put(Dst, 9645, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1495 if (vk) { 1496 if (vk) {
1496 dasm_put(Dst, 9684); 1497 dasm_put(Dst, 9703);
1497 } else { 1498 } else {
1498 dasm_put(Dst, 9688); 1499 dasm_put(Dst, 9707);
1499 } 1500 }
1500 dasm_put(Dst, 9694); 1501 dasm_put(Dst, 9713);
1501 } 1502 }
1502 break; 1503 break;
1503 case BC_ISEQS: case BC_ISNES: 1504 case BC_ISEQS: case BC_ISNES:
1504 vk = op == BC_ISEQS; 1505 vk = op == BC_ISEQS;
1505 dasm_put(Dst, 9699, LJ_TSTR); 1506 dasm_put(Dst, 9718, LJ_TSTR);
1506 iseqne_test: 1507 iseqne_test:
1507 if (vk) { 1508 if (vk) {
1508 dasm_put(Dst, 9582); 1509 dasm_put(Dst, 9601);
1509 } else { 1510 } else {
1510 dasm_put(Dst, 2833); 1511 dasm_put(Dst, 2833);
1511 } 1512 }
1512 goto iseqne_end; 1513 goto iseqne_end;
1513 case BC_ISEQN: case BC_ISNEN: 1514 case BC_ISEQN: case BC_ISNEN:
1514 vk = op == BC_ISEQN; 1515 vk = op == BC_ISEQN;
1515 dasm_put(Dst, 9724, LJ_TISNUM); 1516 dasm_put(Dst, 9743, LJ_TISNUM);
1516 if (sse) { 1517 if (sse) {
1517 dasm_put(Dst, 9738); 1518 dasm_put(Dst, 9757);
1518 } else { 1519 } else {
1519 dasm_put(Dst, 9751); 1520 dasm_put(Dst, 9770);
1520 if (cmov) { 1521 if (cmov) {
1521 dasm_put(Dst, 9475); 1522 dasm_put(Dst, 9494);
1522 } else { 1523 } else {
1523 dasm_put(Dst, 9481); 1524 dasm_put(Dst, 9500);
1524 } 1525 }
1525 } 1526 }
1526 goto iseqne_fp; 1527 goto iseqne_fp;
1527 case BC_ISEQP: case BC_ISNEP: 1528 case BC_ISEQP: case BC_ISNEP:
1528 vk = op == BC_ISEQP; 1529 vk = op == BC_ISEQP;
1529 dasm_put(Dst, 9759); 1530 dasm_put(Dst, 9778);
1530 goto iseqne_test; 1531 goto iseqne_test;
1531 1532
1532 /* -- Unary test and copy ops ------------------------------------------- */ 1533 /* -- Unary test and copy ops ------------------------------------------- */
1533 1534
1534 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1535 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1535 dasm_put(Dst, 9771, LJ_TISTRUECOND); 1536 dasm_put(Dst, 9790, LJ_TISTRUECOND);
1536 if (op == BC_IST || op == BC_ISTC) { 1537 if (op == BC_IST || op == BC_ISTC) {
1537 dasm_put(Dst, 9783); 1538 dasm_put(Dst, 9802);
1538 } else { 1539 } else {
1539 dasm_put(Dst, 9788); 1540 dasm_put(Dst, 9807);
1540 } 1541 }
1541 if (op == BC_ISTC || op == BC_ISFC) { 1542 if (op == BC_ISTC || op == BC_ISFC) {
1542 dasm_put(Dst, 9793); 1543 dasm_put(Dst, 9812);
1543 } 1544 }
1544 dasm_put(Dst, 9804, -BCBIAS_J*4); 1545 dasm_put(Dst, 9823, -BCBIAS_J*4);
1545 break; 1546 break;
1546 1547
1547 /* -- Unary ops --------------------------------------------------------- */ 1548 /* -- Unary ops --------------------------------------------------------- */
1548 1549
1549 case BC_MOV: 1550 case BC_MOV:
1550 dasm_put(Dst, 9837); 1551 dasm_put(Dst, 9856);
1551 break; 1552 break;
1552 case BC_NOT: 1553 case BC_NOT:
1553 dasm_put(Dst, 9872, LJ_TISTRUECOND, LJ_TTRUE); 1554 dasm_put(Dst, 9891, LJ_TISTRUECOND, LJ_TTRUE);
1554 break; 1555 break;
1555 case BC_UNM: 1556 case BC_UNM:
1556 dasm_put(Dst, 9909, LJ_TISNUM); 1557 dasm_put(Dst, 9928, LJ_TISNUM);
1557 if (sse) { 1558 if (sse) {
1558 dasm_put(Dst, 9920, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1559 dasm_put(Dst, 9939, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1559 } else { 1560 } else {
1560 dasm_put(Dst, 9945); 1561 dasm_put(Dst, 9964);
1561 } 1562 }
1562 dasm_put(Dst, 9512); 1563 dasm_put(Dst, 9531);
1563 break; 1564 break;
1564 case BC_LEN: 1565 case BC_LEN:
1565 dasm_put(Dst, 9954, LJ_TSTR); 1566 dasm_put(Dst, 9973, LJ_TSTR);
1566 if (sse) { 1567 if (sse) {
1567 dasm_put(Dst, 9968, Dt5(->len)); 1568 dasm_put(Dst, 9987, Dt5(->len));
1568 } else { 1569 } else {
1569 dasm_put(Dst, 9986, Dt5(->len)); 1570 dasm_put(Dst, 10005, Dt5(->len));
1570 } 1571 }
1571 dasm_put(Dst, 9995, LJ_TTAB); 1572 dasm_put(Dst, 10014, LJ_TTAB);
1572 if (sse) { 1573 if (sse) {
1573 dasm_put(Dst, 10037); 1574 dasm_put(Dst, 10056);
1574 } else { 1575 } else {
1575 } 1576 }
1576 dasm_put(Dst, 10046); 1577 dasm_put(Dst, 10065);
1577 break; 1578 break;
1578 1579
1579 /* -- Binary ops -------------------------------------------------------- */ 1580 /* -- Binary ops -------------------------------------------------------- */
1580 1581
1581 1582
1582 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1583 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1583 dasm_put(Dst, 10056); 1584 dasm_put(Dst, 10075);
1584 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1585 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1585 switch (vk) { 1586 switch (vk) {
1586 case 0: 1587 case 0:
1587 dasm_put(Dst, 10064, LJ_TISNUM); 1588 dasm_put(Dst, 10083, LJ_TISNUM);
1588 if (sse) { 1589 if (sse) {
1589 dasm_put(Dst, 10076); 1590 dasm_put(Dst, 10095);
1590 } else { 1591 } else {
1591 dasm_put(Dst, 10091); 1592 dasm_put(Dst, 10110);
1592 } 1593 }
1593 break; 1594 break;
1594 case 1: 1595 case 1:
1595 dasm_put(Dst, 10100, LJ_TISNUM); 1596 dasm_put(Dst, 10119, LJ_TISNUM);
1596 if (sse) { 1597 if (sse) {
1597 dasm_put(Dst, 10112); 1598 dasm_put(Dst, 10131);
1598 } else { 1599 } else {
1599 dasm_put(Dst, 10127); 1600 dasm_put(Dst, 10146);
1600 } 1601 }
1601 break; 1602 break;
1602 default: 1603 default:
1603 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1604 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1604 if (sse) { 1605 if (sse) {
1605 dasm_put(Dst, 10158); 1606 dasm_put(Dst, 10177);
1606 } else { 1607 } else {
1607 dasm_put(Dst, 10172); 1608 dasm_put(Dst, 10191);
1608 } 1609 }
1609 break; 1610 break;
1610 } 1611 }
1611 if (sse) { 1612 if (sse) {
1612 dasm_put(Dst, 9938); 1613 dasm_put(Dst, 9957);
1613 } else { 1614 } else {
1614 dasm_put(Dst, 9950); 1615 dasm_put(Dst, 9969);
1615 } 1616 }
1616 dasm_put(Dst, 9512); 1617 dasm_put(Dst, 9531);
1617 break; 1618 break;
1618 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1619 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1619 dasm_put(Dst, 10056); 1620 dasm_put(Dst, 10075);
1620 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1621 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1621 switch (vk) { 1622 switch (vk) {
1622 case 0: 1623 case 0:
1623 dasm_put(Dst, 10064, LJ_TISNUM); 1624 dasm_put(Dst, 10083, LJ_TISNUM);
1624 if (sse) { 1625 if (sse) {
1625 dasm_put(Dst, 10180); 1626 dasm_put(Dst, 10199);
1626 } else { 1627 } else {
1627 dasm_put(Dst, 10195); 1628 dasm_put(Dst, 10214);
1628 } 1629 }
1629 break; 1630 break;
1630 case 1: 1631 case 1:
1631 dasm_put(Dst, 10100, LJ_TISNUM); 1632 dasm_put(Dst, 10119, LJ_TISNUM);
1632 if (sse) { 1633 if (sse) {
1633 dasm_put(Dst, 10204); 1634 dasm_put(Dst, 10223);
1634 } else { 1635 } else {
1635 dasm_put(Dst, 10219); 1636 dasm_put(Dst, 10238);
1636 } 1637 }
1637 break; 1638 break;
1638 default: 1639 default:
1639 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1640 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1640 if (sse) { 1641 if (sse) {
1641 dasm_put(Dst, 10228); 1642 dasm_put(Dst, 10247);
1642 } else { 1643 } else {
1643 dasm_put(Dst, 10242); 1644 dasm_put(Dst, 10261);
1644 } 1645 }
1645 break; 1646 break;
1646 } 1647 }
1647 if (sse) { 1648 if (sse) {
1648 dasm_put(Dst, 9938); 1649 dasm_put(Dst, 9957);
1649 } else { 1650 } else {
1650 dasm_put(Dst, 9950); 1651 dasm_put(Dst, 9969);
1651 } 1652 }
1652 dasm_put(Dst, 9512); 1653 dasm_put(Dst, 9531);
1653 break; 1654 break;
1654 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1655 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1655 dasm_put(Dst, 10056); 1656 dasm_put(Dst, 10075);
1656 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1657 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1657 switch (vk) { 1658 switch (vk) {
1658 case 0: 1659 case 0:
1659 dasm_put(Dst, 10064, LJ_TISNUM); 1660 dasm_put(Dst, 10083, LJ_TISNUM);
1660 if (sse) { 1661 if (sse) {
1661 dasm_put(Dst, 10250); 1662 dasm_put(Dst, 10269);
1662 } else { 1663 } else {
1663 dasm_put(Dst, 10265); 1664 dasm_put(Dst, 10284);
1664 } 1665 }
1665 break; 1666 break;
1666 case 1: 1667 case 1:
1667 dasm_put(Dst, 10100, LJ_TISNUM); 1668 dasm_put(Dst, 10119, LJ_TISNUM);
1668 if (sse) { 1669 if (sse) {
1669 dasm_put(Dst, 10274); 1670 dasm_put(Dst, 10293);
1670 } else { 1671 } else {
1671 dasm_put(Dst, 10289); 1672 dasm_put(Dst, 10308);
1672 } 1673 }
1673 break; 1674 break;
1674 default: 1675 default:
1675 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1676 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1676 if (sse) { 1677 if (sse) {
1677 dasm_put(Dst, 10298); 1678 dasm_put(Dst, 10317);
1678 } else { 1679 } else {
1679 dasm_put(Dst, 10312); 1680 dasm_put(Dst, 10331);
1680 } 1681 }
1681 break; 1682 break;
1682 } 1683 }
1683 if (sse) { 1684 if (sse) {
1684 dasm_put(Dst, 9938); 1685 dasm_put(Dst, 9957);
1685 } else { 1686 } else {
1686 dasm_put(Dst, 9950); 1687 dasm_put(Dst, 9969);
1687 } 1688 }
1688 dasm_put(Dst, 9512); 1689 dasm_put(Dst, 9531);
1689 break; 1690 break;
1690 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1691 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1691 dasm_put(Dst, 10056); 1692 dasm_put(Dst, 10075);
1692 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1693 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1693 switch (vk) { 1694 switch (vk) {
1694 case 0: 1695 case 0:
1695 dasm_put(Dst, 10064, LJ_TISNUM); 1696 dasm_put(Dst, 10083, LJ_TISNUM);
1696 if (sse) { 1697 if (sse) {
1697 dasm_put(Dst, 10320); 1698 dasm_put(Dst, 10339);
1698 } else { 1699 } else {
1699 dasm_put(Dst, 10335); 1700 dasm_put(Dst, 10354);
1700 } 1701 }
1701 break; 1702 break;
1702 case 1: 1703 case 1:
1703 dasm_put(Dst, 10100, LJ_TISNUM); 1704 dasm_put(Dst, 10119, LJ_TISNUM);
1704 if (sse) { 1705 if (sse) {
1705 dasm_put(Dst, 10344); 1706 dasm_put(Dst, 10363);
1706 } else { 1707 } else {
1707 dasm_put(Dst, 10359); 1708 dasm_put(Dst, 10378);
1708 } 1709 }
1709 break; 1710 break;
1710 default: 1711 default:
1711 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1712 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1712 if (sse) { 1713 if (sse) {
1713 dasm_put(Dst, 10368); 1714 dasm_put(Dst, 10387);
1714 } else { 1715 } else {
1715 dasm_put(Dst, 10382); 1716 dasm_put(Dst, 10401);
1716 } 1717 }
1717 break; 1718 break;
1718 } 1719 }
1719 if (sse) { 1720 if (sse) {
1720 dasm_put(Dst, 9938); 1721 dasm_put(Dst, 9957);
1721 } else { 1722 } else {
1722 dasm_put(Dst, 9950); 1723 dasm_put(Dst, 9969);
1723 } 1724 }
1724 dasm_put(Dst, 9512); 1725 dasm_put(Dst, 9531);
1725 break; 1726 break;
1726 case BC_MODVN: 1727 case BC_MODVN:
1727 dasm_put(Dst, 10056); 1728 dasm_put(Dst, 10075);
1728 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1729 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1729 switch (vk) { 1730 switch (vk) {
1730 case 0: 1731 case 0:
1731 dasm_put(Dst, 10064, LJ_TISNUM); 1732 dasm_put(Dst, 10083, LJ_TISNUM);
1732 if (sse) { 1733 if (sse) {
1733 dasm_put(Dst, 10390); 1734 dasm_put(Dst, 10409);
1734 } else { 1735 } else {
1735 dasm_put(Dst, 10405); 1736 dasm_put(Dst, 10424);
1736 } 1737 }
1737 break; 1738 break;
1738 case 1: 1739 case 1:
1739 dasm_put(Dst, 10100, LJ_TISNUM); 1740 dasm_put(Dst, 10119, LJ_TISNUM);
1740 if (sse) { 1741 if (sse) {
1741 dasm_put(Dst, 10414); 1742 dasm_put(Dst, 10433);
1742 } else { 1743 } else {
1743 dasm_put(Dst, 10429); 1744 dasm_put(Dst, 10448);
1744 } 1745 }
1745 break; 1746 break;
1746 default: 1747 default:
1747 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1748 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1748 if (sse) { 1749 if (sse) {
1749 dasm_put(Dst, 10438); 1750 dasm_put(Dst, 10457);
1750 } else { 1751 } else {
1751 dasm_put(Dst, 10452); 1752 dasm_put(Dst, 10471);
1752 } 1753 }
1753 break; 1754 break;
1754 } 1755 }
1755 dasm_put(Dst, 10460); 1756 dasm_put(Dst, 10479);
1756 if (sse) { 1757 if (sse) {
1757 dasm_put(Dst, 9938); 1758 dasm_put(Dst, 9957);
1758 } else { 1759 } else {
1759 dasm_put(Dst, 9950); 1760 dasm_put(Dst, 9969);
1760 } 1761 }
1761 dasm_put(Dst, 9512); 1762 dasm_put(Dst, 9531);
1762 break; 1763 break;
1763 case BC_MODNV: case BC_MODVV: 1764 case BC_MODNV: case BC_MODVV:
1764 dasm_put(Dst, 10056); 1765 dasm_put(Dst, 10075);
1765 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1766 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1766 switch (vk) { 1767 switch (vk) {
1767 case 0: 1768 case 0:
1768 dasm_put(Dst, 10064, LJ_TISNUM); 1769 dasm_put(Dst, 10083, LJ_TISNUM);
1769 if (sse) { 1770 if (sse) {
1770 dasm_put(Dst, 10390); 1771 dasm_put(Dst, 10409);
1771 } else { 1772 } else {
1772 dasm_put(Dst, 10405); 1773 dasm_put(Dst, 10424);
1773 } 1774 }
1774 break; 1775 break;
1775 case 1: 1776 case 1:
1776 dasm_put(Dst, 10100, LJ_TISNUM); 1777 dasm_put(Dst, 10119, LJ_TISNUM);
1777 if (sse) { 1778 if (sse) {
1778 dasm_put(Dst, 10414); 1779 dasm_put(Dst, 10433);
1779 } else { 1780 } else {
1780 dasm_put(Dst, 10429); 1781 dasm_put(Dst, 10448);
1781 } 1782 }
1782 break; 1783 break;
1783 default: 1784 default:
1784 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1785 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1785 if (sse) { 1786 if (sse) {
1786 dasm_put(Dst, 10438); 1787 dasm_put(Dst, 10457);
1787 } else { 1788 } else {
1788 dasm_put(Dst, 10452); 1789 dasm_put(Dst, 10471);
1789 } 1790 }
1790 break; 1791 break;
1791 } 1792 }
1792 dasm_put(Dst, 10466); 1793 dasm_put(Dst, 10485);
1793 break; 1794 break;
1794 case BC_POW: 1795 case BC_POW:
1795 dasm_put(Dst, 10056); 1796 dasm_put(Dst, 10075);
1796 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1797 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1797 switch (vk) { 1798 switch (vk) {
1798 case 0: 1799 case 0:
1799 dasm_put(Dst, 10064, LJ_TISNUM); 1800 dasm_put(Dst, 10083, LJ_TISNUM);
1800 if (sse) { 1801 if (sse) {
1801 dasm_put(Dst, 10390); 1802 dasm_put(Dst, 10409);
1802 } else { 1803 } else {
1803 dasm_put(Dst, 10405); 1804 dasm_put(Dst, 10424);
1804 } 1805 }
1805 break; 1806 break;
1806 case 1: 1807 case 1:
1807 dasm_put(Dst, 10100, LJ_TISNUM); 1808 dasm_put(Dst, 10119, LJ_TISNUM);
1808 if (sse) { 1809 if (sse) {
1809 dasm_put(Dst, 10414); 1810 dasm_put(Dst, 10433);
1810 } else { 1811 } else {
1811 dasm_put(Dst, 10429); 1812 dasm_put(Dst, 10448);
1812 } 1813 }
1813 break; 1814 break;
1814 default: 1815 default:
1815 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1816 dasm_put(Dst, 10155, LJ_TISNUM, LJ_TISNUM);
1816 if (sse) { 1817 if (sse) {
1817 dasm_put(Dst, 10438); 1818 dasm_put(Dst, 10457);
1818 } else { 1819 } else {
1819 dasm_put(Dst, 10452); 1820 dasm_put(Dst, 10471);
1820 } 1821 }
1821 break; 1822 break;
1822 } 1823 }
1823 dasm_put(Dst, 10471); 1824 dasm_put(Dst, 10490);
1824 if (sse) { 1825 if (sse) {
1825 dasm_put(Dst, 9938); 1826 dasm_put(Dst, 9957);
1826 } else { 1827 } else {
1827 dasm_put(Dst, 9950); 1828 dasm_put(Dst, 9969);
1828 } 1829 }
1829 dasm_put(Dst, 9512); 1830 dasm_put(Dst, 9531);
1830 break; 1831 break;
1831 1832
1832 case BC_CAT: 1833 case BC_CAT:
1833 dasm_put(Dst, 10475, Dt1(->base), Dt1(->base)); 1834 dasm_put(Dst, 10494, Dt1(->base), Dt1(->base));
1834 break; 1835 break;
1835 1836
1836 /* -- Constant ops ------------------------------------------------------ */ 1837 /* -- Constant ops ------------------------------------------------------ */
1837 1838
1838 case BC_KSTR: 1839 case BC_KSTR:
1839 dasm_put(Dst, 10566, LJ_TSTR); 1840 dasm_put(Dst, 10585, LJ_TSTR);
1840 break; 1841 break;
1841 case BC_KSHORT: 1842 case BC_KSHORT:
1842 if (sse) { 1843 if (sse) {
1843 dasm_put(Dst, 10603); 1844 dasm_put(Dst, 10622);
1844 } else { 1845 } else {
1845 dasm_put(Dst, 10618); 1846 dasm_put(Dst, 10637);
1846 } 1847 }
1847 dasm_put(Dst, 9512); 1848 dasm_put(Dst, 9531);
1848 break; 1849 break;
1849 case BC_KNUM: 1850 case BC_KNUM:
1850 if (sse) { 1851 if (sse) {
1851 dasm_put(Dst, 10626); 1852 dasm_put(Dst, 10645);
1852 } else { 1853 } else {
1853 dasm_put(Dst, 10640); 1854 dasm_put(Dst, 10659);
1854 } 1855 }
1855 dasm_put(Dst, 9512); 1856 dasm_put(Dst, 9531);
1856 break; 1857 break;
1857 case BC_KPRI: 1858 case BC_KPRI:
1858 dasm_put(Dst, 10648); 1859 dasm_put(Dst, 10667);
1859 break; 1860 break;
1860 case BC_KNIL: 1861 case BC_KNIL:
1861 dasm_put(Dst, 10677, LJ_TNIL); 1862 dasm_put(Dst, 10696, LJ_TNIL);
1862 break; 1863 break;
1863 1864
1864 /* -- Upvalue and function ops ------------------------------------------ */ 1865 /* -- Upvalue and function ops ------------------------------------------ */
1865 1866
1866 case BC_UGET: 1867 case BC_UGET:
1867 dasm_put(Dst, 10725, offsetof(GCfuncL, uvptr), DtA(->v)); 1868 dasm_put(Dst, 10744, offsetof(GCfuncL, uvptr), DtA(->v));
1868 break; 1869 break;
1869 case BC_USETV: 1870 case BC_USETV:
1870#define TV2MARKOFS \ 1871#define TV2MARKOFS \
1871 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1872 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1872 dasm_put(Dst, 10771, 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); 1873 dasm_put(Dst, 10790, 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);
1873 dasm_put(Dst, 10867); 1874 dasm_put(Dst, 10886);
1874 break; 1875 break;
1875#undef TV2MARKOFS 1876#undef TV2MARKOFS
1876 case BC_USETS: 1877 case BC_USETS:
1877 dasm_put(Dst, 10879, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1878 dasm_put(Dst, 10898, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1878 break; 1879 break;
1879 case BC_USETN: 1880 case BC_USETN:
1880 dasm_put(Dst, 10975); 1881 dasm_put(Dst, 10994);
1881 if (sse) { 1882 if (sse) {
1882 dasm_put(Dst, 10980); 1883 dasm_put(Dst, 10999);
1883 } else { 1884 } else {
1884 dasm_put(Dst, 9754); 1885 dasm_put(Dst, 9773);
1885 } 1886 }
1886 dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v)); 1887 dasm_put(Dst, 11007, offsetof(GCfuncL, uvptr), DtA(->v));
1887 if (sse) { 1888 if (sse) {
1888 dasm_put(Dst, 10997); 1889 dasm_put(Dst, 11016);
1889 } else { 1890 } else {
1890 dasm_put(Dst, 11003); 1891 dasm_put(Dst, 11022);
1891 } 1892 }
1892 dasm_put(Dst, 9512); 1893 dasm_put(Dst, 9531);
1893 break; 1894 break;
1894 case BC_USETP: 1895 case BC_USETP:
1895 dasm_put(Dst, 11006, offsetof(GCfuncL, uvptr), DtA(->v)); 1896 dasm_put(Dst, 11025, offsetof(GCfuncL, uvptr), DtA(->v));
1896 break; 1897 break;
1897 case BC_UCLO: 1898 case BC_UCLO:
1898 dasm_put(Dst, 11046, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1899 dasm_put(Dst, 11065, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1899 break; 1900 break;
1900 1901
1901 case BC_FNEW: 1902 case BC_FNEW:
1902 dasm_put(Dst, 11102, Dt1(->base), Dt1(->base), LJ_TFUNC); 1903 dasm_put(Dst, 11121, Dt1(->base), Dt1(->base), LJ_TFUNC);
1903 break; 1904 break;
1904 1905
1905 /* -- Table ops --------------------------------------------------------- */ 1906 /* -- Table ops --------------------------------------------------------- */
1906 1907
1907 case BC_TNEW: 1908 case BC_TNEW:
1908 dasm_put(Dst, 11169, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1909 dasm_put(Dst, 11188, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1909 break; 1910 break;
1910 case BC_TDUP: 1911 case BC_TDUP:
1911 dasm_put(Dst, 11293, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1912 dasm_put(Dst, 11312, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1912 break; 1913 break;
1913 1914
1914 case BC_GGET: 1915 case BC_GGET:
1915 dasm_put(Dst, 11392, Dt7(->env)); 1916 dasm_put(Dst, 11411, Dt7(->env));
1916 break; 1917 break;
1917 case BC_GSET: 1918 case BC_GSET:
1918 dasm_put(Dst, 11412, Dt7(->env)); 1919 dasm_put(Dst, 11431, Dt7(->env));
1919 break; 1920 break;
1920 1921
1921 case BC_TGETV: 1922 case BC_TGETV:
1922 dasm_put(Dst, 11432, LJ_TTAB, LJ_TISNUM); 1923 dasm_put(Dst, 11451, LJ_TTAB, LJ_TISNUM);
1923 if (sse) { 1924 if (sse) {
1924 dasm_put(Dst, 11465); 1925 dasm_put(Dst, 11484);
1925 } else { 1926 } else {
1926 } 1927 }
1927 dasm_put(Dst, 11486, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1928 dasm_put(Dst, 11505, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1928 dasm_put(Dst, 11580, LJ_TSTR); 1929 dasm_put(Dst, 11599, LJ_TSTR);
1929 break; 1930 break;
1930 case BC_TGETS: 1931 case BC_TGETS:
1931 dasm_put(Dst, 11598, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1932 dasm_put(Dst, 11617, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1932 dasm_put(Dst, 11684, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1933 dasm_put(Dst, 11703, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1933 break; 1934 break;
1934 case BC_TGETB: 1935 case BC_TGETB:
1935 dasm_put(Dst, 11757, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1936 dasm_put(Dst, 11776, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1936 dasm_put(Dst, 10046); 1937 dasm_put(Dst, 10065);
1937 break; 1938 break;
1938 1939
1939 case BC_TSETV: 1940 case BC_TSETV:
1940 dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM); 1941 dasm_put(Dst, 11877, LJ_TTAB, LJ_TISNUM);
1941 if (sse) { 1942 if (sse) {
1942 dasm_put(Dst, 11465); 1943 dasm_put(Dst, 11484);
1943 } else { 1944 } else {
1944 } 1945 }
1945 dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1946 dasm_put(Dst, 11910, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1946 dasm_put(Dst, 11976, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1947 dasm_put(Dst, 11995, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1947 break; 1948 break;
1948 case BC_TSETS: 1949 case BC_TSETS:
1949 dasm_put(Dst, 12040, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1950 dasm_put(Dst, 12059, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1950 dasm_put(Dst, 12117, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1951 dasm_put(Dst, 12136, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1951 dasm_put(Dst, 12209, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1952 dasm_put(Dst, 12228, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1952 break; 1953 break;
1953 case BC_TSETB: 1954 case BC_TSETB:
1954 dasm_put(Dst, 12301, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1955 dasm_put(Dst, 12320, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1955 dasm_put(Dst, 12401, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1956 dasm_put(Dst, 12420, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1956 break; 1957 break;
1957 1958
1958 case BC_TSETM: 1959 case BC_TSETM:
1959 dasm_put(Dst, 12449); 1960 dasm_put(Dst, 12468);
1960 if (sse) { 1961 if (sse) {
1961 dasm_put(Dst, 10980); 1962 dasm_put(Dst, 10999);
1962 } else { 1963 } else {
1963 } 1964 }
1964 dasm_put(Dst, 12454, Dt6(->marked), LJ_GC_BLACK); 1965 dasm_put(Dst, 12473, Dt6(->marked), LJ_GC_BLACK);
1965 if (sse) { 1966 if (sse) {
1966 dasm_put(Dst, 12479); 1967 dasm_put(Dst, 12498);
1967 } else { 1968 } else {
1968 } 1969 }
1969 dasm_put(Dst, 12487, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1970 dasm_put(Dst, 12506, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
1970 dasm_put(Dst, 12623, Dt6(->gclist)); 1971 dasm_put(Dst, 12642, Dt6(->gclist));
1971 break; 1972 break;
1972 1973
1973 /* -- Calls and vararg handling ----------------------------------------- */ 1974 /* -- Calls and vararg handling ----------------------------------------- */
1974 1975
1975 case BC_CALL: case BC_CALLM: 1976 case BC_CALL: case BC_CALLM:
1976 dasm_put(Dst, 10060); 1977 dasm_put(Dst, 10079);
1977 if (op == BC_CALLM) { 1978 if (op == BC_CALLM) {
1978 dasm_put(Dst, 12631); 1979 dasm_put(Dst, 12650);
1979 } 1980 }
1980 dasm_put(Dst, 12636, LJ_TFUNC, Dt7(->pc)); 1981 dasm_put(Dst, 12655, LJ_TFUNC, Dt7(->pc));
1981 break; 1982 break;
1982 1983
1983 case BC_CALLMT: 1984 case BC_CALLMT:
1984 dasm_put(Dst, 12631); 1985 dasm_put(Dst, 12650);
1985 break; 1986 break;
1986 case BC_CALLT: 1987 case BC_CALLT:
1987 dasm_put(Dst, 12679, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1988 dasm_put(Dst, 12698, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1988 dasm_put(Dst, 12803, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1989 dasm_put(Dst, 12822, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1989 break; 1990 break;
1990 1991
1991 case BC_ITERC: 1992 case BC_ITERC:
1992 dasm_put(Dst, 12864, LJ_TFUNC, 2+1, Dt7(->pc)); 1993 dasm_put(Dst, 12883, LJ_TFUNC, 2+1, Dt7(->pc));
1993 break; 1994 break;
1994 1995
1995 case BC_VARG: 1996 case BC_VARG:
1996 dasm_put(Dst, 12946, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1997 dasm_put(Dst, 12965, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1997 dasm_put(Dst, 13100, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1998 dasm_put(Dst, 13119, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1998 break; 1999 break;
1999 2000
2000 /* -- Returns ----------------------------------------------------------- */ 2001 /* -- Returns ----------------------------------------------------------- */
2001 2002
2002 case BC_RETM: 2003 case BC_RETM:
2003 dasm_put(Dst, 12631); 2004 dasm_put(Dst, 12650);
2004 break; 2005 break;
2005 2006
2006 case BC_RET: case BC_RET0: case BC_RET1: 2007 case BC_RET: case BC_RET0: case BC_RET1:
2007 if (op != BC_RET0) { 2008 if (op != BC_RET0) {
2008 dasm_put(Dst, 13205); 2009 dasm_put(Dst, 13224);
2009 } 2010 }
2010 dasm_put(Dst, 13209, FRAME_TYPE); 2011 dasm_put(Dst, 13228, FRAME_TYPE);
2011 switch (op) { 2012 switch (op) {
2012 case BC_RET: 2013 case BC_RET:
2013 dasm_put(Dst, 13228); 2014 dasm_put(Dst, 13247);
2014 break; 2015 break;
2015 case BC_RET1: 2016 case BC_RET1:
2016 dasm_put(Dst, 13292); 2017 dasm_put(Dst, 13311);
2017 /* fallthrough */ 2018 /* fallthrough */
2018 case BC_RET0: 2019 case BC_RET0:
2019 dasm_put(Dst, 13308); 2020 dasm_put(Dst, 13327);
2020 default: 2021 default:
2021 break; 2022 break;
2022 } 2023 }
2023 dasm_put(Dst, 13319, Dt7(->pc), PC2PROTO(k)); 2024 dasm_put(Dst, 13338, Dt7(->pc), PC2PROTO(k));
2024 if (op == BC_RET) { 2025 if (op == BC_RET) {
2025 dasm_put(Dst, 13367, LJ_TNIL); 2026 dasm_put(Dst, 13386, LJ_TNIL);
2026 } else { 2027 } else {
2027 dasm_put(Dst, 13378, LJ_TNIL); 2028 dasm_put(Dst, 13397, LJ_TNIL);
2028 } 2029 }
2029 dasm_put(Dst, 13385); 2030 dasm_put(Dst, 13404);
2030 if (op != BC_RET0) { 2031 if (op != BC_RET0) {
2031 dasm_put(Dst, 13405); 2032 dasm_put(Dst, 13424);
2032 } 2033 }
2033 dasm_put(Dst, 4596); 2034 dasm_put(Dst, 4596);
2034 break; 2035 break;
@@ -2038,7 +2039,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2038 2039
2039 case BC_FORL: 2040 case BC_FORL:
2040#if LJ_HASJIT 2041#if LJ_HASJIT
2041 dasm_put(Dst, 13408, HOTCOUNT_PCMASK, GG_DISP2HOT); 2042 dasm_put(Dst, 13427, HOTCOUNT_PCMASK, GG_DISP2HOT);
2042#endif 2043#endif
2043 break; 2044 break;
2044 2045
@@ -2050,57 +2051,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2050 case BC_FORI: 2051 case BC_FORI:
2051 case BC_IFORL: 2052 case BC_IFORL:
2052 vk = (op == BC_IFORL || op == BC_JFORL); 2053 vk = (op == BC_IFORL || op == BC_JFORL);
2053 dasm_put(Dst, 13429); 2054 dasm_put(Dst, 13448);
2054 if (!vk) { 2055 if (!vk) {
2055 dasm_put(Dst, 13433, LJ_TISNUM, LJ_TISNUM); 2056 dasm_put(Dst, 13452, LJ_TISNUM, LJ_TISNUM);
2056 } 2057 }
2057 dasm_put(Dst, 13452); 2058 dasm_put(Dst, 13471);
2058 if (!vk) { 2059 if (!vk) {
2059 dasm_put(Dst, 13456, LJ_TISNUM); 2060 dasm_put(Dst, 13475, LJ_TISNUM);
2060 } 2061 }
2061 if (sse) { 2062 if (sse) {
2062 dasm_put(Dst, 13465); 2063 dasm_put(Dst, 13484);
2063 if (vk) { 2064 if (vk) {
2064 dasm_put(Dst, 13477);
2065 } else {
2066 dasm_put(Dst, 13496); 2065 dasm_put(Dst, 13496);
2066 } else {
2067 dasm_put(Dst, 13515);
2067 } 2068 }
2068 dasm_put(Dst, 13501); 2069 dasm_put(Dst, 13520);
2069 } else { 2070 } else {
2070 dasm_put(Dst, 13514); 2071 dasm_put(Dst, 13533);
2071 if (vk) { 2072 if (vk) {
2072 dasm_put(Dst, 13520); 2073 dasm_put(Dst, 13539);
2073 } else { 2074 } else {
2074 dasm_put(Dst, 13536); 2075 dasm_put(Dst, 13555);
2075 } 2076 }
2076 dasm_put(Dst, 13544); 2077 dasm_put(Dst, 13563);
2077 if (cmov) { 2078 if (cmov) {
2078 dasm_put(Dst, 9475); 2079 dasm_put(Dst, 9494);
2079 } else { 2080 } else {
2080 dasm_put(Dst, 9481); 2081 dasm_put(Dst, 9500);
2081 } 2082 }
2082 if (!cmov) { 2083 if (!cmov) {
2083 dasm_put(Dst, 13549); 2084 dasm_put(Dst, 13568);
2084 } 2085 }
2085 } 2086 }
2086 if (op == BC_FORI) { 2087 if (op == BC_FORI) {
2087 dasm_put(Dst, 13555, -BCBIAS_J*4); 2088 dasm_put(Dst, 13574, -BCBIAS_J*4);
2088 } else if (op == BC_JFORI) { 2089 } else if (op == BC_JFORI) {
2089 dasm_put(Dst, 13565, -BCBIAS_J*4, BC_JLOOP); 2090 dasm_put(Dst, 13584, -BCBIAS_J*4, BC_JLOOP);
2090 } else if (op == BC_IFORL) { 2091 } else if (op == BC_IFORL) {
2091 dasm_put(Dst, 13579, -BCBIAS_J*4); 2092 dasm_put(Dst, 13598, -BCBIAS_J*4);
2092 } else { 2093 } else {
2093 dasm_put(Dst, 13575, BC_JLOOP); 2094 dasm_put(Dst, 13594, BC_JLOOP);
2094 } 2095 }
2095 dasm_put(Dst, 9510); 2096 dasm_put(Dst, 9529);
2096 if (sse) { 2097 if (sse) {
2097 dasm_put(Dst, 13589); 2098 dasm_put(Dst, 13608);
2098 } 2099 }
2099 break; 2100 break;
2100 2101
2101 case BC_ITERL: 2102 case BC_ITERL:
2102#if LJ_HASJIT 2103#if LJ_HASJIT
2103 dasm_put(Dst, 13408, HOTCOUNT_PCMASK, GG_DISP2HOT); 2104 dasm_put(Dst, 13427, HOTCOUNT_PCMASK, GG_DISP2HOT);
2104#endif 2105#endif
2105 break; 2106 break;
2106 2107
@@ -2109,33 +2110,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2109 break; 2110 break;
2110#endif 2111#endif
2111 case BC_IITERL: 2112 case BC_IITERL:
2112 dasm_put(Dst, 13600, LJ_TNIL); 2113 dasm_put(Dst, 13619, LJ_TNIL);
2113 if (op == BC_JITERL) { 2114 if (op == BC_JITERL) {
2114 dasm_put(Dst, 13615, BC_JLOOP); 2115 dasm_put(Dst, 13634, BC_JLOOP);
2115 } else { 2116 } else {
2116 dasm_put(Dst, 13629, -BCBIAS_J*4); 2117 dasm_put(Dst, 13648, -BCBIAS_J*4);
2117 } 2118 }
2118 dasm_put(Dst, 9814); 2119 dasm_put(Dst, 9833);
2119 break; 2120 break;
2120 2121
2121 case BC_LOOP: 2122 case BC_LOOP:
2122#if LJ_HASJIT 2123#if LJ_HASJIT
2123 dasm_put(Dst, 13408, HOTCOUNT_PCMASK, GG_DISP2HOT); 2124 dasm_put(Dst, 13427, HOTCOUNT_PCMASK, GG_DISP2HOT);
2124#endif 2125#endif
2125 break; 2126 break;
2126 2127
2127 case BC_ILOOP: 2128 case BC_ILOOP:
2128 dasm_put(Dst, 9512); 2129 dasm_put(Dst, 9531);
2129 break; 2130 break;
2130 2131
2131 case BC_JLOOP: 2132 case BC_JLOOP:
2132#if LJ_HASJIT 2133#if LJ_HASJIT
2133 dasm_put(Dst, 13645, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2134 dasm_put(Dst, 13664, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2134#endif 2135#endif
2135 break; 2136 break;
2136 2137
2137 case BC_JMP: 2138 case BC_JMP:
2138 dasm_put(Dst, 13672, -BCBIAS_J*4); 2139 dasm_put(Dst, 13705, -BCBIAS_J*4);
2139 break; 2140 break;
2140 2141
2141 /* -- Function headers -------------------------------------------------- */ 2142 /* -- Function headers -------------------------------------------------- */
@@ -2158,47 +2159,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2158 break; 2159 break;
2159#endif 2160#endif
2160 case BC_IFUNCF: 2161 case BC_IFUNCF:
2161 dasm_put(Dst, 13698, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2162 dasm_put(Dst, 13731, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2162 if (op == BC_JFUNCF) { 2163 if (op == BC_JFUNCF) {
2163 dasm_put(Dst, 13729, BC_JLOOP); 2164 dasm_put(Dst, 13762, BC_JLOOP);
2164 } else { 2165 } else {
2165 dasm_put(Dst, 9512); 2166 dasm_put(Dst, 9531);
2166 } 2167 }
2167 dasm_put(Dst, 13738, LJ_TNIL); 2168 dasm_put(Dst, 13771, LJ_TNIL);
2168 break; 2169 break;
2169 2170
2170 case BC_JFUNCV: 2171 case BC_JFUNCV:
2171#if !LJ_HASJIT 2172#if !LJ_HASJIT
2172 break; 2173 break;
2173#endif 2174#endif
2174 dasm_put(Dst, 9207); 2175 dasm_put(Dst, 9226);
2175 break; /* NYI: compiled vararg functions. */ 2176 break; /* NYI: compiled vararg functions. */
2176 2177
2177 case BC_IFUNCV: 2178 case BC_IFUNCV:
2178 dasm_put(Dst, 13760, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2179 dasm_put(Dst, 13793, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2179 if (op == BC_JFUNCV) { 2180 if (op == BC_JFUNCV) {
2180 dasm_put(Dst, 13729, BC_JLOOP); 2181 dasm_put(Dst, 13762, BC_JLOOP);
2181 } else { 2182 } else {
2182 dasm_put(Dst, 13857, -4+PC2PROTO(k)); 2183 dasm_put(Dst, 13890, -4+PC2PROTO(k));
2183 } 2184 }
2184 dasm_put(Dst, 13882, LJ_TNIL); 2185 dasm_put(Dst, 13915, LJ_TNIL);
2185 break; 2186 break;
2186 2187
2187 case BC_FUNCC: 2188 case BC_FUNCC:
2188 case BC_FUNCCW: 2189 case BC_FUNCCW:
2189 dasm_put(Dst, 13904, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2190 dasm_put(Dst, 13937, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2190 if (op == BC_FUNCC) { 2191 if (op == BC_FUNCC) {
2191 dasm_put(Dst, 13934); 2192 dasm_put(Dst, 13967);
2192 } else { 2193 } else {
2193 dasm_put(Dst, 13938); 2194 dasm_put(Dst, 13971);
2194 } 2195 }
2195 dasm_put(Dst, 13946, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2196 dasm_put(Dst, 13979, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2196 if (op == BC_FUNCC) { 2197 if (op == BC_FUNCC) {
2197 dasm_put(Dst, 13956); 2198 dasm_put(Dst, 13989);
2198 } else { 2199 } else {
2199 dasm_put(Dst, 13961, DISPATCH_GL(wrapf)); 2200 dasm_put(Dst, 13994, DISPATCH_GL(wrapf));
2200 } 2201 }
2201 dasm_put(Dst, 13967, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2202 dasm_put(Dst, 14000, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2202 break; 2203 break;
2203 2204
2204 /* ---------------------------------------------------------------------- */ 2205 /* ---------------------------------------------------------------------- */
@@ -2226,7 +2227,7 @@ static int build_backend(BuildCtx *ctx)
2226 2227
2227 build_subroutines(ctx, cmov, sse); 2228 build_subroutines(ctx, cmov, sse);
2228 2229
2229 dasm_put(Dst, 13993); 2230 dasm_put(Dst, 14026);
2230 for (op = 0; op < BC__MAX; op++) 2231 for (op = 0; op < BC__MAX; op++)
2231 build_ins(ctx, (BCOp)op, op, cmov, sse); 2232 build_ins(ctx, (BCOp)op, op, cmov, sse);
2232 2233
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index b0c90b81..de65f400 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[13802] = { 15static const unsigned char build_actionlist[13976] = {
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,252,247,198,237,15,132,244,10, 18 36,84,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,
@@ -377,138 +377,142 @@ static const unsigned char build_actionlist[13802] = {
377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152, 377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,
378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233, 378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233,
379 139,147,233,72,137,171,233,137,149,233,72,141,148,253,36,233,141,139,233, 379 139,147,233,72,137,171,233,137,149,233,72,141,148,253,36,233,141,139,233,
380 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,108,36,96,133,192, 380 232,251,1,23,72,139,141,233,72,129,225,239,137,169,233,139,149,233,139,177,
381 15,133,244,247,139,149,233,139,116,36,100,255,248,144,255,139,122,252,248, 381 233,252,233,244,247,255,248,144,255,49,192,72,141,140,253,36,233,248,1,102,
382 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182, 382 68,15,111,185,233,102,68,15,111,177,233,102,68,15,111,169,233,102,68,15,111,
383 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,1,137,252,233, 383 161,233,102,68,15,111,153,233,102,68,15,111,145,233,102,68,15,111,137,233,
384 137,194,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4, 384 102,68,15,111,129,233,102,15,111,185,233,72,137,204,102,15,111,49,76,139,
385 102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252, 385 124,36,16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80,133,192,15,133,
386 252,217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110, 386 244,248,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,
387 208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217, 387 233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
388 15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86, 388 248,2,137,252,233,137,194,232,251,1,24,255,248,82,255,217,124,36,4,137,68,
389 202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252, 389 36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,
390 242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102, 390 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,
391 184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36, 391 237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,
392 6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102, 392 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
393 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102, 393 15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,
394 15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203, 394 1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,
395 102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15, 395 36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,
396 84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137, 396 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,
397 68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252, 397 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,
398 252,217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110, 398 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,
399 208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217, 399 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,
400 15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203, 400 15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,
401 72,184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242, 401 255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,
402 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242, 402 217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,72,184,
403 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 403 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,
404 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242, 404 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,15,
405 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208, 405 88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,
406 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15, 406 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,
407 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15, 407 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,
408 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36, 408 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,
409 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 409 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,
410 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84, 410 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,
411 36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,124,36,8,0,0,128,252,255, 411 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,
412 15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252,240, 412 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,
413 217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195, 413 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,
414 255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202, 414 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,
415 15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1, 415 234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,
416 169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2, 416 124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,
417 209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244, 417 233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,
418 250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89, 418 2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,
419 193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72, 419 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,
420 15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132, 420 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,
421 244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102, 421 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,
422 72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248, 422 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,
423 255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,72,61,252,254, 423 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,
424 15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68, 424 72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,
425 36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,252,233,217,201,217, 425 131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,
426 252,240,217,232,222,193,217,252,253,221,217,221,92,36,8,252,242,15,16,68, 426 192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,
427 36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244, 427 0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,
428 247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84, 428 192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,
429 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80, 429 15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,
430 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237, 430 252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,
431 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87, 431 8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,
432 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255, 432 46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,
433 110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,
434 244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,
435 3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,
436 133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,
437 195,248,153,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,
438 130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,
439 8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,
440 252,233,244,253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250,
441 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,
442 253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,
443 15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,
444 253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,
445 247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,
446 248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,
433 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15, 447 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,
434 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,68,36,8, 448 135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244,
435 131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,252,233,244, 449 149,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
436 253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250,7,15,132,244, 450 241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,
437 247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1, 451 244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
438 217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,15,132,244, 452 252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,
439 247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1, 453 195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255,65,131,252,248,
440 255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,247,15,135, 454 1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,
441 244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92, 455 193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,
442 36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,131,252,250,1, 456 193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,148,
443 15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,217, 457 15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,
444 252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244,149,131,252,250, 458 237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,
445 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1, 459 200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,
446 217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,244,247,255,15, 460 36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,
447 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248, 461 243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253,
448 2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217, 462 221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255,
449 252,242,221,216,195,255,248,9,204,248,154,255,65,131,252,248,1,15,132,244, 463 252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,
450 247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248, 464 20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,
451 2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248, 465 193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,
452 1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,148,15,132,244, 466 248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,
453 107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102, 467 15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,
454 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84, 468 224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,
455 193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,36,8,252,242, 469 244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,
456 15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,243,248,7, 470 248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,
457 221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253,221,217,252, 471 248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,
458 233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15, 472 132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,
459 93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,68, 473 15,133,244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,72,137,214,
460 36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195, 474 83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,
461 248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222, 475 4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,
462 201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244, 476 4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,
463 107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248, 477 252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,
464 1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217, 478 244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,
465 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15, 479 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,
466 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 480 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,
467 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 481 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,
468 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 482 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,
469 244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15, 483 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,
470 162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,4,239, 484 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,
471 15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194, 485 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,
472 131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233, 486 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,
473 221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248, 487 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,
474 255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15, 488 131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,
475 182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198, 489 198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,
476 4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255, 490 46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,198,4,57,68,202,4,
477 252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244, 491 255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,
478 248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,70, 492 244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,
479 252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,180,253, 493 180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
480 134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131, 494 255,36,252,235,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,
481 244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244, 495 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,
482 2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255, 496 237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,
483 49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,198, 497 232,131,198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,
484 4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,4, 498 135,244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,
485 129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,4, 499 193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,
486 202,255,221,4,202,221,4,199,255,72,252,247,208,131,198,4,57,68,202,4,255, 500 194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,
487 139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244, 501 1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
488 247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180, 502 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194,
489 253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 503 4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,
490 36,252,235,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182, 504 137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,
491 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237,129, 505 192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,
492 124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131, 506 252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,
493 198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,135,244, 507 239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,
494 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252, 508 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
495 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239, 509 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
496 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242, 510 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,
497 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,182, 511 221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,
498 232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194,4,239,15, 512 255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,
499 133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 513 194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,
500 234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, 514 4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,
501 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242, 515 4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,
502 15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,
503 135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,
504 220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,
505 4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,
506 4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,
507 4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,
508 221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,
509 255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,
510 199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,
511 252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,
512 15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252, 516 15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,
513 242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252, 517 242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,
514 242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252, 518 242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,
@@ -667,22 +671,26 @@ static const unsigned char build_actionlist[13802] = {
667 12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41, 671 12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,
668 137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252, 672 137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,
669 137,65,252,248,255,139,139,233,139,4,193,72,139,128,233,139,108,36,96,137, 673 137,65,252,248,255,139,139,233,139,4,193,72,139,128,233,139,108,36,96,137,
670 147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204, 674 147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,137,116,36,24,76,
671 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,190,233,139,108, 675 137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,102,15,127,185,
672 36,96,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244, 676 233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,127,145,233,102,
673 249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252, 677 68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,233,102,68,15,127,
674 237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4, 678 177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,134,233,139,6,15,
675 194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,12, 679 182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,190,233,
676 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15, 680 139,108,36,96,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,
677 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56, 681 134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,
678 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133, 682 252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,
679 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232, 683 141,4,194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,
680 16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133, 684 12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,
681 244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,96,141, 685 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,
682 68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,252, 686 56,139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,
683 233,255,72,137,252,250,137,252,233,255,15,135,244,21,199,131,233,237,255, 687 133,244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,
684 252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194, 688 232,16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,
685 252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0 689 15,133,244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,
690 96,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,
691 137,252,233,255,72,137,252,250,137,252,233,255,15,135,244,21,199,131,233,
692 237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,
693 12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
686}; 694};
687 695
688enum { 696enum {
@@ -1357,62 +1365,62 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1357#endif 1365#endif
1358 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top)); 1366 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top));
1359#if LJ_HASJIT 1367#if LJ_HASJIT
1360 dasm_put(Dst, 7282, 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), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, Dt1(->base)); 1368 dasm_put(Dst, 7282, 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), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1361#endif 1369#endif
1362 dasm_put(Dst, 7512); 1370 dasm_put(Dst, 7505);
1363#if LJ_HASJIT 1371#if LJ_HASJIT
1364 dasm_put(Dst, 7515, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1372 dasm_put(Dst, 7508, 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);
1365#endif 1373#endif
1366 dasm_put(Dst, 7567); 1374 dasm_put(Dst, 7656);
1367 if (!sse) { 1375 if (!sse) {
1368 dasm_put(Dst, 7570); 1376 dasm_put(Dst, 7659);
1369 } 1377 }
1370 dasm_put(Dst, 7615, (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)); 1378 dasm_put(Dst, 7704, (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));
1371 if (!sse) { 1379 if (!sse) {
1372 dasm_put(Dst, 7701); 1380 dasm_put(Dst, 7790);
1373 } 1381 }
1374 dasm_put(Dst, 7746, (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)); 1382 dasm_put(Dst, 7835, (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));
1375 if (!sse) { 1383 if (!sse) {
1376 dasm_put(Dst, 7832); 1384 dasm_put(Dst, 7921);
1377 } 1385 }
1378 dasm_put(Dst, 7871, (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)); 1386 dasm_put(Dst, 7960, (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));
1379 if (sse) { 1387 if (sse) {
1380 dasm_put(Dst, 7960, (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)); 1388 dasm_put(Dst, 8049, (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));
1381 } else { 1389 } else {
1382 dasm_put(Dst, 8074); 1390 dasm_put(Dst, 8163);
1383 } 1391 }
1384 dasm_put(Dst, 8121); 1392 dasm_put(Dst, 8210);
1385 if (!sse) { 1393 if (!sse) {
1386 } else { 1394 } else {
1387 dasm_put(Dst, 8195); 1395 dasm_put(Dst, 8284);
1388 } 1396 }
1389 dasm_put(Dst, 8198); 1397 dasm_put(Dst, 8287);
1390 dasm_put(Dst, 8283, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1398 dasm_put(Dst, 8372, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1391 dasm_put(Dst, 8384, (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)); 1399 dasm_put(Dst, 8473, (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));
1392 dasm_put(Dst, 8552); 1400 dasm_put(Dst, 8641);
1393 if (sse) { 1401 if (sse) {
1394 dasm_put(Dst, 8593); 1402 dasm_put(Dst, 8682);
1395 dasm_put(Dst, 8663); 1403 dasm_put(Dst, 8752);
1396 dasm_put(Dst, 8736); 1404 dasm_put(Dst, 8825);
1397 } else { 1405 } else {
1398 dasm_put(Dst, 8786); 1406 dasm_put(Dst, 8875);
1399 dasm_put(Dst, 8878); 1407 dasm_put(Dst, 8967);
1400 } 1408 }
1401 dasm_put(Dst, 8924); 1409 dasm_put(Dst, 9013);
1402 if (sse) { 1410 if (sse) {
1403 dasm_put(Dst, 8930, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1411 dasm_put(Dst, 9019, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1404 dasm_put(Dst, 9019, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1412 dasm_put(Dst, 9108, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1405 } else { 1413 } else {
1406 dasm_put(Dst, 9143); 1414 dasm_put(Dst, 9232);
1407 dasm_put(Dst, 9226); 1415 dasm_put(Dst, 9315);
1408 if (cmov) { 1416 if (cmov) {
1409 dasm_put(Dst, 9281); 1417 dasm_put(Dst, 9370);
1410 } else { 1418 } else {
1411 dasm_put(Dst, 9300); 1419 dasm_put(Dst, 9389);
1412 } 1420 }
1413 dasm_put(Dst, 9139); 1421 dasm_put(Dst, 9228);
1414 } 1422 }
1415 dasm_put(Dst, 9341); 1423 dasm_put(Dst, 9430);
1416} 1424}
1417 1425
1418/* Generate the code for a single instruction. */ 1426/* Generate the code for a single instruction. */
@@ -1428,600 +1436,600 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1428 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1436 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1429 1437
1430 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1438 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1431 dasm_put(Dst, 9367, LJ_TISNUM, LJ_TISNUM); 1439 dasm_put(Dst, 9456, LJ_TISNUM, LJ_TISNUM);
1432 if (sse) { 1440 if (sse) {
1433 dasm_put(Dst, 9388); 1441 dasm_put(Dst, 9477);
1434 } else { 1442 } else {
1435 dasm_put(Dst, 9403); 1443 dasm_put(Dst, 9492);
1436 if (cmov) { 1444 if (cmov) {
1437 dasm_put(Dst, 9413); 1445 dasm_put(Dst, 9502);
1438 } else { 1446 } else {
1439 dasm_put(Dst, 9419); 1447 dasm_put(Dst, 9508);
1440 } 1448 }
1441 } 1449 }
1442 switch (op) { 1450 switch (op) {
1443 case BC_ISLT: 1451 case BC_ISLT:
1444 dasm_put(Dst, 9426); 1452 dasm_put(Dst, 9515);
1445 break; 1453 break;
1446 case BC_ISGE: 1454 case BC_ISGE:
1447 dasm_put(Dst, 9221); 1455 dasm_put(Dst, 9310);
1448 break; 1456 break;
1449 case BC_ISLE: 1457 case BC_ISLE:
1450 dasm_put(Dst, 5900); 1458 dasm_put(Dst, 5900);
1451 break; 1459 break;
1452 case BC_ISGT: 1460 case BC_ISGT:
1453 dasm_put(Dst, 9431); 1461 dasm_put(Dst, 9520);
1454 break; 1462 break;
1455 default: break; /* Shut up GCC. */ 1463 default: break; /* Shut up GCC. */
1456 } 1464 }
1457 dasm_put(Dst, 9436, -BCBIAS_J*4); 1465 dasm_put(Dst, 9525, -BCBIAS_J*4);
1458 break; 1466 break;
1459 1467
1460 case BC_ISEQV: case BC_ISNEV: 1468 case BC_ISEQV: case BC_ISNEV:
1461 vk = op == BC_ISEQV; 1469 vk = op == BC_ISEQV;
1462 dasm_put(Dst, 9470, LJ_TISNUM, LJ_TISNUM); 1470 dasm_put(Dst, 9559, LJ_TISNUM, LJ_TISNUM);
1463 if (sse) { 1471 if (sse) {
1464 dasm_put(Dst, 9496); 1472 dasm_put(Dst, 9585);
1465 } else { 1473 } else {
1466 dasm_put(Dst, 9508); 1474 dasm_put(Dst, 9597);
1467 if (cmov) { 1475 if (cmov) {
1468 dasm_put(Dst, 9413); 1476 dasm_put(Dst, 9502);
1469 } else { 1477 } else {
1470 dasm_put(Dst, 9419); 1478 dasm_put(Dst, 9508);
1471 } 1479 }
1472 } 1480 }
1473 iseqne_fp: 1481 iseqne_fp:
1474 if (vk) { 1482 if (vk) {
1475 dasm_put(Dst, 9515); 1483 dasm_put(Dst, 9604);
1476 } else { 1484 } else {
1477 dasm_put(Dst, 9524); 1485 dasm_put(Dst, 9613);
1478 } 1486 }
1479 iseqne_end: 1487 iseqne_end:
1480 if (vk) { 1488 if (vk) {
1481 dasm_put(Dst, 9533, -BCBIAS_J*4); 1489 dasm_put(Dst, 9622, -BCBIAS_J*4);
1482 } else { 1490 } else {
1483 dasm_put(Dst, 9548, -BCBIAS_J*4); 1491 dasm_put(Dst, 9637, -BCBIAS_J*4);
1484 } 1492 }
1485 dasm_put(Dst, 9450); 1493 dasm_put(Dst, 9539);
1486 if (op == BC_ISEQV || op == BC_ISNEV) { 1494 if (op == BC_ISEQV || op == BC_ISNEV) {
1487 dasm_put(Dst, 9563, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1495 dasm_put(Dst, 9652, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1488 if (vk) { 1496 if (vk) {
1489 dasm_put(Dst, 9621); 1497 dasm_put(Dst, 9710);
1490 } else { 1498 } else {
1491 dasm_put(Dst, 9625); 1499 dasm_put(Dst, 9714);
1492 } 1500 }
1493 dasm_put(Dst, 9631); 1501 dasm_put(Dst, 9720);
1494 } 1502 }
1495 break; 1503 break;
1496 case BC_ISEQS: case BC_ISNES: 1504 case BC_ISEQS: case BC_ISNES:
1497 vk = op == BC_ISEQS; 1505 vk = op == BC_ISEQS;
1498 dasm_put(Dst, 9636, LJ_TSTR); 1506 dasm_put(Dst, 9725, LJ_TSTR);
1499 iseqne_test: 1507 iseqne_test:
1500 if (vk) { 1508 if (vk) {
1501 dasm_put(Dst, 9519); 1509 dasm_put(Dst, 9608);
1502 } else { 1510 } else {
1503 dasm_put(Dst, 2802); 1511 dasm_put(Dst, 2802);
1504 } 1512 }
1505 goto iseqne_end; 1513 goto iseqne_end;
1506 case BC_ISEQN: case BC_ISNEN: 1514 case BC_ISEQN: case BC_ISNEN:
1507 vk = op == BC_ISEQN; 1515 vk = op == BC_ISEQN;
1508 dasm_put(Dst, 9660, LJ_TISNUM); 1516 dasm_put(Dst, 9749, LJ_TISNUM);
1509 if (sse) { 1517 if (sse) {
1510 dasm_put(Dst, 9674); 1518 dasm_put(Dst, 9763);
1511 } else { 1519 } else {
1512 dasm_put(Dst, 9686); 1520 dasm_put(Dst, 9775);
1513 if (cmov) { 1521 if (cmov) {
1514 dasm_put(Dst, 9413); 1522 dasm_put(Dst, 9502);
1515 } else { 1523 } else {
1516 dasm_put(Dst, 9419); 1524 dasm_put(Dst, 9508);
1517 } 1525 }
1518 } 1526 }
1519 goto iseqne_fp; 1527 goto iseqne_fp;
1520 case BC_ISEQP: case BC_ISNEP: 1528 case BC_ISEQP: case BC_ISNEP:
1521 vk = op == BC_ISEQP; 1529 vk = op == BC_ISEQP;
1522 dasm_put(Dst, 9693); 1530 dasm_put(Dst, 9782);
1523 goto iseqne_test; 1531 goto iseqne_test;
1524 1532
1525 /* -- Unary test and copy ops ------------------------------------------- */ 1533 /* -- Unary test and copy ops ------------------------------------------- */
1526 1534
1527 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1535 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1528 dasm_put(Dst, 9705, LJ_TISTRUECOND); 1536 dasm_put(Dst, 9794, LJ_TISTRUECOND);
1529 if (op == BC_IST || op == BC_ISTC) { 1537 if (op == BC_IST || op == BC_ISTC) {
1530 dasm_put(Dst, 9717); 1538 dasm_put(Dst, 9806);
1531 } else { 1539 } else {
1532 dasm_put(Dst, 9722); 1540 dasm_put(Dst, 9811);
1533 } 1541 }
1534 if (op == BC_ISTC || op == BC_ISFC) { 1542 if (op == BC_ISTC || op == BC_ISFC) {
1535 dasm_put(Dst, 9727); 1543 dasm_put(Dst, 9816);
1536 } 1544 }
1537 dasm_put(Dst, 9738, -BCBIAS_J*4); 1545 dasm_put(Dst, 9827, -BCBIAS_J*4);
1538 break; 1546 break;
1539 1547
1540 /* -- Unary ops --------------------------------------------------------- */ 1548 /* -- Unary ops --------------------------------------------------------- */
1541 1549
1542 case BC_MOV: 1550 case BC_MOV:
1543 dasm_put(Dst, 9770); 1551 dasm_put(Dst, 9859);
1544 break; 1552 break;
1545 case BC_NOT: 1553 case BC_NOT:
1546 dasm_put(Dst, 9804, LJ_TISTRUECOND, LJ_TTRUE); 1554 dasm_put(Dst, 9893, LJ_TISTRUECOND, LJ_TTRUE);
1547 break; 1555 break;
1548 case BC_UNM: 1556 case BC_UNM:
1549 dasm_put(Dst, 9840, LJ_TISNUM); 1557 dasm_put(Dst, 9929, LJ_TISNUM);
1550 if (sse) { 1558 if (sse) {
1551 dasm_put(Dst, 9851, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1559 dasm_put(Dst, 9940, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1552 } else { 1560 } else {
1553 dasm_put(Dst, 9876); 1561 dasm_put(Dst, 9965);
1554 } 1562 }
1555 dasm_put(Dst, 9450); 1563 dasm_put(Dst, 9539);
1556 break; 1564 break;
1557 case BC_LEN: 1565 case BC_LEN:
1558 dasm_put(Dst, 9885, LJ_TSTR); 1566 dasm_put(Dst, 9974, LJ_TSTR);
1559 if (sse) { 1567 if (sse) {
1560 dasm_put(Dst, 9899, Dt5(->len)); 1568 dasm_put(Dst, 9988, Dt5(->len));
1561 } else { 1569 } else {
1562 dasm_put(Dst, 9917, Dt5(->len)); 1570 dasm_put(Dst, 10006, Dt5(->len));
1563 } 1571 }
1564 dasm_put(Dst, 9926, LJ_TTAB); 1572 dasm_put(Dst, 10015, LJ_TTAB);
1565 if (sse) { 1573 if (sse) {
1566 dasm_put(Dst, 9967); 1574 dasm_put(Dst, 10056);
1567 } else { 1575 } else {
1568 } 1576 }
1569 dasm_put(Dst, 9976); 1577 dasm_put(Dst, 10065);
1570 break; 1578 break;
1571 1579
1572 /* -- Binary ops -------------------------------------------------------- */ 1580 /* -- Binary ops -------------------------------------------------------- */
1573 1581
1574 1582
1575 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1583 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1576 dasm_put(Dst, 9986); 1584 dasm_put(Dst, 10075);
1577 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1585 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1578 switch (vk) { 1586 switch (vk) {
1579 case 0: 1587 case 0:
1580 dasm_put(Dst, 9994, LJ_TISNUM); 1588 dasm_put(Dst, 10083, LJ_TISNUM);
1581 if (sse) { 1589 if (sse) {
1582 dasm_put(Dst, 10006); 1590 dasm_put(Dst, 10095);
1583 } else { 1591 } else {
1584 dasm_put(Dst, 10020); 1592 dasm_put(Dst, 10109);
1585 } 1593 }
1586 break; 1594 break;
1587 case 1: 1595 case 1:
1588 dasm_put(Dst, 10028, LJ_TISNUM); 1596 dasm_put(Dst, 10117, LJ_TISNUM);
1589 if (sse) { 1597 if (sse) {
1590 dasm_put(Dst, 10040); 1598 dasm_put(Dst, 10129);
1591 } else { 1599 } else {
1592 dasm_put(Dst, 10054); 1600 dasm_put(Dst, 10143);
1593 } 1601 }
1594 break; 1602 break;
1595 default: 1603 default:
1596 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1604 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1597 if (sse) { 1605 if (sse) {
1598 dasm_put(Dst, 10084); 1606 dasm_put(Dst, 10173);
1599 } else { 1607 } else {
1600 dasm_put(Dst, 10098); 1608 dasm_put(Dst, 10187);
1601 } 1609 }
1602 break; 1610 break;
1603 } 1611 }
1604 if (sse) { 1612 if (sse) {
1605 dasm_put(Dst, 9869); 1613 dasm_put(Dst, 9958);
1606 } else { 1614 } else {
1607 dasm_put(Dst, 9881); 1615 dasm_put(Dst, 9970);
1608 } 1616 }
1609 dasm_put(Dst, 9450); 1617 dasm_put(Dst, 9539);
1610 break; 1618 break;
1611 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1619 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1612 dasm_put(Dst, 9986); 1620 dasm_put(Dst, 10075);
1613 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1621 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1614 switch (vk) { 1622 switch (vk) {
1615 case 0: 1623 case 0:
1616 dasm_put(Dst, 9994, LJ_TISNUM); 1624 dasm_put(Dst, 10083, LJ_TISNUM);
1617 if (sse) { 1625 if (sse) {
1618 dasm_put(Dst, 10106); 1626 dasm_put(Dst, 10195);
1619 } else { 1627 } else {
1620 dasm_put(Dst, 10120); 1628 dasm_put(Dst, 10209);
1621 } 1629 }
1622 break; 1630 break;
1623 case 1: 1631 case 1:
1624 dasm_put(Dst, 10028, LJ_TISNUM); 1632 dasm_put(Dst, 10117, LJ_TISNUM);
1625 if (sse) { 1633 if (sse) {
1626 dasm_put(Dst, 10128); 1634 dasm_put(Dst, 10217);
1627 } else { 1635 } else {
1628 dasm_put(Dst, 10142); 1636 dasm_put(Dst, 10231);
1629 } 1637 }
1630 break; 1638 break;
1631 default: 1639 default:
1632 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1640 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1633 if (sse) { 1641 if (sse) {
1634 dasm_put(Dst, 10150); 1642 dasm_put(Dst, 10239);
1635 } else { 1643 } else {
1636 dasm_put(Dst, 10164); 1644 dasm_put(Dst, 10253);
1637 } 1645 }
1638 break; 1646 break;
1639 } 1647 }
1640 if (sse) { 1648 if (sse) {
1641 dasm_put(Dst, 9869); 1649 dasm_put(Dst, 9958);
1642 } else { 1650 } else {
1643 dasm_put(Dst, 9881); 1651 dasm_put(Dst, 9970);
1644 } 1652 }
1645 dasm_put(Dst, 9450); 1653 dasm_put(Dst, 9539);
1646 break; 1654 break;
1647 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1655 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1648 dasm_put(Dst, 9986); 1656 dasm_put(Dst, 10075);
1649 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1657 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1650 switch (vk) { 1658 switch (vk) {
1651 case 0: 1659 case 0:
1652 dasm_put(Dst, 9994, LJ_TISNUM); 1660 dasm_put(Dst, 10083, LJ_TISNUM);
1653 if (sse) { 1661 if (sse) {
1654 dasm_put(Dst, 10172); 1662 dasm_put(Dst, 10261);
1655 } else { 1663 } else {
1656 dasm_put(Dst, 10186); 1664 dasm_put(Dst, 10275);
1657 } 1665 }
1658 break; 1666 break;
1659 case 1: 1667 case 1:
1660 dasm_put(Dst, 10028, LJ_TISNUM); 1668 dasm_put(Dst, 10117, LJ_TISNUM);
1661 if (sse) { 1669 if (sse) {
1662 dasm_put(Dst, 10194); 1670 dasm_put(Dst, 10283);
1663 } else { 1671 } else {
1664 dasm_put(Dst, 10208); 1672 dasm_put(Dst, 10297);
1665 } 1673 }
1666 break; 1674 break;
1667 default: 1675 default:
1668 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1676 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1669 if (sse) { 1677 if (sse) {
1670 dasm_put(Dst, 10216); 1678 dasm_put(Dst, 10305);
1671 } else { 1679 } else {
1672 dasm_put(Dst, 10230); 1680 dasm_put(Dst, 10319);
1673 } 1681 }
1674 break; 1682 break;
1675 } 1683 }
1676 if (sse) { 1684 if (sse) {
1677 dasm_put(Dst, 9869); 1685 dasm_put(Dst, 9958);
1678 } else { 1686 } else {
1679 dasm_put(Dst, 9881); 1687 dasm_put(Dst, 9970);
1680 } 1688 }
1681 dasm_put(Dst, 9450); 1689 dasm_put(Dst, 9539);
1682 break; 1690 break;
1683 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1691 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1684 dasm_put(Dst, 9986); 1692 dasm_put(Dst, 10075);
1685 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1693 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1686 switch (vk) { 1694 switch (vk) {
1687 case 0: 1695 case 0:
1688 dasm_put(Dst, 9994, LJ_TISNUM); 1696 dasm_put(Dst, 10083, LJ_TISNUM);
1689 if (sse) { 1697 if (sse) {
1690 dasm_put(Dst, 10238); 1698 dasm_put(Dst, 10327);
1691 } else { 1699 } else {
1692 dasm_put(Dst, 10252); 1700 dasm_put(Dst, 10341);
1693 } 1701 }
1694 break; 1702 break;
1695 case 1: 1703 case 1:
1696 dasm_put(Dst, 10028, LJ_TISNUM); 1704 dasm_put(Dst, 10117, LJ_TISNUM);
1697 if (sse) { 1705 if (sse) {
1698 dasm_put(Dst, 10260); 1706 dasm_put(Dst, 10349);
1699 } else { 1707 } else {
1700 dasm_put(Dst, 10274); 1708 dasm_put(Dst, 10363);
1701 } 1709 }
1702 break; 1710 break;
1703 default: 1711 default:
1704 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1712 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1705 if (sse) { 1713 if (sse) {
1706 dasm_put(Dst, 10282); 1714 dasm_put(Dst, 10371);
1707 } else { 1715 } else {
1708 dasm_put(Dst, 10296); 1716 dasm_put(Dst, 10385);
1709 } 1717 }
1710 break; 1718 break;
1711 } 1719 }
1712 if (sse) { 1720 if (sse) {
1713 dasm_put(Dst, 9869); 1721 dasm_put(Dst, 9958);
1714 } else { 1722 } else {
1715 dasm_put(Dst, 9881); 1723 dasm_put(Dst, 9970);
1716 } 1724 }
1717 dasm_put(Dst, 9450); 1725 dasm_put(Dst, 9539);
1718 break; 1726 break;
1719 case BC_MODVN: 1727 case BC_MODVN:
1720 dasm_put(Dst, 9986); 1728 dasm_put(Dst, 10075);
1721 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1729 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1722 switch (vk) { 1730 switch (vk) {
1723 case 0: 1731 case 0:
1724 dasm_put(Dst, 9994, LJ_TISNUM); 1732 dasm_put(Dst, 10083, LJ_TISNUM);
1725 if (sse) { 1733 if (sse) {
1726 dasm_put(Dst, 10304); 1734 dasm_put(Dst, 10393);
1727 } else { 1735 } else {
1728 dasm_put(Dst, 10318); 1736 dasm_put(Dst, 10407);
1729 } 1737 }
1730 break; 1738 break;
1731 case 1: 1739 case 1:
1732 dasm_put(Dst, 10028, LJ_TISNUM); 1740 dasm_put(Dst, 10117, LJ_TISNUM);
1733 if (sse) { 1741 if (sse) {
1734 dasm_put(Dst, 10326); 1742 dasm_put(Dst, 10415);
1735 } else { 1743 } else {
1736 dasm_put(Dst, 10340); 1744 dasm_put(Dst, 10429);
1737 } 1745 }
1738 break; 1746 break;
1739 default: 1747 default:
1740 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1748 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1741 if (sse) { 1749 if (sse) {
1742 dasm_put(Dst, 10348); 1750 dasm_put(Dst, 10437);
1743 } else { 1751 } else {
1744 dasm_put(Dst, 10362); 1752 dasm_put(Dst, 10451);
1745 } 1753 }
1746 break; 1754 break;
1747 } 1755 }
1748 dasm_put(Dst, 10370); 1756 dasm_put(Dst, 10459);
1749 if (sse) { 1757 if (sse) {
1750 dasm_put(Dst, 9869); 1758 dasm_put(Dst, 9958);
1751 } else { 1759 } else {
1752 dasm_put(Dst, 9881); 1760 dasm_put(Dst, 9970);
1753 } 1761 }
1754 dasm_put(Dst, 9450); 1762 dasm_put(Dst, 9539);
1755 break; 1763 break;
1756 case BC_MODNV: case BC_MODVV: 1764 case BC_MODNV: case BC_MODVV:
1757 dasm_put(Dst, 9986); 1765 dasm_put(Dst, 10075);
1758 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1766 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1759 switch (vk) { 1767 switch (vk) {
1760 case 0: 1768 case 0:
1761 dasm_put(Dst, 9994, LJ_TISNUM); 1769 dasm_put(Dst, 10083, LJ_TISNUM);
1762 if (sse) { 1770 if (sse) {
1763 dasm_put(Dst, 10304); 1771 dasm_put(Dst, 10393);
1764 } else { 1772 } else {
1765 dasm_put(Dst, 10318); 1773 dasm_put(Dst, 10407);
1766 } 1774 }
1767 break; 1775 break;
1768 case 1: 1776 case 1:
1769 dasm_put(Dst, 10028, LJ_TISNUM); 1777 dasm_put(Dst, 10117, LJ_TISNUM);
1770 if (sse) { 1778 if (sse) {
1771 dasm_put(Dst, 10326); 1779 dasm_put(Dst, 10415);
1772 } else { 1780 } else {
1773 dasm_put(Dst, 10340); 1781 dasm_put(Dst, 10429);
1774 } 1782 }
1775 break; 1783 break;
1776 default: 1784 default:
1777 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1785 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1778 if (sse) { 1786 if (sse) {
1779 dasm_put(Dst, 10348); 1787 dasm_put(Dst, 10437);
1780 } else { 1788 } else {
1781 dasm_put(Dst, 10362); 1789 dasm_put(Dst, 10451);
1782 } 1790 }
1783 break; 1791 break;
1784 } 1792 }
1785 dasm_put(Dst, 10376); 1793 dasm_put(Dst, 10465);
1786 break; 1794 break;
1787 case BC_POW: 1795 case BC_POW:
1788 dasm_put(Dst, 9986); 1796 dasm_put(Dst, 10075);
1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1797 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1790 switch (vk) { 1798 switch (vk) {
1791 case 0: 1799 case 0:
1792 dasm_put(Dst, 9994, LJ_TISNUM); 1800 dasm_put(Dst, 10083, LJ_TISNUM);
1793 if (sse) { 1801 if (sse) {
1794 dasm_put(Dst, 10304); 1802 dasm_put(Dst, 10393);
1795 } else { 1803 } else {
1796 dasm_put(Dst, 10318); 1804 dasm_put(Dst, 10407);
1797 } 1805 }
1798 break; 1806 break;
1799 case 1: 1807 case 1:
1800 dasm_put(Dst, 10028, LJ_TISNUM); 1808 dasm_put(Dst, 10117, LJ_TISNUM);
1801 if (sse) { 1809 if (sse) {
1802 dasm_put(Dst, 10326); 1810 dasm_put(Dst, 10415);
1803 } else { 1811 } else {
1804 dasm_put(Dst, 10340); 1812 dasm_put(Dst, 10429);
1805 } 1813 }
1806 break; 1814 break;
1807 default: 1815 default:
1808 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM); 1816 dasm_put(Dst, 10151, LJ_TISNUM, LJ_TISNUM);
1809 if (sse) { 1817 if (sse) {
1810 dasm_put(Dst, 10348); 1818 dasm_put(Dst, 10437);
1811 } else { 1819 } else {
1812 dasm_put(Dst, 10362); 1820 dasm_put(Dst, 10451);
1813 } 1821 }
1814 break; 1822 break;
1815 } 1823 }
1816 dasm_put(Dst, 10381); 1824 dasm_put(Dst, 10470);
1817 if (sse) { 1825 if (sse) {
1818 dasm_put(Dst, 9869); 1826 dasm_put(Dst, 9958);
1819 } else { 1827 } else {
1820 dasm_put(Dst, 9881); 1828 dasm_put(Dst, 9970);
1821 } 1829 }
1822 dasm_put(Dst, 9450); 1830 dasm_put(Dst, 9539);
1823 break; 1831 break;
1824 1832
1825 case BC_CAT: 1833 case BC_CAT:
1826 dasm_put(Dst, 10385, Dt1(->base), Dt1(->base)); 1834 dasm_put(Dst, 10474, Dt1(->base), Dt1(->base));
1827 break; 1835 break;
1828 1836
1829 /* -- Constant ops ------------------------------------------------------ */ 1837 /* -- Constant ops ------------------------------------------------------ */
1830 1838
1831 case BC_KSTR: 1839 case BC_KSTR:
1832 dasm_put(Dst, 10475, LJ_TSTR); 1840 dasm_put(Dst, 10564, LJ_TSTR);
1833 break; 1841 break;
1834 case BC_KSHORT: 1842 case BC_KSHORT:
1835 if (sse) { 1843 if (sse) {
1836 dasm_put(Dst, 10510); 1844 dasm_put(Dst, 10599);
1837 } else { 1845 } else {
1838 dasm_put(Dst, 10525); 1846 dasm_put(Dst, 10614);
1839 } 1847 }
1840 dasm_put(Dst, 9450); 1848 dasm_put(Dst, 9539);
1841 break; 1849 break;
1842 case BC_KNUM: 1850 case BC_KNUM:
1843 if (sse) { 1851 if (sse) {
1844 dasm_put(Dst, 10533); 1852 dasm_put(Dst, 10622);
1845 } else { 1853 } else {
1846 dasm_put(Dst, 10546); 1854 dasm_put(Dst, 10635);
1847 } 1855 }
1848 dasm_put(Dst, 9450); 1856 dasm_put(Dst, 9539);
1849 break; 1857 break;
1850 case BC_KPRI: 1858 case BC_KPRI:
1851 dasm_put(Dst, 10553); 1859 dasm_put(Dst, 10642);
1852 break; 1860 break;
1853 case BC_KNIL: 1861 case BC_KNIL:
1854 dasm_put(Dst, 10581, LJ_TNIL); 1862 dasm_put(Dst, 10670, LJ_TNIL);
1855 break; 1863 break;
1856 1864
1857 /* -- Upvalue and function ops ------------------------------------------ */ 1865 /* -- Upvalue and function ops ------------------------------------------ */
1858 1866
1859 case BC_UGET: 1867 case BC_UGET:
1860 dasm_put(Dst, 10628, offsetof(GCfuncL, uvptr), DtA(->v)); 1868 dasm_put(Dst, 10717, offsetof(GCfuncL, uvptr), DtA(->v));
1861 break; 1869 break;
1862 case BC_USETV: 1870 case BC_USETV:
1863#define TV2MARKOFS \ 1871#define TV2MARKOFS \
1864 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1872 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1865 dasm_put(Dst, 10673, 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); 1873 dasm_put(Dst, 10762, 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);
1866 dasm_put(Dst, 10764); 1874 dasm_put(Dst, 10853);
1867 break; 1875 break;
1868#undef TV2MARKOFS 1876#undef TV2MARKOFS
1869 case BC_USETS: 1877 case BC_USETS:
1870 dasm_put(Dst, 10776, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1878 dasm_put(Dst, 10865, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1871 break; 1879 break;
1872 case BC_USETN: 1880 case BC_USETN:
1873 dasm_put(Dst, 10869); 1881 dasm_put(Dst, 10958);
1874 if (sse) { 1882 if (sse) {
1875 dasm_put(Dst, 10874); 1883 dasm_put(Dst, 10963);
1876 } else { 1884 } else {
1877 dasm_put(Dst, 9689); 1885 dasm_put(Dst, 9778);
1878 } 1886 }
1879 dasm_put(Dst, 10881, offsetof(GCfuncL, uvptr), DtA(->v)); 1887 dasm_put(Dst, 10970, offsetof(GCfuncL, uvptr), DtA(->v));
1880 if (sse) { 1888 if (sse) {
1881 dasm_put(Dst, 10890); 1889 dasm_put(Dst, 10979);
1882 } else { 1890 } else {
1883 dasm_put(Dst, 10896); 1891 dasm_put(Dst, 10985);
1884 } 1892 }
1885 dasm_put(Dst, 9450); 1893 dasm_put(Dst, 9539);
1886 break; 1894 break;
1887 case BC_USETP: 1895 case BC_USETP:
1888 dasm_put(Dst, 10899, offsetof(GCfuncL, uvptr), DtA(->v)); 1896 dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v));
1889 break; 1897 break;
1890 case BC_UCLO: 1898 case BC_UCLO:
1891 dasm_put(Dst, 10938, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1899 dasm_put(Dst, 11027, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1892 break; 1900 break;
1893 1901
1894 case BC_FNEW: 1902 case BC_FNEW:
1895 dasm_put(Dst, 10993, Dt1(->base), Dt1(->base), LJ_TFUNC); 1903 dasm_put(Dst, 11082, Dt1(->base), Dt1(->base), LJ_TFUNC);
1896 break; 1904 break;
1897 1905
1898 /* -- Table ops --------------------------------------------------------- */ 1906 /* -- Table ops --------------------------------------------------------- */
1899 1907
1900 case BC_TNEW: 1908 case BC_TNEW:
1901 dasm_put(Dst, 11059, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1909 dasm_put(Dst, 11148, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1902 break; 1910 break;
1903 case BC_TDUP: 1911 case BC_TDUP:
1904 dasm_put(Dst, 11180, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1912 dasm_put(Dst, 11269, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1905 break; 1913 break;
1906 1914
1907 case BC_GGET: 1915 case BC_GGET:
1908 dasm_put(Dst, 11275, Dt7(->env)); 1916 dasm_put(Dst, 11364, Dt7(->env));
1909 break; 1917 break;
1910 case BC_GSET: 1918 case BC_GSET:
1911 dasm_put(Dst, 11294, Dt7(->env)); 1919 dasm_put(Dst, 11383, Dt7(->env));
1912 break; 1920 break;
1913 1921
1914 case BC_TGETV: 1922 case BC_TGETV:
1915 dasm_put(Dst, 11313, LJ_TTAB, LJ_TISNUM); 1923 dasm_put(Dst, 11402, LJ_TTAB, LJ_TISNUM);
1916 if (sse) { 1924 if (sse) {
1917 dasm_put(Dst, 11346); 1925 dasm_put(Dst, 11435);
1918 } else { 1926 } else {
1919 } 1927 }
1920 dasm_put(Dst, 11367, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1928 dasm_put(Dst, 11456, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1921 dasm_put(Dst, 11460, LJ_TSTR); 1929 dasm_put(Dst, 11549, LJ_TSTR);
1922 break; 1930 break;
1923 case BC_TGETS: 1931 case BC_TGETS:
1924 dasm_put(Dst, 11478, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1932 dasm_put(Dst, 11567, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1925 dasm_put(Dst, 11563, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1933 dasm_put(Dst, 11652, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1926 break; 1934 break;
1927 case BC_TGETB: 1935 case BC_TGETB:
1928 dasm_put(Dst, 11635, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1936 dasm_put(Dst, 11724, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1929 dasm_put(Dst, 9976); 1937 dasm_put(Dst, 10065);
1930 break; 1938 break;
1931 1939
1932 case BC_TSETV: 1940 case BC_TSETV:
1933 dasm_put(Dst, 11735, LJ_TTAB, LJ_TISNUM); 1941 dasm_put(Dst, 11824, LJ_TTAB, LJ_TISNUM);
1934 if (sse) { 1942 if (sse) {
1935 dasm_put(Dst, 11346); 1943 dasm_put(Dst, 11435);
1936 } else { 1944 } else {
1937 } 1945 }
1938 dasm_put(Dst, 11768, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1946 dasm_put(Dst, 11857, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1939 dasm_put(Dst, 11852, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1947 dasm_put(Dst, 11941, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1940 break; 1948 break;
1941 case BC_TSETS: 1949 case BC_TSETS:
1942 dasm_put(Dst, 11914, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1950 dasm_put(Dst, 12003, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1943 dasm_put(Dst, 11990, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1951 dasm_put(Dst, 12079, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1944 dasm_put(Dst, 12083, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1952 dasm_put(Dst, 12172, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1945 break; 1953 break;
1946 case BC_TSETB: 1954 case BC_TSETB:
1947 dasm_put(Dst, 12174, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1955 dasm_put(Dst, 12263, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1948 dasm_put(Dst, 12273, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1956 dasm_put(Dst, 12362, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1949 break; 1957 break;
1950 1958
1951 case BC_TSETM: 1959 case BC_TSETM:
1952 dasm_put(Dst, 12319); 1960 dasm_put(Dst, 12408);
1953 if (sse) { 1961 if (sse) {
1954 dasm_put(Dst, 10874); 1962 dasm_put(Dst, 10963);
1955 } else { 1963 } else {
1956 } 1964 }
1957 dasm_put(Dst, 12324, Dt6(->marked), LJ_GC_BLACK); 1965 dasm_put(Dst, 12413, Dt6(->marked), LJ_GC_BLACK);
1958 if (sse) { 1966 if (sse) {
1959 dasm_put(Dst, 12349); 1967 dasm_put(Dst, 12438);
1960 } else { 1968 } else {
1961 } 1969 }
1962 dasm_put(Dst, 12356, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1970 dasm_put(Dst, 12445, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
1963 dasm_put(Dst, 12482, Dt6(->gclist)); 1971 dasm_put(Dst, 12571, Dt6(->gclist));
1964 break; 1972 break;
1965 1973
1966 /* -- Calls and vararg handling ----------------------------------------- */ 1974 /* -- Calls and vararg handling ----------------------------------------- */
1967 1975
1968 case BC_CALL: case BC_CALLM: 1976 case BC_CALL: case BC_CALLM:
1969 dasm_put(Dst, 9990); 1977 dasm_put(Dst, 10079);
1970 if (op == BC_CALLM) { 1978 if (op == BC_CALLM) {
1971 dasm_put(Dst, 12490); 1979 dasm_put(Dst, 12579);
1972 } 1980 }
1973 dasm_put(Dst, 12495, LJ_TFUNC, Dt7(->pc)); 1981 dasm_put(Dst, 12584, LJ_TFUNC, Dt7(->pc));
1974 break; 1982 break;
1975 1983
1976 case BC_CALLMT: 1984 case BC_CALLMT:
1977 dasm_put(Dst, 12490); 1985 dasm_put(Dst, 12579);
1978 break; 1986 break;
1979 case BC_CALLT: 1987 case BC_CALLT:
1980 dasm_put(Dst, 12537, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1988 dasm_put(Dst, 12626, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1981 dasm_put(Dst, 12656, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1989 dasm_put(Dst, 12745, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1982 break; 1990 break;
1983 1991
1984 case BC_ITERC: 1992 case BC_ITERC:
1985 dasm_put(Dst, 12714, LJ_TFUNC, 2+1, Dt7(->pc)); 1993 dasm_put(Dst, 12803, LJ_TFUNC, 2+1, Dt7(->pc));
1986 break; 1994 break;
1987 1995
1988 case BC_VARG: 1996 case BC_VARG:
1989 dasm_put(Dst, 12795, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1997 dasm_put(Dst, 12884, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1990 dasm_put(Dst, 12940, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1998 dasm_put(Dst, 13029, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1991 break; 1999 break;
1992 2000
1993 /* -- Returns ----------------------------------------------------------- */ 2001 /* -- Returns ----------------------------------------------------------- */
1994 2002
1995 case BC_RETM: 2003 case BC_RETM:
1996 dasm_put(Dst, 12490); 2004 dasm_put(Dst, 12579);
1997 break; 2005 break;
1998 2006
1999 case BC_RET: case BC_RET0: case BC_RET1: 2007 case BC_RET: case BC_RET0: case BC_RET1:
2000 if (op != BC_RET0) { 2008 if (op != BC_RET0) {
2001 dasm_put(Dst, 13039); 2009 dasm_put(Dst, 13128);
2002 } 2010 }
2003 dasm_put(Dst, 13043, FRAME_TYPE); 2011 dasm_put(Dst, 13132, FRAME_TYPE);
2004 switch (op) { 2012 switch (op) {
2005 case BC_RET: 2013 case BC_RET:
2006 dasm_put(Dst, 13062); 2014 dasm_put(Dst, 13151);
2007 break; 2015 break;
2008 case BC_RET1: 2016 case BC_RET1:
2009 dasm_put(Dst, 13120); 2017 dasm_put(Dst, 13209);
2010 /* fallthrough */ 2018 /* fallthrough */
2011 case BC_RET0: 2019 case BC_RET0:
2012 dasm_put(Dst, 13136); 2020 dasm_put(Dst, 13225);
2013 default: 2021 default:
2014 break; 2022 break;
2015 } 2023 }
2016 dasm_put(Dst, 13147, Dt7(->pc), PC2PROTO(k)); 2024 dasm_put(Dst, 13236, Dt7(->pc), PC2PROTO(k));
2017 if (op == BC_RET) { 2025 if (op == BC_RET) {
2018 dasm_put(Dst, 13191, LJ_TNIL); 2026 dasm_put(Dst, 13280, LJ_TNIL);
2019 } else { 2027 } else {
2020 dasm_put(Dst, 13200, LJ_TNIL); 2028 dasm_put(Dst, 13289, LJ_TNIL);
2021 } 2029 }
2022 dasm_put(Dst, 13207); 2030 dasm_put(Dst, 13296);
2023 if (op != BC_RET0) { 2031 if (op != BC_RET0) {
2024 dasm_put(Dst, 13228); 2032 dasm_put(Dst, 13317);
2025 } 2033 }
2026 dasm_put(Dst, 4570); 2034 dasm_put(Dst, 4570);
2027 break; 2035 break;
@@ -2031,7 +2039,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2031 2039
2032 case BC_FORL: 2040 case BC_FORL:
2033#if LJ_HASJIT 2041#if LJ_HASJIT
2034 dasm_put(Dst, 13232, HOTCOUNT_PCMASK, GG_DISP2HOT); 2042 dasm_put(Dst, 13321, HOTCOUNT_PCMASK, GG_DISP2HOT);
2035#endif 2043#endif
2036 break; 2044 break;
2037 2045
@@ -2043,57 +2051,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2043 case BC_FORI: 2051 case BC_FORI:
2044 case BC_IFORL: 2052 case BC_IFORL:
2045 vk = (op == BC_IFORL || op == BC_JFORL); 2053 vk = (op == BC_IFORL || op == BC_JFORL);
2046 dasm_put(Dst, 13253); 2054 dasm_put(Dst, 13342);
2047 if (!vk) { 2055 if (!vk) {
2048 dasm_put(Dst, 13257, LJ_TISNUM, LJ_TISNUM); 2056 dasm_put(Dst, 13346, LJ_TISNUM, LJ_TISNUM);
2049 } 2057 }
2050 dasm_put(Dst, 13276); 2058 dasm_put(Dst, 13365);
2051 if (!vk) { 2059 if (!vk) {
2052 dasm_put(Dst, 13280, LJ_TISNUM); 2060 dasm_put(Dst, 13369, LJ_TISNUM);
2053 } 2061 }
2054 if (sse) { 2062 if (sse) {
2055 dasm_put(Dst, 13289); 2063 dasm_put(Dst, 13378);
2056 if (vk) { 2064 if (vk) {
2057 dasm_put(Dst, 13301); 2065 dasm_put(Dst, 13390);
2058 } else { 2066 } else {
2059 dasm_put(Dst, 13320); 2067 dasm_put(Dst, 13409);
2060 } 2068 }
2061 dasm_put(Dst, 13325); 2069 dasm_put(Dst, 13414);
2062 } else { 2070 } else {
2063 dasm_put(Dst, 13338); 2071 dasm_put(Dst, 13427);
2064 if (vk) { 2072 if (vk) {
2065 dasm_put(Dst, 13344); 2073 dasm_put(Dst, 13433);
2066 } else { 2074 } else {
2067 dasm_put(Dst, 13360); 2075 dasm_put(Dst, 13449);
2068 } 2076 }
2069 dasm_put(Dst, 13368); 2077 dasm_put(Dst, 13457);
2070 if (cmov) { 2078 if (cmov) {
2071 dasm_put(Dst, 9413); 2079 dasm_put(Dst, 9502);
2072 } else { 2080 } else {
2073 dasm_put(Dst, 9419); 2081 dasm_put(Dst, 9508);
2074 } 2082 }
2075 if (!cmov) { 2083 if (!cmov) {
2076 dasm_put(Dst, 13373); 2084 dasm_put(Dst, 13462);
2077 } 2085 }
2078 } 2086 }
2079 if (op == BC_FORI) { 2087 if (op == BC_FORI) {
2080 dasm_put(Dst, 13379, -BCBIAS_J*4); 2088 dasm_put(Dst, 13468, -BCBIAS_J*4);
2081 } else if (op == BC_JFORI) { 2089 } else if (op == BC_JFORI) {
2082 dasm_put(Dst, 13389, -BCBIAS_J*4, BC_JLOOP); 2090 dasm_put(Dst, 13478, -BCBIAS_J*4, BC_JLOOP);
2083 } else if (op == BC_IFORL) { 2091 } else if (op == BC_IFORL) {
2084 dasm_put(Dst, 13403, -BCBIAS_J*4); 2092 dasm_put(Dst, 13492, -BCBIAS_J*4);
2085 } else { 2093 } else {
2086 dasm_put(Dst, 13399, BC_JLOOP); 2094 dasm_put(Dst, 13488, BC_JLOOP);
2087 } 2095 }
2088 dasm_put(Dst, 9448); 2096 dasm_put(Dst, 9537);
2089 if (sse) { 2097 if (sse) {
2090 dasm_put(Dst, 13413); 2098 dasm_put(Dst, 13502);
2091 } 2099 }
2092 break; 2100 break;
2093 2101
2094 case BC_ITERL: 2102 case BC_ITERL:
2095#if LJ_HASJIT 2103#if LJ_HASJIT
2096 dasm_put(Dst, 13232, HOTCOUNT_PCMASK, GG_DISP2HOT); 2104 dasm_put(Dst, 13321, HOTCOUNT_PCMASK, GG_DISP2HOT);
2097#endif 2105#endif
2098 break; 2106 break;
2099 2107
@@ -2102,33 +2110,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2102 break; 2110 break;
2103#endif 2111#endif
2104 case BC_IITERL: 2112 case BC_IITERL:
2105 dasm_put(Dst, 13424, LJ_TNIL); 2113 dasm_put(Dst, 13513, LJ_TNIL);
2106 if (op == BC_JITERL) { 2114 if (op == BC_JITERL) {
2107 dasm_put(Dst, 13439, BC_JLOOP); 2115 dasm_put(Dst, 13528, BC_JLOOP);
2108 } else { 2116 } else {
2109 dasm_put(Dst, 13453, -BCBIAS_J*4); 2117 dasm_put(Dst, 13542, -BCBIAS_J*4);
2110 } 2118 }
2111 dasm_put(Dst, 9748); 2119 dasm_put(Dst, 9837);
2112 break; 2120 break;
2113 2121
2114 case BC_LOOP: 2122 case BC_LOOP:
2115#if LJ_HASJIT 2123#if LJ_HASJIT
2116 dasm_put(Dst, 13232, HOTCOUNT_PCMASK, GG_DISP2HOT); 2124 dasm_put(Dst, 13321, HOTCOUNT_PCMASK, GG_DISP2HOT);
2117#endif 2125#endif
2118 break; 2126 break;
2119 2127
2120 case BC_ILOOP: 2128 case BC_ILOOP:
2121 dasm_put(Dst, 9450); 2129 dasm_put(Dst, 9539);
2122 break; 2130 break;
2123 2131
2124 case BC_JLOOP: 2132 case BC_JLOOP:
2125#if LJ_HASJIT 2133#if LJ_HASJIT
2126 dasm_put(Dst, 13469, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2134 dasm_put(Dst, 13558, 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);
2127#endif 2135#endif
2128 break; 2136 break;
2129 2137
2130 case BC_JMP: 2138 case BC_JMP:
2131 dasm_put(Dst, 13493, -BCBIAS_J*4); 2139 dasm_put(Dst, 13667, -BCBIAS_J*4);
2132 break; 2140 break;
2133 2141
2134 /* -- Function headers -------------------------------------------------- */ 2142 /* -- Function headers -------------------------------------------------- */
@@ -2151,47 +2159,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2151 break; 2159 break;
2152#endif 2160#endif
2153 case BC_IFUNCF: 2161 case BC_IFUNCF:
2154 dasm_put(Dst, 13518, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2162 dasm_put(Dst, 13692, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2155 if (op == BC_JFUNCF) { 2163 if (op == BC_JFUNCF) {
2156 dasm_put(Dst, 13548, BC_JLOOP); 2164 dasm_put(Dst, 13722, BC_JLOOP);
2157 } else { 2165 } else {
2158 dasm_put(Dst, 9450); 2166 dasm_put(Dst, 9539);
2159 } 2167 }
2160 dasm_put(Dst, 13557, LJ_TNIL); 2168 dasm_put(Dst, 13731, LJ_TNIL);
2161 break; 2169 break;
2162 2170
2163 case BC_JFUNCV: 2171 case BC_JFUNCV:
2164#if !LJ_HASJIT 2172#if !LJ_HASJIT
2165 break; 2173 break;
2166#endif 2174#endif
2167 dasm_put(Dst, 9141); 2175 dasm_put(Dst, 9230);
2168 break; /* NYI: compiled vararg functions. */ 2176 break; /* NYI: compiled vararg functions. */
2169 2177
2170 case BC_IFUNCV: 2178 case BC_IFUNCV:
2171 dasm_put(Dst, 13579, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2179 dasm_put(Dst, 13753, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2172 if (op == BC_JFUNCV) { 2180 if (op == BC_JFUNCV) {
2173 dasm_put(Dst, 13548, BC_JLOOP); 2181 dasm_put(Dst, 13722, BC_JLOOP);
2174 } else { 2182 } else {
2175 dasm_put(Dst, 13670, -4+PC2PROTO(k)); 2183 dasm_put(Dst, 13844, -4+PC2PROTO(k));
2176 } 2184 }
2177 dasm_put(Dst, 13693, LJ_TNIL); 2185 dasm_put(Dst, 13867, LJ_TNIL);
2178 break; 2186 break;
2179 2187
2180 case BC_FUNCC: 2188 case BC_FUNCC:
2181 case BC_FUNCCW: 2189 case BC_FUNCCW:
2182 dasm_put(Dst, 13715, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2190 dasm_put(Dst, 13889, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2183 if (op == BC_FUNCC) { 2191 if (op == BC_FUNCC) {
2184 dasm_put(Dst, 13745); 2192 dasm_put(Dst, 13919);
2185 } else { 2193 } else {
2186 dasm_put(Dst, 13749); 2194 dasm_put(Dst, 13923);
2187 } 2195 }
2188 dasm_put(Dst, 13757, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2196 dasm_put(Dst, 13931, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2189 if (op == BC_FUNCC) { 2197 if (op == BC_FUNCC) {
2190 dasm_put(Dst, 13766); 2198 dasm_put(Dst, 13940);
2191 } else { 2199 } else {
2192 dasm_put(Dst, 13770, DISPATCH_GL(wrapf)); 2200 dasm_put(Dst, 13944, DISPATCH_GL(wrapf));
2193 } 2201 }
2194 dasm_put(Dst, 13775, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2202 dasm_put(Dst, 13949, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2195 break; 2203 break;
2196 2204
2197 /* ---------------------------------------------------------------------- */ 2205 /* ---------------------------------------------------------------------- */
@@ -2219,7 +2227,7 @@ static int build_backend(BuildCtx *ctx)
2219 2227
2220 build_subroutines(ctx, cmov, sse); 2228 build_subroutines(ctx, cmov, sse);
2221 2229
2222 dasm_put(Dst, 13800); 2230 dasm_put(Dst, 13974);
2223 for (op = 0; op < BC__MAX; op++) 2231 for (op = 0; op < BC__MAX; op++)
2224 build_ins(ctx, (BCOp)op, op, cmov, sse); 2232 build_ins(ctx, (BCOp)op, op, cmov, sse);
2225 2233
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index 7758cd15..a3e65174 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -223,19 +223,18 @@
223|.define SAVE_R2, aword [rsp+aword*6] 223|.define SAVE_R2, aword [rsp+aword*6]
224|.define SAVE_R1, aword [rsp+aword*5] //<-- rsp after register saves. 224|.define SAVE_R1, aword [rsp+aword*5] //<-- rsp after register saves.
225|.define SAVE_CFRAME, aword [rsp+aword*4] 225|.define SAVE_CFRAME, aword [rsp+aword*4]
226|.define TMPa, aword [rsp+aword*3] 226|.define SAVE_PC, dword [rsp+dword*7]
227|//----- ^^^ awords above, vvv dwords below 227|.define SAVE_L, dword [rsp+dword*6]
228|.define SAVE_PC, dword [rsp+dword*5] 228|.define SAVE_ERRF, dword [rsp+dword*5]
229|.define SAVE_L, dword [rsp+dword*4] 229|.define SAVE_NRES, dword [rsp+dword*4]
230|.define SAVE_ERRF, dword [rsp+dword*3] 230|.define TMPa, aword [rsp+aword*1]
231|.define SAVE_NRES, dword [rsp+dword*2]
232|.define TMP2, dword [rsp+dword*1] 231|.define TMP2, dword [rsp+dword*1]
233|.define TMP1, dword [rsp] //<-- rsp while in interpreter. 232|.define TMP1, dword [rsp] //<-- rsp while in interpreter.
234|//----- 16 byte aligned 233|//----- 16 byte aligned
235| 234|
236|// TMPQ overlaps TMP1/TMP2. MULTRES overlaps TMP2 (and TMPQ). 235|// TMPQ overlaps TMP1/TMP2. MULTRES overlaps TMP2 (and TMPQ).
237|.define TMPQ, qword [rsp] 236|.define TMPQ, qword [rsp]
238|.define TMP3, dword [rsp+aword*3] 237|.define TMP3, dword [rsp+aword*1]
239|.define MULTRES, TMP2 238|.define MULTRES, TMP2
240| 239|
241|.endif 240|.endif
@@ -2627,18 +2626,51 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
2627 | // Error code returned in eax (RD). 2626 | // Error code returned in eax (RD).
2628 | mov RAa, L:RB->cframe 2627 | mov RAa, L:RB->cframe
2629 | and RAa, CFRAME_RAWMASK 2628 | and RAa, CFRAME_RAWMASK
2630 |.if X64 2629 |.if X64WIN
2630 | // Reposition stack later.
2631 |.elif X64
2631 | mov rsp, RAa // Reposition stack to C frame. 2632 | mov rsp, RAa // Reposition stack to C frame.
2632 |.else 2633 |.else
2633 | mov esp, RAa // Reposition stack to C frame. 2634 | mov esp, RAa // Reposition stack to C frame.
2634 |.endif 2635 |.endif
2635 | mov SAVE_L, L:RB // Needed for on-trace resume/yield. 2636 | mov [RAa+CFRAME_OFS_L], L:RB // Set SAVE_L (on-trace resume/yield).
2636 | test RD, RD; jnz >1 // Check for error from exit.
2637 | mov BASE, L:RB->base 2637 | mov BASE, L:RB->base
2638 | mov PC, SAVE_PC 2638 | mov PC, [RAa+CFRAME_OFS_PC] // Get SAVE_PC.
2639 |.if X64
2640 | jmp >1
2641 |.else
2642 | test RD, RD; jnz >2 // Check for error from exit.
2643 |.endif
2639#endif 2644#endif
2640 |->vm_exit_interp: 2645 |->vm_exit_interp:
2641#if LJ_HASJIT 2646#if LJ_HASJIT
2647 |.if X64
2648 | xor RD, RD
2649 | // Restore additional callee-save registers only used in compiled code.
2650 |.if X64WIN
2651 | lea RAa, [rsp+9*16+4*8]
2652 |1:
2653 | movdqa xmm15, [RAa-9*16]
2654 | movdqa xmm14, [RAa-8*16]
2655 | movdqa xmm13, [RAa-7*16]
2656 | movdqa xmm12, [RAa-6*16]
2657 | movdqa xmm11, [RAa-5*16]
2658 | movdqa xmm10, [RAa-4*16]
2659 | movdqa xmm9, [RAa-3*16]
2660 | movdqa xmm8, [RAa-2*16]
2661 | movdqa xmm7, [RAa-1*16]
2662 | mov rsp, RAa // Reposition stack to C frame.
2663 | movdqa xmm6, [RAa]
2664 | mov r15, CSAVE_3
2665 | mov r14, CSAVE_4
2666 |.else
2667 | add rsp, 16 // Reposition stack to C frame.
2668 |1:
2669 |.endif
2670 | mov r13, TMPa
2671 | mov r12, TMPQ
2672 | test RD, RD; jnz >2 // Check for error from exit.
2673 |.endif
2642 | mov LFUNC:KBASE, [BASE-8] 2674 | mov LFUNC:KBASE, [BASE-8]
2643 | mov KBASE, LFUNC:KBASE->pc 2675 | mov KBASE, LFUNC:KBASE->pc
2644 | mov KBASE, [KBASE+PC2PROTO(k)] 2676 | mov KBASE, [KBASE+PC2PROTO(k)]
@@ -2646,7 +2678,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
2646 | set_vmstate INTERP 2678 | set_vmstate INTERP
2647 | ins_next 2679 | ins_next
2648 | 2680 |
2649 |1: // Rethrow error from the right C frame. 2681 |2: // Rethrow error from the right C frame.
2650 | mov FCARG1, L:RB 2682 | mov FCARG1, L:RB
2651 | mov FCARG2, RD 2683 | mov FCARG2, RD
2652 | call extern lj_err_throw@8 // (lua_State *L, int errcode) 2684 | call extern lj_err_throw@8 // (lua_State *L, int errcode)
@@ -4714,6 +4746,29 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
4714 | mov L:RB, SAVE_L 4746 | mov L:RB, SAVE_L
4715 | mov [DISPATCH+DISPATCH_GL(jit_base)], BASE 4747 | mov [DISPATCH+DISPATCH_GL(jit_base)], BASE
4716 | mov [DISPATCH+DISPATCH_GL(jit_L)], L:RB 4748 | mov [DISPATCH+DISPATCH_GL(jit_L)], L:RB
4749 | // Save additional callee-save registers only used in compiled code.
4750 |.if X64WIN
4751 | mov TMPQ, r12
4752 | mov TMPa, r13
4753 | mov CSAVE_4, r14
4754 | mov CSAVE_3, r15
4755 | mov RAa, rsp
4756 | sub rsp, 9*16+4*8
4757 | movdqa [RAa], xmm6
4758 | movdqa [RAa-1*16], xmm7
4759 | movdqa [RAa-2*16], xmm8
4760 | movdqa [RAa-3*16], xmm9
4761 | movdqa [RAa-4*16], xmm10
4762 | movdqa [RAa-5*16], xmm11
4763 | movdqa [RAa-6*16], xmm12
4764 | movdqa [RAa-7*16], xmm13
4765 | movdqa [RAa-8*16], xmm14
4766 | movdqa [RAa-9*16], xmm15
4767 |.elif X64
4768 | mov TMPQ, r12
4769 | mov TMPa, r13
4770 | sub rsp, 16
4771 |.endif
4717 | jmp RDa 4772 | jmp RDa
4718#endif 4773#endif
4719 break; 4774 break;
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 0cbf9c68..5bf7e60c 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[15179] = { 15static const unsigned char build_actionlist[15177] = {
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,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -417,20 +417,20 @@ static const unsigned char build_actionlist[15179] = {
417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242, 417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242,
418 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147, 418 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,
419 233,137,171,233,137,149,233,141,84,36,16,141,139,233,232,251,1,23,139,141, 419 233,137,171,233,137,149,233,141,84,36,16,141,139,233,232,251,1,23,139,141,
420 233,129,225,239,137,204,137,108,36,48,133,192,15,133,244,247,139,149,233, 420 233,129,225,239,137,204,137,169,233,139,149,233,139,177,233,133,192,15,133,
421 139,116,36,24,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199, 421 244,248,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233,
422 131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193, 422 0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
423 232,16,252,255,36,171,248,1,137,252,233,137,194,232,251,1,24,255,248,82,255, 423 252,255,36,171,248,2,137,252,233,137,194,232,251,1,24,255,248,82,255,217,
424 217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247, 424 124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
425 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 425 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,
426 248,145,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67, 426 145,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
427 102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15, 427 15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,
428 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202, 428 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,
429 184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,193,1, 429 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,193,1,102,
430 102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36, 430 15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,
431 4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68, 431 68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,
432 36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,102, 432 217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,102,15,
433 15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216, 433 252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,
434 102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102, 434 102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
435 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240, 435 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,184,0,0,252,240,
436 191,102,15,110,208,102,15,112,210,81,252,242,15,194,193,6,102,15,84,194,252, 436 191,102,15,110,208,102,15,112,210,81,252,242,15,194,193,6,102,15,84,194,252,
@@ -1454,91 +1454,91 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1454#endif 1454#endif
1455 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top)); 1455 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top));
1456#if LJ_HASJIT 1456#if LJ_HASJIT
1457 dasm_put(Dst, 8247, 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), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, Dt1(->base)); 1457 dasm_put(Dst, 8247, 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), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1458#endif 1458#endif
1459 dasm_put(Dst, 8391); 1459 dasm_put(Dst, 8389);
1460#if LJ_HASJIT 1460#if LJ_HASJIT
1461 dasm_put(Dst, 8394, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1461 dasm_put(Dst, 8392, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1462#endif 1462#endif
1463 dasm_put(Dst, 8445); 1463 dasm_put(Dst, 8443);
1464 if (!sse) { 1464 if (!sse) {
1465 dasm_put(Dst, 8448); 1465 dasm_put(Dst, 8446);
1466 } 1466 }
1467 dasm_put(Dst, 8493); 1467 dasm_put(Dst, 8491);
1468 if (!sse) { 1468 if (!sse) {
1469 dasm_put(Dst, 8595); 1469 dasm_put(Dst, 8593);
1470 } 1470 }
1471 dasm_put(Dst, 8640); 1471 dasm_put(Dst, 8638);
1472 if (!sse) { 1472 if (!sse) {
1473 dasm_put(Dst, 8742); 1473 dasm_put(Dst, 8740);
1474 } 1474 }
1475 dasm_put(Dst, 8781); 1475 dasm_put(Dst, 8779);
1476 if (sse) { 1476 if (sse) {
1477 dasm_put(Dst, 8886); 1477 dasm_put(Dst, 8884);
1478 } else { 1478 } else {
1479 dasm_put(Dst, 9016); 1479 dasm_put(Dst, 9014);
1480 } 1480 }
1481 dasm_put(Dst, 9063); 1481 dasm_put(Dst, 9061);
1482 if (!sse) { 1482 if (!sse) {
1483 dasm_put(Dst, 9137); 1483 dasm_put(Dst, 9135);
1484 if (cmov) { 1484 if (cmov) {
1485 dasm_put(Dst, 9148); 1485 dasm_put(Dst, 9146);
1486 } else { 1486 } else {
1487 dasm_put(Dst, 9152); 1487 dasm_put(Dst, 9150);
1488 } 1488 }
1489 dasm_put(Dst, 9159); 1489 dasm_put(Dst, 9157);
1490 dasm_put(Dst, 9233); 1490 dasm_put(Dst, 9231);
1491 dasm_put(Dst, 9333); 1491 dasm_put(Dst, 9331);
1492 if (cmov) { 1492 if (cmov) {
1493 dasm_put(Dst, 9336); 1493 dasm_put(Dst, 9334);
1494 } else { 1494 } else {
1495 dasm_put(Dst, 9340); 1495 dasm_put(Dst, 9338);
1496 } 1496 }
1497 dasm_put(Dst, 9347); 1497 dasm_put(Dst, 9345);
1498 if (cmov) { 1498 if (cmov) {
1499 dasm_put(Dst, 9148); 1499 dasm_put(Dst, 9146);
1500 } else { 1500 } else {
1501 dasm_put(Dst, 9152); 1501 dasm_put(Dst, 9150);
1502 } 1502 }
1503 dasm_put(Dst, 9365); 1503 dasm_put(Dst, 9363);
1504 } else { 1504 } else {
1505 dasm_put(Dst, 9444); 1505 dasm_put(Dst, 9442);
1506 } 1506 }
1507 dasm_put(Dst, 9447); 1507 dasm_put(Dst, 9445);
1508 dasm_put(Dst, 9532); 1508 dasm_put(Dst, 9530);
1509 dasm_put(Dst, 9663); 1509 dasm_put(Dst, 9661);
1510 dasm_put(Dst, 9862); 1510 dasm_put(Dst, 9860);
1511 if (sse) { 1511 if (sse) {
1512 dasm_put(Dst, 9885); 1512 dasm_put(Dst, 9883);
1513 dasm_put(Dst, 9942); 1513 dasm_put(Dst, 9940);
1514 dasm_put(Dst, 10033); 1514 dasm_put(Dst, 10031);
1515 } else { 1515 } else {
1516 dasm_put(Dst, 10075); 1516 dasm_put(Dst, 10073);
1517 dasm_put(Dst, 10167); 1517 dasm_put(Dst, 10165);
1518 } 1518 }
1519 dasm_put(Dst, 10213); 1519 dasm_put(Dst, 10211);
1520 if (sse) { 1520 if (sse) {
1521 dasm_put(Dst, 10219); 1521 dasm_put(Dst, 10217);
1522 dasm_put(Dst, 10324); 1522 dasm_put(Dst, 10322);
1523 dasm_put(Dst, 10407); 1523 dasm_put(Dst, 10405);
1524 } else { 1524 } else {
1525 dasm_put(Dst, 10479); 1525 dasm_put(Dst, 10477);
1526 dasm_put(Dst, 10562); 1526 dasm_put(Dst, 10560);
1527 if (cmov) { 1527 if (cmov) {
1528 dasm_put(Dst, 10617); 1528 dasm_put(Dst, 10615);
1529 } else { 1529 } else {
1530 dasm_put(Dst, 10636); 1530 dasm_put(Dst, 10634);
1531 } 1531 }
1532 dasm_put(Dst, 10475); 1532 dasm_put(Dst, 10473);
1533 } 1533 }
1534 dasm_put(Dst, 10677); 1534 dasm_put(Dst, 10675);
1535} 1535}
1536 1536
1537/* Generate the code for a single instruction. */ 1537/* Generate the code for a single instruction. */
1538static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1538static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1539{ 1539{
1540 int vk = 0; 1540 int vk = 0;
1541 dasm_put(Dst, 10731, defop); 1541 dasm_put(Dst, 10729, defop);
1542 1542
1543 switch (op) { 1543 switch (op) {
1544 1544
@@ -1547,617 +1547,617 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1547 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1547 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1548 1548
1549 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1549 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1550 dasm_put(Dst, 10733, LJ_TISNUM, LJ_TISNUM); 1550 dasm_put(Dst, 10731, LJ_TISNUM, LJ_TISNUM);
1551 if (sse) { 1551 if (sse) {
1552 dasm_put(Dst, 10754); 1552 dasm_put(Dst, 10752);
1553 } else { 1553 } else {
1554 dasm_put(Dst, 10769); 1554 dasm_put(Dst, 10767);
1555 if (cmov) { 1555 if (cmov) {
1556 dasm_put(Dst, 10779); 1556 dasm_put(Dst, 10777);
1557 } else { 1557 } else {
1558 dasm_put(Dst, 10785); 1558 dasm_put(Dst, 10783);
1559 } 1559 }
1560 } 1560 }
1561 switch (op) { 1561 switch (op) {
1562 case BC_ISLT: 1562 case BC_ISLT:
1563 dasm_put(Dst, 10792); 1563 dasm_put(Dst, 10790);
1564 break; 1564 break;
1565 case BC_ISGE: 1565 case BC_ISGE:
1566 dasm_put(Dst, 10028); 1566 dasm_put(Dst, 10026);
1567 break; 1567 break;
1568 case BC_ISLE: 1568 case BC_ISLE:
1569 dasm_put(Dst, 6181); 1569 dasm_put(Dst, 6181);
1570 break; 1570 break;
1571 case BC_ISGT: 1571 case BC_ISGT:
1572 dasm_put(Dst, 10797); 1572 dasm_put(Dst, 10795);
1573 break; 1573 break;
1574 default: break; /* Shut up GCC. */ 1574 default: break; /* Shut up GCC. */
1575 } 1575 }
1576 dasm_put(Dst, 10802, -BCBIAS_J*4); 1576 dasm_put(Dst, 10800, -BCBIAS_J*4);
1577 break; 1577 break;
1578 1578
1579 case BC_ISEQV: case BC_ISNEV: 1579 case BC_ISEQV: case BC_ISNEV:
1580 vk = op == BC_ISEQV; 1580 vk = op == BC_ISEQV;
1581 dasm_put(Dst, 10835, LJ_TISNUM, LJ_TISNUM); 1581 dasm_put(Dst, 10833, LJ_TISNUM, LJ_TISNUM);
1582 if (sse) { 1582 if (sse) {
1583 dasm_put(Dst, 10861); 1583 dasm_put(Dst, 10859);
1584 } else { 1584 } else {
1585 dasm_put(Dst, 10873); 1585 dasm_put(Dst, 10871);
1586 if (cmov) { 1586 if (cmov) {
1587 dasm_put(Dst, 10779); 1587 dasm_put(Dst, 10777);
1588 } else { 1588 } else {
1589 dasm_put(Dst, 10785); 1589 dasm_put(Dst, 10783);
1590 } 1590 }
1591 } 1591 }
1592 iseqne_fp: 1592 iseqne_fp:
1593 if (vk) { 1593 if (vk) {
1594 dasm_put(Dst, 10880); 1594 dasm_put(Dst, 10878);
1595 } else { 1595 } else {
1596 dasm_put(Dst, 10889); 1596 dasm_put(Dst, 10887);
1597 } 1597 }
1598 iseqne_end: 1598 iseqne_end:
1599 if (vk) { 1599 if (vk) {
1600 dasm_put(Dst, 10898, -BCBIAS_J*4); 1600 dasm_put(Dst, 10896, -BCBIAS_J*4);
1601 } else { 1601 } else {
1602 dasm_put(Dst, 10913, -BCBIAS_J*4); 1602 dasm_put(Dst, 10911, -BCBIAS_J*4);
1603 } 1603 }
1604 dasm_put(Dst, 10816); 1604 dasm_put(Dst, 10814);
1605 if (op == BC_ISEQV || op == BC_ISNEV) { 1605 if (op == BC_ISEQV || op == BC_ISNEV) {
1606 dasm_put(Dst, 10928, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1606 dasm_put(Dst, 10926, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1607 if (vk) { 1607 if (vk) {
1608 dasm_put(Dst, 10986); 1608 dasm_put(Dst, 10984);
1609 } else { 1609 } else {
1610 dasm_put(Dst, 10990); 1610 dasm_put(Dst, 10988);
1611 } 1611 }
1612 dasm_put(Dst, 10996); 1612 dasm_put(Dst, 10994);
1613 } 1613 }
1614 break; 1614 break;
1615 case BC_ISEQS: case BC_ISNES: 1615 case BC_ISEQS: case BC_ISNES:
1616 vk = op == BC_ISEQS; 1616 vk = op == BC_ISEQS;
1617 dasm_put(Dst, 11001, LJ_TSTR); 1617 dasm_put(Dst, 10999, LJ_TSTR);
1618 iseqne_test: 1618 iseqne_test:
1619 if (vk) { 1619 if (vk) {
1620 dasm_put(Dst, 10884); 1620 dasm_put(Dst, 8384);
1621 } else { 1621 } else {
1622 dasm_put(Dst, 2811); 1622 dasm_put(Dst, 2811);
1623 } 1623 }
1624 goto iseqne_end; 1624 goto iseqne_end;
1625 case BC_ISEQN: case BC_ISNEN: 1625 case BC_ISEQN: case BC_ISNEN:
1626 vk = op == BC_ISEQN; 1626 vk = op == BC_ISEQN;
1627 dasm_put(Dst, 11024, LJ_TISNUM); 1627 dasm_put(Dst, 11022, LJ_TISNUM);
1628 if (sse) { 1628 if (sse) {
1629 dasm_put(Dst, 11038); 1629 dasm_put(Dst, 11036);
1630 } else { 1630 } else {
1631 dasm_put(Dst, 11050); 1631 dasm_put(Dst, 11048);
1632 if (cmov) { 1632 if (cmov) {
1633 dasm_put(Dst, 10779); 1633 dasm_put(Dst, 10777);
1634 } else { 1634 } else {
1635 dasm_put(Dst, 10785); 1635 dasm_put(Dst, 10783);
1636 } 1636 }
1637 } 1637 }
1638 goto iseqne_fp; 1638 goto iseqne_fp;
1639 case BC_ISEQP: case BC_ISNEP: 1639 case BC_ISEQP: case BC_ISNEP:
1640 vk = op == BC_ISEQP; 1640 vk = op == BC_ISEQP;
1641 dasm_put(Dst, 11057); 1641 dasm_put(Dst, 11055);
1642 goto iseqne_test; 1642 goto iseqne_test;
1643 1643
1644 /* -- Unary test and copy ops ------------------------------------------- */ 1644 /* -- Unary test and copy ops ------------------------------------------- */
1645 1645
1646 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1646 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1647 dasm_put(Dst, 11068, LJ_TISTRUECOND); 1647 dasm_put(Dst, 11066, LJ_TISTRUECOND);
1648 if (op == BC_IST || op == BC_ISTC) { 1648 if (op == BC_IST || op == BC_ISTC) {
1649 dasm_put(Dst, 11080); 1649 dasm_put(Dst, 11078);
1650 } else { 1650 } else {
1651 dasm_put(Dst, 11085); 1651 dasm_put(Dst, 11083);
1652 } 1652 }
1653 if (op == BC_ISTC || op == BC_ISFC) { 1653 if (op == BC_ISTC || op == BC_ISFC) {
1654 dasm_put(Dst, 11090); 1654 dasm_put(Dst, 11088);
1655 } 1655 }
1656 dasm_put(Dst, 11101, -BCBIAS_J*4); 1656 dasm_put(Dst, 11099, -BCBIAS_J*4);
1657 break; 1657 break;
1658 1658
1659 /* -- Unary ops --------------------------------------------------------- */ 1659 /* -- Unary ops --------------------------------------------------------- */
1660 1660
1661 case BC_MOV: 1661 case BC_MOV:
1662 dasm_put(Dst, 11132); 1662 dasm_put(Dst, 11130);
1663 break; 1663 break;
1664 case BC_NOT: 1664 case BC_NOT:
1665 dasm_put(Dst, 11165, LJ_TISTRUECOND, LJ_TTRUE); 1665 dasm_put(Dst, 11163, LJ_TISTRUECOND, LJ_TTRUE);
1666 break; 1666 break;
1667 case BC_UNM: 1667 case BC_UNM:
1668 dasm_put(Dst, 11200, LJ_TISNUM); 1668 dasm_put(Dst, 11198, LJ_TISNUM);
1669 if (sse) { 1669 if (sse) {
1670 dasm_put(Dst, 11211); 1670 dasm_put(Dst, 11209);
1671 } else { 1671 } else {
1672 dasm_put(Dst, 11241); 1672 dasm_put(Dst, 11239);
1673 } 1673 }
1674 dasm_put(Dst, 10816); 1674 dasm_put(Dst, 10814);
1675 break; 1675 break;
1676 case BC_LEN: 1676 case BC_LEN:
1677 dasm_put(Dst, 11250, LJ_TSTR); 1677 dasm_put(Dst, 11248, LJ_TSTR);
1678 if (sse) { 1678 if (sse) {
1679 dasm_put(Dst, 11264, Dt5(->len)); 1679 dasm_put(Dst, 11262, Dt5(->len));
1680 } else { 1680 } else {
1681 dasm_put(Dst, 11282, Dt5(->len)); 1681 dasm_put(Dst, 11280, Dt5(->len));
1682 } 1682 }
1683 dasm_put(Dst, 11291, LJ_TTAB); 1683 dasm_put(Dst, 11289, LJ_TTAB);
1684 if (sse) { 1684 if (sse) {
1685 dasm_put(Dst, 11331); 1685 dasm_put(Dst, 11329);
1686 } else { 1686 } else {
1687 dasm_put(Dst, 11340); 1687 dasm_put(Dst, 11338);
1688 } 1688 }
1689 dasm_put(Dst, 11350); 1689 dasm_put(Dst, 11348);
1690 break; 1690 break;
1691 1691
1692 /* -- Binary ops -------------------------------------------------------- */ 1692 /* -- Binary ops -------------------------------------------------------- */
1693 1693
1694 1694
1695 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1695 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1696 dasm_put(Dst, 11360); 1696 dasm_put(Dst, 11358);
1697 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1697 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1698 switch (vk) { 1698 switch (vk) {
1699 case 0: 1699 case 0:
1700 dasm_put(Dst, 11368, LJ_TISNUM); 1700 dasm_put(Dst, 11366, LJ_TISNUM);
1701 if (sse) { 1701 if (sse) {
1702 dasm_put(Dst, 11380); 1702 dasm_put(Dst, 11378);
1703 } else { 1703 } else {
1704 dasm_put(Dst, 11394); 1704 dasm_put(Dst, 11392);
1705 } 1705 }
1706 break; 1706 break;
1707 case 1: 1707 case 1:
1708 dasm_put(Dst, 11402, LJ_TISNUM); 1708 dasm_put(Dst, 11400, LJ_TISNUM);
1709 if (sse) { 1709 if (sse) {
1710 dasm_put(Dst, 11414); 1710 dasm_put(Dst, 11412);
1711 } else { 1711 } else {
1712 dasm_put(Dst, 11428); 1712 dasm_put(Dst, 11426);
1713 } 1713 }
1714 break; 1714 break;
1715 default: 1715 default:
1716 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1716 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1717 if (sse) { 1717 if (sse) {
1718 dasm_put(Dst, 11458); 1718 dasm_put(Dst, 11456);
1719 } else { 1719 } else {
1720 dasm_put(Dst, 11472); 1720 dasm_put(Dst, 11470);
1721 } 1721 }
1722 break; 1722 break;
1723 } 1723 }
1724 if (sse) { 1724 if (sse) {
1725 dasm_put(Dst, 11234); 1725 dasm_put(Dst, 11232);
1726 } else { 1726 } else {
1727 dasm_put(Dst, 11246); 1727 dasm_put(Dst, 11244);
1728 } 1728 }
1729 dasm_put(Dst, 10816); 1729 dasm_put(Dst, 10814);
1730 break; 1730 break;
1731 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1731 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1732 dasm_put(Dst, 11360); 1732 dasm_put(Dst, 11358);
1733 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1733 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1734 switch (vk) { 1734 switch (vk) {
1735 case 0: 1735 case 0:
1736 dasm_put(Dst, 11368, LJ_TISNUM); 1736 dasm_put(Dst, 11366, LJ_TISNUM);
1737 if (sse) { 1737 if (sse) {
1738 dasm_put(Dst, 11480); 1738 dasm_put(Dst, 11478);
1739 } else { 1739 } else {
1740 dasm_put(Dst, 11494); 1740 dasm_put(Dst, 11492);
1741 } 1741 }
1742 break; 1742 break;
1743 case 1: 1743 case 1:
1744 dasm_put(Dst, 11402, LJ_TISNUM); 1744 dasm_put(Dst, 11400, LJ_TISNUM);
1745 if (sse) { 1745 if (sse) {
1746 dasm_put(Dst, 11502); 1746 dasm_put(Dst, 11500);
1747 } else { 1747 } else {
1748 dasm_put(Dst, 11516); 1748 dasm_put(Dst, 11514);
1749 } 1749 }
1750 break; 1750 break;
1751 default: 1751 default:
1752 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1752 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1753 if (sse) { 1753 if (sse) {
1754 dasm_put(Dst, 11524); 1754 dasm_put(Dst, 11522);
1755 } else { 1755 } else {
1756 dasm_put(Dst, 11538); 1756 dasm_put(Dst, 11536);
1757 } 1757 }
1758 break; 1758 break;
1759 } 1759 }
1760 if (sse) { 1760 if (sse) {
1761 dasm_put(Dst, 11234); 1761 dasm_put(Dst, 11232);
1762 } else { 1762 } else {
1763 dasm_put(Dst, 11246); 1763 dasm_put(Dst, 11244);
1764 } 1764 }
1765 dasm_put(Dst, 10816); 1765 dasm_put(Dst, 10814);
1766 break; 1766 break;
1767 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1767 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1768 dasm_put(Dst, 11360); 1768 dasm_put(Dst, 11358);
1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1769 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1770 switch (vk) { 1770 switch (vk) {
1771 case 0: 1771 case 0:
1772 dasm_put(Dst, 11368, LJ_TISNUM); 1772 dasm_put(Dst, 11366, LJ_TISNUM);
1773 if (sse) { 1773 if (sse) {
1774 dasm_put(Dst, 11546); 1774 dasm_put(Dst, 11544);
1775 } else { 1775 } else {
1776 dasm_put(Dst, 11560); 1776 dasm_put(Dst, 11558);
1777 } 1777 }
1778 break; 1778 break;
1779 case 1: 1779 case 1:
1780 dasm_put(Dst, 11402, LJ_TISNUM); 1780 dasm_put(Dst, 11400, LJ_TISNUM);
1781 if (sse) { 1781 if (sse) {
1782 dasm_put(Dst, 11568); 1782 dasm_put(Dst, 11566);
1783 } else { 1783 } else {
1784 dasm_put(Dst, 11582); 1784 dasm_put(Dst, 11580);
1785 } 1785 }
1786 break; 1786 break;
1787 default: 1787 default:
1788 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1788 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1789 if (sse) { 1789 if (sse) {
1790 dasm_put(Dst, 11590); 1790 dasm_put(Dst, 11588);
1791 } else { 1791 } else {
1792 dasm_put(Dst, 11604); 1792 dasm_put(Dst, 11602);
1793 } 1793 }
1794 break; 1794 break;
1795 } 1795 }
1796 if (sse) { 1796 if (sse) {
1797 dasm_put(Dst, 11234); 1797 dasm_put(Dst, 11232);
1798 } else { 1798 } else {
1799 dasm_put(Dst, 11246); 1799 dasm_put(Dst, 11244);
1800 } 1800 }
1801 dasm_put(Dst, 10816); 1801 dasm_put(Dst, 10814);
1802 break; 1802 break;
1803 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1803 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1804 dasm_put(Dst, 11360); 1804 dasm_put(Dst, 11358);
1805 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1805 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1806 switch (vk) { 1806 switch (vk) {
1807 case 0: 1807 case 0:
1808 dasm_put(Dst, 11368, LJ_TISNUM); 1808 dasm_put(Dst, 11366, LJ_TISNUM);
1809 if (sse) { 1809 if (sse) {
1810 dasm_put(Dst, 11612); 1810 dasm_put(Dst, 11610);
1811 } else { 1811 } else {
1812 dasm_put(Dst, 11626); 1812 dasm_put(Dst, 11624);
1813 } 1813 }
1814 break; 1814 break;
1815 case 1: 1815 case 1:
1816 dasm_put(Dst, 11402, LJ_TISNUM); 1816 dasm_put(Dst, 11400, LJ_TISNUM);
1817 if (sse) { 1817 if (sse) {
1818 dasm_put(Dst, 11634); 1818 dasm_put(Dst, 11632);
1819 } else { 1819 } else {
1820 dasm_put(Dst, 11648); 1820 dasm_put(Dst, 11646);
1821 } 1821 }
1822 break; 1822 break;
1823 default: 1823 default:
1824 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1824 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1825 if (sse) { 1825 if (sse) {
1826 dasm_put(Dst, 11656); 1826 dasm_put(Dst, 11654);
1827 } else { 1827 } else {
1828 dasm_put(Dst, 11670); 1828 dasm_put(Dst, 11668);
1829 } 1829 }
1830 break; 1830 break;
1831 } 1831 }
1832 if (sse) { 1832 if (sse) {
1833 dasm_put(Dst, 11234); 1833 dasm_put(Dst, 11232);
1834 } else { 1834 } else {
1835 dasm_put(Dst, 11246); 1835 dasm_put(Dst, 11244);
1836 } 1836 }
1837 dasm_put(Dst, 10816); 1837 dasm_put(Dst, 10814);
1838 break; 1838 break;
1839 case BC_MODVN: 1839 case BC_MODVN:
1840 dasm_put(Dst, 11360); 1840 dasm_put(Dst, 11358);
1841 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1841 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1842 switch (vk) { 1842 switch (vk) {
1843 case 0: 1843 case 0:
1844 dasm_put(Dst, 11368, LJ_TISNUM); 1844 dasm_put(Dst, 11366, LJ_TISNUM);
1845 if (sse) { 1845 if (sse) {
1846 dasm_put(Dst, 11678); 1846 dasm_put(Dst, 11676);
1847 } else { 1847 } else {
1848 dasm_put(Dst, 11692); 1848 dasm_put(Dst, 11690);
1849 } 1849 }
1850 break; 1850 break;
1851 case 1: 1851 case 1:
1852 dasm_put(Dst, 11402, LJ_TISNUM); 1852 dasm_put(Dst, 11400, LJ_TISNUM);
1853 if (sse) { 1853 if (sse) {
1854 dasm_put(Dst, 11700); 1854 dasm_put(Dst, 11698);
1855 } else { 1855 } else {
1856 dasm_put(Dst, 11714); 1856 dasm_put(Dst, 11712);
1857 } 1857 }
1858 break; 1858 break;
1859 default: 1859 default:
1860 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1860 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1861 if (sse) { 1861 if (sse) {
1862 dasm_put(Dst, 11722); 1862 dasm_put(Dst, 11720);
1863 } else { 1863 } else {
1864 dasm_put(Dst, 11736); 1864 dasm_put(Dst, 11734);
1865 } 1865 }
1866 break; 1866 break;
1867 } 1867 }
1868 dasm_put(Dst, 11744); 1868 dasm_put(Dst, 11742);
1869 if (sse) { 1869 if (sse) {
1870 dasm_put(Dst, 11234); 1870 dasm_put(Dst, 11232);
1871 } else { 1871 } else {
1872 dasm_put(Dst, 11246); 1872 dasm_put(Dst, 11244);
1873 } 1873 }
1874 dasm_put(Dst, 10816); 1874 dasm_put(Dst, 10814);
1875 break; 1875 break;
1876 case BC_MODNV: case BC_MODVV: 1876 case BC_MODNV: case BC_MODVV:
1877 dasm_put(Dst, 11360); 1877 dasm_put(Dst, 11358);
1878 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1878 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1879 switch (vk) { 1879 switch (vk) {
1880 case 0: 1880 case 0:
1881 dasm_put(Dst, 11368, LJ_TISNUM); 1881 dasm_put(Dst, 11366, LJ_TISNUM);
1882 if (sse) { 1882 if (sse) {
1883 dasm_put(Dst, 11678); 1883 dasm_put(Dst, 11676);
1884 } else { 1884 } else {
1885 dasm_put(Dst, 11692); 1885 dasm_put(Dst, 11690);
1886 } 1886 }
1887 break; 1887 break;
1888 case 1: 1888 case 1:
1889 dasm_put(Dst, 11402, LJ_TISNUM); 1889 dasm_put(Dst, 11400, LJ_TISNUM);
1890 if (sse) { 1890 if (sse) {
1891 dasm_put(Dst, 11700); 1891 dasm_put(Dst, 11698);
1892 } else { 1892 } else {
1893 dasm_put(Dst, 11714); 1893 dasm_put(Dst, 11712);
1894 } 1894 }
1895 break; 1895 break;
1896 default: 1896 default:
1897 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1897 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1898 if (sse) { 1898 if (sse) {
1899 dasm_put(Dst, 11722); 1899 dasm_put(Dst, 11720);
1900 } else { 1900 } else {
1901 dasm_put(Dst, 11736); 1901 dasm_put(Dst, 11734);
1902 } 1902 }
1903 break; 1903 break;
1904 } 1904 }
1905 dasm_put(Dst, 11750); 1905 dasm_put(Dst, 11748);
1906 break; 1906 break;
1907 case BC_POW: 1907 case BC_POW:
1908 dasm_put(Dst, 11360); 1908 dasm_put(Dst, 11358);
1909 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1909 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1910 switch (vk) { 1910 switch (vk) {
1911 case 0: 1911 case 0:
1912 dasm_put(Dst, 11368, LJ_TISNUM); 1912 dasm_put(Dst, 11366, LJ_TISNUM);
1913 if (sse) { 1913 if (sse) {
1914 dasm_put(Dst, 11678); 1914 dasm_put(Dst, 11676);
1915 } else { 1915 } else {
1916 dasm_put(Dst, 11692); 1916 dasm_put(Dst, 11690);
1917 } 1917 }
1918 break; 1918 break;
1919 case 1: 1919 case 1:
1920 dasm_put(Dst, 11402, LJ_TISNUM); 1920 dasm_put(Dst, 11400, LJ_TISNUM);
1921 if (sse) { 1921 if (sse) {
1922 dasm_put(Dst, 11700); 1922 dasm_put(Dst, 11698);
1923 } else { 1923 } else {
1924 dasm_put(Dst, 11714); 1924 dasm_put(Dst, 11712);
1925 } 1925 }
1926 break; 1926 break;
1927 default: 1927 default:
1928 dasm_put(Dst, 11436, LJ_TISNUM, LJ_TISNUM); 1928 dasm_put(Dst, 11434, LJ_TISNUM, LJ_TISNUM);
1929 if (sse) { 1929 if (sse) {
1930 dasm_put(Dst, 11722); 1930 dasm_put(Dst, 11720);
1931 } else { 1931 } else {
1932 dasm_put(Dst, 11736); 1932 dasm_put(Dst, 11734);
1933 } 1933 }
1934 break; 1934 break;
1935 } 1935 }
1936 dasm_put(Dst, 11755); 1936 dasm_put(Dst, 11753);
1937 if (sse) { 1937 if (sse) {
1938 dasm_put(Dst, 11234); 1938 dasm_put(Dst, 11232);
1939 } else { 1939 } else {
1940 dasm_put(Dst, 11246); 1940 dasm_put(Dst, 11244);
1941 } 1941 }
1942 dasm_put(Dst, 10816); 1942 dasm_put(Dst, 10814);
1943 break; 1943 break;
1944 1944
1945 case BC_CAT: 1945 case BC_CAT:
1946 dasm_put(Dst, 11759, Dt1(->base), Dt1(->base)); 1946 dasm_put(Dst, 11757, Dt1(->base), Dt1(->base));
1947 break; 1947 break;
1948 1948
1949 /* -- Constant ops ------------------------------------------------------ */ 1949 /* -- Constant ops ------------------------------------------------------ */
1950 1950
1951 case BC_KSTR: 1951 case BC_KSTR:
1952 dasm_put(Dst, 11853, LJ_TSTR); 1952 dasm_put(Dst, 11851, LJ_TSTR);
1953 break; 1953 break;
1954 case BC_KSHORT: 1954 case BC_KSHORT:
1955 if (sse) { 1955 if (sse) {
1956 dasm_put(Dst, 11886); 1956 dasm_put(Dst, 11884);
1957 } else { 1957 } else {
1958 dasm_put(Dst, 11901); 1958 dasm_put(Dst, 11899);
1959 } 1959 }
1960 dasm_put(Dst, 10816); 1960 dasm_put(Dst, 10814);
1961 break; 1961 break;
1962 case BC_KNUM: 1962 case BC_KNUM:
1963 if (sse) { 1963 if (sse) {
1964 dasm_put(Dst, 11909); 1964 dasm_put(Dst, 11907);
1965 } else { 1965 } else {
1966 dasm_put(Dst, 11922); 1966 dasm_put(Dst, 11920);
1967 } 1967 }
1968 dasm_put(Dst, 10816); 1968 dasm_put(Dst, 10814);
1969 break; 1969 break;
1970 case BC_KPRI: 1970 case BC_KPRI:
1971 dasm_put(Dst, 11929); 1971 dasm_put(Dst, 11927);
1972 break; 1972 break;
1973 case BC_KNIL: 1973 case BC_KNIL:
1974 dasm_put(Dst, 11955, LJ_TNIL); 1974 dasm_put(Dst, 11953, LJ_TNIL);
1975 break; 1975 break;
1976 1976
1977 /* -- Upvalue and function ops ------------------------------------------ */ 1977 /* -- Upvalue and function ops ------------------------------------------ */
1978 1978
1979 case BC_UGET: 1979 case BC_UGET:
1980 dasm_put(Dst, 12001, offsetof(GCfuncL, uvptr), DtA(->v)); 1980 dasm_put(Dst, 11999, offsetof(GCfuncL, uvptr), DtA(->v));
1981 break; 1981 break;
1982 case BC_USETV: 1982 case BC_USETV:
1983#define TV2MARKOFS \ 1983#define TV2MARKOFS \
1984 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1984 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1985 dasm_put(Dst, 12045, 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); 1985 dasm_put(Dst, 12043, 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);
1986 dasm_put(Dst, 12135); 1986 dasm_put(Dst, 12133);
1987 break; 1987 break;
1988#undef TV2MARKOFS 1988#undef TV2MARKOFS
1989 case BC_USETS: 1989 case BC_USETS:
1990 dasm_put(Dst, 12147, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1990 dasm_put(Dst, 12145, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1991 break; 1991 break;
1992 case BC_USETN: 1992 case BC_USETN:
1993 dasm_put(Dst, 12238); 1993 dasm_put(Dst, 12236);
1994 if (sse) { 1994 if (sse) {
1995 dasm_put(Dst, 12243); 1995 dasm_put(Dst, 12241);
1996 } else { 1996 } else {
1997 dasm_put(Dst, 11053); 1997 dasm_put(Dst, 11051);
1998 } 1998 }
1999 dasm_put(Dst, 12250, offsetof(GCfuncL, uvptr), DtA(->v)); 1999 dasm_put(Dst, 12248, offsetof(GCfuncL, uvptr), DtA(->v));
2000 if (sse) { 2000 if (sse) {
2001 dasm_put(Dst, 12259); 2001 dasm_put(Dst, 12257);
2002 } else { 2002 } else {
2003 dasm_put(Dst, 12265); 2003 dasm_put(Dst, 12263);
2004 } 2004 }
2005 dasm_put(Dst, 10816); 2005 dasm_put(Dst, 10814);
2006 break; 2006 break;
2007 case BC_USETP: 2007 case BC_USETP:
2008 dasm_put(Dst, 12268, offsetof(GCfuncL, uvptr), DtA(->v)); 2008 dasm_put(Dst, 12266, offsetof(GCfuncL, uvptr), DtA(->v));
2009 break; 2009 break;
2010 case BC_UCLO: 2010 case BC_UCLO:
2011 dasm_put(Dst, 12305, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2011 dasm_put(Dst, 12303, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2012 break; 2012 break;
2013 2013
2014 case BC_FNEW: 2014 case BC_FNEW:
2015 dasm_put(Dst, 12359, Dt1(->base), Dt1(->base), LJ_TFUNC); 2015 dasm_put(Dst, 12357, Dt1(->base), Dt1(->base), LJ_TFUNC);
2016 break; 2016 break;
2017 2017
2018 /* -- Table ops --------------------------------------------------------- */ 2018 /* -- Table ops --------------------------------------------------------- */
2019 2019
2020 case BC_TNEW: 2020 case BC_TNEW:
2021 dasm_put(Dst, 12430, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2021 dasm_put(Dst, 12428, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2022 break; 2022 break;
2023 case BC_TDUP: 2023 case BC_TDUP:
2024 dasm_put(Dst, 12551, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2024 dasm_put(Dst, 12549, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2025 break; 2025 break;
2026 2026
2027 case BC_GGET: 2027 case BC_GGET:
2028 dasm_put(Dst, 12643, Dt7(->env)); 2028 dasm_put(Dst, 12641, Dt7(->env));
2029 break; 2029 break;
2030 case BC_GSET: 2030 case BC_GSET:
2031 dasm_put(Dst, 12661, Dt7(->env)); 2031 dasm_put(Dst, 12659, Dt7(->env));
2032 break; 2032 break;
2033 2033
2034 case BC_TGETV: 2034 case BC_TGETV:
2035 dasm_put(Dst, 12679, LJ_TTAB, LJ_TISNUM); 2035 dasm_put(Dst, 12677, LJ_TTAB, LJ_TISNUM);
2036 if (sse) { 2036 if (sse) {
2037 dasm_put(Dst, 12712); 2037 dasm_put(Dst, 12710);
2038 } else { 2038 } else {
2039 dasm_put(Dst, 12733); 2039 dasm_put(Dst, 12731);
2040 if (cmov) { 2040 if (cmov) {
2041 dasm_put(Dst, 10779); 2041 dasm_put(Dst, 10777);
2042 } else { 2042 } else {
2043 dasm_put(Dst, 10785); 2043 dasm_put(Dst, 10783);
2044 } 2044 }
2045 dasm_put(Dst, 2524); 2045 dasm_put(Dst, 2524);
2046 } 2046 }
2047 dasm_put(Dst, 12743, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2047 dasm_put(Dst, 12741, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2048 dasm_put(Dst, 12835, LJ_TSTR); 2048 dasm_put(Dst, 12833, LJ_TSTR);
2049 break; 2049 break;
2050 case BC_TGETS: 2050 case BC_TGETS:
2051 dasm_put(Dst, 12853, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2051 dasm_put(Dst, 12851, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2052 dasm_put(Dst, 12937, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2052 dasm_put(Dst, 12935, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2053 break; 2053 break;
2054 case BC_TGETB: 2054 case BC_TGETB:
2055 dasm_put(Dst, 13008, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2055 dasm_put(Dst, 13006, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2056 dasm_put(Dst, 11350); 2056 dasm_put(Dst, 11348);
2057 break; 2057 break;
2058 2058
2059 case BC_TSETV: 2059 case BC_TSETV:
2060 dasm_put(Dst, 13107, LJ_TTAB, LJ_TISNUM); 2060 dasm_put(Dst, 13105, LJ_TTAB, LJ_TISNUM);
2061 if (sse) { 2061 if (sse) {
2062 dasm_put(Dst, 12712); 2062 dasm_put(Dst, 12710);
2063 } else { 2063 } else {
2064 dasm_put(Dst, 12733); 2064 dasm_put(Dst, 12731);
2065 if (cmov) { 2065 if (cmov) {
2066 dasm_put(Dst, 10779); 2066 dasm_put(Dst, 10777);
2067 } else { 2067 } else {
2068 dasm_put(Dst, 10785); 2068 dasm_put(Dst, 10783);
2069 } 2069 }
2070 dasm_put(Dst, 2524); 2070 dasm_put(Dst, 2524);
2071 } 2071 }
2072 dasm_put(Dst, 13140, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2072 dasm_put(Dst, 13138, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2073 dasm_put(Dst, 13223, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2073 dasm_put(Dst, 13221, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2074 break; 2074 break;
2075 case BC_TSETS: 2075 case BC_TSETS:
2076 dasm_put(Dst, 13285, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2076 dasm_put(Dst, 13283, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2077 dasm_put(Dst, 13360, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2077 dasm_put(Dst, 13358, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2078 dasm_put(Dst, 13452, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2078 dasm_put(Dst, 13450, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2079 break; 2079 break;
2080 case BC_TSETB: 2080 case BC_TSETB:
2081 dasm_put(Dst, 13548, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2081 dasm_put(Dst, 13546, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2082 dasm_put(Dst, 13646, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2082 dasm_put(Dst, 13644, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2083 break; 2083 break;
2084 2084
2085 case BC_TSETM: 2085 case BC_TSETM:
2086 dasm_put(Dst, 13692); 2086 dasm_put(Dst, 13690);
2087 if (sse) { 2087 if (sse) {
2088 dasm_put(Dst, 12243); 2088 dasm_put(Dst, 12241);
2089 } else { 2089 } else {
2090 dasm_put(Dst, 13697); 2090 dasm_put(Dst, 13695);
2091 } 2091 }
2092 dasm_put(Dst, 13705, Dt6(->marked), LJ_GC_BLACK); 2092 dasm_put(Dst, 13703, Dt6(->marked), LJ_GC_BLACK);
2093 if (sse) { 2093 if (sse) {
2094 dasm_put(Dst, 13730); 2094 dasm_put(Dst, 13728);
2095 } else { 2095 } else {
2096 dasm_put(Dst, 13737); 2096 dasm_put(Dst, 13735);
2097 } 2097 }
2098 dasm_put(Dst, 13742, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2098 dasm_put(Dst, 13740, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2099 dasm_put(Dst, 13870, Dt6(->gclist)); 2099 dasm_put(Dst, 13868, Dt6(->gclist));
2100 break; 2100 break;
2101 2101
2102 /* -- Calls and vararg handling ----------------------------------------- */ 2102 /* -- Calls and vararg handling ----------------------------------------- */
2103 2103
2104 case BC_CALL: case BC_CALLM: 2104 case BC_CALL: case BC_CALLM:
2105 dasm_put(Dst, 11364); 2105 dasm_put(Dst, 11362);
2106 if (op == BC_CALLM) { 2106 if (op == BC_CALLM) {
2107 dasm_put(Dst, 13878); 2107 dasm_put(Dst, 13876);
2108 } 2108 }
2109 dasm_put(Dst, 13883, LJ_TFUNC, Dt7(->pc)); 2109 dasm_put(Dst, 13881, LJ_TFUNC, Dt7(->pc));
2110 break; 2110 break;
2111 2111
2112 case BC_CALLMT: 2112 case BC_CALLMT:
2113 dasm_put(Dst, 13878); 2113 dasm_put(Dst, 13876);
2114 break; 2114 break;
2115 case BC_CALLT: 2115 case BC_CALLT:
2116 dasm_put(Dst, 13924, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2116 dasm_put(Dst, 13922, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2117 dasm_put(Dst, 14042, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2117 dasm_put(Dst, 14040, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2118 break; 2118 break;
2119 2119
2120 case BC_ITERC: 2120 case BC_ITERC:
2121 dasm_put(Dst, 14099, LJ_TFUNC, 2+1, Dt7(->pc)); 2121 dasm_put(Dst, 14097, LJ_TFUNC, 2+1, Dt7(->pc));
2122 break; 2122 break;
2123 2123
2124 case BC_VARG: 2124 case BC_VARG:
2125 dasm_put(Dst, 14179, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2125 dasm_put(Dst, 14177, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2126 dasm_put(Dst, 14323, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2126 dasm_put(Dst, 14321, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2127 break; 2127 break;
2128 2128
2129 /* -- Returns ----------------------------------------------------------- */ 2129 /* -- Returns ----------------------------------------------------------- */
2130 2130
2131 case BC_RETM: 2131 case BC_RETM:
2132 dasm_put(Dst, 13878); 2132 dasm_put(Dst, 13876);
2133 break; 2133 break;
2134 2134
2135 case BC_RET: case BC_RET0: case BC_RET1: 2135 case BC_RET: case BC_RET0: case BC_RET1:
2136 if (op != BC_RET0) { 2136 if (op != BC_RET0) {
2137 dasm_put(Dst, 14422); 2137 dasm_put(Dst, 14420);
2138 } 2138 }
2139 dasm_put(Dst, 14426, FRAME_TYPE); 2139 dasm_put(Dst, 14424, FRAME_TYPE);
2140 switch (op) { 2140 switch (op) {
2141 case BC_RET: 2141 case BC_RET:
2142 dasm_put(Dst, 14445); 2142 dasm_put(Dst, 14443);
2143 break; 2143 break;
2144 case BC_RET1: 2144 case BC_RET1:
2145 dasm_put(Dst, 14503); 2145 dasm_put(Dst, 14501);
2146 /* fallthrough */ 2146 /* fallthrough */
2147 case BC_RET0: 2147 case BC_RET0:
2148 dasm_put(Dst, 14519); 2148 dasm_put(Dst, 14517);
2149 default: 2149 default:
2150 break; 2150 break;
2151 } 2151 }
2152 dasm_put(Dst, 14530, Dt7(->pc), PC2PROTO(k)); 2152 dasm_put(Dst, 14528, Dt7(->pc), PC2PROTO(k));
2153 if (op == BC_RET) { 2153 if (op == BC_RET) {
2154 dasm_put(Dst, 14572, LJ_TNIL); 2154 dasm_put(Dst, 14570, LJ_TNIL);
2155 } else { 2155 } else {
2156 dasm_put(Dst, 14581, LJ_TNIL); 2156 dasm_put(Dst, 14579, LJ_TNIL);
2157 } 2157 }
2158 dasm_put(Dst, 14588); 2158 dasm_put(Dst, 14586);
2159 if (op != BC_RET0) { 2159 if (op != BC_RET0) {
2160 dasm_put(Dst, 14609); 2160 dasm_put(Dst, 14607);
2161 } 2161 }
2162 dasm_put(Dst, 4680); 2162 dasm_put(Dst, 4680);
2163 break; 2163 break;
@@ -2167,7 +2167,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2167 2167
2168 case BC_FORL: 2168 case BC_FORL:
2169#if LJ_HASJIT 2169#if LJ_HASJIT
2170 dasm_put(Dst, 14613, HOTCOUNT_PCMASK, GG_DISP2HOT); 2170 dasm_put(Dst, 14611, HOTCOUNT_PCMASK, GG_DISP2HOT);
2171#endif 2171#endif
2172 break; 2172 break;
2173 2173
@@ -2179,57 +2179,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2179 case BC_FORI: 2179 case BC_FORI:
2180 case BC_IFORL: 2180 case BC_IFORL:
2181 vk = (op == BC_IFORL || op == BC_JFORL); 2181 vk = (op == BC_IFORL || op == BC_JFORL);
2182 dasm_put(Dst, 14634); 2182 dasm_put(Dst, 14632);
2183 if (!vk) { 2183 if (!vk) {
2184 dasm_put(Dst, 14638, LJ_TISNUM, LJ_TISNUM); 2184 dasm_put(Dst, 14636, LJ_TISNUM, LJ_TISNUM);
2185 } 2185 }
2186 dasm_put(Dst, 14657); 2186 dasm_put(Dst, 14655);
2187 if (!vk) { 2187 if (!vk) {
2188 dasm_put(Dst, 14661, LJ_TISNUM); 2188 dasm_put(Dst, 14659, LJ_TISNUM);
2189 } 2189 }
2190 if (sse) { 2190 if (sse) {
2191 dasm_put(Dst, 14670); 2191 dasm_put(Dst, 14668);
2192 if (vk) { 2192 if (vk) {
2193 dasm_put(Dst, 14682); 2193 dasm_put(Dst, 14680);
2194 } else { 2194 } else {
2195 dasm_put(Dst, 14701); 2195 dasm_put(Dst, 14699);
2196 } 2196 }
2197 dasm_put(Dst, 14706); 2197 dasm_put(Dst, 14704);
2198 } else { 2198 } else {
2199 dasm_put(Dst, 14719); 2199 dasm_put(Dst, 14717);
2200 if (vk) { 2200 if (vk) {
2201 dasm_put(Dst, 14725); 2201 dasm_put(Dst, 14723);
2202 } else { 2202 } else {
2203 dasm_put(Dst, 14741); 2203 dasm_put(Dst, 14739);
2204 } 2204 }
2205 dasm_put(Dst, 14749); 2205 dasm_put(Dst, 14747);
2206 if (cmov) { 2206 if (cmov) {
2207 dasm_put(Dst, 10779); 2207 dasm_put(Dst, 10777);
2208 } else { 2208 } else {
2209 dasm_put(Dst, 10785); 2209 dasm_put(Dst, 10783);
2210 } 2210 }
2211 if (!cmov) { 2211 if (!cmov) {
2212 dasm_put(Dst, 14754); 2212 dasm_put(Dst, 14752);
2213 } 2213 }
2214 } 2214 }
2215 if (op == BC_FORI) { 2215 if (op == BC_FORI) {
2216 dasm_put(Dst, 14760, -BCBIAS_J*4); 2216 dasm_put(Dst, 14758, -BCBIAS_J*4);
2217 } else if (op == BC_JFORI) { 2217 } else if (op == BC_JFORI) {
2218 dasm_put(Dst, 14770, -BCBIAS_J*4, BC_JLOOP); 2218 dasm_put(Dst, 14768, -BCBIAS_J*4, BC_JLOOP);
2219 } else if (op == BC_IFORL) { 2219 } else if (op == BC_IFORL) {
2220 dasm_put(Dst, 14784, -BCBIAS_J*4); 2220 dasm_put(Dst, 14782, -BCBIAS_J*4);
2221 } else { 2221 } else {
2222 dasm_put(Dst, 14780, BC_JLOOP); 2222 dasm_put(Dst, 14778, BC_JLOOP);
2223 } 2223 }
2224 dasm_put(Dst, 10814); 2224 dasm_put(Dst, 10812);
2225 if (sse) { 2225 if (sse) {
2226 dasm_put(Dst, 14794); 2226 dasm_put(Dst, 14792);
2227 } 2227 }
2228 break; 2228 break;
2229 2229
2230 case BC_ITERL: 2230 case BC_ITERL:
2231#if LJ_HASJIT 2231#if LJ_HASJIT
2232 dasm_put(Dst, 14613, HOTCOUNT_PCMASK, GG_DISP2HOT); 2232 dasm_put(Dst, 14611, HOTCOUNT_PCMASK, GG_DISP2HOT);
2233#endif 2233#endif
2234 break; 2234 break;
2235 2235
@@ -2238,33 +2238,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2238 break; 2238 break;
2239#endif 2239#endif
2240 case BC_IITERL: 2240 case BC_IITERL:
2241 dasm_put(Dst, 14805, LJ_TNIL); 2241 dasm_put(Dst, 14803, LJ_TNIL);
2242 if (op == BC_JITERL) { 2242 if (op == BC_JITERL) {
2243 dasm_put(Dst, 14820, BC_JLOOP); 2243 dasm_put(Dst, 14818, BC_JLOOP);
2244 } else { 2244 } else {
2245 dasm_put(Dst, 14834, -BCBIAS_J*4); 2245 dasm_put(Dst, 14832, -BCBIAS_J*4);
2246 } 2246 }
2247 dasm_put(Dst, 11111); 2247 dasm_put(Dst, 11109);
2248 break; 2248 break;
2249 2249
2250 case BC_LOOP: 2250 case BC_LOOP:
2251#if LJ_HASJIT 2251#if LJ_HASJIT
2252 dasm_put(Dst, 14613, HOTCOUNT_PCMASK, GG_DISP2HOT); 2252 dasm_put(Dst, 14611, HOTCOUNT_PCMASK, GG_DISP2HOT);
2253#endif 2253#endif
2254 break; 2254 break;
2255 2255
2256 case BC_ILOOP: 2256 case BC_ILOOP:
2257 dasm_put(Dst, 10816); 2257 dasm_put(Dst, 10814);
2258 break; 2258 break;
2259 2259
2260 case BC_JLOOP: 2260 case BC_JLOOP:
2261#if LJ_HASJIT 2261#if LJ_HASJIT
2262 dasm_put(Dst, 14850, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2262 dasm_put(Dst, 14848, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2263#endif 2263#endif
2264 break; 2264 break;
2265 2265
2266 case BC_JMP: 2266 case BC_JMP:
2267 dasm_put(Dst, 14873, -BCBIAS_J*4); 2267 dasm_put(Dst, 14871, -BCBIAS_J*4);
2268 break; 2268 break;
2269 2269
2270 /* -- Function headers -------------------------------------------------- */ 2270 /* -- Function headers -------------------------------------------------- */
@@ -2287,47 +2287,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2287 break; 2287 break;
2288#endif 2288#endif
2289 case BC_IFUNCF: 2289 case BC_IFUNCF:
2290 dasm_put(Dst, 14897, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2290 dasm_put(Dst, 14895, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2291 if (op == BC_JFUNCF) { 2291 if (op == BC_JFUNCF) {
2292 dasm_put(Dst, 14927, BC_JLOOP); 2292 dasm_put(Dst, 14925, BC_JLOOP);
2293 } else { 2293 } else {
2294 dasm_put(Dst, 10816); 2294 dasm_put(Dst, 10814);
2295 } 2295 }
2296 dasm_put(Dst, 14936, LJ_TNIL); 2296 dasm_put(Dst, 14934, LJ_TNIL);
2297 break; 2297 break;
2298 2298
2299 case BC_JFUNCV: 2299 case BC_JFUNCV:
2300#if !LJ_HASJIT 2300#if !LJ_HASJIT
2301 break; 2301 break;
2302#endif 2302#endif
2303 dasm_put(Dst, 10477); 2303 dasm_put(Dst, 10475);
2304 break; /* NYI: compiled vararg functions. */ 2304 break; /* NYI: compiled vararg functions. */
2305 2305
2306 case BC_IFUNCV: 2306 case BC_IFUNCV:
2307 dasm_put(Dst, 14958, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2307 dasm_put(Dst, 14956, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2308 if (op == BC_JFUNCV) { 2308 if (op == BC_JFUNCV) {
2309 dasm_put(Dst, 14927, BC_JLOOP); 2309 dasm_put(Dst, 14925, BC_JLOOP);
2310 } else { 2310 } else {
2311 dasm_put(Dst, 15049, -4+PC2PROTO(k)); 2311 dasm_put(Dst, 15047, -4+PC2PROTO(k));
2312 } 2312 }
2313 dasm_put(Dst, 15071, LJ_TNIL); 2313 dasm_put(Dst, 15069, LJ_TNIL);
2314 break; 2314 break;
2315 2315
2316 case BC_FUNCC: 2316 case BC_FUNCC:
2317 case BC_FUNCCW: 2317 case BC_FUNCCW:
2318 dasm_put(Dst, 15093, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2318 dasm_put(Dst, 15091, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2319 if (op == BC_FUNCC) { 2319 if (op == BC_FUNCC) {
2320 dasm_put(Dst, 15122); 2320 dasm_put(Dst, 15120);
2321 } else { 2321 } else {
2322 dasm_put(Dst, 15126); 2322 dasm_put(Dst, 15124);
2323 } 2323 }
2324 dasm_put(Dst, 15134, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2324 dasm_put(Dst, 15132, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2325 if (op == BC_FUNCC) { 2325 if (op == BC_FUNCC) {
2326 dasm_put(Dst, 15143); 2326 dasm_put(Dst, 15141);
2327 } else { 2327 } else {
2328 dasm_put(Dst, 15147, DISPATCH_GL(wrapf)); 2328 dasm_put(Dst, 15145, DISPATCH_GL(wrapf));
2329 } 2329 }
2330 dasm_put(Dst, 15152, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2330 dasm_put(Dst, 15150, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2331 break; 2331 break;
2332 2332
2333 /* ---------------------------------------------------------------------- */ 2333 /* ---------------------------------------------------------------------- */
@@ -2355,7 +2355,7 @@ static int build_backend(BuildCtx *ctx)
2355 2355
2356 build_subroutines(ctx, cmov, sse); 2356 build_subroutines(ctx, cmov, sse);
2357 2357
2358 dasm_put(Dst, 15177); 2358 dasm_put(Dst, 15175);
2359 for (op = 0; op < BC__MAX; op++) 2359 for (op = 0; op < BC__MAX; op++)
2360 build_ins(ctx, (BCOp)op, op, cmov, sse); 2360 build_ins(ctx, (BCOp)op, op, cmov, sse);
2361 2361
diff --git a/src/lj_frame.h b/src/lj_frame.h
index 0d7b177b..089b24f6 100644
--- a/src/lj_frame.h
+++ b/src/lj_frame.h
@@ -77,10 +77,10 @@ enum {
77#define CFRAME_SIZE (10*8) 77#define CFRAME_SIZE (10*8)
78#else 78#else
79#define CFRAME_OFS_PREV (4*8) 79#define CFRAME_OFS_PREV (4*8)
80#define CFRAME_OFS_PC (5*4) 80#define CFRAME_OFS_PC (7*4)
81#define CFRAME_OFS_L (4*4) 81#define CFRAME_OFS_L (6*4)
82#define CFRAME_OFS_ERRF (3*4) 82#define CFRAME_OFS_ERRF (5*4)
83#define CFRAME_OFS_NRES (2*4) 83#define CFRAME_OFS_NRES (4*4)
84#define CFRAME_OFS_MULTRES (1*4) 84#define CFRAME_OFS_MULTRES (1*4)
85#define CFRAME_SIZE (10*8) 85#define CFRAME_SIZE (10*8)
86#endif 86#endif
diff --git a/src/lj_target_x86.h b/src/lj_target_x86.h
index 83eba0ec..65f829ac 100644
--- a/src/lj_target_x86.h
+++ b/src/lj_target_x86.h
@@ -118,10 +118,10 @@ enum {
118*/ 118*/
119#if LJ_64 119#if LJ_64
120#ifdef _WIN64 120#ifdef _WIN64
121#define SPS_FIXED (5*2) 121#define SPS_FIXED (4*2)
122#define SPS_FIRST (4*2) /* Don't use callee register save area. */ 122#define SPS_FIRST (4*2) /* Don't use callee register save area. */
123#else 123#else
124#define SPS_FIXED 2 124#define SPS_FIXED 4
125#define SPS_FIRST 2 125#define SPS_FIRST 2
126#endif 126#endif
127#else 127#else