feat: stash

This commit is contained in:
2025-05-10 16:29:55 +08:00
parent 14045f7924
commit f86c088e97
21 changed files with 222 additions and 219 deletions

5
src/jit/codegen.rs Normal file
View File

@@ -0,0 +1,5 @@
use super::JITContext;
pub trait CodeGen {
fn codegen(self, ctx: JITContext);
}

View File

@@ -1,21 +1,27 @@
use inkwell::OptimizationLevel;
use inkwell::builder::Builder;
use inkwell::context::Context;
use inkwell::module::Module;
use inkwell::OptimizationLevel;
use inkwell::execution_engine::ExecutionEngine;
use inkwell::module::Module;
pub struct JIT<'ctx> {
mod codegen;
pub use codegen::CodeGen;
pub struct JITContext<'ctx> {
context: &'ctx Context,
module: Module<'ctx>,
builder: Builder<'ctx>,
builder: Builder<'ctx>,
execution_engine: ExecutionEngine<'ctx>,
}
impl<'ctx> JIT<'ctx> {
pub fn new(context: &Context) -> JIT {
impl<'ctx> JITContext<'ctx> {
pub fn new(context: &Context) -> JITContext {
let module = context.create_module("nixjit");
JIT {
execution_engine: module.create_jit_execution_engine(OptimizationLevel::None).unwrap(),
JITContext {
execution_engine: module
.create_jit_execution_engine(OptimizationLevel::None)
.unwrap(),
builder: context.create_builder(),
context,
module,