PCSX2 Documentation/PCSX2 EE Recompiler: Difference between revisions

Line 118: Line 118:
# Wrapper to call a C++ function from the recompiler
# Wrapper to call a C++ function from the recompiler
# Add some glues between recompiler block
# Add some glues between recompiler block
Note: '''"ExitRecompiledCode"''' is the exit address/label of the recompiler.
==== EventTest ====
* xCALL( recEventTest ) (TODO clean the code to add a function)
* High-Level Description


==== DispatcherReg ====
==== DispatcherReg ====
Line 145: Line 152:


* Generated by '''_DynGen_EnterRecompiledCode'''
* Generated by '''_DynGen_EnterRecompiledCode'''
* High-Level Description
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)


==== DispatchBlockDiscard ====
==== DispatchBlockDiscard ====
Line 159: Line 169:
# Execute '''"dyna_page_reset"'''
# Execute '''"dyna_page_reset"'''
# Exit the recompiler
# Exit the recompiler
==== _DynGen_DispatcherReg ====
* Generated by  '''_DynGen_DispatcherReg'''
==== EventTest ====
* xCALL( recEventTest ) (TODO clean the code to add a function)


=== Compilation ===
=== Compilation ===
ninja
56

edits