Rui Pinheiro
a07cbaca8e
Update ASSUME, add ASSERT and AUDIT
...
- ASSUME now uses __builtin_assume in clang
- ASSERT defined as a wrapper around verify
- AUDIT aliases ASSERT when _DEBUG or _AUDIT are set, otherwise empty
2018-09-24 15:26:40 +03:00
Nekotekina
fb5cdf9769
atomic_t<>: extend fetch_op to support cancellation
...
Use std::invoke inside atomic_op/fetch_op
Remove op_fetch because it's easily replaced
Add fetch_dec_sat algorithm (conditional decrement)
2018-09-08 00:32:04 +03:00
Nekotekina
ed9fb8405b
Move rotate/cntlz/cnttz helpers to Utilities/asm.h
2018-09-08 00:32:04 +03:00
Nekotekina
ee96807305
Remove explicit_bool_t, ignore, multicast<>
...
Remove vm::ptr operator %
This was a bad idea but explicit_bool_t was created almost for it
Other removed types are unused and have little to no meaning
2018-09-08 00:32:04 +03:00
Nekotekina
ce4c4696dd
Try to get rid of SIZE_32 macro
2018-09-03 21:40:36 +03:00
Nekotekina
8abe6489ed
Mega-cleanup for atomic_t<> and named bit-sets bs_t<>
...
Remove "atomic operator" classes
Remove test, test_and_set, test_and_reset, test_and_complement global functions
Simplify atomic_t<> with constexpr if, remove some garbage
Redesign bs_t<> to use class, mark its methods constexpr
Implement atomic_bs_t<> for optimizations
Remove unused __bitwise_ops concept (should be in other header anyway)
Bitsets can now be tested via safe bool conversion
2018-09-03 21:40:36 +03:00
Nekotekina
01b4c68238
Remove EXPECTS/ENSURES macro
2018-09-03 21:40:36 +03:00
Nekotekina
69f0ad0d68
Remove ALIGN_32 macro
...
It's never used in expressions like SIZE_32(T) * n, so it doesn't help to fix any warning issued due to truncation.
2018-09-03 21:40:36 +03:00
Dzmitry Malyshau
c452b43ebc
Basic support for Vulkan Portability on OSX
2018-08-28 21:20:11 +03:00
Nekotekina
84abb9923a
Don't use std::aligned_storage
...
Don't need its limiting behaviour anyway
2018-08-25 15:47:03 +03:00
Nekotekina
1c6c24f8ac
Update GSL and yaml-cpp submodules
2018-08-25 01:15:47 +03:00
Nekotekina
3aa6741b8c
Simplify error_code
2018-08-25 01:15:47 +03:00
Nekotekina
56a165ecdc
Rearrange atomic operator internals
2018-08-25 01:15:47 +03:00
Nekotekina
76bac80dde
Add MATCH macro
2018-08-24 16:44:19 +03:00
Nekotekina
6cc7d1fb26
Use std::void_t
2018-08-24 16:44:19 +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
89fba1c385
ppu_acontext draft
2017-10-28 23:24:08 +03:00
Zangetsu38
5146f3ec47
Fix compile VS
2017-10-16 18:42:03 +03:00
Nekotekina
c1450ad616
Reenable thread_local for all platforms
2017-08-24 16:27:07 +03:00
Nekotekina
613214cdca
Improve error formatting
2017-08-08 22:17:51 +03:00
Nekotekina
22af341ad3
umulh64, mulh64 moved; added ror8/16/32
2017-06-29 17:48:55 +03:00
Nekotekina
0df861d7b5
Added uptr type
2017-06-23 20:09:33 +03:00
Nekotekina
9b43203111
offset32(): pointer-to-member arithmetic
2017-04-20 00:17:16 +03:00
Nekotekina
19a698682b
Compilation fix (mingw)
2017-03-05 19:00:08 +03:00
Nekotekina
3baf79f929
ror64 added
2017-03-04 17:34:59 +03:00
Wilfried Rabouin
67ac8bf070
PPUInterpreter: Fix undefined behavior of left rotate functions ( #2469 )
...
* PPUInterpreter: Fix undefined behavior of rol8 and rol16 with inline assembly
* PPUInterpreter: Fix undefined behavior of rol32 and rol64
* PPUInterpreter: Change left rotate functions to inline functions and move to types.h
2017-03-04 16:41:40 +03:00
Nekotekina
b1aa87b515
Busy waiting added
2017-02-16 00:13:55 +03:00
Ryan Gonzalez
11e2965b5c
Switch to always using a steady clock ( closes #2200 )
2017-01-29 03:07:08 +03:00
Nekotekina
591a6c8671
IdManager improved
2017-01-25 23:29:36 +03:00
Nekotekina
1c14d872a8
New shared_mutex
...
Experimental sync utils
New semaphore<>
New cond_variable
New owned_mutex
2017-01-25 00:38:07 +03:00
Nekotekina
bbb0effe23
Minor fixes
...
cellSyncMutexTryLock fixed
2016-08-17 19:50:20 +03:00
Nekotekina
ad174eb12c
error_code implemented
...
Reports based on formatting system
ppu_error_code removed
arm_error_code removed
2016-08-16 18:57:44 +03:00
Nekotekina
3c82e1a58d
Silly macro removed-3
2016-08-15 18:30:33 +03:00
Nekotekina
dbcb5df172
WRAP_EXPR macro removed
2016-08-15 17:11:45 +03:00
Nekotekina
84d0d396ed
EXPECTS usage removed
2016-08-15 16:29:38 +03:00
Nekotekina
56b9b38c9c
verify() fix
2016-08-15 14:59:19 +03:00
Nekotekina
05fb57baff
VERIFY macro removed
2016-08-15 03:13:31 +03:00
Nekotekina
1f3433464c
ENSURES usage removed
2016-08-14 22:41:01 +03:00
Nekotekina
b0f5796c90
New narrow() implementation
2016-08-14 20:28:56 +03:00
Nekotekina
0f87c4485d
Silly macro removed-2
2016-08-14 18:19:42 +03:00
Nekotekina
949200cd3e
Type hacks removed
2016-08-14 18:07:32 +03:00
Nekotekina
bdeccd889f
cpu_type removed, system_type added
...
cpu_state -> cpu_flag
vm::stack_allocator template improved
ppu_cmd type changed to enum, cmd64 type added
2016-08-09 17:14:41 +03:00
Nekotekina
a7e808b35b
EXCEPTION macro removed
...
fmt::throw_exception<> implemented
::narrow improved
Minor fixes
2016-08-08 19:19:32 +03:00
Nekotekina
71441819e5
multicast<> rewritten
2016-08-07 17:06:37 +03:00
Nekotekina
1a7ea2d235
fmt_unveil<> fix
2016-08-07 17:05:35 +03:00
Nekotekina
5a36c57c57
Formatting system improved
...
`unveil<>` renamed to `fmt_unveil<>`, now packs args to u64 imitating va_args
`bijective...` removed, `cfg::enum_entry` now uses formatting system
`fmt_class_string<>` added, providing type-specific "%s" handler function
Added `fmt::append`, removed `fmt::narrow` (too obscure)
Utilities/cfmt.h: C-style format template function (WIP)
Minor formatting fixes and cleanup
2016-08-04 21:34:00 +03:00
Nekotekina
438e057dc8
Partial commit: sys_fs
2016-07-17 02:27:52 +03:00
Nekotekina
73c2115968
BEType: explicit alignment specifier
2016-07-16 14:45:57 +03:00
Nekotekina
266db1336d
The rest
2016-05-23 16:22:25 +03:00
Ivan
aafcf44581
Header optimizations ( #1684 )
...
Shouldn't break anything. I hope.
2016-04-27 01:27:24 +03:00