Nekotekina
ef55d6fa0c
PPU LLVM: less trash, fix crash
2017-06-29 17:48:55 +03:00
Nekotekina
aa34fa8baa
PPU LLVM: some passes disabled
2017-06-29 17:48:55 +03:00
Nekotekina
fc2a45d6d6
Removed unnecessary code
2017-06-29 17:48:55 +03:00
Nekotekina
89f676de75
PPU: preparations (no fixes)
2017-06-26 16:56:13 +03:00
Nekotekina
061c92ba1f
PPU LLVM: Improve FlushRegisters
2017-06-26 16:56:13 +03:00
Nekotekina
8034196c25
ppu_syscall_code type added (for fmt)
2017-06-26 16:56:13 +03:00
Nekotekina
1196e9decc
PPU LLVM: remove unnecessary code
2017-06-26 16:56:13 +03:00
Nekotekina
cd4f290d3d
PPU LLVM: v2, simplification (no allocas)
2017-06-26 16:56:13 +03:00
Nekotekina
45fae363c6
PPU LLVM: MFCR optimized
2017-06-26 16:56:13 +03:00
Nekotekina
aea094730b
PPU LLVM: paradigm shift
...
For now, compile only one block at time
Use tail calls to move between blocks
Fully write PPU context (except CIA)
This fixes many compatibility problems
2017-06-23 20:09:33 +03:00
Nekotekina
a29d7d3962
LLVM: implement STSWI, LSWI...
...
Fix DIVD, DIVDU, DIVW, DIVWU, MULHW
Removed __adde_get_ca in ADDE, SUBFE
2017-06-23 20:09:33 +03:00
Nekotekina
9b43203111
offset32(): pointer-to-member arithmetic
2017-04-20 00:17:16 +03:00
Nekotekina
b1f1a5885b
PPU LLVM improved
2017-04-16 17:44:19 +03:00
Nekotekina
3bfe17a14f
PPU: HACK instruction removed
...
Breakpoints fixed
2017-03-22 23:23:47 +03:00
Nekotekina
4fc8276f0f
LLVM: fix FCTIW, FCTID
2017-03-21 20:16:41 +03:00
Nekotekina
aad035c4b5
LLVM: fix FCTIWZ, FCTIDZ
2017-03-21 20:16:41 +03:00
Nekotekina
c2cd0c994f
LLVM: volatile load for state
2017-03-21 20:16:41 +03:00
Nekotekina
0eb6bf6a67
LLVM: splitting and caching
2017-02-26 20:14:18 +03:00
Nekotekina
d0afef47f8
LLVM: block borders fixed
2017-02-25 21:30:28 +03:00
Nekotekina
7c418f7ea5
PPU: block info fix
2017-02-23 00:35:29 +03:00
Nekotekina
e4962054a4
LLVM: add check state
2017-02-13 20:51:56 +03:00
Nekotekina
f4b95c0226
PPU analyser improved
2017-02-12 21:12:08 +03:00
Nekotekina
47b4c649f1
PPU fixes
2017-02-07 16:37:30 +03:00
Nekotekina
84d0d396ed
EXPECTS usage removed
2016-08-15 16:29:38 +03:00
Nekotekina
a7e808b35b
EXCEPTION macro removed
...
fmt::throw_exception<> implemented
::narrow improved
Minor fixes
2016-08-08 19:19:32 +03:00
Nekotekina
46735d6b3d
New bitsets (experimental)
2016-08-08 16:29:37 +03:00
Nekotekina
f8719c1230
PPUThread refactoring
...
`CallbackManager` removed, added _gcm_intr_thread for cellGcmSys
`PPUThread` renamed to `ppu_thread`, inheritance allowed
Added lightweight command queue for `ppu_thread`
Implemented call stack dump for PPU
`get_current_thread_mutex` removed
`thread_ctrl::spawn`: minor initialization fix
`thread_ctrl::wait_for` added
`named_thread`: some methods added
`cpu_thread::run` added
Some bugs fixes, including SPU channels
2016-07-30 16:35:02 +03:00
Nekotekina
44bee7d0ba
LLVM: Use small code model
...
Global variables modified:
__mptr: pointer to memory base addr
__cptr: pointer to function map addr
Use 32 bit pointers in function map
2016-07-25 18:26:02 +03:00
Nekotekina
5c9f83c3a8
PPU LLVM: New "stack" strategy
...
Minor pessimization: all memory accesses are volatile
Special handling of prologues and epilogues
Minor optimizing assumption for SP
2016-07-24 21:47:45 +03:00
Nekotekina
eb377f425c
PPU LLVM: Analyser fix
...
ppu_branch_target removed
2016-07-14 16:27:14 +03:00
Nekotekina
94da0dbd4d
PPU LLVM improvements
...
Removed interpreter dependencies
Reciprocal instructions improved
2016-07-12 17:33:13 +03:00
Ivan
77594dc66c
PPU LLVM: New analyser ( #1858 )
...
Minor fixes
VEX prefix support
2016-07-07 21:42:39 +03:00
Nekotekina
0ea0c21fed
LLVM: Indirect call map
2016-06-27 19:34:14 +03:00
Nekotekina
73ea020525
PPU LLVM: Thread context argument
2016-06-27 16:43:50 +03:00
Nekotekina
251fb86ab0
PPU LLVM: Some instructions simplified
2016-06-21 18:08:21 +03:00
Nekotekina
a8bebcba55
LLVM AOT
2016-06-19 21:29:48 +03:00