I took the awesome 6502 emulator from http://6502asm.com/ and converted it to accumulate instructions from each basic block, turn them into functions, caches them, and let the JIT do its magic. While I never benchmarked it, I'd say it got between a 5x and 20x speedup on most things. It breaks certain self-modifying code (never bothered to add cache invalidation), but overall it works well.
I took the awesome 6502 emulator from http://6502asm.com/ and converted it to accumulate instructions from each basic block, turn them into functions, caches them, and let the JIT do its magic. While I never benchmarked it, I'd say it got between a 5x and 20x speedup on most things. It breaks certain self-modifying code (never bothered to add cache invalidation), but overall it works well.