pub fn compile_straightline_pinned(
ops: &[MicroOp],
pins: &[u16],
) -> Result<CompiledChain, JitCompileError>Expand description
REGISTER-THREADING compilation (EXODIA 3.1): up to four frame slots are PINNED into the threaded registers r0..r3 for the whole chain. Pinned operands ride registers through the generated location-variant stencils; ops outside the variant families (Div, arrays, calls, …) spill the pinned operands they read and reload the pinned slots they write, so every memory-form piece still sees a coherent frame.
Frame-coherence contract: a pinned slot’s FRAME cell is stale between its spills — callers must only use pinning where nothing outside the chain reads the frame mid-run (mode-A functions: replay re-enters from the boundary arguments and the result returns by register).