1pub(super) use super::trace::InlineTrace;
2pub(super) use super::trace::ValueType;
3pub(super) use super::{CompiledTrace, Guard, GuardKind, Trace, TraceId, TraceOp};
4pub(super) use crate::bytecode::{Function, Value, ValueTag};
5pub(super) use crate::jit;
6pub(super) use crate::Result;
7pub(super) use alloc::vec::Vec;
8pub(super) use core::mem;
9pub(super) use dynasmrt::{dynasm, x64::Assembler, DynasmApi, DynasmLabelApi};
10mod arithmetic;
11mod builder;
12mod comparisons;
13mod guards;
14mod logic;
15mod memory;
16mod registers;
17pub struct JitCompiler {
18 pub(super) ops: Assembler,
19 pub(super) leaked_constants: Vec<*const Value>,
20 fail_stack: Vec<dynasmrt::DynamicLabel>,
21 exit_stack: Vec<dynasmrt::DynamicLabel>,
22 inline_depth: usize,
23}
24
25impl Default for JitCompiler {
26 fn default() -> Self {
27 Self::new()
28 }
29}