Mat M
9286b57d84
Merge pull request #9691 from JosJuice/jitarm64-register-call
...
JitArm64: Fix JitRegister::Register call for cstd
2021-05-05 19:44:36 -04:00
Mat M
1f26b694dc
Merge pull request #9680 from Pokechu22/more-git-blame-ignore-revs
...
Add even more commits to .git-blame-ignore-revs
2021-04-30 21:13:27 -04:00
Lioncash
adebc499f9
Jit64: Indicate explicit [[fallthrough]] within load helper
2021-04-19 17:37:44 -04:00
Lioncash
e1dfcda8a6
BlockingLoop: Add explicit [[fallthrough]] annotations
2021-04-19 17:34:46 -04:00
LC
7a16231e98
Merge pull request #9614 from JosJuice/okay-fine-i-give-in
...
Android: Add "Synchronize GPU Thread" setting (SyncOnSkipIdle/SyncGPU)
2021-03-28 09:29:08 -04:00
LC
18e7009db2
Merge pull request #9613 from JosJuice/android-delete-game-ini-more
...
Android: Expand the game INI deletion prompt
2021-03-28 09:28:26 -04:00
LC
3533810636
Merge pull request #9612 from JosJuice/android-log-to-file
...
Android: Rename "Enable Logging" to "Write Logs to File"
2021-03-28 09:27:47 -04:00
LC
39499c6d59
Merge pull request #9611 from Pokechu22/more-git-blame-ignore-revs
...
Add additional commits to .git-blame-ignore-revs
2021-03-28 09:27:20 -04:00
LC
57c9c9eb31
Merge pull request #8625 from JosJuice/volumeverifier-overlapping
...
VolumeVerifier: Handle overlapping blocks more efficiently
2021-03-22 16:05:37 -04:00
LC
15ebb1d9e4
Merge pull request #9566 from Sintendo/jit64divwx
...
Jit64: Optimize divwx
2021-03-22 14:40:02 -04:00
LC
210ddcf5ee
Merge pull request #9592 from JosJuice/android-launch-rescan
...
Android: Fix rescanning on first app launch after cache clear
2021-03-22 14:34:02 -04:00
LC
14cff8dc3a
Merge pull request #9599 from JosJuice/android-gfx-hacks-settings
...
Android: Add some missing settings to Hacks section of Graphics
2021-03-22 14:33:32 -04:00
LC
3bedede928
Merge pull request #9601 from JosJuice/android-scrollbar-width
...
Android: Minor design tweaks to the in-game menu
2021-03-22 14:30:05 -04:00
LC
4a3751e4f1
Merge pull request #9602 from JosJuice/discio-panic
...
Avoid using panic alerts in DiscIO
2021-03-22 14:29:20 -04:00
LC
7250d6e4e0
Merge pull request #9487 from iwubcode/qt_regex_regression
...
DolphinQt: Fix regression in input expressions
2021-02-02 22:00:11 -05:00
LC
2a6fffd60e
Merge pull request #9475 from JosJuice/android-unit-tests
...
Add script for running unit tests on Android device
2021-01-26 13:52:33 -05:00
LC
caff472dbf
Merge pull request #9459 from iwubcode/freelook_state_lock
...
FreeLookManager: acquire global input lock
2021-01-21 12:07:58 -05:00
Lioncash
b425250a7b
TraversalClient: Make use of std::string_view with ConnectToClient()
...
Same behavior, but allows the use of non-allocating string types with
the interface.
2021-01-20 12:24:06 -05:00
Lioncash
cb4ca7837a
TraversalClient: Prevent uninitialized values from occurring in MakeENetAddress
...
Previously, eaddr would only be partially initialized in the ipv6 case.
Even if there's no support for it, we may as well ensure that the
variable always has deterministic initialization.
While we're at it, we can make the parameter a const reference, given no
members are modified.
2021-01-20 12:24:05 -05:00
Lioncash
f0c6e696fd
TraversalProto: Convert typedefs into using aliases
...
Same behavior, more straightforward reading.
2021-01-20 12:24:05 -05:00
Lioncash
d48b5615ae
TraversalProto: Collapse version enum into a typed variable
...
Same behavior, less code.
2021-01-20 12:24:05 -05:00
Lioncash
d2ea94195c
TraversalProto: Convert TraversalPacketType into an enum class
...
Makes for strong typing and prevents namespace pollution.
2021-01-20 12:24:05 -05:00
Lioncash
2f0fb2056e
TraversalProto: Convert TraversalConnectFailedReason into an enum class
2021-01-20 12:24:05 -05:00
Lioncash
2021175809
TraversalClient: Convert state enum into an enum class
...
Prevents implicit conversions and prevents identifiers from polluting
the class scope.
2021-01-20 12:24:03 -05:00
LC
04ccd4cb80
Merge pull request #9446 from Dentomologist/convert_shifttype_to_enum_class
...
Arm64Emitter: Convert ShiftType to enum class
2021-01-18 05:26:22 -05:00
LC
be74e35a0a
Merge pull request #9443 from Simonx22/update-gradle
...
Android: Update Gradle Plugin to 4.1.1
2021-01-16 06:55:10 -05:00
LC
1476c10a87
Merge pull request #9445 from Simonx22/update-dependencies
...
Android: Update dependencies to the latest version
2021-01-16 06:54:45 -05:00
LC
aba179e4ba
Merge pull request #9385 from MerryMage/more-bmi2
...
Jit_Integer: Use SHLX, SHRX, SARX
2021-01-14 21:40:45 -05:00
LC
0c2bc3582d
Merge pull request #9425 from Sintendo/jit64subfx
...
Jit64: subfx optimizations
2021-01-14 21:40:05 -05:00
LC
8f67a1961f
Merge pull request #9442 from Stevoisiak/patch-1
...
Contributing.md: Code comment for do-while sample
2021-01-14 18:45:00 -05:00
Lioncash
5b4fced2ba
DolphinQt: Resolve deprecated usages of setTime_t and toTime_t
...
These have been replaced with setSecsSinceEpoch() and
toSecsSinceEpoch(), respectively within Qt 5.8, so we can migrate over
to them.
2021-01-13 05:07:32 -05:00
Lioncash
892154f7ea
DolphinQt: Resolve deprecated usage of margin()
...
This function has been marked as obsolete. In Qt 6.0 it's removed
entirely, so we must use getContentsMargin() explicitly instead
(margin() would do this for us).
Ditto for setMargin(), in which case we use setContentsMargin instead.
setMargin() would just pass its argument to all four parameters of
setContentsMargin(), so we can do the same.
2021-01-13 05:07:32 -05:00
Lioncash
46ca371ef3
DolphinQt: Migrate QRegExp over to QRegularExpression
...
Qt 5.0 introduced QRegularExpression to replace QRegExp. In Qt 6.0,
QRegExp is removed entirely in favor of it.
2021-01-13 05:07:29 -05:00
Lioncash
765a1b3c09
DolphinQt: Explicitly include <QActionGroup> where applicable
...
An indirect inclusion scenario that breaks on Qt 6.0
2021-01-13 04:46:11 -05:00
Lioncash
f647ca4620
DolphinQt: Replace usages of QLatin1Literal with QStringLiteral
...
This literal was deprecated in 5.14.0. Not to mention it wasn't
documented as part of the API either: see the 5.14.0 changelog here:
https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.14.0?h=v5.14.0
On Qt 6.0 this define is removed entirely. To stay forward compatible,
we can make use of QStringLiteral instead.
2021-01-13 03:50:42 -05:00
LC
7fdd4afd9c
Merge pull request #9437 from Pokechu22/GX_CMD_UNKNOWN_METRICS
...
Use GX_CMD_UNKNOWN_METRICS instead of magic number 0x44
2021-01-12 04:09:54 -05:00
LC
79a234eff7
Merge pull request #9435 from shuffle2/constexpr-error
...
BitUtils: cleanup constexpr usage for msvc clz
2021-01-10 14:58:20 -05:00
LC
87debc6641
Merge pull request #9433 from shuffle2/constexpr-error
...
BitUtils: loosen clz to inline on msvc/arm64
2021-01-10 03:45:59 -05:00
LC
a613c2a5e4
Merge pull request #9429 from Sintendo/jit64fixoverflow
...
Jit64: Fix FinalizeCarryOverflow XER[OV/SO]
2021-01-10 01:58:06 -05:00
LC
59fa613020
Merge pull request #9431 from shuffle2/msvc-gdbstub
...
msbuild: enable USE_GDBSTUB
2021-01-10 01:56:46 -05:00
LC
75e19a0c29
Merge pull request #9430 from shuffle2/vsupdate
...
Bump msvc version check and revert a msvc workaround
2021-01-10 01:46:28 -05:00
LC
1f0e3371a3
Merge pull request #9432 from shuffle2/constexpr-error
...
BitUtils: initialize variables
2021-01-10 01:44:58 -05:00
LC
4b9259d691
Merge pull request #9415 from Filoppi/patch-8
...
Fix cursor going to +infinite if the window size was 0
2021-01-03 11:26:11 -05:00
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
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
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
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
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
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
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
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
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
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
Lioncash
e1f41bab1c
DSP: Make mailboxes use std::array
...
Makes the array strongly typed and prevents pointer decay. This also
allows for tuning bounds checks with various implementations.
2020-12-29 12:27:56 -05:00
Lioncash
f9d8d06037
DSP: Make mailboxes private
...
These aren't used externally anywhere and can be made private.
2020-12-29 12:27:40 -05:00
Lioncash
024e983c3a
DSP: Make Mailbox enum strongly typed
...
Avoids implicit conversions and also prevents dumping identifiers into
the current namespace.
2020-12-29 12:20:00 -05:00
Lioncash
359fe0d8c3
DSPCore: Move PRECISE_BACKLOG define to the interpreter code
...
The only usages of this define are within this source file.
2020-12-29 09:50:40 -05:00
Lioncash
64f93610ee
DSP: Eliminate some magic values related to the CR register
...
Makes some values more immediately readable.
2020-12-29 09:43:04 -05:00
Lioncash
8aecaf784c
DSPAnalyzer: Separate instruction searching and idle skip finding
...
Places them into their own function to keep their functionality isolated
and self-documenting.
2020-12-28 13:15:48 -05:00
Lioncash
cc512a7524
DSPAnalyzer: Break tight coupling to SDSP
...
Allows the analyzer to exist independently of the DSP structure. This
allows for unit-tests to be created in a nicer manner.
SDSP is only necessary during the analysis phase, so we only need to
keep a reference around to it then as opposed to the entire lifecycle of
the analyzer.
This also allows the copy/move assignment operators to be defaulted, as
a reference member variable prevents that.
2020-12-28 13:15:48 -05:00
Lioncash
f9c488f0d9
DSPAnalyzer: Merge Analyzer namespace into DSP namespace
...
Now that the Analyzer class fully encapsulates all analyzer state, the
namespace is no longer necessary.
2020-12-28 13:15:48 -05:00
Lioncash
9d1c8fe492
DSPAnalyzer: Make CodeFlags private to the analyzer
...
Now that we have the convenience functions around the flag
bit manipulations, there's no external usages of the flags, so we can
make these private to the analyzer implementation.
Now the Analyzer namespace is largely unnecessary and can be merged with
the DSP namespace in the next commit.
2020-12-28 13:15:48 -05:00
Lioncash
2ff4d04785
DSPAnalyzer: Add convenience functions over bit tests
...
Makes it harder to accidentally misuse and increases readability.
2020-12-28 13:15:45 -05:00
Lioncash
5756ece7ce
DSPAnalyzer: Implement DSP analyzer skeleton and use it
...
Attempts to simply make use of the interface. Cleanup will follow in
subsequent commits to make for nicer review.
2020-12-28 11:37:29 -05:00
Lioncash
8f4c6ad7b1
DSPAnalyzer: Add basic class skeleton
...
Adds the non-functional skeleton for the to-be Analyzer interface with
deglobalized components.
2020-12-28 10:47:12 -05:00
LC
28a666a35f
Merge pull request #9363 from MerryMage/rorx
...
Jit_Integer: Use RORX where possible
2020-12-27 22:25:03 -05:00
LC
4b24215efb
Merge pull request #9371 from MerryMage/rlwinmx-BEXTR
...
Jit_Integer: rlwinmx: Use BEXTR where possible
2020-12-27 22:24:17 -05:00
LC
fcd86e9b21
Merge pull request #9370 from MerryMage/rlwinmx
...
Jit_Integer: rlwinmx: Generalize byte/word extract plus shift case
2020-12-27 22:23:18 -05:00
LC
d06d59e9c2
Merge pull request #9262 from Sintendo/jit64imm
...
Jit64: More constant propagation optimizations
2020-12-27 22:21:25 -05:00
LC
c163bc3187
Merge pull request #9374 from MerryMage/clz
...
BitUtils: Add CountLeadingZeros
2020-12-27 22:18:46 -05:00
LC
263784639b
Merge pull request #9368 from JosJuice/android-game-properties-one-settings
...
Android: Only have one settings entrypoint in game properties
2020-12-27 07:08:34 -05:00
Lioncash
5f65bad68c
DSP: Migrate code that modifies m_dsp into SDSP itself
...
Localizes code that modifies m_dsp into the struct itself. This reduces
the overal coupling between DSPCore and SDSP by reducing access to its
member variables.
This commit is only code movement and has no functional changes.
2020-12-27 06:38:23 -05:00
Lioncash
7d1bd565a6
DSP: Eliminate most global state
...
An unfortunately large single commit that deglobalizes the DSP code.
(which I'm very sorry about).
This would have otherwise been extremely difficult to separate due to
extensive use of the globals in very coupling ways that would result in
more scaffolding to work around than is worth it.
Aside from the video code, I believe only the DSP code is the hairiest
to deal with in terms of globals, so I guess it's best to get this dealt
with right off the bat.
A summary of what this commit does:
- Turns the DSPInterpreter into its own class
This is the most involved portion of this change.
The bulk of the changes are turning non-member functions into member
functions that would be situated into the Interpreter class.
- Eliminates all usages to globals within DSPCore.
This generally involves turning a lot of non-member functions into
member functions that are either situated within SDSP or DSPCore.
- Discards DSPDebugInterface (it wasn't hooked up to anything,
and for the sake of eliminating global state, I'd rather get rid of
it than think up ways for this class to be integrated with
everything else.
- Readjusts the DSP JIT to handle calling out to member functions.
In most cases, this just means wrapping respective member function
calles into thunk functions.
Surprisingly, this doesn't even make use of the introduced System class.
It was possible all along to do this without it. We can house everything
within the DSPLLE class, which is quite nice =)
2020-12-27 06:38:02 -05:00
LC
26c097ebfc
Merge pull request #8867 from iwubcode/freelook_controller
...
Make Free Look a proper controller, move to separate UI
2020-12-24 15:10:17 -05:00
LC
d61c64684b
Merge pull request #9357 from JosJuice/android-one-settings-entrypoint
...
Android: Only have one settings entrypoint per activity/dialog
2020-12-24 12:46:43 -05:00
LC
464bc80482
Merge pull request #9356 from JosJuice/android-save-ingame-change
...
Android: Correctly save in-game settings changes to disk
2020-12-24 12:45:09 -05:00
LC
4c8ccc63b5
Merge pull request #9345 from MerryMage/analytics
...
Analytics: Add rarer OSes to analytics
2020-12-20 18:55:34 -05:00