File: //usr/local/rvm/src/ruby-3.0.2/ractor.rbinc
// -*- c -*-
// DO NOT MODIFY THIS FILE DIRECTLY.
// auto-generated file
// by ./tool/mk_builtin_loader.rb
// with ractor.rb
#include "internal/compilers.h" /* for MAYBE_UNUSED */
#include "internal/warnings.h" /* for COMPILER_WARNING_PUSH */
#include "ruby/ruby.h" /* for VALUE */
#include "builtin.h" /* for RB_BUILTIN_FUNCTION */
struct rb_execution_context_struct; /* in vm_core.h */
static VALUE builtin_inline_class_274(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 274 "ractor.rb"
return
rb_ractor_self(rb_ec_ractor_ptr(ec));;
#line 18 "ractor.rbinc"
}
static VALUE builtin_inline_class_288(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 288 "ractor.rb"
return
ULONG2NUM(GET_VM()->ractor.cnt);;
#line 26 "ractor.rbinc"
}
static VALUE builtin_inline_class_345(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) yield_unspecified = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) yield_value = rb_vm_lvar(ec, -6);
MAYBE_UNUSED(const VALUE) ractors = rb_vm_lvar(ec, -7);
#line 345 "ractor.rb"
const VALUE *rs = RARRAY_CONST_PTR_TRANSIENT(ractors);
VALUE rv;
VALUE v = ractor_select(ec, rs, RARRAY_LENINT(ractors),
yield_unspecified == Qtrue ? Qundef : yield_value,
(bool)RTEST(move) ? true : false, &rv);
return rb_ary_new_from_args(2, rv, v);
#line 43 "ractor.rbinc"
}
static VALUE builtin_inline_class_416(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 416 "ractor.rb"
return
ractor_receive(ec, rb_ec_ractor_ptr(ec));
#line 51 "ractor.rbinc"
}
static VALUE builtin_inline_class_427(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 427 "ractor.rb"
return
ractor_receive(ec, rb_ec_ractor_ptr(ec));
#line 59 "ractor.rbinc"
}
static VALUE builtin_inline_class_583(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 583 "ractor.rb"
return
ractor_send(ec, RACTOR_PTR(self), obj, move);
#line 69 "ractor.rbinc"
}
static VALUE builtin_inline_class_627(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 627 "ractor.rb"
return
ractor_yield(ec, rb_ec_ractor_ptr(ec), obj, move);
#line 79 "ractor.rbinc"
}
static VALUE builtin_inline_class_694(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 694 "ractor.rb"
return
ractor_take(ec, RACTOR_PTR(self));
#line 87 "ractor.rbinc"
}
static VALUE builtin_inline_class_700(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 700 "ractor.rb"
return RACTOR_PTR(self)->loc;
#line 98 "ractor.rbinc"
}
static VALUE builtin_inline_class_701(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 701 "ractor.rb"
return RACTOR_PTR(self)->name;
#line 109 "ractor.rbinc"
}
static VALUE builtin_inline_class_702(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 702 "ractor.rb"
return INT2FIX(rb_ractor_id(RACTOR_PTR(self)));
#line 120 "ractor.rbinc"
}
static VALUE builtin_inline_class_703(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 703 "ractor.rb"
return
rb_str_new2(ractor_status_str(RACTOR_PTR(self)->status_));
#line 132 "ractor.rbinc"
}
static VALUE builtin_inline_class_713(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 713 "ractor.rb"
return RACTOR_PTR(self)->name;
#line 139 "ractor.rbinc"
}
static VALUE builtin_inline_class_734(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 734 "ractor.rb"
return
ractor_close_incoming(ec, RACTOR_PTR(self));;
#line 147 "ractor.rbinc"
}
static VALUE builtin_inline_class_753(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 753 "ractor.rb"
return
ractor_close_outgoing(ec, RACTOR_PTR(self));;
#line 155 "ractor.rbinc"
}
static VALUE builtin_inline_class_770(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -3);
#line 770 "ractor.rb"
return
rb_ractor_shareable_p(obj) ? Qtrue : Qfalse;;
#line 164 "ractor.rbinc"
}
static VALUE builtin_inline_class_812(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 812 "ractor.rb"
return
rb_ractor_make_shareable_copy(obj);;
#line 174 "ractor.rbinc"
}
static VALUE builtin_inline_class_816(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 816 "ractor.rb"
return
rb_ractor_make_shareable(obj);;
#line 184 "ractor.rbinc"
}
static VALUE builtin_inline_class_834(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 834 "ractor.rb"
return
rb_ractor_self(GET_VM()->ractor.main_ractor);;
#line 192 "ractor.rbinc"
}
static void
mjit_compile_invokebuiltin_for_ractor_create(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE, VALUE, VALUE, VALUE);\n");
if (index == -1) {
fprintf(f, " const VALUE *argv = &stack[%d];\n", stack_size - 4);
}
else {
fprintf(f, " const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
fprintf(f, " const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == ractor_create */\n", (intptr_t)ractor_create);
fprintf(f, " val = f(ec, self, argv[0], argv[1], argv[2], argv[3]);\n");
}
static void
mjit_compile_invokebuiltin_for__bi0(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 274 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " rb_ractor_self(rb_ec_ractor_ptr(ec));;\n");
fprintf(f, "%s", "#line 199 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_274 */\n", (intptr_t)builtin_inline_class_274);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi1(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 288 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ULONG2NUM(GET_VM()->ractor.cnt);;\n");
fprintf(f, "%s", "#line 206 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_288 */\n", (intptr_t)builtin_inline_class_288);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi2(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) yield_unspecified = rb_vm_lvar(ec, -3);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) yield_value = rb_vm_lvar(ec, -6);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) ractors = rb_vm_lvar(ec, -7);\n");
fprintf(f, "%s", "#line 345 \"ractor.rb\"\n");
fprintf(f, "%s", " \n");
fprintf(f, "%s", " const VALUE *rs = RARRAY_CONST_PTR_TRANSIENT(ractors);\n");
fprintf(f, "%s", " VALUE rv;\n");
fprintf(f, "%s", " VALUE v = ractor_select(ec, rs, RARRAY_LENINT(ractors),\n");
fprintf(f, "%s", " yield_unspecified == Qtrue ? Qundef : yield_value,\n");
fprintf(f, "%s", " (bool)RTEST(move) ? true : false, &rv);\n");
fprintf(f, "%s", " return rb_ary_new_from_args(2, rv, v);\n");
fprintf(f, "%s", "#line 222 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_345 */\n", (intptr_t)builtin_inline_class_345);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi3(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 416 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_receive(ec, rb_ec_ractor_ptr(ec));\n");
fprintf(f, "%s", "#line 229 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_416 */\n", (intptr_t)builtin_inline_class_416);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi4(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 427 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_receive(ec, rb_ec_ractor_ptr(ec));\n");
fprintf(f, "%s", "#line 236 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_427 */\n", (intptr_t)builtin_inline_class_427);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for_ractor_receive_if(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE);\n");
if (index == -1) {
fprintf(f, " const VALUE *argv = &stack[%d];\n", stack_size - 1);
}
else {
fprintf(f, " const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
fprintf(f, " const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == ractor_receive_if */\n", (intptr_t)ractor_receive_if);
fprintf(f, " val = f(ec, self, argv[0]);\n");
}
static void
mjit_compile_invokebuiltin_for__bi5(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", "#line 583 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_send(ec, RACTOR_PTR(self), obj, move);\n");
fprintf(f, "%s", "#line 245 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_583 */\n", (intptr_t)builtin_inline_class_583);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi6(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", "#line 627 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_yield(ec, rb_ec_ractor_ptr(ec), obj, move);\n");
fprintf(f, "%s", "#line 254 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_627 */\n", (intptr_t)builtin_inline_class_627);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi7(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 694 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_take(ec, RACTOR_PTR(self));\n");
fprintf(f, "%s", "#line 261 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_694 */\n", (intptr_t)builtin_inline_class_694);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi8(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
fprintf(f, "%s", "#line 700 \"ractor.rb\"\n");
fprintf(f, "%s", " return RACTOR_PTR(self)->loc;\n");
fprintf(f, "%s", "#line 271 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_700 */\n", (intptr_t)builtin_inline_class_700);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi9(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
fprintf(f, "%s", "#line 701 \"ractor.rb\"\n");
fprintf(f, "%s", " return RACTOR_PTR(self)->name;\n");
fprintf(f, "%s", "#line 281 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_701 */\n", (intptr_t)builtin_inline_class_701);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi10(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
fprintf(f, "%s", "#line 702 \"ractor.rb\"\n");
fprintf(f, "%s", " return INT2FIX(rb_ractor_id(RACTOR_PTR(self)));\n");
fprintf(f, "%s", "#line 291 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_702 */\n", (intptr_t)builtin_inline_class_702);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi11(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
fprintf(f, "%s", "#line 703 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " rb_str_new2(ractor_status_str(RACTOR_PTR(self)->status_));\n");
fprintf(f, "%s", "#line 302 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_703 */\n", (intptr_t)builtin_inline_class_703);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi12(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 713 \"ractor.rb\"\n");
fprintf(f, "%s", " return RACTOR_PTR(self)->name;\n");
fprintf(f, "%s", "#line 308 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_713 */\n", (intptr_t)builtin_inline_class_713);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi13(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 734 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_close_incoming(ec, RACTOR_PTR(self));;\n");
fprintf(f, "%s", "#line 315 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_734 */\n", (intptr_t)builtin_inline_class_734);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi14(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 753 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " ractor_close_outgoing(ec, RACTOR_PTR(self));;\n");
fprintf(f, "%s", "#line 322 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_753 */\n", (intptr_t)builtin_inline_class_753);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi15(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -3);\n");
fprintf(f, "%s", "#line 770 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " rb_ractor_shareable_p(obj) ? Qtrue : Qfalse;;\n");
fprintf(f, "%s", "#line 330 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_770 */\n", (intptr_t)builtin_inline_class_770);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi16(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", "#line 812 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " rb_ractor_make_shareable_copy(obj);;\n");
fprintf(f, "%s", "#line 339 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_812 */\n", (intptr_t)builtin_inline_class_812);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for__bi17(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);\n");
fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
fprintf(f, "%s", "#line 816 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " rb_ractor_make_shareable(obj);;\n");
fprintf(f, "%s", "#line 348 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_816 */\n", (intptr_t)builtin_inline_class_816);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for_ractor_local_value(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE);\n");
if (index == -1) {
fprintf(f, " const VALUE *argv = &stack[%d];\n", stack_size - 1);
}
else {
fprintf(f, " const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
fprintf(f, " const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == ractor_local_value */\n", (intptr_t)ractor_local_value);
fprintf(f, " val = f(ec, self, argv[0]);\n");
}
static void
mjit_compile_invokebuiltin_for_ractor_local_value_set(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE, VALUE);\n");
if (index == -1) {
fprintf(f, " const VALUE *argv = &stack[%d];\n", stack_size - 2);
}
else {
fprintf(f, " const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
fprintf(f, " const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == ractor_local_value_set */\n", (intptr_t)ractor_local_value_set);
fprintf(f, " val = f(ec, self, argv[0], argv[1]);\n");
}
static void
mjit_compile_invokebuiltin_for__bi18(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
fprintf(f, " VALUE self = GET_SELF();\n");
fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
if (inlinable_p) {
fprintf(f, "%s", " {\n");
fprintf(f, "%s", "#line 834 \"ractor.rb\"\n");
fprintf(f, "%s", " return \n");
fprintf(f, "%s", " rb_ractor_self(GET_VM()->ractor.main_ractor);;\n");
fprintf(f, "%s", "#line 355 \"ractor.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIdPTR"; /* == builtin_inline_class_834 */\n", (intptr_t)builtin_inline_class_834);
fprintf(f, " val = f(ec, self);\n");
}
void Init_builtin_ractor(void)
{
// table definition
static const struct rb_builtin_function ractor_table[] = {
RB_BUILTIN_FUNCTION(0, ractor_create, ractor_create, 4, mjit_compile_invokebuiltin_for_ractor_create),
RB_BUILTIN_FUNCTION(1, _bi0, builtin_inline_class_274, 0, mjit_compile_invokebuiltin_for__bi0),
RB_BUILTIN_FUNCTION(2, _bi1, builtin_inline_class_288, 0, mjit_compile_invokebuiltin_for__bi1),
RB_BUILTIN_FUNCTION(3, _bi2, builtin_inline_class_345, 0, mjit_compile_invokebuiltin_for__bi2),
RB_BUILTIN_FUNCTION(4, _bi3, builtin_inline_class_416, 0, mjit_compile_invokebuiltin_for__bi3),
RB_BUILTIN_FUNCTION(5, _bi4, builtin_inline_class_427, 0, mjit_compile_invokebuiltin_for__bi4),
RB_BUILTIN_FUNCTION(6, ractor_receive_if, ractor_receive_if, 1, mjit_compile_invokebuiltin_for_ractor_receive_if),
RB_BUILTIN_FUNCTION(7, _bi5, builtin_inline_class_583, 0, mjit_compile_invokebuiltin_for__bi5),
RB_BUILTIN_FUNCTION(8, _bi6, builtin_inline_class_627, 0, mjit_compile_invokebuiltin_for__bi6),
RB_BUILTIN_FUNCTION(9, _bi7, builtin_inline_class_694, 0, mjit_compile_invokebuiltin_for__bi7),
RB_BUILTIN_FUNCTION(10, _bi8, builtin_inline_class_700, 0, mjit_compile_invokebuiltin_for__bi8),
RB_BUILTIN_FUNCTION(11, _bi9, builtin_inline_class_701, 0, mjit_compile_invokebuiltin_for__bi9),
RB_BUILTIN_FUNCTION(12, _bi10, builtin_inline_class_702, 0, mjit_compile_invokebuiltin_for__bi10),
RB_BUILTIN_FUNCTION(13, _bi11, builtin_inline_class_703, 0, mjit_compile_invokebuiltin_for__bi11),
RB_BUILTIN_FUNCTION(14, _bi12, builtin_inline_class_713, 0, mjit_compile_invokebuiltin_for__bi12),
RB_BUILTIN_FUNCTION(15, _bi13, builtin_inline_class_734, 0, mjit_compile_invokebuiltin_for__bi13),
RB_BUILTIN_FUNCTION(16, _bi14, builtin_inline_class_753, 0, mjit_compile_invokebuiltin_for__bi14),
RB_BUILTIN_FUNCTION(17, _bi15, builtin_inline_class_770, 0, mjit_compile_invokebuiltin_for__bi15),
RB_BUILTIN_FUNCTION(18, _bi16, builtin_inline_class_812, 0, mjit_compile_invokebuiltin_for__bi16),
RB_BUILTIN_FUNCTION(19, _bi17, builtin_inline_class_816, 0, mjit_compile_invokebuiltin_for__bi17),
RB_BUILTIN_FUNCTION(20, ractor_local_value, ractor_local_value, 1, mjit_compile_invokebuiltin_for_ractor_local_value),
RB_BUILTIN_FUNCTION(21, ractor_local_value_set, ractor_local_value_set, 2, mjit_compile_invokebuiltin_for_ractor_local_value_set),
RB_BUILTIN_FUNCTION(22, _bi18, builtin_inline_class_834, 0, mjit_compile_invokebuiltin_for__bi18),
RB_BUILTIN_FUNCTION(-1, NULL, NULL, 0, 0),
};
// arity_check
COMPILER_WARNING_PUSH
#if GCC_VERSION_SINCE(5, 1, 0) || __clang__
COMPILER_WARNING_ERROR(-Wincompatible-pointer-types)
#endif
if (0) rb_builtin_function_check_arity4(ractor_create);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_274);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_288);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_345);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_416);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_427);
if (0) rb_builtin_function_check_arity1(ractor_receive_if);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_583);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_627);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_694);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_700);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_701);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_702);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_703);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_713);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_734);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_753);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_770);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_812);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_816);
if (0) rb_builtin_function_check_arity1(ractor_local_value);
if (0) rb_builtin_function_check_arity2(ractor_local_value_set);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_834);
COMPILER_WARNING_POP
// load
rb_load_with_builtin_functions("ractor", ractor_table);
}