diff --git a/src/ldo.c b/src/ldo.c index ca775e5..086d174 100644 --- a/src/ldo.c +++ b/src/ldo.c @@ -540,6 +540,7 @@ l_sinline int precallC (lua_State *L, StkId func, int nresults, ** (so that it includes the function itself). Return the number of ** results, if it was a C function, or -1 for a Lua function. */ +__attribute__((yk_unroll_safe)) int luaD_pretailcall (lua_State *L, CallInfo *ci, StkId func, int narg1, int delta) { retry: @@ -597,6 +598,7 @@ int luaD_pretailcall (lua_State *L, CallInfo *ci, StkId func, ** returns NULL, with all the results on the stack, starting at the ** original function position. */ +__attribute__((yk_unroll_safe)) CallInfo *luaD_precall (lua_State *L, StkId func, int nresults) { retry: switch (ttypetag(s2v(func))) { diff --git a/src/lfunc.c b/src/lfunc.c index 2906b3d..7438224 100644 --- a/src/lfunc.c +++ b/src/lfunc.c @@ -227,6 +227,7 @@ static void poptbclist (lua_State *L) { ** Close all upvalues and to-be-closed variables up to the given stack ** level. Return restored 'level'. */ +__attribute__((yk_unroll_safe)) StkId luaF_close (lua_State *L, StkId level, int status, int yy) { ptrdiff_t levelrel = savestack(L, level); luaF_closeupval(L, level); /* first, close the upvalues */ diff --git a/src/lvm.c b/src/lvm.c index 73eb04d..e5dd3b0 100644 --- a/src/lvm.c +++ b/src/lvm.c @@ -287,6 +287,7 @@ static int floatforloop (StkId ra) { ** if 'slot' is NULL, 't' is not a table; otherwise, 'slot' points to ** t[k] entry (which must be empty). */ +__attribute__((yk_unroll_safe)) void luaV_finishget (lua_State *L, const TValue *t, TValue *key, StkId val, const TValue *slot) { int loop; /* counter to avoid infinite loops */