aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ffrecord.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lj_ffrecord.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c
index a960ea50..942ecdb2 100644
--- a/src/lj_ffrecord.c
+++ b/src/lj_ffrecord.c
@@ -104,7 +104,6 @@ static void recff_stitch(jit_State *J)
104 TValue *base = L->base; 104 TValue *base = L->base;
105 const BCIns *pc = frame_pc(base-1); 105 const BCIns *pc = frame_pc(base-1);
106 TValue *pframe = frame_prevl(base-1); 106 TValue *pframe = frame_prevl(base-1);
107 TRef trcont;
108 107
109 lua_assert(!LJ_FR2); /* TODO_FR2: handle frame shift. */ 108 lua_assert(!LJ_FR2); /* TODO_FR2: handle frame shift. */
110 /* Move func + args up in Lua stack and insert continuation. */ 109 /* Move func + args up in Lua stack and insert continuation. */
@@ -118,12 +117,7 @@ static void recff_stitch(jit_State *J)
118 117
119 /* Ditto for the IR. */ 118 /* Ditto for the IR. */
120 memmove(&J->base[1], &J->base[-1], sizeof(TRef)*(J->maxslot+1)); 119 memmove(&J->base[1], &J->base[-1], sizeof(TRef)*(J->maxslot+1));
121#if LJ_64 120 J->base[0] = lj_ir_kptr(J, contptr(cont)) | TREF_CONT;
122 trcont = lj_ir_kptr(J, (void *)((int64_t)cont-(int64_t)lj_vm_asm_begin));
123#else
124 trcont = lj_ir_kptr(J, (void *)cont);
125#endif
126 J->base[0] = trcont | TREF_CONT;
127 J->ktracep = lj_ir_k64_reserve(J); 121 J->ktracep = lj_ir_k64_reserve(J);
128 lua_assert(irt_toitype_(IRT_P64) == LJ_TTRACE); 122 lua_assert(irt_toitype_(IRT_P64) == LJ_TTRACE);
129 J->base[-1] = emitir(IRT(IR_XLOAD, IRT_P64), lj_ir_kptr(J, &J->ktracep->gcr), 0); 123 J->base[-1] = emitir(IRT(IR_XLOAD, IRT_P64), lj_ir_kptr(J, &J->ktracep->gcr), 0);