Nekotekina
7a6db3dd7e
spu_getll_tx: diagnose loop count
2018-05-21 00:18:37 +03:00
Nekotekina
295f782b30
spu_putlluc_tx: diagnose loop count
2018-05-21 00:18:37 +03:00
Nekotekina
a33f297315
Replace notifier::lock_shared() with try_lock_shared()
...
Also add notify_one(), try_lock() and unlock()
Move some code in cond.cpp
2018-05-21 00:18:37 +03:00
Nekotekina
8d5bbfb850
Update SPU dump: print current MFC cmd
2018-05-21 00:18:37 +03:00
Nekotekina
33a1c743a4
Transactions: move loops inside
...
Rewrite loops in assembler (minor optimization)
2018-05-21 00:18:37 +03:00
Nekotekina
67391322f4
Transactions: touch memory only after a failure
...
Minor optimization
2018-05-17 22:19:26 +03:00
Nekotekina
39088e5005
SPU: Allow waiting on LR+TM events (fixup)
2018-05-17 21:21:15 +03:00
Nekotekina
7afda26c69
spu_putllc_tx: preload a little more (WIN32)
2018-05-17 18:58:08 +03:00
Nekotekina
58e4d49bb5
Fixup (endless loop)
2018-05-17 18:33:44 +03:00
Nekotekina
367f039523
Build transactions at runtime
...
Drop _xbegin family intrinsics due to bad codegen
Implemented `notifier` class, replacing vm::notify
Minor optimization: detach transactions from global mutex on TSX path
Minor optimization: don't acquire vm::passive_lock on PPU on TSX path
2018-05-16 17:31:58 +03:00
Nekotekina
4c7afb6952
Opt-in set DAZ and FTZ
2018-05-13 00:03:08 +03:00
Nekotekina
737db90058
Set DAZ and FTZ
2018-05-09 23:38:26 +03:00
Nekotekina
8f91917e8c
SPU ASMJIT: simplify patchpoints
...
Remove SPU thread reference from spu_recompiler_base
Disable support for far jumps in pathpoints (they were rare and unsafe)
2018-05-09 22:19:55 +03:00
Nekotekina
1ca51a023c
SPU LLVM Recompiler (preview)
2018-05-09 22:19:55 +03:00
Nekotekina
767dfa271e
SPU ASMJIT: internal jumptable
...
Allow indirect calls within current function using a jumptable
This restores some functionality removed in SPU ASMJIT 2.0
Change SPUThread::get_ch_value prototype
2018-05-08 13:05:29 +03:00
Nekotekina
4d60d85db5
SPU: fix MFC_PUTQLLUC_CMD fence trait
2018-05-08 13:05:29 +03:00
Nekotekina
9516250bec
SPU: fix MFC_WrTagUpdate
2018-04-22 00:06:49 +03:00
Nekotekina
9ad5fc8a08
SPU: rewrite spu_channel_t
2018-04-22 00:06:49 +03:00
Nekotekina
8ca33bcb94
SPU ASMJIT v2.0
...
Use X86Assembler and blocks
2018-04-22 00:06:48 +03:00
Nekotekina
ea82b732a3
SPU: fix non-TSX path
2018-04-08 23:30:50 +03:00
Nekotekina
0797164fac
SPU: fix possible livelock
...
The bug affects TSX path
2018-04-07 20:51:21 +03:00
Nekotekina
3681507136
Rewrite vm::reservation
...
Use flat virtual memory area
2018-04-07 20:51:21 +03:00
Nekotekina
2b5cf2455f
SPU: improve TSX usage
...
Reduce transaction failure amount
Remove vm::try_to_lock
2018-04-06 21:47:54 +03:00
Nekotekina
d392379c7a
Use vm::passive_lock for SPU threads
2018-04-06 15:47:00 +03:00
Nekotekina
e88508b679
SPU: cache barrier/fence masks
2018-04-06 15:47:00 +03:00
Nekotekina
0e74f2e340
Fix MMIO on SPU
...
Thanks Digitaldude555 for reporting the bug and @elad335 for pinging me
2018-04-01 22:39:48 +03:00
Nekotekina
d871675b3b
Process RawSPU MMIO in do_dma_transfer
2018-04-01 22:39:48 +03:00
Nekotekina
bb0cfe383d
Fix MFC_SYNC_CMD
2018-04-01 20:52:54 +03:00
Nekotekina
898637f830
Remove mfc_thread
...
Clear mfc_queue on reset
Improve MFC Proxy a bit
2018-03-31 21:13:12 +03:00
eladash
d27a375363
RawSPU/MFC: fix get start type proxy commands
2018-03-24 19:48:14 +04:00
eladash
3426531e38
qt/spu: remove max dma write size setting
...
This wasn't really used for anything tbh
2018-03-20 02:49:53 +04:00
Nekotekina
445b7c0758
Optimize SPU interpreter
...
Made SPU decoder similar to PPU decoder
2018-03-01 16:13:35 +03:00
elad
b61a69c877
fix spu interpreter single stepping
2018-02-25 20:30:44 +04:00
Nekotekina
cce0ad0c35
Clean vm::ps3 namespace use
2018-02-09 17:49:37 +03:00
elad
956ae17876
spu: add a missing STOP code
...
should fix #2456
for whatever reason, this call accepts only an empty ouput mailbox, otherwise break
2018-02-06 04:09:07 +04:00
kd-11
ab17b49e15
scheduler stuff
...
- more threads for rsx
- better 1600
2018-01-22 11:43:35 +03:00
kd-11
cbc8bf01a1
cell/scheduler: Manage thread placement depending on cpu hardware
2018-01-19 12:03:57 +03:00
elad
24e97b9e03
SPU: Allow writing to the WrSRR0 channel
2018-01-16 04:34:15 +04:00
elad
5848864f55
SPU: Allow reading of the RdSRR0 channel
...
stupid bug
2018-01-16 04:34:15 +04: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
34e01ba3d8
mfc: Fix support for list transfer stall bit with partial support for out of order execution - Also give Sync commands a size so they are properly detected by queue checks
2017-12-01 20:29:59 +03:00
elad
91fd1465f2
SPU MFC: Clamp tag and size ( #3803 )
2017-11-29 16:28:41 +04:00
Jake
494cbac78b
spu: save and restore mfc cmd after processing
2017-10-28 12:46:20 +03:00
Jake
0d46a8e786
spu: Implement readch(mfc_cmd)
2017-10-28 12:46:20 +03:00
Nekotekina
3a08dd7dde
RawSPU: implement Prxy_TagStatus_offs
...
Rollback to immediate MFC transfers
2017-08-31 22:03:47 +03:00
kd-11
17c399d4e8
spu: acquire_pc rewritten to be more precise in timing
...
- More accurate pauses may slightly reduce performance but makes it more viable
to allow more threads to participate without stuttering
2017-07-27 14:33:30 +03:00
Nekotekina
b24eb621ae
Use RTM instructions (skylake+)
2017-07-20 17:22:09 +03:00
kd-11
582913dc31
spu: Simplify watchdog design (PC is purely HLE and occupies SPU code kernel space only, max 256K)
2017-07-19 23:28:33 +03:00