Emulated cache flush throws away the whole buffer
E-UAE Amiga emulation PowerPC JIT compiling implementation
Brought to you by:
racsdragon
When the emulation calls the newcpu.c/flush_icache() function then it falls back to the flush_icache_hard() function and throws away the whole compiled code buffer.
In the x86 implementation the checksums for the blocks are used for comparing the current code in memory to the source of the compiled code and if it was not changed then the block is kept after the cache flush.
Also the dormant flag can be used for preserving the original compiled code, it marks the blocks which are falling into the ROM memory area, so these cannot change.
Moved to beta #4, there is a bug in the current implementation which I couldn't find so far.
I have spent too much time on getting the soft flush working, yet I couldn't manage to get the system boot without crashes.
The current implementation is attached to this ticket as a patch and the ticket is postponed to version 1.1 for now.
This feature seems to be less important than as it seems, I couldn't find any programs so far which would need this workaround configuration at all.