A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
Mainly just experimenting so far. There are some better wins to be had, but these are easy. These Opt* instructions will only be generated in the very last pass, and only for the IR interpreter - the IR Jits can do similar things themselves when generating native code and we don't want to have them handle more instructions.
part of #19143
Additionally, moves Downcount to the start of each block, saving us from one switch-dispatch per block execution.
Also adds a new optimization pass to take out some unnecessary loads after stores, seen in some games (likely some bad compiler..).
Overall, this seems to be a 5-7% speed boost. Possibly mostly due to the Downcount change...
Mainly just experimenting so far. There are some better wins to be had, but these are easy. These Opt* instructions will only be generated in the very last pass, and only for the IR interpreter - the IR Jits can do similar things themselves when generating native code and we don't want to have them handle more instructions.
part of #19143
Additionally, moves Downcount to the start of each block, saving us from one switch-dispatch per block execution.
Also adds a new optimization pass to take out some unnecessary loads after stores, seen in some games (likely some bad compiler..).
Overall, this seems to be a 5-7% speed boost. Possibly mostly due to the Downcount change...