diff --git a/src/spesh/osr.c b/src/spesh/osr.c index 3aa0d75a48..9cbb2065e1 100644 --- a/src/spesh/osr.c +++ b/src/spesh/osr.c @@ -1,5 +1,18 @@ #include "moar.h" void MVM_spesh_osr(MVMThreadContext *tc) { - /* TODO */ + MVMSpeshCandidate *specialized; + + /* Ensure that we are in a position to specialize. */ + if (!tc->cur_frame->caller) + return; + if (!tc->cur_frame->params.callsite->is_interned) + return; + + /* Produce logging spesh candidate. */ + specialized = MVM_spesh_candidate_setup(tc, tc->cur_frame->static_info, + tc->cur_frame->params.callsite, tc->cur_frame->params.args); + if (specialized) { + /* TODO: install. */ + } }