Commit graph pcem/src/x87_ops.h
Author SHA1 Message Date
SarahW
ea4dd4047c Added FENI/FDISI for 8087. 2020-01-24 20:33:59 +00:00
SarahW
4875f24b53 Added initial attempt at instruction timings for 8087/287/387.
Also added 287XL using 387 timings.
2020-01-24 20:33:35 +00:00
SarahW
0e8926936d Added FPU support for pre-486 CPUs.
This commit does not include timings for 8087, 80287 or 80387 FPUs, these will
be added later. It also does not restrict the use of 486 and later FPU
instructions.
2020-01-22 20:53:13 +00:00
SarahW
cb6422b324 MMX fixes :
- Initialise x87 tags correctly in recompiler
- EMMS/FEMMS now respect cr0 TS bit
- FRSTOR now doesn't force all non-uint64 tags to valid
Fixes Heaven 7 with AudioPCI
2019-05-18 14:05:30 +01:00
SarahW
66b0b9c926 Use inline assembly routine for x87 comparisons on x86-64. Fixes Unreal. 2019-05-01 20:18:13 +01:00
SarahW
0055238ade Added recompiled versions of FCOM, FCOMP, FCOMPP, FICOM, FICOM, FUCOM, FUCOMP and FUCOMPP. 2018-11-14 21:42:20 +00:00
SarahW
e17a94a409 FDIVP/FDIVRP should pop the stack when a divide by zero occurs and the exception is masked. Fixes software rendering on Need for Speed III. 2018-10-09 22:10:29 +01:00
SarahW
305b6cc4fd Added recompiled register versions of FADDP, FDIVP, FDIVRP, FMULP, FSUBP and FSUBRP. 2018-10-08 21:44:30 +01:00
SarahW
dbb01ef9e2 Cleaned up x87 tag register handling. 2018-10-01 21:02:40 +01:00
SarahW
a4b8eba56b Add better rounded value for FLDLN2. Fixes rendering in Zone Raiders. 2018-03-28 20:33:18 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
b60ff22d7b Illegal x87 instructions don't cause an exception. Fixes NSSI hangs. 2017-03-25 14:24:35 +00:00
SarahW
9167b3a71f Fixed x86-32 recompiler MMX entry code
Fixed FPU tag resetting in EMMS instruction
Clear MMX state in FINIT
Reset FPU state in FSAVE/FNSAVE
Fixes issues with MMX when more than one MMX program is running
2017-01-13 21:31:42 +00:00
SarahW
6b5467a6c9 Remove unnecessary flag rebuilding in FP_ENTER(). 2016-09-11 17:16:34 +01:00
SarahW
1004d947d5 Fixed bug with FRSTOR which broke FPU copy. 2016-09-10 18:41:58 +01:00
SarahW
6aef53e854 Remove remaining references to 32-bit addresses in x86-64 recompiler. 2016-08-28 15:58:30 +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
a2f96effad Added 0xDC aliases for FCOM/FCOMP - Trespasser now works. 2016-05-25 19:23:36 +01:00
SarahW
e236fb6d16 Added missing FCMOV instruction for 6x86MX. 2016-04-28 19:34:46 +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
TomW
a2046fe37f Fixed stupid typos in FPU rounding - Unreal software mode works again. 2015-10-19 20:34:58 +01:00
TomW
33685c3318 More changes to FPU nearest rounding, Unreal works again. 2015-09-28 20:33:36 +01:00
TomW
299f6c8dfb Nearest FPU rounding mode now handles negative numbers correctly. Fixes Retro City Rampage 486. 2015-09-26 17:54:25 +01:00
TomW
986476b9db FPU rounding modes now have effect in FADD double precision. Fixes rendering in Interstate '76. 2015-09-21 21:54:43 +01:00
TomW
ea13ae015b Added FPREM1 instruction for Interstate '76. 2015-09-21 08:14:53 +01:00
TomW
52a27a9256 FPU copy should now work. 2015-05-18 20:33:33 +01:00
TomW
1802996443 Added missing FYL2XP1 instruction. 2015-05-03 20:53:18 +01:00
TomW
15bca849c8 Added code generation for first batch of FPU instructions; instructions added are most common instructions used in Quake. 2015-04-19 08:42:04 +01:00
TomW
47db0646c1 Fixed typo in x87 opcode tables. 2015-02-03 18:42:09 +00:00
TomW
19c318675a FCOM/FUCOM now use inline assembler on x86 targets. Unreal now works. 2015-01-17 22:06:32 +00:00
TomW
087f412d3f Reorganised FPU emulation. 2014-11-09 14:07:03 +00:00