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
fd525ae1cf
Implement build_function_asm
...
Uses ASMJIT to build function at startup
2018-05-16 15:48:35 +03:00
scribam
196f985283
hle: improve cellSync2 error checks and logging
2018-05-15 22:59:34 +04:00
sftt
27004eb934
Avoid illegal available_user_memory in sys_memory ( #4399 )
...
jarveson says "the comment and minus can be completely deleted/reverted" in 17cf24d0ed
2018-05-15 17:40:45 +01:00
scribam
04ad49de4d
typos
2018-05-14 21:14:39 +04:00
isJuhn
fc23243d01
Fix setParam in cellHddGameCheck
2018-05-14 16:56:47 +01:00
Nekotekina
3c70645f0b
Update SPU cache (v2)
...
Improve SPU analyser: filter unreachable fragments
More strict NOP/LNOP analysis
Fill block predecessors info
ASMJIT: fix assertion and improve indirect branch
2018-05-13 20:40:23 +03:00
Nekotekina
7cb4672344
Travis: remove LLVM for now
2018-05-13 00:03:08 +03:00
Nekotekina
4c7afb6952
Opt-in set DAZ and FTZ
2018-05-13 00:03:08 +03:00
Nekotekina
a77896c1b6
Update LLVM commit, use small code model
2018-05-13 00:03:08 +03:00
Nekotekina
be5c18cc85
SPU Re: more precise jt generation
...
Improve analyser, set v1
Fix branch indirect conditional
2018-05-12 23:50:49 +03:00
Nekotekina
737db90058
Set DAZ and FTZ
2018-05-09 23:38:26 +03:00
Nekotekina
5d15d64ec8
Memory mirror support
...
Implemented utils::memory_release (not used)
Implemented utils::shm class (handler for shared memory)
Improved sys_mmapper syscalls
Rewritten ppu_patch function
Implemented vm::get_super_ptr (ignores memory protection)
Minimal allocation alignment increased to 0x10000
2018-05-09 23:35:34 +03:00
Nekotekina
fe4c3c4d84
Implement SPU recompiler cache
...
Shared between ASMJIT/LLVM recompilers, compiled at startup
2018-05-09 23:35:18 +03:00
Nekotekina
acfe22e5bc
SPU: improve jumptable detection
2018-05-09 22:19:55 +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
a975ecdc4f
Use LLVM 6
2018-05-08 13:05:29 +03:00
Nekotekina
8b704588d0
Update cpu_translator
2018-05-08 13:05:29 +03:00
Nekotekina
db229dffb0
PPU LLVM: minor update
2018-05-08 13:05:29 +03:00
Nekotekina
16f5167aed
SPU Analyser improved
...
This restores some functionality removed in SPU ASMJIT v2.0
Also implements new experimental features
2018-05-08 13:05:29 +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
df453d6d4f
SPU ASMJIT: allow holes in raw block data
...
This is preparation for further changes.
This commit shouldn't affect anything.
2018-05-08 13:05:29 +03:00
Nekotekina
2fecddcde2
SPU ASMJIT: rewrite halt instruction
...
Use conditional memory access to invalid address.
This approach can allow continue (for debugging);
but at the same time it doesn't add function call to recompiled code.
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
f4af3f2987
PPU: improve LWARX/LDARX consistency
2018-05-08 13:05:29 +03:00
Maxetto
dca6f1f863
Update some lv2 syscall names ( #4490 )
2018-05-06 14:21:50 +04:00
scribam
ff1b0d73b7
hle: make cellSubDisplayInit returns CELL_SUBDISPLAY_ERROR_ZERO_REGISTERED
2018-05-06 12:49:44 +04:00
Nekotekina
738a7cac4f
SPU ASMJIT: inline WRCH
2018-04-22 00:06:49 +03:00
Nekotekina
9516250bec
SPU: fix MFC_WrTagUpdate
2018-04-22 00:06:49 +03:00
Nekotekina
2418de7e8b
SPU ASMJIT: inline RDCH
2018-04-22 00:06:49 +03:00
Nekotekina
00ce814501
SPU ASMJIT: inline RCHCNT
2018-04-22 00:06:49 +03:00
Nekotekina
9ad5fc8a08
SPU: rewrite spu_channel_t
2018-04-22 00:06:49 +03:00
Nekotekina
3ffafb741c
SPU ASMJIT: übertrampolines and spu_runtime
...
Use opt-out shared spu_runtime to save memory (Option: SPU Shared Runtime)
Implement "übertrampolines" for dispatching compiled blocks
Patch fixed branch points to use trampolines after check failure
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
Robbie
477522210e
Refactor debugger_frame into subclasses. Mostly trying to simplify
...
breakpoints.
2018-04-21 22:21:51 +04:00
Greg V
633004c820
Fix build with ffmpeg 4.0
2018-04-21 21:06:06 +04:00
Megamouse
8f4fa8a5b6
cellPad: check for more invalid parameters
2018-04-20 17:09:14 +04:00
TheAnig
eb3dfb6bb4
Implemented sysCacheClear() ( #4445 )
2018-04-18 18:17:55 +04:00
TGEnigma
6baf675205
Fixes PPU disasm for branch opcodes
2018-04-16 19:02:06 +04:00
isJuhn
da6f98f310
Fix setParam in cellGameDataCheckCreate2
2018-04-16 15:53:22 +04:00
Nekotekina
ea82b732a3
SPU: fix non-TSX path
2018-04-08 23:30:50 +03:00
GinkREAL
8a51af0b56
cellVdec: Do not decode next frame during end_sequence
2018-04-08 02:51:46 +04:00
Nekotekina
c77b310422
Implement sys_vm_invalidate
2018-04-07 21:18:34 +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