Nekotekina
0f87c6c7c3
Make system config thread-safe (almost)
2020-01-20 21:51:28 +03:00
Nekotekina
7fcc49004d
lf_fifo: fix UB and fix size()
...
Simplify internal counter to atomic<u64>.
Make size() return correct difference between push and pop pointers.
2020-01-17 00:24:07 +03:00
kd-11
071e73a68e
geometry: Allow basic color arithmetic
2020-01-07 21:31:19 +03:00
Silent
974bce19ed
Use path_append instead of operator + to concat paths
...
This allows to cleanly prevent double // slashes when appending paths
While this should not be a problem, Windows seems to have problems
with such paths when paths are very long - and preventing this
is trivial enough.
2019-12-31 19:24:19 +03:00
Silent
9e66f36942
Handle ERROR_FILENAME_EXCED_RANGE error on Windows
2019-12-31 19:24:19 +03:00
Megamouse
ef6f565dbd
silence some annoying warnings
2019-12-28 15:40:57 +01:00
Nekotekina
70e26eeb45
LLVM: compress PPU cache
...
Compress PPU modules to .gz (backward compatible with uncompressed cache)
2019-12-27 23:12:16 +03:00
Nekotekina
baf9a20c08
Fix UB in to_u8
...
Possible signed shift overflow.
2019-12-23 22:56:18 +03:00
Nekotekina
068450d4fe
CPUTranslator: detect FMA feature
2019-12-20 21:11:07 +03:00
Eladash
db4041e079
Implement rounded_div
...
Round-to-nearest integral based division, optimized for unsigned integral.
Used in sceNpTrophyGetGameProgress.
Do not allow signed values for aligned_div(), align().
2019-12-20 14:47:04 +03:00
Nekotekina
e3e97da7bb
LLVM: remove cascadelake workaround and update LLVM fork
...
VPTERNLOG fix may be necessary.
2019-12-13 16:19:08 +03:00
Nekotekina
dbece4d00f
LLVM: add workaround for cascadelake CPU
...
Need to investigate it later.
2019-12-13 02:11:21 +03:00
Nekotekina
69e81da57b
Fix some warnings
2019-12-13 02:08:52 +03:00
Eladash
5631382623
sys_spu: Fix SPU Thread Id
...
* Removed wrong code in sys_spu_thread_group_terminate.
* SPU Thread ID is accurate, including 5th thread id "rule".
* Fixed possible use-after-free access of spu_thread::group member.
* RawSPU ID management simplified.
2019-12-06 19:59:29 +03:00
Eladash
c3862b74b1
Compilation fix for NetBSD ( #7067 )
2019-12-05 11:28:00 +03:00
Nekotekina
835892aa51
C-style cast cleanup VII
2019-12-05 02:10:15 +03:00
Nekotekina
bf11a28fb5
C-style cast cleanup IV
2019-12-01 22:12:33 +03:00
Nekotekina
28eacc616a
C-style cast cleanup III
2019-12-01 00:32:44 +03:00
Nekotekina
5b9df53c13
C-style cast cleanup (partial)
...
Replace C-style casts with C++ casts.
2019-11-29 00:35:23 +03:00
Megamouse
d91f8193b0
settings: enable dynamic reload of some emu values
2019-11-27 10:34:03 +01:00
Nekotekina
fcc841eaa1
LLVM: Add workaround for znver2
2019-11-14 19:09:34 +03:00
msuih
1af948a7d4
Fix bitfield warning
2019-11-12 21:36:29 +03:00
Emmanuel Gil Peyrot
0ff5938b1f
Utilities: Remove unused headers
...
AtomicPtr.h has never been used since its introduction in
da7472fe81
.
Same for Interval.h, since 4fedf5749e
.
event.h’s last usage got removed in
70e2873e69
.
2019-11-12 19:51:57 +03:00
Emmanuel Gil Peyrot
56f82d2701
rsx: Wrap gsl::span definition into Utilities/span.h
2019-11-09 20:00:50 +01:00
Emmanuel Gil Peyrot
72cdf0b04c
Replace gsl::span’s implementation with tcbrindle’s
...
This implementation optimises correctly on all relevant compilers,
unlike GSL’s which gave extremely slow code on any compiler other than
MSVC.
Supersedes #6948 .
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot
ef368c5171
rsx: Replace gsl::byte with C++17’s std::byte
2019-11-09 19:30:05 +01:00
Nekotekina
218758183d
Avoid exceptions in cfg::try_to_int64 and cfg::try_to_enum_value
...
Use std::from_chars plus minimal hex prefix support.
2019-11-08 19:27:11 +03:00
Nekotekina
587ae17aa2
Simplify fmt::throw_exception
...
Gradual exception deprecation: disallow choosing exception type.
However, the function itself can remain here forever.
2019-11-08 19:27:11 +03:00
Nekotekina
b338014639
Don't throw in operators _u16 _u32 _u64
2019-11-08 19:27:11 +03:00
Nekotekina
742bd633d8
Remove fs::file::set_delete
...
Since it's Windows-only functionality with limited use.
2019-11-08 19:27:11 +03:00
Eladash
d2f3ada312
bf_t: Remove <limits> lib dependency
2019-11-03 14:59:47 +03:00
Rajko Stojadinovic
b49b4c8096
Rewrite the way LLVM JIT does memory allocation to allow use of more than one contiguous segment ( #6771 )
2019-10-29 01:01:07 +03:00
Nekotekina
46d692d5a6
Fix long path support in fs::statfs on Windows
2019-10-27 19:17:27 +03:00
Nekotekina
839e088ae5
Fix long path support on Windows for UNC path
...
Such as network locations.
2019-10-27 18:53:40 +03:00
Nekotekina
7a32af7a57
Implement lf_bunch<>
...
Simple concurrent container without erase support.
2019-10-26 21:24:12 +03:00
Nekotekina
2e85b5ebaa
SPU: Make JIT allocator lock-free on all platforms
2019-10-26 21:24:12 +03:00
Nekotekina
0c06456950
Simplify lf_queue<> (second attempt)
...
It doesn't need reinterpret_cast anymore.
2019-10-26 21:24:12 +03:00
MSuih
f3ed26e9db
Small warnings cleanup ( #6671 )
...
* Ignore more warnings
These are intentional
* Signed/unsigned mismatch when comparing
* Explictly cast values
* Intentionally discard a nodiscard value
* Change ppu_tid to u32
* Do not use POSIX function name on Windows
* Qt: Use horizontalAdvance instead of width
* Change progress variables to u32
2019-10-25 13:32:21 +03:00
RipleyTom
a32f979814
Conserve error value when trying to open log file
2019-10-24 22:22:15 +03:00
RipleyTom
c89ad38ef1
Check if we're in the process of restarting when trying to open the log
2019-10-24 18:36:28 +02:00
Nekotekina
6867fc5f06
Revert "Simplify lf_queue<>"
...
This reverts commit 050e5b4aec
.
2019-10-23 21:55:31 +03:00
Nekotekina
050e5b4aec
Simplify lf_queue<>
...
It doesn't need reinterpret_cast anymore.
2019-10-23 16:01:14 +03:00
Nekotekina
6e19881b82
Update LLVM (10)
2019-10-23 16:01:14 +03:00
Emmanuel Gil Peyrot
9d1b7af2eb
Avoid std::move() for copy elision
...
This could disable zero-copy optimisations, which is the opposite of
what we want.
2019-10-22 16:11:43 +03:00
RipleyTom
9f9ac4b696
Auto-updater
2019-10-22 01:51:50 +02:00
Marin Baron
90aaaceba0
Debug build : Check ObjectFile before reading.
...
Check LLVM ObjectFile state before access to avoid llvm assertion failure.
Expected<T> must be checked before access or destruction.
Expected<T> value was in success state. (Note: Expected<T> values in success mode must still be checked prior to being destroyed).
2019-10-21 00:40:12 +03:00
Nekotekina
3304cfacde
cond_variable: improve wait a bit
...
Mask signal bits
2019-10-19 14:02:13 +03:00
Nekotekina
db7042b986
Restore using keyed events in waitable atomics on Windows
2019-10-18 23:08:00 +03:00
Nekotekina
7ca76ae5a8
Workaround fs::create_path for drive roots
...
Should fix the regression from #6763
2019-10-15 18:57:16 +03:00
Nekotekina
eafbc77c0d
SPU LLVM: Always use linux-gnu target triple (affects Windows)
...
Unify internal code generation to make better use of GHC calling convention.
Ideally, it would just work on Windows as well, but some random bug appeared.
This bug was causing freezes on SPU LLVM compilation.
This commit desperately attempts to workaround it.
2019-10-15 18:04:50 +03:00