Eladash
7c3166a0c6
SPU MFC: Fix MFC_WrListStallAck on interpreters
2020-05-20 22:55:30 +03:00
Eladash
4405f46aec
SPU MFC: Fix SN interrupts
2020-05-20 22:55:30 +03:00
Eladash
81684919f5
SPU MFC: Implement MFC_SDCRZ_CMD
2020-05-20 22:55:30 +03:00
Eladash
a2653532ef
SPU reservations (TSX): Remove wait flag in PUTQLLUC
2020-05-17 14:20:21 +03:00
Eladash
61f43d78df
SPU: Minor cleanup of exception in stop_and_signal
2020-05-14 16:58:50 +01:00
Eladash
54dd9f4eae
sys_spu: Fix sys_spu_thread_group_terminate vs sys_spu_thread_group_exit race on values
2020-05-14 16:58:50 +01:00
Eladash
9266507e4c
SPU: Implement spu_channel_(4_)t::try_read
2020-05-13 19:36:44 +03:00
Eladash
7ff25588f4
sys_spu: Minor cleanup of group termination process
2020-05-13 19:36:44 +03:00
Eladash
525453794f
SPU/PPU reservations: Optimizations part 1
...
- Implement vm::reservation_trylock, optimized locking on reservation stores with no waiting. Always fail if reservation lock bitsa are set.
- Make SPU accurate GET transfers on non-TSX not modify reservation lock bits.
- Add some optimization regarding to unmodified data reservations writes.
2020-05-13 11:10:13 +01:00
Eladash
f95b81574f
sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes ( #8182 )
...
* sys_spu: Fix race in sys_spu_thread_group_destroy and other minor fixes
* SPU: Wait for all threads to have error codes if exited by sys_spu_thread_exit
On last thread in group to run.
* sys_spu: Fix sys_spu_thread_group_start
* fixup ad fix sys_spu_thread_group_terminate
idk why "- !group->running" was put in the first place but its probably no longer relevant due to other changes and was causing other issues such as not always waiting for last SPU thread to set group state to INITIALIZED.
2020-05-11 21:24:04 +03:00
Eladash
09797c3584
sys_spu: Improve sys_spu_thread_get_exit_status
2020-05-10 03:46:11 +01:00
Eladash
1bd6cb2105
SPU/PPU debugger: use ':' instead of '='
2020-05-05 13:46:26 +03:00
Eladash
edde748519
sys_event_queue: Fix forced event queue destruction
...
Add missing last existence check at sys_spu_thread_(try)receive_event and lv2_event_queue::send.
2020-05-04 01:10:19 +03:00
Eladash
0e6937a359
SPU GETLLAR: Don't use loop detection for TSX
2020-05-02 14:57:38 +03:00
Eladash
2b75df22d9
sys_event_queue: Fix ports disconnection after queue destruction
2020-04-30 18:58:42 +03:00
Nekotekina
19acf260d8
SPU DMA: Fix PUTLLUC (TSX)
...
Prevent edge case of missing store.
2020-04-29 15:40:41 +03:00
Eladash
954e3f6e6c
Fixup for cpu_flag::pause state check after #8114
2020-04-29 05:56:47 +03:00
Eladash
a505d87565
Partial revert of 3be687cd18
2020-04-28 20:20:19 +03:00
Nekotekina
790fd9ce14
SPU DMA: implement cmp_rdata_avx
...
Use technique similar to mov_rdata_avx with inline assembly.
2020-04-28 17:58:26 +03:00
Eladash
7da8ba5c15
Wait for SPU event to be received in sys_spu_thread_group_exit
...
Also use atomic check for group->run_state outside the mutex,
explicitly forbid group termination while we are waiting for an event to be received.
2020-04-28 14:58:17 +03:00
Eladash
a9c18964b6
Add missing cpu state check sys_spu_thread_receive_event
2020-04-28 14:58:17 +03:00
Eladash
9506676223
SPU debugger: dump Stall Stat and SRR0
2020-04-28 14:27:40 +03:00
Eladash
7d7909149f
SPU: Detect reservation spinning loop
2020-04-28 14:27:40 +03:00
Eladash
e423128a32
SPU: New GETLLAR technique
2020-04-28 14:27:40 +03:00
Nekotekina
3ec73b651e
SPU DMA: more tuning for mov_rdata_avx
...
Avoid unaligned stores.
Prefer asm path if __AVX2__ is not set.
Don't emit vzeroupper if __AVX__ is set.
2020-04-27 18:05:52 +03:00
Nekotekina
4f71c570bd
SPU DMA: disable memcpy path
...
Due to update of the alternative path (SSE/AVX)
2020-04-26 22:36:55 +03:00
Nekotekina
8ae2554505
Implement mov_rdata_avx
2020-04-26 22:36:45 +03:00
Eladash
83c7f6f149
debugger: Rephrase "Current function" to "In function"
...
Takes less space which makes actual function name display a bit nicer.
Also the meaning is clearer.
2020-04-19 10:56:42 +01:00
Eladash
a3f2dfa232
sys_isolated_spu
2020-04-17 11:41:50 +01:00
Nekotekina
c7fe8567b8
Experimental squashing of reservation memory area.
...
Enables trivial synchronization between shared mem.
Reduces memory usage, but potentially degrades performance.
Rename an overload of vm::passive_lock to vm::range_lock.
2020-04-16 02:25:43 +03:00
Nekotekina
b1b67a13c6
Revert "Replace rotate utils with std::rotl" (partial)
...
This reverts commit 4d8bfe328b
.
2020-04-14 19:45:53 +03:00
Eladash
ec1e82bc9d
SPU debugger: Implement blocking functions dumping
2020-04-14 17:09:58 +03:00
scribam
f37adc4188
Add fallthrough attribute
2020-04-14 17:06:58 +03:00
Nekotekina
4d8bfe328b
Replace rotate utils with std::rotl
...
More include cleanup.
2020-04-14 16:05:58 +03:00
Eladash
cb14805d78
rsx fp/vp analyzers: Fix strict type aliasing and improve codegen
2020-04-12 16:48:43 +03:00
Nekotekina
1b68f90e42
Tweak TSC calibration
...
Round to 3 digits after dot (count in MHz).
2020-04-09 16:23:33 +03:00
Eladash
cce946f10e
spu: typo fix
2020-04-08 19:23:13 +03:00
Eladash
c0f4fb6e35
SPU debugger: dump reservation address
2020-04-08 14:35:44 +03:00
Eladash
cc8f024c6c
Fixup ppu/spu_thread::dump_all()
2020-04-08 14:35:44 +03:00
Megamouse
b1fdbc7fcc
Move some format functions
2020-04-06 20:59:58 +02:00
Eladash
13820d6802
SPU debugger: Show channels data
2020-04-03 18:37:21 +03:00
Eladash
0beea91d5e
Minor debugger fixups
2020-04-03 18:37:21 +03:00
Nick Renieris
1231274e0f
CPUThread: Split dump() info to separate methods
2020-04-03 01:36:35 +01:00
Emmanuel Gil Peyrot
425e032a62
SPU: Copy with memcpy() instead of hand-rolled SSE2
...
In some very unscientific benchmark:
spu_thread::do_dma_transfer() was taking 2.27% of my CPU before, now
0.07%, while __memmove_avx_unaligned_erms() was taking 1.47% and now
2.88%, which added makes about 0.8% saved.
2020-03-22 15:51:03 +03:00
Nekotekina
6a2571d0e1
SPU: print current chunk hash in dump
2020-03-18 18:28:46 +03:00
Eladash
9e14e835e7
Fix sys_raw_spu_destroy
2020-03-16 21:06:33 +03:00
Eladash
c11074a128
RawSPU: fix race condition in RunCntl stop request
2020-02-29 21:54:54 +03:00
Nekotekina
65eeee0f4c
Remove cancerous lf_value<>
...
Replace thread names (generic, PPU, SPU) with new shared pointers.
Devirtualize cpu_thread::get_name (used in single case).
2020-02-28 18:54:46 +03:00
Nekotekina
972e0ab31d
Remove -Wno-reorder and make it an error
2020-02-21 15:20:34 +03:00
Nekotekina
92e3eaf3ff
Fix signed-unsigned comparisons and mark warning as error (part 2).
2020-02-19 22:54:58 +03:00