Nekotekina
67391322f4
Transactions: touch memory only after a failure
...
Minor optimization
2018-05-17 22:19:26 +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
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
f4af3f2987
PPU: improve LWARX/LDARX consistency
2018-05-08 13:05:29 +03:00
Robbie
477522210e
Refactor debugger_frame into subclasses. Mostly trying to simplify
...
breakpoints.
2018-04-21 22:21:51 +04: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
d392379c7a
Use vm::passive_lock for SPU threads
2018-04-06 15:47:00 +03:00
Nekotekina
402ca480cd
Fix vm::check_addr usage
2018-04-01 22:39:48 +03:00
Nekotekina
a3db2774f1
[LLVM] Fix thread limiter
...
Allow to apply max llvm threads setting as usual
2018-03-31 20:35:30 +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
Jake
7bbadfd08b
ppu/sys_interrupt: add stack_reset command to fix sys_interrupt stack overflowing
2018-03-09 20:30:59 +04: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
cce0ad0c35
Clean vm::ps3 namespace use
2018-02-09 17:49:37 +03:00
Megamouse
b9c10a186d
Qt/Core: implement max llvm compile threads
2018-01-26 01:57:05 +04:00
kd-11
cbc8bf01a1
cell/scheduler: Manage thread placement depending on cpu hardware
2018-01-19 12:03:57 +03:00
TGEnigma
d770a42349
Fix debug build
2018-01-06 04:45:55 +04:00
Nekotekina
198e9dce1d
Fix #4005 regression
...
Delay unregister EH frames (Linux)
2018-01-01 10:41:07 +03:00
VelocityRa
383c501a35
[gui] Show total number of llvm compilation dialogs
...
- Doesn't account for dynamic libraries loaded after the fact,
but usually good enough since
1) Those aren't even present in some games
2) They usually only have about 1 or 2 fragments (dialogs) each.
2017-12-31 22:08:17 +03:00
Nekotekina
d40aaf0391
PPU: use shared jit_compiler instance
...
(Linux) Fix deregisterEHFrames error message
2017-12-31 22:08:17 +03:00
Nekotekina
0a89f1db39
Fix primary stack size
2017-12-25 21:08:15 +03:00
Nekotekina
83da7f9b63
PPU: remove SSSE3 dependency
2017-12-20 01:21:15 +03:00
Nekotekina
ac64792d99
Optimize PPU module loading
...
I'm garbage 🤦
2017-10-11 20:06:33 +03:00
Nekotekina
efe140bc0c
Fix instruction editor a bit
2017-10-11 20:06:33 +03:00
Nekotekina
e5f756205c
sys_net full rewrite
...
Implement sys_net syscalls
Clean libnet functions
Use libnet.sprx
Use libhttp.sprx
Use libssl.sprx
Use librudp.sprx
Implement sys_ss_random_number_generator
2017-10-05 19:51:37 +03:00
Nekotekina
b9b71ccbc1
Implemented syscall _sys_process_exit
2017-09-19 15:07:07 +03:00
Robbie
47685bef39
If the loop is never entered, then the jit is null.
2017-09-10 18:51:59 +03:00
Ofek
caab400258
Various fixes (Trophy, Gcm corrections, stack alloc) ( #2894 )
...
* Fixed sys_get_random_number generating less bytes than needed, and ceiling the buffer size in 0x1000 instead of failing
* Corrected alignment check in libgcm
* Now calling callback of sceNpManagerRegisterCallback
* Fixed trophies
2017-09-02 14:43:44 +03:00
Nekotekina
a85caaee1d
Set PPU stack bounds
2017-09-01 21:24:43 +03:00
Nekotekina
2bc57fbee3
LLVM: Add error message
2017-07-23 11:03:38 +03:00
Nekotekina
42b06af577
Force recompiling liblv2.sprx
2017-07-23 11:03:38 +03:00
Nekotekina
b24eb621ae
Use RTM instructions (skylake+)
2017-07-20 17:22:09 +03:00
Nekotekina
2ef2f0f63b
PPU LLVM: simplify module loading
2017-07-17 16:49:46 +03:00
Nekotekina
73a2a937c4
PPU LLVM: reuse loaded executables
2017-07-12 14:00:38 +03:00
Nekotekina
f0d184f38b
PPU LLVM: relocation support
2017-07-04 02:04:22 +03:00
Nekotekina
3c064439b3
PPU LLVM: new mptr/cptr format
2017-06-29 17:48:55 +03:00
Nekotekina
aa34fa8baa
PPU LLVM: some passes disabled
2017-06-29 17:48:55 +03:00
Nekotekina
fc2a45d6d6
Removed unnecessary code
2017-06-29 17:48:55 +03:00
Nekotekina
89f676de75
PPU: preparations (no fixes)
2017-06-26 16:56:13 +03:00
Nekotekina
8034196c25
ppu_syscall_code type added (for fmt)
2017-06-26 16:56:13 +03:00
Nekotekina
f49a30bc1a
PPU LLVM: disable unnecessary passes
2017-06-26 16:56:13 +03:00
Nekotekina
1196e9decc
PPU LLVM: remove unnecessary code
2017-06-26 16:56:13 +03:00
Nekotekina
cd4f290d3d
PPU LLVM: v2, simplification (no allocas)
2017-06-26 16:56:13 +03:00
Nekotekina
9738ce0cf6
LLVM: fix cancellation
2017-06-26 16:56:13 +03:00
Nekotekina
e5ae32e5f3
Fix #ifdef style
2017-06-26 16:56:13 +03:00
Nekotekina
6561ddae41
PPU LLVM: multithread compilation
2017-06-24 19:12:19 +03:00
Nekotekina
aea094730b
PPU LLVM: paradigm shift
...
For now, compile only one block at time
Use tail calls to move between blocks
Fully write PPU context (except CIA)
This fixes many compatibility problems
2017-06-23 20:09:33 +03:00