Skip to main content

zkvmc_jit/
lib.rs

1mod cache;
2use std::ptr::NonNull;
3
4pub use cache::JitCache;
5use zkvmc_context::Context;
6
7pub fn run(ctx: &mut Context) -> u32 {
8    let mut func = ctx.trampoline;
9    let ctx_ptr = NonNull::from(ctx);
10    loop {
11        func = func(ctx_ptr).0;
12        if let Some(code) = unsafe { ctx_ptr.as_ref().exit_code } {
13            return code;
14        }
15    }
16}