summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zjit/src/ir.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/zjit/src/ir.rs b/zjit/src/ir.rs
index 170866bbba..27fbedc181 100644
--- a/zjit/src/ir.rs
+++ b/zjit/src/ir.rs
@@ -209,6 +209,12 @@ pub fn iseq_to_ssa(iseq: *const rb_iseq_t) {
}
YARVINSN_pop => { state.pop(); }
YARVINSN_dup => { state.push(state.top()); }
+ YARVINSN_swap => {
+ let right = state.pop();
+ let left = state.pop();
+ state.push(right);
+ state.push(left);
+ }
YARVINSN_leave => {
result.push_insn(block, Insn::Return { val: state.pop() });
}