aboutsummaryrefslogtreecommitdiff
path: root/src/buildvm_x64win.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64win.h')
-rw-r--r--src/buildvm_x64win.h890
1 files changed, 446 insertions, 444 deletions
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index bc4da564..2ca7c7b2 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[14208] = { 15static const unsigned char build_actionlist[14229] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68, 17 141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237, 18 36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
@@ -129,16 +129,17 @@ static const unsigned char build_actionlist[14208] = {
129 133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137, 129 133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,
130 2,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199, 130 2,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,
131 66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139, 131 66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,
132 106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,114,252,252,199, 132 42,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,
133 66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,248,71, 133 248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,
134 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,122,253, 134 12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,
135 12,239,15,135,244,55,139,114,252,252,255,252,242,15,16,66,8,72,189,237,237, 135 253,4,239,15,133,244,55,129,122,253,12,239,255,15,135,244,55,139,114,252,
136 102,72,15,110,205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252, 136 252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,
137 248,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120, 137 193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,
138 253,4,239,15,132,244,72,72,139,40,72,137,42,252,233,244,68,248,2,131,189, 138 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,
139 233,0,15,132,244,72,137,252,233,137,213,137,194,232,251,1,12,137,252,234, 139 40,72,137,42,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,
140 133,192,15,133,244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248, 140 137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,
141 239,15,130,244,55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133, 141 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,
142 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,
142 233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242, 143 233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,
143 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129, 144 15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,
144 252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233, 145 252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,
@@ -1112,331 +1113,332 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1112 dasm_put(Dst, 2149, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1113 dasm_put(Dst, 2149, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1113 dasm_put(Dst, 2215, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1114 dasm_put(Dst, 2215, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1114 dasm_put(Dst, 2282, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1115 dasm_put(Dst, 2282, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1115 dasm_put(Dst, 2371, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1116 dasm_put(Dst, 2371, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1117 dasm_put(Dst, 2445);
1116 if (sse) { 1118 if (sse) {
1117 dasm_put(Dst, 2443, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1119 dasm_put(Dst, 2454, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1118 } else { 1120 } else {
1119 } 1121 }
1120 dasm_put(Dst, 2476, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1122 dasm_put(Dst, 2487, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1121 dasm_put(Dst, 2553, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1123 dasm_put(Dst, 2564, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC);
1122 if (sse) { 1124 if (sse) {
1123 dasm_put(Dst, 2591); 1125 dasm_put(Dst, 2612);
1124 } else { 1126 } else {
1125 dasm_put(Dst, 2601); 1127 dasm_put(Dst, 2622);
1126 } 1128 }
1127 dasm_put(Dst, 2608, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1129 dasm_put(Dst, 2629, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1128 dasm_put(Dst, 2672, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1130 dasm_put(Dst, 2693, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1129 dasm_put(Dst, 2762, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1131 dasm_put(Dst, 2783, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1130 dasm_put(Dst, 2850, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1132 dasm_put(Dst, 2871, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1131 dasm_put(Dst, 2963, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1133 dasm_put(Dst, 2984, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1132 dasm_put(Dst, 3061, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1134 dasm_put(Dst, 3082, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1133 dasm_put(Dst, 3128, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1135 dasm_put(Dst, 3149, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1134 dasm_put(Dst, 3216, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1136 dasm_put(Dst, 3237, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1135 dasm_put(Dst, 3328, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1137 dasm_put(Dst, 3349, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1136 if (sse) { 1138 if (sse) {
1137 dasm_put(Dst, 3355, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1139 dasm_put(Dst, 3376, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1138 } else { 1140 } else {
1139 dasm_put(Dst, 3419, 1+1, LJ_TISNUM); 1141 dasm_put(Dst, 3440, 1+1, LJ_TISNUM);
1140 } 1142 }
1141 dasm_put(Dst, 3455, 1+1, FRAME_TYPE, LJ_TNIL); 1143 dasm_put(Dst, 3476, 1+1, FRAME_TYPE, LJ_TNIL);
1142 if (sse) { 1144 if (sse) {
1143 dasm_put(Dst, 3549, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1145 dasm_put(Dst, 3570, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1144 dasm_put(Dst, 3611, 1+1, LJ_TISNUM); 1146 dasm_put(Dst, 3632, 1+1, LJ_TISNUM);
1145 } else { 1147 } else {
1146 dasm_put(Dst, 3641, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1148 dasm_put(Dst, 3662, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1147 dasm_put(Dst, 3700, 1+1, LJ_TISNUM); 1149 dasm_put(Dst, 3721, 1+1, LJ_TISNUM);
1148 } 1150 }
1149 dasm_put(Dst, 3727, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1151 dasm_put(Dst, 3748, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1150 dasm_put(Dst, 3796, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1152 dasm_put(Dst, 3817, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1151 dasm_put(Dst, 3853, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1153 dasm_put(Dst, 3874, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1152 dasm_put(Dst, 3916, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1154 dasm_put(Dst, 3937, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1153 dasm_put(Dst, 4006); 1155 dasm_put(Dst, 4027);
1154 if (sse) { 1156 if (sse) {
1155 dasm_put(Dst, 4018, 1+1, LJ_TISNUM); 1157 dasm_put(Dst, 4039, 1+1, LJ_TISNUM);
1156 } else { 1158 } else {
1157 } 1159 }
1158 dasm_put(Dst, 4043); 1160 dasm_put(Dst, 4064);
1159 if (sse) { 1161 if (sse) {
1160 dasm_put(Dst, 4057, 1+1, LJ_TISNUM); 1162 dasm_put(Dst, 4078, 1+1, LJ_TISNUM);
1161 } else { 1163 } else {
1162 } 1164 }
1163 dasm_put(Dst, 4082); 1165 dasm_put(Dst, 4103);
1164 if (sse) { 1166 if (sse) {
1165 dasm_put(Dst, 4096, 1+1, LJ_TISNUM); 1167 dasm_put(Dst, 4117, 1+1, LJ_TISNUM);
1166 } else { 1168 } else {
1167 } 1169 }
1168 dasm_put(Dst, 4121); 1170 dasm_put(Dst, 4142);
1169 if (sse) { 1171 if (sse) {
1170 dasm_put(Dst, 4137, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1172 dasm_put(Dst, 4158, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1171 } else { 1173 } else {
1172 dasm_put(Dst, 4176, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1174 dasm_put(Dst, 4197, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1173 } 1175 }
1174 dasm_put(Dst, 4209, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1176 dasm_put(Dst, 4230, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1175 dasm_put(Dst, 4274, 1+1, LJ_TISNUM); 1177 dasm_put(Dst, 4295, 1+1, LJ_TISNUM);
1176 if (sse) { 1178 if (sse) {
1177 dasm_put(Dst, 4373); 1179 dasm_put(Dst, 4394);
1178 } else { 1180 } else {
1179 dasm_put(Dst, 4379); 1181 dasm_put(Dst, 4400);
1180 } 1182 }
1181 dasm_put(Dst, 4388); 1183 dasm_put(Dst, 4409);
1182 if (sse) { 1184 if (sse) {
1183 dasm_put(Dst, 4413); 1185 dasm_put(Dst, 4434);
1184 } else { 1186 } else {
1185 dasm_put(Dst, 4419); 1187 dasm_put(Dst, 4440);
1186 } 1188 }
1187 dasm_put(Dst, 4422, 1+2); 1189 dasm_put(Dst, 4443, 1+2);
1188 if (sse) { 1190 if (sse) {
1189 dasm_put(Dst, 4431); 1191 dasm_put(Dst, 4452);
1190 } else { 1192 } else {
1191 dasm_put(Dst, 4439); 1193 dasm_put(Dst, 4460);
1192 } 1194 }
1193 dasm_put(Dst, 4447); 1195 dasm_put(Dst, 4468);
1194 if (sse) { 1196 if (sse) {
1195 dasm_put(Dst, 4450, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1197 dasm_put(Dst, 4471, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1196 } else { 1198 } else {
1197 dasm_put(Dst, 4477); 1199 dasm_put(Dst, 4498);
1198 } 1200 }
1199 dasm_put(Dst, 4496); 1201 dasm_put(Dst, 4517);
1200 if (sse) { 1202 if (sse) {
1201 dasm_put(Dst, 4512, 1+1, LJ_TISNUM); 1203 dasm_put(Dst, 4533, 1+1, LJ_TISNUM);
1202 } else { 1204 } else {
1203 dasm_put(Dst, 4537, 1+1, LJ_TISNUM); 1205 dasm_put(Dst, 4558, 1+1, LJ_TISNUM);
1204 } 1206 }
1205 dasm_put(Dst, 4559); 1207 dasm_put(Dst, 4580);
1206 if (sse) { 1208 if (sse) {
1207 dasm_put(Dst, 4581); 1209 dasm_put(Dst, 4602);
1208 } else { 1210 } else {
1209 dasm_put(Dst, 4607); 1211 dasm_put(Dst, 4628);
1210 } 1212 }
1211 dasm_put(Dst, 4624, 1+2); 1213 dasm_put(Dst, 4645, 1+2);
1212 if (sse) { 1214 if (sse) {
1213 dasm_put(Dst, 4664); 1215 dasm_put(Dst, 4685);
1214 } else { 1216 } else {
1215 dasm_put(Dst, 4672); 1217 dasm_put(Dst, 4693);
1216 } 1218 }
1217 dasm_put(Dst, 4682, 2+1, LJ_TISNUM, LJ_TISNUM); 1219 dasm_put(Dst, 4703, 2+1, LJ_TISNUM, LJ_TISNUM);
1218 if (sse) { 1220 if (sse) {
1219 dasm_put(Dst, 4734, 2+1, LJ_TISNUM, LJ_TISNUM); 1221 dasm_put(Dst, 4755, 2+1, LJ_TISNUM, LJ_TISNUM);
1220 } else { 1222 } else {
1221 dasm_put(Dst, 4781, 2+1, LJ_TISNUM, LJ_TISNUM); 1223 dasm_put(Dst, 4802, 2+1, LJ_TISNUM, LJ_TISNUM);
1222 } 1224 }
1223 if (sse) { 1225 if (sse) {
1224 dasm_put(Dst, 4822, 1+1, LJ_TISNUM, LJ_TISNUM); 1226 dasm_put(Dst, 4843, 1+1, LJ_TISNUM, LJ_TISNUM);
1225 } else { 1227 } else {
1226 } 1228 }
1227 if (sse) { 1229 if (sse) {
1228 dasm_put(Dst, 4893, 1+1, LJ_TISNUM, LJ_TISNUM); 1230 dasm_put(Dst, 4914, 1+1, LJ_TISNUM, LJ_TISNUM);
1229 } else { 1231 } else {
1230 } 1232 }
1231 if (!sse) { 1233 if (!sse) {
1232 dasm_put(Dst, 4964); 1234 dasm_put(Dst, 4985);
1233 } 1235 }
1234 dasm_put(Dst, 4973, 1+1, LJ_TSTR); 1236 dasm_put(Dst, 4994, 1+1, LJ_TSTR);
1235 if (sse) { 1237 if (sse) {
1236 dasm_put(Dst, 4995, Dt5(->len)); 1238 dasm_put(Dst, 5016, Dt5(->len));
1237 } else { 1239 } else {
1238 dasm_put(Dst, 5006, Dt5(->len)); 1240 dasm_put(Dst, 5027, Dt5(->len));
1239 } 1241 }
1240 dasm_put(Dst, 5014, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1242 dasm_put(Dst, 5035, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1241 if (sse) { 1243 if (sse) {
1242 dasm_put(Dst, 5052); 1244 dasm_put(Dst, 5073);
1243 } else { 1245 } else {
1244 dasm_put(Dst, 5062); 1246 dasm_put(Dst, 5083);
1245 } 1247 }
1246 dasm_put(Dst, 5075, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1248 dasm_put(Dst, 5096, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1247 if (sse) { 1249 if (sse) {
1248 dasm_put(Dst, 5110); 1250 dasm_put(Dst, 5131);
1249 } else { 1251 } else {
1250 dasm_put(Dst, 5132); 1252 dasm_put(Dst, 5153);
1251 } 1253 }
1252 dasm_put(Dst, 5152, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1254 dasm_put(Dst, 5173, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1253 dasm_put(Dst, 2127); 1255 dasm_put(Dst, 2127);
1254 if (sse) { 1256 if (sse) {
1255 dasm_put(Dst, 5260); 1257 dasm_put(Dst, 5281);
1256 } else { 1258 } else {
1257 dasm_put(Dst, 5271); 1259 dasm_put(Dst, 5292);
1258 } 1260 }
1259 dasm_put(Dst, 5279, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1261 dasm_put(Dst, 5300, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1260 if (sse) { 1262 if (sse) {
1261 dasm_put(Dst, 5309); 1263 dasm_put(Dst, 5330);
1262 } else { 1264 } else {
1263 } 1265 }
1264 dasm_put(Dst, 5316, sizeof(GCstr)-1); 1266 dasm_put(Dst, 5337, sizeof(GCstr)-1);
1265 dasm_put(Dst, 5391, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1267 dasm_put(Dst, 5412, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1266 dasm_put(Dst, 5450, LJ_TSTR, LJ_TISNUM); 1268 dasm_put(Dst, 5471, LJ_TSTR, LJ_TISNUM);
1267 if (sse) { 1269 if (sse) {
1268 dasm_put(Dst, 5471); 1270 dasm_put(Dst, 5492);
1269 } else { 1271 } else {
1270 dasm_put(Dst, 5478); 1272 dasm_put(Dst, 5499);
1271 } 1273 }
1272 dasm_put(Dst, 5490, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1274 dasm_put(Dst, 5511, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1273 dasm_put(Dst, 5555, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1275 dasm_put(Dst, 5576, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1274 dasm_put(Dst, 5618, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1276 dasm_put(Dst, 5639, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1275 dasm_put(Dst, 5689, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1277 dasm_put(Dst, 5710, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1276 dasm_put(Dst, 5774, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1278 dasm_put(Dst, 5795, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1277 dasm_put(Dst, 5844, 1+1, LJ_TTAB); 1279 dasm_put(Dst, 5865, 1+1, LJ_TTAB);
1278 if (sse) { 1280 if (sse) {
1279 dasm_put(Dst, 5912); 1281 dasm_put(Dst, 5933);
1280 } else { 1282 } else {
1281 } 1283 }
1282 if (sse) { 1284 if (sse) {
1283 dasm_put(Dst, 5922, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1285 dasm_put(Dst, 5943, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1284 } else { 1286 } else {
1285 } 1287 }
1286 if (sse) { 1288 if (sse) {
1287 dasm_put(Dst, 5974, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1289 dasm_put(Dst, 5995, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1288 } else { 1290 } else {
1289 } 1291 }
1290 dasm_put(Dst, 6017, LJ_TISNUM); 1292 dasm_put(Dst, 6038, LJ_TISNUM);
1291 if (sse) { 1293 if (sse) {
1292 dasm_put(Dst, 6044); 1294 dasm_put(Dst, 6065);
1293 } else { 1295 } else {
1294 } 1296 }
1295 dasm_put(Dst, 6061); 1297 dasm_put(Dst, 6082);
1296 if (sse) { 1298 if (sse) {
1297 dasm_put(Dst, 6069, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1299 dasm_put(Dst, 6090, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1298 } else { 1300 } else {
1299 } 1301 }
1300 dasm_put(Dst, 6017, LJ_TISNUM); 1302 dasm_put(Dst, 6038, LJ_TISNUM);
1301 if (sse) { 1303 if (sse) {
1302 dasm_put(Dst, 6112); 1304 dasm_put(Dst, 6133);
1303 } else { 1305 } else {
1304 } 1306 }
1305 dasm_put(Dst, 6061); 1307 dasm_put(Dst, 6082);
1306 if (sse) { 1308 if (sse) {
1307 dasm_put(Dst, 6129, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1309 dasm_put(Dst, 6150, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1308 } else { 1310 } else {
1309 } 1311 }
1310 dasm_put(Dst, 6017, LJ_TISNUM); 1312 dasm_put(Dst, 6038, LJ_TISNUM);
1311 if (sse) { 1313 if (sse) {
1312 dasm_put(Dst, 6172); 1314 dasm_put(Dst, 6193);
1313 } else { 1315 } else {
1314 } 1316 }
1315 dasm_put(Dst, 6061); 1317 dasm_put(Dst, 6082);
1316 if (sse) { 1318 if (sse) {
1317 dasm_put(Dst, 6189, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1319 dasm_put(Dst, 6210, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1318 } else { 1320 } else {
1319 } 1321 }
1320 dasm_put(Dst, 6232); 1322 dasm_put(Dst, 6253);
1321 if (sse) { 1323 if (sse) {
1322 dasm_put(Dst, 6239, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1324 dasm_put(Dst, 6260, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1323 } else { 1325 } else {
1324 } 1326 }
1325 dasm_put(Dst, 6282); 1327 dasm_put(Dst, 6303);
1326 if (sse) { 1328 if (sse) {
1327 dasm_put(Dst, 6286); 1329 dasm_put(Dst, 6307);
1328 } else { 1330 } else {
1329 } 1331 }
1330 dasm_put(Dst, 6298); 1332 dasm_put(Dst, 6319);
1331 if (sse) { 1333 if (sse) {
1332 dasm_put(Dst, 6309, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1334 dasm_put(Dst, 6330, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1333 } else { 1335 } else {
1334 } 1336 }
1335 dasm_put(Dst, 6378); 1337 dasm_put(Dst, 6399);
1336 if (sse) { 1338 if (sse) {
1337 dasm_put(Dst, 6387, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1339 dasm_put(Dst, 6408, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1338 } else { 1340 } else {
1339 } 1341 }
1340 dasm_put(Dst, 6456); 1342 dasm_put(Dst, 6477);
1341 if (sse) { 1343 if (sse) {
1342 dasm_put(Dst, 6466, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1344 dasm_put(Dst, 6487, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1343 } else { 1345 } else {
1344 } 1346 }
1345 dasm_put(Dst, 6535); 1347 dasm_put(Dst, 6556);
1346 if (sse) { 1348 if (sse) {
1347 dasm_put(Dst, 6545, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1349 dasm_put(Dst, 6566, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1348 } else { 1350 } else {
1349 } 1351 }
1350 dasm_put(Dst, 6614); 1352 dasm_put(Dst, 6635);
1351 if (sse) { 1353 if (sse) {
1352 dasm_put(Dst, 6623, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1354 dasm_put(Dst, 6644, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1353 } else { 1355 } else {
1354 } 1356 }
1355 dasm_put(Dst, 6692, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1357 dasm_put(Dst, 6713, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1356 dasm_put(Dst, 6770, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1358 dasm_put(Dst, 6791, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1357 dasm_put(Dst, 6897, Dt1(->top), Dt1(->base), Dt1(->top)); 1359 dasm_put(Dst, 6918, Dt1(->top), Dt1(->base), Dt1(->top));
1358#if LJ_HASJIT 1360#if LJ_HASJIT
1359 dasm_put(Dst, 6936, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1361 dasm_put(Dst, 6957, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1360#endif 1362#endif
1361 dasm_put(Dst, 6967, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1363 dasm_put(Dst, 6988, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1362 dasm_put(Dst, 7018, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1364 dasm_put(Dst, 7039, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1363#if LJ_HASJIT 1365#if LJ_HASJIT
1364 dasm_put(Dst, 7085, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1366 dasm_put(Dst, 7106, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1365#endif 1367#endif
1366 dasm_put(Dst, 7132); 1368 dasm_put(Dst, 7153);
1367#if LJ_HASJIT 1369#if LJ_HASJIT
1368 dasm_put(Dst, 6962); 1370 dasm_put(Dst, 6983);
1369#endif 1371#endif
1370 dasm_put(Dst, 7139); 1372 dasm_put(Dst, 7160);
1371#if LJ_HASJIT 1373#if LJ_HASJIT
1372 dasm_put(Dst, 7142); 1374 dasm_put(Dst, 7163);
1373#endif 1375#endif
1374 dasm_put(Dst, 7152, Dt1(->base), Dt1(->top)); 1376 dasm_put(Dst, 7173, Dt1(->base), Dt1(->top));
1375#if LJ_HASJIT 1377#if LJ_HASJIT
1376 dasm_put(Dst, 7186); 1378 dasm_put(Dst, 7207);
1377#endif 1379#endif
1378 dasm_put(Dst, 7191, Dt1(->base), Dt1(->top)); 1380 dasm_put(Dst, 7212, Dt1(->base), Dt1(->top));
1379#if LJ_HASJIT 1381#if LJ_HASJIT
1380 dasm_put(Dst, 7222, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1382 dasm_put(Dst, 7243, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1381#endif 1383#endif
1382 dasm_put(Dst, 7452); 1384 dasm_put(Dst, 7473);
1383#if LJ_HASJIT 1385#if LJ_HASJIT
1384 dasm_put(Dst, 7455, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1386 dasm_put(Dst, 7476, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1385 dasm_put(Dst, 7597); 1387 dasm_put(Dst, 7618);
1386#endif 1388#endif
1387 dasm_put(Dst, 7623); 1389 dasm_put(Dst, 7644);
1388 if (!sse) { 1390 if (!sse) {
1389 dasm_put(Dst, 7626); 1391 dasm_put(Dst, 7647);
1390 } 1392 }
1391 dasm_put(Dst, 7671, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1393 dasm_put(Dst, 7692, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1392 if (!sse) { 1394 if (!sse) {
1393 dasm_put(Dst, 7757); 1395 dasm_put(Dst, 7778);
1394 } 1396 }
1395 dasm_put(Dst, 7802, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1397 dasm_put(Dst, 7823, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1396 if (!sse) { 1398 if (!sse) {
1397 dasm_put(Dst, 7888); 1399 dasm_put(Dst, 7909);
1398 } 1400 }
1399 dasm_put(Dst, 7927, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1401 dasm_put(Dst, 7948, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1400 if (sse) { 1402 if (sse) {
1401 dasm_put(Dst, 8016, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1403 dasm_put(Dst, 8037, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1402 } else { 1404 } else {
1403 dasm_put(Dst, 8130); 1405 dasm_put(Dst, 8151);
1404 } 1406 }
1405 dasm_put(Dst, 8177); 1407 dasm_put(Dst, 8198);
1406 if (!sse) { 1408 if (!sse) {
1407 } else { 1409 } else {
1408 dasm_put(Dst, 8251); 1410 dasm_put(Dst, 8272);
1409 } 1411 }
1410 dasm_put(Dst, 8254); 1412 dasm_put(Dst, 8275);
1411 dasm_put(Dst, 8339, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1413 dasm_put(Dst, 8360, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1412 dasm_put(Dst, 8440, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1414 dasm_put(Dst, 8461, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1413 dasm_put(Dst, 8608); 1415 dasm_put(Dst, 8629);
1414#if LJ_HASJIT 1416#if LJ_HASJIT
1415 if (sse) { 1417 if (sse) {
1416 dasm_put(Dst, 8649); 1418 dasm_put(Dst, 8670);
1417 dasm_put(Dst, 8719); 1419 dasm_put(Dst, 8740);
1418 dasm_put(Dst, 8792); 1420 dasm_put(Dst, 8813);
1419 } else { 1421 } else {
1420 dasm_put(Dst, 8842); 1422 dasm_put(Dst, 8863);
1421 dasm_put(Dst, 8934); 1423 dasm_put(Dst, 8955);
1422 } 1424 }
1423 dasm_put(Dst, 8980); 1425 dasm_put(Dst, 9001);
1424#endif 1426#endif
1425 dasm_put(Dst, 8984); 1427 dasm_put(Dst, 9005);
1426 if (sse) { 1428 if (sse) {
1427 dasm_put(Dst, 8987, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1429 dasm_put(Dst, 9008, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1428 dasm_put(Dst, 9076, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1430 dasm_put(Dst, 9097, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1429 } else { 1431 } else {
1430 dasm_put(Dst, 9200); 1432 dasm_put(Dst, 9221);
1431 dasm_put(Dst, 9283); 1433 dasm_put(Dst, 9304);
1432 if (cmov) { 1434 if (cmov) {
1433 dasm_put(Dst, 9338); 1435 dasm_put(Dst, 9359);
1434 } else { 1436 } else {
1435 dasm_put(Dst, 9357); 1437 dasm_put(Dst, 9378);
1436 } 1438 }
1437 dasm_put(Dst, 8980); 1439 dasm_put(Dst, 9001);
1438 } 1440 }
1439 dasm_put(Dst, 9398); 1441 dasm_put(Dst, 9419);
1440} 1442}
1441 1443
1442/* Generate the code for a single instruction. */ 1444/* Generate the code for a single instruction. */
@@ -1452,618 +1454,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1452 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1454 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1453 1455
1454 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1456 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1455 dasm_put(Dst, 9424, LJ_TISNUM, LJ_TISNUM); 1457 dasm_put(Dst, 9445, LJ_TISNUM, LJ_TISNUM);
1456 if (sse) { 1458 if (sse) {
1457 dasm_put(Dst, 9445); 1459 dasm_put(Dst, 9466);
1458 } else { 1460 } else {
1459 dasm_put(Dst, 9460); 1461 dasm_put(Dst, 9481);
1460 if (cmov) { 1462 if (cmov) {
1461 dasm_put(Dst, 9470); 1463 dasm_put(Dst, 9491);
1462 } else { 1464 } else {
1463 dasm_put(Dst, 9476); 1465 dasm_put(Dst, 9497);
1464 } 1466 }
1465 } 1467 }
1466 switch (op) { 1468 switch (op) {
1467 case BC_ISLT: 1469 case BC_ISLT:
1468 dasm_put(Dst, 9483); 1470 dasm_put(Dst, 9504);
1469 break; 1471 break;
1470 case BC_ISGE: 1472 case BC_ISGE:
1471 dasm_put(Dst, 9278); 1473 dasm_put(Dst, 9299);
1472 break; 1474 break;
1473 case BC_ISLE: 1475 case BC_ISLE:
1474 dasm_put(Dst, 5839); 1476 dasm_put(Dst, 5860);
1475 break; 1477 break;
1476 case BC_ISGT: 1478 case BC_ISGT:
1477 dasm_put(Dst, 9488); 1479 dasm_put(Dst, 9509);
1478 break; 1480 break;
1479 default: break; /* Shut up GCC. */ 1481 default: break; /* Shut up GCC. */
1480 } 1482 }
1481 dasm_put(Dst, 9493, -BCBIAS_J*4); 1483 dasm_put(Dst, 9514, -BCBIAS_J*4);
1482 break; 1484 break;
1483 1485
1484 case BC_ISEQV: case BC_ISNEV: 1486 case BC_ISEQV: case BC_ISNEV:
1485 vk = op == BC_ISEQV; 1487 vk = op == BC_ISEQV;
1486 dasm_put(Dst, 9527, LJ_TISNUM, LJ_TISNUM); 1488 dasm_put(Dst, 9548, LJ_TISNUM, LJ_TISNUM);
1487 if (sse) { 1489 if (sse) {
1488 dasm_put(Dst, 9553); 1490 dasm_put(Dst, 9574);
1489 } else { 1491 } else {
1490 dasm_put(Dst, 9565); 1492 dasm_put(Dst, 9586);
1491 if (cmov) { 1493 if (cmov) {
1492 dasm_put(Dst, 9470); 1494 dasm_put(Dst, 9491);
1493 } else { 1495 } else {
1494 dasm_put(Dst, 9476); 1496 dasm_put(Dst, 9497);
1495 } 1497 }
1496 } 1498 }
1497 iseqne_fp: 1499 iseqne_fp:
1498 if (vk) { 1500 if (vk) {
1499 dasm_put(Dst, 9572); 1501 dasm_put(Dst, 9593);
1500 } else { 1502 } else {
1501 dasm_put(Dst, 9581); 1503 dasm_put(Dst, 9602);
1502 } 1504 }
1503 iseqne_end: 1505 iseqne_end:
1504 if (vk) { 1506 if (vk) {
1505 dasm_put(Dst, 9590, -BCBIAS_J*4); 1507 dasm_put(Dst, 9611, -BCBIAS_J*4);
1506 } else { 1508 } else {
1507 dasm_put(Dst, 9605, -BCBIAS_J*4); 1509 dasm_put(Dst, 9626, -BCBIAS_J*4);
1508 } 1510 }
1509 dasm_put(Dst, 9507); 1511 dasm_put(Dst, 9528);
1510 if (op == BC_ISEQV || op == BC_ISNEV) { 1512 if (op == BC_ISEQV || op == BC_ISNEV) {
1511 dasm_put(Dst, 9620, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1513 dasm_put(Dst, 9641, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1512 if (vk) { 1514 if (vk) {
1513 dasm_put(Dst, 9678); 1515 dasm_put(Dst, 9699);
1514 } else { 1516 } else {
1515 dasm_put(Dst, 9682); 1517 dasm_put(Dst, 9703);
1516 } 1518 }
1517 dasm_put(Dst, 9688); 1519 dasm_put(Dst, 9709);
1518 } 1520 }
1519 break; 1521 break;
1520 case BC_ISEQS: case BC_ISNES: 1522 case BC_ISEQS: case BC_ISNES:
1521 vk = op == BC_ISEQS; 1523 vk = op == BC_ISEQS;
1522 dasm_put(Dst, 9693, LJ_TSTR); 1524 dasm_put(Dst, 9714, LJ_TSTR);
1523 iseqne_test: 1525 iseqne_test:
1524 if (vk) { 1526 if (vk) {
1525 dasm_put(Dst, 9576); 1527 dasm_put(Dst, 9597);
1526 } else { 1528 } else {
1527 dasm_put(Dst, 2757); 1529 dasm_put(Dst, 2778);
1528 } 1530 }
1529 goto iseqne_end; 1531 goto iseqne_end;
1530 case BC_ISEQN: case BC_ISNEN: 1532 case BC_ISEQN: case BC_ISNEN:
1531 vk = op == BC_ISEQN; 1533 vk = op == BC_ISEQN;
1532 dasm_put(Dst, 9717, LJ_TISNUM); 1534 dasm_put(Dst, 9738, LJ_TISNUM);
1533 if (sse) { 1535 if (sse) {
1534 dasm_put(Dst, 9731); 1536 dasm_put(Dst, 9752);
1535 } else { 1537 } else {
1536 dasm_put(Dst, 9743); 1538 dasm_put(Dst, 9764);
1537 if (cmov) { 1539 if (cmov) {
1538 dasm_put(Dst, 9470); 1540 dasm_put(Dst, 9491);
1539 } else { 1541 } else {
1540 dasm_put(Dst, 9476); 1542 dasm_put(Dst, 9497);
1541 } 1543 }
1542 } 1544 }
1543 goto iseqne_fp; 1545 goto iseqne_fp;
1544 case BC_ISEQP: case BC_ISNEP: 1546 case BC_ISEQP: case BC_ISNEP:
1545 vk = op == BC_ISEQP; 1547 vk = op == BC_ISEQP;
1546 dasm_put(Dst, 9750); 1548 dasm_put(Dst, 9771);
1547 goto iseqne_test; 1549 goto iseqne_test;
1548 1550
1549 /* -- Unary test and copy ops ------------------------------------------- */ 1551 /* -- Unary test and copy ops ------------------------------------------- */
1550 1552
1551 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1553 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1552 dasm_put(Dst, 9762, LJ_TISTRUECOND); 1554 dasm_put(Dst, 9783, LJ_TISTRUECOND);
1553 if (op == BC_IST || op == BC_ISTC) { 1555 if (op == BC_IST || op == BC_ISTC) {
1554 dasm_put(Dst, 9774); 1556 dasm_put(Dst, 9795);
1555 } else { 1557 } else {
1556 dasm_put(Dst, 9779); 1558 dasm_put(Dst, 9800);
1557 } 1559 }
1558 if (op == BC_ISTC || op == BC_ISFC) { 1560 if (op == BC_ISTC || op == BC_ISFC) {
1559 dasm_put(Dst, 9784); 1561 dasm_put(Dst, 9805);
1560 } 1562 }
1561 dasm_put(Dst, 9795, -BCBIAS_J*4); 1563 dasm_put(Dst, 9816, -BCBIAS_J*4);
1562 break; 1564 break;
1563 1565
1564 /* -- Unary ops --------------------------------------------------------- */ 1566 /* -- Unary ops --------------------------------------------------------- */
1565 1567
1566 case BC_MOV: 1568 case BC_MOV:
1567 dasm_put(Dst, 9827); 1569 dasm_put(Dst, 9848);
1568 break; 1570 break;
1569 case BC_NOT: 1571 case BC_NOT:
1570 dasm_put(Dst, 9855, LJ_TISTRUECOND, LJ_TTRUE); 1572 dasm_put(Dst, 9876, LJ_TISTRUECOND, LJ_TTRUE);
1571 break; 1573 break;
1572 case BC_UNM: 1574 case BC_UNM:
1573 dasm_put(Dst, 9891, LJ_TISNUM); 1575 dasm_put(Dst, 9912, LJ_TISNUM);
1574 if (sse) { 1576 if (sse) {
1575 dasm_put(Dst, 9902, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1577 dasm_put(Dst, 9923, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1576 } else { 1578 } else {
1577 dasm_put(Dst, 9927); 1579 dasm_put(Dst, 9948);
1578 } 1580 }
1579 dasm_put(Dst, 9507); 1581 dasm_put(Dst, 9528);
1580 break; 1582 break;
1581 case BC_LEN: 1583 case BC_LEN:
1582 dasm_put(Dst, 9936, LJ_TSTR); 1584 dasm_put(Dst, 9957, LJ_TSTR);
1583 if (sse) { 1585 if (sse) {
1584 dasm_put(Dst, 9950, Dt5(->len)); 1586 dasm_put(Dst, 9971, Dt5(->len));
1585 } else { 1587 } else {
1586 dasm_put(Dst, 9968, Dt5(->len)); 1588 dasm_put(Dst, 9989, Dt5(->len));
1587 } 1589 }
1588 dasm_put(Dst, 9977, LJ_TTAB); 1590 dasm_put(Dst, 9998, LJ_TTAB);
1589 if (sse) { 1591 if (sse) {
1590 dasm_put(Dst, 10018); 1592 dasm_put(Dst, 10039);
1591 } else { 1593 } else {
1592 } 1594 }
1593 dasm_put(Dst, 10027); 1595 dasm_put(Dst, 10048);
1594 break; 1596 break;
1595 1597
1596 /* -- Binary ops -------------------------------------------------------- */ 1598 /* -- Binary ops -------------------------------------------------------- */
1597 1599
1598 1600
1599 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1601 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1600 dasm_put(Dst, 10037); 1602 dasm_put(Dst, 10058);
1601 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1603 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1602 switch (vk) { 1604 switch (vk) {
1603 case 0: 1605 case 0:
1604 dasm_put(Dst, 10045, LJ_TISNUM); 1606 dasm_put(Dst, 10066, LJ_TISNUM);
1605 if (sse) { 1607 if (sse) {
1606 dasm_put(Dst, 10057); 1608 dasm_put(Dst, 10078);
1607 } else { 1609 } else {
1608 dasm_put(Dst, 10071); 1610 dasm_put(Dst, 10092);
1609 } 1611 }
1610 break; 1612 break;
1611 case 1: 1613 case 1:
1612 dasm_put(Dst, 10079, LJ_TISNUM); 1614 dasm_put(Dst, 10100, LJ_TISNUM);
1613 if (sse) { 1615 if (sse) {
1614 dasm_put(Dst, 10091); 1616 dasm_put(Dst, 10112);
1615 } else { 1617 } else {
1616 dasm_put(Dst, 10105); 1618 dasm_put(Dst, 10126);
1617 } 1619 }
1618 break; 1620 break;
1619 default: 1621 default:
1620 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1622 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1621 if (sse) { 1623 if (sse) {
1622 dasm_put(Dst, 10135); 1624 dasm_put(Dst, 10156);
1623 } else { 1625 } else {
1624 dasm_put(Dst, 10149); 1626 dasm_put(Dst, 10170);
1625 } 1627 }
1626 break; 1628 break;
1627 } 1629 }
1628 if (sse) { 1630 if (sse) {
1629 dasm_put(Dst, 9920); 1631 dasm_put(Dst, 9941);
1630 } else { 1632 } else {
1631 dasm_put(Dst, 9932); 1633 dasm_put(Dst, 9953);
1632 } 1634 }
1633 dasm_put(Dst, 9507); 1635 dasm_put(Dst, 9528);
1634 break; 1636 break;
1635 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1637 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1636 dasm_put(Dst, 10037); 1638 dasm_put(Dst, 10058);
1637 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1639 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1638 switch (vk) { 1640 switch (vk) {
1639 case 0: 1641 case 0:
1640 dasm_put(Dst, 10045, LJ_TISNUM); 1642 dasm_put(Dst, 10066, LJ_TISNUM);
1641 if (sse) { 1643 if (sse) {
1642 dasm_put(Dst, 10157); 1644 dasm_put(Dst, 10178);
1643 } else { 1645 } else {
1644 dasm_put(Dst, 10171); 1646 dasm_put(Dst, 10192);
1645 } 1647 }
1646 break; 1648 break;
1647 case 1: 1649 case 1:
1648 dasm_put(Dst, 10079, LJ_TISNUM); 1650 dasm_put(Dst, 10100, LJ_TISNUM);
1649 if (sse) { 1651 if (sse) {
1650 dasm_put(Dst, 10179); 1652 dasm_put(Dst, 10200);
1651 } else { 1653 } else {
1652 dasm_put(Dst, 10193); 1654 dasm_put(Dst, 10214);
1653 } 1655 }
1654 break; 1656 break;
1655 default: 1657 default:
1656 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1658 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1657 if (sse) { 1659 if (sse) {
1658 dasm_put(Dst, 10201); 1660 dasm_put(Dst, 10222);
1659 } else { 1661 } else {
1660 dasm_put(Dst, 10215); 1662 dasm_put(Dst, 10236);
1661 } 1663 }
1662 break; 1664 break;
1663 } 1665 }
1664 if (sse) { 1666 if (sse) {
1665 dasm_put(Dst, 9920); 1667 dasm_put(Dst, 9941);
1666 } else { 1668 } else {
1667 dasm_put(Dst, 9932); 1669 dasm_put(Dst, 9953);
1668 } 1670 }
1669 dasm_put(Dst, 9507); 1671 dasm_put(Dst, 9528);
1670 break; 1672 break;
1671 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1673 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1672 dasm_put(Dst, 10037); 1674 dasm_put(Dst, 10058);
1673 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1675 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1674 switch (vk) { 1676 switch (vk) {
1675 case 0: 1677 case 0:
1676 dasm_put(Dst, 10045, LJ_TISNUM); 1678 dasm_put(Dst, 10066, LJ_TISNUM);
1677 if (sse) { 1679 if (sse) {
1678 dasm_put(Dst, 10223); 1680 dasm_put(Dst, 10244);
1679 } else { 1681 } else {
1680 dasm_put(Dst, 10237); 1682 dasm_put(Dst, 10258);
1681 } 1683 }
1682 break; 1684 break;
1683 case 1: 1685 case 1:
1684 dasm_put(Dst, 10079, LJ_TISNUM); 1686 dasm_put(Dst, 10100, LJ_TISNUM);
1685 if (sse) { 1687 if (sse) {
1686 dasm_put(Dst, 10245); 1688 dasm_put(Dst, 10266);
1687 } else { 1689 } else {
1688 dasm_put(Dst, 10259); 1690 dasm_put(Dst, 10280);
1689 } 1691 }
1690 break; 1692 break;
1691 default: 1693 default:
1692 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1694 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1693 if (sse) { 1695 if (sse) {
1694 dasm_put(Dst, 10267); 1696 dasm_put(Dst, 10288);
1695 } else { 1697 } else {
1696 dasm_put(Dst, 10281); 1698 dasm_put(Dst, 10302);
1697 } 1699 }
1698 break; 1700 break;
1699 } 1701 }
1700 if (sse) { 1702 if (sse) {
1701 dasm_put(Dst, 9920); 1703 dasm_put(Dst, 9941);
1702 } else { 1704 } else {
1703 dasm_put(Dst, 9932); 1705 dasm_put(Dst, 9953);
1704 } 1706 }
1705 dasm_put(Dst, 9507); 1707 dasm_put(Dst, 9528);
1706 break; 1708 break;
1707 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1709 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1708 dasm_put(Dst, 10037); 1710 dasm_put(Dst, 10058);
1709 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1711 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1710 switch (vk) { 1712 switch (vk) {
1711 case 0: 1713 case 0:
1712 dasm_put(Dst, 10045, LJ_TISNUM); 1714 dasm_put(Dst, 10066, LJ_TISNUM);
1713 if (sse) { 1715 if (sse) {
1714 dasm_put(Dst, 10289); 1716 dasm_put(Dst, 10310);
1715 } else { 1717 } else {
1716 dasm_put(Dst, 10303); 1718 dasm_put(Dst, 10324);
1717 } 1719 }
1718 break; 1720 break;
1719 case 1: 1721 case 1:
1720 dasm_put(Dst, 10079, LJ_TISNUM); 1722 dasm_put(Dst, 10100, LJ_TISNUM);
1721 if (sse) { 1723 if (sse) {
1722 dasm_put(Dst, 10311); 1724 dasm_put(Dst, 10332);
1723 } else { 1725 } else {
1724 dasm_put(Dst, 10325); 1726 dasm_put(Dst, 10346);
1725 } 1727 }
1726 break; 1728 break;
1727 default: 1729 default:
1728 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1730 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1729 if (sse) { 1731 if (sse) {
1730 dasm_put(Dst, 10333); 1732 dasm_put(Dst, 10354);
1731 } else { 1733 } else {
1732 dasm_put(Dst, 10347); 1734 dasm_put(Dst, 10368);
1733 } 1735 }
1734 break; 1736 break;
1735 } 1737 }
1736 if (sse) { 1738 if (sse) {
1737 dasm_put(Dst, 9920); 1739 dasm_put(Dst, 9941);
1738 } else { 1740 } else {
1739 dasm_put(Dst, 9932); 1741 dasm_put(Dst, 9953);
1740 } 1742 }
1741 dasm_put(Dst, 9507); 1743 dasm_put(Dst, 9528);
1742 break; 1744 break;
1743 case BC_MODVN: 1745 case BC_MODVN:
1744 dasm_put(Dst, 10037); 1746 dasm_put(Dst, 10058);
1745 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1747 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1746 switch (vk) { 1748 switch (vk) {
1747 case 0: 1749 case 0:
1748 dasm_put(Dst, 10045, LJ_TISNUM); 1750 dasm_put(Dst, 10066, LJ_TISNUM);
1749 if (sse) { 1751 if (sse) {
1750 dasm_put(Dst, 10355); 1752 dasm_put(Dst, 10376);
1751 } else { 1753 } else {
1752 dasm_put(Dst, 10369); 1754 dasm_put(Dst, 10390);
1753 } 1755 }
1754 break; 1756 break;
1755 case 1: 1757 case 1:
1756 dasm_put(Dst, 10079, LJ_TISNUM); 1758 dasm_put(Dst, 10100, LJ_TISNUM);
1757 if (sse) { 1759 if (sse) {
1758 dasm_put(Dst, 10377); 1760 dasm_put(Dst, 10398);
1759 } else { 1761 } else {
1760 dasm_put(Dst, 10391); 1762 dasm_put(Dst, 10412);
1761 } 1763 }
1762 break; 1764 break;
1763 default: 1765 default:
1764 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1766 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1765 if (sse) { 1767 if (sse) {
1766 dasm_put(Dst, 10399); 1768 dasm_put(Dst, 10420);
1767 } else { 1769 } else {
1768 dasm_put(Dst, 10413); 1770 dasm_put(Dst, 10434);
1769 } 1771 }
1770 break; 1772 break;
1771 } 1773 }
1772 dasm_put(Dst, 10421); 1774 dasm_put(Dst, 10442);
1773 if (sse) { 1775 if (sse) {
1774 dasm_put(Dst, 9920); 1776 dasm_put(Dst, 9941);
1775 } else { 1777 } else {
1776 dasm_put(Dst, 9932); 1778 dasm_put(Dst, 9953);
1777 } 1779 }
1778 dasm_put(Dst, 9507); 1780 dasm_put(Dst, 9528);
1779 break; 1781 break;
1780 case BC_MODNV: case BC_MODVV: 1782 case BC_MODNV: case BC_MODVV:
1781 dasm_put(Dst, 10037); 1783 dasm_put(Dst, 10058);
1782 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1784 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1783 switch (vk) { 1785 switch (vk) {
1784 case 0: 1786 case 0:
1785 dasm_put(Dst, 10045, LJ_TISNUM); 1787 dasm_put(Dst, 10066, LJ_TISNUM);
1786 if (sse) { 1788 if (sse) {
1787 dasm_put(Dst, 10355); 1789 dasm_put(Dst, 10376);
1788 } else { 1790 } else {
1789 dasm_put(Dst, 10369); 1791 dasm_put(Dst, 10390);
1790 } 1792 }
1791 break; 1793 break;
1792 case 1: 1794 case 1:
1793 dasm_put(Dst, 10079, LJ_TISNUM); 1795 dasm_put(Dst, 10100, LJ_TISNUM);
1794 if (sse) { 1796 if (sse) {
1795 dasm_put(Dst, 10377); 1797 dasm_put(Dst, 10398);
1796 } else { 1798 } else {
1797 dasm_put(Dst, 10391); 1799 dasm_put(Dst, 10412);
1798 } 1800 }
1799 break; 1801 break;
1800 default: 1802 default:
1801 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1803 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1802 if (sse) { 1804 if (sse) {
1803 dasm_put(Dst, 10399); 1805 dasm_put(Dst, 10420);
1804 } else { 1806 } else {
1805 dasm_put(Dst, 10413); 1807 dasm_put(Dst, 10434);
1806 } 1808 }
1807 break; 1809 break;
1808 } 1810 }
1809 dasm_put(Dst, 10427); 1811 dasm_put(Dst, 10448);
1810 break; 1812 break;
1811 case BC_POW: 1813 case BC_POW:
1812 dasm_put(Dst, 10037); 1814 dasm_put(Dst, 10058);
1813 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1815 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1814 switch (vk) { 1816 switch (vk) {
1815 case 0: 1817 case 0:
1816 dasm_put(Dst, 10045, LJ_TISNUM); 1818 dasm_put(Dst, 10066, LJ_TISNUM);
1817 if (sse) { 1819 if (sse) {
1818 dasm_put(Dst, 10355); 1820 dasm_put(Dst, 10376);
1819 } else { 1821 } else {
1820 dasm_put(Dst, 10369); 1822 dasm_put(Dst, 10390);
1821 } 1823 }
1822 break; 1824 break;
1823 case 1: 1825 case 1:
1824 dasm_put(Dst, 10079, LJ_TISNUM); 1826 dasm_put(Dst, 10100, LJ_TISNUM);
1825 if (sse) { 1827 if (sse) {
1826 dasm_put(Dst, 10377); 1828 dasm_put(Dst, 10398);
1827 } else { 1829 } else {
1828 dasm_put(Dst, 10391); 1830 dasm_put(Dst, 10412);
1829 } 1831 }
1830 break; 1832 break;
1831 default: 1833 default:
1832 dasm_put(Dst, 10113, LJ_TISNUM, LJ_TISNUM); 1834 dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
1833 if (sse) { 1835 if (sse) {
1834 dasm_put(Dst, 10399); 1836 dasm_put(Dst, 10420);
1835 } else { 1837 } else {
1836 dasm_put(Dst, 10413); 1838 dasm_put(Dst, 10434);
1837 } 1839 }
1838 break; 1840 break;
1839 } 1841 }
1840 dasm_put(Dst, 10432); 1842 dasm_put(Dst, 10453);
1841 if (sse) { 1843 if (sse) {
1842 dasm_put(Dst, 9920); 1844 dasm_put(Dst, 9941);
1843 } else { 1845 } else {
1844 dasm_put(Dst, 9932); 1846 dasm_put(Dst, 9953);
1845 } 1847 }
1846 dasm_put(Dst, 9507); 1848 dasm_put(Dst, 9528);
1847 break; 1849 break;
1848 1850
1849 case BC_CAT: 1851 case BC_CAT:
1850 dasm_put(Dst, 10436, Dt1(->base), Dt1(->base)); 1852 dasm_put(Dst, 10457, Dt1(->base), Dt1(->base));
1851 break; 1853 break;
1852 1854
1853 /* -- Constant ops ------------------------------------------------------ */ 1855 /* -- Constant ops ------------------------------------------------------ */
1854 1856
1855 case BC_KSTR: 1857 case BC_KSTR:
1856 dasm_put(Dst, 10519, LJ_TSTR); 1858 dasm_put(Dst, 10540, LJ_TSTR);
1857 break; 1859 break;
1858 case BC_KSHORT: 1860 case BC_KSHORT:
1859 if (sse) { 1861 if (sse) {
1860 dasm_put(Dst, 10554); 1862 dasm_put(Dst, 10575);
1861 } else { 1863 } else {
1862 dasm_put(Dst, 10569); 1864 dasm_put(Dst, 10590);
1863 } 1865 }
1864 dasm_put(Dst, 9507); 1866 dasm_put(Dst, 9528);
1865 break; 1867 break;
1866 case BC_KNUM: 1868 case BC_KNUM:
1867 if (sse) { 1869 if (sse) {
1868 dasm_put(Dst, 10577); 1870 dasm_put(Dst, 10598);
1869 } else { 1871 } else {
1870 dasm_put(Dst, 10590); 1872 dasm_put(Dst, 10611);
1871 } 1873 }
1872 dasm_put(Dst, 9507); 1874 dasm_put(Dst, 9528);
1873 break; 1875 break;
1874 case BC_KPRI: 1876 case BC_KPRI:
1875 dasm_put(Dst, 10597); 1877 dasm_put(Dst, 10618);
1876 break; 1878 break;
1877 case BC_KNIL: 1879 case BC_KNIL:
1878 dasm_put(Dst, 10625, LJ_TNIL); 1880 dasm_put(Dst, 10646, LJ_TNIL);
1879 break; 1881 break;
1880 1882
1881 /* -- Upvalue and function ops ------------------------------------------ */ 1883 /* -- Upvalue and function ops ------------------------------------------ */
1882 1884
1883 case BC_UGET: 1885 case BC_UGET:
1884 dasm_put(Dst, 10672, offsetof(GCfuncL, uvptr), DtA(->v)); 1886 dasm_put(Dst, 10693, offsetof(GCfuncL, uvptr), DtA(->v));
1885 break; 1887 break;
1886 case BC_USETV: 1888 case BC_USETV:
1887#define TV2MARKOFS \ 1889#define TV2MARKOFS \
1888 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1890 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1889 dasm_put(Dst, 10712, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1891 dasm_put(Dst, 10733, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1890 dasm_put(Dst, 10803); 1892 dasm_put(Dst, 10824);
1891 break; 1893 break;
1892#undef TV2MARKOFS 1894#undef TV2MARKOFS
1893 case BC_USETS: 1895 case BC_USETS:
1894 dasm_put(Dst, 10815, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1896 dasm_put(Dst, 10836, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1895 break; 1897 break;
1896 case BC_USETN: 1898 case BC_USETN:
1897 dasm_put(Dst, 10908); 1899 dasm_put(Dst, 10929);
1898 if (sse) { 1900 if (sse) {
1899 dasm_put(Dst, 10913); 1901 dasm_put(Dst, 10934);
1900 } else { 1902 } else {
1901 dasm_put(Dst, 9746); 1903 dasm_put(Dst, 9767);
1902 } 1904 }
1903 dasm_put(Dst, 10920, offsetof(GCfuncL, uvptr), DtA(->v)); 1905 dasm_put(Dst, 10941, offsetof(GCfuncL, uvptr), DtA(->v));
1904 if (sse) { 1906 if (sse) {
1905 dasm_put(Dst, 10929); 1907 dasm_put(Dst, 10950);
1906 } else { 1908 } else {
1907 dasm_put(Dst, 10935); 1909 dasm_put(Dst, 10956);
1908 } 1910 }
1909 dasm_put(Dst, 9507); 1911 dasm_put(Dst, 9528);
1910 break; 1912 break;
1911 case BC_USETP: 1913 case BC_USETP:
1912 dasm_put(Dst, 10938, offsetof(GCfuncL, uvptr), DtA(->v)); 1914 dasm_put(Dst, 10959, offsetof(GCfuncL, uvptr), DtA(->v));
1913 break; 1915 break;
1914 case BC_UCLO: 1916 case BC_UCLO:
1915 dasm_put(Dst, 10977, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1917 dasm_put(Dst, 10998, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1916 break; 1918 break;
1917 1919
1918 case BC_FNEW: 1920 case BC_FNEW:
1919 dasm_put(Dst, 11032, Dt1(->base), Dt1(->base), LJ_TFUNC); 1921 dasm_put(Dst, 11053, Dt1(->base), Dt1(->base), LJ_TFUNC);
1920 break; 1922 break;
1921 1923
1922 /* -- Table ops --------------------------------------------------------- */ 1924 /* -- Table ops --------------------------------------------------------- */
1923 1925
1924 case BC_TNEW: 1926 case BC_TNEW:
1925 dasm_put(Dst, 11098, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1927 dasm_put(Dst, 11119, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1926 break; 1928 break;
1927 case BC_TDUP: 1929 case BC_TDUP:
1928 dasm_put(Dst, 11220, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1930 dasm_put(Dst, 11241, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1929 break; 1931 break;
1930 1932
1931 case BC_GGET: 1933 case BC_GGET:
1932 dasm_put(Dst, 11315, Dt7(->env)); 1934 dasm_put(Dst, 11336, Dt7(->env));
1933 break; 1935 break;
1934 case BC_GSET: 1936 case BC_GSET:
1935 dasm_put(Dst, 11334, Dt7(->env)); 1937 dasm_put(Dst, 11355, Dt7(->env));
1936 break; 1938 break;
1937 1939
1938 case BC_TGETV: 1940 case BC_TGETV:
1939 dasm_put(Dst, 11353, LJ_TTAB, LJ_TISNUM); 1941 dasm_put(Dst, 11374, LJ_TTAB, LJ_TISNUM);
1940 if (sse) { 1942 if (sse) {
1941 dasm_put(Dst, 11386); 1943 dasm_put(Dst, 11407);
1942 } else { 1944 } else {
1943 } 1945 }
1944 dasm_put(Dst, 11407, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1946 dasm_put(Dst, 11428, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1945 dasm_put(Dst, 11491, LJ_TNIL, LJ_TSTR); 1947 dasm_put(Dst, 11512, LJ_TNIL, LJ_TSTR);
1946 break; 1948 break;
1947 case BC_TGETS: 1949 case BC_TGETS:
1948 dasm_put(Dst, 11520, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1950 dasm_put(Dst, 11541, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1949 dasm_put(Dst, 11604, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1951 dasm_put(Dst, 11625, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1950 break; 1952 break;
1951 case BC_TGETB: 1953 case BC_TGETB:
1952 dasm_put(Dst, 11675, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1954 dasm_put(Dst, 11696, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1953 dasm_put(Dst, 11770, LJ_TNIL); 1955 dasm_put(Dst, 11791, LJ_TNIL);
1954 break; 1956 break;
1955 1957
1956 case BC_TSETV: 1958 case BC_TSETV:
1957 dasm_put(Dst, 11787, LJ_TTAB, LJ_TISNUM); 1959 dasm_put(Dst, 11808, LJ_TTAB, LJ_TISNUM);
1958 if (sse) { 1960 if (sse) {
1959 dasm_put(Dst, 11386); 1961 dasm_put(Dst, 11407);
1960 } else { 1962 } else {
1961 } 1963 }
1962 dasm_put(Dst, 11820, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1964 dasm_put(Dst, 11841, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1963 dasm_put(Dst, 11899, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1965 dasm_put(Dst, 11920, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1964 break; 1966 break;
1965 case BC_TSETS: 1967 case BC_TSETS:
1966 dasm_put(Dst, 11961, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1968 dasm_put(Dst, 11982, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1967 dasm_put(Dst, 12037, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1969 dasm_put(Dst, 12058, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1968 dasm_put(Dst, 12125, 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)); 1970 dasm_put(Dst, 12146, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1969 break; 1971 break;
1970 case BC_TSETB: 1972 case BC_TSETB:
1971 dasm_put(Dst, 12216, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1973 dasm_put(Dst, 12237, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1972 dasm_put(Dst, 12310, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1974 dasm_put(Dst, 12331, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1973 break; 1975 break;
1974 1976
1975 case BC_TSETM: 1977 case BC_TSETM:
1976 dasm_put(Dst, 12356, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1978 dasm_put(Dst, 12377, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1977 dasm_put(Dst, 12499, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1979 dasm_put(Dst, 12520, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1978 break; 1980 break;
1979 1981
1980 /* -- Calls and vararg handling ----------------------------------------- */ 1982 /* -- Calls and vararg handling ----------------------------------------- */
1981 1983
1982 case BC_CALL: case BC_CALLM: 1984 case BC_CALL: case BC_CALLM:
1983 dasm_put(Dst, 10041); 1985 dasm_put(Dst, 10062);
1984 if (op == BC_CALLM) { 1986 if (op == BC_CALLM) {
1985 dasm_put(Dst, 12517); 1987 dasm_put(Dst, 12538);
1986 } 1988 }
1987 dasm_put(Dst, 12522, LJ_TFUNC, Dt7(->pc)); 1989 dasm_put(Dst, 12543, LJ_TFUNC, Dt7(->pc));
1988 break; 1990 break;
1989 1991
1990 case BC_CALLMT: 1992 case BC_CALLMT:
1991 dasm_put(Dst, 12517); 1993 dasm_put(Dst, 12538);
1992 break; 1994 break;
1993 case BC_CALLT: 1995 case BC_CALLT:
1994 dasm_put(Dst, 12564, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1996 dasm_put(Dst, 12585, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1995 dasm_put(Dst, 12679, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 1997 dasm_put(Dst, 12700, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1996 break; 1998 break;
1997 1999
1998 case BC_ITERC: 2000 case BC_ITERC:
1999 dasm_put(Dst, 12750, LJ_TFUNC, 2+1, Dt7(->pc)); 2001 dasm_put(Dst, 12771, LJ_TFUNC, 2+1, Dt7(->pc));
2000 break; 2002 break;
2001 2003
2002 case BC_ITERN: 2004 case BC_ITERN:
2003#if LJ_HASJIT 2005#if LJ_HASJIT
2004#endif 2006#endif
2005 dasm_put(Dst, 12821, Dt6(->asize), Dt6(->array), LJ_TNIL); 2007 dasm_put(Dst, 12842, Dt6(->asize), Dt6(->array), LJ_TNIL);
2006 if (sse) { 2008 if (sse) {
2007 dasm_put(Dst, 12867); 2009 dasm_put(Dst, 12888);
2008 } else { 2010 } else {
2009 dasm_put(Dst, 12873); 2011 dasm_put(Dst, 12894);
2010 } 2012 }
2011 dasm_put(Dst, 12879); 2013 dasm_put(Dst, 12900);
2012 if (sse) { 2014 if (sse) {
2013 dasm_put(Dst, 9920); 2015 dasm_put(Dst, 9941);
2014 } else { 2016 } else {
2015 dasm_put(Dst, 9932); 2017 dasm_put(Dst, 9953);
2016 } 2018 }
2017 dasm_put(Dst, 12892, -BCBIAS_J*4); 2019 dasm_put(Dst, 12913, -BCBIAS_J*4);
2018 if (!sse) { 2020 if (!sse) {
2019 dasm_put(Dst, 12944); 2021 dasm_put(Dst, 12965);
2020 } 2022 }
2021 dasm_put(Dst, 12950, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2023 dasm_put(Dst, 12971, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2022 break; 2024 break;
2023 2025
2024 case BC_ISNEXT: 2026 case BC_ISNEXT:
2025 dasm_put(Dst, 13022, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2027 dasm_put(Dst, 13043, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2026 break; 2028 break;
2027 2029
2028 case BC_VARG: 2030 case BC_VARG:
2029 dasm_put(Dst, 13122, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2031 dasm_put(Dst, 13143, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2030 dasm_put(Dst, 13282, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2032 dasm_put(Dst, 13303, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2031 break; 2033 break;
2032 2034
2033 /* -- Returns ----------------------------------------------------------- */ 2035 /* -- Returns ----------------------------------------------------------- */
2034 2036
2035 case BC_RETM: 2037 case BC_RETM:
2036 dasm_put(Dst, 12517); 2038 dasm_put(Dst, 12538);
2037 break; 2039 break;
2038 2040
2039 case BC_RET: case BC_RET0: case BC_RET1: 2041 case BC_RET: case BC_RET0: case BC_RET1:
2040 if (op != BC_RET0) { 2042 if (op != BC_RET0) {
2041 dasm_put(Dst, 13348); 2043 dasm_put(Dst, 13369);
2042 } 2044 }
2043 dasm_put(Dst, 13352, FRAME_TYPE); 2045 dasm_put(Dst, 13373, FRAME_TYPE);
2044 switch (op) { 2046 switch (op) {
2045 case BC_RET: 2047 case BC_RET:
2046 dasm_put(Dst, 13371); 2048 dasm_put(Dst, 13392);
2047 break; 2049 break;
2048 case BC_RET1: 2050 case BC_RET1:
2049 dasm_put(Dst, 13423); 2051 dasm_put(Dst, 13444);
2050 /* fallthrough */ 2052 /* fallthrough */
2051 case BC_RET0: 2053 case BC_RET0:
2052 dasm_put(Dst, 13433); 2054 dasm_put(Dst, 13454);
2053 default: 2055 default:
2054 break; 2056 break;
2055 } 2057 }
2056 dasm_put(Dst, 13444, Dt7(->pc), PC2PROTO(k)); 2058 dasm_put(Dst, 13465, Dt7(->pc), PC2PROTO(k));
2057 if (op == BC_RET) { 2059 if (op == BC_RET) {
2058 dasm_put(Dst, 13488, LJ_TNIL); 2060 dasm_put(Dst, 13509, LJ_TNIL);
2059 } else { 2061 } else {
2060 dasm_put(Dst, 13497, LJ_TNIL); 2062 dasm_put(Dst, 13518, LJ_TNIL);
2061 } 2063 }
2062 dasm_put(Dst, 13504, -FRAME_VARG, FRAME_TYPEP); 2064 dasm_put(Dst, 13525, -FRAME_VARG, FRAME_TYPEP);
2063 if (op != BC_RET0) { 2065 if (op != BC_RET0) {
2064 dasm_put(Dst, 13528); 2066 dasm_put(Dst, 13549);
2065 } 2067 }
2066 dasm_put(Dst, 4507); 2068 dasm_put(Dst, 4528);
2067 break; 2069 break;
2068 2070
2069 /* -- Loops and branches ------------------------------------------------ */ 2071 /* -- Loops and branches ------------------------------------------------ */
@@ -2071,7 +2073,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2071 2073
2072 case BC_FORL: 2074 case BC_FORL:
2073#if LJ_HASJIT 2075#if LJ_HASJIT
2074 dasm_put(Dst, 13532, HOTCOUNT_PCMASK, GG_DISP2HOT); 2076 dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT);
2075#endif 2077#endif
2076 break; 2078 break;
2077 2079
@@ -2083,57 +2085,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2083 case BC_FORI: 2085 case BC_FORI:
2084 case BC_IFORL: 2086 case BC_IFORL:
2085 vk = (op == BC_IFORL || op == BC_JFORL); 2087 vk = (op == BC_IFORL || op == BC_JFORL);
2086 dasm_put(Dst, 13553); 2088 dasm_put(Dst, 13574);
2087 if (!vk) { 2089 if (!vk) {
2088 dasm_put(Dst, 13557, LJ_TISNUM, LJ_TISNUM); 2090 dasm_put(Dst, 13578, LJ_TISNUM, LJ_TISNUM);
2089 } 2091 }
2090 dasm_put(Dst, 13576); 2092 dasm_put(Dst, 13597);
2091 if (!vk) { 2093 if (!vk) {
2092 dasm_put(Dst, 13580, LJ_TISNUM); 2094 dasm_put(Dst, 13601, LJ_TISNUM);
2093 } 2095 }
2094 if (sse) { 2096 if (sse) {
2095 dasm_put(Dst, 13589); 2097 dasm_put(Dst, 13610);
2096 if (vk) { 2098 if (vk) {
2097 dasm_put(Dst, 13601); 2099 dasm_put(Dst, 13622);
2098 } else { 2100 } else {
2099 dasm_put(Dst, 13620); 2101 dasm_put(Dst, 13641);
2100 } 2102 }
2101 dasm_put(Dst, 13625); 2103 dasm_put(Dst, 13646);
2102 } else { 2104 } else {
2103 dasm_put(Dst, 13638); 2105 dasm_put(Dst, 13659);
2104 if (vk) { 2106 if (vk) {
2105 dasm_put(Dst, 13644); 2107 dasm_put(Dst, 13665);
2106 } else { 2108 } else {
2107 dasm_put(Dst, 13660); 2109 dasm_put(Dst, 13681);
2108 } 2110 }
2109 dasm_put(Dst, 13668); 2111 dasm_put(Dst, 13689);
2110 if (cmov) { 2112 if (cmov) {
2111 dasm_put(Dst, 9470); 2113 dasm_put(Dst, 9491);
2112 } else { 2114 } else {
2113 dasm_put(Dst, 9476); 2115 dasm_put(Dst, 9497);
2114 } 2116 }
2115 if (!cmov) { 2117 if (!cmov) {
2116 dasm_put(Dst, 13673); 2118 dasm_put(Dst, 13694);
2117 } 2119 }
2118 } 2120 }
2119 if (op == BC_FORI) { 2121 if (op == BC_FORI) {
2120 dasm_put(Dst, 13679, -BCBIAS_J*4); 2122 dasm_put(Dst, 13700, -BCBIAS_J*4);
2121 } else if (op == BC_JFORI) { 2123 } else if (op == BC_JFORI) {
2122 dasm_put(Dst, 13689, -BCBIAS_J*4, BC_JLOOP); 2124 dasm_put(Dst, 13710, -BCBIAS_J*4, BC_JLOOP);
2123 } else if (op == BC_IFORL) { 2125 } else if (op == BC_IFORL) {
2124 dasm_put(Dst, 13703, -BCBIAS_J*4); 2126 dasm_put(Dst, 13724, -BCBIAS_J*4);
2125 } else { 2127 } else {
2126 dasm_put(Dst, 13699, BC_JLOOP); 2128 dasm_put(Dst, 13720, BC_JLOOP);
2127 } 2129 }
2128 dasm_put(Dst, 9505); 2130 dasm_put(Dst, 9526);
2129 if (sse) { 2131 if (sse) {
2130 dasm_put(Dst, 13713); 2132 dasm_put(Dst, 13734);
2131 } 2133 }
2132 break; 2134 break;
2133 2135
2134 case BC_ITERL: 2136 case BC_ITERL:
2135#if LJ_HASJIT 2137#if LJ_HASJIT
2136 dasm_put(Dst, 13532, HOTCOUNT_PCMASK, GG_DISP2HOT); 2138 dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT);
2137#endif 2139#endif
2138 break; 2140 break;
2139 2141
@@ -2142,33 +2144,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2142 break; 2144 break;
2143#endif 2145#endif
2144 case BC_IITERL: 2146 case BC_IITERL:
2145 dasm_put(Dst, 13724, LJ_TNIL); 2147 dasm_put(Dst, 13745, LJ_TNIL);
2146 if (op == BC_JITERL) { 2148 if (op == BC_JITERL) {
2147 dasm_put(Dst, 13739, BC_JLOOP); 2149 dasm_put(Dst, 13760, BC_JLOOP);
2148 } else { 2150 } else {
2149 dasm_put(Dst, 13753, -BCBIAS_J*4); 2151 dasm_put(Dst, 13774, -BCBIAS_J*4);
2150 } 2152 }
2151 dasm_put(Dst, 9805); 2153 dasm_put(Dst, 9826);
2152 break; 2154 break;
2153 2155
2154 case BC_LOOP: 2156 case BC_LOOP:
2155#if LJ_HASJIT 2157#if LJ_HASJIT
2156 dasm_put(Dst, 13532, HOTCOUNT_PCMASK, GG_DISP2HOT); 2158 dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT);
2157#endif 2159#endif
2158 break; 2160 break;
2159 2161
2160 case BC_ILOOP: 2162 case BC_ILOOP:
2161 dasm_put(Dst, 9507); 2163 dasm_put(Dst, 9528);
2162 break; 2164 break;
2163 2165
2164 case BC_JLOOP: 2166 case BC_JLOOP:
2165#if LJ_HASJIT 2167#if LJ_HASJIT
2166 dasm_put(Dst, 13769, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16); 2168 dasm_put(Dst, 13790, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16);
2167#endif 2169#endif
2168 break; 2170 break;
2169 2171
2170 case BC_JMP: 2172 case BC_JMP:
2171 dasm_put(Dst, 13878, -BCBIAS_J*4); 2173 dasm_put(Dst, 13899, -BCBIAS_J*4);
2172 break; 2174 break;
2173 2175
2174 /* -- Function headers -------------------------------------------------- */ 2176 /* -- Function headers -------------------------------------------------- */
@@ -2182,7 +2184,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2182 2184
2183 case BC_FUNCF: 2185 case BC_FUNCF:
2184#if LJ_HASJIT 2186#if LJ_HASJIT
2185 dasm_put(Dst, 13903, HOTCOUNT_PCMASK, GG_DISP2HOT); 2187 dasm_put(Dst, 13924, HOTCOUNT_PCMASK, GG_DISP2HOT);
2186#endif 2188#endif
2187 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2189 case BC_FUNCV: /* NYI: compiled vararg functions. */
2188 break; 2190 break;
@@ -2192,47 +2194,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2192 break; 2194 break;
2193#endif 2195#endif
2194 case BC_IFUNCF: 2196 case BC_IFUNCF:
2195 dasm_put(Dst, 13924, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2197 dasm_put(Dst, 13945, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2196 if (op == BC_JFUNCF) { 2198 if (op == BC_JFUNCF) {
2197 dasm_put(Dst, 13954, BC_JLOOP); 2199 dasm_put(Dst, 13975, BC_JLOOP);
2198 } else { 2200 } else {
2199 dasm_put(Dst, 9507); 2201 dasm_put(Dst, 9528);
2200 } 2202 }
2201 dasm_put(Dst, 13963, LJ_TNIL); 2203 dasm_put(Dst, 13984, LJ_TNIL);
2202 break; 2204 break;
2203 2205
2204 case BC_JFUNCV: 2206 case BC_JFUNCV:
2205#if !LJ_HASJIT 2207#if !LJ_HASJIT
2206 break; 2208 break;
2207#endif 2209#endif
2208 dasm_put(Dst, 8982); 2210 dasm_put(Dst, 9003);
2209 break; /* NYI: compiled vararg functions. */ 2211 break; /* NYI: compiled vararg functions. */
2210 2212
2211 case BC_IFUNCV: 2213 case BC_IFUNCV:
2212 dasm_put(Dst, 13985, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2214 dasm_put(Dst, 14006, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2213 if (op == BC_JFUNCV) { 2215 if (op == BC_JFUNCV) {
2214 dasm_put(Dst, 13954, BC_JLOOP); 2216 dasm_put(Dst, 13975, BC_JLOOP);
2215 } else { 2217 } else {
2216 dasm_put(Dst, 14076, -4+PC2PROTO(k)); 2218 dasm_put(Dst, 14097, -4+PC2PROTO(k));
2217 } 2219 }
2218 dasm_put(Dst, 14099, LJ_TNIL); 2220 dasm_put(Dst, 14120, LJ_TNIL);
2219 break; 2221 break;
2220 2222
2221 case BC_FUNCC: 2223 case BC_FUNCC:
2222 case BC_FUNCCW: 2224 case BC_FUNCCW:
2223 dasm_put(Dst, 14121, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2225 dasm_put(Dst, 14142, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2224 if (op == BC_FUNCC) { 2226 if (op == BC_FUNCC) {
2225 dasm_put(Dst, 14151); 2227 dasm_put(Dst, 14172);
2226 } else { 2228 } else {
2227 dasm_put(Dst, 14155); 2229 dasm_put(Dst, 14176);
2228 } 2230 }
2229 dasm_put(Dst, 14163, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2231 dasm_put(Dst, 14184, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2230 if (op == BC_FUNCC) { 2232 if (op == BC_FUNCC) {
2231 dasm_put(Dst, 14172); 2233 dasm_put(Dst, 14193);
2232 } else { 2234 } else {
2233 dasm_put(Dst, 14176, DISPATCH_GL(wrapf)); 2235 dasm_put(Dst, 14197, DISPATCH_GL(wrapf));
2234 } 2236 }
2235 dasm_put(Dst, 14181, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2237 dasm_put(Dst, 14202, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2236 break; 2238 break;
2237 2239
2238 /* ---------------------------------------------------------------------- */ 2240 /* ---------------------------------------------------------------------- */
@@ -2260,7 +2262,7 @@ static int build_backend(BuildCtx *ctx)
2260 2262
2261 build_subroutines(ctx, cmov, sse); 2263 build_subroutines(ctx, cmov, sse);
2262 2264
2263 dasm_put(Dst, 14206); 2265 dasm_put(Dst, 14227);
2264 for (op = 0; op < BC__MAX; op++) 2266 for (op = 0; op < BC__MAX; op++)
2265 build_ins(ctx, (BCOp)op, op, cmov, sse); 2267 build_ins(ctx, (BCOp)op, op, cmov, sse);
2266 2268