LC
f477a10e65
Merge pull request #9421 from MerryMage/JitBlockData
...
JitArm64: Do not use offsetof on non-standard-layout types
2021-01-03 11:25:04 -05:00
MerryMage
8ae0bf93e7
JitArm64: Do not use offsetof on non-standard-layout types
...
Applying PR #8687 to Arm64 JIT.
2021-01-03 15:26:01 +00:00
JosJuice
f06e9c55c8
Merge pull request #9411 from lioncash/enum3
...
Arm64Emitter: Remove unused OpType enum
2021-01-01 19:11:06 +01:00
Lioncash
36af39853d
Arm64Emitter: Remove unused OpType enum
...
This isn't used anywhere, so we can remove it.
2021-01-01 11:06:05 -05:00
Léo Lam
fcdcdd7beb
Merge pull request #9410 from lioncash/enum2
...
Arm64Emitter: Convert ArithOption enums into enum classes
2021-01-01 13:25:35 +01:00
Lioncash
95cc53edec
Arm64Emitter: Convert ArithOption enums into enum classes
...
Makes the enums strongly typed. While we're at it, we can also make
these enums private.
2021-01-01 07:10:41 -05:00
Léo Lam
452aad29f1
Merge pull request #9401 from lioncash/jittable
...
JitArm64_Tables: Construct tables at compile-time
2021-01-01 01:22:49 +01:00
Léo Lam
344a74aa11
Merge pull request #9396 from lioncash/arm
...
JitArm64_RegCache: Interface cleanup
2021-01-01 01:03:55 +01:00
Léo Lam
f59ee87031
Merge pull request #9402 from lioncash/emitter
...
Arm64Emitter: Interface cleanup
2021-01-01 00:52:40 +01:00
JosJuice
871d1d5953
Translation resources sync with Transifex
2020-12-31 20:16:11 +01:00
JosJuice
7bf590ee5a
Merge pull request #9403 from lioncash/guard
...
ArmCommon: Add missing header guard
2020-12-31 12:17:28 +01:00
Lioncash
e45aa019ec
ArmCommon: Mark NO_COND as constexpr
...
Allows it to be used in compile-time expressions if ever necessary.
2020-12-30 20:54:05 -05:00
Lioncash
c9711a5eca
ArmCommon: Add missing header guard
...
Prevents any multiple inclusion errors from occurring.
2020-12-30 20:53:31 -05:00
Lioncash
cca0dffebd
Arm64Emitter: Add shorthand member functions for hint instructions
...
Allows for more concise code.
2020-12-30 20:49:20 -05:00
Lioncash
6046a15267
Arm64Emitter: Make ShiftAmount enum an enum class
...
Reduces namespace pollution and makes the enum strongly typed.
2020-12-30 20:49:20 -05:00
Lioncash
fab2053439
Arm64Emitter: Make RoundingMode enum an enum class
...
Prevents namespace pollution and makes the enum members strongly typed.
2020-12-30 20:49:20 -05:00
Lioncash
d87ec71615
Arm64Emitter: Make PStateField enum an enum class
...
Prevents namespace pollution and makes the enum members strongly typed.
2020-12-30 20:49:20 -05:00
Lioncash
5c3f2fde22
Arm64Emitter: Make BarrierType enum an enum class
...
Prevents namespace pollution and enforces strong typing.
2020-12-30 20:49:20 -05:00
Lioncash
f21c740919
Arm64Emitter: Make SystemHint enum an enum class
...
Avoids polluting the namespace and makes the members strongly typed.
2020-12-30 20:49:20 -05:00
Lioncash
5011c155ec
Arm64Emitter: Make type member of FixupBranch an enum class
...
Eliminates some magic numbers and makes the type member strongly typed.
2020-12-30 20:49:20 -05:00
Lioncash
2fa4729815
Arm64Emitter: Annotate switch fallthrough
...
Silences warnings and makes intent explicit.
2020-12-30 20:49:20 -05:00
Lioncash
d780ad1102
Arm64Emitter: Make use of std::optional
...
Allows eliminating some out variables in favor of optional, which allows
narrowing visible scope of variables.
2020-12-30 20:49:16 -05:00
Lioncash
5b5b3a9979
JitArm64_Tables: Move Instruction alias to the JIT class
...
Does what the comment says I should do :p
2020-12-30 19:28:37 -05:00
Lioncash
c9c874d7fb
JitArm64_Tables: Construct tables at compile-time
...
Migrates the Aarch64 JIT over to the same tabling mechanism as the x64
JIT.
2020-12-30 19:26:29 -05:00
JosJuice
31780a6059
Merge pull request #9399 from lioncash/fallthrough
...
JitArm64_LoadStore: Explicitly annotate switch fallthrough cases
2020-12-30 20:59:38 +01:00
Lioncash
fa63367738
JitArm64_LoadStore: Explicitly annotate switch fallthrough cases
...
Makes it explicit that these are intentional. Also prevents compiler
warnings.
2020-12-30 14:41:37 -05:00
Lioncash
fabf79e09a
JitArm64_RegCache: Make RegType enum an enum class
...
Avoids polluting the namespace and makes the members of the enumeration
strongly typed.
2020-12-30 10:37:16 -05:00
Lioncash
4ff597cf21
JitArm64_RegCache: Mark several member functions as const
...
Many of these don't modify member state, so they can be marked as const.
2020-12-30 09:52:30 -05:00
Lioncash
e9aaa46c2f
JitArm64_RegCache: Mark register constants as constexpr
...
Also moves comments to make for less wonky formatting.
2020-12-30 09:44:49 -05:00
Lioncash
e2bb9fd147
JitArm64_RegCache: Mark HostReg operator== as const
...
Also provides operator!= for logical symmetry.
We can also take the arguments by value, as the arguments are trivially
copyable enum values which fit nicely into registers already.
2020-12-30 09:42:29 -05:00
Lioncash
e7538b10c6
JitArm64_RegCache: In-class initialize member variables where applicable
...
Same behavior, but in-place initializes all values and makes it visually
explicit at the declaration site.
2020-12-30 09:32:24 -05:00
Lioncash
fe54226575
JitArm64_RegCache: Make FlushMode an enum class
...
Prevents namespace pollution and makes the enum members strongly typed.
This also mirrors the x64 variant as well.
2020-12-30 09:26:29 -05:00
JosJuice
c1d041b888
Merge pull request #9318 from JosJuice/android-saf-games
...
Android: Use storage access framework for game list
2020-12-30 11:10:35 +01:00
Léo Lam
8a3b14d7dc
Merge pull request #9391 from lioncash/find-str
...
IOS: Allow for heterogenous name lookup
2020-12-30 01:47:01 +01:00
Lioncash
0e91470828
IOS: Make use of insert_or_assign with AddDevice()
...
operator[] performs a default construction if an object at the given key
doesn't exist before overwriting it with the one we provide in operator=
insert_or_assign performs optimal insertion by avoiding the default
construction if an entry doesn't exist.
Not a game changer, but it is essentially a "free" change.
2020-12-29 19:32:18 -05:00
Lioncash
ba0540b9c5
IOS: Allow for heterogenous name lookup
...
Allows lookups to be done with std::string_view or any other string
type. This allows for non-allocating strings to be used with the name
lookup without needing to construct a std::string.
2020-12-29 19:32:14 -05:00
Léo Lam
806a4f3a9a
Merge pull request #9393 from lioncash/sysconf
...
SysConf: Make use of std::string_view
2020-12-30 01:22:39 +01:00
Lioncash
1bbfde62d1
SysConf: std::move name in Entry constructor
...
Allows code to move into the constructor, avoiding copies entirely.
2020-12-29 19:09:57 -05:00
Lioncash
05094ab51f
SysConf: Return emplaced reference from AddEntry()
...
Allows GetOrAddEntry() to be implemented in a manner that doesn't result
in a redundant lookup in the event an addition needs to be made.
2020-12-29 19:08:30 -05:00
Lioncash
74224c94a7
SysConf: Make use of std::string_view
...
We can allow strings to be used with the SysConf interface in
potentially non-allocating manners.
2020-12-29 19:08:25 -05:00
Léo Lam
716497fbce
Merge pull request #9394 from lioncash/recurse
...
Core: Use C++17 deduction guides with locked recursive mutexes
2020-12-30 00:47:43 +01:00
Lioncash
e527b69d54
Core: Use C++17 deduction guides with locked recursive mutexes
...
Cleans up some locks that explicitly specify the recursive mutex type in
it. Meant to be included with the previous commit that cleaned out
regular mutexes, but I forgot.
2020-12-29 18:31:31 -05:00
Léo Lam
3b2e31230f
Merge pull request #9386 from leoetlino/config-cache-invalidate
...
Config: Fix cache not being invalidated when callbacks are suppressed
2020-12-29 22:22:15 +01:00
Jordan Woyak
92de0431a2
Merge pull request #9389 from lioncash/deduction
...
Core: Make use of C++17 deduction guides with locks
2020-12-29 15:18:45 -06:00
Léo Lam
9ffd345df0
Config: Fix cache not being invalidated when callbacks are suppressed
...
The config version should always be incremented whenever config is
changed, regardless of callbacks being suppressed or not.
Otherwise, getters can return stale data until another config change
(with callbacks enabled) happens.
2020-12-29 22:07:47 +01:00
Lioncash
a8b0661fb0
Core: Make use of C++17 deduction guides with locks
...
C++17 allows omitting the mutex type, which makes for both less reading
and more flexibility (e.g. The mutex type can change and all occurrences
don't need to be updated).
2020-12-29 16:06:17 -05:00
Léo Lam
351fb71653
Merge pull request #9387 from lioncash/priv
...
DSPCore: Make several SDSP members private
2020-12-29 22:05:11 +01:00
Lioncash
f4e1f48b4f
DSPCore: Make IRAM CRC and step counter private
...
We can construct an API around these two members to allow them to be
private.
2020-12-29 14:32:11 -05:00
Lioncash
5fb1f0bfd3
DSPCore: Make ifx registers private
...
These aren't used externally, so they can be made private.
2020-12-29 14:22:39 -05:00
Lioncash
e3de37e47b
DSPCore: Make the accelerator private
...
This is only used internally.
2020-12-29 14:15:04 -05:00