Maxim Poliakovski
123f820775
ppcopcodes: fix lswi/stswi emulation.
2022-02-19 23:23:24 +01:00
Maxim Poliakovski
477ad7ddee
ppcopcodes: fix lswx/stswx emulation.
2022-02-19 23:23:24 +01:00
Maxim Poliakovski
b39e884d61
ppcfpopcodes: add missing std:: prefixes.
2022-02-17 00:20:18 +01:00
Maxim Poliakovski
de65196c4f
ppcfpopcodes: remove unused template parameters.
2022-02-17 00:11:14 +01:00
Maxim Poliakovski
8f528184b8
Fix compilation with gcc, part 1.
2022-02-16 23:52:43 +01:00
Maxim Poliakovski
25a4fd1107
Allow adding timers from timer callbacks.
2022-02-05 17:10:57 +01:00
dingusdev
3258abe190
crnand and crnor fixes
2022-01-22 22:33:13 -07:00
Maxim Poliakovski
c8d39d5ee5
ppcopcodes: fix creqv emulation.
2022-01-21 16:32:07 +01:00
Maxim Poliakovski
2442bd17b3
ppcopcodes: fix crand emulation.
2022-01-21 14:56:10 +01:00
Maxim Poliakovski
c864b9b7d9
ppcopcodes: fix cror emulation.
2022-01-21 14:37:51 +01:00
Maxim Poliakovski
d8c3cfc38e
Fix next instruction address after external exceptions.
2022-01-20 01:38:41 +01:00
Maxim Poliakovski
e1e651966e
Revert "Further condition reg opcode patches"
...
This reverts commit 756d32df07
.
2022-01-10 18:10:39 +01:00
Maxim Poliakovski
c12bab9e27
Revert "Quick fix for creqv"
...
This reverts commit 8efc61e1b9
.
2022-01-10 18:01:48 +01:00
Maxim Poliakovski
aefc66d118
Fix external exception processing.
2022-01-10 17:56:24 +01:00
Maxim Poliakovski
339db4a078
Add timers management.
2022-01-10 17:56:24 +01:00
dingusdev
8efc61e1b9
Quick fix for creqv
2022-01-08 15:22:27 -07:00
dingusdev
756d32df07
Further condition reg opcode patches
2022-01-07 20:40:07 -07:00
Maxim Poliakovski
9cd7ca0077
ppcopcodes: fix crxor.
2022-01-08 04:21:09 +01:00
Maxim Poliakovski
7bdad7703c
Predict TBR values based on elapsed virtual time.
2021-12-20 00:12:44 +01:00
Maxim Poliakovski
087402290d
Implement virtual time based on instruction counting.
2021-12-20 00:10:02 +01:00
Maxim Poliakovski
fd33c10712
ppcmmu.cpp: remove unused local variables.
2021-12-07 23:23:39 +01:00
dingusdev
c2a63bab09
FP Opcode Test Fixes
2021-10-30 16:43:13 -07:00
dingusdev
767735251b
FP comp tests & various fixes
2021-10-24 14:00:35 -07:00
dingusdev
a28ef677fd
Fixing FP mul ops & tests
2021-10-23 13:05:20 -07:00
Maxim Poliakovski
c0cd6eb38f
Add missing licence headers, update license date.
2021-10-23 21:00:31 +02:00
Maxim Poliakovski
9329d56d83
Move devices into dedicated subdirectories.
2021-10-23 20:17:47 +02:00
dingusdev
7919cd0590
Merge pull request #21 from dingusdev/floating-point
...
Floating point fixes. Rehauled floating-point emulation code. Fixed a test suite for floating points.
2021-10-19 07:18:21 -07:00
dingusdev
fb277945c2
Floating point test fixes
2021-10-19 07:16:15 -07:00
Maxim Poliakovski
331b93d4d6
Fix compilation with Clang 11.
2021-10-17 23:41:53 +02:00
dingusdev
3c7fc58ac0
Small test case fixes for floating points
2021-10-16 22:33:56 -07:00
dingusdev
00dd99d851
Temporarily removing comparisons
...
These seem to cause the test program to crash. Will reinstate once the cause of the crash is resolved.
2021-10-15 20:02:00 -07:00
dingusdev
7d7a4b453f
Partial test file reading fix
2021-10-15 06:28:11 -07:00
dingusdev
7ce94a6ab5
Further fixing the test code
2021-10-14 21:05:58 -07:00
dingusdev
061b061813
Floating point overhaul, part 4
...
Reworked the INF/NAN checks again - This time, only checking them when the result is calculated
2021-10-14 20:31:10 -07:00
dingusdev
9251745d6f
Fixed floating-point test generation
2021-10-14 07:19:04 -07:00
Maxim Poliakovski
e53296f7a9
Implement all required context-synchronizing events.
2021-10-13 20:58:09 +02:00
Maxim Poliakovski
2a9d364b1b
ppcmmu: implement separate TLB pointers for read/write.
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
3eb2d3cba7
ppcmmu: verbose MMU state with mmu_print_regs().
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
bde5b71167
ppcmmu: re-arrange code to avoid formward declarations.
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
bb0ca2ac40
ppcmmu: fix TLB flushing.
2021-10-10 22:01:02 +02:00
dingusdev
5672a154cb
Floating-point refactor, part 3
...
Condensed code to shorten enum names and remove casting.
Condensed mffs and partially fixed NAN checks for FADD(S).
2021-10-10 07:48:49 -07:00
dingusdev
2d65ed47fc
Floating point overhaul, part 2
...
Further formatting fixes. Removed obsoleted separation definitions. Fixed rounding to nearest.
2021-10-09 19:42:25 -07:00
dingusdev
e344b089b3
Floating point overhaul, part 1
...
Cleaned up formatting and reworked the INF/NAN checks
2021-10-09 15:08:53 -07:00
dingusdev
d5960ca70b
Fixed warnings for frsqrte and fsqrts
2021-10-06 18:59:31 -07:00
dingusdev
2106c4ca47
Fixed floating-point opcode table issues
...
fmuls, fmsubs, fmadds, fnmsubs, and fnmadds are all properly mapped now.
2021-10-06 18:36:23 -07:00
dingusdev
ad6a2a9f17
Merge pull request #20 from dingusdev/floating-point
...
Merging floating point branch
2021-10-06 18:32:23 -07:00
dingusdev
1922a20cdd
Partial revert for exception handling
...
This will be for a future update regarding 601 instructions
2021-10-05 17:42:55 -07:00
dingusdev
f605c484dd
ecowx and eciwx added
2021-10-05 17:40:09 -07:00
Maxim Poliakovski
69c357b70f
ppcopcodes: fix compilation error with Clang 11.
2021-10-05 00:40:12 +02:00
dingusdev
983e278498
Refactoring 601 opcode emulation - part 1
...
All opcodes should be emulated now. There was also a significant amount of clean-up, particularly with lscbx and the bit rotation/shifting instructions.
2021-10-01 22:37:28 -07:00