mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Specialize to ffid for non-monomorphic builtins.
This commit is contained in:
parent
fd3354a9dd
commit
19d53ed2f9
@ -194,6 +194,7 @@ IRFPMDEF(FPMENUM)
|
|||||||
_(STR_LEN, offsetof(GCstr, len)) \
|
_(STR_LEN, offsetof(GCstr, len)) \
|
||||||
_(FUNC_ENV, offsetof(GCfunc, l.env)) \
|
_(FUNC_ENV, offsetof(GCfunc, l.env)) \
|
||||||
_(FUNC_PC, offsetof(GCfunc, l.pc)) \
|
_(FUNC_PC, offsetof(GCfunc, l.pc)) \
|
||||||
|
_(FUNC_FFID, offsetof(GCfunc, l.ffid)) \
|
||||||
_(THREAD_ENV, offsetof(lua_State, env)) \
|
_(THREAD_ENV, offsetof(lua_State, env)) \
|
||||||
_(TAB_META, offsetof(GCtab, metatable)) \
|
_(TAB_META, offsetof(GCtab, metatable)) \
|
||||||
_(TAB_ARRAY, offsetof(GCtab, array)) \
|
_(TAB_ARRAY, offsetof(GCtab, array)) \
|
||||||
|
@ -648,7 +648,10 @@ static TRef rec_call_specialize(jit_State *J, GCfunc *fn, TRef tr)
|
|||||||
case FF_coroutine_wrap_aux:
|
case FF_coroutine_wrap_aux:
|
||||||
case FF_string_gmatch_aux:
|
case FF_string_gmatch_aux:
|
||||||
/* NYI: io_file_iter doesn't have an ffid, yet. */
|
/* NYI: io_file_iter doesn't have an ffid, yet. */
|
||||||
/* NYI: specialize to ffid? Not strictly necessary, trace will stop. */
|
{ /* Specialize to the ffid. */
|
||||||
|
TRef trid = emitir(IRT(IR_FLOAD, IRT_U8), tr, IRFL_FUNC_FFID);
|
||||||
|
emitir(IRTG(IR_EQ, IRT_INT), trid, lj_ir_kint(J, fn->c.ffid));
|
||||||
|
}
|
||||||
return tr;
|
return tr;
|
||||||
default:
|
default:
|
||||||
/* NYI: don't specialize to non-monomorphic C functions. */
|
/* NYI: don't specialize to non-monomorphic C functions. */
|
||||||
|
Loading…
Reference in New Issue
Block a user