summaryrefslogtreecommitdiff
path: root/yjit/src/codegen.rs
diff options
context:
space:
mode:
authorJimmy Miller <jimmy.miller@shopify.com>2023-03-24 17:01:59 -0400
committerGitHub <noreply@github.com>2023-03-24 17:01:59 -0400
commit59c3fac6c4d803019095eebb92b0d2862450ded6 (patch)
tree7794eceaec55d9212ef938cfba1f6f492562f938 /yjit/src/codegen.rs
parent27b1a2992f7bebd9db0b0779cc7fe9b9faf5dca4 (diff)
downloadruby-59c3fac6c4d803019095eebb92b0d2862450ded6.tar.gz
YJIT: Rest and block_arg support (#7584)
Diffstat (limited to 'yjit/src/codegen.rs')
-rw-r--r--yjit/src/codegen.rs9
1 files changed, 2 insertions, 7 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index 403e55c185..ca77abb09d 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -5240,9 +5240,9 @@ fn move_rest_args_to_stack(array: Opnd, num_args: u32, ctx: &mut Context, asm: &
let array_len_opnd = get_array_len(asm, array);
- asm.comment("Side exit if length doesn't not equal remaining args");
+ asm.comment("Side exit if length is less than required");
asm.cmp(array_len_opnd, num_args.into());
- asm.jbe(counted_exit!(ocb, side_exit, send_splatarray_length_not_equal));
+ asm.jl(counted_exit!(ocb, side_exit, send_iseq_has_rest_and_splat_not_equal));
asm.comment("Push arguments from array");
@@ -5472,11 +5472,6 @@ fn gen_send_iseq(
return CantCompile;
}
- if iseq_has_rest && unsafe { get_iseq_flags_has_block(iseq) } {
- gen_counter_incr!(asm, send_iseq_has_rest_and_block);
- return CantCompile;
- }
-
if iseq_has_rest && unsafe { get_iseq_flags_has_kw(iseq) } {
gen_counter_incr!(asm, send_iseq_has_rest_and_kw);
return CantCompile;