Happy New Year!
Fix LSL & LSR instructions so that they preserve the X flags when the shift count is 0. Likewise for ASR + another improvement to avoid shifting by halves (propagated bit is reset to original's when necessary).
Implement CMOV.B and CMOV.W translations. Only the latter has a native x86 equivalent however.
JIT generated code is not guaranteed to be leaf, e.g. there could be a call to a generic instruction handler (untranslated code). This caused problems on MacOS X for Intel where the unaligned stack conditions turned out to be more visible. Performance loss is really neglectable and this is the right fix now anyway.
Happy New Year!
Merge BSF simulation on P4 from Amithlon. Use 33-bit memory addressing model.
revive and fix almost two-year old port to x86_64
Happy New Year! :)
Implement lazy icache range invalidation. Disable for now until it shows a real benefit over only 2%
Remove some dead code. Start implementation of optimized calls to interpretive fallbacks for untranslatable instruction handlers. Disabled for now since call_m_01() is not correctly imeplemented yet.
Workaround change in flags handling for BSF instruction on Pentium 4. i.e. currently disable translation of ADDX/SUBX/B<CHG,CLR,SET,TST> instructions in that case. That is to say, better (much?) slower than inaccurate. :-(
JIT add copyright notices just to notify people that's real derivative work from GPL code (UAE-JIT). Additions and improvements are from B2 developers.
Turn on block inlining so that people could test this feature and report if they do gain something or renders JIT less stable.
- Remove dead code in readcpu.cpp concerning CONST_JUMP control flow. - Replace unused fl_compiled with fl_const_jump - Implement block inlining enabled with USE_INLINING && USE_CHECKSUM_INFO. However, this is currently disabled as it doesn't give much and exhibits even more a cache/code generation problem with FPU JIT compiled code. - Actual checksum values are now integral part of a blockinfo regardless of USE_CHECKSUM_INFO is set or not. Reduce number of elements in that structure and speeds up a little calculation of checksum of chained blocks. - Don't care about show_checksum() for now.
- Rewrite blockinfo allocator et al. Use a template class so that this can work with other types related to blockinfos. - Add new method to compute checksums. This should permit code inlining and follow-ups of const_jumps without breaking the lazy cache invalidator. aka. chain infos for checksuming. TODO: Incomplete support thus disabled.
Import JIT compiler
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.