summaryrefslogtreecommitdiff
path: root/lib/mjit
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2022-09-21 08:58:19 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2022-09-21 22:20:35 -0700
commit083b4bb65500376e6c5b9fdf9b7901d5ce4e421a (patch)
treee4763c99ad42b53e44f50912babd90639383b6ad /lib/mjit
parent9058ba218c382744a737d47e2f9c8c0055386dc8 (diff)
add rb_control_frame_t
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/6417
Diffstat (limited to 'lib/mjit')
-rw-r--r--lib/mjit/c_32.rb14
-rw-r--r--lib/mjit/c_64.rb14
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/mjit/c_32.rb b/lib/mjit/c_32.rb
index a369a3e852..e966cc2919 100644
--- a/lib/mjit/c_32.rb
+++ b/lib/mjit/c_32.rb
@@ -191,6 +191,20 @@ module RubyVM::MJIT
)
end
+ def C.rb_control_frame_t
+ @rb_control_frame_t ||= CType::Struct.new(
+ "rb_control_frame_struct", 32,
+ pc: [0, CType::Pointer.new { self.VALUE }],
+ sp: [32, CType::Pointer.new { self.VALUE }],
+ iseq: [64, CType::Pointer.new { self.rb_iseq_t }],
+ self: [96, self.VALUE],
+ ep: [128, CType::Pointer.new { self.VALUE }],
+ block_code: [160, CType::Pointer.new { CType::Immediate.new(0) }],
+ __bp__: [192, CType::Pointer.new { self.VALUE }],
+ jit_return: [224, CType::Pointer.new { CType::Immediate.new(0) }],
+ )
+ end
+
def C.rb_cref_t
@rb_cref_t ||= CType::Struct.new(
"rb_cref_struct", 20,
diff --git a/lib/mjit/c_64.rb b/lib/mjit/c_64.rb
index e3989a12e2..ad2cfa74c6 100644
--- a/lib/mjit/c_64.rb
+++ b/lib/mjit/c_64.rb
@@ -191,6 +191,20 @@ module RubyVM::MJIT
)
end
+ def C.rb_control_frame_t
+ @rb_control_frame_t ||= CType::Struct.new(
+ "rb_control_frame_struct", 64,
+ pc: [0, CType::Pointer.new { self.VALUE }],
+ sp: [64, CType::Pointer.new { self.VALUE }],
+ iseq: [128, CType::Pointer.new { self.rb_iseq_t }],
+ self: [192, self.VALUE],
+ ep: [256, CType::Pointer.new { self.VALUE }],
+ block_code: [320, CType::Pointer.new { CType::Immediate.new(0) }],
+ __bp__: [384, CType::Pointer.new { self.VALUE }],
+ jit_return: [448, CType::Pointer.new { CType::Immediate.new(0) }],
+ )
+ end
+
def C.rb_cref_t
@rb_cref_t ||= CType::Struct.new(
"rb_cref_struct", 40,