summaryrefslogtreecommitdiff
path: root/yjit/src/codegen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'yjit/src/codegen.rs')
-rw-r--r--yjit/src/codegen.rs20
1 files changed, 9 insertions, 11 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index 580595d499..95d29689fb 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -400,21 +400,19 @@ fn verify_ctx(jit: &JITState, ctx: &Context) {
fn gen_code_for_exit_from_stub(ocb: &mut OutlinedCb) -> CodePtr {
let ocb = ocb.unwrap();
let code_ptr = ocb.get_write_ptr();
+ let mut asm = Assembler::new();
- todo!();
-
- /*
gen_counter_incr!(asm, exit_from_branch_stub);
- cpop(ocb, REG_SP);
- cpop(ocb, REG_EC);
- cpop(ocb, REG_CFP);
+ asm.cpop(SP);
+ asm.cpop(EC);
+ asm.cpop(CFP);
+
+ asm.cret(Qundef.into());
- mov(ocb, RAX, uimm_opnd(Qundef.into()));
- ret(ocb);
+ asm.compile(ocb);
- return code_ptr;
- */
+ code_ptr
}
/// Generate an exit to return to the interpreter
@@ -6186,7 +6184,7 @@ impl CodegenGlobals {
let leave_exit_code = gen_leave_exit(&mut ocb);
- //let stub_exit_code = gen_code_for_exit_from_stub(&mut ocb);
+ let stub_exit_code = gen_code_for_exit_from_stub(&mut ocb);
// Generate full exit code for C func
//let cfunc_exit_code = gen_full_cfunc_return(&mut ocb);