aboutsummaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-10-10 18:16:18 +0200
committerMike Pall <mike>2012-10-10 18:16:18 +0200
commit1c626112a06f1f69d3c22771c62d4ced1cfee356 (patch)
tree6045efeabcc77b7a0351a65161e1d456bb635752 /src/lj_record.c
parent4a97faef7ef7e9b12235adcb98e3e591b0db7122 (diff)
downloadluajit-1c626112a06f1f69d3c22771c62d4ced1cfee356.tar.gz
luajit-1c626112a06f1f69d3c22771c62d4ced1cfee356.tar.bz2
luajit-1c626112a06f1f69d3c22771c62d4ced1cfee356.zip
FFI: Compile ffi.sizeof(), ffi.alignof() and ffi.offsetof().
Diffstat (limited to '')
-rw-r--r--src/lj_record.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 956f3bed..ea391bf1 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1654,13 +1654,23 @@ void lj_record_ins(jit_State *J)
1654 case LJ_POST_FIXBOOL: 1654 case LJ_POST_FIXBOOL:
1655 if (!tvistruecond(&J2G(J)->tmptv2)) { 1655 if (!tvistruecond(&J2G(J)->tmptv2)) {
1656 BCReg s; 1656 BCReg s;
1657 TValue *tv = J->L->base;
1657 for (s = 0; s < J->maxslot; s++) /* Fixup stack slot (if any). */ 1658 for (s = 0; s < J->maxslot; s++) /* Fixup stack slot (if any). */
1658 if (J->base[s] == TREF_TRUE && tvisfalse(&J->L->base[s])) { 1659 if (J->base[s] == TREF_TRUE && tvisfalse(&tv[s])) {
1659 J->base[s] = TREF_FALSE; 1660 J->base[s] = TREF_FALSE;
1660 break; 1661 break;
1661 } 1662 }
1662 } 1663 }
1663 break; 1664 break;
1665 case LJ_POST_FIXCONST:
1666 {
1667 BCReg s;
1668 TValue *tv = J->L->base;
1669 for (s = 0; s < J->maxslot; s++) /* Constify stack slots (if any). */
1670 if (J->base[s] == TREF_NIL && !tvisnil(&tv[s]))
1671 J->base[s] = lj_record_constify(J, &tv[s]);
1672 }
1673 break;
1664 case LJ_POST_FFRETRY: /* Suppress recording of retried fast function. */ 1674 case LJ_POST_FFRETRY: /* Suppress recording of retried fast function. */
1665 if (bc_op(*J->pc) >= BC__MAX) 1675 if (bc_op(*J->pc) >= BC__MAX)
1666 return; 1676 return;