diff options
Diffstat (limited to 'zjit/src/ir.rs')
-rw-r--r-- | zjit/src/ir.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/zjit/src/ir.rs b/zjit/src/ir.rs index 278a1767b7..ea5647e8af 100644 --- a/zjit/src/ir.rs +++ b/zjit/src/ir.rs @@ -158,7 +158,7 @@ fn to_ssa(opcodes: &Vec<RubyOpcode>) -> Function { result } -fn iseq_to_ssa(iseq: *const rb_iseq_t) -> Function { +pub fn iseq_to_ssa(iseq: *const rb_iseq_t) { let mut result = Function::new(); let mut state = FrameState::new(); let block = result.entry_block; @@ -206,13 +206,14 @@ fn iseq_to_ssa(iseq: *const rb_iseq_t) -> Function { YARVINSN_leave => { result.push_insn(block, Insn::Return { val: state.pop() }); } - _ => todo!(), + _ => eprintln!("zjit: unknown opcode {opcode}"), } // Move to the next instruction to compile insn_idx += insn_len(opcode as usize); } - return result; + dbg!(result); + return; fn get_arg(pc: *const VALUE, arg_idx: isize) -> VALUE { unsafe { *(pc.offset(arg_idx + 1)) } |