JohnHolmesII
be521ff0ab
Fix warnings related to parentheses
2019-06-25 20:36:32 -07: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
Eladash
cd0ef99df5
Fix BE endianess arch support in semaphore_406e ( #6116 )
...
Add raw() methods for endianness support types and make use of it.
2019-06-21 19:29:49 +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
Rui Pinheiro
b94730fa95
Fix dynamic_library::loaded
2019-06-16 21:31:38 +03:00
kd-11
0d906d6974
rsx: Remove surface aa_mode hacks
2019-06-14 16:19:52 +03:00
scribam
497f0c26e7
utilities: Add constexpr to color4_base
...
For consistency with the others colorX_base
2019-06-12 10:59:31 +01:00
Eladash
d6db61c594
misc atomics: Use std::atomic_thread_fence (MSVC)
2019-06-11 12:18:04 +03:00
Nekotekina
1dedeb37bf
Fix lf_queue_base::wait
...
Add missing state change
2019-06-05 15:51:25 +03:00
Nekotekina
b2e08100ff
Fix sad bug
2019-06-04 19:13:30 +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
0333942795
Change utils::popcnt16 to popcnt32
...
Use __builtin_popcount if available.
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
Malcolm Jestadt
f90f68d129
Detect tsx_force_abort presence and print to log
2019-06-01 17:46:57 +03: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
a6cde36dc4
Link LLVMAsmParser library
2019-05-19 17:46:55 +03:00
scribam
786dc6ef40
Use if constexpr in hash_struct function
2019-05-12 18:32:11 +03:00
scribam
6c5ea068c9
Remove redundant semicolons
...
Fix "-Wextra-semi" warnings
2019-05-12 18:32:11 +03:00
Nekotekina
5d33d9a3d9
Enable most warnings in GCC
2019-05-11 02:13:19 +03:00
Nekotekina
7492f335e9
SPU analyser: basic function detection in Giga mode
...
Misc: fix EH frame registration (LLVM, non-Windows).
Misc: constant-folding bitcast (cpu_translator).
Misc: add syntax for LLVM arrays (cpu_translator).
Misc: use function names for proper linkage (SPU LLVM).
Changed function search and verification in Giga mode.
Basic stack frame layout analysis.
Function detection in Giga mode.
Basic use of new information in SPU LLVM.
Fixed jump table compilation in SPU LLVM.
Disable broken optimization in Accurate xfloat mode.
Make compiled SPU modules position-independent in SPU LLVM.
Optimizations include but not limited to:
* Compiling SPU functions as native functions when eligible
* Avoiding register context write-out
* Aligned stack assumption (CWD alike instruction)
2019-05-11 02:13:19 +03:00
msuih
be6d9af1ab
Print OS info to log
...
Credit to @maximilian578 for help
2019-04-25 20:20:37 +03:00
Megamouse
b929c13c45
implement get_firmware_version
...
add firmware version to the first line in the log
2019-04-16 22:13:28 +02:00
Nekotekina
e064b92058
mutex.h: fix warning (unary minus unsigned)
2019-04-13 22:56:11 +03:00
Nekotekina
d52df9352c
fs::rename, use renameat2 on Linux
2019-04-13 22:56:11 +03:00
Nekotekina
0736fc8b28
Add fs::file::set_delete
2019-04-10 13:58:12 +03:00
Nekotekina
a54d9c527f
Simplify fs::file::get_handle
...
Via fs::file_base::get_native_handle method
2019-04-10 13:58:12 +03:00
eladash
a3f65084df
Fix sys_process_exit2 when SPUs are at av handler
2019-03-31 14:57:21 +03:00
eladash
16f86b2458
Fix page fault area range check
...
Range end check was bugged (always true), also rewrite it so vm::get would be called only once
2019-03-31 14:57:21 +03:00
Nekotekina
d873802b9c
Use LLVM 9
...
Use new add/sub with saturation intrinsics
2019-03-30 01:36:48 +03:00
Nekotekina
4b381fbbb1
Implement spu_runtime::reset
...
To handle JIT: Out Of Memory error.
2019-03-23 02:43:41 +03:00
Nekotekina
849411693a
PPU LLVM: add MemoryManager3
...
For temporary allocations.
Add flags in jit_compiler constructor.
2019-03-23 02:43:41 +03:00
Jan Beich
1a13d3ae4e
OpenBSD doesn't have mcontext_t
...
`<signal.h>` provides `typedef struct sigcontext ucontext_t`
2019-03-19 22:24:49 +03:00
kd-11
bb65e45614
rsx: Implement GPU acceleration for rotated images
2019-03-17 21:50:11 +03:00
RipleyTom
980c3d6fe8
Fix lf_queue destructor
2019-03-13 15:59:13 +03:00
Nekotekina
eae5b9e049
Rewrite mulh64/umulh64
...
Use __int128_t/__uint128_t idioms on GCC/Clang.
May result in better codegen by avoiding inline asm.
2019-03-13 00:16:43 +03:00
eladash
4a28319edf
Implement SPU page faults notifications
...
* Implement both RawSPU and threaded SPU page fault recovery
* Guard page_fault_notification_entries access with a mutex
* Add missing lock in sys_ppu_thread_recover_page_fault/get_page_fault_context
* Fix EINVAL check in sys_ppu_thread_recover_page_fault, previously when the event was not found begin() was erased and
CELL_OK was returned.
* Fixed page fault recovery waiting logic:
- Do not rely on a single thread_ctrl notification (unsafe)
- Avoided a race where ::awake(ppu) can be called before ::sleep(ppu) therefore nop-ing out the notification
* Avoid inconsistencies with vm flags on page fault cause detection
* Fix sys_mmapper_enable_page_fault_notification EBUSY check
from RE it's allowed to register the same queue twice (on a different area) but not to enable page fault notifications twice
2019-03-12 13:28:31 +03:00
Nekotekina
efe067bfa0
LLVM: handle cascadelake CPU name
2019-03-05 21:47:34 +03:00
Nekotekina
ebb24375d1
LLVM: handle icelake-client and icelake-server CPU names
...
Correct AVX / AVX-512 disabling logic
2019-03-01 00:20:04 +03:00
Nekotekina
7f6a410770
Add dummy __has_builtin macro, use rotate builtins if possible
2019-03-01 00:08:19 +03:00
Nekotekina
9ee2867247
Improve count leading/trailing zeros implementation
...
Use x86 intrinsics if compiled with appropriate instruction support
2019-03-01 00:08:19 +03:00
Nekotekina
7b344b7654
Implement utils::refptr for typemap (with && syntax)
...
Ref-counted pointer, object is always allocated on heap.
Rvalue reference && in typemap is converted to refptr for convenience.
2019-03-01 00:08:19 +03:00
Nekotekina
6c5d9fffaa
typemap: improve pointer support
...
If stored object is a pointer, access dereferenced object directly via ->
2019-03-01 00:08:19 +03:00
eladash
25aa5f80a6
Fix access violations reporting on RSX
...
and on other threads that do not have cpu_thread handler
2019-01-30 18:44:29 +03:00
eladash
b61492ca30
Dont call std::terminate() after normal access violation handling
2019-01-30 18:44:29 +03:00
Nekotekina
f50d9cc136
Initial support for HLE in internal API
...
atomic_storage<>: add compare_exchange_hle_acq and fetch_add_hle_rel
shared_mutex: add methods (un)lock_hle and (un)lock_shared_hle
Clang: 👅
2019-01-29 04:33:59 +03:00
Nekotekina
58358e85dd
spu_runtime::add minor optimization
...
Use preallocated vectors in trampoline generation subroutine
2019-01-29 03:32:16 +03:00