1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
|
// -*- c -*-
// DO NOT MODIFY THIS FILE DIRECTLY.
// auto-generated file
// by ./tool/mk_builtin_loader.rb
// with kernel.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_20(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 20 "kernel.rb"
return rb_obj_class(self);
#line 17 "kernel.rbinc"
}
static VALUE builtin_inline_class_69(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 69 "kernel.rb"
return rb_obj_frozen_p(self);
#line 24 "kernel.rbinc"
}
static VALUE builtin_inline_class_122(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 122 "kernel.rb"
return SIZED_ENUMERATOR(self, 0, 0, rb_obj_size);
#line 31 "kernel.rbinc"
}
static VALUE builtin_inline_class_146(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 146 "kernel.rb"
return SIZED_ENUMERATOR(self, 0, 0, rb_obj_size);
#line 38 "kernel.rbinc"
}
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 20 \"kernel.rb\"\n");
fprintf(f, "%s", " return rb_obj_class(self);\n");
fprintf(f, "%s", "#line 44 \"kernel.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_20 */\n", (VALUE)builtin_inline_class_20);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for_rb_obj_clone2(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)%"PRIuVALUE"; /* == rb_obj_clone2 */\n", (VALUE)rb_obj_clone2);
fprintf(f, " val = f(ec, self, argv[0]);\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 69 \"kernel.rb\"\n");
fprintf(f, "%s", " return rb_obj_frozen_p(self);\n");
fprintf(f, "%s", "#line 50 \"kernel.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_69 */\n", (VALUE)builtin_inline_class_69);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for_block_given_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)%"PRIuVALUE"; /* == block_given_p */\n", (VALUE)block_given_p);
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", "#line 122 \"kernel.rb\"\n");
fprintf(f, "%s", " return SIZED_ENUMERATOR(self, 0, 0, rb_obj_size);\n");
fprintf(f, "%s", "#line 56 \"kernel.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_122 */\n", (VALUE)builtin_inline_class_122);
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 146 \"kernel.rb\"\n");
fprintf(f, "%s", " return SIZED_ENUMERATOR(self, 0, 0, rb_obj_size);\n");
fprintf(f, "%s", "#line 62 \"kernel.rbinc\"\n");
fprintf(f, "%s", " }\n");
fprintf(f, "%s", " \n");
return;
}
fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_146 */\n", (VALUE)builtin_inline_class_146);
fprintf(f, " val = f(ec, self);\n");
}
static void
mjit_compile_invokebuiltin_for_rb_f_float1(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)%"PRIuVALUE"; /* == rb_f_float1 */\n", (VALUE)rb_f_float1);
fprintf(f, " val = f(ec, self, argv[0]);\n");
}
static void
mjit_compile_invokebuiltin_for_rb_f_float(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)%"PRIuVALUE"; /* == rb_f_float */\n", (VALUE)rb_f_float);
fprintf(f, " val = f(ec, self, argv[0], argv[1]);\n");
}
void Init_builtin_kernel(void)
{
// table definition
static const struct rb_builtin_function kernel_table[] = {
RB_BUILTIN_FUNCTION(0, _bi0, builtin_inline_class_20, 0, mjit_compile_invokebuiltin_for__bi0),
RB_BUILTIN_FUNCTION(1, rb_obj_clone2, rb_obj_clone2, 1, mjit_compile_invokebuiltin_for_rb_obj_clone2),
RB_BUILTIN_FUNCTION(2, _bi1, builtin_inline_class_69, 0, mjit_compile_invokebuiltin_for__bi1),
RB_BUILTIN_FUNCTION(3, block_given_p, block_given_p, 0, mjit_compile_invokebuiltin_for_block_given_p),
RB_BUILTIN_FUNCTION(4, _bi2, builtin_inline_class_122, 0, mjit_compile_invokebuiltin_for__bi2),
RB_BUILTIN_FUNCTION(5, _bi3, builtin_inline_class_146, 0, mjit_compile_invokebuiltin_for__bi3),
RB_BUILTIN_FUNCTION(6, rb_f_float1, rb_f_float1, 1, mjit_compile_invokebuiltin_for_rb_f_float1),
RB_BUILTIN_FUNCTION(7, rb_f_float, rb_f_float, 2, mjit_compile_invokebuiltin_for_rb_f_float),
RB_BUILTIN_FUNCTION(-1, NULL, NULL, 0, 0),
};
// arity_check
COMPILER_WARNING_PUSH
#if GCC_VERSION_SINCE(5, 1, 0) || defined __clang__
COMPILER_WARNING_ERROR(-Wincompatible-pointer-types)
#endif
if (0) rb_builtin_function_check_arity0(builtin_inline_class_20);
if (0) rb_builtin_function_check_arity1(rb_obj_clone2);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_69);
if (0) rb_builtin_function_check_arity0(block_given_p);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_122);
if (0) rb_builtin_function_check_arity0(builtin_inline_class_146);
if (0) rb_builtin_function_check_arity1(rb_f_float1);
if (0) rb_builtin_function_check_arity2(rb_f_float);
COMPILER_WARNING_POP
// load
rb_load_with_builtin_functions("kernel", kernel_table);
}
|