Commit graph pcem/src/codegen_x86-64.c
Author SHA1 Message Date
SarahW
717d815604 Tweak flat DS/SS dynarec optimisation, should reduce block churn when routines are called both with and without flat DS/SS.
Fixed incorrect STACK32 flag when entering V86 mode that was hidden by block churn.
Protected and V86 mode status now considered when selecting block.
2017-11-15 21:55:27 +00:00
SarahW
64cb5f580f Recompiler now works on Mac OS X. 2017-11-11 20:21:20 +00:00
SarahW
c71963727a Recompiler now uses logical address of 0xffffffff rather than 0 to represent invalid block. Fixes some Unixes when recompiler enabled. 2017-10-15 21:32:01 +01:00
SarahW
40d7e02006 Fixed recompiler bug introduced by REP rework - Windows XP installer works again. 2017-07-28 20:30:10 +01:00
SarahW
a96e87527e Reorganised REP instructions. 2017-07-20 21:06:21 +01:00
SarahW
3a7c4687d6 Reduce self modifying code granularity from 64 bytes to 16. 2017-06-13 21:05:10 +01:00
SarahW
fa9d9381b7 Clear flat DS/SS status on segment load during block. Fixes LBA 2. 2017-06-02 22:01:09 +01:00
SarahW
083ca3d4a2 Slight optimisation when DS/SS are 'flat' (base=0, limit=4G). 2017-05-24 21:50:37 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
75f9316c11 x86-32 recompiler compiles FPU instructions using direct access to register stack when top-of-stack is static. Minor speedup. 2016-09-11 15:38:05 +01:00
SarahW
5a02b518b8 Moved FPU register stack into cpu_state structure.
Fixed a couple of FPU bugs in x86-64 recompiler that were introduced in rev 543, fixes lightmap issues in Half-Life.
2016-08-25 21:09:02 +01:00
SarahW
eb126fd822 Moved more variables into cpu_state structure. 2016-08-21 21:28:23 +01:00
SarahW
c664682758 Move some more variables into cpu_state structure. Minor speedup (~2%). 2016-08-17 21:28:16 +01:00
SarahW
535604b760 Pack decoded ModR/M data into a single word - minor recompiler speedup. 2016-08-14 16:29:54 +01:00
SarahW
31298d6be1 Recompiler no longer sets tempc variable before calling opcode routine. 2016-08-14 11:22:07 +01:00
SarahW
064acbf07d Added self-modifying code fix to x64-64 recompiler. 2016-08-01 16:12:13 +01:00
SarahW
42237ac1f8 Recompiler now only recompiles a block after seeing it twice. Improves performance on stuff that uses self modifying code - eg Doom, Duke Nukem 3D, Windows 95 idle 2016-07-31 12:33:37 +01:00
SarahW
abf975e2af x86-64 recompiler now saves/restores correct registers on entry/exit of code block. 2016-05-18 20:06:28 +01:00
SarahW
153c22e442 Cyrix 6x86 emulation. Based on patch from leilei.
Moved MOV TRx, reg to correct opcode - required by Award 430VX BIOS with 6x86.
2016-04-27 22:23:49 +01:00
SarahW
c81a91fd72 Moved integer registers, PC and flags_* variables into new cpu_state structure. Reduces recompiled code size slightly, small speedup (1-3%). 2016-04-20 21:39:41 +01:00
SarahW
14df80109b Added recompiler block tree to x86-64 recompiler. Fixed return value in codeblock_tree_find() that could cause GCC to generate bad code. 2016-04-08 20:49:03 +01:00
TomW
4011a246ff Added code generation for MMX instructions 2016-02-24 20:55:48 +00:00
TomW
38fb86cb95 stack32 is now always 0 or 1, to prevent failed comparisons in 386_dynarec.c.
Only clear an entry in codeblock_hash if it's pointing to the block actually being deleted.
Speeds up menus in Railroad Tycoon II significantly.
2016-01-23 14:36:59 +00:00
TomW
f339f00315 Interpreter and dynamic recompiler now present in a single binary. 2015-08-21 20:55:36 +01:00
TomW
5f391a1992 Reduced number of unnecessary register loads in x86-64 recompiler. 2015-08-05 20:31:20 +01:00
TomW
0bf08d9e74 x86-64 recompiler now at parity with x86-32 2015-08-04 18:36:27 +01:00
TomW
04a0859f79 Effective address calculations now implemented by recompiled code in x86-64 recompiler. 2015-07-19 16:59:58 +01:00
TomW
634c235dc2 Fix Linux build. Enable 64-bit recompiler in Linux. 2015-07-18 16:03:39 +01:00
TomW
08254b8dfb Initial 64-bit recompiler.
Various 64-bit fixes.
Various fixes to allow building under MinGW-w64.
2015-07-18 12:11:54 +01:00