Commit graph

127 commits

Author SHA1 Message Date
Nekotekina
5d33d9a3d9 Enable most warnings in GCC 2019-05-11 02:13:19 +03:00
Nekotekina
7492f335e9 SPU analyser: basic function detection in Giga mode
Misc: fix EH frame registration (LLVM, non-Windows).
Misc: constant-folding bitcast (cpu_translator).
Misc: add syntax for LLVM arrays (cpu_translator).
Misc: use function names for proper linkage (SPU LLVM).

Changed function search and verification in Giga mode.
Basic stack frame layout analysis.
Function detection in Giga mode.
Basic use of new information in SPU LLVM.
Fixed jump table compilation in SPU LLVM.
Disable broken optimization in Accurate xfloat mode.
Make compiled SPU modules position-independent in SPU LLVM.

Optimizations include but not limited to:
 * Compiling SPU functions as native functions when eligible
 * Avoiding register context write-out
 * Aligned stack assumption (CWD alike instruction)
2019-05-11 02:13:19 +03:00
eladash
e21504d52d ppu interpreter: Improve FPCC field handling 2019-04-11 17:47:52 +03:00
eladash
aa44ef1f44 Fix default PPU nj status
TODO: Support  it...
2019-04-11 17:47:52 +03:00
Nekotekina
1b37e775be Migration to named_thread<>
Add atomic_t<>::try_dec instead of fetch_dec_sat
Add atomic_t<>::try_inc
GDBDebugServer is broken (needs rewrite)
Removed old_thread class (former named_thread)
Removed storing/rethrowing exceptions from thread
Emu.Stop doesn't inject an exception anymore
task_stack helper class removed
thread_base simplified (no shared_from_this)
thread_ctrl::spawn simplified (creates detached thread)
Implemented overrideable thread detaching logic
Disabled cellAdec, cellDmux, cellFsAio
SPUThread renamed to spu_thread
RawSPUThread removed, spu_thread used instead
Disabled deriving from ppu_thread
Partial support for thread renaming
lv2_timer... simplified, screw it
idm/fxm: butchered support for on_stop/on_init
vm: improved allocation structure (added size)
2018-10-19 22:22:35 +03:00
Nekotekina
f2229a5f53 PPU reservations: ensure aligned atomic ops
Store aligned 64 bits to ppu.rdata
Don't save reservation size
2018-09-15 17:09:56 +03:00
eladash
cd11ae5d8b ppu: Fix extreme reservation corner case 2018-09-12 23:17:53 +03:00
Nekotekina
d392379c7a Use vm::passive_lock for SPU threads 2018-04-06 15:47:00 +03:00
Jake
7bbadfd08b ppu/sys_interrupt: add stack_reset command to fix sys_interrupt stack overflowing 2018-03-09 20:30:59 +04:00
kd-11
cbc8bf01a1 cell/scheduler: Manage thread placement depending on cpu hardware 2018-01-19 12:03:57 +03:00
Nekotekina
144f6809bf Implement CALL_FUNC 2017-10-05 19:51:37 +03:00
Nekotekina
8034196c25 ppu_syscall_code type added (for fmt) 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
f010b5b235 Configuration simplified 2017-05-20 16:01:48 +03:00
Nekotekina
b1f1a5885b PPU LLVM improved 2017-04-16 17:44:19 +03:00
Nekotekina
7428bb3025 HLE linkage rewritten 2017-04-16 17:44:19 +03:00
Nekotekina
e8984d976c _sys_sprintf implemented
_sys_printf, _sys_snprintf fixed
2017-03-27 01:15:41 +03:00
Nekotekina
4739eb3601 Reservation fix 2017-03-11 15:48:43 +03:00
Nekotekina
5e3bacbd9b New reservations
Memory system cleanup
sys_memory_get_page_attribute
2017-03-10 15:51:40 +03:00
Nekotekina
9000407a77 cpu_thread::test_state added
lv2_obj::sleep adjustment
synchronization fixes
2017-02-22 13:23:21 +03:00
Nekotekina
598c90f376 PPU thread scheduler 2017-02-13 22:26:11 +03:00
Nekotekina
dc7ac22f84 sys_ppu
LV2_LOCK removal
error_code introduction
2017-01-31 18:03:09 +03:00
Nekotekina
b21fce4d6f IdManager improved
lv2_obj for kernel objects
Simple lookup (vector)
Another idm API refactoring
2017-01-29 21:37:04 +03:00
Nekotekina
591a6c8671 IdManager improved 2017-01-25 23:29:36 +03:00
Nekotekina
78ecb115f3 LLVM: progress dialog 2017-01-22 22:44:26 +03:00
raven02
be9cebbc8f Workaround id_min/max (#2079) 2016-08-20 21:27:50 +08:00
Nekotekina
ad174eb12c error_code implemented
Reports based on formatting system
ppu_error_code removed
arm_error_code removed
2016-08-16 18:57:44 +03:00
Nekotekina
5e0489dcc0 cpu_init removed 2016-08-14 18:07:34 +03:00
Nekotekina
7a2802a5e0 Silly macro removed 2016-08-12 19:31:28 +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
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
9db7de29fb Syscall analysis implemented 2016-06-27 16:43:56 +03:00
Nekotekina
a8bebcba55 LLVM AOT 2016-06-19 21:29:48 +03:00
Nekotekina
e2d82394f6 Cell 2016-05-23 16:22:23 +03:00
Ivan
da7472fe81 Optimizations (#1680)
* Optimizations

1) Some headers simplified for better compilation time
2) Some templates simplified for smaller executable size
3) Eliminate std::future to fix compilation for mingw64
4) PKG installation can be cancelled now
5) cellGame fixes
6) XAudio2 fix for mingw64
7) PPUInterpreter bug fixed (Clang)

* any_pod<> implemented

Aliases: any16, any32, any64
rsx::make_command fixed
2016-04-25 13:49:12 +03:00
Nekotekina
c4e99dbdb2 Partial commit: Cell 2016-04-15 19:22:34 +03:00
Nekotekina
b3e3c68f15 File utility improved
+ minor fixes
2016-01-13 14:12:04 +03:00
Nekotekina
ca6783ba9a Threads improved, ID manager improved 2015-12-04 23:37: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
59f1077a36 Cleanup, be_t fixed
Some functions renamed:
get_ps3_function_name
execute_syscall_by_index
2015-09-22 13:28:34 +03:00
Vincent Lejeune
9d18bba1df PPU/LLVM: Propagate exceptions
It fixes a crash in Retro City Rampage with low (ie 10) llvm threshold.
2015-09-15 19:21:39 +02:00
Nekotekina
ce494f8847 fmt::by_value, fmt::Format removed 2015-08-24 21:22:42 +03:00
Nekotekina
be9a599beb PPU Decoder Cache improved 2015-08-24 21:22:35 +03:00
Nekotekina
6f3c50eba2 u128 renamed to v128
Since it's vector union type
2015-08-24 21:22:23 +03:00
Nekotekina
ffc11bfda3 b8 type 2015-08-01 14:38:45 +03:00
Danila Malyutin
5ae6586803 Add missing override specifiers 2015-07-26 18:37:14 +03:00
Nekotekina
2f7fe35f5c Minor style change 2015-07-21 23:14:31 +03:00
Nekotekina
4bacfcf847 sys_lv2dbg added, bugfix 2015-07-10 04:31:41 +03:00
Nekotekina
daa93a7226 ARMv7 func binder improved (faster compilation) 2015-07-10 04:31:39 +03:00