PCSX2 Documentation/PCSX2 EE Recompiler: Difference between revisions

Jump to navigation Jump to search
Line 153: Line 153:
* Generated by '''_DynGen_EnterRecompiledCode'''
* Generated by '''_DynGen_EnterRecompiledCode'''
* High-Level Description
* High-Level Description
 
# Setup the base frame pointer
1/ Setup the base frame pointer 2/ Align the stack pointer 3/ Save edi/esi/ebx on the stack 4/ Simulate a function call? (potentially to help debugger to unwind the stack) 5/ Simulate the stack frame preparation "push ebp, mov ebp, esp" 6/ Save esp, ebp into static variable (for debug check). Code can surely be removed. 7/ Jump to DispatcherReg 8/ Handle the return of DispatcherReg (Leave and restore edi/esi/ebx) 9/ Handle the return of current function (leave and ret)  
# Align the stack pointer
# Save edi/esi/ebx on the stack
# Simulate a function call by pushing the call address and EBP onto the stack
# Simulate the stack frame preparation ("push ebp, mov ebp, esp")
# Execute DispatcherReg
# Handle the return of DispatcherReg call ("leave")
# Restore edi/esi/ebx
# Destroy the stack ("leave")
# Return to C++ world ("ret")


==== DispatchBlockDiscard ====
==== DispatchBlockDiscard ====
ninja
56

edits

Navigation menu