Eladash
e10c6cbaf7
SPU: cpu_work() fixup, fix recursion in AV handler
2021-09-18 19:43:55 +03:00
Eladash
5870da0b55
SPU MFC: Add shuffling in steps setting
2021-09-18 19:43:55 +03:00
Eladash
ddec5d6908
CPUThread: Prevent recursive check_state calls
2021-09-17 14:02:22 +03:00
Eladash
975aae1d13
SPU MFC: Implement MFC commands execution shuffling
2021-09-17 11:38:10 +03:00
Eladash
fafefb2cf5
Fixup No.3 after #10779
2021-09-10 11:46:39 +03:00
Megamouse
0debcfed0a
Silence some warnings
2021-09-02 19:39:42 +02:00
Eladash
063df64108
SPU/event queue: Implement protocol for SPU queue
2021-08-13 08:58:09 +03:00
Eladash
f1f93b8f81
SPU: Remove outdated assertation
2021-08-13 08:58:09 +03:00
Eladash
91737b11fe
Fix sys_spu_thread_group_resume
...
Do not remove suspend flag when SPU group state is not SPU_THREAD_GROUP_STATUS_RUNNING after operation!
2021-08-12 22:24:54 +03:00
Eladash
bf61c826d5
SPU/event queue: Atomically resume SPU group
2021-08-12 22:24:54 +03:00
Eladash
8e2c34a003
PPU debugger: Implement PPU calling history
2021-07-17 17:28:23 +02:00
Nekotekina
160b131de3
types.hpp: implement smin, smax, amin, amax
...
Rewritten the following global utility constants:
`umax` returns max number, restricted to unsigned.
`smax` returns max signed number, restricted to integrals.
`smin` returns min signed number, restricted to signed.
`amin` returns smin or zero, less restricted.
`amax` returns smax or umax, less restricted.
Fix operators == and <=> for synthesized rel-ops.
2021-05-22 12:10:57 +03:00
Eladash
638f20c80f
Improve get_current_cpu_thread()
2021-05-20 09:25:51 +03:00
Eladash
8bd58b1ad4
Remove lv2_event_queue::check(weak_ptr)
2021-05-15 00:31:14 +03:00
Eladash
c681395fb2
sys_interrupt: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
56471f4ad4
SPU: Optimize SPU ports/queues
2021-05-15 00:31:14 +03:00
Eladash
daa53b77cf
Simplify named_thread construction
2021-05-01 18:08:03 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Nekotekina
95725bf7fc
Add -Werror=missing-noreturn (GCC, clang)
...
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Nekotekina
b3fb6d7d18
Add and fix -Wredundant-decls (GCC)
2021-03-23 22:48:57 +03:00
Eladash
1864419561
Fix SPU mapped memory page size
2021-03-19 22:25:08 +03:00
Nekotekina
03332c340d
Implement utils::bless (pointer cast)
...
Tries to workaround strict aliasing troubles.
Don't confuse with std::bless which works differently.
2021-03-10 16:02:00 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
87af905018
Enable -Wunused-parameter
2021-03-06 18:07:08 +03:00
Timothy Redaelli
fa5a2b6a85
SPUThread.cpp: remove "__attribute__((always_inline))"
...
cmp_rdata and mov_rdata are using __attribute__((always_inline)),
without inline, that is not supported on current g++ (see RPCS3#1546).
Moreover __attribute__((always_inline)) is a noop if used without inline so
just remove it.
A proper fix is to move the 2 functions in an header file as static
(with FORCE_INLINE) so it can be correctly inlined by the compiler.
2021-03-04 12:17:27 +03:00
Nekotekina
52fe86b56c
fixed_typemap.hpp: make it a bit fool-proof
...
Require objects to be non-copyable (move is still allowed).
2021-03-02 21:58:49 +03:00
Eladash
004ebfdaee
SPU debugger: Implement MFC journal
...
* Allow to dump up to 1820 commands with up 128 bytes of data each, using key D with the debugger.
2021-03-02 21:57:51 +03:00
Eladash
9ccf39b27f
Atomic SPU LS capture writes
2021-02-23 11:29:23 +03:00
Eladash
f43260bd58
Atomic waiting refactoring ( #9208 )
...
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117 )
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Eladash
4f85f151fd
SPU: Always signal the debugger about termination
2021-02-03 15:05:38 +03:00
Eladash
0652870204
New RSX Debugger
2021-01-28 17:40:26 +03:00
Nekotekina
a69248299d
SPU: Don't use shm::map_critical in SPU LS allocations
...
Use shm::try_map instead until proper area is found.
2021-01-25 17:45:47 +03:00
Eladash
a58c12db0b
SPU: fixup after #9630
...
Co-Authored-By: Ivan <nekotekina@gmail.com>
2021-01-21 21:32:13 +03:00
Eladash
f81674232e
Remove SPU and PPU destructors
2021-01-21 18:31:51 +03:00
Eladash
e4c3b1c2bd
vm: Remove vm::dealloc_verbose_nothrow
2021-01-15 17:37:52 +03:00
Eladash
c94a98e15a
Fix minor typo
2020-12-23 20:50:33 +03:00
Eladash
d17d22139e
SPU Debugger: Print reservation data
2020-12-23 08:25:56 +03:00
Nekotekina
bd269bccaf
types.hpp: remove intrinsic includes
...
Replace v128 with u128 in some places.
Removed some unused files.
2020-12-21 21:11:25 +03:00
Eladash
ef884642e4
Cleanup disasm classes a bit
2020-12-21 13:46:26 +03:00
Nekotekina
eec11bfba9
Move align helpers to util/asm.hpp
...
Also add some files:
GLTextureCache.cpp
VKTextureCache.cpp
2020-12-18 18:07:42 +03:00
Nekotekina
db9b7db531
Cleanup and move sysinfo.h -> util/sysinfo.hpp
2020-12-18 12:55:54 +03:00
Nekotekina
e321765c54
Split BEType.h to util/v128.hpp and util/to_endian.hpp
2020-12-13 16:34:45 +03:00
Nekotekina
65c04e4ddd
Remove constexpr from ppu/spu decoders.
...
We don't need them at compile time (yet).
But can reduce compile time and complexity.
2020-12-10 15:06:01 +03:00
Nekotekina
b382d3b3e9
Remove ASSUME macro
...
It's dangerous and sometimes bluntly misused feature.
Its optimization potential is near-zero.
2020-12-10 14:08:02 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +03:00
Nekotekina
e055d16b2c
Replace verify() with ensure() with auto src location.
...
Expression ensure(x) returns x.
Using comma operator removed.
2020-12-09 15:43:38 +03:00
Nekotekina
eb66302907
atomic.hpp: replace std::atomic with atomic_t
...
Dual dependency is nothing good.
2020-12-07 17:13:12 +03:00
Nekotekina
b16cc618b5
atomic.hpp: add some features and optimizations
...
Add atomic_t<>::observe() (relaxed load)
Add atomic_fence_XXX() (barrier functions)
Get rid of MFENCE instruction, replace with no-op LOCK OR on stack.
Remove <atomic> dependence from stdafx.h and relevant headers.
2020-12-07 17:13:12 +03:00
Nekotekina
77aa9e58f2
shared_ptr.hpp: add trivial conversion for shared/single types
...
These conversions don't exist in std::shared_ptr-alike types.
But I don't want to bother with == operators until we have proper C++20.
Removed trivial conversion for atomic_ptr because it's heavyweight.
2020-12-07 15:33:28 +03:00
Eladash
15a12afe25
Debugger: Implement code flow tracking
2020-12-06 15:32:13 +03:00