aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authorMaple Ong <maple.develops@gmail.com>2022-08-15 12:54:26 -0400
committerTakashi Kokubun <takashikkbn@gmail.com>2022-08-29 08:47:11 -0700
commit5a76a15a0f93100c7ff6361a34b06af936cc36c6 (patch)
tree8e11582f3ce368481939f415cfc5ab7ba372f0e4 /vm_insnhelper.c
parent2f9df466546263028ece7757cb6f813800d2d6b5 (diff)
downloadruby-5a76a15a0f93100c7ff6361a34b06af936cc36c6.tar.gz
YJIT: Implement concatarray in yjit (https://github.com/Shopify/ruby/pull/405)
* Create code generation func * Make rb_vm_concat_array available to use in Rust * Map opcode to code gen func * Implement code gen for concatarray * Add test for concatarray * Use new asm backend * Add comment to C func wrapper
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 3c41adcdc9..ab1394c7ca 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -4380,6 +4380,14 @@ vm_concat_array(VALUE ary1, VALUE ary2st)
return rb_ary_concat(tmp1, tmp2);
}
+// YJIT implementation is using the C function
+// and needs to call a non-static function
+VALUE
+rb_vm_concat_array(VALUE ary1, VALUE ary2st)
+{
+ return vm_concat_array(ary1, ary2st);
+}
+
static VALUE
vm_splat_array(VALUE flag, VALUE ary)
{
@@ -4395,6 +4403,8 @@ vm_splat_array(VALUE flag, VALUE ary)
}
}
+// YJIT implementation is using the C function
+// and needs to call a non-static function
VALUE
rb_vm_splat_array(VALUE flag, VALUE ary)
{