Repository navigation
[ARM64_DYNAREC] Don't skip dirty preloaded regs on loopback - #4626
Conversation
|
Mmmm, the idea of preload was to load the regs before the loop, so the read is done only one time. I don't understand why this should be needed? or is it for another jump and not the main loop? |
|
We have to store the dirty preloaded registers back so they stay clean at the loop head -- in case there is a call_c inside the loop; the stale values of an xmm register can be restored from stale memory. Another (maybe better?) way to do this is to have the host_call mark and skip loops with hostcalls. This is how LoongArch handles this, IIRC. |
Not ideal, but better yes. |
|
I can try. |
|
This might help #4065 also. |
Registers updated inside a loop should be written back to xEmu when dirty, so the next iteration will see the correct values.