#define DASM_SECTION_CODE_OP 0
#define DASM_SECTION_CODE_SUB 1
#define DASM_MAXSECTION 2
-static const unsigned char build_actionlist[14099] = {
+static const unsigned char build_actionlist[14100] = {
254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,
24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,
137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,
- 144,233,139,149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,
- 232,3,131,192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,
- 139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,
- 209,252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,
- 20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,
- 244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,
+ 144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209,193,
+ 252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,157,233,139,
+ 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209,
+ 252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,
+ 234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,
+ 248,5,190,237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248,
66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,
252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,
193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,
}
dasm_put(Dst, 6799, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
dasm_put(Dst, 6877, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
- dasm_put(Dst, 7003, Dt1(->top), Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 7004, Dt1(->top), Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7042, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
+ dasm_put(Dst, 7043, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
#endif
- dasm_put(Dst, 7075, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
- dasm_put(Dst, 7129, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
+ dasm_put(Dst, 7076, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
+ dasm_put(Dst, 7130, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
#if LJ_HASJIT
- dasm_put(Dst, 7196, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
+ dasm_put(Dst, 7197, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
#endif
- dasm_put(Dst, 7243);
+ dasm_put(Dst, 7244);
#if LJ_HASJIT
- dasm_put(Dst, 7070);
+ dasm_put(Dst, 7071);
#endif
- dasm_put(Dst, 7250);
+ dasm_put(Dst, 7251);
#if LJ_HASJIT
- dasm_put(Dst, 7253);
+ dasm_put(Dst, 7254);
#endif
- dasm_put(Dst, 7263, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 7264, Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7296);
+ dasm_put(Dst, 7297);
#endif
- dasm_put(Dst, 7301, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 7302, Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7332, 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);
+ dasm_put(Dst, 7333, 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);
#endif
- dasm_put(Dst, 7571);
+ dasm_put(Dst, 7572);
#if LJ_HASJIT
- dasm_put(Dst, 7574, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
+ dasm_put(Dst, 7575, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
#endif
- dasm_put(Dst, 7674);
+ dasm_put(Dst, 7675);
if (!sse) {
- dasm_put(Dst, 7677);
+ dasm_put(Dst, 7678);
}
- dasm_put(Dst, 7722, (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));
+ dasm_put(Dst, 7723, (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));
if (!sse) {
- dasm_put(Dst, 7808);
+ dasm_put(Dst, 7809);
}
- dasm_put(Dst, 7853, (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));
+ dasm_put(Dst, 7854, (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));
if (!sse) {
- dasm_put(Dst, 7939);
+ dasm_put(Dst, 7940);
}
- dasm_put(Dst, 7978, (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));
+ dasm_put(Dst, 7979, (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));
if (sse) {
- dasm_put(Dst, 8067, (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));
+ dasm_put(Dst, 8068, (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));
} else {
- dasm_put(Dst, 8181);
+ dasm_put(Dst, 8182);
}
- dasm_put(Dst, 8228);
+ dasm_put(Dst, 8229);
if (!sse) {
} else {
- dasm_put(Dst, 8305);
+ dasm_put(Dst, 8306);
}
- dasm_put(Dst, 8308);
- dasm_put(Dst, 8393, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
- dasm_put(Dst, 8494, (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));
- dasm_put(Dst, 8668);
+ dasm_put(Dst, 8309);
+ dasm_put(Dst, 8394, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+ dasm_put(Dst, 8495, (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));
+ dasm_put(Dst, 8669);
#if LJ_HASJIT
if (sse) {
- dasm_put(Dst, 8709);
- dasm_put(Dst, 8779);
- dasm_put(Dst, 8851);
+ dasm_put(Dst, 8710);
+ dasm_put(Dst, 8780);
+ dasm_put(Dst, 8852);
} else {
- dasm_put(Dst, 8903);
- dasm_put(Dst, 8995);
+ dasm_put(Dst, 8904);
+ dasm_put(Dst, 8996);
}
- dasm_put(Dst, 9041);
+ dasm_put(Dst, 9042);
#endif
- dasm_put(Dst, 9045);
+ dasm_put(Dst, 9046);
if (sse) {
- dasm_put(Dst, 9048, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
- dasm_put(Dst, 9133, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
+ dasm_put(Dst, 9049, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+ dasm_put(Dst, 9134, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
} else {
- dasm_put(Dst, 9261);
- dasm_put(Dst, 9344);
+ dasm_put(Dst, 9262);
+ dasm_put(Dst, 9345);
if (cmov) {
- dasm_put(Dst, 9399);
+ dasm_put(Dst, 9400);
} else {
- dasm_put(Dst, 9418);
+ dasm_put(Dst, 9419);
}
- dasm_put(Dst, 9041);
+ dasm_put(Dst, 9042);
}
- dasm_put(Dst, 9459);
+ dasm_put(Dst, 9460);
}
/* Generate the code for a single instruction. */
/* Remember: all ops branch for a true comparison, fall through otherwise. */
case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
- dasm_put(Dst, 9481, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 9482, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9502);
+ dasm_put(Dst, 9503);
} else {
- dasm_put(Dst, 9517);
+ dasm_put(Dst, 9518);
if (cmov) {
- dasm_put(Dst, 9527);
+ dasm_put(Dst, 9528);
} else {
- dasm_put(Dst, 9533);
+ dasm_put(Dst, 9534);
}
}
switch (op) {
case BC_ISLT:
- dasm_put(Dst, 9540);
+ dasm_put(Dst, 9541);
break;
case BC_ISGE:
- dasm_put(Dst, 9339);
+ dasm_put(Dst, 9340);
break;
case BC_ISLE:
dasm_put(Dst, 5947);
break;
case BC_ISGT:
- dasm_put(Dst, 9545);
+ dasm_put(Dst, 9546);
break;
default: break; /* Shut up GCC. */
}
- dasm_put(Dst, 9550, -BCBIAS_J*4);
+ dasm_put(Dst, 9551, -BCBIAS_J*4);
break;
case BC_ISEQV: case BC_ISNEV:
vk = op == BC_ISEQV;
- dasm_put(Dst, 9585, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 9586, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9611);
+ dasm_put(Dst, 9612);
} else {
- dasm_put(Dst, 9623);
+ dasm_put(Dst, 9624);
if (cmov) {
- dasm_put(Dst, 9527);
+ dasm_put(Dst, 9528);
} else {
- dasm_put(Dst, 9533);
+ dasm_put(Dst, 9534);
}
}
iseqne_fp:
if (vk) {
- dasm_put(Dst, 9630);
+ dasm_put(Dst, 9631);
} else {
- dasm_put(Dst, 9639);
+ dasm_put(Dst, 9640);
}
iseqne_end:
if (vk) {
- dasm_put(Dst, 9648, -BCBIAS_J*4);
+ dasm_put(Dst, 9649, -BCBIAS_J*4);
} else {
- dasm_put(Dst, 9663, -BCBIAS_J*4);
+ dasm_put(Dst, 9664, -BCBIAS_J*4);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
if (op == BC_ISEQV || op == BC_ISNEV) {
- dasm_put(Dst, 9678, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
+ dasm_put(Dst, 9679, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
if (vk) {
- dasm_put(Dst, 9736);
+ dasm_put(Dst, 9737);
} else {
- dasm_put(Dst, 9740);
+ dasm_put(Dst, 9741);
}
- dasm_put(Dst, 9746);
+ dasm_put(Dst, 9747);
}
break;
case BC_ISEQS: case BC_ISNES:
vk = op == BC_ISEQS;
- dasm_put(Dst, 9751, LJ_TSTR);
+ dasm_put(Dst, 9752, LJ_TSTR);
iseqne_test:
if (vk) {
- dasm_put(Dst, 9634);
+ dasm_put(Dst, 9635);
} else {
dasm_put(Dst, 2836);
}
goto iseqne_end;
case BC_ISEQN: case BC_ISNEN:
vk = op == BC_ISEQN;
- dasm_put(Dst, 9776, LJ_TISNUM);
+ dasm_put(Dst, 9777, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9790);
+ dasm_put(Dst, 9791);
} else {
- dasm_put(Dst, 9803);
+ dasm_put(Dst, 9804);
if (cmov) {
- dasm_put(Dst, 9527);
+ dasm_put(Dst, 9528);
} else {
- dasm_put(Dst, 9533);
+ dasm_put(Dst, 9534);
}
}
goto iseqne_fp;
case BC_ISEQP: case BC_ISNEP:
vk = op == BC_ISEQP;
- dasm_put(Dst, 9811);
+ dasm_put(Dst, 9812);
goto iseqne_test;
/* -- Unary test and copy ops ------------------------------------------- */
case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
- dasm_put(Dst, 9823, LJ_TISTRUECOND);
+ dasm_put(Dst, 9824, LJ_TISTRUECOND);
if (op == BC_IST || op == BC_ISTC) {
- dasm_put(Dst, 9835);
+ dasm_put(Dst, 9836);
} else {
- dasm_put(Dst, 9840);
+ dasm_put(Dst, 9841);
}
if (op == BC_ISTC || op == BC_ISFC) {
- dasm_put(Dst, 9845);
+ dasm_put(Dst, 9846);
}
- dasm_put(Dst, 9856, -BCBIAS_J*4);
+ dasm_put(Dst, 9857, -BCBIAS_J*4);
break;
/* -- Unary ops --------------------------------------------------------- */
case BC_MOV:
- dasm_put(Dst, 9889);
+ dasm_put(Dst, 9890);
break;
case BC_NOT:
- dasm_put(Dst, 9924, LJ_TISTRUECOND, LJ_TTRUE);
+ dasm_put(Dst, 9925, LJ_TISTRUECOND, LJ_TTRUE);
break;
case BC_UNM:
- dasm_put(Dst, 9961, LJ_TISNUM);
+ dasm_put(Dst, 9962, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9972, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+ dasm_put(Dst, 9973, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
} else {
- dasm_put(Dst, 9997);
+ dasm_put(Dst, 9998);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_LEN:
- dasm_put(Dst, 10006, LJ_TSTR);
+ dasm_put(Dst, 10007, LJ_TSTR);
if (sse) {
- dasm_put(Dst, 10020, Dt5(->len));
+ dasm_put(Dst, 10021, Dt5(->len));
} else {
- dasm_put(Dst, 10038, Dt5(->len));
+ dasm_put(Dst, 10039, Dt5(->len));
}
- dasm_put(Dst, 10047, LJ_TTAB);
+ dasm_put(Dst, 10048, LJ_TTAB);
if (sse) {
- dasm_put(Dst, 10089);
+ dasm_put(Dst, 10090);
} else {
}
- dasm_put(Dst, 10098);
+ dasm_put(Dst, 10099);
break;
/* -- Binary ops -------------------------------------------------------- */
case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10128);
+ dasm_put(Dst, 10129);
} else {
- dasm_put(Dst, 10143);
+ dasm_put(Dst, 10144);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10164);
+ dasm_put(Dst, 10165);
} else {
- dasm_put(Dst, 10179);
+ dasm_put(Dst, 10180);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10210);
+ dasm_put(Dst, 10211);
} else {
- dasm_put(Dst, 10224);
+ dasm_put(Dst, 10225);
}
break;
}
if (sse) {
- dasm_put(Dst, 9990);
+ dasm_put(Dst, 9991);
} else {
- dasm_put(Dst, 10002);
+ dasm_put(Dst, 10003);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10232);
+ dasm_put(Dst, 10233);
} else {
- dasm_put(Dst, 10247);
+ dasm_put(Dst, 10248);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10256);
+ dasm_put(Dst, 10257);
} else {
- dasm_put(Dst, 10271);
+ dasm_put(Dst, 10272);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10280);
+ dasm_put(Dst, 10281);
} else {
- dasm_put(Dst, 10294);
+ dasm_put(Dst, 10295);
}
break;
}
if (sse) {
- dasm_put(Dst, 9990);
+ dasm_put(Dst, 9991);
} else {
- dasm_put(Dst, 10002);
+ dasm_put(Dst, 10003);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_MULVN: case BC_MULNV: case BC_MULVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10302);
+ dasm_put(Dst, 10303);
} else {
- dasm_put(Dst, 10317);
+ dasm_put(Dst, 10318);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10326);
+ dasm_put(Dst, 10327);
} else {
- dasm_put(Dst, 10341);
+ dasm_put(Dst, 10342);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10350);
+ dasm_put(Dst, 10351);
} else {
- dasm_put(Dst, 10364);
+ dasm_put(Dst, 10365);
}
break;
}
if (sse) {
- dasm_put(Dst, 9990);
+ dasm_put(Dst, 9991);
} else {
- dasm_put(Dst, 10002);
+ dasm_put(Dst, 10003);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10372);
+ dasm_put(Dst, 10373);
} else {
- dasm_put(Dst, 10387);
+ dasm_put(Dst, 10388);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10396);
+ dasm_put(Dst, 10397);
} else {
- dasm_put(Dst, 10411);
+ dasm_put(Dst, 10412);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10420);
+ dasm_put(Dst, 10421);
} else {
- dasm_put(Dst, 10434);
+ dasm_put(Dst, 10435);
}
break;
}
if (sse) {
- dasm_put(Dst, 9990);
+ dasm_put(Dst, 9991);
} else {
- dasm_put(Dst, 10002);
+ dasm_put(Dst, 10003);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_MODVN:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10442);
+ dasm_put(Dst, 10443);
} else {
- dasm_put(Dst, 10457);
+ dasm_put(Dst, 10458);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10466);
+ dasm_put(Dst, 10467);
} else {
- dasm_put(Dst, 10481);
+ dasm_put(Dst, 10482);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10490);
+ dasm_put(Dst, 10491);
} else {
- dasm_put(Dst, 10504);
+ dasm_put(Dst, 10505);
}
break;
}
- dasm_put(Dst, 10512);
+ dasm_put(Dst, 10513);
if (sse) {
- dasm_put(Dst, 9990);
+ dasm_put(Dst, 9991);
} else {
- dasm_put(Dst, 10002);
+ dasm_put(Dst, 10003);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_MODNV: case BC_MODVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10442);
+ dasm_put(Dst, 10443);
} else {
- dasm_put(Dst, 10457);
+ dasm_put(Dst, 10458);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10466);
+ dasm_put(Dst, 10467);
} else {
- dasm_put(Dst, 10481);
+ dasm_put(Dst, 10482);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10490);
+ dasm_put(Dst, 10491);
} else {
- dasm_put(Dst, 10504);
+ dasm_put(Dst, 10505);
}
break;
}
- dasm_put(Dst, 10518);
+ dasm_put(Dst, 10519);
break;
case BC_POW:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10442);
+ dasm_put(Dst, 10443);
} else {
- dasm_put(Dst, 10457);
+ dasm_put(Dst, 10458);
}
break;
case 1:
- dasm_put(Dst, 10152, LJ_TISNUM);
+ dasm_put(Dst, 10153, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10466);
+ dasm_put(Dst, 10467);
} else {
- dasm_put(Dst, 10481);
+ dasm_put(Dst, 10482);
}
break;
default:
- dasm_put(Dst, 10188, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10189, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10490);
+ dasm_put(Dst, 10491);
} else {
- dasm_put(Dst, 10504);
+ dasm_put(Dst, 10505);
}
break;
}
- dasm_put(Dst, 10523);
+ dasm_put(Dst, 10524);
if (sse) {
- dasm_put(Dst, 9990);
+ dasm_put(Dst, 9991);
} else {
- dasm_put(Dst, 10002);
+ dasm_put(Dst, 10003);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_CAT:
- dasm_put(Dst, 10527, Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 10528, Dt1(->base), Dt1(->base));
break;
/* -- Constant ops ------------------------------------------------------ */
case BC_KSTR:
- dasm_put(Dst, 10618, LJ_TSTR);
+ dasm_put(Dst, 10619, LJ_TSTR);
break;
case BC_KSHORT:
if (sse) {
- dasm_put(Dst, 10655);
+ dasm_put(Dst, 10656);
} else {
- dasm_put(Dst, 10670);
+ dasm_put(Dst, 10671);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_KNUM:
if (sse) {
- dasm_put(Dst, 10678);
+ dasm_put(Dst, 10679);
} else {
- dasm_put(Dst, 10692);
+ dasm_put(Dst, 10693);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_KPRI:
- dasm_put(Dst, 10700);
+ dasm_put(Dst, 10701);
break;
case BC_KNIL:
- dasm_put(Dst, 10729, LJ_TNIL);
+ dasm_put(Dst, 10730, LJ_TNIL);
break;
/* -- Upvalue and function ops ------------------------------------------ */
case BC_UGET:
- dasm_put(Dst, 10777, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 10778, offsetof(GCfuncL, uvptr), DtA(->v));
break;
case BC_USETV:
#define TV2MARKOFS \
((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
- dasm_put(Dst, 10823, 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);
- dasm_put(Dst, 10919);
+ dasm_put(Dst, 10824, 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);
+ dasm_put(Dst, 10920);
break;
#undef TV2MARKOFS
case BC_USETS:
- dasm_put(Dst, 10931, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
+ dasm_put(Dst, 10932, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
break;
case BC_USETN:
- dasm_put(Dst, 11027);
+ dasm_put(Dst, 11028);
if (sse) {
- dasm_put(Dst, 11032);
+ dasm_put(Dst, 11033);
} else {
- dasm_put(Dst, 9806);
+ dasm_put(Dst, 9807);
}
- dasm_put(Dst, 11040, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 11041, offsetof(GCfuncL, uvptr), DtA(->v));
if (sse) {
- dasm_put(Dst, 11049);
+ dasm_put(Dst, 11050);
} else {
- dasm_put(Dst, 11055);
+ dasm_put(Dst, 11056);
}
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_USETP:
- dasm_put(Dst, 11058, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 11059, offsetof(GCfuncL, uvptr), DtA(->v));
break;
case BC_UCLO:
- dasm_put(Dst, 11098, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 11099, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
break;
case BC_FNEW:
- dasm_put(Dst, 11154, Dt1(->base), Dt1(->base), LJ_TFUNC);
+ dasm_put(Dst, 11155, Dt1(->base), Dt1(->base), LJ_TFUNC);
break;
/* -- Table ops --------------------------------------------------------- */
case BC_TNEW:
- dasm_put(Dst, 11221, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
+ dasm_put(Dst, 11222, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
break;
case BC_TDUP:
- dasm_put(Dst, 11345, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
+ dasm_put(Dst, 11346, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
break;
case BC_GGET:
- dasm_put(Dst, 11444, Dt7(->env));
+ dasm_put(Dst, 11445, Dt7(->env));
break;
case BC_GSET:
- dasm_put(Dst, 11464, Dt7(->env));
+ dasm_put(Dst, 11465, Dt7(->env));
break;
case BC_TGETV:
- dasm_put(Dst, 11484, LJ_TTAB, LJ_TISNUM);
+ dasm_put(Dst, 11485, LJ_TTAB, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11517);
+ dasm_put(Dst, 11518);
} else {
}
- dasm_put(Dst, 11538, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
- dasm_put(Dst, 11632, LJ_TSTR);
+ dasm_put(Dst, 11539, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 11633, LJ_TSTR);
break;
case BC_TGETS:
- dasm_put(Dst, 11650, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
- dasm_put(Dst, 11736, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 11651, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+ dasm_put(Dst, 11737, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
break;
case BC_TGETB:
- dasm_put(Dst, 11809, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
- dasm_put(Dst, 10098);
+ dasm_put(Dst, 11810, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 10099);
break;
case BC_TSETV:
- dasm_put(Dst, 11910, LJ_TTAB, LJ_TISNUM);
+ dasm_put(Dst, 11911, LJ_TTAB, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11517);
+ dasm_put(Dst, 11518);
} else {
}
- dasm_put(Dst, 11943, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
- dasm_put(Dst, 12028, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 11944, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
+ dasm_put(Dst, 12029, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
case BC_TSETS:
- dasm_put(Dst, 12092, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
- dasm_put(Dst, 12169, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
- dasm_put(Dst, 12261, 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));
+ dasm_put(Dst, 12093, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+ dasm_put(Dst, 12170, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
+ dasm_put(Dst, 12262, 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));
break;
case BC_TSETB:
- dasm_put(Dst, 12353, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
- dasm_put(Dst, 12453, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 12354, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
+ dasm_put(Dst, 12454, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
case BC_TSETM:
- dasm_put(Dst, 12501);
+ dasm_put(Dst, 12502);
if (sse) {
- dasm_put(Dst, 12506);
+ dasm_put(Dst, 12507);
} else {
}
- dasm_put(Dst, 12514, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
- dasm_put(Dst, 12662, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 12515, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 12663, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
/* -- Calls and vararg handling ----------------------------------------- */
case BC_CALL: case BC_CALLM:
- dasm_put(Dst, 10112);
+ dasm_put(Dst, 10113);
if (op == BC_CALLM) {
- dasm_put(Dst, 12682);
+ dasm_put(Dst, 12683);
}
- dasm_put(Dst, 12687, LJ_TFUNC, Dt7(->pc));
+ dasm_put(Dst, 12688, LJ_TFUNC, Dt7(->pc));
break;
case BC_CALLMT:
- dasm_put(Dst, 12682);
+ dasm_put(Dst, 12683);
break;
case BC_CALLT:
- dasm_put(Dst, 12730, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
- dasm_put(Dst, 12854, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
+ dasm_put(Dst, 12731, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
+ dasm_put(Dst, 12855, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
break;
case BC_ITERC:
- dasm_put(Dst, 12928, LJ_TFUNC, 2+1, Dt7(->pc));
+ dasm_put(Dst, 12929, LJ_TFUNC, 2+1, Dt7(->pc));
break;
case BC_VARG:
- dasm_put(Dst, 13010, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
- dasm_put(Dst, 13164, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 13011, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
+ dasm_put(Dst, 13165, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
break;
/* -- Returns ----------------------------------------------------------- */
case BC_RETM:
- dasm_put(Dst, 12682);
+ dasm_put(Dst, 12683);
break;
case BC_RET: case BC_RET0: case BC_RET1:
if (op != BC_RET0) {
- dasm_put(Dst, 13269);
+ dasm_put(Dst, 13270);
}
- dasm_put(Dst, 13273, FRAME_TYPE);
+ dasm_put(Dst, 13274, FRAME_TYPE);
switch (op) {
case BC_RET:
- dasm_put(Dst, 13292);
+ dasm_put(Dst, 13293);
break;
case BC_RET1:
- dasm_put(Dst, 13356);
+ dasm_put(Dst, 13357);
/* fallthrough */
case BC_RET0:
- dasm_put(Dst, 13372);
+ dasm_put(Dst, 13373);
default:
break;
}
- dasm_put(Dst, 13383, Dt7(->pc), PC2PROTO(k));
+ dasm_put(Dst, 13384, Dt7(->pc), PC2PROTO(k));
if (op == BC_RET) {
- dasm_put(Dst, 13431, LJ_TNIL);
+ dasm_put(Dst, 13432, LJ_TNIL);
} else {
- dasm_put(Dst, 13442, LJ_TNIL);
+ dasm_put(Dst, 13443, LJ_TNIL);
}
- dasm_put(Dst, 13449, -FRAME_VARG, FRAME_TYPEP);
+ dasm_put(Dst, 13450, -FRAME_VARG, FRAME_TYPEP);
if (op != BC_RET0) {
- dasm_put(Dst, 13473);
+ dasm_put(Dst, 13474);
}
dasm_put(Dst, 4599);
break;
case BC_FORL:
#if LJ_HASJIT
- dasm_put(Dst, 13477, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13478, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
case BC_FORI:
case BC_IFORL:
vk = (op == BC_IFORL || op == BC_JFORL);
- dasm_put(Dst, 13498);
+ dasm_put(Dst, 13499);
if (!vk) {
- dasm_put(Dst, 13502, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 13503, LJ_TISNUM, LJ_TISNUM);
}
- dasm_put(Dst, 13521);
+ dasm_put(Dst, 13522);
if (!vk) {
- dasm_put(Dst, 13525, LJ_TISNUM);
+ dasm_put(Dst, 13526, LJ_TISNUM);
}
if (sse) {
- dasm_put(Dst, 13534);
+ dasm_put(Dst, 13535);
if (vk) {
- dasm_put(Dst, 13546);
+ dasm_put(Dst, 13547);
} else {
- dasm_put(Dst, 13565);
+ dasm_put(Dst, 13566);
}
- dasm_put(Dst, 13570);
+ dasm_put(Dst, 13571);
} else {
- dasm_put(Dst, 13583);
+ dasm_put(Dst, 13584);
if (vk) {
- dasm_put(Dst, 13589);
+ dasm_put(Dst, 13590);
} else {
- dasm_put(Dst, 13605);
+ dasm_put(Dst, 13606);
}
- dasm_put(Dst, 13613);
+ dasm_put(Dst, 13614);
if (cmov) {
- dasm_put(Dst, 9527);
+ dasm_put(Dst, 9528);
} else {
- dasm_put(Dst, 9533);
+ dasm_put(Dst, 9534);
}
if (!cmov) {
- dasm_put(Dst, 13618);
+ dasm_put(Dst, 13619);
}
}
if (op == BC_FORI) {
- dasm_put(Dst, 13624, -BCBIAS_J*4);
+ dasm_put(Dst, 13625, -BCBIAS_J*4);
} else if (op == BC_JFORI) {
- dasm_put(Dst, 13634, -BCBIAS_J*4, BC_JLOOP);
+ dasm_put(Dst, 13635, -BCBIAS_J*4, BC_JLOOP);
} else if (op == BC_IFORL) {
- dasm_put(Dst, 13648, -BCBIAS_J*4);
+ dasm_put(Dst, 13649, -BCBIAS_J*4);
} else {
- dasm_put(Dst, 13644, BC_JLOOP);
+ dasm_put(Dst, 13645, BC_JLOOP);
}
- dasm_put(Dst, 9562);
+ dasm_put(Dst, 9563);
if (sse) {
- dasm_put(Dst, 13658);
+ dasm_put(Dst, 13659);
}
break;
case BC_ITERL:
#if LJ_HASJIT
- dasm_put(Dst, 13477, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13478, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
break;
#endif
case BC_IITERL:
- dasm_put(Dst, 13669, LJ_TNIL);
+ dasm_put(Dst, 13670, LJ_TNIL);
if (op == BC_JITERL) {
- dasm_put(Dst, 13684, BC_JLOOP);
+ dasm_put(Dst, 13685, BC_JLOOP);
} else {
- dasm_put(Dst, 13698, -BCBIAS_J*4);
+ dasm_put(Dst, 13699, -BCBIAS_J*4);
}
- dasm_put(Dst, 9866);
+ dasm_put(Dst, 9867);
break;
case BC_LOOP:
#if LJ_HASJIT
- dasm_put(Dst, 13477, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13478, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
case BC_ILOOP:
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
break;
case BC_JLOOP:
#if LJ_HASJIT
- dasm_put(Dst, 13714, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
+ dasm_put(Dst, 13715, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
#endif
break;
case BC_JMP:
- dasm_put(Dst, 13755, -BCBIAS_J*4);
+ dasm_put(Dst, 13756, -BCBIAS_J*4);
break;
/* -- Function headers -------------------------------------------------- */
case BC_FUNCF:
#if LJ_HASJIT
- dasm_put(Dst, 13781, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13782, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
case BC_FUNCV: /* NYI: compiled vararg functions. */
break;
break;
#endif
case BC_IFUNCF:
- dasm_put(Dst, 13802, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
+ dasm_put(Dst, 13803, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
if (op == BC_JFUNCF) {
- dasm_put(Dst, 13833, BC_JLOOP);
+ dasm_put(Dst, 13834, BC_JLOOP);
} else {
- dasm_put(Dst, 9564);
+ dasm_put(Dst, 9565);
}
- dasm_put(Dst, 13842, LJ_TNIL);
+ dasm_put(Dst, 13843, LJ_TNIL);
break;
case BC_JFUNCV:
#if !LJ_HASJIT
break;
#endif
- dasm_put(Dst, 9043);
+ dasm_put(Dst, 9044);
break; /* NYI: compiled vararg functions. */
case BC_IFUNCV:
- dasm_put(Dst, 13864, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
+ dasm_put(Dst, 13865, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
if (op == BC_JFUNCV) {
- dasm_put(Dst, 13833, BC_JLOOP);
+ dasm_put(Dst, 13834, BC_JLOOP);
} else {
- dasm_put(Dst, 13961, -4+PC2PROTO(k));
+ dasm_put(Dst, 13962, -4+PC2PROTO(k));
}
- dasm_put(Dst, 13986, LJ_TNIL);
+ dasm_put(Dst, 13987, LJ_TNIL);
break;
case BC_FUNCC:
case BC_FUNCCW:
- dasm_put(Dst, 14008, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
+ dasm_put(Dst, 14009, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
if (op == BC_FUNCC) {
- dasm_put(Dst, 14038);
+ dasm_put(Dst, 14039);
} else {
- dasm_put(Dst, 14042);
+ dasm_put(Dst, 14043);
}
- dasm_put(Dst, 14050, DISPATCH_GL(vmstate), ~LJ_VMST_C);
+ dasm_put(Dst, 14051, DISPATCH_GL(vmstate), ~LJ_VMST_C);
if (op == BC_FUNCC) {
- dasm_put(Dst, 14060);
+ dasm_put(Dst, 14061);
} else {
- dasm_put(Dst, 14065, DISPATCH_GL(wrapf));
+ dasm_put(Dst, 14066, DISPATCH_GL(wrapf));
}
- dasm_put(Dst, 14071, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 14072, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
break;
/* ---------------------------------------------------------------------- */
build_subroutines(ctx, cmov, sse);
- dasm_put(Dst, 14097);
+ dasm_put(Dst, 14098);
for (op = 0; op < BC__MAX; op++)
build_ins(ctx, (BCOp)op, op, cmov, sse);
#define DASM_SECTION_CODE_OP 0
#define DASM_SECTION_CODE_SUB 1
#define DASM_MAXSECTION 2
-static const unsigned char build_actionlist[14046] = {
+static const unsigned char build_actionlist[14047] = {
254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
233,244,55,248,119,184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,
100,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
59,141,233,15,135,244,251,137,252,233,252,255,144,233,139,149,233,133,192,
- 15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,
- 248,57,114,252,252,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,
- 205,131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,
- 249,15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,
- 137,252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,
- 233,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72,137,108,36,32,139,
+ 15,143,244,69,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,
+ 139,106,252,248,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,
+ 131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,249,
+ 15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,137,
+ 252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,
+ 232,251,1,0,139,149,233,49,192,252,233,244,1,248,66,93,72,137,108,36,32,139,
108,36,96,137,116,36,100,137,149,233,255,141,68,194,252,248,137,252,233,137,
133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
139,108,36,32,85,195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,
}
dasm_put(Dst, 6758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
dasm_put(Dst, 6836, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
- dasm_put(Dst, 6962, Dt1(->top), Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 6963, Dt1(->top), Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7001, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
+ dasm_put(Dst, 7002, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
#endif
- dasm_put(Dst, 7032, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
- dasm_put(Dst, 7083, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
+ dasm_put(Dst, 7033, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
+ dasm_put(Dst, 7084, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
#if LJ_HASJIT
- dasm_put(Dst, 7150, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
+ dasm_put(Dst, 7151, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
#endif
- dasm_put(Dst, 7197);
+ dasm_put(Dst, 7198);
#if LJ_HASJIT
- dasm_put(Dst, 7027);
+ dasm_put(Dst, 7028);
#endif
- dasm_put(Dst, 7204);
+ dasm_put(Dst, 7205);
#if LJ_HASJIT
- dasm_put(Dst, 7207);
+ dasm_put(Dst, 7208);
#endif
- dasm_put(Dst, 7217, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 7218, Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7251);
+ dasm_put(Dst, 7252);
#endif
- dasm_put(Dst, 7256, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 7257, Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7287, 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);
+ dasm_put(Dst, 7288, 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);
#endif
- dasm_put(Dst, 7517);
+ dasm_put(Dst, 7518);
#if LJ_HASJIT
- dasm_put(Dst, 7520, 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);
- dasm_put(Dst, 7662);
+ dasm_put(Dst, 7521, 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);
+ dasm_put(Dst, 7663);
#endif
- dasm_put(Dst, 7688);
+ dasm_put(Dst, 7689);
if (!sse) {
- dasm_put(Dst, 7691);
+ dasm_put(Dst, 7692);
}
- dasm_put(Dst, 7736, (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));
+ dasm_put(Dst, 7737, (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));
if (!sse) {
- dasm_put(Dst, 7822);
+ dasm_put(Dst, 7823);
}
- dasm_put(Dst, 7867, (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));
+ dasm_put(Dst, 7868, (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));
if (!sse) {
- dasm_put(Dst, 7953);
+ dasm_put(Dst, 7954);
}
- dasm_put(Dst, 7992, (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));
+ dasm_put(Dst, 7993, (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));
if (sse) {
- dasm_put(Dst, 8081, (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));
+ dasm_put(Dst, 8082, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
} else {
- dasm_put(Dst, 8195);
+ dasm_put(Dst, 8196);
}
- dasm_put(Dst, 8242);
+ dasm_put(Dst, 8243);
if (!sse) {
} else {
- dasm_put(Dst, 8316);
+ dasm_put(Dst, 8317);
}
- dasm_put(Dst, 8319);
- dasm_put(Dst, 8404, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
- dasm_put(Dst, 8505, (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));
- dasm_put(Dst, 8673);
+ dasm_put(Dst, 8320);
+ dasm_put(Dst, 8405, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+ dasm_put(Dst, 8506, (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));
+ dasm_put(Dst, 8674);
#if LJ_HASJIT
if (sse) {
- dasm_put(Dst, 8714);
- dasm_put(Dst, 8784);
- dasm_put(Dst, 8857);
+ dasm_put(Dst, 8715);
+ dasm_put(Dst, 8785);
+ dasm_put(Dst, 8858);
} else {
- dasm_put(Dst, 8907);
- dasm_put(Dst, 8999);
+ dasm_put(Dst, 8908);
+ dasm_put(Dst, 9000);
}
- dasm_put(Dst, 9045);
+ dasm_put(Dst, 9046);
#endif
- dasm_put(Dst, 9049);
+ dasm_put(Dst, 9050);
if (sse) {
- dasm_put(Dst, 9052, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
- dasm_put(Dst, 9141, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
+ dasm_put(Dst, 9053, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+ dasm_put(Dst, 9142, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
} else {
- dasm_put(Dst, 9265);
- dasm_put(Dst, 9348);
+ dasm_put(Dst, 9266);
+ dasm_put(Dst, 9349);
if (cmov) {
- dasm_put(Dst, 9403);
+ dasm_put(Dst, 9404);
} else {
- dasm_put(Dst, 9422);
+ dasm_put(Dst, 9423);
}
- dasm_put(Dst, 9045);
+ dasm_put(Dst, 9046);
}
- dasm_put(Dst, 9463);
+ dasm_put(Dst, 9464);
}
/* Generate the code for a single instruction. */
/* Remember: all ops branch for a true comparison, fall through otherwise. */
case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
- dasm_put(Dst, 9489, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 9490, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9510);
+ dasm_put(Dst, 9511);
} else {
- dasm_put(Dst, 9525);
+ dasm_put(Dst, 9526);
if (cmov) {
- dasm_put(Dst, 9535);
+ dasm_put(Dst, 9536);
} else {
- dasm_put(Dst, 9541);
+ dasm_put(Dst, 9542);
}
}
switch (op) {
case BC_ISLT:
- dasm_put(Dst, 9548);
+ dasm_put(Dst, 9549);
break;
case BC_ISGE:
- dasm_put(Dst, 9343);
+ dasm_put(Dst, 9344);
break;
case BC_ISLE:
dasm_put(Dst, 5905);
break;
case BC_ISGT:
- dasm_put(Dst, 9553);
+ dasm_put(Dst, 9554);
break;
default: break; /* Shut up GCC. */
}
- dasm_put(Dst, 9558, -BCBIAS_J*4);
+ dasm_put(Dst, 9559, -BCBIAS_J*4);
break;
case BC_ISEQV: case BC_ISNEV:
vk = op == BC_ISEQV;
- dasm_put(Dst, 9592, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 9593, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9618);
+ dasm_put(Dst, 9619);
} else {
- dasm_put(Dst, 9630);
+ dasm_put(Dst, 9631);
if (cmov) {
- dasm_put(Dst, 9535);
+ dasm_put(Dst, 9536);
} else {
- dasm_put(Dst, 9541);
+ dasm_put(Dst, 9542);
}
}
iseqne_fp:
if (vk) {
- dasm_put(Dst, 9637);
+ dasm_put(Dst, 9638);
} else {
- dasm_put(Dst, 9646);
+ dasm_put(Dst, 9647);
}
iseqne_end:
if (vk) {
- dasm_put(Dst, 9655, -BCBIAS_J*4);
+ dasm_put(Dst, 9656, -BCBIAS_J*4);
} else {
- dasm_put(Dst, 9670, -BCBIAS_J*4);
+ dasm_put(Dst, 9671, -BCBIAS_J*4);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
if (op == BC_ISEQV || op == BC_ISNEV) {
- dasm_put(Dst, 9685, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
+ dasm_put(Dst, 9686, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
if (vk) {
- dasm_put(Dst, 9743);
+ dasm_put(Dst, 9744);
} else {
- dasm_put(Dst, 9747);
+ dasm_put(Dst, 9748);
}
- dasm_put(Dst, 9753);
+ dasm_put(Dst, 9754);
}
break;
case BC_ISEQS: case BC_ISNES:
vk = op == BC_ISEQS;
- dasm_put(Dst, 9758, LJ_TSTR);
+ dasm_put(Dst, 9759, LJ_TSTR);
iseqne_test:
if (vk) {
- dasm_put(Dst, 9641);
+ dasm_put(Dst, 9642);
} else {
dasm_put(Dst, 2805);
}
goto iseqne_end;
case BC_ISEQN: case BC_ISNEN:
vk = op == BC_ISEQN;
- dasm_put(Dst, 9782, LJ_TISNUM);
+ dasm_put(Dst, 9783, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9796);
+ dasm_put(Dst, 9797);
} else {
- dasm_put(Dst, 9808);
+ dasm_put(Dst, 9809);
if (cmov) {
- dasm_put(Dst, 9535);
+ dasm_put(Dst, 9536);
} else {
- dasm_put(Dst, 9541);
+ dasm_put(Dst, 9542);
}
}
goto iseqne_fp;
case BC_ISEQP: case BC_ISNEP:
vk = op == BC_ISEQP;
- dasm_put(Dst, 9815);
+ dasm_put(Dst, 9816);
goto iseqne_test;
/* -- Unary test and copy ops ------------------------------------------- */
case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
- dasm_put(Dst, 9827, LJ_TISTRUECOND);
+ dasm_put(Dst, 9828, LJ_TISTRUECOND);
if (op == BC_IST || op == BC_ISTC) {
- dasm_put(Dst, 9839);
+ dasm_put(Dst, 9840);
} else {
- dasm_put(Dst, 9844);
+ dasm_put(Dst, 9845);
}
if (op == BC_ISTC || op == BC_ISFC) {
- dasm_put(Dst, 9849);
+ dasm_put(Dst, 9850);
}
- dasm_put(Dst, 9860, -BCBIAS_J*4);
+ dasm_put(Dst, 9861, -BCBIAS_J*4);
break;
/* -- Unary ops --------------------------------------------------------- */
case BC_MOV:
- dasm_put(Dst, 9892);
+ dasm_put(Dst, 9893);
break;
case BC_NOT:
- dasm_put(Dst, 9926, LJ_TISTRUECOND, LJ_TTRUE);
+ dasm_put(Dst, 9927, LJ_TISTRUECOND, LJ_TTRUE);
break;
case BC_UNM:
- dasm_put(Dst, 9962, LJ_TISNUM);
+ dasm_put(Dst, 9963, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 9973, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+ dasm_put(Dst, 9974, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
} else {
- dasm_put(Dst, 9998);
+ dasm_put(Dst, 9999);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_LEN:
- dasm_put(Dst, 10007, LJ_TSTR);
+ dasm_put(Dst, 10008, LJ_TSTR);
if (sse) {
- dasm_put(Dst, 10021, Dt5(->len));
+ dasm_put(Dst, 10022, Dt5(->len));
} else {
- dasm_put(Dst, 10039, Dt5(->len));
+ dasm_put(Dst, 10040, Dt5(->len));
}
- dasm_put(Dst, 10048, LJ_TTAB);
+ dasm_put(Dst, 10049, LJ_TTAB);
if (sse) {
- dasm_put(Dst, 10089);
+ dasm_put(Dst, 10090);
} else {
}
- dasm_put(Dst, 10098);
+ dasm_put(Dst, 10099);
break;
/* -- Binary ops -------------------------------------------------------- */
case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10128);
+ dasm_put(Dst, 10129);
} else {
- dasm_put(Dst, 10142);
+ dasm_put(Dst, 10143);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10162);
+ dasm_put(Dst, 10163);
} else {
- dasm_put(Dst, 10176);
+ dasm_put(Dst, 10177);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10206);
+ dasm_put(Dst, 10207);
} else {
- dasm_put(Dst, 10220);
+ dasm_put(Dst, 10221);
}
break;
}
if (sse) {
- dasm_put(Dst, 9991);
+ dasm_put(Dst, 9992);
} else {
- dasm_put(Dst, 10003);
+ dasm_put(Dst, 10004);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10228);
+ dasm_put(Dst, 10229);
} else {
- dasm_put(Dst, 10242);
+ dasm_put(Dst, 10243);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10250);
+ dasm_put(Dst, 10251);
} else {
- dasm_put(Dst, 10264);
+ dasm_put(Dst, 10265);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10272);
+ dasm_put(Dst, 10273);
} else {
- dasm_put(Dst, 10286);
+ dasm_put(Dst, 10287);
}
break;
}
if (sse) {
- dasm_put(Dst, 9991);
+ dasm_put(Dst, 9992);
} else {
- dasm_put(Dst, 10003);
+ dasm_put(Dst, 10004);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_MULVN: case BC_MULNV: case BC_MULVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10294);
+ dasm_put(Dst, 10295);
} else {
- dasm_put(Dst, 10308);
+ dasm_put(Dst, 10309);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10316);
+ dasm_put(Dst, 10317);
} else {
- dasm_put(Dst, 10330);
+ dasm_put(Dst, 10331);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10338);
+ dasm_put(Dst, 10339);
} else {
- dasm_put(Dst, 10352);
+ dasm_put(Dst, 10353);
}
break;
}
if (sse) {
- dasm_put(Dst, 9991);
+ dasm_put(Dst, 9992);
} else {
- dasm_put(Dst, 10003);
+ dasm_put(Dst, 10004);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10360);
+ dasm_put(Dst, 10361);
} else {
- dasm_put(Dst, 10374);
+ dasm_put(Dst, 10375);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10382);
+ dasm_put(Dst, 10383);
} else {
- dasm_put(Dst, 10396);
+ dasm_put(Dst, 10397);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10404);
+ dasm_put(Dst, 10405);
} else {
- dasm_put(Dst, 10418);
+ dasm_put(Dst, 10419);
}
break;
}
if (sse) {
- dasm_put(Dst, 9991);
+ dasm_put(Dst, 9992);
} else {
- dasm_put(Dst, 10003);
+ dasm_put(Dst, 10004);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_MODVN:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10426);
+ dasm_put(Dst, 10427);
} else {
- dasm_put(Dst, 10440);
+ dasm_put(Dst, 10441);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10448);
+ dasm_put(Dst, 10449);
} else {
- dasm_put(Dst, 10462);
+ dasm_put(Dst, 10463);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10470);
+ dasm_put(Dst, 10471);
} else {
- dasm_put(Dst, 10484);
+ dasm_put(Dst, 10485);
}
break;
}
- dasm_put(Dst, 10492);
+ dasm_put(Dst, 10493);
if (sse) {
- dasm_put(Dst, 9991);
+ dasm_put(Dst, 9992);
} else {
- dasm_put(Dst, 10003);
+ dasm_put(Dst, 10004);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_MODNV: case BC_MODVV:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10426);
+ dasm_put(Dst, 10427);
} else {
- dasm_put(Dst, 10440);
+ dasm_put(Dst, 10441);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10448);
+ dasm_put(Dst, 10449);
} else {
- dasm_put(Dst, 10462);
+ dasm_put(Dst, 10463);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10470);
+ dasm_put(Dst, 10471);
} else {
- dasm_put(Dst, 10484);
+ dasm_put(Dst, 10485);
}
break;
}
- dasm_put(Dst, 10498);
+ dasm_put(Dst, 10499);
break;
case BC_POW:
- dasm_put(Dst, 10108);
+ dasm_put(Dst, 10109);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 10116, LJ_TISNUM);
+ dasm_put(Dst, 10117, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10426);
+ dasm_put(Dst, 10427);
} else {
- dasm_put(Dst, 10440);
+ dasm_put(Dst, 10441);
}
break;
case 1:
- dasm_put(Dst, 10150, LJ_TISNUM);
+ dasm_put(Dst, 10151, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10448);
+ dasm_put(Dst, 10449);
} else {
- dasm_put(Dst, 10462);
+ dasm_put(Dst, 10463);
}
break;
default:
- dasm_put(Dst, 10184, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10185, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10470);
+ dasm_put(Dst, 10471);
} else {
- dasm_put(Dst, 10484);
+ dasm_put(Dst, 10485);
}
break;
}
- dasm_put(Dst, 10503);
+ dasm_put(Dst, 10504);
if (sse) {
- dasm_put(Dst, 9991);
+ dasm_put(Dst, 9992);
} else {
- dasm_put(Dst, 10003);
+ dasm_put(Dst, 10004);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_CAT:
- dasm_put(Dst, 10507, Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 10508, Dt1(->base), Dt1(->base));
break;
/* -- Constant ops ------------------------------------------------------ */
case BC_KSTR:
- dasm_put(Dst, 10597, LJ_TSTR);
+ dasm_put(Dst, 10598, LJ_TSTR);
break;
case BC_KSHORT:
if (sse) {
- dasm_put(Dst, 10632);
+ dasm_put(Dst, 10633);
} else {
- dasm_put(Dst, 10647);
+ dasm_put(Dst, 10648);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_KNUM:
if (sse) {
- dasm_put(Dst, 10655);
+ dasm_put(Dst, 10656);
} else {
- dasm_put(Dst, 10668);
+ dasm_put(Dst, 10669);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_KPRI:
- dasm_put(Dst, 10675);
+ dasm_put(Dst, 10676);
break;
case BC_KNIL:
- dasm_put(Dst, 10703, LJ_TNIL);
+ dasm_put(Dst, 10704, LJ_TNIL);
break;
/* -- Upvalue and function ops ------------------------------------------ */
case BC_UGET:
- dasm_put(Dst, 10750, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 10751, offsetof(GCfuncL, uvptr), DtA(->v));
break;
case BC_USETV:
#define TV2MARKOFS \
((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
- dasm_put(Dst, 10795, 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);
- dasm_put(Dst, 10886);
+ dasm_put(Dst, 10796, 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);
+ dasm_put(Dst, 10887);
break;
#undef TV2MARKOFS
case BC_USETS:
- dasm_put(Dst, 10898, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
+ dasm_put(Dst, 10899, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
break;
case BC_USETN:
- dasm_put(Dst, 10991);
+ dasm_put(Dst, 10992);
if (sse) {
- dasm_put(Dst, 10996);
+ dasm_put(Dst, 10997);
} else {
- dasm_put(Dst, 9811);
+ dasm_put(Dst, 9812);
}
- dasm_put(Dst, 11003, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 11004, offsetof(GCfuncL, uvptr), DtA(->v));
if (sse) {
- dasm_put(Dst, 11012);
+ dasm_put(Dst, 11013);
} else {
- dasm_put(Dst, 11018);
+ dasm_put(Dst, 11019);
}
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_USETP:
- dasm_put(Dst, 11021, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 11022, offsetof(GCfuncL, uvptr), DtA(->v));
break;
case BC_UCLO:
- dasm_put(Dst, 11060, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 11061, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
break;
case BC_FNEW:
- dasm_put(Dst, 11115, Dt1(->base), Dt1(->base), LJ_TFUNC);
+ dasm_put(Dst, 11116, Dt1(->base), Dt1(->base), LJ_TFUNC);
break;
/* -- Table ops --------------------------------------------------------- */
case BC_TNEW:
- dasm_put(Dst, 11181, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
+ dasm_put(Dst, 11182, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
break;
case BC_TDUP:
- dasm_put(Dst, 11303, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
+ dasm_put(Dst, 11304, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
break;
case BC_GGET:
- dasm_put(Dst, 11398, Dt7(->env));
+ dasm_put(Dst, 11399, Dt7(->env));
break;
case BC_GSET:
- dasm_put(Dst, 11417, Dt7(->env));
+ dasm_put(Dst, 11418, Dt7(->env));
break;
case BC_TGETV:
- dasm_put(Dst, 11436, LJ_TTAB, LJ_TISNUM);
+ dasm_put(Dst, 11437, LJ_TTAB, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11469);
+ dasm_put(Dst, 11470);
} else {
}
- dasm_put(Dst, 11490, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
- dasm_put(Dst, 11583, LJ_TSTR);
+ dasm_put(Dst, 11491, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 11584, LJ_TSTR);
break;
case BC_TGETS:
- dasm_put(Dst, 11601, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
- dasm_put(Dst, 11686, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 11602, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+ dasm_put(Dst, 11687, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
break;
case BC_TGETB:
- dasm_put(Dst, 11758, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
- dasm_put(Dst, 10098);
+ dasm_put(Dst, 11759, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 10099);
break;
case BC_TSETV:
- dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM);
+ dasm_put(Dst, 11859, LJ_TTAB, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11469);
+ dasm_put(Dst, 11470);
} else {
}
- dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
- dasm_put(Dst, 11975, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 11892, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
+ dasm_put(Dst, 11976, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
case BC_TSETS:
- dasm_put(Dst, 12037, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
- dasm_put(Dst, 12113, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
- dasm_put(Dst, 12206, 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));
+ dasm_put(Dst, 12038, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+ dasm_put(Dst, 12114, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
+ dasm_put(Dst, 12207, 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));
break;
case BC_TSETB:
- dasm_put(Dst, 12297, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
- dasm_put(Dst, 12396, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 12298, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
+ dasm_put(Dst, 12397, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
case BC_TSETM:
- dasm_put(Dst, 12442);
+ dasm_put(Dst, 12443);
if (sse) {
- dasm_put(Dst, 12447);
+ dasm_put(Dst, 12448);
} else {
}
- dasm_put(Dst, 12454, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
- dasm_put(Dst, 12594, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 12455, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 12595, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
/* -- Calls and vararg handling ----------------------------------------- */
case BC_CALL: case BC_CALLM:
- dasm_put(Dst, 10112);
+ dasm_put(Dst, 10113);
if (op == BC_CALLM) {
- dasm_put(Dst, 12612);
+ dasm_put(Dst, 12613);
}
- dasm_put(Dst, 12617, LJ_TFUNC, Dt7(->pc));
+ dasm_put(Dst, 12618, LJ_TFUNC, Dt7(->pc));
break;
case BC_CALLMT:
- dasm_put(Dst, 12612);
+ dasm_put(Dst, 12613);
break;
case BC_CALLT:
- dasm_put(Dst, 12659, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
- dasm_put(Dst, 12778, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
+ dasm_put(Dst, 12660, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
+ dasm_put(Dst, 12779, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
break;
case BC_ITERC:
- dasm_put(Dst, 12849, LJ_TFUNC, 2+1, Dt7(->pc));
+ dasm_put(Dst, 12850, LJ_TFUNC, 2+1, Dt7(->pc));
break;
case BC_VARG:
- dasm_put(Dst, 12930, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
- dasm_put(Dst, 13075, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 12931, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
+ dasm_put(Dst, 13076, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
break;
/* -- Returns ----------------------------------------------------------- */
case BC_RETM:
- dasm_put(Dst, 12612);
+ dasm_put(Dst, 12613);
break;
case BC_RET: case BC_RET0: case BC_RET1:
if (op != BC_RET0) {
- dasm_put(Dst, 13174);
+ dasm_put(Dst, 13175);
}
- dasm_put(Dst, 13178, FRAME_TYPE);
+ dasm_put(Dst, 13179, FRAME_TYPE);
switch (op) {
case BC_RET:
- dasm_put(Dst, 13197);
+ dasm_put(Dst, 13198);
break;
case BC_RET1:
- dasm_put(Dst, 13255);
+ dasm_put(Dst, 13256);
/* fallthrough */
case BC_RET0:
- dasm_put(Dst, 13271);
+ dasm_put(Dst, 13272);
default:
break;
}
- dasm_put(Dst, 13282, Dt7(->pc), PC2PROTO(k));
+ dasm_put(Dst, 13283, Dt7(->pc), PC2PROTO(k));
if (op == BC_RET) {
- dasm_put(Dst, 13326, LJ_TNIL);
+ dasm_put(Dst, 13327, LJ_TNIL);
} else {
- dasm_put(Dst, 13335, LJ_TNIL);
+ dasm_put(Dst, 13336, LJ_TNIL);
}
- dasm_put(Dst, 13342, -FRAME_VARG, FRAME_TYPEP);
+ dasm_put(Dst, 13343, -FRAME_VARG, FRAME_TYPEP);
if (op != BC_RET0) {
- dasm_put(Dst, 13366);
+ dasm_put(Dst, 13367);
}
dasm_put(Dst, 4573);
break;
case BC_FORL:
#if LJ_HASJIT
- dasm_put(Dst, 13370, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13371, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
case BC_FORI:
case BC_IFORL:
vk = (op == BC_IFORL || op == BC_JFORL);
- dasm_put(Dst, 13391);
+ dasm_put(Dst, 13392);
if (!vk) {
- dasm_put(Dst, 13395, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 13396, LJ_TISNUM, LJ_TISNUM);
}
- dasm_put(Dst, 13414);
+ dasm_put(Dst, 13415);
if (!vk) {
- dasm_put(Dst, 13418, LJ_TISNUM);
+ dasm_put(Dst, 13419, LJ_TISNUM);
}
if (sse) {
- dasm_put(Dst, 13427);
+ dasm_put(Dst, 13428);
if (vk) {
- dasm_put(Dst, 13439);
+ dasm_put(Dst, 13440);
} else {
- dasm_put(Dst, 13458);
+ dasm_put(Dst, 13459);
}
- dasm_put(Dst, 13463);
+ dasm_put(Dst, 13464);
} else {
- dasm_put(Dst, 13476);
+ dasm_put(Dst, 13477);
if (vk) {
- dasm_put(Dst, 13482);
+ dasm_put(Dst, 13483);
} else {
- dasm_put(Dst, 13498);
+ dasm_put(Dst, 13499);
}
- dasm_put(Dst, 13506);
+ dasm_put(Dst, 13507);
if (cmov) {
- dasm_put(Dst, 9535);
+ dasm_put(Dst, 9536);
} else {
- dasm_put(Dst, 9541);
+ dasm_put(Dst, 9542);
}
if (!cmov) {
- dasm_put(Dst, 13511);
+ dasm_put(Dst, 13512);
}
}
if (op == BC_FORI) {
- dasm_put(Dst, 13517, -BCBIAS_J*4);
+ dasm_put(Dst, 13518, -BCBIAS_J*4);
} else if (op == BC_JFORI) {
- dasm_put(Dst, 13527, -BCBIAS_J*4, BC_JLOOP);
+ dasm_put(Dst, 13528, -BCBIAS_J*4, BC_JLOOP);
} else if (op == BC_IFORL) {
- dasm_put(Dst, 13541, -BCBIAS_J*4);
+ dasm_put(Dst, 13542, -BCBIAS_J*4);
} else {
- dasm_put(Dst, 13537, BC_JLOOP);
+ dasm_put(Dst, 13538, BC_JLOOP);
}
- dasm_put(Dst, 9570);
+ dasm_put(Dst, 9571);
if (sse) {
- dasm_put(Dst, 13551);
+ dasm_put(Dst, 13552);
}
break;
case BC_ITERL:
#if LJ_HASJIT
- dasm_put(Dst, 13370, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13371, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
break;
#endif
case BC_IITERL:
- dasm_put(Dst, 13562, LJ_TNIL);
+ dasm_put(Dst, 13563, LJ_TNIL);
if (op == BC_JITERL) {
- dasm_put(Dst, 13577, BC_JLOOP);
+ dasm_put(Dst, 13578, BC_JLOOP);
} else {
- dasm_put(Dst, 13591, -BCBIAS_J*4);
+ dasm_put(Dst, 13592, -BCBIAS_J*4);
}
- dasm_put(Dst, 9870);
+ dasm_put(Dst, 9871);
break;
case BC_LOOP:
#if LJ_HASJIT
- dasm_put(Dst, 13370, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13371, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
case BC_ILOOP:
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
break;
case BC_JLOOP:
#if LJ_HASJIT
- dasm_put(Dst, 13607, 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);
+ dasm_put(Dst, 13608, 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);
#endif
break;
case BC_JMP:
- dasm_put(Dst, 13716, -BCBIAS_J*4);
+ dasm_put(Dst, 13717, -BCBIAS_J*4);
break;
/* -- Function headers -------------------------------------------------- */
case BC_FUNCF:
#if LJ_HASJIT
- dasm_put(Dst, 13741, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 13742, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
case BC_FUNCV: /* NYI: compiled vararg functions. */
break;
break;
#endif
case BC_IFUNCF:
- dasm_put(Dst, 13762, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
+ dasm_put(Dst, 13763, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
if (op == BC_JFUNCF) {
- dasm_put(Dst, 13792, BC_JLOOP);
+ dasm_put(Dst, 13793, BC_JLOOP);
} else {
- dasm_put(Dst, 9572);
+ dasm_put(Dst, 9573);
}
- dasm_put(Dst, 13801, LJ_TNIL);
+ dasm_put(Dst, 13802, LJ_TNIL);
break;
case BC_JFUNCV:
#if !LJ_HASJIT
break;
#endif
- dasm_put(Dst, 9047);
+ dasm_put(Dst, 9048);
break; /* NYI: compiled vararg functions. */
case BC_IFUNCV:
- dasm_put(Dst, 13823, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
+ dasm_put(Dst, 13824, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
if (op == BC_JFUNCV) {
- dasm_put(Dst, 13792, BC_JLOOP);
+ dasm_put(Dst, 13793, BC_JLOOP);
} else {
- dasm_put(Dst, 13914, -4+PC2PROTO(k));
+ dasm_put(Dst, 13915, -4+PC2PROTO(k));
}
- dasm_put(Dst, 13937, LJ_TNIL);
+ dasm_put(Dst, 13938, LJ_TNIL);
break;
case BC_FUNCC:
case BC_FUNCCW:
- dasm_put(Dst, 13959, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
+ dasm_put(Dst, 13960, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
if (op == BC_FUNCC) {
- dasm_put(Dst, 13989);
+ dasm_put(Dst, 13990);
} else {
- dasm_put(Dst, 13993);
+ dasm_put(Dst, 13994);
}
- dasm_put(Dst, 14001, DISPATCH_GL(vmstate), ~LJ_VMST_C);
+ dasm_put(Dst, 14002, DISPATCH_GL(vmstate), ~LJ_VMST_C);
if (op == BC_FUNCC) {
- dasm_put(Dst, 14010);
+ dasm_put(Dst, 14011);
} else {
- dasm_put(Dst, 14014, DISPATCH_GL(wrapf));
+ dasm_put(Dst, 14015, DISPATCH_GL(wrapf));
}
- dasm_put(Dst, 14019, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 14020, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
break;
/* ---------------------------------------------------------------------- */
build_subroutines(ctx, cmov, sse);
- dasm_put(Dst, 14044);
+ dasm_put(Dst, 14045);
for (op = 0; op < BC__MAX; op++)
build_ins(ctx, (BCOp)op, op, cmov, sse);
|.endif
| call aword CFUNC:RD->f // (lua_State *L)
| mov BASE, L:RB->base
- | // Either throws an error or recovers and returns 0 or MULTRES (+1).
- | test RD, RD; jnz ->fff_res // Returned MULTRES (already in RD).
- |1: // Returned 0: retry fast path.
- | mov RD, L:RB->top
- | sub RD, BASE
- | shr RD, 3
- | add NARGS:RD, 1
+ | // Either throws an error, or recovers and returns -1, 0 or nresults+1.
+ | test RD, RD; jg ->fff_res // Returned nresults+1?
+ |1:
+ | mov RA, L:RB->top
+ | sub RA, BASE
+ | shr RA, 3
+ | test RD, RD
+ | lea NARGS:RD, [RA+1]
| mov LFUNC:RB, [BASE-8]
- | cmp dword [BASE-4], PC
- | jne >2 // Tailcalled?
- | ins_callt // Retry the call.
+ | jne >2 // Returned -1?
+ | ins_callt // Returned 0: retry fast path.
|
- |2: // Reconstruct previous base for vmeta_call.
+ |2: // Reconstruct previous base for vmeta_call during tailcall.
| mov RA, BASE
| test PC, FRAME_TYPE
| jnz >3
| movzx RB, PC_RA
| not RBa // Note: ~RB = -(RB+1)
| lea BASE, [BASE+RB*8] // base = base - (RB+1)*8
- | jmp ->vm_call_dispatch // Resolve again.
+ | jmp ->vm_call_dispatch // Resolve again for tailcall.
|3:
| mov RB, PC
| and RB, -8
| sub BASE, RB
- | jmp ->vm_call_dispatch // Resolve again.
+ | jmp ->vm_call_dispatch // Resolve again for tailcall.
|
|5: // Grow stack for fallback handler.
| mov FCARG2, LUA_MINSTACK
| mov FCARG1, L:RB
| call extern lj_state_growstack@8 // (lua_State *L, int n)
| mov BASE, L:RB->base
+ | xor RD, RD // Simulate a return 0.
| jmp <1 // Dumb retry (goes through ff first).
|
|->fff_gcstep: // Call GC step function.
case BC_CALLMT:
| ins_AD // RA = base, RD = extra_nargs
| add NARGS:RD, MULTRES
- | // Fall through. Assumes BC_CALLMT follows and ins_AD is a no-op.
+ | // Fall through. Assumes BC_CALLT follows and ins_AD is a no-op.
break;
case BC_CALLT:
| ins_AD // RA = base, RD = nargs+1
#define DASM_SECTION_CODE_OP 0
#define DASM_SECTION_CODE_SUB 1
#define DASM_MAXSECTION 2
-static const unsigned char build_actionlist[15251] = {
+static const unsigned char build_actionlist[15252] = {
254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184,237,
248,55,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233,141,68,194,
252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,
- 137,44,36,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1,255,139,
- 133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,114,252,252,15,133,
- 244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,
- 171,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,252,247,
- 213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,252,
- 234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,252,
+ 137,44,36,252,255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,
+ 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,
+ 248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,
+ 248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,252,247,213,
+ 141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,252,234,
+ 252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,
233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149,233,
255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233,139,
133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,136,255,15,182,
}
dasm_put(Dst, 7731, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
dasm_put(Dst, 7809, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
- dasm_put(Dst, 7932, Dt1(->top), Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 7933, Dt1(->top), Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 7970, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
+ dasm_put(Dst, 7971, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
#endif
- dasm_put(Dst, 8001, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
- dasm_put(Dst, 8052, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
+ dasm_put(Dst, 8002, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
+ dasm_put(Dst, 8053, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
#if LJ_HASJIT
- dasm_put(Dst, 8118, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
+ dasm_put(Dst, 8119, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
#endif
- dasm_put(Dst, 8164);
+ dasm_put(Dst, 8165);
#if LJ_HASJIT
- dasm_put(Dst, 7996);
+ dasm_put(Dst, 7997);
#endif
- dasm_put(Dst, 8171);
+ dasm_put(Dst, 8172);
#if LJ_HASJIT
- dasm_put(Dst, 8174);
+ dasm_put(Dst, 8175);
#endif
- dasm_put(Dst, 8184, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 8185, Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 8218);
+ dasm_put(Dst, 8219);
#endif
- dasm_put(Dst, 8223, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 8224, Dt1(->base), Dt1(->top));
#if LJ_HASJIT
- dasm_put(Dst, 8252, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
+ dasm_put(Dst, 8253, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
#endif
- dasm_put(Dst, 8395);
+ dasm_put(Dst, 8396);
#if LJ_HASJIT
- dasm_put(Dst, 8398, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
+ dasm_put(Dst, 8399, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
#endif
- dasm_put(Dst, 8476);
+ dasm_put(Dst, 8477);
if (!sse) {
- dasm_put(Dst, 8479);
+ dasm_put(Dst, 8480);
}
- dasm_put(Dst, 8524);
+ dasm_put(Dst, 8525);
if (!sse) {
- dasm_put(Dst, 8626);
+ dasm_put(Dst, 8627);
}
- dasm_put(Dst, 8671);
+ dasm_put(Dst, 8672);
if (!sse) {
- dasm_put(Dst, 8773);
+ dasm_put(Dst, 8774);
}
- dasm_put(Dst, 8812);
+ dasm_put(Dst, 8813);
if (sse) {
- dasm_put(Dst, 8917);
+ dasm_put(Dst, 8918);
} else {
- dasm_put(Dst, 9047);
+ dasm_put(Dst, 9048);
}
- dasm_put(Dst, 9094);
+ dasm_put(Dst, 9095);
if (!sse) {
- dasm_put(Dst, 9168);
+ dasm_put(Dst, 9169);
if (cmov) {
- dasm_put(Dst, 9179);
+ dasm_put(Dst, 9180);
} else {
- dasm_put(Dst, 9183);
+ dasm_put(Dst, 9184);
}
- dasm_put(Dst, 9190);
- dasm_put(Dst, 9264);
- dasm_put(Dst, 9364);
+ dasm_put(Dst, 9191);
+ dasm_put(Dst, 9265);
+ dasm_put(Dst, 9365);
if (cmov) {
- dasm_put(Dst, 9367);
+ dasm_put(Dst, 9368);
} else {
- dasm_put(Dst, 9371);
+ dasm_put(Dst, 9372);
}
- dasm_put(Dst, 9378);
+ dasm_put(Dst, 9379);
if (cmov) {
- dasm_put(Dst, 9179);
+ dasm_put(Dst, 9180);
} else {
- dasm_put(Dst, 9183);
+ dasm_put(Dst, 9184);
}
- dasm_put(Dst, 9396);
+ dasm_put(Dst, 9397);
} else {
- dasm_put(Dst, 9475);
+ dasm_put(Dst, 9476);
}
- dasm_put(Dst, 9478);
- dasm_put(Dst, 9563);
- dasm_put(Dst, 9694);
- dasm_put(Dst, 9893);
+ dasm_put(Dst, 9479);
+ dasm_put(Dst, 9564);
+ dasm_put(Dst, 9695);
+ dasm_put(Dst, 9894);
#if LJ_HASJIT
if (sse) {
- dasm_put(Dst, 9916);
- dasm_put(Dst, 9973);
- dasm_put(Dst, 10064);
+ dasm_put(Dst, 9917);
+ dasm_put(Dst, 9974);
+ dasm_put(Dst, 10065);
} else {
- dasm_put(Dst, 10106);
- dasm_put(Dst, 10198);
+ dasm_put(Dst, 10107);
+ dasm_put(Dst, 10199);
}
- dasm_put(Dst, 10244);
+ dasm_put(Dst, 10245);
#endif
- dasm_put(Dst, 10248);
+ dasm_put(Dst, 10249);
if (sse) {
- dasm_put(Dst, 10251);
- dasm_put(Dst, 10356);
- dasm_put(Dst, 10439);
+ dasm_put(Dst, 10252);
+ dasm_put(Dst, 10357);
+ dasm_put(Dst, 10440);
} else {
- dasm_put(Dst, 10511);
- dasm_put(Dst, 10594);
+ dasm_put(Dst, 10512);
+ dasm_put(Dst, 10595);
if (cmov) {
- dasm_put(Dst, 10649);
+ dasm_put(Dst, 10650);
} else {
- dasm_put(Dst, 10668);
+ dasm_put(Dst, 10669);
}
- dasm_put(Dst, 10244);
+ dasm_put(Dst, 10245);
}
- dasm_put(Dst, 10709);
+ dasm_put(Dst, 10710);
}
/* Generate the code for a single instruction. */
static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
{
int vk = 0;
- dasm_put(Dst, 10763, defop);
+ dasm_put(Dst, 10764, defop);
switch (op) {
/* Remember: all ops branch for a true comparison, fall through otherwise. */
case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
- dasm_put(Dst, 10765, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10766, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10786);
+ dasm_put(Dst, 10787);
} else {
- dasm_put(Dst, 10801);
+ dasm_put(Dst, 10802);
if (cmov) {
- dasm_put(Dst, 10811);
+ dasm_put(Dst, 10812);
} else {
- dasm_put(Dst, 10817);
+ dasm_put(Dst, 10818);
}
}
switch (op) {
case BC_ISLT:
- dasm_put(Dst, 10824);
+ dasm_put(Dst, 10825);
break;
case BC_ISGE:
- dasm_put(Dst, 10059);
+ dasm_put(Dst, 10060);
break;
case BC_ISLE:
dasm_put(Dst, 6186);
break;
case BC_ISGT:
- dasm_put(Dst, 10829);
+ dasm_put(Dst, 10830);
break;
default: break; /* Shut up GCC. */
}
- dasm_put(Dst, 10834, -BCBIAS_J*4);
+ dasm_put(Dst, 10835, -BCBIAS_J*4);
break;
case BC_ISEQV: case BC_ISNEV:
vk = op == BC_ISEQV;
- dasm_put(Dst, 10867, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 10868, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 10893);
+ dasm_put(Dst, 10894);
} else {
- dasm_put(Dst, 10905);
+ dasm_put(Dst, 10906);
if (cmov) {
- dasm_put(Dst, 10811);
+ dasm_put(Dst, 10812);
} else {
- dasm_put(Dst, 10817);
+ dasm_put(Dst, 10818);
}
}
iseqne_fp:
if (vk) {
- dasm_put(Dst, 10912);
+ dasm_put(Dst, 10913);
} else {
- dasm_put(Dst, 10921);
+ dasm_put(Dst, 10922);
}
iseqne_end:
if (vk) {
- dasm_put(Dst, 10930, -BCBIAS_J*4);
+ dasm_put(Dst, 10931, -BCBIAS_J*4);
} else {
- dasm_put(Dst, 10945, -BCBIAS_J*4);
+ dasm_put(Dst, 10946, -BCBIAS_J*4);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
if (op == BC_ISEQV || op == BC_ISNEV) {
- dasm_put(Dst, 10960, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
+ dasm_put(Dst, 10961, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
if (vk) {
- dasm_put(Dst, 11018);
+ dasm_put(Dst, 11019);
} else {
- dasm_put(Dst, 11022);
+ dasm_put(Dst, 11023);
}
- dasm_put(Dst, 11028);
+ dasm_put(Dst, 11029);
}
break;
case BC_ISEQS: case BC_ISNES:
vk = op == BC_ISEQS;
- dasm_put(Dst, 11033, LJ_TSTR);
+ dasm_put(Dst, 11034, LJ_TSTR);
iseqne_test:
if (vk) {
- dasm_put(Dst, 10916);
+ dasm_put(Dst, 10917);
} else {
dasm_put(Dst, 2814);
}
goto iseqne_end;
case BC_ISEQN: case BC_ISNEN:
vk = op == BC_ISEQN;
- dasm_put(Dst, 11056, LJ_TISNUM);
+ dasm_put(Dst, 11057, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11070);
+ dasm_put(Dst, 11071);
} else {
- dasm_put(Dst, 11082);
+ dasm_put(Dst, 11083);
if (cmov) {
- dasm_put(Dst, 10811);
+ dasm_put(Dst, 10812);
} else {
- dasm_put(Dst, 10817);
+ dasm_put(Dst, 10818);
}
}
goto iseqne_fp;
case BC_ISEQP: case BC_ISNEP:
vk = op == BC_ISEQP;
- dasm_put(Dst, 11089);
+ dasm_put(Dst, 11090);
goto iseqne_test;
/* -- Unary test and copy ops ------------------------------------------- */
case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
- dasm_put(Dst, 11100, LJ_TISTRUECOND);
+ dasm_put(Dst, 11101, LJ_TISTRUECOND);
if (op == BC_IST || op == BC_ISTC) {
- dasm_put(Dst, 11112);
+ dasm_put(Dst, 11113);
} else {
- dasm_put(Dst, 11117);
+ dasm_put(Dst, 11118);
}
if (op == BC_ISTC || op == BC_ISFC) {
- dasm_put(Dst, 11122);
+ dasm_put(Dst, 11123);
}
- dasm_put(Dst, 11133, -BCBIAS_J*4);
+ dasm_put(Dst, 11134, -BCBIAS_J*4);
break;
/* -- Unary ops --------------------------------------------------------- */
case BC_MOV:
- dasm_put(Dst, 11164);
+ dasm_put(Dst, 11165);
break;
case BC_NOT:
- dasm_put(Dst, 11197, LJ_TISTRUECOND, LJ_TTRUE);
+ dasm_put(Dst, 11198, LJ_TISTRUECOND, LJ_TTRUE);
break;
case BC_UNM:
- dasm_put(Dst, 11232, LJ_TISNUM);
+ dasm_put(Dst, 11233, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11243);
+ dasm_put(Dst, 11244);
} else {
- dasm_put(Dst, 11273);
+ dasm_put(Dst, 11274);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_LEN:
- dasm_put(Dst, 11282, LJ_TSTR);
+ dasm_put(Dst, 11283, LJ_TSTR);
if (sse) {
- dasm_put(Dst, 11296, Dt5(->len));
+ dasm_put(Dst, 11297, Dt5(->len));
} else {
- dasm_put(Dst, 11314, Dt5(->len));
+ dasm_put(Dst, 11315, Dt5(->len));
}
- dasm_put(Dst, 11323, LJ_TTAB);
+ dasm_put(Dst, 11324, LJ_TTAB);
if (sse) {
- dasm_put(Dst, 11363);
+ dasm_put(Dst, 11364);
} else {
- dasm_put(Dst, 11372);
+ dasm_put(Dst, 11373);
}
- dasm_put(Dst, 11382);
+ dasm_put(Dst, 11383);
break;
/* -- Binary ops -------------------------------------------------------- */
case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11412);
+ dasm_put(Dst, 11413);
} else {
- dasm_put(Dst, 11426);
+ dasm_put(Dst, 11427);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11446);
+ dasm_put(Dst, 11447);
} else {
- dasm_put(Dst, 11460);
+ dasm_put(Dst, 11461);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11490);
+ dasm_put(Dst, 11491);
} else {
- dasm_put(Dst, 11504);
+ dasm_put(Dst, 11505);
}
break;
}
if (sse) {
- dasm_put(Dst, 11266);
+ dasm_put(Dst, 11267);
} else {
- dasm_put(Dst, 11278);
+ dasm_put(Dst, 11279);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11512);
+ dasm_put(Dst, 11513);
} else {
- dasm_put(Dst, 11526);
+ dasm_put(Dst, 11527);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11534);
+ dasm_put(Dst, 11535);
} else {
- dasm_put(Dst, 11548);
+ dasm_put(Dst, 11549);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11556);
+ dasm_put(Dst, 11557);
} else {
- dasm_put(Dst, 11570);
+ dasm_put(Dst, 11571);
}
break;
}
if (sse) {
- dasm_put(Dst, 11266);
+ dasm_put(Dst, 11267);
} else {
- dasm_put(Dst, 11278);
+ dasm_put(Dst, 11279);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_MULVN: case BC_MULNV: case BC_MULVV:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11578);
+ dasm_put(Dst, 11579);
} else {
- dasm_put(Dst, 11592);
+ dasm_put(Dst, 11593);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11600);
+ dasm_put(Dst, 11601);
} else {
- dasm_put(Dst, 11614);
+ dasm_put(Dst, 11615);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11622);
+ dasm_put(Dst, 11623);
} else {
- dasm_put(Dst, 11636);
+ dasm_put(Dst, 11637);
}
break;
}
if (sse) {
- dasm_put(Dst, 11266);
+ dasm_put(Dst, 11267);
} else {
- dasm_put(Dst, 11278);
+ dasm_put(Dst, 11279);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11644);
+ dasm_put(Dst, 11645);
} else {
- dasm_put(Dst, 11658);
+ dasm_put(Dst, 11659);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11666);
+ dasm_put(Dst, 11667);
} else {
- dasm_put(Dst, 11680);
+ dasm_put(Dst, 11681);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11688);
+ dasm_put(Dst, 11689);
} else {
- dasm_put(Dst, 11702);
+ dasm_put(Dst, 11703);
}
break;
}
if (sse) {
- dasm_put(Dst, 11266);
+ dasm_put(Dst, 11267);
} else {
- dasm_put(Dst, 11278);
+ dasm_put(Dst, 11279);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_MODVN:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11710);
+ dasm_put(Dst, 11711);
} else {
- dasm_put(Dst, 11724);
+ dasm_put(Dst, 11725);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11732);
+ dasm_put(Dst, 11733);
} else {
- dasm_put(Dst, 11746);
+ dasm_put(Dst, 11747);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11754);
+ dasm_put(Dst, 11755);
} else {
- dasm_put(Dst, 11768);
+ dasm_put(Dst, 11769);
}
break;
}
- dasm_put(Dst, 11776);
+ dasm_put(Dst, 11777);
if (sse) {
- dasm_put(Dst, 11266);
+ dasm_put(Dst, 11267);
} else {
- dasm_put(Dst, 11278);
+ dasm_put(Dst, 11279);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_MODNV: case BC_MODVV:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11710);
+ dasm_put(Dst, 11711);
} else {
- dasm_put(Dst, 11724);
+ dasm_put(Dst, 11725);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11732);
+ dasm_put(Dst, 11733);
} else {
- dasm_put(Dst, 11746);
+ dasm_put(Dst, 11747);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11754);
+ dasm_put(Dst, 11755);
} else {
- dasm_put(Dst, 11768);
+ dasm_put(Dst, 11769);
}
break;
}
- dasm_put(Dst, 11782);
+ dasm_put(Dst, 11783);
break;
case BC_POW:
- dasm_put(Dst, 11392);
+ dasm_put(Dst, 11393);
vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
switch (vk) {
case 0:
- dasm_put(Dst, 11400, LJ_TISNUM);
+ dasm_put(Dst, 11401, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11710);
+ dasm_put(Dst, 11711);
} else {
- dasm_put(Dst, 11724);
+ dasm_put(Dst, 11725);
}
break;
case 1:
- dasm_put(Dst, 11434, LJ_TISNUM);
+ dasm_put(Dst, 11435, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11732);
+ dasm_put(Dst, 11733);
} else {
- dasm_put(Dst, 11746);
+ dasm_put(Dst, 11747);
}
break;
default:
- dasm_put(Dst, 11468, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 11469, LJ_TISNUM, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 11754);
+ dasm_put(Dst, 11755);
} else {
- dasm_put(Dst, 11768);
+ dasm_put(Dst, 11769);
}
break;
}
- dasm_put(Dst, 11787);
+ dasm_put(Dst, 11788);
if (sse) {
- dasm_put(Dst, 11266);
+ dasm_put(Dst, 11267);
} else {
- dasm_put(Dst, 11278);
+ dasm_put(Dst, 11279);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_CAT:
- dasm_put(Dst, 11791, Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 11792, Dt1(->base), Dt1(->base));
break;
/* -- Constant ops ------------------------------------------------------ */
case BC_KSTR:
- dasm_put(Dst, 11885, LJ_TSTR);
+ dasm_put(Dst, 11886, LJ_TSTR);
break;
case BC_KSHORT:
if (sse) {
- dasm_put(Dst, 11918);
+ dasm_put(Dst, 11919);
} else {
- dasm_put(Dst, 11933);
+ dasm_put(Dst, 11934);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_KNUM:
if (sse) {
- dasm_put(Dst, 11941);
+ dasm_put(Dst, 11942);
} else {
- dasm_put(Dst, 11954);
+ dasm_put(Dst, 11955);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_KPRI:
- dasm_put(Dst, 11961);
+ dasm_put(Dst, 11962);
break;
case BC_KNIL:
- dasm_put(Dst, 11987, LJ_TNIL);
+ dasm_put(Dst, 11988, LJ_TNIL);
break;
/* -- Upvalue and function ops ------------------------------------------ */
case BC_UGET:
- dasm_put(Dst, 12033, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 12034, offsetof(GCfuncL, uvptr), DtA(->v));
break;
case BC_USETV:
#define TV2MARKOFS \
((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
- dasm_put(Dst, 12077, 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);
- dasm_put(Dst, 12167);
+ dasm_put(Dst, 12078, 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);
+ dasm_put(Dst, 12168);
break;
#undef TV2MARKOFS
case BC_USETS:
- dasm_put(Dst, 12179, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
+ dasm_put(Dst, 12180, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
break;
case BC_USETN:
- dasm_put(Dst, 12270);
+ dasm_put(Dst, 12271);
if (sse) {
- dasm_put(Dst, 12275);
+ dasm_put(Dst, 12276);
} else {
- dasm_put(Dst, 11085);
+ dasm_put(Dst, 11086);
}
- dasm_put(Dst, 12282, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 12283, offsetof(GCfuncL, uvptr), DtA(->v));
if (sse) {
- dasm_put(Dst, 12291);
+ dasm_put(Dst, 12292);
} else {
- dasm_put(Dst, 12297);
+ dasm_put(Dst, 12298);
}
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_USETP:
- dasm_put(Dst, 12300, offsetof(GCfuncL, uvptr), DtA(->v));
+ dasm_put(Dst, 12301, offsetof(GCfuncL, uvptr), DtA(->v));
break;
case BC_UCLO:
- dasm_put(Dst, 12337, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 12338, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
break;
case BC_FNEW:
- dasm_put(Dst, 12391, Dt1(->base), Dt1(->base), LJ_TFUNC);
+ dasm_put(Dst, 12392, Dt1(->base), Dt1(->base), LJ_TFUNC);
break;
/* -- Table ops --------------------------------------------------------- */
case BC_TNEW:
- dasm_put(Dst, 12462, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
+ dasm_put(Dst, 12463, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
break;
case BC_TDUP:
- dasm_put(Dst, 12588, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
+ dasm_put(Dst, 12589, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
break;
case BC_GGET:
- dasm_put(Dst, 12680, Dt7(->env));
+ dasm_put(Dst, 12681, Dt7(->env));
break;
case BC_GSET:
- dasm_put(Dst, 12698, Dt7(->env));
+ dasm_put(Dst, 12699, Dt7(->env));
break;
case BC_TGETV:
- dasm_put(Dst, 12716, LJ_TTAB, LJ_TISNUM);
+ dasm_put(Dst, 12717, LJ_TTAB, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 12749);
+ dasm_put(Dst, 12750);
} else {
- dasm_put(Dst, 12770);
+ dasm_put(Dst, 12771);
if (cmov) {
- dasm_put(Dst, 10811);
+ dasm_put(Dst, 10812);
} else {
- dasm_put(Dst, 10817);
+ dasm_put(Dst, 10818);
}
dasm_put(Dst, 2527);
}
- dasm_put(Dst, 12780, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
- dasm_put(Dst, 12872, LJ_TSTR);
+ dasm_put(Dst, 12781, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 12873, LJ_TSTR);
break;
case BC_TGETS:
- dasm_put(Dst, 12890, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
- dasm_put(Dst, 12974, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 12891, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+ dasm_put(Dst, 12975, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
break;
case BC_TGETB:
- dasm_put(Dst, 13045, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
- dasm_put(Dst, 11382);
+ dasm_put(Dst, 13046, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+ dasm_put(Dst, 11383);
break;
case BC_TSETV:
- dasm_put(Dst, 13144, LJ_TTAB, LJ_TISNUM);
+ dasm_put(Dst, 13145, LJ_TTAB, LJ_TISNUM);
if (sse) {
- dasm_put(Dst, 12749);
+ dasm_put(Dst, 12750);
} else {
- dasm_put(Dst, 12770);
+ dasm_put(Dst, 12771);
if (cmov) {
- dasm_put(Dst, 10811);
+ dasm_put(Dst, 10812);
} else {
- dasm_put(Dst, 10817);
+ dasm_put(Dst, 10818);
}
dasm_put(Dst, 2527);
}
- dasm_put(Dst, 13177, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
- dasm_put(Dst, 13260, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 13178, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
+ dasm_put(Dst, 13261, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
case BC_TSETS:
- dasm_put(Dst, 13322, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
- dasm_put(Dst, 13397, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
- dasm_put(Dst, 13489, 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));
+ dasm_put(Dst, 13323, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+ dasm_put(Dst, 13398, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
+ dasm_put(Dst, 13490, 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));
break;
case BC_TSETB:
- dasm_put(Dst, 13585, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
- dasm_put(Dst, 13683, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 13586, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
+ dasm_put(Dst, 13684, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
case BC_TSETM:
- dasm_put(Dst, 13729);
+ dasm_put(Dst, 13730);
if (sse) {
- dasm_put(Dst, 13734);
+ dasm_put(Dst, 13735);
} else {
- dasm_put(Dst, 13741);
+ dasm_put(Dst, 13742);
}
- dasm_put(Dst, 13753, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
- dasm_put(Dst, 13895, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+ dasm_put(Dst, 13754, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
+ dasm_put(Dst, 13896, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
break;
/* -- Calls and vararg handling ----------------------------------------- */
case BC_CALL: case BC_CALLM:
- dasm_put(Dst, 11396);
+ dasm_put(Dst, 11397);
if (op == BC_CALLM) {
- dasm_put(Dst, 13913);
+ dasm_put(Dst, 13914);
}
- dasm_put(Dst, 13918, LJ_TFUNC, Dt7(->pc));
+ dasm_put(Dst, 13919, LJ_TFUNC, Dt7(->pc));
break;
case BC_CALLMT:
- dasm_put(Dst, 13913);
+ dasm_put(Dst, 13914);
break;
case BC_CALLT:
- dasm_put(Dst, 13959, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
- dasm_put(Dst, 14077, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
+ dasm_put(Dst, 13960, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
+ dasm_put(Dst, 14078, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
break;
case BC_ITERC:
- dasm_put(Dst, 14147, LJ_TFUNC, 2+1, Dt7(->pc));
+ dasm_put(Dst, 14148, LJ_TFUNC, 2+1, Dt7(->pc));
break;
case BC_VARG:
- dasm_put(Dst, 14227, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
- dasm_put(Dst, 14371, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 14228, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
+ dasm_put(Dst, 14372, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
break;
/* -- Returns ----------------------------------------------------------- */
case BC_RETM:
- dasm_put(Dst, 13913);
+ dasm_put(Dst, 13914);
break;
case BC_RET: case BC_RET0: case BC_RET1:
if (op != BC_RET0) {
- dasm_put(Dst, 14470);
+ dasm_put(Dst, 14471);
}
- dasm_put(Dst, 14474, FRAME_TYPE);
+ dasm_put(Dst, 14475, FRAME_TYPE);
switch (op) {
case BC_RET:
- dasm_put(Dst, 14493);
+ dasm_put(Dst, 14494);
break;
case BC_RET1:
- dasm_put(Dst, 14551);
+ dasm_put(Dst, 14552);
/* fallthrough */
case BC_RET0:
- dasm_put(Dst, 14567);
+ dasm_put(Dst, 14568);
default:
break;
}
- dasm_put(Dst, 14578, Dt7(->pc), PC2PROTO(k));
+ dasm_put(Dst, 14579, Dt7(->pc), PC2PROTO(k));
if (op == BC_RET) {
- dasm_put(Dst, 14620, LJ_TNIL);
+ dasm_put(Dst, 14621, LJ_TNIL);
} else {
- dasm_put(Dst, 14629, LJ_TNIL);
+ dasm_put(Dst, 14630, LJ_TNIL);
}
- dasm_put(Dst, 14636, -FRAME_VARG, FRAME_TYPEP);
+ dasm_put(Dst, 14637, -FRAME_VARG, FRAME_TYPEP);
if (op != BC_RET0) {
- dasm_put(Dst, 14660);
+ dasm_put(Dst, 14661);
}
dasm_put(Dst, 4683);
break;
case BC_FORL:
#if LJ_HASJIT
- dasm_put(Dst, 14664, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 14665, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
case BC_FORI:
case BC_IFORL:
vk = (op == BC_IFORL || op == BC_JFORL);
- dasm_put(Dst, 14685);
+ dasm_put(Dst, 14686);
if (!vk) {
- dasm_put(Dst, 14689, LJ_TISNUM, LJ_TISNUM);
+ dasm_put(Dst, 14690, LJ_TISNUM, LJ_TISNUM);
}
- dasm_put(Dst, 14708);
+ dasm_put(Dst, 14709);
if (!vk) {
- dasm_put(Dst, 14712, LJ_TISNUM);
+ dasm_put(Dst, 14713, LJ_TISNUM);
}
if (sse) {
- dasm_put(Dst, 14721);
+ dasm_put(Dst, 14722);
if (vk) {
- dasm_put(Dst, 14733);
+ dasm_put(Dst, 14734);
} else {
- dasm_put(Dst, 14752);
+ dasm_put(Dst, 14753);
}
- dasm_put(Dst, 14757);
+ dasm_put(Dst, 14758);
} else {
- dasm_put(Dst, 14770);
+ dasm_put(Dst, 14771);
if (vk) {
- dasm_put(Dst, 14776);
+ dasm_put(Dst, 14777);
} else {
- dasm_put(Dst, 14792);
+ dasm_put(Dst, 14793);
}
- dasm_put(Dst, 14800);
+ dasm_put(Dst, 14801);
if (cmov) {
- dasm_put(Dst, 10811);
+ dasm_put(Dst, 10812);
} else {
- dasm_put(Dst, 10817);
+ dasm_put(Dst, 10818);
}
if (!cmov) {
- dasm_put(Dst, 14805);
+ dasm_put(Dst, 14806);
}
}
if (op == BC_FORI) {
- dasm_put(Dst, 14811, -BCBIAS_J*4);
+ dasm_put(Dst, 14812, -BCBIAS_J*4);
} else if (op == BC_JFORI) {
- dasm_put(Dst, 14821, -BCBIAS_J*4, BC_JLOOP);
+ dasm_put(Dst, 14822, -BCBIAS_J*4, BC_JLOOP);
} else if (op == BC_IFORL) {
- dasm_put(Dst, 14835, -BCBIAS_J*4);
+ dasm_put(Dst, 14836, -BCBIAS_J*4);
} else {
- dasm_put(Dst, 14831, BC_JLOOP);
+ dasm_put(Dst, 14832, BC_JLOOP);
}
- dasm_put(Dst, 10846);
+ dasm_put(Dst, 10847);
if (sse) {
- dasm_put(Dst, 14845);
+ dasm_put(Dst, 14846);
}
break;
case BC_ITERL:
#if LJ_HASJIT
- dasm_put(Dst, 14664, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 14665, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
break;
#endif
case BC_IITERL:
- dasm_put(Dst, 14856, LJ_TNIL);
+ dasm_put(Dst, 14857, LJ_TNIL);
if (op == BC_JITERL) {
- dasm_put(Dst, 14871, BC_JLOOP);
+ dasm_put(Dst, 14872, BC_JLOOP);
} else {
- dasm_put(Dst, 14885, -BCBIAS_J*4);
+ dasm_put(Dst, 14886, -BCBIAS_J*4);
}
- dasm_put(Dst, 11143);
+ dasm_put(Dst, 11144);
break;
case BC_LOOP:
#if LJ_HASJIT
- dasm_put(Dst, 14664, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 14665, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
break;
case BC_ILOOP:
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
break;
case BC_JLOOP:
#if LJ_HASJIT
- dasm_put(Dst, 14901, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
+ dasm_put(Dst, 14902, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
#endif
break;
case BC_JMP:
- dasm_put(Dst, 14924, -BCBIAS_J*4);
+ dasm_put(Dst, 14925, -BCBIAS_J*4);
break;
/* -- Function headers -------------------------------------------------- */
case BC_FUNCF:
#if LJ_HASJIT
- dasm_put(Dst, 14948, HOTCOUNT_PCMASK, GG_DISP2HOT);
+ dasm_put(Dst, 14949, HOTCOUNT_PCMASK, GG_DISP2HOT);
#endif
case BC_FUNCV: /* NYI: compiled vararg functions. */
break;
break;
#endif
case BC_IFUNCF:
- dasm_put(Dst, 14969, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
+ dasm_put(Dst, 14970, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
if (op == BC_JFUNCF) {
- dasm_put(Dst, 14999, BC_JLOOP);
+ dasm_put(Dst, 15000, BC_JLOOP);
} else {
- dasm_put(Dst, 10848);
+ dasm_put(Dst, 10849);
}
- dasm_put(Dst, 15008, LJ_TNIL);
+ dasm_put(Dst, 15009, LJ_TNIL);
break;
case BC_JFUNCV:
#if !LJ_HASJIT
break;
#endif
- dasm_put(Dst, 10246);
+ dasm_put(Dst, 10247);
break; /* NYI: compiled vararg functions. */
case BC_IFUNCV:
- dasm_put(Dst, 15030, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
+ dasm_put(Dst, 15031, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
if (op == BC_JFUNCV) {
- dasm_put(Dst, 14999, BC_JLOOP);
+ dasm_put(Dst, 15000, BC_JLOOP);
} else {
- dasm_put(Dst, 15121, -4+PC2PROTO(k));
+ dasm_put(Dst, 15122, -4+PC2PROTO(k));
}
- dasm_put(Dst, 15143, LJ_TNIL);
+ dasm_put(Dst, 15144, LJ_TNIL);
break;
case BC_FUNCC:
case BC_FUNCCW:
- dasm_put(Dst, 15165, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
+ dasm_put(Dst, 15166, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
if (op == BC_FUNCC) {
- dasm_put(Dst, 15194);
+ dasm_put(Dst, 15195);
} else {
- dasm_put(Dst, 15198);
+ dasm_put(Dst, 15199);
}
- dasm_put(Dst, 15206, DISPATCH_GL(vmstate), ~LJ_VMST_C);
+ dasm_put(Dst, 15207, DISPATCH_GL(vmstate), ~LJ_VMST_C);
if (op == BC_FUNCC) {
- dasm_put(Dst, 15215);
+ dasm_put(Dst, 15216);
} else {
- dasm_put(Dst, 15219, DISPATCH_GL(wrapf));
+ dasm_put(Dst, 15220, DISPATCH_GL(wrapf));
}
- dasm_put(Dst, 15224, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
+ dasm_put(Dst, 15225, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
break;
/* ---------------------------------------------------------------------- */
build_subroutines(ctx, cmov, sse);
- dasm_put(Dst, 15249);
+ dasm_put(Dst, 15250);
for (op = 0; op < BC__MAX; op++)
build_ins(ctx, (BCOp)op, op, cmov, sse);
L->top = o+1; /* Only keep one argument. */
if (!tvisnil(mo = lj_meta_lookup(L, o, MM_tostring))) {
copyTV(L, L->base-1, mo); /* Replace callable. */
- return FFH_RETRY;
+ return FFH_TAILCALL;
} else {
GCstr *s;
if (tvisnum(o)) {
#define FFH_RETRY 0
#define FFH_UNREACHABLE FFH_RETRY
#define FFH_RES(n) ((n)+1)
+#define FFH_TAILCALL (-1)
LJ_FUNC TValue *lj_lib_checkany(lua_State *L, int narg);
LJ_FUNC GCstr *lj_lib_checkstr(lua_State *L, int narg);