Commit graph

1888 commits

Author SHA1 Message Date
Nekotekina c1edae73c5 SPU ASMJIT: move vzeroupper a bit 2019-04-14 15:10:54 +03:00
Nekotekina 8deb20e928 SPU: write cache before compiling 2019-04-13 22:56:11 +03:00
Nekotekina 0d415407c7 sys_fs_unlink: add CELL_EISDIR check 2019-04-12 12:24:36 +03:00
Nekotekina f40320bcae Fix cellVdecOpen
Use pseudo-address in sys_ppu_thread_create calls
2019-04-11 21:20:22 +03:00
TGEnigma 38cc92ec45 Add _sys_ppu_thread_create and sys_ppu_thread_rename error checks 2019-04-11 18:14:05 +03:00
eladash 8da78c098c SPU LLVM: Fix branch to self at start of block state check 2019-04-11 17:47:52 +03:00
eladash eba8e2284b SPU LLVM: Fix CFLTU
Clamp properly result from both sides!

TODO: Figure out whats different CreateFPToUi has from CFLTU and why it fails here.
2019-04-11 17:47:52 +03:00
eladash 969af86eba SPU: Implement BISLED
DFCMGT instruction removed, it was wrong to add to begin with

ASMJIT: Fix compilation of double compare instructions, move exception to runtime instead of compiletime!
Jarves confirmed that he implemented this instruction because of that bug with asmjit only, affected God Of War 3
2019-04-11 17:47:52 +03:00
eladash b307aff9eb Prefetch byteswapped opcodes in ppu interpreter 2019-04-11 17:47:52 +03:00
eladash 1c462abc37 Make sure to update cia when calling in unknown hle table func access 2019-04-11 17:47:52 +03:00
eladash 3304e3b0b7 PPU LLVM: Fix STSWI and LSWI 2019-04-11 17:47:52 +03:00
eladash f028737db8 Implement fallback for PPU LLVM
This matches with interpreter implementation, fixing unregistered functions in lost cases
2019-04-11 17:47:52 +03:00
eladash a9014a8cac ppu Fast/Precise: Fix SIMD instructions VSUM2SWS, VPKSWSS, VPKSHUS, VPKSHSS
Also rewrite VPKSHUS for speed.
2019-04-11 17:47:52 +03:00
eladash e21504d52d ppu interpreter: Improve FPCC field handling 2019-04-11 17:47:52 +03:00
eladash aa44ef1f44 Fix default PPU nj status
TODO: Support  it...
2019-04-11 17:47:52 +03:00
eladash d555eeb0f4 Check start status in sys_prx_start/stop_module 2019-04-11 17:47:52 +03:00
Inviuz 52a12185a0 Initial sys_overlay 2019-04-10 23:25:09 +03:00
scribam 1d947daa81 hle: Add some more functions 2019-04-10 22:15:35 +03:00
Nekotekina 40142420c1 Implement vfs::host::unlink
Emulate POSIX behaviour in sys_fs_unlink.
This should allow to delete opened files transparently on Windows.
2019-04-10 13:58:12 +03:00
Nekotekina 9736773c04 Implement vfs::host::rename
With spurious access error workaround
2019-04-10 13:58:12 +03:00
Nekotekina 3354f068fc PPU/SPU transactions: ease cache line interference (TSX path)
Touch memory on the same memory page, but different cache lines.
2019-04-10 13:58:12 +03:00
scribam f30af3ccd2 hle: Add more missing functions 2019-04-07 23:31:15 +03:00
scribam 8dbf2638e2 hle: Add some missing functions
0xBA50BC23 => cellCelpEncOpenExt
0x1AC58D11 => cellHttpFlushCache
0xA39FE9DC => cellHttpEndCache
0xB4FA3111 => cellHttpInitCache
0x4A18A89E => sceNpMatchingSetRoomInfoNoLimit
0xB020684E => sceNpMatchingGetRoomInfoNoLimit
2019-04-05 17:28:10 +01:00
eladash 182054b8af Implement sys_vm_append/return_memory 2019-03-31 14:57:21 +03:00
eladash 3c0564c9b7 Fix timer state after event queue was destroyed
* Hw tests show state is unaffected by external destruction of the event queue

