HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: //usr/local/rvm/src/ruby-3.0.2/trace_point.rbinc
// -*- c -*-
// DO NOT MODIFY THIS FILE DIRECTLY.
// auto-generated file
//   by ./tool/mk_builtin_loader.rb
//   with trace_point.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 void
mjit_compile_invokebuiltin_for_tracepoint_new_s(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"; /* == tracepoint_new_s */\n", (intptr_t)tracepoint_new_s);
    fprintf(f, "    val = f(ec, self, argv[0]);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_inspect(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_inspect */\n", (intptr_t)tracepoint_inspect);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_stat_s(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_stat_s */\n", (intptr_t)tracepoint_stat_s);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_trace_s(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"; /* == tracepoint_trace_s */\n", (intptr_t)tracepoint_trace_s);
    fprintf(f, "    val = f(ec, self, argv[0]);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_enable_m(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);\n");
    if (index == -1) {
        fprintf(f, "    const VALUE *argv = &stack[%d];\n", stack_size - 3);
    }
    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"; /* == tracepoint_enable_m */\n", (intptr_t)tracepoint_enable_m);
    fprintf(f, "    val = f(ec, self, argv[0], argv[1], argv[2]);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_disable_m(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_disable_m */\n", (intptr_t)tracepoint_disable_m);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_enabled_p(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_enabled_p */\n", (intptr_t)tracepoint_enabled_p);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_event(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_event */\n", (intptr_t)tracepoint_attr_event);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_lineno(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_lineno */\n", (intptr_t)tracepoint_attr_lineno);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_path(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_path */\n", (intptr_t)tracepoint_attr_path);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_parameters(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_parameters */\n", (intptr_t)tracepoint_attr_parameters);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_method_id(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_method_id */\n", (intptr_t)tracepoint_attr_method_id);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_callee_id(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_callee_id */\n", (intptr_t)tracepoint_attr_callee_id);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_defined_class(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_defined_class */\n", (intptr_t)tracepoint_attr_defined_class);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_binding(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_binding */\n", (intptr_t)tracepoint_attr_binding);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_self(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_self */\n", (intptr_t)tracepoint_attr_self);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_return_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);\n");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_return_value */\n", (intptr_t)tracepoint_attr_return_value);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_raised_exception(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_raised_exception */\n", (intptr_t)tracepoint_attr_raised_exception);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_eval_script(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_eval_script */\n", (intptr_t)tracepoint_attr_eval_script);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_tracepoint_attr_instruction_sequence(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");
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == tracepoint_attr_instruction_sequence */\n", (intptr_t)tracepoint_attr_instruction_sequence);
    fprintf(f, "    val = f(ec, self);\n");
}

void Init_builtin_trace_point(void)
{
  // table definition
  static const struct rb_builtin_function trace_point_table[] = {
    RB_BUILTIN_FUNCTION(0, tracepoint_new_s, tracepoint_new_s, 1, mjit_compile_invokebuiltin_for_tracepoint_new_s),
    RB_BUILTIN_FUNCTION(1, tracepoint_inspect, tracepoint_inspect, 0, mjit_compile_invokebuiltin_for_tracepoint_inspect),
    RB_BUILTIN_FUNCTION(2, tracepoint_stat_s, tracepoint_stat_s, 0, mjit_compile_invokebuiltin_for_tracepoint_stat_s),
    RB_BUILTIN_FUNCTION(3, tracepoint_trace_s, tracepoint_trace_s, 1, mjit_compile_invokebuiltin_for_tracepoint_trace_s),
    RB_BUILTIN_FUNCTION(4, tracepoint_enable_m, tracepoint_enable_m, 3, mjit_compile_invokebuiltin_for_tracepoint_enable_m),
    RB_BUILTIN_FUNCTION(5, tracepoint_disable_m, tracepoint_disable_m, 0, mjit_compile_invokebuiltin_for_tracepoint_disable_m),
    RB_BUILTIN_FUNCTION(6, tracepoint_enabled_p, tracepoint_enabled_p, 0, mjit_compile_invokebuiltin_for_tracepoint_enabled_p),
    RB_BUILTIN_FUNCTION(7, tracepoint_attr_event, tracepoint_attr_event, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_event),
    RB_BUILTIN_FUNCTION(8, tracepoint_attr_lineno, tracepoint_attr_lineno, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_lineno),
    RB_BUILTIN_FUNCTION(9, tracepoint_attr_path, tracepoint_attr_path, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_path),
    RB_BUILTIN_FUNCTION(10, tracepoint_attr_parameters, tracepoint_attr_parameters, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_parameters),
    RB_BUILTIN_FUNCTION(11, tracepoint_attr_method_id, tracepoint_attr_method_id, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_method_id),
    RB_BUILTIN_FUNCTION(12, tracepoint_attr_callee_id, tracepoint_attr_callee_id, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_callee_id),
    RB_BUILTIN_FUNCTION(13, tracepoint_attr_defined_class, tracepoint_attr_defined_class, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_defined_class),
    RB_BUILTIN_FUNCTION(14, tracepoint_attr_binding, tracepoint_attr_binding, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_binding),
    RB_BUILTIN_FUNCTION(15, tracepoint_attr_self, tracepoint_attr_self, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_self),
    RB_BUILTIN_FUNCTION(16, tracepoint_attr_return_value, tracepoint_attr_return_value, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_return_value),
    RB_BUILTIN_FUNCTION(17, tracepoint_attr_raised_exception, tracepoint_attr_raised_exception, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_raised_exception),
    RB_BUILTIN_FUNCTION(18, tracepoint_attr_eval_script, tracepoint_attr_eval_script, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_eval_script),
    RB_BUILTIN_FUNCTION(19, tracepoint_attr_instruction_sequence, tracepoint_attr_instruction_sequence, 0, mjit_compile_invokebuiltin_for_tracepoint_attr_instruction_sequence),
    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_arity1(tracepoint_new_s);
  if (0) rb_builtin_function_check_arity0(tracepoint_inspect);
  if (0) rb_builtin_function_check_arity0(tracepoint_stat_s);
  if (0) rb_builtin_function_check_arity1(tracepoint_trace_s);
  if (0) rb_builtin_function_check_arity3(tracepoint_enable_m);
  if (0) rb_builtin_function_check_arity0(tracepoint_disable_m);
  if (0) rb_builtin_function_check_arity0(tracepoint_enabled_p);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_event);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_lineno);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_path);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_parameters);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_method_id);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_callee_id);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_defined_class);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_binding);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_self);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_return_value);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_raised_exception);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_eval_script);
  if (0) rb_builtin_function_check_arity0(tracepoint_attr_instruction_sequence);
COMPILER_WARNING_POP

  // load
  rb_load_with_builtin_functions("trace_point", trace_point_table);
}