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; }