* Minor race regarding state check fixed (can result in an undestroyable state)
2019-03-31 14:57:21 +03:00
eladash 90490f775d Fix sys_timer_usleep specifically with 0 sleep time
Remove context switch, replace it with host yield() for giving some cpu time for SPUs ans RSX
2019-03-31 14:57:21 +03:00
eladash 1ed2055ec1 Fix cellVdecGetPicItem element popping behaviour 2019-03-31 14:57:21 +03:00
eladash f2bbae9db4 Remove handle in cellVdecClose 2019-03-31 14:57:21 +03:00
eladash 8eb59271a5 Improve error checking of cellVdecOpen
Those are the initial argument checks done by the firmware
2019-03-31 14:57:21 +03:00
eladash d6025c6764 Fix cellPadGetInfo port status returned
ASSIGN_CHANGES flag is not returned in this func.
2019-03-31 14:57:21 +03:00
eladash 47ca1b1dda Minor optimizations in cellPad
- Dont bother with shared_ptr since all pad_t management is going under the pad mutex.

- Change m_pads type into std::array since its size is known
2019-03-31 14:57:21 +03:00
scribam f15eb88f59 hle: Fix cellSysutilAvcExt module
And add cellSysutilAvcExtSetChatMode and cellSysutilAvcExtSetChatGroup
functions
2019-03-31 00:55:55 +03:00
scribam 1916cc1691 hle: Add cellSysmoduleUnloadModuleInternal and cellSysmoduleLoadModuleInternal functions 2019-03-30 23:52:56 +03:00
scribam f369aeab7a hle: Add FT_Get_X11_Font_Format function 2019-03-30 23:52:56 +03:00
scribam 0e9313d2df hle: Add cellFontInitLibraryFreeType function 2019-03-30 23:52:56 +03:00
Nekotekina d873802b9c Use LLVM 9
Use new add/sub with saturation intrinsics
2019-03-30 01:36:48 +03:00
Nekotekina 7e0b941e9f PPU LLVM: implement get_vrs<>() adaptor
Make use of structured bindings
2019-03-30 01:36:48 +03:00
Nekotekina d77fed6105 SPU LLVM: remove wrong dead code 2019-03-29 17:00:53 +03:00
scribam a254a203bb hle: Add libad_async and libad_core modules 2019-03-27 21:41:44 +00:00
Nekotekina 71b88cdc82 New SPU interpreter (SPU fast)
Use LLVM to build SPU interpreter.
Simplify interpreter loop.
2019-03-27 20:33:44 +03:00
scribam a9eb321814 hle: Add sceNpEulaAbort function 2019-03-26 23:19:01 +03:00
scribam 956d039415 hle: Add cellVideoPlayerUtility module 2019-03-24 19:16:49 +03:00
scribam 581b205f73 hle: Add cellPesmUtility module 2019-03-24 19:16:49 +03:00
scribam 6c40b9f3e0 hle: Add cellDtcpIpUtility module 2019-03-24 19:16:49 +03:00
scribam d6bf18eabc hle: Add some sceNpMatchingInt functions 2019-03-24 17:29:18 +03:00
scribam 32ae7e466c hle: Add cellNetAoi module 2019-03-24 17:29:18 +03:00
Nekotekina 7ea04d5d76 Minor optimization in SPU analyser
Reduce vector copy/allocation
2019-03-23 02:43:41 +03:00
Nekotekina 4b381fbbb1 Implement spu_runtime::reset
To handle JIT: Out Of Memory error.
2019-03-23 02:43:41 +03:00
Nekotekina 1880a17f79 SPU recs: implement spu_runtime::find
Use this function to link to existing functions from branch patchpoints.
Don't compile from branch patchpoints.
2019-03-23 02:43:41 +03:00
Nekotekina 31304f4234 SPU rec: refactor some trampoline generation
Move branch/dispatch trampoline generation at startup.
2019-03-23 02:43:41 +03:00