diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib_jit.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib_jit.c b/src/lib_jit.c index bfceab62..57b50749 100644 --- a/src/lib_jit.c +++ b/src/lib_jit.c | |||
@@ -370,7 +370,18 @@ LJLIB_CF(jit_util_traceexitstub) | |||
370 | ExitNo exitno = (ExitNo)lj_lib_checkint(L, 1); | 370 | ExitNo exitno = (ExitNo)lj_lib_checkint(L, 1); |
371 | jit_State *J = L2J(L); | 371 | jit_State *J = L2J(L); |
372 | if (exitno < EXITSTUBS_PER_GROUP*LJ_MAX_EXITSTUBGR) { | 372 | if (exitno < EXITSTUBS_PER_GROUP*LJ_MAX_EXITSTUBGR) { |
373 | setnumV(L->top-1, cast_num((intptr_t)exitstub_addr(J, exitno))); | 373 | setnumV(L->top-1, cast_num((uintptr_t)exitstub_addr(J, exitno))); |
374 | return 1; | ||
375 | } | ||
376 | return 0; | ||
377 | } | ||
378 | |||
379 | /* local addr = jit.util.ircalladdr(idx) */ | ||
380 | LJLIB_CF(jit_util_ircalladdr) | ||
381 | { | ||
382 | uint32_t idx = (uint32_t)lj_lib_checkint(L, 1); | ||
383 | if (idx < IRCALL__MAX) { | ||
384 | setnumV(L->top-1, cast_num((uintptr_t)(void *)lj_ir_callinfo[idx].func)); | ||
374 | return 1; | 385 | return 1; |
375 | } | 386 | } |
376 | return 0; | 387 | return 0; |
@@ -389,6 +400,7 @@ static int trace_nojit(lua_State *L) | |||
389 | #define lj_cf_jit_util_tracesnap trace_nojit | 400 | #define lj_cf_jit_util_tracesnap trace_nojit |
390 | #define lj_cf_jit_util_tracemc trace_nojit | 401 | #define lj_cf_jit_util_tracemc trace_nojit |
391 | #define lj_cf_jit_util_traceexitstub trace_nojit | 402 | #define lj_cf_jit_util_traceexitstub trace_nojit |
403 | #define lj_cf_jit_util_ircalladdr trace_nojit | ||
392 | 404 | ||
393 | #endif | 405 | #endif |
394 | 406 | ||