1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 02:32:36 +01:00
Commit Graph

1671 Commits

Author SHA1 Message Date
Eladash
300701a06b Make page faults entry enqueue and event atomic 2023-06-02 08:54:46 +03:00
Eladash
3d8d9ef61c Threads.cpp: Fix infinite looping 2023-06-02 08:54:46 +03:00
Megamouse
f96a0ce9d2 Trophies: Add more sanity checks to pugixml backend 2023-05-30 19:11:57 +02:00
Megamouse
cb1b71bc57 Qt: fix emulated button reset 2023-05-25 20:37:15 +02:00
Eladash
f031cd9b42 Take advantage of WIN10 Thread Name API 2023-05-24 20:39:51 +02:00
Megamouse
f5c48a00b4 Fix log message 2023-05-18 09:15:49 +02:00
Dark
24dde5d42b Implement support for emulating Rock Band 3's MIDI Pro Adapter
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2023-05-17 22:59:44 +02:00
oltolm
b7b87096d8 fix: make ASAN work on Windows 2023-05-06 10:17:58 +02:00
brian218
6a41b22a1b sys_fs: Further implemented cellFsArcadeHddSerialNumber (0xc0000007) 2023-05-06 10:26:37 +03:00
Ivan Chikish
3cf8c629fa X86 SigHandler: Add support for BEXTR instruction
BEXTR is emitted for znver CPUs in recent LLVM.
2023-05-05 18:03:50 +03:00
Megamouse
ad5a62b62d Loader: split add_only into own function
The new code does not require any modifications apart from loading vfs
2023-04-28 17:16:04 +02:00
kd-11
b060165817 jit: Fix vec_cmp_eq<u32>
- Emit pcmpeqd instead of the incorrect pcmpeqw
2023-04-15 12:16:15 +03:00
Eladash
79d09d02ed Add savestate buttons to home menu 2023-04-13 20:46:37 +02:00
Ivan Chikish
06b0e35fb9 Update to LLVM 16.0.1
Fix Zen4+ AVX-512 detection
2023-04-11 12:13:09 +03:00
Ivan Chikish
fb88e1c1c9 Update to LLVM 16.0.0, switch to upstream LLVM 2023-04-06 10:19:31 +03:00
RipleyTom
0f45a8c180 Fix inaccuracies pointed out by PVS-Studio 2023-03-25 08:45:30 +01:00
RipleyTom
c98158b460 Add buf_to_hexstring 2023-03-18 01:51:35 +01:00
oltolm
520524285a
llvm: update code to new API (#13500)
* llvm: update code to new API

* llvm: remove OLDLLVM define
2023-03-11 01:57:21 +03:00
Megamouse
cc145eaf2e patches: fix move_file/hide_file error 2023-03-04 19:18:36 +01:00
Megamouse
92ae57c9ee Windows: log more descriptive errors 2023-03-04 18:34:56 +01:00
Eladash
382a7c94a2 Patches: Virtual move/remove game files patches 2023-03-03 20:56:11 +01:00
Megamouse
e46dba43ad config: try to fix float locale issues 2023-02-25 11:23:07 +01:00
Megamouse
afad96a52a Qt: try to fix QString::toDouble locale nonsense 2023-02-25 11:23:07 +01:00
kd-11
7db6594358 rsx/overlays: Use lf_queue for a lock-free stack implementation 2023-02-24 00:46:53 +03:00
Megamouse
ccb7528a59 fix some warnings 2023-02-22 23:57:20 +01:00
Megamouse
f0c8f6d47b patch_manager: check config values before applying them 2023-02-22 01:17:36 +01:00
Megamouse
a29dc3893f patch_manager: change wording 2023-02-22 01:17:36 +01:00
Megamouse
c6f392bf6c patch_manager: allow multiple dynamic values 2023-02-22 01:17:36 +01:00
Megamouse
f2ded2fdb7 patch_manager: Add dropdown labels 2023-02-22 01:17:36 +01:00
Megamouse
080737fd1f patch_manager: add more dynamic to dynamic patches 2023-02-22 01:17:36 +01:00
Megamouse
1040757556 patch_manager: add ability to add dynamic patches 2023-02-22 01:17:36 +01:00
Margen67
5bb89328d0 Remove whitespace 2023-02-15 08:58:02 +01:00
Megamouse
9375e255e1 overlays: add pages to home menu 2023-02-09 20:36:35 +01:00
Jan Beich
3eaa29e7c2 Thread: silence -Wsign-compare on FreeBSD aarch64
Utilities/Thread.cpp:1805:48: error: comparison of integers of different signs: 'uptr' (aka 'unsigned long') and '__register_t' (aka 'long') [-Werror,-Wsign-compare]
        const bool is_executing = uptr(info->si_addr) == RIP(context);
                                  ~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~
2023-01-19 18:49:06 +03:00
brian218
d2dc57585c sys_fs: Improved sys_fs_fcntl(0xc0000015&0xc000001c) 2023-01-18 08:09:35 +01:00
kd-11
439bdde849 rsx: Fix printing of expected values 2023-01-11 16:48:53 +03:00
Megamouse
9b7eaf5117 Improve error logging 2023-01-09 21:06:51 +01:00
Elad Ashkenazi
382a27cb2f
Allow to cancel dir size calculation (#13134) 2022-12-30 09:34:35 +01:00
Nekotekina
eeda958f33 fs: fix read/read_at/write (Unix)
It's known that too huge read can require multiple syscalls.
2022-12-29 16:19:54 +03:00
Nekotekina
2f9cac8d18 fs: implement file::read_at
Reads from the given offset; does not seek; thread-safe.
2022-12-29 16:19:54 +03:00
Megamouse
96c6dc01eb Qt: Implement config check in Utilities and log viewer 2022-12-22 09:09:51 +01:00
Elad Ashkenazi
baa2768a69 StrUtil.h: Prevent an overflow in strcpy_trunc 2022-12-17 19:55:16 +01:00
kd-11
04fb86556a rsx: Fix surface metadata life-cycle
- Beware of clone operations. Blindly inheriting the parent's metadata is wrong.
- It is possible, especially when reusing a pre-existing slice, that the parent and child info has diverged
2022-12-17 20:16:58 +03:00
Eladash
8980fc5524 rsx: Fix exceptions 2022-12-17 14:27:20 +01:00
Eladash
7df093c94b Make it work with LLVM
Allow multiple entries for a single code.
2022-12-09 21:16:05 +03:00
Eladash
f572e29a13 PPU: Add new patch function for SONIC 06 2022-12-09 21:16:05 +03:00
kd-11
0aaa40cd53 ux: Update vcredist links and optionally disable help text from error dialog 2022-12-06 20:46:35 +01:00
Megamouse
a6b44ea1bb Qt: support fatal error as htmk 2022-12-06 20:46:35 +01:00
Elad Ashkenazi
ad3ea966cb
Add RPCS3/games/ for automatic games detection, support PSN games outside HDD0 (#12982)
* SFO: Do not load PARAM.SFO with illegal TITLE_ID
* Add support for PSN games outside HDD0
* Add RPCS3/games/ for automatic game detection
2022-12-02 13:18:07 +03:00
Eladash
e9e139c364 logs improvements
* Do not use unsafe pointer arithmetics exceeding existing memory. (exceeding m_fptr)
* Properly use the enire 32MB of the buffer, previously only 16MB were used for cuncurrent access.
* Fix a bug occurring after attempting to push 1TB (40 bits).
* Flush the log before hitting a debugging breakpoint.
2022-11-28 18:52:11 +03:00
Eladash
8b934abcf2 Improve error_code, make HDD1 errors be warnings 2022-11-26 16:33:47 +03:00
Nekotekina
bf388e5428 cfmt/StrFmt: support s128 formatting (untested) 2022-11-26 09:30:11 +03:00
Eladash
b57ab74ee7 cfg: Partial support for case-insensitivity for true-false settings 2022-11-05 10:36:46 +01:00
Eladash
0113224cb6 cfg: Implement float config entry
Add missing string empty checks
2022-10-24 00:10:37 +02:00
Nekotekina
6ff6a4989a Implement at32() util
Works like .at() but uses source location for "exception".
2022-09-26 18:04:15 +03:00
Nekotekina
a604394b20 BufferUtils: fix regression on AVX path
primitive_restart_impl::upload_untouched was broken.
Bug in vec_broadcast_gpr on AVX path.
2022-09-24 17:23:12 +03:00
Nekotekina
b49a1f27eb Warning fixes 2022-09-17 16:35:02 +03:00
Nekotekina
a9437d69ab simd_builder: fixups
Fix resetting vmask in reduce() step.
Fix AVX-512 loads in vec_load_unaligned().
Fix bzhi reg size in build_look().
2022-09-08 18:12:15 +03:00
Nekotekina
5d91caebe9 Linux: delete /tmp/perf.map on exit 2022-09-08 16:56:06 +03:00
Nekotekina
82258915da BufferUtils: rewrite remaining intrinsic code with simd_builder 2022-09-07 17:59:07 +03:00
Nekotekina
11a1f090d3 BufferUtils: simd_builder refactoring
Some simplifications implemented.
2022-09-07 17:59:07 +03:00
Elad Ashkenazi
b7599c0f30 Update Thread.cpp 2022-08-31 22:19:05 +03:00
Elad Ashkenazi
d8494ef1ae Update Thread.cpp 2022-08-31 22:19:05 +03:00
Elad Ashkenazi
727b32e886 RawSPU: Do not assume GPU memory fault on SPU MMIO 2022-08-31 22:19:05 +03:00
Nekotekina
80f0741103 simd_builder: fix constant locations 2022-08-29 14:32:56 +03:00
Nekotekina
e28707055b Implement simd_builder for x86
ASMJIT-based tool for building vectorized loops (such as ones in BufferUtils.cpp)
2022-08-28 18:38:52 +03:00
Eladash
daf43989fc Thread.h: Improve thread abort performance 2022-08-25 23:54:56 +03:00
Eladash
506b9deec5 Savestates/SPU LLVM: Improve saving performance 2022-08-25 23:54:56 +03:00
Eladash
ddba30988b vm: Attempt to not remove cpu_flag::wait flag during access violation 2022-08-21 15:02:01 +03:00
Eladash
1dd1062be1 PPU LLVM: Fix HLE function injection 2022-08-21 15:02:01 +03:00
kd-11
edb39039dd Fix linux build 2022-08-14 23:53:50 +03:00
kd-11
1244044647 util: Provide stack-trace utilities 2022-08-14 23:53:50 +03:00
Eladash
2ec039365f shared_mutex: Optimize busy-waiting by detecting waiters and try to steal the notifying bit
Add an unused has_waiters() method.
2022-08-07 20:23:54 +03:00
Eladash
26e731b487 LV2: Re-add dropped optimization by previous commit
Currently only for lock-free syscalls.
2022-08-07 20:23:54 +03:00
Megamouse
934e7b614c cellPhotoExport/cellVideoExport: fix filenames 2022-08-02 01:43:23 +02:00
kd-11
35ef19cfc8 gl: Refactor the rest of GLHelpers 2022-07-13 02:09:58 +03:00
Nekotekina
786510a937 Use gettid() on Linux, don't use std:🧵:id
pthread_self() returns a large opaque pointer which is harder to use.
2022-07-10 12:22:28 +03:00
Vestrel
98b730c806
Audio: device switching and channel count detection (#12246) 2022-07-08 17:13:38 +02:00
Nekotekina
4b787b22c8 Implement FN (lambda shortener)
Useful for some higher order functions.
Allows to make short lambdas even shorter.
2022-07-08 14:47:41 +03:00
Eladash
5f8f9e33f1 RSX/Savestates: Replace GCM hack with a proper fix 2022-07-08 12:57:43 +03:00
kd-11
fddb6a31a7 Use utils::c_page_size 2022-07-04 22:35:05 +03:00
kd-11
278ae7763a Use better macro notation 2022-07-04 22:35:05 +03:00
kd-11
5cafaef0a9 Aarch64 fixes for RSX 2022-07-04 22:35:05 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation (#10478) 2022-07-04 16:02:17 +03:00
Eladash
cf0fcf5a2a SPU: Implement execution wake-up delay 2022-06-28 19:54:25 +03:00
Eladash
149c593d89 Make fs::get_parent_dir/fs::pending_file use string_view as argument 2022-06-27 15:03:39 +03:00
Eladash
5e01ffdfd8 Debugger: Optimize cpu_thread::dump_regs()
Reuse string buffer. Copies and reallocations are expensive with such large strings.
2022-06-23 22:41:32 +02:00
Eladash
64399d45c1 vm: Make falloc return value bool
Allow to check properly for the success of 0 address allocation.
2022-06-22 21:01:37 +03:00
sguo35
d2614d01fd [ppu] fix a macOS arm64 regression
Always override the LLVM triple to prevent linking errors.
2022-06-20 15:08:27 +03:00
Ivan
c2190f71ca
SPU/PPU LLVM: fix triple setup (regression fix) (#12228) 2022-06-14 18:13:43 +03:00
Jeff Guo
cefc37a553
PPU LLVM arm64+macOS port (#12115)
* BufferUtils: use naive function pointer on Apple arm64

Use naive function pointer on Apple arm64 because ASLR breaks asmjit.
See BufferUtils.cpp comment for explanation on why this happens and how
to fix if you want to use asmjit.

* build-macos: fix source maps for Mac

Tell Qt not to strip debug symbols when we're in debug or relwithdebinfo
modes.

* LLVM PPU: fix aarch64 on macOS

Force MachO on macOS to fix LLVM being unable to patch relocations
during codegen. Adds Aarch64 NEON intrinsics for x86 intrinsics used by
PPUTranslator/Recompiler.

* virtual memory: use 16k pages on aarch64 macOS

Temporary hack to get things working by using 16k pages instead of 4k
pages in VM emulation.

* PPU/SPU: fix NEON intrinsics and compilation for arm64 macOS

Fixes some intrinsics usage and patches usages of asmjit to properly
emit absolute jmps so ASLR doesn't cause out of bounds rel jumps. Also
patches the SPU recompiler to properly work on arm64 by telling LLVM to
target arm64.

* virtual memory: fix W^X toggles on macOS aarch64

Fixes W^X on macOS aarch64 by setting all JIT mmap'd regions to default
to RW mode. For both SPU and PPU execution threads, when initialization
finishes we toggle to RX mode. This exploits Apple's per-thread setting
for RW/RX to let us be technically compliant with the OS's W^X
    enforcement while not needing to actually separate the memory
    allocated for code/data.

* PPU: implement aarch64 specific functions

Implements ppu_gateway for arm64 and patches LLVM initialization to use
the correct triple. Adds some fixes for macOS W^X JIT restrictions when
entering/exiting JITed code.

* PPU: Mark rpcs3 calls as non-tail

Strictly speaking, rpcs3 JIT -> C++ calls are not tail calls. If you
call a function inside e.g. an L2 syscall, it will clobber LR on arm64
and subtly break returns in emulated code. Only JIT -> JIT "calls"
should be tail.

* macOS/arm64: compatibility fixes

* vm: patch virtual memory for arm64 macOS

Tag mmap calls with MAP_JIT to allow W^X on macOS. Fix mmap calls to
existing mmap'd addresses that were tagged with MAP_JIT on macOS. Fix
memory unmapping on 16K page machines with a hack to mark "unmapped"
pages as RW.

* PPU: remove wrong comment

* PPU: fix a merge regression

* vm: remove 16k page hacks

* PPU: formatting fixes

* PPU: fix arm64 null function assembly

* ppu: clean up arch-specific instructions
2022-06-14 15:28:38 +03:00
Elad Ashkenazi
1738b38536
vm_native.cpp: Use Windows 10 memory mapping API (the correct API) 2022-06-10 14:27:02 +03:00
Elad Ashkenazi
9bb7e8d614
rsx: Implement atomic FIFO fetching (stability improvement) (non-default setting) (#12107) 2022-06-04 15:35:06 +03:00
Eladash
1088375b38 Wipe clean VSH's temporary directory of choice at boot 2022-05-21 10:57:12 +03:00
Megamouse
072c289f5e Qt: add new vfs usb tab 2022-05-10 19:39:35 +02:00
Megamouse
b888a6ba37 VFS: Add device_info to vfs config 2022-05-10 19:39:35 +02:00
Megamouse
9a93b150f0 input: properly log hid_error (strfmt wchar_t) 2022-05-07 17:12:31 +02:00
Vestrel
d1e468fefb
sys_rsxaudio: Initial implementation (#11907) 2022-05-05 15:47:44 +02:00
Eladash
3dda72e47f SPU: Cache reservation memory direct access handle (optimization) 2022-05-04 20:28:55 +03:00
Eladash
f9a62667cf SPU/PPU Loader: Implement linker/PS3 compiler executable files loading 2022-05-03 20:47:36 +03:00
Nekotekina
5c1f79ab26 vm: remove g_mutex, use g_range_lock instead
Simplification and performance improvements.
2022-05-02 10:29:28 +03:00
Megamouse
e52386ccfb Log: ensure fmt 2022-04-24 19:11:34 +02:00
Jan Beich
f04655c814 Thread: define how to access PC on BSD aarch64 after 580bd2b25e
Utilities/Thread.cpp:1799:51: error: no member named 'pc' in '__mcontext'
        const bool is_executing = uptr(info->si_addr) == RIP(context);
                                                         ^~~~~~~~~~~~
Utilities/Thread.cpp:1800:62: error: no member named 'pc' in '__mcontext'
        const u32 insn = is_executing ? 0 : *reinterpret_cast<u32*>(RIP(context));
                                                                    ^~~~~~~~~~~~
Utilities/Thread.cpp:1836:90: error: no member named 'pc' in '__mcontext'
        std::string msg = fmt::format("Segfault %s location %p at %p.\n", cause, info->si_addr, RIP(context));
                                                                                                ^~~~~~~~~~~~
Utilities/Thread.cpp:1229:46: note: expanded from macro 'RIP'
 #define RIP(context) ((context)->uc_mcontext.pc)
                       ~~~~~~~~~~~~~~~~~~~~~~ ^

Based on https://github.com/mozilla/gecko-dev/commit/480b73c38c73
2022-04-24 15:40:33 +03:00
sguo35
e761b3235c macos: fix build for arm64
Adds arm64 branches to some x86 specific code and modifies some casting
logic to make Clang happy
2022-04-18 17:53:54 +03:00
Timo654
afae58b231 Interpret negative values in game patches 2022-04-18 17:01:19 +03:00
Megamouse
21f744e218 windows: fix git version script release check
Hopefully
2022-04-15 00:45:51 +02:00
Megamouse
3c231ee9b7 windows: adjust git version script to cirrus ci 2022-04-14 23:16:40 +02:00
Megamouse
3d31e2f2a9 test 2022-04-14 18:37:34 +02:00
Megamouse
8516e9da70 Add git fallback to git-version-gen.cmd
%ProgramFiles% points to the x86 folder on cirrus, but git only exists in Program Files
2022-04-14 13:35:59 +02:00
Megamouse
b04bd5fa74 patch_manager: check if address has hex format 2022-04-12 10:21:21 +02:00
Megamouse
4dfb47cdd9 Patch manager: check for invalid value node 2022-04-09 21:26:06 +02:00
Megamouse
499fe3e218 Patch manager: add node location to patch errors 2022-04-09 21:26:06 +02:00
Megamouse
ee98f577e2 sceNpTrophyGetTrophyIcon: SCE_NP_TROPHY_ERROR_HIDDEN
And prevent some possible segfaults
2022-03-31 23:02:35 +02:00
Nekotekina
0a617a05d0 PPU: correct behaviour under external debugger
May require setting "Assume External Debugger" to true.
2022-03-26 23:09:20 +03:00
kd-11
9a2d4fe46b rsx: Relocatable transform constants 2022-03-26 16:10:18 +03:00
Megamouse
e58906cb4d cpu_stats: fmt::win_error_to_string 2022-03-16 22:20:23 +01:00
Megamouse
7a1a4541c0 StrFmt: print src_loc error as string 2022-03-16 22:20:23 +01:00
Megamouse
a4c4548c3a input: add enumeration threads for each hid_pad_handler
There was a roughly 60 ms lag for each hid handler every 2 seconds. (sucks if you use all 3 hid handlers)
2022-02-01 19:28:04 +01:00
Vestral
107107107c SoundTouch resampler integration 2022-01-31 21:20:57 +01:00
Eladash
781b2b4548
Implement fs::isfile (#11447) 2022-01-29 22:10:48 +03:00
Nekotekina
dba2baba9c Implement utils::memory_map_fd (partial)
Improve JIT profiling dump format (data + name, mmap)
Improve objdump interception util (better speed, fix bugs)
Rename spu_ubertrampoline to __ub+number
2022-01-26 15:46:16 +03:00
Nekotekina
0db9850a73 Add loop building utilities for ASMJIT
Refactor copy_data_swap_u32 a bit
2022-01-25 03:16:37 +03:00
Nekotekina
11ee1f3eb2 Improve JIT profiling on Linux
Add JIT object dumping functionality.
Add source for objdump interception utility.
2022-01-25 03:16:37 +03:00
Nekotekina
12c83b340d Remove built_function
With today's branch prediction techniques, it's hardly useful.
2022-01-24 22:21:41 +03:00
Nekotekina
b42fae0989 PPU: refactor shift and splat instructions
Fix utils::rol32/64 functions.
Fix immediate clamping in splat instructions.
Other fixes.
2022-01-19 23:01:31 +03:00
Nekotekina
4704367382 Remove unnecessary asmjit::imm_ptr 2022-01-18 00:10:32 +03:00
Nekotekina
14cca55b50 PPU: refactor vector rounding instructions
Fix: nearbyint -> roundeven
2022-01-18 00:10:32 +03:00
Nekotekina
580bd2b25e Initial Linux Aarch64 support
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
*   (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
MSuih
f526027778
Revert recent file system changes (#11370)
* Revert "FS: use std::filesystem::u8path"

This reverts commit cd016be86e.

* Revert "VFS: fix missing path deliminators"

This reverts commit 84753db574.

* Revert "Bugfix of Emulator::Load disc path searching"

This reverts commit b9179de288.

* Revert "fs: Reimplement path resolving using std::filesystem::weakly_canonical"

This reverts commit 0c4b2ff06b.
2022-01-13 07:24:04 +03:00
Megamouse
cd016be86e FS: use std::filesystem::u8path 2022-01-13 00:07:25 +03:00
Eladash
0c4b2ff06b fs: Reimplement path resolving using std::filesystem::weakly_canonical 2022-01-12 03:37:39 +03:00
Silent
8c9090fd03 WolfSSL: Use a custom UTF-8 aware fopen on Windows
Fixes loading cacert.pem from Unicode directories
2022-01-12 03:35:15 +03:00
nastys
0d1c0e72a6 macOS: Increase thread stack size to 8 MiB 2022-01-11 08:05:17 +03:00
nastys
3571e6ef85 macOS: Set correct maxfiles (fixes shader cache and SPU LLVM) 2022-01-11 08:05:17 +03:00
Vestrel
1adc408ad7
More sys_uart packets (#11332)
* Additional sys_uart packets added
2022-01-10 03:43:54 +03:00
Nekotekina
cb2748ae08 Update ASMJIT (new upstream API) 2021-12-29 02:45:00 +03:00
Nekotekina
122555fb66 Add an error check in JITAnnouncer event listener
This is a bit strange one.
2021-12-26 22:01:20 +03:00
Nekotekina
d836033212 LLVM: enable some JIT events (Intel, Perf)
Made some related adjustments.
Currently incomplete.
2021-12-26 16:41:37 +03:00
Nekotekina
d36a715b24 Disable built_function on __APPLE__
Workaround for #11287
2021-12-26 14:40:21 +03:00
Nekotekina
3cd8891ab8 Re-refactor copy_data_swap_u32 again
Drop AVX2 path for now, since it usually operates on small data.
Rely on automatic SSE vectorization on recent compilers.
Side refactoring on JIT.h to workaround weird conflict issue.
2021-12-26 14:40:21 +03:00
Nekotekina
e3e6fb5489 Don't use vm::preallocated flag in patch enclave allocs 2021-12-26 14:40:21 +03:00
Nekotekina
dcd011048d Implement "built_function" utility (runtime-generated assembly)
Similar to build_function_asm, but links without indirection.
Achieved by emitting code directly into a byte array.
2021-12-22 19:27:20 +03:00
nastys
08333e0876
macOS moltenVK support and SIGBUS handling (#11252) 2021-12-12 21:35:56 +01:00
Nekotekina
6b40d69a8f Introduce coroutine support (util/coro.hpp)
Implement coroutine types `lazy` and `generator` in stx namespace.
Implement fs::list_dir_recursively.
2021-12-07 13:04:10 +03:00
Eladash
cb4711203b logging: Tell apart PPU access violation caused by executing unmapped memory 2021-12-05 01:22:32 +03:00
DH
cccfb89aa0 [Config] Use std::less<> for std::map<...>
Reduces amount of string copies
[Utilities] fmt::replace_all: avoid creation of temporary strings
2021-12-02 21:36:57 +03:00
DH
813c3298ad [Utilities] Fixed area_base operator* scalar type 2021-12-02 21:36:57 +03:00
Eladash
f16949c292
fs::file: always use strict reading mode for large reads (#11206) 2021-12-01 19:09:07 +03:00
Vestrel
37a722cc1d
Audio backend improvements
Callback based audio update.
Upgraded common backend interface.
Added Cubeb backend.
Support multiple audio providers.
Dropped pulse, alsa, openal backends.
2021-11-24 19:41:05 +01:00
Eladash
9afa960979 Fix possible fs::create_path recursion overflow 2021-10-22 15:37:47 +03:00