Commit graph

150 commits

Author SHA1 Message Date
Nekotekina
898637f830 Remove mfc_thread
Clear mfc_queue on reset
Improve MFC Proxy a bit
2018-03-31 21:13:12 +03:00
Nekotekina
445b7c0758 Optimize SPU interpreter
Made SPU decoder similar to PPU decoder
2018-03-01 16:13:35 +03:00
Nekotekina
439a78d12c SPU ASMJIT: rewrite 128-bit shifts by bit
Six instructions changed to use xmm registers instead of gpr.
ROTQBII, ROTQMBII, SHLQBII look better (shifts by imm)
ROTQBI, ROTQMBI, SHLQBI changed for consistency (shifts by variable)
2018-02-08 21:10:03 +03:00
Nekotekina
c7c49ab286 SPU ASMJIT: minor change to ROTH instruction
Only AVX-512 path is changed (third version).
This instruction is extremely rare.
And the code is probably not optimal.
So this commit is pretty useless.
2018-02-08 21:10:03 +03:00
Nekotekina
74834527eb SPU: rewrite ORX instruction 2018-02-08 21:10:03 +03:00
Nekotekina
9b9ac3ca62 SPU: emit VZEROUPPER
Workaround dirty AVX high state
2018-02-08 21:10:03 +03:00
Nekotekina
e2439e962c SPU: use XOP instructions 2018-02-08 20:46:13 +03:00
Nekotekina
84103b69cf SPU: 16-bit shifts for AVX2 2018-02-08 20:46:13 +03:00
Nekotekina
83b541ea9d SPU: rewrite ROTH (AVX-512) 2018-01-03 01:04:04 +03:00
Nekotekina
f271b650da SPU: minor addition for CFLTU, CUFLT 2017-12-29 03:09:35 +03:00
Nekotekina
39a3ed2d03 SPU: minor additions for AVX2+ 2017-12-27 02:51:58 +03:00
Nekotekina
f24491de84 SPU: fixes 2017-12-20 01:21:59 +03:00
Nekotekina
d3198ddf60 SPU: reorder some instructions for better throughput 2017-12-20 00:04:09 +03:00
Nekotekina
6d34dcd75f SPU: add some AVX-512 variants 2017-12-20 00:04:09 +03:00
Nekotekina
4aee4ed6d7 SPU: remove SSSE3 dependency 2017-12-20 00:04:08 +03:00
scribam
50f2be57f7 Spaces to tabs 2017-12-10 16:48:33 +04:00
Jake
d17093e65b spu: Fix interrupt jump check - also change interrupt variable to atomic bool for ease of setting/checking 2017-12-01 20:29:59 +03:00
Jake
8b476b5bfa spu: Recompiler Interrupt optimizations - Pigeonhole optimize for branching pattern that is used to enable and disable interrupts used in code, this should lower amount of blocks that are compiled and avoid falling out of a block - Recompiled interupt check in some cases to stay in block instead of falling out to dispatcher 2017-12-01 20:29:59 +03:00
Jake
ad97780c4f spu: Implement DFCMGT for interpreter and recompiler 2017-12-01 20:29:59 +03:00
kd-11
b338c81907 spu: Fixes (#3526)
* spu: Rewrite interpreter fast FM
- Partially implement accurate FM
- Fix FMA/FMS/FNMS by removing an optimization that does not work for INF (cmpunord)
- cmpunord does not catch all cases of an extended result/overflow
- NOTE: FM still does not handle corner cases well (e.g inf * 1.2 because SPU does not have concept of inf)
2017-10-04 20:58:06 +03:00
mp-t
607d2486ea Code review (#3114)
* Fix always-true conditions in sceNp module

* gl_render_targets: useless check on unsigned variable, possible bug

* fixed UB in crypto utility functions

* copy-paste error in vk::init_default_resources

* pass strings by const ref

* Dont copy vectors. Make sure copies are not needed because functions are used in a multi-threaded context.
2017-08-01 20:22:33 +03:00
kd-11
41d921808b spu: Reimplement FCGT and FCMGT to handle corner cases (such as comparisons against infinites and denormals)
- Also optimize FMA/FMS/FNMS for recompiler
2017-07-08 14:52:16 +03:00
Nekotekina
f010b5b235 Configuration simplified 2017-05-20 16:01:48 +03:00
Zion
c133db6721 Update asmjit submodule (Testers wanted!) (#2782)
* Update asmjit submodule

* Add myself as a contributor 	😉
2017-05-18 14:22:45 +03:00
Nekotekina
463e18f893 Disable SPUJIT.log (opt-in) 2017-04-20 00:52:31 +03:00
Nekotekina
9b43203111 offset32(): pointer-to-member arithmetic 2017-04-20 00:17:16 +03:00
kd-11
65bdcaed29 spu: Check exponent bits in FMA ops (#2683) 2017-04-13 23:02:51 +03:00
Nekotekina
7b65f93953 SPU ch69 2017-03-11 21:55:50 +03:00
Nekotekina
5e3bacbd9b New reservations
Memory system cleanup
sys_memory_get_page_attribute
2017-03-10 15:51:40 +03:00
Nekotekina
3baf79f929 ror64 added 2017-03-04 17:34:59 +03:00
Nekotekina
d2ddb9882f SPU: IRET, SN event 2017-02-13 16:29:32 +03:00
Nekotekina
bdeccd889f cpu_type removed, system_type added
cpu_state -> cpu_flag
vm::stack_allocator template improved
ppu_cmd type changed to enum, cmd64 type added
2016-08-09 17:14:41 +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
7a921cbdf9 cpu_thread compressed 2016-06-27 16:43:57 +03:00
Nekotekina
6fa5e2cc7c PPUAnalyser.h added 2016-06-19 20:50:21 +03:00
Nekotekina
e2d82394f6 Cell 2016-05-23 16:22:23 +03:00
Ivan
aafcf44581 Header optimizations (#1684)
Shouldn't break anything. I hope.
2016-04-27 01:27:24 +03:00
Nekotekina
c4e99dbdb2 Partial commit: Cell 2016-04-15 19:22:34 +03:00
Nekotekina
960668ecf1 For #1355
offsetof() eliminated
OFFSET_32, SIZE_32, ALIGN_32 used
2016-01-14 19:07:27 +03:00
Nekotekina
b3e3c68f15 File utility improved
+ minor fixes
2016-01-13 14:12:04 +03:00
Nekotekina
3ed603074c Changes done by [DH] rewritten
Added rsx_program_decompiler submodule
Added fs::dir iterator
Added fmt::match
2015-12-22 23:11:20 +03:00
Nekotekina
321e6d3a86 fs::get_config_dir, fs::get_executable_dir 2015-12-20 15:41:06 +03:00
Nekotekina
a4db58f5f2 Added fs::file_ptr, fom::rewrite, cleanup 2015-11-14 20:26:40 +03:00
Nekotekina
fd628d8345 Minor changes 2015-10-22 22:38:34 +03:00
Nekotekina
a974ee009e vm::var improved, cleanup
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00
Nekotekina
8ae3401ffa Some things improved
shared_mutex_t implemented
GUI Emu Callbacks rewritten
fxm::import, fxm::import_always implemented
cellMsgDialog rewritten
Emu.CallAfter improved (returns std::future)
2015-09-22 16:48:21 +03:00
Nekotekina
7e01c81154 SPU Recompiler fixed 2015-09-07 00:36:32 +03:00
Nekotekina
817fec9684 SPU Cleanup
SPURecompiler improved
Old SPU decoder removed
SPU Interpreters merged
2015-09-02 00:38:44 +03:00