summaryrefslogtreecommitdiff
path: root/src/buildvm_x64.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64.h')
-rw-r--r--src/buildvm_x64.h926
1 files changed, 464 insertions, 462 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index 8bcfd63f..af5c0b73 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[14263] = { 15static const unsigned char build_actionlist[14284] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -129,35 +129,36 @@ static const unsigned char build_actionlist[14263] = {
129 141,82,8,137,252,239,137,92,36,28,232,251,1,11,139,149,233,133,192,15,132, 129 141,82,8,137,252,239,137,92,36,28,232,251,1,11,139,149,233,133,192,15,132,
130 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184, 130 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184,
131 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252, 131 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,
132 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,106,252,248, 132 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,
133 129,122,253,4,239,15,133,244,55,139,133,233,139,90,252,252,199,66,252,252, 133 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,
134 237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,248,71,129,252,248, 134 233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,
135 239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 135 252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
136 244,55,139,90,252,252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110, 136 133,244,55,129,122,253,12,239,255,15,135,244,55,139,90,252,252,255,252,242,
137 205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,139, 137 15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,15,
138 42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239, 138 45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
139 15,132,244,72,72,139,40,72,137,42,252,233,244,68,248,2,131,189,233,0,15,132, 139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,40,72,137,42,
140 244,72,137,252,239,137,213,137,198,232,251,1,12,137,252,234,133,192,15,133, 140 252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,137,213,137,
141 244,1,248,72,184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244, 141 198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,233,
142 55,139,106,252,248,129,122,253,4,239,15,133,244,55,139,133,233,139,90,252, 142 244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,239,
143 252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255, 143 15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,139,
144 217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15, 144 90,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,
145 130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237, 145 66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,
146 235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15,130,244, 146 239,15,130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193,
147 55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237, 147 252,237,235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15,
148 139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252,233,244, 148 130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,
149 1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137,92,36,28, 149 66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252,
150 137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55, 150 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137,
151 128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15, 151 92,36,28,137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,
152 132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157,233, 152 244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,
153 139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,221, 153 233,15,132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157,
154 57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131,252,235,8,57, 154 233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,
155 203,15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,255, 155 221,57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131,252,235,
156 139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4, 156 8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,
157 139,139,233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252, 157 255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,
158 141,4,26,193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,5, 158 4,139,139,233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,
159 72,139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,2, 159 252,141,4,26,193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,
160 199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,193,252,248,252, 160 5,72,139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,
161 2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,193,252,248,252,
161 255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,248, 162 255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,248,
162 8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139,1,72,137, 163 8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139,1,72,137,
163 2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137,252,239, 164 2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137,252,239,
@@ -1111,330 +1112,331 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1111 dasm_put(Dst, 2176, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1112 dasm_put(Dst, 2176, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1112 dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1113 dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1113 dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1114 dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1114 dasm_put(Dst, 2402, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1115 dasm_put(Dst, 2402, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1116 dasm_put(Dst, 2476);
1115 if (sse) { 1117 if (sse) {
1116 dasm_put(Dst, 2474, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1118 dasm_put(Dst, 2485, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1117 } else { 1119 } else {
1118 } 1120 }
1119 dasm_put(Dst, 2507, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1121 dasm_put(Dst, 2518, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1120 dasm_put(Dst, 2584, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1122 dasm_put(Dst, 2595, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC);
1121 if (sse) { 1123 if (sse) {
1122 dasm_put(Dst, 2622); 1124 dasm_put(Dst, 2643);
1123 } else { 1125 } else {
1124 dasm_put(Dst, 2632); 1126 dasm_put(Dst, 2653);
1125 } 1127 }
1126 dasm_put(Dst, 2639, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1128 dasm_put(Dst, 2660, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1127 dasm_put(Dst, 2704, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1129 dasm_put(Dst, 2725, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1128 dasm_put(Dst, 2793, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1130 dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1129 dasm_put(Dst, 2880, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1131 dasm_put(Dst, 2901, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1130 dasm_put(Dst, 2995, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1132 dasm_put(Dst, 3016, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1131 dasm_put(Dst, 3090, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1133 dasm_put(Dst, 3111, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1132 dasm_put(Dst, 3156, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1134 dasm_put(Dst, 3177, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1133 dasm_put(Dst, 3245, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1135 dasm_put(Dst, 3266, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1134 dasm_put(Dst, 3355, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1136 dasm_put(Dst, 3376, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1135 if (sse) { 1137 if (sse) {
1136 dasm_put(Dst, 3382, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1138 dasm_put(Dst, 3403, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1137 } else { 1139 } else {
1138 dasm_put(Dst, 3446, 1+1, LJ_TISNUM); 1140 dasm_put(Dst, 3467, 1+1, LJ_TISNUM);
1139 } 1141 }
1140 dasm_put(Dst, 3482, 1+1, FRAME_TYPE, LJ_TNIL); 1142 dasm_put(Dst, 3503, 1+1, FRAME_TYPE, LJ_TNIL);
1141 if (sse) { 1143 if (sse) {
1142 dasm_put(Dst, 3577, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1144 dasm_put(Dst, 3598, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1143 dasm_put(Dst, 3639, 1+1, LJ_TISNUM); 1145 dasm_put(Dst, 3660, 1+1, LJ_TISNUM);
1144 } else { 1146 } else {
1145 dasm_put(Dst, 3669, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1147 dasm_put(Dst, 3690, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1146 dasm_put(Dst, 3728, 1+1, LJ_TISNUM); 1148 dasm_put(Dst, 3749, 1+1, LJ_TISNUM);
1147 } 1149 }
1148 dasm_put(Dst, 3755, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1150 dasm_put(Dst, 3776, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1149 dasm_put(Dst, 3824, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1151 dasm_put(Dst, 3845, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1150 dasm_put(Dst, 3881, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1152 dasm_put(Dst, 3902, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1151 dasm_put(Dst, 3944, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1153 dasm_put(Dst, 3965, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1152 dasm_put(Dst, 4034); 1154 dasm_put(Dst, 4055);
1153 if (sse) { 1155 if (sse) {
1154 dasm_put(Dst, 4046, 1+1, LJ_TISNUM); 1156 dasm_put(Dst, 4067, 1+1, LJ_TISNUM);
1155 } else { 1157 } else {
1156 } 1158 }
1157 dasm_put(Dst, 4071); 1159 dasm_put(Dst, 4092);
1158 if (sse) { 1160 if (sse) {
1159 dasm_put(Dst, 4085, 1+1, LJ_TISNUM); 1161 dasm_put(Dst, 4106, 1+1, LJ_TISNUM);
1160 } else { 1162 } else {
1161 } 1163 }
1162 dasm_put(Dst, 4110); 1164 dasm_put(Dst, 4131);
1163 if (sse) { 1165 if (sse) {
1164 dasm_put(Dst, 4124, 1+1, LJ_TISNUM); 1166 dasm_put(Dst, 4145, 1+1, LJ_TISNUM);
1165 } else { 1167 } else {
1166 } 1168 }
1167 dasm_put(Dst, 4149); 1169 dasm_put(Dst, 4170);
1168 if (sse) { 1170 if (sse) {
1169 dasm_put(Dst, 4165, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1171 dasm_put(Dst, 4186, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1170 } else { 1172 } else {
1171 dasm_put(Dst, 4204, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1173 dasm_put(Dst, 4225, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1172 } 1174 }
1173 dasm_put(Dst, 4237, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1175 dasm_put(Dst, 4258, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1174 dasm_put(Dst, 4302, 1+1, LJ_TISNUM); 1176 dasm_put(Dst, 4323, 1+1, LJ_TISNUM);
1175 if (sse) { 1177 if (sse) {
1176 dasm_put(Dst, 4401); 1178 dasm_put(Dst, 4422);
1177 } else { 1179 } else {
1178 dasm_put(Dst, 4407); 1180 dasm_put(Dst, 4428);
1179 } 1181 }
1180 dasm_put(Dst, 4414); 1182 dasm_put(Dst, 4435);
1181 if (sse) { 1183 if (sse) {
1182 dasm_put(Dst, 4439); 1184 dasm_put(Dst, 4460);
1183 } else { 1185 } else {
1184 dasm_put(Dst, 4445); 1186 dasm_put(Dst, 4466);
1185 } 1187 }
1186 dasm_put(Dst, 4448, 1+2); 1188 dasm_put(Dst, 4469, 1+2);
1187 if (sse) { 1189 if (sse) {
1188 dasm_put(Dst, 4457); 1190 dasm_put(Dst, 4478);
1189 } else { 1191 } else {
1190 dasm_put(Dst, 4465); 1192 dasm_put(Dst, 4486);
1191 } 1193 }
1192 dasm_put(Dst, 4473); 1194 dasm_put(Dst, 4494);
1193 if (sse) { 1195 if (sse) {
1194 dasm_put(Dst, 4476, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1196 dasm_put(Dst, 4497, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1195 } else { 1197 } else {
1196 dasm_put(Dst, 4503); 1198 dasm_put(Dst, 4524);
1197 } 1199 }
1198 dasm_put(Dst, 4520); 1200 dasm_put(Dst, 4541);
1199 if (sse) { 1201 if (sse) {
1200 dasm_put(Dst, 4536, 1+1, LJ_TISNUM); 1202 dasm_put(Dst, 4557, 1+1, LJ_TISNUM);
1201 } else { 1203 } else {
1202 dasm_put(Dst, 4561, 1+1, LJ_TISNUM); 1204 dasm_put(Dst, 4582, 1+1, LJ_TISNUM);
1203 } 1205 }
1204 dasm_put(Dst, 4583); 1206 dasm_put(Dst, 4604);
1205 if (sse) { 1207 if (sse) {
1206 dasm_put(Dst, 4605); 1208 dasm_put(Dst, 4626);
1207 } else { 1209 } else {
1208 dasm_put(Dst, 4631); 1210 dasm_put(Dst, 4652);
1209 } 1211 }
1210 dasm_put(Dst, 4648, 1+2); 1212 dasm_put(Dst, 4669, 1+2);
1211 if (sse) { 1213 if (sse) {
1212 dasm_put(Dst, 4688); 1214 dasm_put(Dst, 4709);
1213 } else { 1215 } else {
1214 dasm_put(Dst, 4696); 1216 dasm_put(Dst, 4717);
1215 } 1217 }
1216 dasm_put(Dst, 4706, 2+1, LJ_TISNUM, LJ_TISNUM); 1218 dasm_put(Dst, 4727, 2+1, LJ_TISNUM, LJ_TISNUM);
1217 if (sse) { 1219 if (sse) {
1218 dasm_put(Dst, 4758, 2+1, LJ_TISNUM, LJ_TISNUM); 1220 dasm_put(Dst, 4779, 2+1, LJ_TISNUM, LJ_TISNUM);
1219 } else { 1221 } else {
1220 dasm_put(Dst, 4805, 2+1, LJ_TISNUM, LJ_TISNUM); 1222 dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM);
1221 } 1223 }
1222 if (sse) { 1224 if (sse) {
1223 dasm_put(Dst, 4846, 1+1, LJ_TISNUM, LJ_TISNUM); 1225 dasm_put(Dst, 4867, 1+1, LJ_TISNUM, LJ_TISNUM);
1224 } else { 1226 } else {
1225 } 1227 }
1226 if (sse) { 1228 if (sse) {
1227 dasm_put(Dst, 4917, 1+1, LJ_TISNUM, LJ_TISNUM); 1229 dasm_put(Dst, 4938, 1+1, LJ_TISNUM, LJ_TISNUM);
1228 } else { 1230 } else {
1229 } 1231 }
1230 if (!sse) { 1232 if (!sse) {
1231 dasm_put(Dst, 4988); 1233 dasm_put(Dst, 5009);
1232 } 1234 }
1233 dasm_put(Dst, 4997, 1+1, LJ_TSTR); 1235 dasm_put(Dst, 5018, 1+1, LJ_TSTR);
1234 if (sse) { 1236 if (sse) {
1235 dasm_put(Dst, 5019, Dt5(->len)); 1237 dasm_put(Dst, 5040, Dt5(->len));
1236 } else { 1238 } else {
1237 dasm_put(Dst, 5030, Dt5(->len)); 1239 dasm_put(Dst, 5051, Dt5(->len));
1238 } 1240 }
1239 dasm_put(Dst, 5038, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1241 dasm_put(Dst, 5059, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1240 if (sse) { 1242 if (sse) {
1241 dasm_put(Dst, 5076); 1243 dasm_put(Dst, 5097);
1242 } else { 1244 } else {
1243 dasm_put(Dst, 5086); 1245 dasm_put(Dst, 5107);
1244 } 1246 }
1245 dasm_put(Dst, 5097, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1247 dasm_put(Dst, 5118, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1246 if (sse) { 1248 if (sse) {
1247 dasm_put(Dst, 5134); 1249 dasm_put(Dst, 5155);
1248 } else { 1250 } else {
1249 dasm_put(Dst, 5156); 1251 dasm_put(Dst, 5177);
1250 } 1252 }
1251 dasm_put(Dst, 5176, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1253 dasm_put(Dst, 5197, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1252 dasm_put(Dst, 2154); 1254 dasm_put(Dst, 2154);
1253 if (sse) { 1255 if (sse) {
1254 dasm_put(Dst, 5285); 1256 dasm_put(Dst, 5306);
1255 } else { 1257 } else {
1256 dasm_put(Dst, 5296); 1258 dasm_put(Dst, 5317);
1257 } 1259 }
1258 dasm_put(Dst, 5304, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1260 dasm_put(Dst, 5325, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1259 if (sse) { 1261 if (sse) {
1260 dasm_put(Dst, 5334); 1262 dasm_put(Dst, 5355);
1261 } else { 1263 } else {
1262 } 1264 }
1263 dasm_put(Dst, 5341, sizeof(GCstr)-1); 1265 dasm_put(Dst, 5362, sizeof(GCstr)-1);
1264 dasm_put(Dst, 5416, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1266 dasm_put(Dst, 5437, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1265 dasm_put(Dst, 5477, LJ_TSTR, LJ_TISNUM); 1267 dasm_put(Dst, 5498, LJ_TSTR, LJ_TISNUM);
1266 if (sse) { 1268 if (sse) {
1267 dasm_put(Dst, 5498); 1269 dasm_put(Dst, 5519);
1268 } else { 1270 } else {
1269 dasm_put(Dst, 5505); 1271 dasm_put(Dst, 5526);
1270 } 1272 }
1271 dasm_put(Dst, 5517, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1273 dasm_put(Dst, 5538, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1272 dasm_put(Dst, 5585, 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, 5606, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1273 dasm_put(Dst, 5652, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1275 dasm_put(Dst, 5673, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1274 dasm_put(Dst, 5725, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1276 dasm_put(Dst, 5746, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1275 dasm_put(Dst, 5810, 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, 5831, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1276 dasm_put(Dst, 5884, 1+1, LJ_TTAB); 1278 dasm_put(Dst, 5905, 1+1, LJ_TTAB);
1277 if (sse) { 1279 if (sse) {
1278 dasm_put(Dst, 5951); 1280 dasm_put(Dst, 5972);
1279 } else { 1281 } else {
1280 } 1282 }
1281 if (sse) { 1283 if (sse) {
1282 dasm_put(Dst, 5961, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1284 dasm_put(Dst, 5982, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1283 } else { 1285 } else {
1284 } 1286 }
1285 if (sse) { 1287 if (sse) {
1286 dasm_put(Dst, 6013, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1288 dasm_put(Dst, 6034, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1287 } else { 1289 } else {
1288 } 1290 }
1289 dasm_put(Dst, 6056, LJ_TISNUM); 1291 dasm_put(Dst, 6077, LJ_TISNUM);
1290 if (sse) { 1292 if (sse) {
1291 dasm_put(Dst, 6083); 1293 dasm_put(Dst, 6104);
1292 } else { 1294 } else {
1293 } 1295 }
1294 dasm_put(Dst, 6100); 1296 dasm_put(Dst, 6121);
1295 if (sse) { 1297 if (sse) {
1296 dasm_put(Dst, 6108, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1298 dasm_put(Dst, 6129, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1297 } else { 1299 } else {
1298 } 1300 }
1299 dasm_put(Dst, 6056, LJ_TISNUM); 1301 dasm_put(Dst, 6077, LJ_TISNUM);
1300 if (sse) { 1302 if (sse) {
1301 dasm_put(Dst, 6151); 1303 dasm_put(Dst, 6172);
1302 } else { 1304 } else {
1303 } 1305 }
1304 dasm_put(Dst, 6100); 1306 dasm_put(Dst, 6121);
1305 if (sse) { 1307 if (sse) {
1306 dasm_put(Dst, 6168, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1308 dasm_put(Dst, 6189, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1307 } else { 1309 } else {
1308 } 1310 }
1309 dasm_put(Dst, 6056, LJ_TISNUM); 1311 dasm_put(Dst, 6077, LJ_TISNUM);
1310 if (sse) { 1312 if (sse) {
1311 dasm_put(Dst, 6211); 1313 dasm_put(Dst, 6232);
1312 } else { 1314 } else {
1313 } 1315 }
1314 dasm_put(Dst, 6100); 1316 dasm_put(Dst, 6121);
1315 if (sse) { 1317 if (sse) {
1316 dasm_put(Dst, 6228, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1318 dasm_put(Dst, 6249, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1317 } else { 1319 } else {
1318 } 1320 }
1319 dasm_put(Dst, 6271); 1321 dasm_put(Dst, 6292);
1320 if (sse) { 1322 if (sse) {
1321 dasm_put(Dst, 6278, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1323 dasm_put(Dst, 6299, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1322 } else { 1324 } else {
1323 } 1325 }
1324 dasm_put(Dst, 6321); 1326 dasm_put(Dst, 6342);
1325 if (sse) { 1327 if (sse) {
1326 dasm_put(Dst, 6325); 1328 dasm_put(Dst, 6346);
1327 } else { 1329 } else {
1328 } 1330 }
1329 dasm_put(Dst, 6337); 1331 dasm_put(Dst, 6358);
1330 if (sse) { 1332 if (sse) {
1331 dasm_put(Dst, 6348, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1333 dasm_put(Dst, 6369, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1332 } else { 1334 } else {
1333 } 1335 }
1334 dasm_put(Dst, 6417); 1336 dasm_put(Dst, 6438);
1335 if (sse) { 1337 if (sse) {
1336 dasm_put(Dst, 6426, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1338 dasm_put(Dst, 6447, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1337 } else { 1339 } else {
1338 } 1340 }
1339 dasm_put(Dst, 6495); 1341 dasm_put(Dst, 6516);
1340 if (sse) { 1342 if (sse) {
1341 dasm_put(Dst, 6505, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1343 dasm_put(Dst, 6526, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1342 } else { 1344 } else {
1343 } 1345 }
1344 dasm_put(Dst, 6574); 1346 dasm_put(Dst, 6595);
1345 if (sse) { 1347 if (sse) {
1346 dasm_put(Dst, 6584, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1348 dasm_put(Dst, 6605, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1347 } else { 1349 } else {
1348 } 1350 }
1349 dasm_put(Dst, 6653); 1351 dasm_put(Dst, 6674);
1350 if (sse) { 1352 if (sse) {
1351 dasm_put(Dst, 6662, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1353 dasm_put(Dst, 6683, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1352 } else { 1354 } else {
1353 } 1355 }
1354 dasm_put(Dst, 6731, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1356 dasm_put(Dst, 6752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1355 dasm_put(Dst, 6809, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1357 dasm_put(Dst, 6830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1356 dasm_put(Dst, 6936, Dt1(->top), Dt1(->base), Dt1(->top)); 1358 dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top));
1357#if LJ_HASJIT 1359#if LJ_HASJIT
1358 dasm_put(Dst, 6975, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1360 dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1359#endif 1361#endif
1360 dasm_put(Dst, 7008, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1362 dasm_put(Dst, 7029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1361 dasm_put(Dst, 7062, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1363 dasm_put(Dst, 7083, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1362#if LJ_HASJIT 1364#if LJ_HASJIT
1363 dasm_put(Dst, 7129, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1365 dasm_put(Dst, 7150, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1364#endif 1366#endif
1365 dasm_put(Dst, 7176); 1367 dasm_put(Dst, 7197);
1366#if LJ_HASJIT 1368#if LJ_HASJIT
1367 dasm_put(Dst, 7003); 1369 dasm_put(Dst, 7024);
1368#endif 1370#endif
1369 dasm_put(Dst, 7183); 1371 dasm_put(Dst, 7204);
1370#if LJ_HASJIT 1372#if LJ_HASJIT
1371 dasm_put(Dst, 7186); 1373 dasm_put(Dst, 7207);
1372#endif 1374#endif
1373 dasm_put(Dst, 7196, Dt1(->base), Dt1(->top)); 1375 dasm_put(Dst, 7217, Dt1(->base), Dt1(->top));
1374#if LJ_HASJIT 1376#if LJ_HASJIT
1375 dasm_put(Dst, 7229); 1377 dasm_put(Dst, 7250);
1376#endif 1378#endif
1377 dasm_put(Dst, 7234, Dt1(->base), Dt1(->top)); 1379 dasm_put(Dst, 7255, Dt1(->base), Dt1(->top));
1378#if LJ_HASJIT 1380#if LJ_HASJIT
1379 dasm_put(Dst, 7265, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1381 dasm_put(Dst, 7286, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1380#endif 1382#endif
1381 dasm_put(Dst, 7504); 1383 dasm_put(Dst, 7525);
1382#if LJ_HASJIT 1384#if LJ_HASJIT
1383 dasm_put(Dst, 7507, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1385 dasm_put(Dst, 7528, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1384#endif 1386#endif
1385 dasm_put(Dst, 7607); 1387 dasm_put(Dst, 7628);
1386 if (!sse) { 1388 if (!sse) {
1387 dasm_put(Dst, 7610); 1389 dasm_put(Dst, 7631);
1388 } 1390 }
1389 dasm_put(Dst, 7655, (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)); 1391 dasm_put(Dst, 7676, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1390 if (!sse) { 1392 if (!sse) {
1391 dasm_put(Dst, 7741); 1393 dasm_put(Dst, 7762);
1392 } 1394 }
1393 dasm_put(Dst, 7786, (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)); 1395 dasm_put(Dst, 7807, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1394 if (!sse) { 1396 if (!sse) {
1395 dasm_put(Dst, 7872); 1397 dasm_put(Dst, 7893);
1396 } 1398 }
1397 dasm_put(Dst, 7911, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1399 dasm_put(Dst, 7932, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1398 if (sse) { 1400 if (sse) {
1399 dasm_put(Dst, 8000, (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, 8021, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1400 } else { 1402 } else {
1401 dasm_put(Dst, 8114); 1403 dasm_put(Dst, 8135);
1402 } 1404 }
1403 dasm_put(Dst, 8161); 1405 dasm_put(Dst, 8182);
1404 if (!sse) { 1406 if (!sse) {
1405 } else { 1407 } else {
1406 dasm_put(Dst, 8238); 1408 dasm_put(Dst, 8259);
1407 } 1409 }
1408 dasm_put(Dst, 8241); 1410 dasm_put(Dst, 8262);
1409 dasm_put(Dst, 8326, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1411 dasm_put(Dst, 8347, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1410 dasm_put(Dst, 8427, (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)); 1412 dasm_put(Dst, 8448, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1411 dasm_put(Dst, 8601); 1413 dasm_put(Dst, 8622);
1412#if LJ_HASJIT 1414#if LJ_HASJIT
1413 if (sse) { 1415 if (sse) {
1414 dasm_put(Dst, 8642); 1416 dasm_put(Dst, 8663);
1415 dasm_put(Dst, 8712); 1417 dasm_put(Dst, 8733);
1416 dasm_put(Dst, 8784); 1418 dasm_put(Dst, 8805);
1417 } else { 1419 } else {
1418 dasm_put(Dst, 8836); 1420 dasm_put(Dst, 8857);
1419 dasm_put(Dst, 8928); 1421 dasm_put(Dst, 8949);
1420 } 1422 }
1421 dasm_put(Dst, 8974); 1423 dasm_put(Dst, 8995);
1422#endif 1424#endif
1423 dasm_put(Dst, 8978); 1425 dasm_put(Dst, 8999);
1424 if (sse) { 1426 if (sse) {
1425 dasm_put(Dst, 8981, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1427 dasm_put(Dst, 9002, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1426 dasm_put(Dst, 9066, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1428 dasm_put(Dst, 9087, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1427 } else { 1429 } else {
1428 dasm_put(Dst, 9194); 1430 dasm_put(Dst, 9215);
1429 dasm_put(Dst, 9277); 1431 dasm_put(Dst, 9298);
1430 if (cmov) { 1432 if (cmov) {
1431 dasm_put(Dst, 9332); 1433 dasm_put(Dst, 9353);
1432 } else { 1434 } else {
1433 dasm_put(Dst, 9351); 1435 dasm_put(Dst, 9372);
1434 } 1436 }
1435 dasm_put(Dst, 8974); 1437 dasm_put(Dst, 8995);
1436 } 1438 }
1437 dasm_put(Dst, 9392); 1439 dasm_put(Dst, 9413);
1438} 1440}
1439 1441
1440/* Generate the code for a single instruction. */ 1442/* Generate the code for a single instruction. */
@@ -1450,618 +1452,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1450 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1452 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1451 1453
1452 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1454 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1453 dasm_put(Dst, 9414, LJ_TISNUM, LJ_TISNUM); 1455 dasm_put(Dst, 9435, LJ_TISNUM, LJ_TISNUM);
1454 if (sse) { 1456 if (sse) {
1455 dasm_put(Dst, 9435); 1457 dasm_put(Dst, 9456);
1456 } else { 1458 } else {
1457 dasm_put(Dst, 9450); 1459 dasm_put(Dst, 9471);
1458 if (cmov) { 1460 if (cmov) {
1459 dasm_put(Dst, 9460); 1461 dasm_put(Dst, 9481);
1460 } else { 1462 } else {
1461 dasm_put(Dst, 9466); 1463 dasm_put(Dst, 9487);
1462 } 1464 }
1463 } 1465 }
1464 switch (op) { 1466 switch (op) {
1465 case BC_ISLT: 1467 case BC_ISLT:
1466 dasm_put(Dst, 9473); 1468 dasm_put(Dst, 9494);
1467 break; 1469 break;
1468 case BC_ISGE: 1470 case BC_ISGE:
1469 dasm_put(Dst, 9272); 1471 dasm_put(Dst, 9293);
1470 break; 1472 break;
1471 case BC_ISLE: 1473 case BC_ISLE:
1472 dasm_put(Dst, 5879); 1474 dasm_put(Dst, 5900);
1473 break; 1475 break;
1474 case BC_ISGT: 1476 case BC_ISGT:
1475 dasm_put(Dst, 9478); 1477 dasm_put(Dst, 9499);
1476 break; 1478 break;
1477 default: break; /* Shut up GCC. */ 1479 default: break; /* Shut up GCC. */
1478 } 1480 }
1479 dasm_put(Dst, 9483, -BCBIAS_J*4); 1481 dasm_put(Dst, 9504, -BCBIAS_J*4);
1480 break; 1482 break;
1481 1483
1482 case BC_ISEQV: case BC_ISNEV: 1484 case BC_ISEQV: case BC_ISNEV:
1483 vk = op == BC_ISEQV; 1485 vk = op == BC_ISEQV;
1484 dasm_put(Dst, 9518, LJ_TISNUM, LJ_TISNUM); 1486 dasm_put(Dst, 9539, LJ_TISNUM, LJ_TISNUM);
1485 if (sse) { 1487 if (sse) {
1486 dasm_put(Dst, 9544); 1488 dasm_put(Dst, 9565);
1487 } else { 1489 } else {
1488 dasm_put(Dst, 9556); 1490 dasm_put(Dst, 9577);
1489 if (cmov) { 1491 if (cmov) {
1490 dasm_put(Dst, 9460); 1492 dasm_put(Dst, 9481);
1491 } else { 1493 } else {
1492 dasm_put(Dst, 9466); 1494 dasm_put(Dst, 9487);
1493 } 1495 }
1494 } 1496 }
1495 iseqne_fp: 1497 iseqne_fp:
1496 if (vk) { 1498 if (vk) {
1497 dasm_put(Dst, 9563); 1499 dasm_put(Dst, 9584);
1498 } else { 1500 } else {
1499 dasm_put(Dst, 9572); 1501 dasm_put(Dst, 9593);
1500 } 1502 }
1501 iseqne_end: 1503 iseqne_end:
1502 if (vk) { 1504 if (vk) {
1503 dasm_put(Dst, 9581, -BCBIAS_J*4); 1505 dasm_put(Dst, 9602, -BCBIAS_J*4);
1504 } else { 1506 } else {
1505 dasm_put(Dst, 9596, -BCBIAS_J*4); 1507 dasm_put(Dst, 9617, -BCBIAS_J*4);
1506 } 1508 }
1507 dasm_put(Dst, 9497); 1509 dasm_put(Dst, 9518);
1508 if (op == BC_ISEQV || op == BC_ISNEV) { 1510 if (op == BC_ISEQV || op == BC_ISNEV) {
1509 dasm_put(Dst, 9611, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1511 dasm_put(Dst, 9632, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1510 if (vk) { 1512 if (vk) {
1511 dasm_put(Dst, 9669); 1513 dasm_put(Dst, 9690);
1512 } else { 1514 } else {
1513 dasm_put(Dst, 9673); 1515 dasm_put(Dst, 9694);
1514 } 1516 }
1515 dasm_put(Dst, 9679); 1517 dasm_put(Dst, 9700);
1516 } 1518 }
1517 break; 1519 break;
1518 case BC_ISEQS: case BC_ISNES: 1520 case BC_ISEQS: case BC_ISNES:
1519 vk = op == BC_ISEQS; 1521 vk = op == BC_ISEQS;
1520 dasm_put(Dst, 9684, LJ_TSTR); 1522 dasm_put(Dst, 9705, LJ_TSTR);
1521 iseqne_test: 1523 iseqne_test:
1522 if (vk) { 1524 if (vk) {
1523 dasm_put(Dst, 9567); 1525 dasm_put(Dst, 9588);
1524 } else { 1526 } else {
1525 dasm_put(Dst, 2788); 1527 dasm_put(Dst, 2809);
1526 } 1528 }
1527 goto iseqne_end; 1529 goto iseqne_end;
1528 case BC_ISEQN: case BC_ISNEN: 1530 case BC_ISEQN: case BC_ISNEN:
1529 vk = op == BC_ISEQN; 1531 vk = op == BC_ISEQN;
1530 dasm_put(Dst, 9709, LJ_TISNUM); 1532 dasm_put(Dst, 9730, LJ_TISNUM);
1531 if (sse) { 1533 if (sse) {
1532 dasm_put(Dst, 9723); 1534 dasm_put(Dst, 9744);
1533 } else { 1535 } else {
1534 dasm_put(Dst, 9736); 1536 dasm_put(Dst, 9757);
1535 if (cmov) { 1537 if (cmov) {
1536 dasm_put(Dst, 9460); 1538 dasm_put(Dst, 9481);
1537 } else { 1539 } else {
1538 dasm_put(Dst, 9466); 1540 dasm_put(Dst, 9487);
1539 } 1541 }
1540 } 1542 }
1541 goto iseqne_fp; 1543 goto iseqne_fp;
1542 case BC_ISEQP: case BC_ISNEP: 1544 case BC_ISEQP: case BC_ISNEP:
1543 vk = op == BC_ISEQP; 1545 vk = op == BC_ISEQP;
1544 dasm_put(Dst, 9744); 1546 dasm_put(Dst, 9765);
1545 goto iseqne_test; 1547 goto iseqne_test;
1546 1548
1547 /* -- Unary test and copy ops ------------------------------------------- */ 1549 /* -- Unary test and copy ops ------------------------------------------- */
1548 1550
1549 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1551 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1550 dasm_put(Dst, 9756, LJ_TISTRUECOND); 1552 dasm_put(Dst, 9777, LJ_TISTRUECOND);
1551 if (op == BC_IST || op == BC_ISTC) { 1553 if (op == BC_IST || op == BC_ISTC) {
1552 dasm_put(Dst, 9768); 1554 dasm_put(Dst, 9789);
1553 } else { 1555 } else {
1554 dasm_put(Dst, 9773); 1556 dasm_put(Dst, 9794);
1555 } 1557 }
1556 if (op == BC_ISTC || op == BC_ISFC) { 1558 if (op == BC_ISTC || op == BC_ISFC) {
1557 dasm_put(Dst, 9778); 1559 dasm_put(Dst, 9799);
1558 } 1560 }
1559 dasm_put(Dst, 9789, -BCBIAS_J*4); 1561 dasm_put(Dst, 9810, -BCBIAS_J*4);
1560 break; 1562 break;
1561 1563
1562 /* -- Unary ops --------------------------------------------------------- */ 1564 /* -- Unary ops --------------------------------------------------------- */
1563 1565
1564 case BC_MOV: 1566 case BC_MOV:
1565 dasm_put(Dst, 9822); 1567 dasm_put(Dst, 9843);
1566 break; 1568 break;
1567 case BC_NOT: 1569 case BC_NOT:
1568 dasm_put(Dst, 9851, LJ_TISTRUECOND, LJ_TTRUE); 1570 dasm_put(Dst, 9872, LJ_TISTRUECOND, LJ_TTRUE);
1569 break; 1571 break;
1570 case BC_UNM: 1572 case BC_UNM:
1571 dasm_put(Dst, 9888, LJ_TISNUM); 1573 dasm_put(Dst, 9909, LJ_TISNUM);
1572 if (sse) { 1574 if (sse) {
1573 dasm_put(Dst, 9899, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1575 dasm_put(Dst, 9920, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1574 } else { 1576 } else {
1575 dasm_put(Dst, 9924); 1577 dasm_put(Dst, 9945);
1576 } 1578 }
1577 dasm_put(Dst, 9497); 1579 dasm_put(Dst, 9518);
1578 break; 1580 break;
1579 case BC_LEN: 1581 case BC_LEN:
1580 dasm_put(Dst, 9933, LJ_TSTR); 1582 dasm_put(Dst, 9954, LJ_TSTR);
1581 if (sse) { 1583 if (sse) {
1582 dasm_put(Dst, 9947, Dt5(->len)); 1584 dasm_put(Dst, 9968, Dt5(->len));
1583 } else { 1585 } else {
1584 dasm_put(Dst, 9965, Dt5(->len)); 1586 dasm_put(Dst, 9986, Dt5(->len));
1585 } 1587 }
1586 dasm_put(Dst, 9974, LJ_TTAB); 1588 dasm_put(Dst, 9995, LJ_TTAB);
1587 if (sse) { 1589 if (sse) {
1588 dasm_put(Dst, 10016); 1590 dasm_put(Dst, 10037);
1589 } else { 1591 } else {
1590 } 1592 }
1591 dasm_put(Dst, 10025); 1593 dasm_put(Dst, 10046);
1592 break; 1594 break;
1593 1595
1594 /* -- Binary ops -------------------------------------------------------- */ 1596 /* -- Binary ops -------------------------------------------------------- */
1595 1597
1596 1598
1597 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1599 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1598 dasm_put(Dst, 10035); 1600 dasm_put(Dst, 10056);
1599 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1601 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1600 switch (vk) { 1602 switch (vk) {
1601 case 0: 1603 case 0:
1602 dasm_put(Dst, 10043, LJ_TISNUM); 1604 dasm_put(Dst, 10064, LJ_TISNUM);
1603 if (sse) { 1605 if (sse) {
1604 dasm_put(Dst, 10055); 1606 dasm_put(Dst, 10076);
1605 } else { 1607 } else {
1606 dasm_put(Dst, 10070); 1608 dasm_put(Dst, 10091);
1607 } 1609 }
1608 break; 1610 break;
1609 case 1: 1611 case 1:
1610 dasm_put(Dst, 10079, LJ_TISNUM); 1612 dasm_put(Dst, 10100, LJ_TISNUM);
1611 if (sse) { 1613 if (sse) {
1612 dasm_put(Dst, 10091); 1614 dasm_put(Dst, 10112);
1613 } else { 1615 } else {
1614 dasm_put(Dst, 10106); 1616 dasm_put(Dst, 10127);
1615 } 1617 }
1616 break; 1618 break;
1617 default: 1619 default:
1618 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1620 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1619 if (sse) { 1621 if (sse) {
1620 dasm_put(Dst, 10137); 1622 dasm_put(Dst, 10158);
1621 } else { 1623 } else {
1622 dasm_put(Dst, 10151); 1624 dasm_put(Dst, 10172);
1623 } 1625 }
1624 break; 1626 break;
1625 } 1627 }
1626 if (sse) { 1628 if (sse) {
1627 dasm_put(Dst, 9917); 1629 dasm_put(Dst, 9938);
1628 } else { 1630 } else {
1629 dasm_put(Dst, 9929); 1631 dasm_put(Dst, 9950);
1630 } 1632 }
1631 dasm_put(Dst, 9497); 1633 dasm_put(Dst, 9518);
1632 break; 1634 break;
1633 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1635 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1634 dasm_put(Dst, 10035); 1636 dasm_put(Dst, 10056);
1635 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1637 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1636 switch (vk) { 1638 switch (vk) {
1637 case 0: 1639 case 0:
1638 dasm_put(Dst, 10043, LJ_TISNUM); 1640 dasm_put(Dst, 10064, LJ_TISNUM);
1639 if (sse) { 1641 if (sse) {
1640 dasm_put(Dst, 10159); 1642 dasm_put(Dst, 10180);
1641 } else { 1643 } else {
1642 dasm_put(Dst, 10174); 1644 dasm_put(Dst, 10195);
1643 } 1645 }
1644 break; 1646 break;
1645 case 1: 1647 case 1:
1646 dasm_put(Dst, 10079, LJ_TISNUM); 1648 dasm_put(Dst, 10100, LJ_TISNUM);
1647 if (sse) { 1649 if (sse) {
1648 dasm_put(Dst, 10183); 1650 dasm_put(Dst, 10204);
1649 } else { 1651 } else {
1650 dasm_put(Dst, 10198); 1652 dasm_put(Dst, 10219);
1651 } 1653 }
1652 break; 1654 break;
1653 default: 1655 default:
1654 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1656 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1655 if (sse) { 1657 if (sse) {
1656 dasm_put(Dst, 10207); 1658 dasm_put(Dst, 10228);
1657 } else { 1659 } else {
1658 dasm_put(Dst, 10221); 1660 dasm_put(Dst, 10242);
1659 } 1661 }
1660 break; 1662 break;
1661 } 1663 }
1662 if (sse) { 1664 if (sse) {
1663 dasm_put(Dst, 9917); 1665 dasm_put(Dst, 9938);
1664 } else { 1666 } else {
1665 dasm_put(Dst, 9929); 1667 dasm_put(Dst, 9950);
1666 } 1668 }
1667 dasm_put(Dst, 9497); 1669 dasm_put(Dst, 9518);
1668 break; 1670 break;
1669 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1671 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1670 dasm_put(Dst, 10035); 1672 dasm_put(Dst, 10056);
1671 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1673 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1672 switch (vk) { 1674 switch (vk) {
1673 case 0: 1675 case 0:
1674 dasm_put(Dst, 10043, LJ_TISNUM); 1676 dasm_put(Dst, 10064, LJ_TISNUM);
1675 if (sse) { 1677 if (sse) {
1676 dasm_put(Dst, 10229); 1678 dasm_put(Dst, 10250);
1677 } else { 1679 } else {
1678 dasm_put(Dst, 10244); 1680 dasm_put(Dst, 10265);
1679 } 1681 }
1680 break; 1682 break;
1681 case 1: 1683 case 1:
1682 dasm_put(Dst, 10079, LJ_TISNUM); 1684 dasm_put(Dst, 10100, LJ_TISNUM);
1683 if (sse) { 1685 if (sse) {
1684 dasm_put(Dst, 10253); 1686 dasm_put(Dst, 10274);
1685 } else { 1687 } else {
1686 dasm_put(Dst, 10268); 1688 dasm_put(Dst, 10289);
1687 } 1689 }
1688 break; 1690 break;
1689 default: 1691 default:
1690 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1692 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1691 if (sse) { 1693 if (sse) {
1692 dasm_put(Dst, 10277); 1694 dasm_put(Dst, 10298);
1693 } else { 1695 } else {
1694 dasm_put(Dst, 10291); 1696 dasm_put(Dst, 10312);
1695 } 1697 }
1696 break; 1698 break;
1697 } 1699 }
1698 if (sse) { 1700 if (sse) {
1699 dasm_put(Dst, 9917); 1701 dasm_put(Dst, 9938);
1700 } else { 1702 } else {
1701 dasm_put(Dst, 9929); 1703 dasm_put(Dst, 9950);
1702 } 1704 }
1703 dasm_put(Dst, 9497); 1705 dasm_put(Dst, 9518);
1704 break; 1706 break;
1705 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1707 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1706 dasm_put(Dst, 10035); 1708 dasm_put(Dst, 10056);
1707 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1709 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1708 switch (vk) { 1710 switch (vk) {
1709 case 0: 1711 case 0:
1710 dasm_put(Dst, 10043, LJ_TISNUM); 1712 dasm_put(Dst, 10064, LJ_TISNUM);
1711 if (sse) { 1713 if (sse) {
1712 dasm_put(Dst, 10299); 1714 dasm_put(Dst, 10320);
1713 } else { 1715 } else {
1714 dasm_put(Dst, 10314); 1716 dasm_put(Dst, 10335);
1715 } 1717 }
1716 break; 1718 break;
1717 case 1: 1719 case 1:
1718 dasm_put(Dst, 10079, LJ_TISNUM); 1720 dasm_put(Dst, 10100, LJ_TISNUM);
1719 if (sse) { 1721 if (sse) {
1720 dasm_put(Dst, 10323); 1722 dasm_put(Dst, 10344);
1721 } else { 1723 } else {
1722 dasm_put(Dst, 10338); 1724 dasm_put(Dst, 10359);
1723 } 1725 }
1724 break; 1726 break;
1725 default: 1727 default:
1726 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1728 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1727 if (sse) { 1729 if (sse) {
1728 dasm_put(Dst, 10347); 1730 dasm_put(Dst, 10368);
1729 } else { 1731 } else {
1730 dasm_put(Dst, 10361); 1732 dasm_put(Dst, 10382);
1731 } 1733 }
1732 break; 1734 break;
1733 } 1735 }
1734 if (sse) { 1736 if (sse) {
1735 dasm_put(Dst, 9917); 1737 dasm_put(Dst, 9938);
1736 } else { 1738 } else {
1737 dasm_put(Dst, 9929); 1739 dasm_put(Dst, 9950);
1738 } 1740 }
1739 dasm_put(Dst, 9497); 1741 dasm_put(Dst, 9518);
1740 break; 1742 break;
1741 case BC_MODVN: 1743 case BC_MODVN:
1742 dasm_put(Dst, 10035); 1744 dasm_put(Dst, 10056);
1743 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1745 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1744 switch (vk) { 1746 switch (vk) {
1745 case 0: 1747 case 0:
1746 dasm_put(Dst, 10043, LJ_TISNUM); 1748 dasm_put(Dst, 10064, LJ_TISNUM);
1747 if (sse) { 1749 if (sse) {
1748 dasm_put(Dst, 10369); 1750 dasm_put(Dst, 10390);
1749 } else { 1751 } else {
1750 dasm_put(Dst, 10384); 1752 dasm_put(Dst, 10405);
1751 } 1753 }
1752 break; 1754 break;
1753 case 1: 1755 case 1:
1754 dasm_put(Dst, 10079, LJ_TISNUM); 1756 dasm_put(Dst, 10100, LJ_TISNUM);
1755 if (sse) { 1757 if (sse) {
1756 dasm_put(Dst, 10393); 1758 dasm_put(Dst, 10414);
1757 } else { 1759 } else {
1758 dasm_put(Dst, 10408); 1760 dasm_put(Dst, 10429);
1759 } 1761 }
1760 break; 1762 break;
1761 default: 1763 default:
1762 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1764 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1763 if (sse) { 1765 if (sse) {
1764 dasm_put(Dst, 10417); 1766 dasm_put(Dst, 10438);
1765 } else { 1767 } else {
1766 dasm_put(Dst, 10431); 1768 dasm_put(Dst, 10452);
1767 } 1769 }
1768 break; 1770 break;
1769 } 1771 }
1770 dasm_put(Dst, 10439); 1772 dasm_put(Dst, 10460);
1771 if (sse) { 1773 if (sse) {
1772 dasm_put(Dst, 9917); 1774 dasm_put(Dst, 9938);
1773 } else { 1775 } else {
1774 dasm_put(Dst, 9929); 1776 dasm_put(Dst, 9950);
1775 } 1777 }
1776 dasm_put(Dst, 9497); 1778 dasm_put(Dst, 9518);
1777 break; 1779 break;
1778 case BC_MODNV: case BC_MODVV: 1780 case BC_MODNV: case BC_MODVV:
1779 dasm_put(Dst, 10035); 1781 dasm_put(Dst, 10056);
1780 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1782 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1781 switch (vk) { 1783 switch (vk) {
1782 case 0: 1784 case 0:
1783 dasm_put(Dst, 10043, LJ_TISNUM); 1785 dasm_put(Dst, 10064, LJ_TISNUM);
1784 if (sse) { 1786 if (sse) {
1785 dasm_put(Dst, 10369); 1787 dasm_put(Dst, 10390);
1786 } else { 1788 } else {
1787 dasm_put(Dst, 10384); 1789 dasm_put(Dst, 10405);
1788 } 1790 }
1789 break; 1791 break;
1790 case 1: 1792 case 1:
1791 dasm_put(Dst, 10079, LJ_TISNUM); 1793 dasm_put(Dst, 10100, LJ_TISNUM);
1792 if (sse) { 1794 if (sse) {
1793 dasm_put(Dst, 10393); 1795 dasm_put(Dst, 10414);
1794 } else { 1796 } else {
1795 dasm_put(Dst, 10408); 1797 dasm_put(Dst, 10429);
1796 } 1798 }
1797 break; 1799 break;
1798 default: 1800 default:
1799 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1801 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1800 if (sse) { 1802 if (sse) {
1801 dasm_put(Dst, 10417); 1803 dasm_put(Dst, 10438);
1802 } else { 1804 } else {
1803 dasm_put(Dst, 10431); 1805 dasm_put(Dst, 10452);
1804 } 1806 }
1805 break; 1807 break;
1806 } 1808 }
1807 dasm_put(Dst, 10445); 1809 dasm_put(Dst, 10466);
1808 break; 1810 break;
1809 case BC_POW: 1811 case BC_POW:
1810 dasm_put(Dst, 10035); 1812 dasm_put(Dst, 10056);
1811 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1813 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1812 switch (vk) { 1814 switch (vk) {
1813 case 0: 1815 case 0:
1814 dasm_put(Dst, 10043, LJ_TISNUM); 1816 dasm_put(Dst, 10064, LJ_TISNUM);
1815 if (sse) { 1817 if (sse) {
1816 dasm_put(Dst, 10369); 1818 dasm_put(Dst, 10390);
1817 } else { 1819 } else {
1818 dasm_put(Dst, 10384); 1820 dasm_put(Dst, 10405);
1819 } 1821 }
1820 break; 1822 break;
1821 case 1: 1823 case 1:
1822 dasm_put(Dst, 10079, LJ_TISNUM); 1824 dasm_put(Dst, 10100, LJ_TISNUM);
1823 if (sse) { 1825 if (sse) {
1824 dasm_put(Dst, 10393); 1826 dasm_put(Dst, 10414);
1825 } else { 1827 } else {
1826 dasm_put(Dst, 10408); 1828 dasm_put(Dst, 10429);
1827 } 1829 }
1828 break; 1830 break;
1829 default: 1831 default:
1830 dasm_put(Dst, 10115, LJ_TISNUM, LJ_TISNUM); 1832 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1831 if (sse) { 1833 if (sse) {
1832 dasm_put(Dst, 10417); 1834 dasm_put(Dst, 10438);
1833 } else { 1835 } else {
1834 dasm_put(Dst, 10431); 1836 dasm_put(Dst, 10452);
1835 } 1837 }
1836 break; 1838 break;
1837 } 1839 }
1838 dasm_put(Dst, 10450); 1840 dasm_put(Dst, 10471);
1839 if (sse) { 1841 if (sse) {
1840 dasm_put(Dst, 9917); 1842 dasm_put(Dst, 9938);
1841 } else { 1843 } else {
1842 dasm_put(Dst, 9929); 1844 dasm_put(Dst, 9950);
1843 } 1845 }
1844 dasm_put(Dst, 9497); 1846 dasm_put(Dst, 9518);
1845 break; 1847 break;
1846 1848
1847 case BC_CAT: 1849 case BC_CAT:
1848 dasm_put(Dst, 10454, Dt1(->base), Dt1(->base)); 1850 dasm_put(Dst, 10475, Dt1(->base), Dt1(->base));
1849 break; 1851 break;
1850 1852
1851 /* -- Constant ops ------------------------------------------------------ */ 1853 /* -- Constant ops ------------------------------------------------------ */
1852 1854
1853 case BC_KSTR: 1855 case BC_KSTR:
1854 dasm_put(Dst, 10538, LJ_TSTR); 1856 dasm_put(Dst, 10559, LJ_TSTR);
1855 break; 1857 break;
1856 case BC_KSHORT: 1858 case BC_KSHORT:
1857 if (sse) { 1859 if (sse) {
1858 dasm_put(Dst, 10575); 1860 dasm_put(Dst, 10596);
1859 } else { 1861 } else {
1860 dasm_put(Dst, 10590); 1862 dasm_put(Dst, 10611);
1861 } 1863 }
1862 dasm_put(Dst, 9497); 1864 dasm_put(Dst, 9518);
1863 break; 1865 break;
1864 case BC_KNUM: 1866 case BC_KNUM:
1865 if (sse) { 1867 if (sse) {
1866 dasm_put(Dst, 10598); 1868 dasm_put(Dst, 10619);
1867 } else { 1869 } else {
1868 dasm_put(Dst, 10612); 1870 dasm_put(Dst, 10633);
1869 } 1871 }
1870 dasm_put(Dst, 9497); 1872 dasm_put(Dst, 9518);
1871 break; 1873 break;
1872 case BC_KPRI: 1874 case BC_KPRI:
1873 dasm_put(Dst, 10620); 1875 dasm_put(Dst, 10641);
1874 break; 1876 break;
1875 case BC_KNIL: 1877 case BC_KNIL:
1876 dasm_put(Dst, 10649, LJ_TNIL); 1878 dasm_put(Dst, 10670, LJ_TNIL);
1877 break; 1879 break;
1878 1880
1879 /* -- Upvalue and function ops ------------------------------------------ */ 1881 /* -- Upvalue and function ops ------------------------------------------ */
1880 1882
1881 case BC_UGET: 1883 case BC_UGET:
1882 dasm_put(Dst, 10697, offsetof(GCfuncL, uvptr), DtA(->v)); 1884 dasm_put(Dst, 10718, offsetof(GCfuncL, uvptr), DtA(->v));
1883 break; 1885 break;
1884 case BC_USETV: 1886 case BC_USETV:
1885#define TV2MARKOFS \ 1887#define TV2MARKOFS \
1886 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1888 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1887 dasm_put(Dst, 10738, 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); 1889 dasm_put(Dst, 10759, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1888 dasm_put(Dst, 10834); 1890 dasm_put(Dst, 10855);
1889 break; 1891 break;
1890#undef TV2MARKOFS 1892#undef TV2MARKOFS
1891 case BC_USETS: 1893 case BC_USETS:
1892 dasm_put(Dst, 10846, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1894 dasm_put(Dst, 10867, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1893 break; 1895 break;
1894 case BC_USETN: 1896 case BC_USETN:
1895 dasm_put(Dst, 10942); 1897 dasm_put(Dst, 10963);
1896 if (sse) { 1898 if (sse) {
1897 dasm_put(Dst, 10947); 1899 dasm_put(Dst, 10968);
1898 } else { 1900 } else {
1899 dasm_put(Dst, 9739); 1901 dasm_put(Dst, 9760);
1900 } 1902 }
1901 dasm_put(Dst, 10955, offsetof(GCfuncL, uvptr), DtA(->v)); 1903 dasm_put(Dst, 10976, offsetof(GCfuncL, uvptr), DtA(->v));
1902 if (sse) { 1904 if (sse) {
1903 dasm_put(Dst, 10964); 1905 dasm_put(Dst, 10985);
1904 } else { 1906 } else {
1905 dasm_put(Dst, 10970); 1907 dasm_put(Dst, 10991);
1906 } 1908 }
1907 dasm_put(Dst, 9497); 1909 dasm_put(Dst, 9518);
1908 break; 1910 break;
1909 case BC_USETP: 1911 case BC_USETP:
1910 dasm_put(Dst, 10973, offsetof(GCfuncL, uvptr), DtA(->v)); 1912 dasm_put(Dst, 10994, offsetof(GCfuncL, uvptr), DtA(->v));
1911 break; 1913 break;
1912 case BC_UCLO: 1914 case BC_UCLO:
1913 dasm_put(Dst, 11013, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1915 dasm_put(Dst, 11034, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1914 break; 1916 break;
1915 1917
1916 case BC_FNEW: 1918 case BC_FNEW:
1917 dasm_put(Dst, 11069, Dt1(->base), Dt1(->base), LJ_TFUNC); 1919 dasm_put(Dst, 11090, Dt1(->base), Dt1(->base), LJ_TFUNC);
1918 break; 1920 break;
1919 1921
1920 /* -- Table ops --------------------------------------------------------- */ 1922 /* -- Table ops --------------------------------------------------------- */
1921 1923
1922 case BC_TNEW: 1924 case BC_TNEW:
1923 dasm_put(Dst, 11136, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1925 dasm_put(Dst, 11157, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1924 break; 1926 break;
1925 case BC_TDUP: 1927 case BC_TDUP:
1926 dasm_put(Dst, 11260, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1928 dasm_put(Dst, 11281, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1927 break; 1929 break;
1928 1930
1929 case BC_GGET: 1931 case BC_GGET:
1930 dasm_put(Dst, 11359, Dt7(->env)); 1932 dasm_put(Dst, 11380, Dt7(->env));
1931 break; 1933 break;
1932 case BC_GSET: 1934 case BC_GSET:
1933 dasm_put(Dst, 11379, Dt7(->env)); 1935 dasm_put(Dst, 11400, Dt7(->env));
1934 break; 1936 break;
1935 1937
1936 case BC_TGETV: 1938 case BC_TGETV:
1937 dasm_put(Dst, 11399, LJ_TTAB, LJ_TISNUM); 1939 dasm_put(Dst, 11420, LJ_TTAB, LJ_TISNUM);
1938 if (sse) { 1940 if (sse) {
1939 dasm_put(Dst, 11432); 1941 dasm_put(Dst, 11453);
1940 } else { 1942 } else {
1941 } 1943 }
1942 dasm_put(Dst, 11453, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1944 dasm_put(Dst, 11474, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1943 dasm_put(Dst, 11538, LJ_TNIL, LJ_TSTR); 1945 dasm_put(Dst, 11559, LJ_TNIL, LJ_TSTR);
1944 break; 1946 break;
1945 case BC_TGETS: 1947 case BC_TGETS:
1946 dasm_put(Dst, 11567, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1948 dasm_put(Dst, 11588, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1947 dasm_put(Dst, 11652, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1949 dasm_put(Dst, 11673, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1948 break; 1950 break;
1949 case BC_TGETB: 1951 case BC_TGETB:
1950 dasm_put(Dst, 11724, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1952 dasm_put(Dst, 11745, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1951 dasm_put(Dst, 11820, LJ_TNIL); 1953 dasm_put(Dst, 11841, LJ_TNIL);
1952 break; 1954 break;
1953 1955
1954 case BC_TSETV: 1956 case BC_TSETV:
1955 dasm_put(Dst, 11837, LJ_TTAB, LJ_TISNUM); 1957 dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM);
1956 if (sse) { 1958 if (sse) {
1957 dasm_put(Dst, 11432); 1959 dasm_put(Dst, 11453);
1958 } else { 1960 } else {
1959 } 1961 }
1960 dasm_put(Dst, 11870, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1962 dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1961 dasm_put(Dst, 11950, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1963 dasm_put(Dst, 11971, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1962 break; 1964 break;
1963 case BC_TSETS: 1965 case BC_TSETS:
1964 dasm_put(Dst, 12014, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1966 dasm_put(Dst, 12035, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1965 dasm_put(Dst, 12091, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1967 dasm_put(Dst, 12112, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1966 dasm_put(Dst, 12178, 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)); 1968 dasm_put(Dst, 12199, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1967 break; 1969 break;
1968 case BC_TSETB: 1970 case BC_TSETB:
1969 dasm_put(Dst, 12270, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1971 dasm_put(Dst, 12291, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1970 dasm_put(Dst, 12365, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1972 dasm_put(Dst, 12386, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1971 break; 1973 break;
1972 1974
1973 case BC_TSETM: 1975 case BC_TSETM:
1974 dasm_put(Dst, 12413, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1976 dasm_put(Dst, 12434, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1975 dasm_put(Dst, 12563, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1977 dasm_put(Dst, 12584, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1976 break; 1978 break;
1977 1979
1978 /* -- Calls and vararg handling ----------------------------------------- */ 1980 /* -- Calls and vararg handling ----------------------------------------- */
1979 1981
1980 case BC_CALL: case BC_CALLM: 1982 case BC_CALL: case BC_CALLM:
1981 dasm_put(Dst, 10039); 1983 dasm_put(Dst, 10060);
1982 if (op == BC_CALLM) { 1984 if (op == BC_CALLM) {
1983 dasm_put(Dst, 12583); 1985 dasm_put(Dst, 12604);
1984 } 1986 }
1985 dasm_put(Dst, 12588, LJ_TFUNC, Dt7(->pc)); 1987 dasm_put(Dst, 12609, LJ_TFUNC, Dt7(->pc));
1986 break; 1988 break;
1987 1989
1988 case BC_CALLMT: 1990 case BC_CALLMT:
1989 dasm_put(Dst, 12583); 1991 dasm_put(Dst, 12604);
1990 break; 1992 break;
1991 case BC_CALLT: 1993 case BC_CALLT:
1992 dasm_put(Dst, 12631, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1994 dasm_put(Dst, 12652, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1993 dasm_put(Dst, 12749, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 1995 dasm_put(Dst, 12770, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1994 break; 1996 break;
1995 1997
1996 case BC_ITERC: 1998 case BC_ITERC:
1997 dasm_put(Dst, 12823, LJ_TFUNC, 2+1, Dt7(->pc)); 1999 dasm_put(Dst, 12844, LJ_TFUNC, 2+1, Dt7(->pc));
1998 break; 2000 break;
1999 2001
2000 case BC_ITERN: 2002 case BC_ITERN:
2001#if LJ_HASJIT 2003#if LJ_HASJIT
2002#endif 2004#endif
2003 dasm_put(Dst, 12895, Dt6(->asize), Dt6(->array), LJ_TNIL); 2005 dasm_put(Dst, 12916, Dt6(->asize), Dt6(->array), LJ_TNIL);
2004 if (sse) { 2006 if (sse) {
2005 dasm_put(Dst, 12947); 2007 dasm_put(Dst, 12968);
2006 } else { 2008 } else {
2007 dasm_put(Dst, 12953); 2009 dasm_put(Dst, 12974);
2008 } 2010 }
2009 dasm_put(Dst, 12959); 2011 dasm_put(Dst, 12980);
2010 if (sse) { 2012 if (sse) {
2011 dasm_put(Dst, 9917); 2013 dasm_put(Dst, 9938);
2012 } else { 2014 } else {
2013 dasm_put(Dst, 9929); 2015 dasm_put(Dst, 9950);
2014 } 2016 }
2015 dasm_put(Dst, 12972, -BCBIAS_J*4); 2017 dasm_put(Dst, 12993, -BCBIAS_J*4);
2016 if (!sse) { 2018 if (!sse) {
2017 dasm_put(Dst, 13026); 2019 dasm_put(Dst, 13047);
2018 } 2020 }
2019 dasm_put(Dst, 13032, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2021 dasm_put(Dst, 13053, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2020 break; 2022 break;
2021 2023
2022 case BC_ISNEXT: 2024 case BC_ISNEXT:
2023 dasm_put(Dst, 13111, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2025 dasm_put(Dst, 13132, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2024 break; 2026 break;
2025 2027
2026 case BC_VARG: 2028 case BC_VARG:
2027 dasm_put(Dst, 13212, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2029 dasm_put(Dst, 13233, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2028 dasm_put(Dst, 13379, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2030 dasm_put(Dst, 13400, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2029 break; 2031 break;
2030 2032
2031 /* -- Returns ----------------------------------------------------------- */ 2033 /* -- Returns ----------------------------------------------------------- */
2032 2034
2033 case BC_RETM: 2035 case BC_RETM:
2034 dasm_put(Dst, 12583); 2036 dasm_put(Dst, 12604);
2035 break; 2037 break;
2036 2038
2037 case BC_RET: case BC_RET0: case BC_RET1: 2039 case BC_RET: case BC_RET0: case BC_RET1:
2038 if (op != BC_RET0) { 2040 if (op != BC_RET0) {
2039 dasm_put(Dst, 13449); 2041 dasm_put(Dst, 13470);
2040 } 2042 }
2041 dasm_put(Dst, 13453, FRAME_TYPE); 2043 dasm_put(Dst, 13474, FRAME_TYPE);
2042 switch (op) { 2044 switch (op) {
2043 case BC_RET: 2045 case BC_RET:
2044 dasm_put(Dst, 13472); 2046 dasm_put(Dst, 13493);
2045 break; 2047 break;
2046 case BC_RET1: 2048 case BC_RET1:
2047 dasm_put(Dst, 13526); 2049 dasm_put(Dst, 13547);
2048 /* fallthrough */ 2050 /* fallthrough */
2049 case BC_RET0: 2051 case BC_RET0:
2050 dasm_put(Dst, 13536); 2052 dasm_put(Dst, 13557);
2051 default: 2053 default:
2052 break; 2054 break;
2053 } 2055 }
2054 dasm_put(Dst, 13547, Dt7(->pc), PC2PROTO(k)); 2056 dasm_put(Dst, 13568, Dt7(->pc), PC2PROTO(k));
2055 if (op == BC_RET) { 2057 if (op == BC_RET) {
2056 dasm_put(Dst, 13595, LJ_TNIL); 2058 dasm_put(Dst, 13616, LJ_TNIL);
2057 } else { 2059 } else {
2058 dasm_put(Dst, 13606, LJ_TNIL); 2060 dasm_put(Dst, 13627, LJ_TNIL);
2059 } 2061 }
2060 dasm_put(Dst, 13613, -FRAME_VARG, FRAME_TYPEP); 2062 dasm_put(Dst, 13634, -FRAME_VARG, FRAME_TYPEP);
2061 if (op != BC_RET0) { 2063 if (op != BC_RET0) {
2062 dasm_put(Dst, 13637); 2064 dasm_put(Dst, 13658);
2063 } 2065 }
2064 dasm_put(Dst, 4531); 2066 dasm_put(Dst, 4552);
2065 break; 2067 break;
2066 2068
2067 /* -- Loops and branches ------------------------------------------------ */ 2069 /* -- Loops and branches ------------------------------------------------ */
@@ -2069,7 +2071,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2069 2071
2070 case BC_FORL: 2072 case BC_FORL:
2071#if LJ_HASJIT 2073#if LJ_HASJIT
2072 dasm_put(Dst, 13641, HOTCOUNT_PCMASK, GG_DISP2HOT); 2074 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT);
2073#endif 2075#endif
2074 break; 2076 break;
2075 2077
@@ -2081,57 +2083,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2081 case BC_FORI: 2083 case BC_FORI:
2082 case BC_IFORL: 2084 case BC_IFORL:
2083 vk = (op == BC_IFORL || op == BC_JFORL); 2085 vk = (op == BC_IFORL || op == BC_JFORL);
2084 dasm_put(Dst, 13662); 2086 dasm_put(Dst, 13683);
2085 if (!vk) { 2087 if (!vk) {
2086 dasm_put(Dst, 13666, LJ_TISNUM, LJ_TISNUM); 2088 dasm_put(Dst, 13687, LJ_TISNUM, LJ_TISNUM);
2087 } 2089 }
2088 dasm_put(Dst, 13685); 2090 dasm_put(Dst, 13706);
2089 if (!vk) { 2091 if (!vk) {
2090 dasm_put(Dst, 13689, LJ_TISNUM); 2092 dasm_put(Dst, 13710, LJ_TISNUM);
2091 } 2093 }
2092 if (sse) { 2094 if (sse) {
2093 dasm_put(Dst, 13698); 2095 dasm_put(Dst, 13719);
2094 if (vk) { 2096 if (vk) {
2095 dasm_put(Dst, 13710); 2097 dasm_put(Dst, 13731);
2096 } else { 2098 } else {
2097 dasm_put(Dst, 13729); 2099 dasm_put(Dst, 13750);
2098 } 2100 }
2099 dasm_put(Dst, 13734); 2101 dasm_put(Dst, 13755);
2100 } else { 2102 } else {
2101 dasm_put(Dst, 13747); 2103 dasm_put(Dst, 13768);
2102 if (vk) { 2104 if (vk) {
2103 dasm_put(Dst, 13753); 2105 dasm_put(Dst, 13774);
2104 } else { 2106 } else {
2105 dasm_put(Dst, 13769); 2107 dasm_put(Dst, 13790);
2106 } 2108 }
2107 dasm_put(Dst, 13777); 2109 dasm_put(Dst, 13798);
2108 if (cmov) { 2110 if (cmov) {
2109 dasm_put(Dst, 9460); 2111 dasm_put(Dst, 9481);
2110 } else { 2112 } else {
2111 dasm_put(Dst, 9466); 2113 dasm_put(Dst, 9487);
2112 } 2114 }
2113 if (!cmov) { 2115 if (!cmov) {
2114 dasm_put(Dst, 13782); 2116 dasm_put(Dst, 13803);
2115 } 2117 }
2116 } 2118 }
2117 if (op == BC_FORI) { 2119 if (op == BC_FORI) {
2118 dasm_put(Dst, 13788, -BCBIAS_J*4); 2120 dasm_put(Dst, 13809, -BCBIAS_J*4);
2119 } else if (op == BC_JFORI) { 2121 } else if (op == BC_JFORI) {
2120 dasm_put(Dst, 13798, -BCBIAS_J*4, BC_JLOOP); 2122 dasm_put(Dst, 13819, -BCBIAS_J*4, BC_JLOOP);
2121 } else if (op == BC_IFORL) { 2123 } else if (op == BC_IFORL) {
2122 dasm_put(Dst, 13812, -BCBIAS_J*4); 2124 dasm_put(Dst, 13833, -BCBIAS_J*4);
2123 } else { 2125 } else {
2124 dasm_put(Dst, 13808, BC_JLOOP); 2126 dasm_put(Dst, 13829, BC_JLOOP);
2125 } 2127 }
2126 dasm_put(Dst, 9495); 2128 dasm_put(Dst, 9516);
2127 if (sse) { 2129 if (sse) {
2128 dasm_put(Dst, 13822); 2130 dasm_put(Dst, 13843);
2129 } 2131 }
2130 break; 2132 break;
2131 2133
2132 case BC_ITERL: 2134 case BC_ITERL:
2133#if LJ_HASJIT 2135#if LJ_HASJIT
2134 dasm_put(Dst, 13641, HOTCOUNT_PCMASK, GG_DISP2HOT); 2136 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT);
2135#endif 2137#endif
2136 break; 2138 break;
2137 2139
@@ -2140,33 +2142,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2140 break; 2142 break;
2141#endif 2143#endif
2142 case BC_IITERL: 2144 case BC_IITERL:
2143 dasm_put(Dst, 13833, LJ_TNIL); 2145 dasm_put(Dst, 13854, LJ_TNIL);
2144 if (op == BC_JITERL) { 2146 if (op == BC_JITERL) {
2145 dasm_put(Dst, 13848, BC_JLOOP); 2147 dasm_put(Dst, 13869, BC_JLOOP);
2146 } else { 2148 } else {
2147 dasm_put(Dst, 13862, -BCBIAS_J*4); 2149 dasm_put(Dst, 13883, -BCBIAS_J*4);
2148 } 2150 }
2149 dasm_put(Dst, 9799); 2151 dasm_put(Dst, 9820);
2150 break; 2152 break;
2151 2153
2152 case BC_LOOP: 2154 case BC_LOOP:
2153#if LJ_HASJIT 2155#if LJ_HASJIT
2154 dasm_put(Dst, 13641, HOTCOUNT_PCMASK, GG_DISP2HOT); 2156 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT);
2155#endif 2157#endif
2156 break; 2158 break;
2157 2159
2158 case BC_ILOOP: 2160 case BC_ILOOP:
2159 dasm_put(Dst, 9497); 2161 dasm_put(Dst, 9518);
2160 break; 2162 break;
2161 2163
2162 case BC_JLOOP: 2164 case BC_JLOOP:
2163#if LJ_HASJIT 2165#if LJ_HASJIT
2164 dasm_put(Dst, 13878, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2166 dasm_put(Dst, 13899, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2165#endif 2167#endif
2166 break; 2168 break;
2167 2169
2168 case BC_JMP: 2170 case BC_JMP:
2169 dasm_put(Dst, 13919, -BCBIAS_J*4); 2171 dasm_put(Dst, 13940, -BCBIAS_J*4);
2170 break; 2172 break;
2171 2173
2172 /* -- Function headers -------------------------------------------------- */ 2174 /* -- Function headers -------------------------------------------------- */
@@ -2180,7 +2182,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2180 2182
2181 case BC_FUNCF: 2183 case BC_FUNCF:
2182#if LJ_HASJIT 2184#if LJ_HASJIT
2183 dasm_put(Dst, 13945, HOTCOUNT_PCMASK, GG_DISP2HOT); 2185 dasm_put(Dst, 13966, HOTCOUNT_PCMASK, GG_DISP2HOT);
2184#endif 2186#endif
2185 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2187 case BC_FUNCV: /* NYI: compiled vararg functions. */
2186 break; 2188 break;
@@ -2190,47 +2192,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2190 break; 2192 break;
2191#endif 2193#endif
2192 case BC_IFUNCF: 2194 case BC_IFUNCF:
2193 dasm_put(Dst, 13966, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2195 dasm_put(Dst, 13987, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2194 if (op == BC_JFUNCF) { 2196 if (op == BC_JFUNCF) {
2195 dasm_put(Dst, 13997, BC_JLOOP); 2197 dasm_put(Dst, 14018, BC_JLOOP);
2196 } else { 2198 } else {
2197 dasm_put(Dst, 9497); 2199 dasm_put(Dst, 9518);
2198 } 2200 }
2199 dasm_put(Dst, 14006, LJ_TNIL); 2201 dasm_put(Dst, 14027, LJ_TNIL);
2200 break; 2202 break;
2201 2203
2202 case BC_JFUNCV: 2204 case BC_JFUNCV:
2203#if !LJ_HASJIT 2205#if !LJ_HASJIT
2204 break; 2206 break;
2205#endif 2207#endif
2206 dasm_put(Dst, 8976); 2208 dasm_put(Dst, 8997);
2207 break; /* NYI: compiled vararg functions. */ 2209 break; /* NYI: compiled vararg functions. */
2208 2210
2209 case BC_IFUNCV: 2211 case BC_IFUNCV:
2210 dasm_put(Dst, 14028, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2212 dasm_put(Dst, 14049, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2211 if (op == BC_JFUNCV) { 2213 if (op == BC_JFUNCV) {
2212 dasm_put(Dst, 13997, BC_JLOOP); 2214 dasm_put(Dst, 14018, BC_JLOOP);
2213 } else { 2215 } else {
2214 dasm_put(Dst, 14125, -4+PC2PROTO(k)); 2216 dasm_put(Dst, 14146, -4+PC2PROTO(k));
2215 } 2217 }
2216 dasm_put(Dst, 14150, LJ_TNIL); 2218 dasm_put(Dst, 14171, LJ_TNIL);
2217 break; 2219 break;
2218 2220
2219 case BC_FUNCC: 2221 case BC_FUNCC:
2220 case BC_FUNCCW: 2222 case BC_FUNCCW:
2221 dasm_put(Dst, 14172, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2223 dasm_put(Dst, 14193, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2222 if (op == BC_FUNCC) { 2224 if (op == BC_FUNCC) {
2223 dasm_put(Dst, 14202); 2225 dasm_put(Dst, 14223);
2224 } else { 2226 } else {
2225 dasm_put(Dst, 14206); 2227 dasm_put(Dst, 14227);
2226 } 2228 }
2227 dasm_put(Dst, 14214, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2229 dasm_put(Dst, 14235, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2228 if (op == BC_FUNCC) { 2230 if (op == BC_FUNCC) {
2229 dasm_put(Dst, 14224); 2231 dasm_put(Dst, 14245);
2230 } else { 2232 } else {
2231 dasm_put(Dst, 14229, DISPATCH_GL(wrapf)); 2233 dasm_put(Dst, 14250, DISPATCH_GL(wrapf));
2232 } 2234 }
2233 dasm_put(Dst, 14235, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2235 dasm_put(Dst, 14256, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2234 break; 2236 break;
2235 2237
2236 /* ---------------------------------------------------------------------- */ 2238 /* ---------------------------------------------------------------------- */
@@ -2258,7 +2260,7 @@ static int build_backend(BuildCtx *ctx)
2258 2260
2259 build_subroutines(ctx, cmov, sse); 2261 build_subroutines(ctx, cmov, sse);
2260 2262
2261 dasm_put(Dst, 14261); 2263 dasm_put(Dst, 14282);
2262 for (op = 0; op < BC__MAX; op++) 2264 for (op = 0; op < BC__MAX; op++)
2263 build_ins(ctx, (BCOp)op, op, cmov, sse); 2265 build_ins(ctx, (BCOp)op, op, cmov, sse);
2264 2266