summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Bernstein <max.bernstein@shopify.com>2025-02-07 10:36:07 -0500
committerTakashi Kokubun <takashikkbn@gmail.com>2025-04-18 21:52:57 +0900
commite60f84af0bb32686617c5be1c69dba555201d1bb (patch)
tree4d610758486daa223c59dc332102e39064503a21
parentd0ee9bcd70db5fd5a59ce9ea2cd284990ab5f1fa (diff)
Add putself
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13131
-rw-r--r--zjit/src/ir.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/zjit/src/ir.rs b/zjit/src/ir.rs
index b891a7713f..b221ec728e 100644
--- a/zjit/src/ir.rs
+++ b/zjit/src/ir.rs
@@ -75,6 +75,7 @@ pub struct CallInfo {
#[derive(Debug)]
pub enum Insn {
// SSA block parameter. Also used for function parameters in the function's entry block.
+ PutSelf,
Param { idx: usize },
StringCopy { val: Opnd },
@@ -346,6 +347,7 @@ pub fn iseq_to_ssa(iseq: *const rb_iseq_t) -> Function {
let insn_id = fun.push_insn(block, Insn::StringCopy { val });
state.push(Opnd::Insn(insn_id));
}
+ YARVINSN_putself => { state.push(Opnd::Insn(fun.push_insn(block, Insn::PutSelf))); }
YARVINSN_intern => {
let val = state.pop();
let insn_id = fun.push_insn(block, Insn::StringIntern { val });