public static void trampoline(Procedure p, int argc) { Reg.Register0 = p; Reg.Result = Factory.makeFixnum(argc); CodeAddress pc = p.InitialCodeAddress; bool pending = true; while (pending) { pending = false; try { do { pc = pc.code.call(pc.label); } while (pc != null); } catch (BounceException bcve) { bcve.prepareForBounce(); pc = bcve.target; pending = true; } } }
public BounceException (CodeAddress pc) { this.target = pc; }
public BounceException(CodeAddress pc) { this.target = pc; }