Commit graph

65 commits

Author SHA1 Message Date
scribam
2ed6e51d24 ppu: improve vnmsubfp instruction 2018-07-09 03:33:05 +04:00
scribam
733efc6b0d ppu: improve fnmsubs instruction 2018-07-09 03:33:05 +04:00
scribam
f1e6532ec0 ppu: improve fnmsub instruction 2018-07-09 03:33:05 +04:00
Nekotekina
2f0dc9bd0f PPU LLVM: simplify VSUBCUW, VSUBUBS, VSUBUHS, VSUBUWS 2018-07-06 00:33:52 +03:00
Nekotekina
9d9869e803 PPU LLVM: simplify VADDCUW, VADDUBS, VADDUHS, VADDUWS 2018-07-06 00:33:52 +03:00
Nekotekina
a0bf103e8b Implement cpu_translator::pshufb<>()
Remove spu_translator::pshufb<>()
Improve PSHUFB emulation (pre-SSSE3)
Emit static shufflevector for the constant mask
PPU: Inline VPERM instruction
2018-07-06 00:33:52 +03:00
Nekotekina
e009bbac10 Use LLVM 7 (master) 2018-07-06 00:33:52 +03:00
isJuhn
3d8223fccc Fix LLVM STW reservation update 2018-07-02 15:19:50 +04:00
Jake
edeb858138 loader: ignore invalid index_value and allow relative reloc 10 2018-06-24 14:29:41 +04:00
isJuhn
83f096c435 Add conditional reservation update to STW 2018-06-23 23:13:34 +04:00
jjsat
53ca2526ed Fix VSLO and VSRO in the LLVM PPU recompiler 2018-06-10 20:12:40 +04:00
Nekotekina
a975ecdc4f Use LLVM 6 2018-05-08 13:05:29 +03:00
Nekotekina
8b704588d0 Update cpu_translator 2018-05-08 13:05:29 +03:00
Nekotekina
db229dffb0 PPU LLVM: minor update 2018-05-08 13:05:29 +03:00
VelocityRa
706faa1d32 PPUTranslator: Ignore relative relocations 2018-04-01 01:32:08 +04:00
Nekotekina
cce0ad0c35 Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
Nekotekina
b01e460863 PPU LLVM: rewrite AVG instructions 2018-02-08 21:10:03 +03:00
Nekotekina
93c0a0aa35 PPU LLVM: rewrite add/sub instructions
Use new patterns for saturation instructions
Avoid ZExt/SExt completely
2018-02-08 21:10:03 +03:00
Nekotekina
db83113316 Initial cpu_translator impl 2018-02-08 21:10:03 +03:00
Nekotekina
140a581d23 PPU: redesign LVSL, LVSR instructions 2017-12-20 00:04:09 +03:00
scribam
3e7ed8a831 PPUTranslator minor changes 2017-11-08 08:34:00 +04:00
Nekotekina
f9a69c449d PPU LLVM: minor bitcast avoidance 2017-07-23 11:03:38 +03:00
Nekotekina
bab537c7e2 PPU LLVM: unuse FP_SAT_OP 2017-07-12 14:00:38 +03:00
RipleyTom
34709eb399 Fix Stswi instruction 2017-07-10 18:42:02 +03:00
Nekotekina
f0d184f38b PPU LLVM: relocation support 2017-07-04 02:04:22 +03:00
Nekotekina
c087a9534a PPU LLVM: SSA reordering
Fetch indirect jump target
Flush registers earlier
2017-06-29 17:48:55 +03:00
Nekotekina
da87bb6710 PPU LLVM: minor fix 2017-06-29 17:48:55 +03:00
Nekotekina
3c064439b3 PPU LLVM: new mptr/cptr format 2017-06-29 17:48:55 +03:00
Nekotekina
85f8a42bd2 PPU: MTOCRF optimization 2017-06-29 17:48:55 +03:00
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