PCSX2 Documentation/PCSX2 EE Recompiler: Difference between revisions
PCSX2 Documentation/PCSX2 EE Recompiler (view source)
Revision as of 09:47, 5 November 2015
, 5 November 2015→Code Generation
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 | ||
=== Compilation === | === Compilation === |