示例#1
0
 public void PushStackFrame(StackValue svThisPtr, int classIndex, int funcIndex, int pc, int functionBlockDecl, int functionBlockCaller, StackFrameType callerType, StackFrameType type, int depth, int fp, List <StackValue> registers, int locsize, int executionStates)
 {
     // TODO Jun: Performance
     // Push frame should only require adjusting the frame index instead of pushing dummy elements
     PushFrame(locsize);
     Push(StackValue.BuildInt(fp));
     PushRegisters(registers);
     Push(StackValue.BuildInt(executionStates));
     Push(StackValue.BuildInt(0));
     Push(StackValue.BuildInt(depth));
     Push(StackValue.BuildFrameType((int)type));
     Push(StackValue.BuildFrameType((int)callerType));
     Push(StackValue.BuildBlockIndex(functionBlockCaller));
     Push(StackValue.BuildBlockIndex(functionBlockDecl));
     Push(StackValue.BuildInt(pc));
     Push(StackValue.BuildInt(funcIndex));
     Push(StackValue.BuildInt(classIndex));
     Push(svThisPtr);
     FramePointer = Stack.Count;
 }