diff options
author | Mike Pall <mike> | 2015-01-03 15:04:38 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2015-01-03 15:04:38 +0100 |
commit | 054e6abe37450344e20b373ec326055071029e9b (patch) | |
tree | d3abbe61e643f4f59797d2aea24cc3a0643df53b /src/lj_ffrecord.c | |
parent | a13dfd66c3427f9cc94044f261a526042b0d02f5 (diff) | |
download | luajit-054e6abe37450344e20b373ec326055071029e9b.tar.gz luajit-054e6abe37450344e20b373ec326055071029e9b.tar.bz2 luajit-054e6abe37450344e20b373ec326055071029e9b.zip |
Add LJ_FR2 mode: Two-slot frame info.
Diffstat (limited to 'src/lj_ffrecord.c')
-rw-r--r-- | src/lj_ffrecord.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c index b65759a5..55cdc63e 100644 --- a/src/lj_ffrecord.c +++ b/src/lj_ffrecord.c | |||
@@ -107,6 +107,7 @@ static void recff_stitch(jit_State *J) | |||
107 | TValue *pframe = frame_prevl(base-1); | 107 | TValue *pframe = frame_prevl(base-1); |
108 | TRef trcont; | 108 | TRef trcont; |
109 | 109 | ||
110 | lua_assert(!LJ_FR2); /* TODO_FR2: handle frame shift. */ | ||
110 | /* Move func + args up in Lua stack and insert continuation. */ | 111 | /* Move func + args up in Lua stack and insert continuation. */ |
111 | memmove(&base[1], &base[-1], sizeof(TValue)*(J->maxslot+1)); | 112 | memmove(&base[1], &base[-1], sizeof(TValue)*(J->maxslot+1)); |
112 | setframe_ftsz(base+1, ((char *)(base+1) - (char *)pframe) + FRAME_CONT); | 113 | setframe_ftsz(base+1, ((char *)(base+1) - (char *)pframe) + FRAME_CONT); |
@@ -466,6 +467,7 @@ static void LJ_FASTCALL recff_xpcall(jit_State *J, RecordFFData *rd) | |||
466 | TValue argv0, argv1; | 467 | TValue argv0, argv1; |
467 | TRef tmp; | 468 | TRef tmp; |
468 | int errcode; | 469 | int errcode; |
470 | lua_assert(!LJ_FR2); /* TODO_FR2: handle different frame setup. */ | ||
469 | /* Swap function and traceback. */ | 471 | /* Swap function and traceback. */ |
470 | tmp = J->base[0]; J->base[0] = J->base[1]; J->base[1] = tmp; | 472 | tmp = J->base[0]; J->base[0] = J->base[1]; J->base[1] = tmp; |
471 | copyTV(J->L, &argv0, &rd->argv[0]); | 473 | copyTV(J->L, &argv0, &rd->argv[0]); |