Example #1
0
        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;
                }
            }
        }
Example #2
0
 public BounceException (CodeAddress pc)
 {
   this.target = pc;
 }
Example #3
0
 public BounceException(CodeAddress pc)
 {
     this.target = pc;
 }