diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_ffrecord.c | 8 |
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); |