Commit Graph

722 Commits

Author SHA1 Message Date
scribam b09321354a clang: fix compilation on 3.7 2018-07-15 12:51:09 +04:00
scribam 4babe9076b clang: fix compilation on 3.8 2018-07-15 12:51:09 +04:00
kd-11 46abe0f315 vm: Fix memory mirror performance regression 2018-07-14 15:19:56 +03:00
kd-11 c5b2469fe7 silence warning 2018-07-12 18:02:28 +03:00
scribam 3935cef691 pugixml: update submodule and build integration 2018-06-24 02:02:36 +04:00
Nekotekina e4da284176 SPU: analyser v4 and fixes
Build SPU cache after PPU, fix mixing progress
SPU ASMJIT: add support for Giga mode
SPU ASMJIT: use the same spu.log location as SPU LLVM
SPU: improve spu.log disasm
SPU: improve trampolines, unify with SPU ASMJIT
SPU: decode interrupt handler address from BR/BRA at 0x0
SPU LLVM: support Mega/Giga modes
SPU LLVM: implement function chunks
SPU LLVM: use PHI nodes, value visibility across basic blocks
SPU LLVM: implement function chunk table
New simple memory manager for LLVM (bugfix)
2018-06-21 22:29:34 +03:00
VelocityRa 9d431e77a4 Utilities/geometry: Add unsigned specializations to typedefs 2018-06-18 22:34:26 +03:00
Megamouse af71cf0922 implement "Enable TSX" combobox 2018-06-17 00:43:00 +04:00
scribam 968f3995ff Merge branch 'master' into asmjit 2018-06-13 09:27:12 +02:00
scribam 14dc1fead6 yaml-cpp: update submodule and build integration 2018-06-13 04:25:34 +04:00
scribam 3a9778668a asmjit: update build integration 2018-06-12 20:03:53 +02:00
Daniel Valentine fb20c27e7b Delay GDB server launch until emulator run (#4658) 2018-06-08 13:34:27 +01:00
Nekotekina 37577714fa SPU LLVM: emulate PSHUFB
For targets without SSSE3 support
2018-05-30 20:35:35 +03:00
Nekotekina 1193ab0b89 Use memfd_create (Linux) 2018-05-30 20:35:35 +03:00
Jan Beich 3d632a3774 CPUStats: add support for macOS and BSDs 2018-05-30 12:35:41 +03:00
VelocityRa 8981227644 util/thread_ctrl: Method for measuring cycles a thread has run for
Also add a getter for the native thread handle.
2018-05-30 12:35:41 +03:00
VelocityRa 5defa9c7b0 util: Class for getting overall CPU usage and thread count 2018-05-30 12:35:41 +03:00
kd-11 824340363d disable thread scheduler on intel 2018-05-29 13:54:30 +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 33a1c743a4 Transactions: move loops inside
Rewrite loops in assembler (minor optimization)
2018-05-21 00:18:37 +03:00
Nekotekina 0b1c8bc676 Change retire strategy in cond_variable::imp_wait (WIN32)
Instead of waiting infinitely, try and yield until success
2018-05-17 21:29:49 +03:00
Nekotekina 08cd8e0cb1 Cleanup: unused imports 2018-05-17 18:33:44 +03:00
pauls-gh fdef77d779 Set Windows timer resolution to 0,5ms (#4579)
* Fix for https://github.com/RPCS3/rpcs3/issues/4569
(Win 10 update 1803 performance regression)
2018-05-17 15:00:22 +04:00
Jan Beich a68dac7282 JIT: add missing header after fd525ae1cf
In file included from Utilities/JIT.cpp:1:
Utilities/JIT.h:33:23: error: implicit instantiation of undefined template 'std::__1::array<asmjit::X86Gp, 4>'
        std::array<X86Gp, 4> args;
                             ^
/usr/include/c++/v1/__tuple:223:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
2018-05-17 04:42:05 +04: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
Nekotekina a46ef4f29a Increase open file limit on Linux
Add some assertions to VirtualMemory.cpp
2018-05-13 23:56:43 +03:00
Jan Beich 177da2984d VirtualMemory: add missing header after 5d15d64ec8 (#4532)
Utilities/VirtualMemory.cpp:123:8: error: use of undeclared identifier 'errno'
                        if (errno != EEXIST)
                            ^
Utilities/VirtualMemory.cpp:123:17: error: use of undeclared identifier 'EEXIST'
                        if (errno != EEXIST)
                                     ^
2018-05-13 11:34:33 +03:00
Nekotekina a77896c1b6 Update LLVM commit, use small code model 2018-05-13 00:03:08 +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 cfa9b163fd Implement fmt::to_lower
It was strangely removed...
2018-05-09 22:19:55 +03:00
Nekotekina eae78a8711 Improve fs::create_path
Don't fail if already exists
2018-05-09 22:19:55 +03:00
Nekotekina 88dc6b7700 Cfg: add missing get() methods 2018-05-09 22:19:55 +03:00
Nekotekina a975ecdc4f Use LLVM 6 2018-05-08 13:05:29 +03:00
Nekotekina a7c34123a6 Improve dynamic_library 2018-05-08 13:05:29 +03:00
Nekotekina 841d8955de Fix warning (fmt_unveil) 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 0797164fac SPU: fix possible livelock
The bug affects TSX path
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 402ca480cd Fix vm::check_addr usage 2018-04-01 22:39:48 +03:00
Birk Magnussen c5caaa9211 Fix missing Detection for AVX OS Support 2018-03-24 03:30:27 +04:00
Nekotekina 20785b00f6 Implement fmt::base57
For future use
2018-03-22 23:24:58 +03:00
Nekotekina 19944eeed0 Implement SPRX precompilation
Automatically precompile firmware modules
Add "Create LLVM Cache" menu (for games)
Reimplement jit_compiler::cpu as static method
2018-03-22 23:24:58 +03:00
Nekotekina f66d5adf5f Prevent accessing incomplete RPCS3.log.gz
Use permissions to make it inaccessible
On Windows, autodelete the file

Implement fs::unread for this purpose
Rename fs::unshare to fs::lock
Fix fs::lock correctness
2018-03-17 00:39:45 +03:00
Jan Beich e487480ca9 Thread: unbreak build on BSDs after ac82ecf387
Utilities/Thread.cpp:1644:2: error: use of undeclared identifier 'pthread_setname_np'; did you mean 'pthread_set_name_np'?
        pthread_setname_np(pthread_self(), m_name.substr(0, 15).c_str());
        ^~~~~~~~~~~~~~~~~~
        pthread_set_name_np
/usr/include/pthread_np.h:58:6: note: 'pthread_set_name_np' declared here
void pthread_set_name_np(pthread_t, const char *);
     ^
2018-03-13 12:51:22 +04:00
Nekotekina ac82ecf387 Use pthread_setname_np (Linux, GDB) 2018-03-11 19:33:02 +03:00
Nekotekina 4b1c052030 Fix crash on exit after access violation 2018-03-11 19:33:02 +03:00
Nekotekina 7f542a5c99 Fix safe_writer_lock (typo) 2018-03-11 19:33:01 +03:00
Andrey e0f53ace19 Improve GDB debug server (#4027)
* Made GDB debugger working with IDA

* Added async interrupts support

* Report proper thread after pausing

* Support attaching debugger before running app
2018-02-28 19:31:39 +04:00
Nekotekina 76be7d40ac Remove PSP2 2018-02-09 15:24:46 +03:00