Ivan Chikish
|
4acd819478
|
[DS4] Proper USB/BT detection
|
2023-08-28 22:51:38 +02:00 |
|
Ivan Chikish
|
384c807d6a
|
Fixup atomic wait (Linux)
|
2023-08-16 23:29:09 +03:00 |
|
Ivan Chikish
|
c6dcf3f1d3
|
(Linux) Fixup futex_waitv
|
2023-08-11 11:54:41 +03:00 |
|
Ivan Chikish
|
804665df69
|
Fixup futex_waitv redefinition
|
2023-08-03 14:32:46 +03:00 |
|
Ivan Chikish
|
39a0ff99b2
|
Fix lf_queue regression
|
2023-08-03 06:56:50 +03:00 |
|
Ivan Chikish
|
d34287b2cc
|
Linux: use futex_waitv syscall for atomic waiting
In order to make this possible, some unnecessary features were removed.
|
2023-08-02 21:46:06 +03:00 |
|
Ivan Chikish
|
831a9fe012
|
Remove thread pool
Prevents implementing thread priority on Linux.
|
2023-08-02 21:46:06 +03:00 |
|
Ivan Chikish
|
15e2ec2cf0
|
Reset broken LLCM_CCACHE_BUILD change
|
2023-08-02 21:46:06 +03:00 |
|
Ivan Chikish
|
9ad7c8e95b
|
Don't require Qt 6.4.0 (works with 6.2.4)
|
2023-08-02 21:46:06 +03:00 |
|
Ivan Chikish
|
b3b680f073
|
[simd.hpp] Fix gv_fmafs
|
2023-07-07 11:09:55 +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 |
|
Ivan Chikish
|
45fecf0059
|
SPU LLVM: disable AVX2 shift intrinsics
Was incorrectly checked.
|
2023-04-23 18:36:45 +03:00 |
|
Ivan Chikish
|
bb8e43f16c
|
SPU LLVM: fixup custom LICM pass
|
2023-04-22 03:07:06 +03:00 |
|
Ivan Chikish
|
1041284384
|
SPU LLVM: sink stores deeper in custom LICM pass
|
2023-04-21 18:11:59 +03:00 |
|
Ivan Chikish
|
183bea3b98
|
SPU LLVM: upgrade custom DSE pass
|
2023-04-20 11:12:31 +03:00 |
|
Ivan Chikish
|
1f19804cab
|
BufferUtils: fix SSE2 path for byteswaps
|
2023-04-18 16:46:18 +03:00 |
|
Ivan Chikish
|
39d17a94c6
|
SPU LLVM: make savestates unsavable inside the code
|
2023-04-18 12:19:15 +03:00 |
|
Ivan Chikish
|
8153e5338f
|
SPU LLVM: optimize register stores
Custom implementation of DSE+LICM
|
2023-04-18 12:19:15 +03:00 |
|
Ivan Chikish
|
44b3709d1d
|
SPU LLVM: use volatile stores for PC update
|
2023-04-15 12:40:59 +03:00 |
|
Ivan Chikish
|
ba29f0ccd1
|
SPU LLVM: use atomic loads in read channel count
|
2023-04-14 13:36:04 +03:00 |
|
Ivan Chikish
|
3473e19508
|
SPU LLVM: fix savestate safety guards
Volatile was removed since it prevented optimizations.
|
2023-04-14 07:26:30 +03:00 |
|
Ivan Chikish
|
22bd7dcc42
|
PPU LLVM: disable DSE pass and use volatile store/loads
|
2023-04-14 07:26:30 +03: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 |
|
Ivan Chikish
|
776b3b5efa
|
SPU LLVM: fix regression from #13500
Fixes #13526
|
2023-03-11 19:48:55 +03:00 |
|
Ivan Chikish
|
01ed8a07af
|
fixed_typemap.hpp: static allocation for m_init
This allows to safely call is_init<T>() at any time.
|
2023-02-23 00:54:35 +03: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 |
|
Nekotekina
|
fa74d3e88c
|
vm: implement lock-free try_access with range locking
|
2022-11-26 09:30:11 +03:00 |
|
Nekotekina
|
1123e25136
|
Implement ref_ptr (see read_from_ptr)
Type `aref`: reference wrapper
|
2022-11-26 09:30:11 +03:00 |
|
Nekotekina
|
7c15001042
|
Implement read_from_ptr<>() util
Doing std::bit_cast on a "span".
Should be usable in constexpr.
|
2022-11-26 09:30:11 +03:00 |
|
Nekotekina
|
bf388e5428
|
cfmt/StrFmt: support s128 formatting (untested)
|
2022-11-26 09:30:11 +03:00 |
|
Nekotekina
|
a1b4ffcf52
|
VFS.cpp: fixup for mounting files
|
2022-10-31 14:20:02 +03:00 |
|
Nekotekina
|
ae809ad320
|
Unexpected bugfixes
Mostly unaligned memory access.
Also includes workarounds for ubsan execution.
|
2022-10-31 14:20:02 +03: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
|
c4db65cc08
|
Fix one more warning
|
2022-09-18 18:35:17 +03:00 |
|
Nekotekina
|
c86ddb3b7d
|
cellImeJp: fix regression
|
2022-09-18 18:35:17 +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
|
5985f0eefa
|
BufferUtils: cleanup regarding ARM64
|
2022-09-07 17:59:07 +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 |
|
Nekotekina
|
58e3232710
|
BufferUtils: Fix regression in upload_untouched
|
2022-09-01 17:39:04 +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 |
|
Nekotekina
|
b6608ad31d
|
vm_native: rewrite win7 workaround
|
2022-08-15 12:26:17 +03:00 |
|
Nekotekina
|
7bb2d94e53
|
vm: use sparse files to emulate overcommit memory
Fix shm::map_critical page flags.
|
2022-08-12 13:59:03 +03:00 |
|
Nekotekina
|
786510a937
|
Use gettid() on Linux, don't use std::thread::id
pthread_self() returns a large opaque pointer which is harder to use.
|
2022-07-10 12:22:28 +03: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 |
|
Nekotekina
|
5c6f5a1610
|
Cleanse LOG_CONSTINIT macro
Should be unnecessary.
|
2022-07-08 14:47:41 +03:00 |
|
Nekotekina
|
69912ba3c7
|
Partial revert for cf0fcf5a2a
|
2022-06-30 14:38:14 +03:00 |
|
Nekotekina
|
ec59d7d26b
|
Fixup for Emu.EjectDisc()
|
2022-06-24 19:55:44 +03:00 |
|
Nekotekina
|
ea23525f66
|
sys_fs: Add mountpoint for /dev_ps2disc
|
2022-06-24 19:55:44 +03:00 |
|
Nekotekina
|
653a9e6e7f
|
Debugger: always print cpu_thread::dump_misc()
Was removed for some reason.
|
2022-06-22 18:53:29 +03:00 |
|
Ivan
|
c2190f71ca
|
SPU/PPU LLVM: fix triple setup (regression fix) (#12228)
|
2022-06-14 18:13:43 +03:00 |
|
Nekotekina
|
cb2c0733e2
|
SPU LLVM: fix vrangeps usage in clamp_smax
|
2022-06-12 16:40:04 +02:00 |
|
Nekotekina
|
8d46840e09
|
Enable ppu_feed_data in PPU Interpreter
|
2022-06-07 15:24:50 +03:00 |
|
Nekotekina
|
753a12f436
|
Enable call history in PPU Interpreter
|
2022-06-07 15:24:50 +03:00 |
|
Nekotekina
|
422246825b
|
vm: workaround bigger native page size for 4k pages
Always allocate full memory block if native page size > 4k
|
2022-06-02 12:56:49 +03:00 |
|
Nekotekina
|
b0ccd2a8a0
|
Implement utils::c_page_size (unused)
Query platform memory page size.
|
2022-06-02 12:56:49 +03:00 |
|
Nekotekina
|
76c72351a5
|
rsx_methods: fix warning
|
2022-06-02 12:56:49 +03:00 |
|
Nekotekina
|
e243ef5907
|
PPU: implement accurate FRES
Implemented with an accurate lookup table.
|
2022-05-11 10:46:08 +03:00 |
|
Nekotekina
|
0a5ea859ea
|
atomic.cpp: fix race in cond_id_lock()
|
2022-05-07 21:25:38 +03:00 |
|
Nekotekina
|
f7d08d3371
|
ELF: fix sh_flag bitset enum
|
2022-05-06 15:44:29 +03:00 |
|
Nekotekina
|
10b33d0f79
|
SPU: optimize conflicting PUTLLUC (No-TSX)
Enable previously TSX-only optimization.
|
2022-05-05 19:16:16 +03:00 |
|
Nekotekina
|
1458349cb3
|
Update commits.lst
|
2022-05-04 16:12:32 +03:00 |
|
Nekotekina
|
a2bfd5fcfc
|
Minor AArch64 support changes
|
2022-05-04 16:12:32 +03:00 |
|
Nekotekina
|
6501374a34
|
Add supporters
|
2022-05-04 16:12:32 +03:00 |
|
Nekotekina
|
0786a0a088
|
PPU LLVM: match interpreter for VEXPTEFP/VLOGEFP
|
2022-05-03 08:27:44 +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 |
|
Nekotekina
|
cd6aa0774f
|
Reduce stack usage in atomic_wait_engine::notify_all
|
2022-04-24 13:26:28 +03:00 |
|
Nekotekina
|
6d3052c5dd
|
Optimization: disable atomic_wait_engine notify callback for SPU
Disable placebo callback calls in notify_all.
Don't use callback at all if TSX.
Based on kd-11 findings.
|
2022-04-24 13:15:54 +03:00 |
|
Nekotekina
|
f4d0286109
|
Add SPU XFloat Accuracy combobox
|
2022-04-08 22:46:09 +03:00 |
|
Nekotekina
|
98cee991ef
|
PPU: fix step execution after BP
|
2022-03-27 11:37:11 +03: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 |
|
Nekotekina
|
16aae4eb77
|
Fixup creating image path
|
2022-01-26 15:46:16 +03:00 |
|
Nekotekina
|
3a1082fe0d
|
Fix overlays::image_info constructor
|
2022-01-26 15:46:16 +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
|
14951d8713
|
Fix abuse of fs::pending_file
Debug dumps don't fall into category which needs atomic rewrite.
|
2022-01-24 22:39:01 +03:00 |
|
Nekotekina
|
065ee621b8
|
Call avcodec_register_all in case of old ffmpeg
Apparently it's still possible to break without it.
|
2022-01-24 22:39:01 +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
|
00274bb4da
|
PPU: port FP convert instructions to Aarch64
|
2022-01-21 16:07:48 +03:00 |
|
Nekotekina
|
a4d94a83b9
|
PPU/simd.hpp: minor changes in DP instructions
|
2022-01-21 13:57:46 +03:00 |
|
Nekotekina
|
0de9960772
|
PPU: rewrite MFOCRF+MFCR instructions
|
2022-01-21 12:49:52 +03:00 |
|
Nekotekina
|
aa7c9dd15d
|
PPU: rewrite LVSL/LVSR instructions
Make the tables endian-agnostic.
|
2022-01-21 00:05:40 +03:00 |
|
Nekotekina
|
628354ba92
|
Use global variable in gv_zeroupper
|
2022-01-20 21:16:00 +03:00 |
|
Nekotekina
|
17b1a34ebf
|
PPU: rewrite LVLX/LVRX/STVLX/STVRX instructions
|
2022-01-20 21:16:00 +03:00 |
|
Nekotekina
|
349f251d14
|
PPU LLVM: use masked stores for STVLX/STVRX
Drop maskmove intrinsic, not portable.
Its implicit NT hint may also hurt performance.
|
2022-01-20 21:16:00 +03:00 |
|
Nekotekina
|
8c3fb3998c
|
PPU: fix crash on SSE41 CPU in internal builder
|
2022-01-20 14:42:58 +03:00 |
|
Nekotekina
|
327c577024
|
PPU: print internal interpreter build error
|
2022-01-20 14:42:58 +03:00 |
|
Nekotekina
|
d572d90bb7
|
PPU: fixup for old CPU
Abort building interpreter function when out of registers.
|
2022-01-20 08:31:08 +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
|
08b02efc6c
|
ARM: don't calibrate TSC, use cntfrq_el0 info
|
2022-01-18 04:21:42 +03:00 |
|
Nekotekina
|
4728478247
|
PPU: improve interpreter codegen
Implement more sensible check for EVEX prefix and SSE
|
2022-01-18 04:20:06 +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 |
|