summaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/buildvm_x64win.h1774
1 files changed, 896 insertions, 878 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 362d993f..b0c90b81 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[13501] = { 15static const unsigned char build_actionlist[13802] = {
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,
@@ -98,142 +98,143 @@ static const unsigned char build_actionlist[13501] = {
98 55,139,114,252,252,137,68,36,84,137,106,252,252,139,42,137,106,252,248,131, 98 55,139,114,252,252,137,68,36,84,137,106,252,252,139,42,137,106,252,248,131,
99 232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,105,252,252,139, 99 232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,105,252,252,139,
100 41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,84,252,233,244, 100 41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,84,252,233,244,
101 56,248,57,129,252,248,239,15,130,244,55,139,106,4,184,237,252,247,213,57, 101 56,248,57,129,252,248,239,15,130,244,55,139,106,4,137,252,233,193,252,249,
102 232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,139,106,252,248,139, 102 15,131,252,249,252,254,15,132,244,249,255,184,237,252,247,213,57,232,255,
103 15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,106,252,248,139,
103 132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,233, 104 132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,
104 244,58,248,59,129,252,248,239,15,130,244,55,139,106,4,139,114,252,252,129, 105 244,58,248,3,184,237,252,233,244,2,248,59,129,252,248,239,15,130,244,55,139,
105 252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199, 106 106,4,139,114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,
106 66,252,252,237,15,132,244,58,139,131,233,199,66,252,252,237,137,106,252,248, 107 233,248,2,133,252,237,199,66,252,252,237,255,15,132,244,58,139,131,233,199,
107 139,141,233,255,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15, 108 66,252,252,237,137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233,
108 133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244, 109 248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,
109 3,252,233,244,58,248,5,139,105,4,129,252,253,239,15,132,244,58,255,139,1, 110 137,233,133,201,15,133,244,3,255,252,233,244,58,248,5,139,105,4,129,252,253,
110 137,106,252,252,137,66,252,248,252,233,244,58,248,6,129,252,253,239,15,132, 111 239,15,132,244,58,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248,
111 244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,253, 112 6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,
112 171,233,252,233,244,2,248,60,129,252,248,239,15,130,244,55,129,122,253,4, 113 7,252,247,213,139,172,253,171,233,252,233,244,2,248,60,255,129,252,248,239,
113 239,15,133,244,55,255,139,42,131,189,233,0,15,133,244,55,129,122,253,12,239, 114 15,130,244,55,129,122,253,4,239,15,133,244,55,139,42,131,189,233,0,15,133,
114 15,133,244,55,139,66,8,137,133,233,139,114,252,252,199,66,252,252,237,137, 115 244,55,129,122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,114,252,
115 106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,233, 116 252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247,
116 137,171,233,137,133,233,248,1,252,233,244,58,248,61,255,129,252,248,239,15, 117 128,165,233,235,255,139,131,233,137,171,233,137,133,233,248,1,252,233,244,
117 130,244,55,129,122,253,4,239,15,133,244,55,137,213,68,141,66,8,139,18,139, 118 58,248,61,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
118 76,36,96,232,251,1,9,137,252,234,139,40,139,64,4,139,114,252,252,137,106, 119 213,68,141,66,8,139,18,139,76,36,96,232,251,1,9,137,252,234,139,40,139,64,
119 252,248,137,66,252,252,252,233,244,58,248,62,129,252,248,239,15,133,244,55, 120 4,139,114,252,252,137,106,252,248,137,66,252,252,252,233,244,58,248,62,129,
120 129,122,253,4,239,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221, 121 252,248,239,15,133,244,55,129,122,253,4,239,255,15,135,244,55,255,252,242,
121 2,252,233,244,64,255,248,65,129,252,248,239,15,130,244,55,139,114,252,252, 122 15,16,2,252,233,244,63,255,221,2,252,233,244,64,255,248,65,129,252,248,239,
122 129,122,253,4,239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252, 123 15,130,244,55,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2,248,
123 248,252,233,244,58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15, 124 2,199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,129,122,253,4,239,
124 133,244,55,139,171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139, 125 15,135,244,55,131,187,233,0,15,133,244,55,139,171,233,59,171,233,255,15,130,
125 108,36,96,137,149,233,137,116,36,100,137,252,233,232,251,1,10,139,149,233, 126 244,247,232,244,66,248,1,139,108,36,96,137,149,233,137,116,36,100,137,252,
126 252,233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129, 127 233,232,251,1,10,139,149,233,252,233,244,2,248,67,129,252,248,239,15,130,
127 122,253,4,239,15,133,244,55,139,108,36,96,137,149,233,255,139,114,252,252, 128 244,55,15,132,244,248,248,1,129,122,253,4,239,15,133,244,55,139,108,36,96,
128 68,141,66,8,139,18,137,252,233,137,116,36,100,232,251,1,11,139,149,233,133, 129 137,149,233,255,139,114,252,252,68,141,66,8,139,18,137,252,233,137,116,36,
129 192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139, 130 100,232,251,1,11,139,149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,
130 106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199, 131 106,252,248,137,66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,
131 66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129, 132 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,
132 252,248,239,15,130,244,55,139,106,252,248,129,122,253,4,239,255,15,133,244, 133 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,139,106,252,248,129,
133 55,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,12, 134 122,253,4,239,255,15,133,244,55,139,133,233,139,114,252,252,199,66,252,252,
134 237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253, 135 237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,
135 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,252,252,255, 136 239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,
136 252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252, 137 244,55,139,114,252,252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,
137 242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248, 138 205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,
138 193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4, 139 42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,
139 137,42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252, 140 15,132,244,72,139,40,139,64,4,137,42,137,66,4,252,233,244,68,248,2,131,189,
140 233,137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72, 141 233,0,15,132,244,72,137,252,233,137,213,137,194,232,251,1,12,137,252,234,
141 184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,106,252, 142 133,192,15,133,244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248,
142 248,129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199,66,252, 143 239,15,130,244,55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133,
143 252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221, 144 233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,
144 90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141, 145 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,
145 74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,1,252, 146 252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,
146 238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239, 147 193,252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,
147 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,8,137, 148 15,130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,
148 106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,248, 149 66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,
149 239,15,130,244,55,139,42,139,114,252,252,137,116,36,100,137,108,36,80,129, 150 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137,
150 122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235, 151 116,36,100,137,108,36,80,129,122,253,4,239,15,133,244,55,72,131,189,233,0,
151 15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248, 152 15,133,244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,
152 1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,96, 153 59,141,233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244,
153 137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,206,15, 154 55,137,181,233,139,108,36,96,137,149,233,131,194,8,137,149,233,141,108,194,
154 132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131, 155 232,72,41,252,245,57,206,15,132,244,249,248,2,139,68,46,4,137,70,252,252,
156 139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,202,139,
157 76,36,80,232,244,24,199,131,233,237,255,139,108,36,96,139,116,36,80,139,149,
158 233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,
159 233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,
160 135,244,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,
161 193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,
162 116,36,100,137,68,36,84,72,199,193,252,248,252,255,252,255,252,255,252,247,
163 198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,142,
164 233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,
165 244,7,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,251,1,0,
166 139,149,233,252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,252,
167 252,137,116,36,100,137,108,36,80,72,131,189,233,0,15,133,244,55,255,128,189,
168 233,235,15,135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,
169 248,1,141,116,193,252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,
170 96,137,149,233,137,149,233,141,108,194,252,240,72,41,252,245,57,206,15,132,
171 244,249,248,2,255,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,
155 252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131, 172 252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131,
156 233,237,255,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135, 173 233,237,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,244,
157 244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132, 174 254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,
158 244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,72,41,205, 175 252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,72,41,205,
159 248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244, 176 248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,
160 5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,100,137,68,36,84,72, 177 5,248,6,141,70,1,248,7,139,116,36,100,137,68,36,84,49,201,252,247,198,237,
161 199,193,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,13, 178 15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,
162 252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,142, 179 9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,
163 233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,76,36,80, 180 252,233,244,4,248,78,139,108,36,96,72,252,247,133,233,237,15,132,244,55,255,
164 137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4, 181 137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,235,
165 248,77,139,106,252,248,139,173,233,139,114,252,252,137,116,36,100,137,108, 182 136,133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248,252,
166 36,80,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139, 183 233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
167 141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248, 184 244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,63,
168 59,181,233,15,135,244,55,137,181,233,139,108,36,96,137,149,233,137,149,233, 185 139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,239,15,130,
169 141,108,194,252,240,72,41,252,245,57,206,15,132,244,249,248,2,255,139,68, 186 244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,114,
170 46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244, 187 252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,84,248,56,252,
171 2,248,3,137,202,139,76,36,80,232,244,24,199,131,233,237,139,108,36,96,139, 188 247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,
172 116,36,80,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139, 189 253,72,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
173 190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238, 190 16,252,255,36,252,235,248,6,199,68,194,252,244,237,131,192,1,252,233,244,
174 3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139, 191 5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,14,255,248,
175 65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139, 192 80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
176 116,36,100,137,68,36,84,49,201,252,247,198,237,15,132,244,13,252,233,244, 193 15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122,253,4,
177 14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,76,36,80,137,185, 194 239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,
178 233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4,248,78,
179 139,108,36,96,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68,
180 194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233,
181 244,16,255,248,64,139,114,252,252,221,90,252,248,252,233,244,58,248,79,129,
182 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 195 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
183 72,184,237,237,102,72,15,110,200,15,84,193,248,63,139,114,252,252,252,242, 196 232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55,129,122,
184 15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239, 197 253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,
185 15,135,244,55,221,2,217,225,248,63,248,64,139,114,252,252,221,90,252,248, 198 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,
186 255,248,58,184,237,248,69,137,68,36,84,248,56,252,247,198,237,15,133,244, 199 244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
187 253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,72,252,247,209,141, 200 244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,15,130,
188 20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 201 244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,252,
189 248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252, 202 233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
190 248,252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15, 203 244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,239,
191 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63, 204 255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,
192 248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, 205 244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
193 242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244, 206 55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,244,
194 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244, 207 55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,91,
195 63,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 208 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,
196 55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55, 209 242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,
197 129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255, 210 253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,
198 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244, 211 217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,
199 84,252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4, 212 4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,
200 239,15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129, 213 201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,
201 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221, 214 253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,
202 2,217,252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129, 215 248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
203 122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252, 216 242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248,96,
204 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252, 217 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
205 233,244,64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15, 218 16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129,252,
206 135,244,55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130, 219 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,
207 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233, 220 137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129,252,
208 244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135, 221 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,
209 244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252, 222 106,252,248,252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248,239,
210 233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 223 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,
211 244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252, 224 233,252,233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122,253,
212 243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239, 225 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,
213 15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129, 226 243,252,233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,
214 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 227 15,135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,
215 255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252,248, 228 253,221,217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139,106,
216 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137, 229 4,129,252,253,239,15,135,244,55,139,114,252,252,139,2,137,106,252,252,137,
217 213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239,15, 230 66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,
218 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232, 231 244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,
219 251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239,15, 232 237,21,41,197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,139,
220 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248, 233 106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,
221 252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244, 234 252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,69,248,3,
222 55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252, 235 255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,
223 233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 236 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,15,
224 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252, 237 17,66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,248,
225 233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
226 244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,
227 217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,
228 253,239,15,135,244,55,139,114,252,252,139,2,137,106,252,252,137,66,252,248,
229 209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,
230 252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,
231 197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,139,106,252,
232 252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,
233 2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,
234 87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,
235 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,15,17,
236 66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,248,
237 255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252, 238 255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,
238 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255, 239 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,
239 248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 240 248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
@@ -359,316 +360,329 @@ static const unsigned char build_actionlist[13501] = {
359 235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,137,252, 360 235,15,132,244,251,248,1,255,139,108,36,96,137,149,233,137,252,242,137,252,
360 233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110, 361 233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,
361 252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139, 362 252,252,15,183,70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139,
362 77,232,137,76,36,84,252,233,244,4,248,140,255,204,255,248,141,137,116,36, 363 77,232,137,76,36,84,252,233,244,4,248,140,255,139,106,252,248,139,173,233,
363 100,255,248,142,255,137,116,36,100,131,206,1,248,1,255,141,68,194,252,248, 364 15,182,133,233,141,4,194,139,108,36,96,137,149,233,137,133,233,137,252,242,
364 139,108,36,96,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,21, 365 141,139,233,72,137,171,233,137,116,36,100,232,251,1,21,252,233,244,3,255,
365 199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,233,72,137,193,139, 366 248,141,137,116,36,100,255,248,142,255,137,116,36,100,131,206,1,248,1,255,
366 133,233,41,208,72,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229, 367 141,68,194,252,248,139,108,36,96,137,149,233,137,133,233,137,252,242,137,
367 248,143,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233, 368 252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,
368 0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 369 233,72,137,193,139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,3,
369 252,255,36,252,235,248,1,137,252,233,137,194,232,251,1,22,255,248,82,255, 370 131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,
370 217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247, 371 86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,
371 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 372 137,125,252,248,76,137,117,252,240,139,93,0,139,139,233,199,131,233,237,137,
372 248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 373 131,233,137,139,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,
373 15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242, 374 252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,
374 15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208, 375 15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,
375 252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 376 15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,
376 248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252, 377 117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,
377 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68, 378 252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,139,171,233,
378 36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102, 379 139,147,233,72,137,171,233,137,149,233,72,141,148,253,36,233,141,139,233,
379 72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 380 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,108,36,96,133,192,
380 85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102, 381 15,133,244,247,139,149,233,139,116,36,100,255,248,144,255,139,122,252,248,
381 72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40, 382 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
382 193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68, 383 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,1,137,252,233,
383 36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195, 384 137,194,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,
384 255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110, 385 102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,
385 216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15, 386 252,217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,
386 40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216, 387 208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,
387 252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40, 388 15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,
388 193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,237,237,102, 389 202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,
389 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,15,84,226,102, 390 242,15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,
390 15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227, 391 184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,
391 102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,196,1,102,15, 392 6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,
392 84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,195, 393 72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,
393 248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,252, 394 15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,
394 241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 395 102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,
395 68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255, 396 84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,
396 248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15, 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 132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217, 398 252,217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,
398 252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217, 399 208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,
399 248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15, 400 15,134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,
400 45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 401 72,184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
401 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 402 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
402 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 403 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
403 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 404 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
404 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 405 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
405 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, 406 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
406 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, 407 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
407 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, 408 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
408 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, 409 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
409 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, 410 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
410 36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192, 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 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 412 15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,
412 217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15, 413 217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,
413 110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237, 414 255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,
414 237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102, 415 15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,
415 15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224, 416 169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,
416 15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15, 417 209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,
417 80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15, 418 250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,
418 132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,132,244, 419 193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,
419 84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248, 420 15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,
420 2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132, 421 244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,
421 244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,252,233,244, 422 72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,
422 253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201, 423 255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,
423 217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233,244, 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 253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,236,217,201, 425 36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,252,233,217,201,217,
425 217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248,2,131, 426 252,240,217,232,222,193,217,252,253,221,217,221,92,36,8,252,242,15,16,68,
426 252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253,248, 427 36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,
427 1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139, 428 247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,
428 84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250, 429 194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,
429 3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,250,5,15,130, 430 193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,
430 244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,248,217,252, 431 255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,
431 237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131, 432 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,
432 252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,201,217,252,241, 433 131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,
433 195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244, 434 135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,8,221,68,36,8,
434 255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,9,204,248,154,255, 435 131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,252,233,244,
435 65,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248, 436 253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250,7,15,132,244,
436 1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244, 437 247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,
437 248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248, 438 217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,15,132,244,
438 5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244, 439 247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,
439 248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237, 440 255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,247,15,135,
440 102,72,15,110,200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252, 441 244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,
441 242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132, 442 36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,131,252,250,1,
442 244,247,217,252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217, 443 15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,217,
443 201,217,252,253,221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244, 444 252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244,149,131,252,250,
444 247,15,135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248, 445 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,
445 9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244, 446 217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,244,247,255,15,
446 247,15,135,244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3, 447 135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
447 15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131, 448 2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
448 252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135, 449 252,242,221,216,195,255,248,9,204,248,154,255,65,131,252,248,1,15,132,244,
449 244,248,255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248, 450 247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,
450 9,15,132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253, 451 2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,
451 221,217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252, 452 1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,148,15,132,244,
452 233,219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225, 453 107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,
453 223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221, 454 72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,
454 225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248, 455 193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,
455 155,137,200,86,72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91, 456 15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,
456 94,195,255,249,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4, 457 221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,
457 239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221, 458 233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,
458 4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224, 459 93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,
459 158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141, 460 36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,
460 180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 461 248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,
461 255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251, 462 201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,
462 129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4, 463 107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,
463 202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138, 464 1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,
464 244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248, 465 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,
465 2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108, 466 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
466 202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193, 467 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
467 15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132, 468 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
468 244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255, 469 244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,
469 252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,239,15,133, 470 162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,4,239,
470 244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244, 471 15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,
471 248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72, 472 131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,
472 252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253, 473 221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,
473 239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137, 474 255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,
474 44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15, 475 182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198,
475 182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,108,194,4,139,4,194, 476 4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,
476 137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 477 252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,
477 252,255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108, 478 248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,
478 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 479 252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,
479 255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237, 480 134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,
480 237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224, 481 244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,
481 221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192, 482 2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,
482 252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221, 483 49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,198,
483 28,202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252, 484 4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,
484 235,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251, 485 129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,
485 1,18,255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244, 486 202,255,221,4,202,221,4,199,255,72,252,247,208,131,198,4,57,68,202,4,255,
486 1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244, 487 139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,
487 46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220, 488 247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,
488 4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199, 489 253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
489 252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234, 490 36,252,235,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,
490 4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16, 491 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237,129,
491 4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15, 492 124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,
492 16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242, 493 198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,135,244,
493 15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252, 494 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,
494 242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255, 495 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,
495 252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199, 496 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,
496 255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252, 497 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,182,
497 234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220, 498 232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194,4,239,15,
498 12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234, 499 133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
499 220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199, 500 234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,
500 220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4, 501 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,
501 252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221, 502 15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,
502 4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255, 503 135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,
503 221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194, 504 220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,
504 255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255, 505 4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,
505 232,244,107,255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20, 506 4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,
506 194,65,137,192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,23,139,149, 507 4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,
507 233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252, 508 221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,
508 234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232, 509 255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,
509 131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,4,135,199, 510 199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,
510 68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 511 252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,
511 255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223, 512 15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,
512 70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221, 513 242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,
513 4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,204,15,182, 514 242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,
514 232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,141,68,194, 515 234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,
515 4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139, 516 252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,
516 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,106, 517 4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,
517 252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137, 518 16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156,
519 232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182,
520 192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205,
521 137,116,36,100,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,
522 252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,
518 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 523 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
519 255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12, 524 255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,
520 194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15, 525 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,252,242,
521 133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 526 15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,15,
522 36,252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 527 16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,247,208,
523 235,15,132,244,1,135,213,141,139,233,255,232,251,1,24,137,252,234,252,233, 528 137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
524 244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 529 252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,
525 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 530 41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,
526 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246, 531 232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,173,
527 129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139, 532 233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,
528 233,232,251,1,24,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, 533 131,198,4,193,232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,141,
529 15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 534 233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,
530 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137, 535 132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,
531 65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 536 182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,
532 255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149, 537 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,
533 233,141,20,202,137,252,233,232,251,1,25,139,149,233,248,1,139,6,15,182,204, 538 255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,
534 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139, 539 248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,
535 108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36, 540 133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
536 100,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237, 541 232,16,252,255,36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,
537 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139, 542 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252,
538 76,36,96,137,145,233,248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252, 543 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,
539 255,7,0,0,15,132,244,249,248,2,137,194,139,131,233,137,205,59,131,233,137, 544 233,139,141,233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,
540 116,36,100,15,131,244,251,232,251,1,27,139,149,233,15,182,78,252,253,137, 545 252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,
541 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 546 232,131,198,4,193,232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,
542 255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,232,251,1,28,15,183, 547 36,96,131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,
543 70,252,254,137,252,233,252,233,244,1,255,72,252,247,208,139,108,36,96,139, 548 251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
544 139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,20, 549 16,252,255,36,252,235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,
545 135,137,252,233,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199, 550 66,252,248,139,20,135,137,252,233,137,116,36,100,232,251,1,28,139,149,233,
546 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 551 15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,
547 252,235,248,3,137,252,233,232,251,1,28,15,183,70,252,254,72,252,247,208,252, 552 131,198,4,193,232,16,252,255,36,252,235,255,139,76,36,96,137,145,233,248,
548 233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, 553 1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,249,
549 244,157,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233, 554 248,2,137,194,139,131,233,137,205,59,131,233,137,116,36,100,15,131,244,251,
550 244,158,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244, 555 232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,
551 36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16, 556 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,
552 4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36, 557 1,8,0,0,252,233,244,2,248,5,232,251,1,30,15,183,70,252,254,137,252,233,252,
553 59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244, 558 233,244,1,255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,
554 248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182, 559 139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,
555 232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244, 560 31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
556 1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233, 561 204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,
557 244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244, 562 232,251,1,30,15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,
558 157,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252, 563 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247,
559 234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105, 564 208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,
560 201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133, 565 236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,
561 244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73, 566 124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,
562 4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4, 567 252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,
563 193,232,16,252,255,36,252,235,248,3,15,182,70,252,253,185,237,252,233,244, 568 193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,
564 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132, 569 4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
565 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236, 570 252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,
566 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133, 571 233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,255,129,124,253,
567 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248, 572 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,
568 1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131, 573 192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
569 198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,1,139, 574 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
570 141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129, 575 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
571 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239, 576 132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,
572 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133, 577 194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
573 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 578 248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,
574 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 579 133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,
575 232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244, 580 244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
576 1,139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252, 581 239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,
577 233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244, 582 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,
578 158,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252, 583 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
579 253,252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135, 584 235,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,
580 129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233, 585 244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
581 35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133, 586 39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,
582 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2, 587 59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
583 255,252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,
584 4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
585 16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,2,137,76,36,80,139,141,
586 233,252,246,129,233,235,15,132,244,37,139,76,36,80,252,233,244,2,248,5,139,
587 137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,
588 129,233,235,15,132,244,37,248,6,137,68,36,80,199,68,36,84,237,137,108,36,
589 32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,234,137,205,137,116,36,
590 100,232,251,1,30,139,149,233,139,108,36,32,137,193,252,233,244,2,248,7,128,
591 165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,182,
592 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,
593 59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
594 249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202, 588 249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,
595 137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 589 137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
596 36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233, 590 36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,
597 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139, 591 235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,
598 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124, 592 239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,
599 36,80,255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244, 593 233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,
600 253,248,2,139,68,36,84,255,252,242,15,45,252,248,255,131,232,1,15,132,244, 594 236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,
601 250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,233,248, 595 244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,
602 3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15,133, 596 233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,
603 244,3,248,4,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 597 251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,
604 252,255,36,252,235,248,5,139,76,36,96,137,145,233,137,252,234,65,137,192, 598 244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,
605 137,205,137,116,36,100,232,251,1,31,139,149,233,15,182,78,252,253,252,233, 599 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,
606 244,1,248,7,128,165,233,235,139,131,233,137,171,233,255,137,133,233,252,233, 600 189,233,0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,
607 244,2,255,3,68,36,84,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141, 601 244,37,139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,
608 84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131, 602 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,
609 198,4,252,255,36,252,235,255,141,76,202,8,137,215,139,105,252,248,129,121, 603 248,6,137,68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,
610 253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237,15,133, 604 76,141,68,36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149,233,
611 244,253,248,1,137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2, 605 139,108,36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,
612 139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244, 606 171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
613 2,139,106,252,248,248,3,139,68,36,84,128,189,233,1,15,135,244,251,248,4,139, 607 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,
614 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248, 608 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,
615 5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,72,252,247,209,141,12, 609 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,
616 202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,244, 610 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,131,189,233,0,15,
617 1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,141, 611 132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,
618 76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65, 612 253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,
619 252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65, 613 15,182,78,252,253,252,233,244,2,255,137,124,36,80,255,248,1,141,12,202,139,
620 252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139, 614 105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,84,255,252,
615 242,15,45,252,248,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,
616 244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,
617 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,
618 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,
619 76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,
620 1,33,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
621 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,84,255,129,
622 124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,
621 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255, 623 181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,
622 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124, 624 141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,
623 36,80,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108, 625 248,52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,
624 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252, 626 137,68,36,84,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,
625 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130, 627 4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,
626 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124, 628 36,84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,
627 36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 629 15,182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,
628 248,5,199,68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193, 630 244,4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,191,
629 252,237,3,131,197,1,137,108,36,84,139,108,36,96,1,200,59,133,233,15,135,244, 631 233,139,191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,
630 253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193, 632 137,215,139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,
631 8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116, 633 252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,
632 36,100,41,215,139,84,36,84,131,252,234,1,137,252,233,232,251,1,0,139,149, 634 139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,
633 233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252, 635 237,15,133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,
634 137,68,36,84,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,1, 636 15,182,205,131,198,4,252,255,36,252,235,255,15,182,252,236,139,66,252,248,
635 15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252, 637 141,12,202,139,128,233,15,182,128,233,137,124,36,80,141,188,253,194,233,43,
636 131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,248, 638 122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,
637 5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106, 639 131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,
638 252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252, 640 131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,
639 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204, 641 131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,
640 15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252, 642 182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,
641 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248, 643 0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,
642 7,15,139,244,14,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245, 644 108,36,84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,139,71,252,
643 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,12, 645 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,
644 202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53, 646 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,
645 255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252, 647 36,84,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,
646 242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136, 648 252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,
647 244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255, 649 198,237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,
648 221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247, 650 139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,
649 255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255, 651 1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,248,5,57,197,15,135,
650 15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252, 652 244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,
651 254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46, 653 5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,
652 193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247, 654 202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,
653 255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,134, 655 198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,
654 233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,139, 656 8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,
655 128,233,139,108,36,96,137,147,233,137,171,233,252,255,224,255,141,180,253, 657 14,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,209,252,237,129,
656 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235, 658 229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,
657 255,139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,23,15,182, 659 253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,
658 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255, 660 129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,
659 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2, 661 252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,
660 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252, 662 244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,
661 248,139,108,36,96,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15, 663 220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,
662 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244, 664 244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,141,180,
663 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 665 253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,
664 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204, 666 244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,
665 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237, 667 12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,
666 131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72, 668 137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,
667 139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141, 669 137,65,252,248,255,139,139,233,139,4,193,72,139,128,233,139,108,36,96,137,
668 233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,233,255,15,135, 670 147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,
669 244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,233, 671 15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,190,233,139,108,
670 237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,233, 672 36,96,141,12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244,
671 244,12,255,254,0 673 249,248,2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,
674 237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,
675 194,139,122,252,248,137,104,252,252,137,120,252,248,139,108,36,96,141,12,
676 200,59,141,233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,
677 132,244,248,248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,
678 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
679 244,1,248,2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,
680 16,252,255,36,252,235,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,
681 244,3,252,233,244,2,255,139,106,252,248,72,139,189,233,139,108,36,96,141,
682 68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,252,
683 233,255,72,137,252,250,137,252,233,255,15,135,244,21,199,131,233,237,255,
684 252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,141,12,194,
685 252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
672}; 686};
673 687
674enum { 688enum {
@@ -997,7 +1011,9 @@ static const char *const extnames[] = {
997 "lj_tab_len@4", 1011 "lj_tab_len@4",
998 "lj_gc_step@4", 1012 "lj_gc_step@4",
999 "lj_dispatch_ins@8", 1013 "lj_dispatch_ins@8",
1014 "lj_trace_hot@8",
1000 "lj_dispatch_call@8", 1015 "lj_dispatch_call@8",
1016 "lj_trace_exit@8",
1001 "lj_err_throw@8", 1017 "lj_err_throw@8",
1002 "lj_meta_cat", 1018 "lj_meta_cat",
1003 "lj_gc_barrieruv@8", 1019 "lj_gc_barrieruv@8",
@@ -1055,353 +1071,355 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1055 dasm_put(Dst, 1264, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1071 dasm_put(Dst, 1264, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1056 dasm_put(Dst, 1364, Dt1(->base), Dt1(->base), FRAME_CONT); 1072 dasm_put(Dst, 1364, Dt1(->base), Dt1(->base), FRAME_CONT);
1057 dasm_put(Dst, 1489, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1073 dasm_put(Dst, 1489, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1058 dasm_put(Dst, 1667, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1074 dasm_put(Dst, 1667, 1+1, LJ_TISTRUECOND, 1+1);
1075 dasm_put(Dst, 1778, ~LJ_TNUMX);
1059 if (cmov) { 1076 if (cmov) {
1060 dasm_put(Dst, 1769); 1077 dasm_put(Dst, 1786);
1061 } else { 1078 } else {
1062 dasm_put(Dst, 1773); 1079 dasm_put(Dst, 1790);
1063 } 1080 }
1064 dasm_put(Dst, 1782, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1081 dasm_put(Dst, 1799, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL);
1065 dasm_put(Dst, 1870, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1082 dasm_put(Dst, 1878, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next));
1066 dasm_put(Dst, 1925, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1083 dasm_put(Dst, 1935, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]));
1067 dasm_put(Dst, 1993, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1084 dasm_put(Dst, 2003, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK));
1068 dasm_put(Dst, 2062, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1085 dasm_put(Dst, 2072, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1086 dasm_put(Dst, 2162);
1069 if (sse) { 1087 if (sse) {
1070 dasm_put(Dst, 2139); 1088 dasm_put(Dst, 2167);
1071 } else { 1089 } else {
1072 dasm_put(Dst, 2149); 1090 dasm_put(Dst, 2177);
1073 } 1091 }
1074 dasm_put(Dst, 2156, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1092 dasm_put(Dst, 2184, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1075 dasm_put(Dst, 2222, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1093 dasm_put(Dst, 2250, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1076 dasm_put(Dst, 2289, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1094 dasm_put(Dst, 2317, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1077 dasm_put(Dst, 2393, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1095 dasm_put(Dst, 2421, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1078 if (sse) { 1096 if (sse) {
1079 dasm_put(Dst, 2456, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1097 dasm_put(Dst, 2484, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1080 } else { 1098 } else {
1081 } 1099 }
1082 dasm_put(Dst, 2489, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1100 dasm_put(Dst, 2517, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1083 dasm_put(Dst, 2570, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1101 dasm_put(Dst, 2598, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1084 if (sse) { 1102 if (sse) {
1085 dasm_put(Dst, 2608); 1103 dasm_put(Dst, 2636);
1086 } else { 1104 } else {
1087 dasm_put(Dst, 2618); 1105 dasm_put(Dst, 2646);
1088 } 1106 }
1089 dasm_put(Dst, 2625, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1107 dasm_put(Dst, 2653, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1090 dasm_put(Dst, 2689, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1108 dasm_put(Dst, 2717, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1091 dasm_put(Dst, 2779, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1109 dasm_put(Dst, 2807, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1092 dasm_put(Dst, 2873, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1110 dasm_put(Dst, 2901, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1093 dasm_put(Dst, 2991, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1111 dasm_put(Dst, 3019, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1094 dasm_put(Dst, 3089, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1112 dasm_put(Dst, 3117, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1095 dasm_put(Dst, 3156, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1113 dasm_put(Dst, 3184, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1096 dasm_put(Dst, 3250, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1114 dasm_put(Dst, 3278, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1097 dasm_put(Dst, 3363, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1115 dasm_put(Dst, 3391, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1098 if (sse) { 1116 if (sse) {
1099 dasm_put(Dst, 3390, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1117 dasm_put(Dst, 3418, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1100 } else { 1118 } else {
1101 dasm_put(Dst, 3454, 1+1, LJ_TISNUM); 1119 dasm_put(Dst, 3482, 1+1, LJ_TISNUM);
1102 } 1120 }
1103 dasm_put(Dst, 3490, 1+1, FRAME_TYPE, LJ_TNIL); 1121 dasm_put(Dst, 3518, 1+1, FRAME_TYPE, LJ_TNIL);
1104 if (sse) { 1122 if (sse) {
1105 dasm_put(Dst, 3584, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1123 dasm_put(Dst, 3612, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1106 dasm_put(Dst, 3646, 1+1, LJ_TISNUM); 1124 dasm_put(Dst, 3674, 1+1, LJ_TISNUM);
1107 } else { 1125 } else {
1108 dasm_put(Dst, 3676, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1126 dasm_put(Dst, 3704, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1109 dasm_put(Dst, 3735, 1+1, LJ_TISNUM); 1127 dasm_put(Dst, 3763, 1+1, LJ_TISNUM);
1110 } 1128 }
1111 dasm_put(Dst, 3762, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1129 dasm_put(Dst, 3790, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1112 dasm_put(Dst, 3831, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1130 dasm_put(Dst, 3859, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1113 dasm_put(Dst, 3888, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1131 dasm_put(Dst, 3916, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1114 dasm_put(Dst, 3951, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1132 dasm_put(Dst, 3979, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1115 dasm_put(Dst, 4041); 1133 dasm_put(Dst, 4069);
1116 if (sse) { 1134 if (sse) {
1117 dasm_put(Dst, 4053, 1+1, LJ_TISNUM); 1135 dasm_put(Dst, 4081, 1+1, LJ_TISNUM);
1118 } else { 1136 } else {
1119 } 1137 }
1120 dasm_put(Dst, 4078); 1138 dasm_put(Dst, 4106);
1121 if (sse) { 1139 if (sse) {
1122 dasm_put(Dst, 4092, 1+1, LJ_TISNUM); 1140 dasm_put(Dst, 4120, 1+1, LJ_TISNUM);
1123 } else { 1141 } else {
1124 } 1142 }
1125 dasm_put(Dst, 4117); 1143 dasm_put(Dst, 4145);
1126 if (sse) { 1144 if (sse) {
1127 dasm_put(Dst, 4131, 1+1, LJ_TISNUM); 1145 dasm_put(Dst, 4159, 1+1, LJ_TISNUM);
1128 } else { 1146 } else {
1129 } 1147 }
1130 dasm_put(Dst, 4156); 1148 dasm_put(Dst, 4184);
1131 if (sse) { 1149 if (sse) {
1132 dasm_put(Dst, 4172, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1150 dasm_put(Dst, 4200, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1133 } else { 1151 } else {
1134 dasm_put(Dst, 4211, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1152 dasm_put(Dst, 4239, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1135 } 1153 }
1136 dasm_put(Dst, 4244, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1154 dasm_put(Dst, 4272, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1137 dasm_put(Dst, 4309, 1+1, LJ_TISNUM); 1155 dasm_put(Dst, 4337, 1+1, LJ_TISNUM);
1138 if (sse) { 1156 if (sse) {
1139 dasm_put(Dst, 4408); 1157 dasm_put(Dst, 4436);
1140 } else { 1158 } else {
1141 dasm_put(Dst, 4414); 1159 dasm_put(Dst, 4442);
1142 } 1160 }
1143 dasm_put(Dst, 4423); 1161 dasm_put(Dst, 4451);
1144 if (sse) { 1162 if (sse) {
1145 dasm_put(Dst, 4448); 1163 dasm_put(Dst, 4476);
1146 } else { 1164 } else {
1147 dasm_put(Dst, 4454); 1165 dasm_put(Dst, 4482);
1148 } 1166 }
1149 dasm_put(Dst, 4457, 1+2); 1167 dasm_put(Dst, 4485, 1+2);
1150 if (sse) { 1168 if (sse) {
1151 dasm_put(Dst, 4466); 1169 dasm_put(Dst, 4494);
1152 } else { 1170 } else {
1153 dasm_put(Dst, 4474); 1171 dasm_put(Dst, 4502);
1154 } 1172 }
1155 dasm_put(Dst, 4482); 1173 dasm_put(Dst, 4510);
1156 if (sse) { 1174 if (sse) {
1157 dasm_put(Dst, 4485, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1175 dasm_put(Dst, 4513, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1158 } else { 1176 } else {
1159 dasm_put(Dst, 4512); 1177 dasm_put(Dst, 4540);
1160 } 1178 }
1161 dasm_put(Dst, 4531); 1179 dasm_put(Dst, 4559);
1162 if (sse) { 1180 if (sse) {
1163 dasm_put(Dst, 4547, 1+1, LJ_TISNUM); 1181 dasm_put(Dst, 4575, 1+1, LJ_TISNUM);
1164 } else { 1182 } else {
1165 dasm_put(Dst, 4572, 1+1, LJ_TISNUM); 1183 dasm_put(Dst, 4600, 1+1, LJ_TISNUM);
1166 } 1184 }
1167 dasm_put(Dst, 4594); 1185 dasm_put(Dst, 4622);
1168 if (sse) { 1186 if (sse) {
1169 dasm_put(Dst, 4616); 1187 dasm_put(Dst, 4644);
1170 } else { 1188 } else {
1171 dasm_put(Dst, 4642); 1189 dasm_put(Dst, 4670);
1172 } 1190 }
1173 dasm_put(Dst, 4659, 1+2); 1191 dasm_put(Dst, 4687, 1+2);
1174 if (sse) { 1192 if (sse) {
1175 dasm_put(Dst, 4699); 1193 dasm_put(Dst, 4727);
1176 } else { 1194 } else {
1177 dasm_put(Dst, 4707); 1195 dasm_put(Dst, 4735);
1178 } 1196 }
1179 dasm_put(Dst, 4717, 2+1, LJ_TISNUM, LJ_TISNUM); 1197 dasm_put(Dst, 4745, 2+1, LJ_TISNUM, LJ_TISNUM);
1180 if (sse) { 1198 if (sse) {
1181 dasm_put(Dst, 4769, 1+1, LJ_TISNUM, LJ_TISNUM); 1199 dasm_put(Dst, 4797, 1+1, LJ_TISNUM, LJ_TISNUM);
1182 } else { 1200 } else {
1183 dasm_put(Dst, 4816, 2+1, LJ_TISNUM, LJ_TISNUM); 1201 dasm_put(Dst, 4844, 2+1, LJ_TISNUM, LJ_TISNUM);
1184 } 1202 }
1185 if (sse) { 1203 if (sse) {
1186 dasm_put(Dst, 4857, 1+1, LJ_TISNUM, LJ_TISNUM); 1204 dasm_put(Dst, 4885, 1+1, LJ_TISNUM, LJ_TISNUM);
1187 } else { 1205 } else {
1188 } 1206 }
1189 if (sse) { 1207 if (sse) {
1190 dasm_put(Dst, 4928, 1+1, LJ_TISNUM, LJ_TISNUM); 1208 dasm_put(Dst, 4956, 1+1, LJ_TISNUM, LJ_TISNUM);
1191 } else { 1209 } else {
1192 } 1210 }
1193 if (!sse) { 1211 if (!sse) {
1194 dasm_put(Dst, 4999); 1212 dasm_put(Dst, 5027);
1195 } 1213 }
1196 dasm_put(Dst, 5008, 1+1, LJ_TSTR); 1214 dasm_put(Dst, 5036, 1+1, LJ_TSTR);
1197 if (sse) { 1215 if (sse) {
1198 dasm_put(Dst, 5030, Dt5(->len)); 1216 dasm_put(Dst, 5058, Dt5(->len));
1199 } else { 1217 } else {
1200 dasm_put(Dst, 5041, Dt5(->len)); 1218 dasm_put(Dst, 5069, Dt5(->len));
1201 } 1219 }
1202 dasm_put(Dst, 5049, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1220 dasm_put(Dst, 5077, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1203 if (sse) { 1221 if (sse) {
1204 dasm_put(Dst, 5087); 1222 dasm_put(Dst, 5115);
1205 } else { 1223 } else {
1206 dasm_put(Dst, 5097); 1224 dasm_put(Dst, 5125);
1207 } 1225 }
1208 dasm_put(Dst, 5110, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1226 dasm_put(Dst, 5138, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1209 if (sse) { 1227 if (sse) {
1210 dasm_put(Dst, 5145); 1228 dasm_put(Dst, 5173);
1211 } else { 1229 } else {
1212 dasm_put(Dst, 5165); 1230 dasm_put(Dst, 5193);
1213 } 1231 }
1214 dasm_put(Dst, 5185, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1232 dasm_put(Dst, 5213, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1215 dasm_put(Dst, 2134); 1233 dasm_put(Dst, 2162);
1216 if (sse) { 1234 if (sse) {
1217 dasm_put(Dst, 5293); 1235 dasm_put(Dst, 5321);
1218 } else { 1236 } else {
1219 dasm_put(Dst, 5304); 1237 dasm_put(Dst, 5332);
1220 } 1238 }
1221 dasm_put(Dst, 5312, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1239 dasm_put(Dst, 5340, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1222 if (sse) { 1240 if (sse) {
1223 dasm_put(Dst, 5342); 1241 dasm_put(Dst, 5370);
1224 } else { 1242 } else {
1225 } 1243 }
1226 dasm_put(Dst, 5349, sizeof(GCstr)-1); 1244 dasm_put(Dst, 5377, sizeof(GCstr)-1);
1227 dasm_put(Dst, 5424, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1245 dasm_put(Dst, 5452, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1228 dasm_put(Dst, 5483, LJ_TSTR, LJ_TISNUM); 1246 dasm_put(Dst, 5511, LJ_TSTR, LJ_TISNUM);
1229 if (sse) { 1247 if (sse) {
1230 dasm_put(Dst, 5504); 1248 dasm_put(Dst, 5532);
1231 } else { 1249 } else {
1232 dasm_put(Dst, 5511); 1250 dasm_put(Dst, 5539);
1233 } 1251 }
1234 dasm_put(Dst, 5523, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1252 dasm_put(Dst, 5551, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1235 dasm_put(Dst, 5588, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1253 dasm_put(Dst, 5616, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1236 dasm_put(Dst, 5651, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1254 dasm_put(Dst, 5679, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1237 dasm_put(Dst, 5722, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1255 dasm_put(Dst, 5750, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1238 dasm_put(Dst, 5807, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1256 dasm_put(Dst, 5835, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1239 dasm_put(Dst, 5877, 1+1, LJ_TTAB); 1257 dasm_put(Dst, 5905, 1+1, LJ_TTAB);
1240 if (sse) { 1258 if (sse) {
1241 dasm_put(Dst, 5945); 1259 dasm_put(Dst, 5973);
1242 } else { 1260 } else {
1243 } 1261 }
1244 if (sse) { 1262 if (sse) {
1245 dasm_put(Dst, 5955, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1263 dasm_put(Dst, 5983, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1246 } else { 1264 } else {
1247 } 1265 }
1248 if (sse) { 1266 if (sse) {
1249 dasm_put(Dst, 6007, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1267 dasm_put(Dst, 6035, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1250 } else { 1268 } else {
1251 } 1269 }
1252 dasm_put(Dst, 6050, LJ_TISNUM); 1270 dasm_put(Dst, 6078, LJ_TISNUM);
1253 if (sse) { 1271 if (sse) {
1254 dasm_put(Dst, 6077); 1272 dasm_put(Dst, 6105);
1255 } else { 1273 } else {
1256 } 1274 }
1257 dasm_put(Dst, 6094); 1275 dasm_put(Dst, 6122);
1258 if (sse) { 1276 if (sse) {
1259 dasm_put(Dst, 6102, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1277 dasm_put(Dst, 6130, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1260 } else { 1278 } else {
1261 } 1279 }
1262 dasm_put(Dst, 6050, LJ_TISNUM); 1280 dasm_put(Dst, 6078, LJ_TISNUM);
1263 if (sse) { 1281 if (sse) {
1264 dasm_put(Dst, 6145); 1282 dasm_put(Dst, 6173);
1265 } else { 1283 } else {
1266 } 1284 }
1267 dasm_put(Dst, 6094); 1285 dasm_put(Dst, 6122);
1268 if (sse) { 1286 if (sse) {
1269 dasm_put(Dst, 6162, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1287 dasm_put(Dst, 6190, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1270 } else { 1288 } else {
1271 } 1289 }
1272 dasm_put(Dst, 6050, LJ_TISNUM); 1290 dasm_put(Dst, 6078, LJ_TISNUM);
1273 if (sse) { 1291 if (sse) {
1274 dasm_put(Dst, 6205); 1292 dasm_put(Dst, 6233);
1275 } else { 1293 } else {
1276 } 1294 }
1277 dasm_put(Dst, 6094); 1295 dasm_put(Dst, 6122);
1278 if (sse) { 1296 if (sse) {
1279 dasm_put(Dst, 6222, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1297 dasm_put(Dst, 6250, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1280 } else { 1298 } else {
1281 } 1299 }
1282 dasm_put(Dst, 6265); 1300 dasm_put(Dst, 6293);
1283 if (sse) { 1301 if (sse) {
1284 dasm_put(Dst, 6272, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1302 dasm_put(Dst, 6300, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1285 } else { 1303 } else {
1286 } 1304 }
1287 dasm_put(Dst, 6315); 1305 dasm_put(Dst, 6343);
1288 if (sse) { 1306 if (sse) {
1289 dasm_put(Dst, 6319); 1307 dasm_put(Dst, 6347);
1290 } else { 1308 } else {
1291 } 1309 }
1292 dasm_put(Dst, 6331); 1310 dasm_put(Dst, 6359);
1293 if (sse) { 1311 if (sse) {
1294 dasm_put(Dst, 6342, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1312 dasm_put(Dst, 6370, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1295 } else { 1313 } else {
1296 } 1314 }
1297 dasm_put(Dst, 6411); 1315 dasm_put(Dst, 6439);
1298 if (sse) { 1316 if (sse) {
1299 dasm_put(Dst, 6420, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1317 dasm_put(Dst, 6448, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1300 } else { 1318 } else {
1301 } 1319 }
1302 dasm_put(Dst, 6489); 1320 dasm_put(Dst, 6517);
1303 if (sse) { 1321 if (sse) {
1304 dasm_put(Dst, 6499, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1322 dasm_put(Dst, 6527, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1305 } else { 1323 } else {
1306 } 1324 }
1307 dasm_put(Dst, 6568); 1325 dasm_put(Dst, 6596);
1308 if (sse) { 1326 if (sse) {
1309 dasm_put(Dst, 6578, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1327 dasm_put(Dst, 6606, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1310 } else { 1328 } else {
1311 } 1329 }
1312 dasm_put(Dst, 6647); 1330 dasm_put(Dst, 6675);
1313 if (sse) { 1331 if (sse) {
1314 dasm_put(Dst, 6656, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1332 dasm_put(Dst, 6684, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1315 } else { 1333 } else {
1316 } 1334 }
1317 dasm_put(Dst, 6725, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1335 dasm_put(Dst, 6753, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1318 dasm_put(Dst, 6803, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1336 dasm_put(Dst, 6831, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1319 dasm_put(Dst, 6929, Dt1(->top), Dt1(->base), Dt1(->top)); 1337 dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top));
1320#if LJ_HASJIT 1338#if LJ_HASJIT
1321 dasm_put(Dst, 6968, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1339 dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1322#endif 1340#endif
1323 dasm_put(Dst, 6999, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1341 dasm_put(Dst, 7027, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1324 dasm_put(Dst, 7050, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1342 dasm_put(Dst, 7078, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1325#if LJ_HASJIT 1343#if LJ_HASJIT
1326 dasm_put(Dst, 7117); 1344 dasm_put(Dst, 7145, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1327#endif 1345#endif
1328 dasm_put(Dst, 7119); 1346 dasm_put(Dst, 7192);
1329#if LJ_HASJIT 1347#if LJ_HASJIT
1330 dasm_put(Dst, 6994); 1348 dasm_put(Dst, 7022);
1331#endif 1349#endif
1332 dasm_put(Dst, 7126); 1350 dasm_put(Dst, 7199);
1333#if LJ_HASJIT 1351#if LJ_HASJIT
1334 dasm_put(Dst, 7129); 1352 dasm_put(Dst, 7202);
1335#endif 1353#endif
1336 dasm_put(Dst, 7139, Dt1(->base), Dt1(->top)); 1354 dasm_put(Dst, 7212, Dt1(->base), Dt1(->top));
1337#if LJ_HASJIT 1355#if LJ_HASJIT
1338 dasm_put(Dst, 7173); 1356 dasm_put(Dst, 7246);
1339#endif 1357#endif
1340 dasm_put(Dst, 7178, Dt1(->base), Dt1(->top)); 1358 dasm_put(Dst, 7251, Dt1(->base), Dt1(->top));
1341#if LJ_HASJIT 1359#if LJ_HASJIT
1342 dasm_put(Dst, 7117); 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));
1343#endif 1361#endif
1344 dasm_put(Dst, 7209); 1362 dasm_put(Dst, 7512);
1345#if LJ_HASJIT 1363#if LJ_HASJIT
1346 dasm_put(Dst, 7212, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1364 dasm_put(Dst, 7515, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1347#endif 1365#endif
1348 dasm_put(Dst, 7264); 1366 dasm_put(Dst, 7567);
1349 if (!sse) { 1367 if (!sse) {
1350 dasm_put(Dst, 7267); 1368 dasm_put(Dst, 7570);
1351 } 1369 }
1352 dasm_put(Dst, 7312, (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)); 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));
1353 if (!sse) { 1371 if (!sse) {
1354 dasm_put(Dst, 7398); 1372 dasm_put(Dst, 7701);
1355 } 1373 }
1356 dasm_put(Dst, 7443, (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)); 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));
1357 if (!sse) { 1375 if (!sse) {
1358 dasm_put(Dst, 7529); 1376 dasm_put(Dst, 7832);
1359 } 1377 }
1360 dasm_put(Dst, 7568, (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, 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));
1361 if (sse) { 1379 if (sse) {
1362 dasm_put(Dst, 7657, (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)); 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));
1363 } else { 1381 } else {
1364 dasm_put(Dst, 7771); 1382 dasm_put(Dst, 8074);
1365 } 1383 }
1366 dasm_put(Dst, 7818); 1384 dasm_put(Dst, 8121);
1367 if (!sse) { 1385 if (!sse) {
1368 } else { 1386 } else {
1369 dasm_put(Dst, 7892); 1387 dasm_put(Dst, 8195);
1370 } 1388 }
1371 dasm_put(Dst, 7895); 1389 dasm_put(Dst, 8198);
1372 dasm_put(Dst, 7980, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 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));
1373 dasm_put(Dst, 8081, (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)); 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));
1374 dasm_put(Dst, 8249); 1392 dasm_put(Dst, 8552);
1375 if (sse) { 1393 if (sse) {
1376 dasm_put(Dst, 8290); 1394 dasm_put(Dst, 8593);
1377 dasm_put(Dst, 8360); 1395 dasm_put(Dst, 8663);
1378 dasm_put(Dst, 8433); 1396 dasm_put(Dst, 8736);
1379 } else { 1397 } else {
1380 dasm_put(Dst, 8483); 1398 dasm_put(Dst, 8786);
1381 dasm_put(Dst, 8575); 1399 dasm_put(Dst, 8878);
1382 } 1400 }
1383 dasm_put(Dst, 8621); 1401 dasm_put(Dst, 8924);
1384 if (sse) { 1402 if (sse) {
1385 dasm_put(Dst, 8627, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1403 dasm_put(Dst, 8930, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1386 dasm_put(Dst, 8716, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1404 dasm_put(Dst, 9019, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1387 } else { 1405 } else {
1388 dasm_put(Dst, 8840); 1406 dasm_put(Dst, 9143);
1389 dasm_put(Dst, 8923); 1407 dasm_put(Dst, 9226);
1390 if (cmov) { 1408 if (cmov) {
1391 dasm_put(Dst, 8978); 1409 dasm_put(Dst, 9281);
1392 } else { 1410 } else {
1393 dasm_put(Dst, 8997); 1411 dasm_put(Dst, 9300);
1394 } 1412 }
1395 dasm_put(Dst, 8836); 1413 dasm_put(Dst, 9139);
1396 } 1414 }
1397 dasm_put(Dst, 9038); 1415 dasm_put(Dst, 9341);
1398} 1416}
1399 1417
1400/* Generate the code for a single instruction. */ 1418/* Generate the code for a single instruction. */
1401static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1419static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1402{ 1420{
1403 int vk = 0; 1421 int vk = 0;
1404 dasm_put(Dst, 9064, defop); 1422 dasm_put(Dst, 1776, defop);
1405 1423
1406 switch (op) { 1424 switch (op) {
1407 1425
@@ -1410,602 +1428,602 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1410 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1428 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1411 1429
1412 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1430 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1413 dasm_put(Dst, 9066, LJ_TISNUM, LJ_TISNUM); 1431 dasm_put(Dst, 9367, LJ_TISNUM, LJ_TISNUM);
1414 if (sse) { 1432 if (sse) {
1415 dasm_put(Dst, 9087); 1433 dasm_put(Dst, 9388);
1416 } else { 1434 } else {
1417 dasm_put(Dst, 9102); 1435 dasm_put(Dst, 9403);
1418 if (cmov) { 1436 if (cmov) {
1419 dasm_put(Dst, 9112); 1437 dasm_put(Dst, 9413);
1420 } else { 1438 } else {
1421 dasm_put(Dst, 9118); 1439 dasm_put(Dst, 9419);
1422 } 1440 }
1423 } 1441 }
1424 switch (op) { 1442 switch (op) {
1425 case BC_ISLT: 1443 case BC_ISLT:
1426 dasm_put(Dst, 9125); 1444 dasm_put(Dst, 9426);
1427 break; 1445 break;
1428 case BC_ISGE: 1446 case BC_ISGE:
1429 dasm_put(Dst, 8918); 1447 dasm_put(Dst, 9221);
1430 break; 1448 break;
1431 case BC_ISLE: 1449 case BC_ISLE:
1432 dasm_put(Dst, 5872); 1450 dasm_put(Dst, 5900);
1433 break; 1451 break;
1434 case BC_ISGT: 1452 case BC_ISGT:
1435 dasm_put(Dst, 9130); 1453 dasm_put(Dst, 9431);
1436 break; 1454 break;
1437 default: break; /* Shut up GCC. */ 1455 default: break; /* Shut up GCC. */
1438 } 1456 }
1439 dasm_put(Dst, 9135, -BCBIAS_J*4); 1457 dasm_put(Dst, 9436, -BCBIAS_J*4);
1440 break; 1458 break;
1441 1459
1442 case BC_ISEQV: case BC_ISNEV: 1460 case BC_ISEQV: case BC_ISNEV:
1443 vk = op == BC_ISEQV; 1461 vk = op == BC_ISEQV;
1444 dasm_put(Dst, 9169, LJ_TISNUM, LJ_TISNUM); 1462 dasm_put(Dst, 9470, LJ_TISNUM, LJ_TISNUM);
1445 if (sse) { 1463 if (sse) {
1446 dasm_put(Dst, 9195); 1464 dasm_put(Dst, 9496);
1447 } else { 1465 } else {
1448 dasm_put(Dst, 9207); 1466 dasm_put(Dst, 9508);
1449 if (cmov) { 1467 if (cmov) {
1450 dasm_put(Dst, 9112); 1468 dasm_put(Dst, 9413);
1451 } else { 1469 } else {
1452 dasm_put(Dst, 9118); 1470 dasm_put(Dst, 9419);
1453 } 1471 }
1454 } 1472 }
1455 iseqne_fp: 1473 iseqne_fp:
1456 if (vk) { 1474 if (vk) {
1457 dasm_put(Dst, 9214); 1475 dasm_put(Dst, 9515);
1458 } else { 1476 } else {
1459 dasm_put(Dst, 9223); 1477 dasm_put(Dst, 9524);
1460 } 1478 }
1461 iseqne_end: 1479 iseqne_end:
1462 if (vk) { 1480 if (vk) {
1463 dasm_put(Dst, 9232, -BCBIAS_J*4); 1481 dasm_put(Dst, 9533, -BCBIAS_J*4);
1464 } else { 1482 } else {
1465 dasm_put(Dst, 9247, -BCBIAS_J*4); 1483 dasm_put(Dst, 9548, -BCBIAS_J*4);
1466 } 1484 }
1467 dasm_put(Dst, 9149); 1485 dasm_put(Dst, 9450);
1468 if (op == BC_ISEQV || op == BC_ISNEV) { 1486 if (op == BC_ISEQV || op == BC_ISNEV) {
1469 dasm_put(Dst, 9262, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1487 dasm_put(Dst, 9563, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1470 if (vk) { 1488 if (vk) {
1471 dasm_put(Dst, 9320); 1489 dasm_put(Dst, 9621);
1472 } else { 1490 } else {
1473 dasm_put(Dst, 9324); 1491 dasm_put(Dst, 9625);
1474 } 1492 }
1475 dasm_put(Dst, 9330); 1493 dasm_put(Dst, 9631);
1476 } 1494 }
1477 break; 1495 break;
1478 case BC_ISEQS: case BC_ISNES: 1496 case BC_ISEQS: case BC_ISNES:
1479 vk = op == BC_ISEQS; 1497 vk = op == BC_ISEQS;
1480 dasm_put(Dst, 9335, LJ_TSTR); 1498 dasm_put(Dst, 9636, LJ_TSTR);
1481 iseqne_test: 1499 iseqne_test:
1482 if (vk) { 1500 if (vk) {
1483 dasm_put(Dst, 9218); 1501 dasm_put(Dst, 9519);
1484 } else { 1502 } else {
1485 dasm_put(Dst, 2774); 1503 dasm_put(Dst, 2802);
1486 } 1504 }
1487 goto iseqne_end; 1505 goto iseqne_end;
1488 case BC_ISEQN: case BC_ISNEN: 1506 case BC_ISEQN: case BC_ISNEN:
1489 vk = op == BC_ISEQN; 1507 vk = op == BC_ISEQN;
1490 dasm_put(Dst, 9359, LJ_TISNUM); 1508 dasm_put(Dst, 9660, LJ_TISNUM);
1491 if (sse) { 1509 if (sse) {
1492 dasm_put(Dst, 9373); 1510 dasm_put(Dst, 9674);
1493 } else { 1511 } else {
1494 dasm_put(Dst, 9385); 1512 dasm_put(Dst, 9686);
1495 if (cmov) { 1513 if (cmov) {
1496 dasm_put(Dst, 9112); 1514 dasm_put(Dst, 9413);
1497 } else { 1515 } else {
1498 dasm_put(Dst, 9118); 1516 dasm_put(Dst, 9419);
1499 } 1517 }
1500 } 1518 }
1501 goto iseqne_fp; 1519 goto iseqne_fp;
1502 case BC_ISEQP: case BC_ISNEP: 1520 case BC_ISEQP: case BC_ISNEP:
1503 vk = op == BC_ISEQP; 1521 vk = op == BC_ISEQP;
1504 dasm_put(Dst, 9392); 1522 dasm_put(Dst, 9693);
1505 goto iseqne_test; 1523 goto iseqne_test;
1506 1524
1507 /* -- Unary test and copy ops ------------------------------------------- */ 1525 /* -- Unary test and copy ops ------------------------------------------- */
1508 1526
1509 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1527 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1510 dasm_put(Dst, 9404, LJ_TISTRUECOND); 1528 dasm_put(Dst, 9705, LJ_TISTRUECOND);
1511 if (op == BC_IST || op == BC_ISTC) { 1529 if (op == BC_IST || op == BC_ISTC) {
1512 dasm_put(Dst, 9416); 1530 dasm_put(Dst, 9717);
1513 } else { 1531 } else {
1514 dasm_put(Dst, 9421); 1532 dasm_put(Dst, 9722);
1515 } 1533 }
1516 if (op == BC_ISTC || op == BC_ISFC) { 1534 if (op == BC_ISTC || op == BC_ISFC) {
1517 dasm_put(Dst, 9426); 1535 dasm_put(Dst, 9727);
1518 } 1536 }
1519 dasm_put(Dst, 9437, -BCBIAS_J*4); 1537 dasm_put(Dst, 9738, -BCBIAS_J*4);
1520 break; 1538 break;
1521 1539
1522 /* -- Unary ops --------------------------------------------------------- */ 1540 /* -- Unary ops --------------------------------------------------------- */
1523 1541
1524 case BC_MOV: 1542 case BC_MOV:
1525 dasm_put(Dst, 9469); 1543 dasm_put(Dst, 9770);
1526 break; 1544 break;
1527 case BC_NOT: 1545 case BC_NOT:
1528 dasm_put(Dst, 9503, LJ_TISTRUECOND, LJ_TTRUE); 1546 dasm_put(Dst, 9804, LJ_TISTRUECOND, LJ_TTRUE);
1529 break; 1547 break;
1530 case BC_UNM: 1548 case BC_UNM:
1531 dasm_put(Dst, 9539, LJ_TISNUM); 1549 dasm_put(Dst, 9840, LJ_TISNUM);
1532 if (sse) { 1550 if (sse) {
1533 dasm_put(Dst, 9550, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1551 dasm_put(Dst, 9851, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1534 } else { 1552 } else {
1535 dasm_put(Dst, 9575); 1553 dasm_put(Dst, 9876);
1536 } 1554 }
1537 dasm_put(Dst, 9149); 1555 dasm_put(Dst, 9450);
1538 break; 1556 break;
1539 case BC_LEN: 1557 case BC_LEN:
1540 dasm_put(Dst, 9584, LJ_TSTR); 1558 dasm_put(Dst, 9885, LJ_TSTR);
1541 if (sse) { 1559 if (sse) {
1542 dasm_put(Dst, 9598, Dt5(->len)); 1560 dasm_put(Dst, 9899, Dt5(->len));
1543 } else { 1561 } else {
1544 dasm_put(Dst, 9616, Dt5(->len)); 1562 dasm_put(Dst, 9917, Dt5(->len));
1545 } 1563 }
1546 dasm_put(Dst, 9625, LJ_TTAB); 1564 dasm_put(Dst, 9926, LJ_TTAB);
1547 if (sse) { 1565 if (sse) {
1548 dasm_put(Dst, 9666); 1566 dasm_put(Dst, 9967);
1549 } else { 1567 } else {
1550 } 1568 }
1551 dasm_put(Dst, 9675); 1569 dasm_put(Dst, 9976);
1552 break; 1570 break;
1553 1571
1554 /* -- Binary ops -------------------------------------------------------- */ 1572 /* -- Binary ops -------------------------------------------------------- */
1555 1573
1556 1574
1557 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1575 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1558 dasm_put(Dst, 9685); 1576 dasm_put(Dst, 9986);
1559 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1577 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1560 switch (vk) { 1578 switch (vk) {
1561 case 0: 1579 case 0:
1562 dasm_put(Dst, 9693, LJ_TISNUM); 1580 dasm_put(Dst, 9994, LJ_TISNUM);
1563 if (sse) { 1581 if (sse) {
1564 dasm_put(Dst, 9705); 1582 dasm_put(Dst, 10006);
1565 } else { 1583 } else {
1566 dasm_put(Dst, 9719); 1584 dasm_put(Dst, 10020);
1567 } 1585 }
1568 break; 1586 break;
1569 case 1: 1587 case 1:
1570 dasm_put(Dst, 9727, LJ_TISNUM); 1588 dasm_put(Dst, 10028, LJ_TISNUM);
1571 if (sse) { 1589 if (sse) {
1572 dasm_put(Dst, 9739); 1590 dasm_put(Dst, 10040);
1573 } else { 1591 } else {
1574 dasm_put(Dst, 9753); 1592 dasm_put(Dst, 10054);
1575 } 1593 }
1576 break; 1594 break;
1577 default: 1595 default:
1578 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1596 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1579 if (sse) { 1597 if (sse) {
1580 dasm_put(Dst, 9783); 1598 dasm_put(Dst, 10084);
1581 } else { 1599 } else {
1582 dasm_put(Dst, 9797); 1600 dasm_put(Dst, 10098);
1583 } 1601 }
1584 break; 1602 break;
1585 } 1603 }
1586 if (sse) { 1604 if (sse) {
1587 dasm_put(Dst, 9568); 1605 dasm_put(Dst, 9869);
1588 } else { 1606 } else {
1589 dasm_put(Dst, 9580); 1607 dasm_put(Dst, 9881);
1590 } 1608 }
1591 dasm_put(Dst, 9149); 1609 dasm_put(Dst, 9450);
1592 break; 1610 break;
1593 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1611 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1594 dasm_put(Dst, 9685); 1612 dasm_put(Dst, 9986);
1595 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1613 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1596 switch (vk) { 1614 switch (vk) {
1597 case 0: 1615 case 0:
1598 dasm_put(Dst, 9693, LJ_TISNUM); 1616 dasm_put(Dst, 9994, LJ_TISNUM);
1599 if (sse) { 1617 if (sse) {
1600 dasm_put(Dst, 9805); 1618 dasm_put(Dst, 10106);
1601 } else { 1619 } else {
1602 dasm_put(Dst, 9819); 1620 dasm_put(Dst, 10120);
1603 } 1621 }
1604 break; 1622 break;
1605 case 1: 1623 case 1:
1606 dasm_put(Dst, 9727, LJ_TISNUM); 1624 dasm_put(Dst, 10028, LJ_TISNUM);
1607 if (sse) { 1625 if (sse) {
1608 dasm_put(Dst, 9827); 1626 dasm_put(Dst, 10128);
1609 } else { 1627 } else {
1610 dasm_put(Dst, 9841); 1628 dasm_put(Dst, 10142);
1611 } 1629 }
1612 break; 1630 break;
1613 default: 1631 default:
1614 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1632 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1615 if (sse) { 1633 if (sse) {
1616 dasm_put(Dst, 9849); 1634 dasm_put(Dst, 10150);
1617 } else { 1635 } else {
1618 dasm_put(Dst, 9863); 1636 dasm_put(Dst, 10164);
1619 } 1637 }
1620 break; 1638 break;
1621 } 1639 }
1622 if (sse) { 1640 if (sse) {
1623 dasm_put(Dst, 9568); 1641 dasm_put(Dst, 9869);
1624 } else { 1642 } else {
1625 dasm_put(Dst, 9580); 1643 dasm_put(Dst, 9881);
1626 } 1644 }
1627 dasm_put(Dst, 9149); 1645 dasm_put(Dst, 9450);
1628 break; 1646 break;
1629 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1647 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1630 dasm_put(Dst, 9685); 1648 dasm_put(Dst, 9986);
1631 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1649 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1632 switch (vk) { 1650 switch (vk) {
1633 case 0: 1651 case 0:
1634 dasm_put(Dst, 9693, LJ_TISNUM); 1652 dasm_put(Dst, 9994, LJ_TISNUM);
1635 if (sse) { 1653 if (sse) {
1636 dasm_put(Dst, 9871); 1654 dasm_put(Dst, 10172);
1637 } else { 1655 } else {
1638 dasm_put(Dst, 9885); 1656 dasm_put(Dst, 10186);
1639 } 1657 }
1640 break; 1658 break;
1641 case 1: 1659 case 1:
1642 dasm_put(Dst, 9727, LJ_TISNUM); 1660 dasm_put(Dst, 10028, LJ_TISNUM);
1643 if (sse) { 1661 if (sse) {
1644 dasm_put(Dst, 9893); 1662 dasm_put(Dst, 10194);
1645 } else { 1663 } else {
1646 dasm_put(Dst, 9907); 1664 dasm_put(Dst, 10208);
1647 } 1665 }
1648 break; 1666 break;
1649 default: 1667 default:
1650 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1668 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1651 if (sse) { 1669 if (sse) {
1652 dasm_put(Dst, 9915); 1670 dasm_put(Dst, 10216);
1653 } else { 1671 } else {
1654 dasm_put(Dst, 9929); 1672 dasm_put(Dst, 10230);
1655 } 1673 }
1656 break; 1674 break;
1657 } 1675 }
1658 if (sse) { 1676 if (sse) {
1659 dasm_put(Dst, 9568); 1677 dasm_put(Dst, 9869);
1660 } else { 1678 } else {
1661 dasm_put(Dst, 9580); 1679 dasm_put(Dst, 9881);
1662 } 1680 }
1663 dasm_put(Dst, 9149); 1681 dasm_put(Dst, 9450);
1664 break; 1682 break;
1665 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1683 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1666 dasm_put(Dst, 9685); 1684 dasm_put(Dst, 9986);
1667 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1685 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1668 switch (vk) { 1686 switch (vk) {
1669 case 0: 1687 case 0:
1670 dasm_put(Dst, 9693, LJ_TISNUM); 1688 dasm_put(Dst, 9994, LJ_TISNUM);
1671 if (sse) { 1689 if (sse) {
1672 dasm_put(Dst, 9937); 1690 dasm_put(Dst, 10238);
1673 } else { 1691 } else {
1674 dasm_put(Dst, 9951); 1692 dasm_put(Dst, 10252);
1675 } 1693 }
1676 break; 1694 break;
1677 case 1: 1695 case 1:
1678 dasm_put(Dst, 9727, LJ_TISNUM); 1696 dasm_put(Dst, 10028, LJ_TISNUM);
1679 if (sse) { 1697 if (sse) {
1680 dasm_put(Dst, 9959); 1698 dasm_put(Dst, 10260);
1681 } else { 1699 } else {
1682 dasm_put(Dst, 9973); 1700 dasm_put(Dst, 10274);
1683 } 1701 }
1684 break; 1702 break;
1685 default: 1703 default:
1686 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1704 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1687 if (sse) { 1705 if (sse) {
1688 dasm_put(Dst, 9981); 1706 dasm_put(Dst, 10282);
1689 } else { 1707 } else {
1690 dasm_put(Dst, 9995); 1708 dasm_put(Dst, 10296);
1691 } 1709 }
1692 break; 1710 break;
1693 } 1711 }
1694 if (sse) { 1712 if (sse) {
1695 dasm_put(Dst, 9568); 1713 dasm_put(Dst, 9869);
1696 } else { 1714 } else {
1697 dasm_put(Dst, 9580); 1715 dasm_put(Dst, 9881);
1698 } 1716 }
1699 dasm_put(Dst, 9149); 1717 dasm_put(Dst, 9450);
1700 break; 1718 break;
1701 case BC_MODVN: 1719 case BC_MODVN:
1702 dasm_put(Dst, 9685); 1720 dasm_put(Dst, 9986);
1703 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1721 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1704 switch (vk) { 1722 switch (vk) {
1705 case 0: 1723 case 0:
1706 dasm_put(Dst, 9693, LJ_TISNUM); 1724 dasm_put(Dst, 9994, LJ_TISNUM);
1707 if (sse) { 1725 if (sse) {
1708 dasm_put(Dst, 10003); 1726 dasm_put(Dst, 10304);
1709 } else { 1727 } else {
1710 dasm_put(Dst, 10017); 1728 dasm_put(Dst, 10318);
1711 } 1729 }
1712 break; 1730 break;
1713 case 1: 1731 case 1:
1714 dasm_put(Dst, 9727, LJ_TISNUM); 1732 dasm_put(Dst, 10028, LJ_TISNUM);
1715 if (sse) { 1733 if (sse) {
1716 dasm_put(Dst, 10025); 1734 dasm_put(Dst, 10326);
1717 } else { 1735 } else {
1718 dasm_put(Dst, 10039); 1736 dasm_put(Dst, 10340);
1719 } 1737 }
1720 break; 1738 break;
1721 default: 1739 default:
1722 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1740 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1723 if (sse) { 1741 if (sse) {
1724 dasm_put(Dst, 10047); 1742 dasm_put(Dst, 10348);
1725 } else { 1743 } else {
1726 dasm_put(Dst, 10061); 1744 dasm_put(Dst, 10362);
1727 } 1745 }
1728 break; 1746 break;
1729 } 1747 }
1730 dasm_put(Dst, 10069); 1748 dasm_put(Dst, 10370);
1731 if (sse) { 1749 if (sse) {
1732 dasm_put(Dst, 9568); 1750 dasm_put(Dst, 9869);
1733 } else { 1751 } else {
1734 dasm_put(Dst, 9580); 1752 dasm_put(Dst, 9881);
1735 } 1753 }
1736 dasm_put(Dst, 9149); 1754 dasm_put(Dst, 9450);
1737 break; 1755 break;
1738 case BC_MODNV: case BC_MODVV: 1756 case BC_MODNV: case BC_MODVV:
1739 dasm_put(Dst, 9685); 1757 dasm_put(Dst, 9986);
1740 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1758 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1741 switch (vk) { 1759 switch (vk) {
1742 case 0: 1760 case 0:
1743 dasm_put(Dst, 9693, LJ_TISNUM); 1761 dasm_put(Dst, 9994, LJ_TISNUM);
1744 if (sse) { 1762 if (sse) {
1745 dasm_put(Dst, 10003); 1763 dasm_put(Dst, 10304);
1746 } else { 1764 } else {
1747 dasm_put(Dst, 10017); 1765 dasm_put(Dst, 10318);
1748 } 1766 }
1749 break; 1767 break;
1750 case 1: 1768 case 1:
1751 dasm_put(Dst, 9727, LJ_TISNUM); 1769 dasm_put(Dst, 10028, LJ_TISNUM);
1752 if (sse) { 1770 if (sse) {
1753 dasm_put(Dst, 10025); 1771 dasm_put(Dst, 10326);
1754 } else { 1772 } else {
1755 dasm_put(Dst, 10039); 1773 dasm_put(Dst, 10340);
1756 } 1774 }
1757 break; 1775 break;
1758 default: 1776 default:
1759 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1777 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1760 if (sse) { 1778 if (sse) {
1761 dasm_put(Dst, 10047); 1779 dasm_put(Dst, 10348);
1762 } else { 1780 } else {
1763 dasm_put(Dst, 10061); 1781 dasm_put(Dst, 10362);
1764 } 1782 }
1765 break; 1783 break;
1766 } 1784 }
1767 dasm_put(Dst, 10075); 1785 dasm_put(Dst, 10376);
1768 break; 1786 break;
1769 case BC_POW: 1787 case BC_POW:
1770 dasm_put(Dst, 9685); 1788 dasm_put(Dst, 9986);
1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1772 switch (vk) { 1790 switch (vk) {
1773 case 0: 1791 case 0:
1774 dasm_put(Dst, 9693, LJ_TISNUM); 1792 dasm_put(Dst, 9994, LJ_TISNUM);
1775 if (sse) { 1793 if (sse) {
1776 dasm_put(Dst, 10003); 1794 dasm_put(Dst, 10304);
1777 } else { 1795 } else {
1778 dasm_put(Dst, 10017); 1796 dasm_put(Dst, 10318);
1779 } 1797 }
1780 break; 1798 break;
1781 case 1: 1799 case 1:
1782 dasm_put(Dst, 9727, LJ_TISNUM); 1800 dasm_put(Dst, 10028, LJ_TISNUM);
1783 if (sse) { 1801 if (sse) {
1784 dasm_put(Dst, 10025); 1802 dasm_put(Dst, 10326);
1785 } else { 1803 } else {
1786 dasm_put(Dst, 10039); 1804 dasm_put(Dst, 10340);
1787 } 1805 }
1788 break; 1806 break;
1789 default: 1807 default:
1790 dasm_put(Dst, 9761, LJ_TISNUM, LJ_TISNUM); 1808 dasm_put(Dst, 10062, LJ_TISNUM, LJ_TISNUM);
1791 if (sse) { 1809 if (sse) {
1792 dasm_put(Dst, 10047); 1810 dasm_put(Dst, 10348);
1793 } else { 1811 } else {
1794 dasm_put(Dst, 10061); 1812 dasm_put(Dst, 10362);
1795 } 1813 }
1796 break; 1814 break;
1797 } 1815 }
1798 dasm_put(Dst, 10080); 1816 dasm_put(Dst, 10381);
1799 if (sse) { 1817 if (sse) {
1800 dasm_put(Dst, 9568); 1818 dasm_put(Dst, 9869);
1801 } else { 1819 } else {
1802 dasm_put(Dst, 9580); 1820 dasm_put(Dst, 9881);
1803 } 1821 }
1804 dasm_put(Dst, 9149); 1822 dasm_put(Dst, 9450);
1805 break; 1823 break;
1806 1824
1807 case BC_CAT: 1825 case BC_CAT:
1808 dasm_put(Dst, 10084, Dt1(->base), Dt1(->base)); 1826 dasm_put(Dst, 10385, Dt1(->base), Dt1(->base));
1809 break; 1827 break;
1810 1828
1811 /* -- Constant ops ------------------------------------------------------ */ 1829 /* -- Constant ops ------------------------------------------------------ */
1812 1830
1813 case BC_KSTR: 1831 case BC_KSTR:
1814 dasm_put(Dst, 10174, LJ_TSTR); 1832 dasm_put(Dst, 10475, LJ_TSTR);
1815 break; 1833 break;
1816 case BC_KSHORT: 1834 case BC_KSHORT:
1817 if (sse) { 1835 if (sse) {
1818 dasm_put(Dst, 10209); 1836 dasm_put(Dst, 10510);
1819 } else { 1837 } else {
1820 dasm_put(Dst, 10224); 1838 dasm_put(Dst, 10525);
1821 } 1839 }
1822 dasm_put(Dst, 9149); 1840 dasm_put(Dst, 9450);
1823 break; 1841 break;
1824 case BC_KNUM: 1842 case BC_KNUM:
1825 if (sse) { 1843 if (sse) {
1826 dasm_put(Dst, 10232); 1844 dasm_put(Dst, 10533);
1827 } else { 1845 } else {
1828 dasm_put(Dst, 10245); 1846 dasm_put(Dst, 10546);
1829 } 1847 }
1830 dasm_put(Dst, 9149); 1848 dasm_put(Dst, 9450);
1831 break; 1849 break;
1832 case BC_KPRI: 1850 case BC_KPRI:
1833 dasm_put(Dst, 10252); 1851 dasm_put(Dst, 10553);
1834 break; 1852 break;
1835 case BC_KNIL: 1853 case BC_KNIL:
1836 dasm_put(Dst, 10280, LJ_TNIL); 1854 dasm_put(Dst, 10581, LJ_TNIL);
1837 break; 1855 break;
1838 1856
1839 /* -- Upvalue and function ops ------------------------------------------ */ 1857 /* -- Upvalue and function ops ------------------------------------------ */
1840 1858
1841 case BC_UGET: 1859 case BC_UGET:
1842 dasm_put(Dst, 10327, offsetof(GCfuncL, uvptr), DtA(->v)); 1860 dasm_put(Dst, 10628, offsetof(GCfuncL, uvptr), DtA(->v));
1843 break; 1861 break;
1844 case BC_USETV: 1862 case BC_USETV:
1845#define TV2MARKOFS \ 1863#define TV2MARKOFS \
1846 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1864 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1847 dasm_put(Dst, 10372, 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); 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);
1848 dasm_put(Dst, 10463); 1866 dasm_put(Dst, 10764);
1849 break; 1867 break;
1850#undef TV2MARKOFS 1868#undef TV2MARKOFS
1851 case BC_USETS: 1869 case BC_USETS:
1852 dasm_put(Dst, 10475, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 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);
1853 break; 1871 break;
1854 case BC_USETN: 1872 case BC_USETN:
1855 dasm_put(Dst, 10568); 1873 dasm_put(Dst, 10869);
1856 if (sse) { 1874 if (sse) {
1857 dasm_put(Dst, 10573); 1875 dasm_put(Dst, 10874);
1858 } else { 1876 } else {
1859 dasm_put(Dst, 9388); 1877 dasm_put(Dst, 9689);
1860 } 1878 }
1861 dasm_put(Dst, 10580, offsetof(GCfuncL, uvptr), DtA(->v)); 1879 dasm_put(Dst, 10881, offsetof(GCfuncL, uvptr), DtA(->v));
1862 if (sse) { 1880 if (sse) {
1863 dasm_put(Dst, 10589); 1881 dasm_put(Dst, 10890);
1864 } else { 1882 } else {
1865 dasm_put(Dst, 10595); 1883 dasm_put(Dst, 10896);
1866 } 1884 }
1867 dasm_put(Dst, 9149); 1885 dasm_put(Dst, 9450);
1868 break; 1886 break;
1869 case BC_USETP: 1887 case BC_USETP:
1870 dasm_put(Dst, 10598, offsetof(GCfuncL, uvptr), DtA(->v)); 1888 dasm_put(Dst, 10899, offsetof(GCfuncL, uvptr), DtA(->v));
1871 break; 1889 break;
1872 case BC_UCLO: 1890 case BC_UCLO:
1873 dasm_put(Dst, 10637, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1891 dasm_put(Dst, 10938, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1874 break; 1892 break;
1875 1893
1876 case BC_FNEW: 1894 case BC_FNEW:
1877 dasm_put(Dst, 10692, Dt1(->base), Dt1(->base), LJ_TFUNC); 1895 dasm_put(Dst, 10993, Dt1(->base), Dt1(->base), LJ_TFUNC);
1878 break; 1896 break;
1879 1897
1880 /* -- Table ops --------------------------------------------------------- */ 1898 /* -- Table ops --------------------------------------------------------- */
1881 1899
1882 case BC_TNEW: 1900 case BC_TNEW:
1883 dasm_put(Dst, 10758, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1901 dasm_put(Dst, 11059, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1884 break; 1902 break;
1885 case BC_TDUP: 1903 case BC_TDUP:
1886 dasm_put(Dst, 10879, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1904 dasm_put(Dst, 11180, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1887 break; 1905 break;
1888 1906
1889 case BC_GGET: 1907 case BC_GGET:
1890 dasm_put(Dst, 10974, Dt7(->env)); 1908 dasm_put(Dst, 11275, Dt7(->env));
1891 break; 1909 break;
1892 case BC_GSET: 1910 case BC_GSET:
1893 dasm_put(Dst, 10993, Dt7(->env)); 1911 dasm_put(Dst, 11294, Dt7(->env));
1894 break; 1912 break;
1895 1913
1896 case BC_TGETV: 1914 case BC_TGETV:
1897 dasm_put(Dst, 11012, LJ_TTAB, LJ_TISNUM); 1915 dasm_put(Dst, 11313, LJ_TTAB, LJ_TISNUM);
1898 if (sse) { 1916 if (sse) {
1899 dasm_put(Dst, 11045); 1917 dasm_put(Dst, 11346);
1900 } else { 1918 } else {
1901 } 1919 }
1902 dasm_put(Dst, 11066, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1920 dasm_put(Dst, 11367, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1903 dasm_put(Dst, 11159, LJ_TSTR); 1921 dasm_put(Dst, 11460, LJ_TSTR);
1904 break; 1922 break;
1905 case BC_TGETS: 1923 case BC_TGETS:
1906 dasm_put(Dst, 11177, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 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);
1907 dasm_put(Dst, 11262, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1925 dasm_put(Dst, 11563, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1908 break; 1926 break;
1909 case BC_TGETB: 1927 case BC_TGETB:
1910 dasm_put(Dst, 11334, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1928 dasm_put(Dst, 11635, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1911 dasm_put(Dst, 9675); 1929 dasm_put(Dst, 9976);
1912 break; 1930 break;
1913 1931
1914 case BC_TSETV: 1932 case BC_TSETV:
1915 dasm_put(Dst, 11434, LJ_TTAB, LJ_TISNUM); 1933 dasm_put(Dst, 11735, LJ_TTAB, LJ_TISNUM);
1916 if (sse) { 1934 if (sse) {
1917 dasm_put(Dst, 11045); 1935 dasm_put(Dst, 11346);
1918 } else { 1936 } else {
1919 } 1937 }
1920 dasm_put(Dst, 11467, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1938 dasm_put(Dst, 11768, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1921 dasm_put(Dst, 11551, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 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));
1922 break; 1940 break;
1923 case BC_TSETS: 1941 case BC_TSETS:
1924 dasm_put(Dst, 11613, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 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);
1925 dasm_put(Dst, 11689, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1943 dasm_put(Dst, 11990, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1926 dasm_put(Dst, 11782, 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)); 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));
1927 break; 1945 break;
1928 case BC_TSETB: 1946 case BC_TSETB:
1929 dasm_put(Dst, 11873, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1947 dasm_put(Dst, 12174, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1930 dasm_put(Dst, 11972, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 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));
1931 break; 1949 break;
1932 1950
1933 case BC_TSETM: 1951 case BC_TSETM:
1934 dasm_put(Dst, 12018); 1952 dasm_put(Dst, 12319);
1935 if (sse) { 1953 if (sse) {
1936 dasm_put(Dst, 10573); 1954 dasm_put(Dst, 10874);
1937 } else { 1955 } else {
1938 } 1956 }
1939 dasm_put(Dst, 12023, Dt6(->marked), LJ_GC_BLACK); 1957 dasm_put(Dst, 12324, Dt6(->marked), LJ_GC_BLACK);
1940 if (sse) { 1958 if (sse) {
1941 dasm_put(Dst, 12048); 1959 dasm_put(Dst, 12349);
1942 } else { 1960 } else {
1943 } 1961 }
1944 dasm_put(Dst, 12055, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 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));
1945 dasm_put(Dst, 12181, Dt6(->gclist)); 1963 dasm_put(Dst, 12482, Dt6(->gclist));
1946 break; 1964 break;
1947 1965
1948 /* -- Calls and vararg handling ----------------------------------------- */ 1966 /* -- Calls and vararg handling ----------------------------------------- */
1949 1967
1950 case BC_CALL: case BC_CALLM: 1968 case BC_CALL: case BC_CALLM:
1951 dasm_put(Dst, 9689); 1969 dasm_put(Dst, 9990);
1952 if (op == BC_CALLM) { 1970 if (op == BC_CALLM) {
1953 dasm_put(Dst, 12189); 1971 dasm_put(Dst, 12490);
1954 } 1972 }
1955 dasm_put(Dst, 12194, LJ_TFUNC, Dt7(->pc)); 1973 dasm_put(Dst, 12495, LJ_TFUNC, Dt7(->pc));
1956 break; 1974 break;
1957 1975
1958 case BC_CALLMT: 1976 case BC_CALLMT:
1959 dasm_put(Dst, 12189); 1977 dasm_put(Dst, 12490);
1960 break; 1978 break;
1961 case BC_CALLT: 1979 case BC_CALLT:
1962 dasm_put(Dst, 12236, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1980 dasm_put(Dst, 12537, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1963 dasm_put(Dst, 12355, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1981 dasm_put(Dst, 12656, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1964 break; 1982 break;
1965 1983
1966 case BC_ITERC: 1984 case BC_ITERC:
1967 dasm_put(Dst, 12413, LJ_TFUNC, 2+1, Dt7(->pc)); 1985 dasm_put(Dst, 12714, LJ_TFUNC, 2+1, Dt7(->pc));
1968 break; 1986 break;
1969 1987
1970 case BC_VARG: 1988 case BC_VARG:
1971 dasm_put(Dst, 12494, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1989 dasm_put(Dst, 12795, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1972 dasm_put(Dst, 12639, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1990 dasm_put(Dst, 12940, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1973 break; 1991 break;
1974 1992
1975 /* -- Returns ----------------------------------------------------------- */ 1993 /* -- Returns ----------------------------------------------------------- */
1976 1994
1977 case BC_RETM: 1995 case BC_RETM:
1978 dasm_put(Dst, 12189); 1996 dasm_put(Dst, 12490);
1979 break; 1997 break;
1980 1998
1981 case BC_RET: case BC_RET0: case BC_RET1: 1999 case BC_RET: case BC_RET0: case BC_RET1:
1982 if (op != BC_RET0) { 2000 if (op != BC_RET0) {
1983 dasm_put(Dst, 12738); 2001 dasm_put(Dst, 13039);
1984 } 2002 }
1985 dasm_put(Dst, 12742, FRAME_TYPE); 2003 dasm_put(Dst, 13043, FRAME_TYPE);
1986 switch (op) { 2004 switch (op) {
1987 case BC_RET: 2005 case BC_RET:
1988 dasm_put(Dst, 12761); 2006 dasm_put(Dst, 13062);
1989 break; 2007 break;
1990 case BC_RET1: 2008 case BC_RET1:
1991 dasm_put(Dst, 12819); 2009 dasm_put(Dst, 13120);
1992 /* fallthrough */ 2010 /* fallthrough */
1993 case BC_RET0: 2011 case BC_RET0:
1994 dasm_put(Dst, 12835); 2012 dasm_put(Dst, 13136);
1995 default: 2013 default:
1996 break; 2014 break;
1997 } 2015 }
1998 dasm_put(Dst, 12846, Dt7(->pc), PC2PROTO(k)); 2016 dasm_put(Dst, 13147, Dt7(->pc), PC2PROTO(k));
1999 if (op == BC_RET) { 2017 if (op == BC_RET) {
2000 dasm_put(Dst, 12890, LJ_TNIL); 2018 dasm_put(Dst, 13191, LJ_TNIL);
2001 } else { 2019 } else {
2002 dasm_put(Dst, 12899, LJ_TNIL); 2020 dasm_put(Dst, 13200, LJ_TNIL);
2003 } 2021 }
2004 dasm_put(Dst, 12906); 2022 dasm_put(Dst, 13207);
2005 if (op != BC_RET0) { 2023 if (op != BC_RET0) {
2006 dasm_put(Dst, 12927); 2024 dasm_put(Dst, 13228);
2007 } 2025 }
2008 dasm_put(Dst, 4542); 2026 dasm_put(Dst, 4570);
2009 break; 2027 break;
2010 2028
2011 /* -- Loops and branches ------------------------------------------------ */ 2029 /* -- Loops and branches ------------------------------------------------ */
@@ -2013,7 +2031,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2013 2031
2014 case BC_FORL: 2032 case BC_FORL:
2015#if LJ_HASJIT 2033#if LJ_HASJIT
2016 dasm_put(Dst, 12931, HOTCOUNT_PCMASK, GG_DISP2HOT); 2034 dasm_put(Dst, 13232, HOTCOUNT_PCMASK, GG_DISP2HOT);
2017#endif 2035#endif
2018 break; 2036 break;
2019 2037
@@ -2025,57 +2043,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2025 case BC_FORI: 2043 case BC_FORI:
2026 case BC_IFORL: 2044 case BC_IFORL:
2027 vk = (op == BC_IFORL || op == BC_JFORL); 2045 vk = (op == BC_IFORL || op == BC_JFORL);
2028 dasm_put(Dst, 12952); 2046 dasm_put(Dst, 13253);
2029 if (!vk) { 2047 if (!vk) {
2030 dasm_put(Dst, 12956, LJ_TISNUM, LJ_TISNUM); 2048 dasm_put(Dst, 13257, LJ_TISNUM, LJ_TISNUM);
2031 } 2049 }
2032 dasm_put(Dst, 12975); 2050 dasm_put(Dst, 13276);
2033 if (!vk) { 2051 if (!vk) {
2034 dasm_put(Dst, 12979, LJ_TISNUM); 2052 dasm_put(Dst, 13280, LJ_TISNUM);
2035 } 2053 }
2036 if (sse) { 2054 if (sse) {
2037 dasm_put(Dst, 12988); 2055 dasm_put(Dst, 13289);
2038 if (vk) { 2056 if (vk) {
2039 dasm_put(Dst, 13000); 2057 dasm_put(Dst, 13301);
2040 } else { 2058 } else {
2041 dasm_put(Dst, 13019); 2059 dasm_put(Dst, 13320);
2042 } 2060 }
2043 dasm_put(Dst, 13024); 2061 dasm_put(Dst, 13325);
2044 } else { 2062 } else {
2045 dasm_put(Dst, 13037); 2063 dasm_put(Dst, 13338);
2046 if (vk) { 2064 if (vk) {
2047 dasm_put(Dst, 13043); 2065 dasm_put(Dst, 13344);
2048 } else { 2066 } else {
2049 dasm_put(Dst, 13059); 2067 dasm_put(Dst, 13360);
2050 } 2068 }
2051 dasm_put(Dst, 13067); 2069 dasm_put(Dst, 13368);
2052 if (cmov) { 2070 if (cmov) {
2053 dasm_put(Dst, 9112); 2071 dasm_put(Dst, 9413);
2054 } else { 2072 } else {
2055 dasm_put(Dst, 9118); 2073 dasm_put(Dst, 9419);
2056 } 2074 }
2057 if (!cmov) { 2075 if (!cmov) {
2058 dasm_put(Dst, 13072); 2076 dasm_put(Dst, 13373);
2059 } 2077 }
2060 } 2078 }
2061 if (op == BC_FORI) { 2079 if (op == BC_FORI) {
2062 dasm_put(Dst, 13078, -BCBIAS_J*4); 2080 dasm_put(Dst, 13379, -BCBIAS_J*4);
2063 } else if (op == BC_JFORI) { 2081 } else if (op == BC_JFORI) {
2064 dasm_put(Dst, 13088, -BCBIAS_J*4, BC_JLOOP); 2082 dasm_put(Dst, 13389, -BCBIAS_J*4, BC_JLOOP);
2065 } else if (op == BC_IFORL) { 2083 } else if (op == BC_IFORL) {
2066 dasm_put(Dst, 13102, -BCBIAS_J*4); 2084 dasm_put(Dst, 13403, -BCBIAS_J*4);
2067 } else { 2085 } else {
2068 dasm_put(Dst, 13098, BC_JLOOP); 2086 dasm_put(Dst, 13399, BC_JLOOP);
2069 } 2087 }
2070 dasm_put(Dst, 9147); 2088 dasm_put(Dst, 9448);
2071 if (sse) { 2089 if (sse) {
2072 dasm_put(Dst, 13112); 2090 dasm_put(Dst, 13413);
2073 } 2091 }
2074 break; 2092 break;
2075 2093
2076 case BC_ITERL: 2094 case BC_ITERL:
2077#if LJ_HASJIT 2095#if LJ_HASJIT
2078 dasm_put(Dst, 12931, HOTCOUNT_PCMASK, GG_DISP2HOT); 2096 dasm_put(Dst, 13232, HOTCOUNT_PCMASK, GG_DISP2HOT);
2079#endif 2097#endif
2080 break; 2098 break;
2081 2099
@@ -2084,33 +2102,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2084 break; 2102 break;
2085#endif 2103#endif
2086 case BC_IITERL: 2104 case BC_IITERL:
2087 dasm_put(Dst, 13123, LJ_TNIL); 2105 dasm_put(Dst, 13424, LJ_TNIL);
2088 if (op == BC_JITERL) { 2106 if (op == BC_JITERL) {
2089 dasm_put(Dst, 13138, BC_JLOOP); 2107 dasm_put(Dst, 13439, BC_JLOOP);
2090 } else { 2108 } else {
2091 dasm_put(Dst, 13152, -BCBIAS_J*4); 2109 dasm_put(Dst, 13453, -BCBIAS_J*4);
2092 } 2110 }
2093 dasm_put(Dst, 9447); 2111 dasm_put(Dst, 9748);
2094 break; 2112 break;
2095 2113
2096 case BC_LOOP: 2114 case BC_LOOP:
2097#if LJ_HASJIT 2115#if LJ_HASJIT
2098 dasm_put(Dst, 12931, HOTCOUNT_PCMASK, GG_DISP2HOT); 2116 dasm_put(Dst, 13232, HOTCOUNT_PCMASK, GG_DISP2HOT);
2099#endif 2117#endif
2100 break; 2118 break;
2101 2119
2102 case BC_ILOOP: 2120 case BC_ILOOP:
2103 dasm_put(Dst, 9149); 2121 dasm_put(Dst, 9450);
2104 break; 2122 break;
2105 2123
2106 case BC_JLOOP: 2124 case BC_JLOOP:
2107#if LJ_HASJIT 2125#if LJ_HASJIT
2108 dasm_put(Dst, 13168, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2126 dasm_put(Dst, 13469, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2109#endif 2127#endif
2110 break; 2128 break;
2111 2129
2112 case BC_JMP: 2130 case BC_JMP:
2113 dasm_put(Dst, 13192, -BCBIAS_J*4); 2131 dasm_put(Dst, 13493, -BCBIAS_J*4);
2114 break; 2132 break;
2115 2133
2116 /* -- Function headers -------------------------------------------------- */ 2134 /* -- Function headers -------------------------------------------------- */
@@ -2133,47 +2151,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2133 break; 2151 break;
2134#endif 2152#endif
2135 case BC_IFUNCF: 2153 case BC_IFUNCF:
2136 dasm_put(Dst, 13217, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2154 dasm_put(Dst, 13518, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2137 if (op == BC_JFUNCF) { 2155 if (op == BC_JFUNCF) {
2138 dasm_put(Dst, 13247, BC_JLOOP); 2156 dasm_put(Dst, 13548, BC_JLOOP);
2139 } else { 2157 } else {
2140 dasm_put(Dst, 9149); 2158 dasm_put(Dst, 9450);
2141 } 2159 }
2142 dasm_put(Dst, 13256, LJ_TNIL); 2160 dasm_put(Dst, 13557, LJ_TNIL);
2143 break; 2161 break;
2144 2162
2145 case BC_JFUNCV: 2163 case BC_JFUNCV:
2146#if !LJ_HASJIT 2164#if !LJ_HASJIT
2147 break; 2165 break;
2148#endif 2166#endif
2149 dasm_put(Dst, 7117); 2167 dasm_put(Dst, 9141);
2150 break; /* NYI: compiled vararg functions. */ 2168 break; /* NYI: compiled vararg functions. */
2151 2169
2152 case BC_IFUNCV: 2170 case BC_IFUNCV:
2153 dasm_put(Dst, 13278, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2171 dasm_put(Dst, 13579, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2154 if (op == BC_JFUNCV) { 2172 if (op == BC_JFUNCV) {
2155 dasm_put(Dst, 13247, BC_JLOOP); 2173 dasm_put(Dst, 13548, BC_JLOOP);
2156 } else { 2174 } else {
2157 dasm_put(Dst, 13369, -4+PC2PROTO(k)); 2175 dasm_put(Dst, 13670, -4+PC2PROTO(k));
2158 } 2176 }
2159 dasm_put(Dst, 13392, LJ_TNIL); 2177 dasm_put(Dst, 13693, LJ_TNIL);
2160 break; 2178 break;
2161 2179
2162 case BC_FUNCC: 2180 case BC_FUNCC:
2163 case BC_FUNCCW: 2181 case BC_FUNCCW:
2164 dasm_put(Dst, 13414, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2182 dasm_put(Dst, 13715, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2165 if (op == BC_FUNCC) { 2183 if (op == BC_FUNCC) {
2166 dasm_put(Dst, 13444); 2184 dasm_put(Dst, 13745);
2167 } else { 2185 } else {
2168 dasm_put(Dst, 13448); 2186 dasm_put(Dst, 13749);
2169 } 2187 }
2170 dasm_put(Dst, 13456, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2188 dasm_put(Dst, 13757, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2171 if (op == BC_FUNCC) { 2189 if (op == BC_FUNCC) {
2172 dasm_put(Dst, 13465); 2190 dasm_put(Dst, 13766);
2173 } else { 2191 } else {
2174 dasm_put(Dst, 13469, DISPATCH_GL(wrapf)); 2192 dasm_put(Dst, 13770, DISPATCH_GL(wrapf));
2175 } 2193 }
2176 dasm_put(Dst, 13474, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2194 dasm_put(Dst, 13775, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2177 break; 2195 break;
2178 2196
2179 /* ---------------------------------------------------------------------- */ 2197 /* ---------------------------------------------------------------------- */
@@ -2201,7 +2219,7 @@ static int build_backend(BuildCtx *ctx)
2201 2219
2202 build_subroutines(ctx, cmov, sse); 2220 build_subroutines(ctx, cmov, sse);
2203 2221
2204 dasm_put(Dst, 13499); 2222 dasm_put(Dst, 13800);
2205 for (op = 0; op < BC__MAX; op++) 2223 for (op = 0; op < BC__MAX; op++)
2206 build_ins(ctx, (BCOp)op, op, cmov, sse); 2224 build_ins(ctx, (BCOp)op, op, cmov, sse);
2207 2225