From 9f8e914943f812a5036d92648386169079daf51b Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Sat, 18 Mar 2023 21:14:35 -0700 Subject: RJIT: Implement checkkeyword --- rjit_c.rb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'rjit_c.rb') diff --git a/rjit_c.rb b/rjit_c.rb index 677e294ddb..32731ba4d0 100644 --- a/rjit_c.rb +++ b/rjit_c.rb @@ -1001,6 +1001,18 @@ module RubyVM::RJIT # :nodoc: all ) end + def C.rb_iseq_param_keyword + @rb_iseq_param_keyword ||= CType::Struct.new( + "rb_iseq_param_keyword", Primitive.cexpr!("SIZEOF(struct rb_iseq_param_keyword)"), + num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), num)")], + required_num: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), required_num)")], + bits_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), bits_start)")], + rest_start: [CType::Immediate.parse("int"), Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), rest_start)")], + table: [CType::Pointer.new { self.ID }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), table)")], + default_values: [CType::Pointer.new { self.VALUE }, Primitive.cexpr!("OFFSETOF((*((struct rb_iseq_param_keyword *)NULL)), default_values)")], + ) + end + def C.rb_iseq_struct @rb_iseq_struct ||= CType::Struct.new( "rb_iseq_struct", Primitive.cexpr!("SIZEOF(struct rb_iseq_struct)"), @@ -1354,10 +1366,6 @@ module RubyVM::RJIT # :nodoc: all CType::Stub.new(:rb_iseq_type) end - def C.rb_iseq_param_keyword - CType::Stub.new(:rb_iseq_param_keyword) - end - def C.iseq_insn_info CType::Stub.new(:iseq_insn_info) end -- cgit v1.2.1