summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yjit_codegen.c4
-rw-r--r--yjit_iface.h3
2 files changed, 5 insertions, 2 deletions
diff --git a/yjit_codegen.c b/yjit_codegen.c
index c4dba156cb..9cc643654b 100644
--- a/yjit_codegen.c
+++ b/yjit_codegen.c
@@ -4191,7 +4191,7 @@ gen_getblockparamproxy(jitstate_t *jit, ctx_t *ctx, codeblock_t *cb)
// Bail when VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM) is non zero
test(cb, mem_opnd(64, REG0, SIZEOF_VALUE * VM_ENV_DATA_INDEX_FLAGS), imm_opnd(VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM));
- jnz_ptr(cb, side_exit);
+ jnz_ptr(cb, COUNTED_EXIT(side_exit, block_param_is_modified));
// Load the block handler for the current frame
// note, VM_ASSERT(VM_ENV_LOCAL_P(ep))
@@ -4202,7 +4202,7 @@ gen_getblockparamproxy(jitstate_t *jit, ctx_t *ctx, codeblock_t *cb)
// Bail unless VM_BH_ISEQ_BLOCK_P(bh). This also checks for null.
cmp(cb, REG0_8, imm_opnd(0x1));
- jne_ptr(cb, side_exit);
+ jnz_ptr(cb, COUNTED_EXIT(side_exit, block_handler_is_not_iseq));
// Push rb_block_param_proxy. It's a root, so no need to use jit_mov_gc_ptr.
mov(cb, REG0, const_ptr_opnd((void *)rb_block_param_proxy));
diff --git a/yjit_iface.h b/yjit_iface.h
index de6c94da9a..639c728c0c 100644
--- a/yjit_iface.h
+++ b/yjit_iface.h
@@ -107,6 +107,9 @@ YJIT_DECLARE_COUNTERS(
expandarray_not_array,
expandarray_rhs_too_small,
+ block_param_is_modified,
+ block_handler_is_not_iseq,
+
// Member with known name for iterating over counters
last_member
)