diff options
Diffstat (limited to 'yjit_codegen.c')
-rw-r--r-- | yjit_codegen.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/yjit_codegen.c b/yjit_codegen.c index 8d4cd02677..8cc3d5c8c8 100644 --- a/yjit_codegen.c +++ b/yjit_codegen.c @@ -301,6 +301,7 @@ jit_jump_to_next_insn(jitstate_t *jit, const ctx_t *current_context) // Generate the jump instruction gen_direct_jump( + jit->block, &reset_depth, jump_block ); @@ -722,6 +723,7 @@ jit_chain_guard(enum jcc_kinds jcc, jitstate_t *jit, const ctx_t *ctx, uint8_t d deeper.chain_depth++; gen_branch( + jit->block, ctx, (blockid_t) { jit->iseq, jit->insn_idx }, &deeper, @@ -1334,6 +1336,7 @@ gen_branchif(jitstate_t* jit, ctx_t* ctx) // Generate the branch instructions gen_branch( + jit->block, ctx, jump_block, ctx, @@ -1387,6 +1390,7 @@ gen_branchunless(jitstate_t* jit, ctx_t* ctx) // Generate the branch instructions gen_branch( + jit->block, ctx, jump_block, ctx, @@ -1412,6 +1416,7 @@ gen_jump(jitstate_t* jit, ctx_t* ctx) // Generate the jump instruction gen_direct_jump( + jit->block, ctx, jump_block ); @@ -1726,6 +1731,7 @@ gen_oswb_iseq(jitstate_t *jit, ctx_t *ctx, const struct rb_callinfo *ci, const r // Stack overflow check // #define CHECK_VM_STACK_OVERFLOW0(cfp, sp, margin) + ADD_COMMENT(cb, "stack overflow check"); lea(cb, REG0, ctx_sp_opnd(ctx, sizeof(VALUE) * (num_locals + iseq->body->stack_max) + sizeof(rb_control_frame_t))); cmp(cb, REG_CFP, REG0); jle_ptr(cb, COUNTED_EXIT(side_exit, oswb_se_cf_overflow)); @@ -1802,6 +1808,7 @@ gen_oswb_iseq(jitstate_t *jit, ctx_t *ctx, const struct rb_callinfo *ci, const r // Write the JIT return address on the callee frame gen_branch( + jit->block, ctx, return_block, &return_ctx, @@ -1818,6 +1825,7 @@ gen_oswb_iseq(jitstate_t *jit, ctx_t *ctx, const struct rb_callinfo *ci, const r // Directly jump to the entry point of the callee gen_direct_jump( + jit->block, &callee_ctx, (blockid_t){ iseq, 0 } ); @@ -2049,6 +2057,7 @@ gen_opt_getinlinecache(jitstate_t *jit, ctx_t *ctx) // Jump over the code for filling the cache uint32_t jump_idx = jit_next_insn_idx(jit) + (int32_t)jump_offset; gen_direct_jump( + jit->block, ctx, (blockid_t){ .iseq = jit->iseq, .idx = jump_idx } ); |