Lassi Hämäläinen
c963c51a60
Remove unnecessary header includes
...
- Manually removed lot of unneeded #includes to clean code and reduce
compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
e9e87b8bd9
Add missing #includes to header files
...
- Multiple header files where missing #includes to other headers that
where used in the header. Correct header was included in correct
order in source files which caused everything to compile.
- Added missing #includes so header files correctly include all their
dependencies and fixes problems with IDEs being unable to parse
headers correctly due to missing symbols
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
499035512b
Split Emu/Memory into more logical headers
...
- Add vm_locking.h and vm_reservation.h and move relevant functions
and types to these headers.
- Change include order and make vm_ptr.h, vm_var.h and vm_ref.h headers
usable invidually and them including vm.h instead of other way around
- Because usage of vm::ptr now requires including vm_ptr.h instead of
vm.h updated multiple #includes
- Added additional #includes to vm_reservation.h and vm_locking to
where vm::reservation_* and locking related functions are used
2019-06-25 17:11:10 +03:00
Eladash
ade291e73d
Fix potential overflow in sys_vm
2019-06-21 00:02:52 +03:00
Nekotekina
517a2bc34a
sys_lwcond: add vm::temporary_unlock
2019-06-20 14:46:32 +03:00
Nekotekina
a935203a18
sys_lwmutex: add vm::temporary_unlock
2019-06-20 14:46:32 +03:00
Nekotekina
b9b591bf02
Fix SPU Loop Detection
2019-06-20 14:46:32 +03:00
Nekotekina
5753b3222e
sys_memory: add vm::temporary_unlock
2019-06-19 20:45:59 +03:00
Nekotekina
d021d9e14a
sys_mutex: add vm::temporary_unlock
2019-06-19 20:39:39 +03:00
Nekotekina
89a31292dc
sys_cond: add vm::temporary_unlock
2019-06-19 20:39:29 +03:00
Nekotekina
5d45a3e47d
Implement cpu_thread::suspend_all
...
Remove Accurate PUTLLC option.
Implement fallback path for SPU transactions.
2019-06-19 20:36:12 +03:00
Eladash
d52953fca6
minor UB fix
2019-06-17 02:52:43 +03:00
Ivan
0fe26f8293
Add sys_rsx_context_iomap workaround
...
Don't fail with CELL_EINVAL on vm::main.
2019-06-17 01:17:02 +03:00
Megamouse
b29a89807e
cellPad: set len to 0 if pads are being intercepted by the system
2019-06-15 00:24:10 +02:00
Megamouse
3f00b485a0
cellMsgDialogAbort: don't call on_close and properly re-enable pads
2019-06-15 00:24:10 +02:00
Nekotekina
2bc0ea37ab
sys_fs: yield PPU on disk access ops
2019-06-08 19:34:55 +03:00
Nekotekina
9dc0368079
Rename cond_x16 to shared_cond
...
Extend capacity from 16 to 32.
Remove redundant m_total counter.
2019-06-04 16:37:50 +03:00
Nekotekina
447029a700
Implement fs::file::write_gather (Vectored I/O)
2019-06-03 23:18:39 +03:00
Nekotekina
31994dd3b2
Rename cond_one to unique_cond
...
Remove redundant in_cv in cellVdec
2019-06-02 23:22:16 +03:00
Nekotekina
dfd50d0185
Implement std::bit_cast<>
...
Partial implementation of std::bit_cast from C++20.
Also fix most strict-aliasing rule break warnings (gcc).
2019-06-02 23:22:16 +03:00
scribam
790962425c
Fix some "-Wpedantic" warnings
2019-06-01 22:59:23 +03:00
scribam
09c9996f31
Use empty() instead of comparing size() with 0
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/readability-container-size-empty.html
2019-06-01 22:59:23 +03:00
scribam
bf557ea6e6
Use the more efficient character literal overload for find_first_of/find_last_of
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html
2019-06-01 22:59:23 +03:00
Megamouse
cafa4521ee
Better Support For Game Collections ( #4450 )
2019-06-01 01:12:30 +03:00
Megamouse
f48589005d
handle some more warnings
2019-05-28 21:47:49 +02:00
Megamouse
34964e0e4f
handle some warnings
2019-05-28 21:47:49 +02:00
Nekotekina
71b71537a0
SPU TSX: implement Accurate PUTLLC option
...
Allow spurious PUTLLC failure if disabled (default).
2019-05-25 22:23:23 +03:00
Nekotekina
b839cc9d5b
SPU TSX: restore busy_wait in GETLLAR
2019-05-25 21:41:11 +03:00
Nekotekina
7de3c410cf
SPU/PPU: update reservation logic on TSX path transactions
...
Make use of lock bits in reservation counters.
On PPU, fallback to compare_and_swap instead of desperate retry.
On SPU, lighten write set on retry by 'locking' outside of the transaction.
2019-05-20 14:32:50 +03:00
Nekotekina
9abb303569
vm: expand reservation lock bit area to 7 bit
...
This is minor change.
2019-05-19 17:46:55 +03:00
Nekotekina
85920253b3
SPU ASMJIT: fix BISLED
...
Properly prevent losing branch target (addr) vs get_events result (flags).
Move get_events() to the beginning.
Match BISL indirect_branch() args.
2019-05-17 23:44:19 +03:00
Nekotekina
6416fee986
SPU ASMJIT: fix indirect branch target order
...
Check stack mirror first, as in SPU LLVM.
2019-05-17 23:44:19 +03:00
Nekotekina
bf7ee2de4c
SPU: fix spu_runtime::g_tail_escape (unused yet)
2019-05-17 23:44:19 +03:00
Nekotekina
2cf139c7a8
SPU analyser: minor Safe fix
...
Properly handle known indirect branch target as a function call target.
2019-05-17 23:44:19 +03:00
Nekotekina
a016728a9e
SPU LLVM: re-enable stack mirror
...
It was disabled due to other bugs which should be fixed now.
2019-05-16 04:12:08 +03:00
Nekotekina
a69329fe02
SPU ASMJIT: Fix Giga mode
...
This is embarassing.
Fixed local instruction table computation (indirect branch).
2019-05-16 04:11:05 +03:00
Nekotekina
26d131ef29
SPU LLVM: Fix Giga mode
...
Forgot to adjust global chunk table computation.
2019-05-16 04:02:33 +03:00
Nekotekina
91897fa69d
SPU LLVM/ASMJIT: fix BRA/BRASL instructions for PIC
...
Handle absolute branch addressing correctly.
2019-05-16 02:41:31 +03:00
Nekotekina
f95ec8a37c
SPU LLVM: simplify jump table computation
...
Remove one add operation and adjust constants instead.
2019-05-16 00:54:50 +03:00
Nekotekina
b138d25b97
SPU Disasm: fix absolute addressing in some instructions.
...
STQA, LQA, BRA, BRASL instructions.
2019-05-16 00:53:37 +03:00
Nekotekina
a921af1e96
SPU LLVM/ASMJIT: remove minor unnecessary code
2019-05-16 00:52:52 +03:00
Nekotekina
43ae4b3f33
SPU LLVM/ASMJIT: add missing PC clamping
...
Minor fix, since it's mostly impossible to overflow.
2019-05-16 00:51:47 +03:00
Nekotekina
007108100e
SPU: implement spu_runtime::g_tail_escape
...
May help to avoid gateway costs in some cases.
2019-05-15 18:47:40 +03:00
Nekotekina
4e75d2c2f7
SPU LLVM: don't save $2 in optimized functions
2019-05-15 16:41:57 +03:00
Nekotekina
adc7d96683
SPU LLVM: simplify function prototype
...
Pass only $3
2019-05-15 16:18:13 +03:00
Nekotekina
16401722f1
SPU LLVM: fix $SP passing in functions, write PC on halt
...
Allows to skip updating $SP in optimizable functions.
2019-05-15 15:42:03 +03:00
Nekotekina
09eb633f69
SPU ASMJIT: increase stack frame size
...
It seems Windows has minimal stack frame size 0x28.
2019-05-15 02:16:08 +03:00
Nekotekina
3753d27aba
SPU: fix Giga mode (kinda)
...
Don't scan before the entry point.
Disable stack mirror in SPU LLVM.
Improve analyser logic for holes.
2019-05-14 22:15:04 +03:00
Nekotekina
c481472faf
SPU ASMJIT: add PIC support (fix)
...
Also cleanup and adapt for GHC CC.
2019-05-14 22:15:04 +03:00
Nekotekina
82295d131a
SPU LLVM: split LLVM IR dump to spu-ir.log
...
Also move disasm to spu_recompiler_base::dump.
Interleave disasm with block target info for convenience.
2019-05-14 22:15:04 +03:00