mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-11 15:09:00 +01:00
![comex](/assets/img/avatar_default.png)
When executing a BL-type instruction, push the new LR onto the stack, then CALL the dispatcher or linked block rather than JMPing to it. When executing BLR, compare [rsp+8] to LR, and RET if it's right, which it usually will be unless the thread was switched out. If it's not right, reset RSP to avoid overflow. This both saves a trip through the dispatcher and improves branch prediction. There is a small possibility of stack overflow anyway, which should be handled... *yawn*