summaryrefslogtreecommitdiff
path: root/zjit/src/codegen.rs
diff options
context:
space:
mode:
authorRandy Stauner <randy@r4s6.net>2026-01-12 16:28:06 -0700
committerGitHub <noreply@github.com>2026-01-12 23:28:06 +0000
commit7c91db9ea020f297f99095765a962284d3d08f3d (patch)
tree87151c047070f51d710948b6bf64b73a978c9666 /zjit/src/codegen.rs
parent2daed3c02258e32fb2f0b25f3f0dc0461478de5b (diff)
ZJIT: Check arg limit before pushing SendWithoutBLockDirect insn (#15854)
This reduces some processing and makes the HIR more accurate.
Diffstat (limited to 'zjit/src/codegen.rs')
-rw-r--r--zjit/src/codegen.rs3
1 files changed, 0 insertions, 3 deletions
diff --git a/zjit/src/codegen.rs b/zjit/src/codegen.rs
index d6a2ebec74..4a186d960c 100644
--- a/zjit/src/codegen.rs
+++ b/zjit/src/codegen.rs
@@ -401,9 +401,6 @@ fn gen_insn(cb: &mut CodeBlock, jit: &mut JITState, asm: &mut Assembler, functio
&Insn::Send { cd, blockiseq, state, reason, .. } => gen_send(jit, asm, cd, blockiseq, &function.frame_state(state), reason),
&Insn::SendForward { cd, blockiseq, state, reason, .. } => gen_send_forward(jit, asm, cd, blockiseq, &function.frame_state(state), reason),
&Insn::SendWithoutBlock { cd, state, reason, .. } => gen_send_without_block(jit, asm, cd, &function.frame_state(state), reason),
- // Give up SendWithoutBlockDirect for 6+ args since asm.ccall() doesn't support it.
- Insn::SendWithoutBlockDirect { cd, state, args, .. } if args.len() + 1 > C_ARG_OPNDS.len() => // +1 for self
- gen_send_without_block(jit, asm, *cd, &function.frame_state(*state), SendFallbackReason::TooManyArgsForLir),
Insn::SendWithoutBlockDirect { cme, iseq, recv, args, state, .. } => gen_send_without_block_direct(cb, jit, asm, *cme, *iseq, opnd!(recv), opnds!(args), &function.frame_state(*state)),
&Insn::InvokeSuper { cd, blockiseq, state, reason, .. } => gen_invokesuper(jit, asm, cd, blockiseq, &function.frame_state(state), reason),
&Insn::InvokeBlock { cd, state, reason, .. } => gen_invokeblock(jit, asm, cd, &function.frame_state(state), reason),