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)) \
|
||||
_(FUNC_ENV, offsetof(GCfunc, l.env)) \
|
||||
_(FUNC_PC, offsetof(GCfunc, l.pc)) \
|
||||
_(FUNC_FFID, offsetof(GCfunc, l.ffid)) \
|
||||
_(THREAD_ENV, offsetof(lua_State, env)) \
|
||||
_(TAB_META, offsetof(GCtab, metatable)) \
|
||||
_(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_string_gmatch_aux:
|
||||
/* 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;
|
||||
default:
|
||||
/* NYI: don't specialize to non-monomorphic C functions. */
|
||||
|
Loading…
Reference in New Issue
Block a user