Compile table traversals: next(), pairs(), BC_ISNEXT/BC_ITERN.
Sponsored by OpenResty Inc.
This commit is contained in:
@@ -1103,7 +1103,8 @@ static void asm_sload(ASMState *as, IRIns *ir)
|
||||
lj_assertA(irt_isguard(ir->t) || !(ir->op2 & IRSLOAD_TYPECHECK),
|
||||
"inconsistent SLOAD variant");
|
||||
lj_assertA(LJ_DUALNUM ||
|
||||
!irt_isint(t) || (ir->op2 & (IRSLOAD_CONVERT|IRSLOAD_FRAME)),
|
||||
!irt_isint(t) ||
|
||||
(ir->op2 & (IRSLOAD_CONVERT|IRSLOAD_FRAME|IRSLOAD_KEYINDEX)),
|
||||
"bad SLOAD type");
|
||||
#if LJ_SOFTFP
|
||||
lj_assertA(!(ir->op2 & IRSLOAD_CONVERT),
|
||||
@@ -2096,6 +2097,8 @@ static void asm_stack_restore(ASMState *as, SnapShot *snap)
|
||||
} else if ((sn & SNAP_SOFTFPNUM)) {
|
||||
type = ra_alloc1(as, ref+1, rset_exclude(RSET_GPR, RID_BASE));
|
||||
#endif
|
||||
} else if ((sn & SNAP_KEYINDEX)) {
|
||||
type = ra_allock(as, (int32_t)LJ_KEYINDEX, allow);
|
||||
} else {
|
||||
type = ra_allock(as, (int32_t)irt_toitype(ir->t), allow);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user