mitaclaw
76a998ecf9
TypeUtils: Remove Common::Fill
...
This temporary solution is no longer needed.
2024-08-22 17:29:26 -07:00
mitaclaw
6ffd71ffae
BitUtils: Constexpr BitCastToArray, Remove BitCastFromArray
...
`std::bit_cast` participates in overload resolution only if `sizeof(To) == sizeof(From)` and both `To` and `From` are *TriviallyCopyable* types, so the static assertions here can be removed. `[[nodiscard]]` was added as well.
2024-08-16 12:21:49 -07:00
mitaclaw
de1c47a701
Misc. Container Find Changes
2024-08-15 14:25:51 -07:00
mitaclaw
9fa4eb9aab
Use 'contains' method
2024-08-15 14:20:16 -07:00
mitaclaw
9c5cd817e3
CMakeLists: Fix LLVM Usage In UICommon
...
This compile definition was removed in 68cbd2640d because it was complicated by changes in 50dc0ffbce . Thus, the LLVM disassembler would never be used in UICommon's Disassembler class.
2024-08-08 10:14:22 -07:00
mitaclaw
8e546e79aa
DolphinQT: Listen For clicked Signal Rather Than pressed
...
The latter signal was likely used by mistake, e.g. https://github.com/dolphin-emu/dolphin/pull/8263 .
2024-08-08 08:09:38 -07:00
mitaclaw
e0e0c074ef
JITs: Consistently Use Trivial IsDebuggingEnabled Getter
2024-08-07 04:44:45 -07:00
mitaclaw
cde64b6a3d
CachedInterpreter: Software JIT Profiling Support
2024-08-02 06:00:56 -07:00
mitaclaw
4f0954dd44
MainAndroid: Thread Correctness In WriteJitBlockLogDump
...
In a race condition, the core could shut down between the `JitInterface::GetCore` nullptr check and the `JitInterface::JitBlockLogDump` call which constructs a `CPUThreadGuard`. In this scenario, nothing horrible happens—`JitBlockLogDump` also checks for a nullptr—but it would be a failure to display the correct feedback to the user.
2024-07-28 16:10:59 -07:00
mitaclaw
7cafd78ffc
MainAndroid: Use JNI_FALSE instead of static_cast<jboolean>(false)
2024-07-27 20:22:25 -07:00
mitaclaw
6c3024c3b1
CachedInterpreter: Combine Interpret, CheckDSI, CheckProgram, and WritePC
...
I tried making the new templated Interpret callback test only the relevant exceptions (EXCEPTION_DSI, EXCEPTION_PROGRAM, or both), but didn't find a significant performance boost in it. As I am learning, the biggest bottleneck is the number of callbacks emitted, not usually the actual contents of them.
2024-07-23 14:09:57 -07:00
mitaclaw
ae43b10eff
CachedInterpreter: Use CodeOp::canEndBlock
...
This was a bigger performance boost than I expected.
2024-07-23 14:07:02 -07:00
mitaclaw
818647d694
CachedInterpreter: WritePC optimizations
...
WritePC is now needed far less, only for instructions that end the block. Unfortunately, WritePC still needs to update `PowerPCState::npc` to support the false path of conditional branch instructions. Both drawbacks should be smoothed over by optimized cached instructions in the future.
2024-07-23 14:06:40 -07:00
mitaclaw
0282fa7adb
CachedInterpreter: Exception Check Callback Micro-Optimization
...
This saves two register pushes / pops.
2024-07-23 14:06:22 -07:00
mitaclaw
f79520a906
Cached Interpreter 2.0
...
It now supports variable-sized data payloads and memory range freeing. It's a little faster, too.
2024-07-23 14:06:21 -07:00
mitaclaw
ffc7bcfbf8
Emitters: Define Trivial Getters Inline
2024-07-21 21:35:29 -07:00
mitaclaw
eb26937a93
Branch Watch Tool: Add Set Breakpoints Submenu
2024-06-16 20:46:56 -07:00
mitaclaw
8050760fe9
BranchWatchTableModel: Assume Unreachable Code Truly Is
2024-06-05 19:59:39 -07:00
mitaclaw
7dc0bdd5df
BranchWatchProxyModel: Avoid String Copies In filterAcceptsRow
2024-06-05 19:59:39 -07:00
mitaclaw
cf6a392979
Branch Watch Tool: Smarter Context Menu
...
Also, right-clicking the table's scroll area when all columns are hidden will show the column visibility menu.
2024-06-01 07:23:05 -07:00
mitaclaw
3b214a4978
BranchWatchDialog: Resolve Linux FIXME
...
This stopped being an issue for me with a recent package update, so I guess Qt6 was fixed upstream?
2024-05-25 06:22:45 -07:00
mitaclaw
4a2ec86a9a
Branch Watch Tool: Add Rule Of 5 And Remove Unnecessary Include
2024-05-25 06:22:44 -07:00
mitaclaw
ecce8e81c8
BranchWatchDialog: Case-Insensitive Sorting
2024-05-24 15:42:04 -07:00
mitaclaw
28f8ab9e8a
Arm64FloatEmitter: 64-Bit Assert In ABI_PushRegisters
2024-05-07 13:51:50 -07:00
mitaclaw
2b337aec58
PowerPC: Remove Dead Config Code
2024-05-03 21:54:47 -07:00
mitaclaw
0b04975c26
Core::SetState: Avoid Global System Accessor
2024-05-03 21:04:44 -07:00
mitaclaw
076bdf7a24
Expression: Support All SPRs + MSR
2024-05-03 17:56:58 -07:00
mitaclaw
ba462578ac
Externals: Update minizip-ng to 4.0.5
...
Also update unzLocateFile to the minizip-ng 4.0.4+ signature and document new unused files.
2024-05-03 12:43:55 -07:00
mitaclaw
a1eaed2531
Externals: Document Unused minizip-ng Files
2024-05-03 12:43:55 -07:00
mitaclaw
0acdd404e3
Externals: Convert minizip-ng To Submodule
...
Due to an oversight in our CMakeLists, pkg-config would attempt to find *minizip* 3.0.0 (which doesn't exist) instead of *minizip-ng* 3.0.0, or at least it was on my Manjaro Linux machine. This has been fixed. The new submodule is using minizip-ng 3.0.4, the same version that was being used before.
2024-05-03 12:43:33 -07:00
mitaclaw
6bee21e272
Revert "Externals: minizip-ng Forward Compatibility"
...
This reverts commit 0a48a3b3ad .
2024-05-03 12:41:53 -07:00
mitaclaw
0df401b164
Core::IsRunning: Avoid Global System Accessor
2024-05-01 08:54:17 -07:00
mitaclaw
0397339ab1
DolphinQt: Properly Delete (Some) Widgets
...
This is not every memory leak, just the ones that were obvious.
2024-04-30 11:17:28 -07:00
mitaclaw
756ea81ab2
Jit64: Smaller Instruction Breakpoint Condition
...
Also some static_asserts in JitArm64.
2024-04-28 15:54:15 -07:00
mitaclaw
307a1e3ab8
Jit64/JitArm64: Check Breakpoints Before FPU Availability
...
CachedInterpreter already does it in the expected order.
2024-04-26 10:58:16 -07:00
mitaclaw
0a48a3b3ad
Externals: minizip-ng Forward Compatibility
2024-04-21 09:38:53 -07:00
mitaclaw
e3721bee1b
JIT: Fix Incorrect Assert Category
2024-04-21 09:07:47 -07:00
mitaclaw
e7dbd298a8
JitState: Remove Unused instructionNumber
2024-04-21 08:51:29 -07:00
mitaclaw
65ff0146b9
Change JitState::downcountAmount to u32
2024-04-19 04:08:34 -07:00
mitaclaw
48b38f6e9b
RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX
2024-04-14 21:47:41 -07:00
mitaclaw
672be6a8cf
PPCSymbolDB: GetDescription by std::string_view
...
Should save a lot of deep copies.
2024-04-13 00:19:01 -07:00
mitaclaw
bc7b11517f
MenuBar: Optimize SearchInstruction
2024-04-10 17:00:45 -07:00
mitaclaw
3073e8fd40
CachedInterpreter: Skip Updating Instruction PERFMON When There Are None
2024-04-10 04:09:37 -07:00
mitaclaw
94712ea06f
Android: Access Software JIT Profiling
2024-04-09 13:43:32 -07:00
mitaclaw
6dad5cee65
DolphinQt: Access Software JIT Profiling
2024-04-09 13:43:32 -07:00
mitaclaw
30c63fa4a6
Common: Remove Unused PerformanceCounter Code
2024-04-09 13:43:32 -07:00
mitaclaw
ee8bcf2ccc
JitCache: Software Profiling Restoration
...
Rekindle software JIT profiling with a std::chrono conversion and a config connection.
2024-04-09 13:43:31 -07:00
mitaclaw
fe8f836668
VerifyWidget: Listen for Core::State OnEmulationStateChanged
2024-04-09 12:13:02 -07:00
mitaclaw
cf74c0d683
PPCCache: Avoid Global System Accessor
2024-04-08 19:49:57 -07:00
mitaclaw
eb92d6f0a8
Core::GetState: Avoid Global System Accessor
2024-04-08 16:23:23 -07:00
mitaclaw
be27c4f877
NativeLibrary: Create displayToastMsg Method
2024-04-06 15:41:23 -07:00
mitaclaw
88dadf81d4
FileUtil: Fix BranchWatch User Path
...
I mistakenly put `D_DUMP_IDX` here instead of `D_DUMPDEBUG_IDX`.
2024-03-29 11:05:45 -07:00
mitaclaw
6e6b298030
Core::RunOnCPUThread: Avoid Global System Accessor
2024-03-28 10:10:03 -07:00
mitaclaw
b52a08d533
DolphinQt: A Ubiquitous Signal For When Symbols Change
...
There were three distinct mechanisms for signaling symbol changes in DolphinQt: `Host::NotifyMapLoaded`, `MenuBar::NotifySymbolsUpdated`, and `CodeViewWidget::SymbolsChanged`. The behavior of these signals has been consolidated into the new `Host::PPCSymbolsUpdated` signal, which can be emitted from anywhere in DolphinQt to properly update symbols everywhere in DolphinQt.
2024-03-28 09:57:22 -07:00
mitaclaw
73f9904f2a
Core: Remove RunAsCPUThread
...
It's a fine function, but CPUThreadGuard is more vogue. Also, its potential for being confused with RunOnCPUThread will not be missed.
2024-03-23 03:33:26 -07:00
mitaclaw
ae5da02cde
DolphinQt Settings: Signal Debug Font By Const Reference
2024-03-22 07:52:52 -07:00
mitaclaw
11b628f250
Core: Remove Unused IsRunningInCurrentThread Function
2024-03-18 07:18:41 -07:00
mitaclaw
f09b71582e
Core: Avoid (Some) Global System Accessor
2024-03-18 01:35:42 -07:00
mitaclaw
c24fa93965
PPCSymbolDB: Move instance to PowerPCManager
2024-03-13 22:58:14 -07:00
mitaclaw
c377c1e21e
CheatsManager/CheatSearchWidget: Avoid Global System Accessor
...
OnResetClicked and GenerateARCode appear to have been using the CPUThreadGuard in error.
2024-03-11 20:51:15 -07:00
mitaclaw
f71f2c6ba1
CMakeLists: Add Clang's Specific WShadow Diagnostics
...
For parity with GCC.
2024-03-09 15:34:39 -08:00
mitaclaw
fe61efcd7a
DVDInterface: Modernize With CPUThreadGuard
2024-03-08 15:17:41 -08:00
mitaclaw
0645b4d579
BranchWatchDialog: Fix Misc. Errata
...
Window icon was missing from QDialog lacking a parent.
Giving the QDialog a parent revealed I had failed to make it properly non-modal, necessitating further changes.
Settings save less often, now only upon destruction.
Construction of BranchWatchDialog is now deferred.
2024-03-07 15:59:03 -08:00
mitaclaw
0f36654d2b
PPCSymbolDB: Eliminate Redundant Member
...
This can be accessed through the CPUThreadGuard.
2024-03-06 21:44:53 -08:00
mitaclaw
4568446398
JitInterface::ClearCache: Modernize With CPUThreadGuard
...
It is recommended to view this diff with whitespace changes hidden.
2024-03-04 19:45:34 -08:00
mitaclaw
8d5e39751e
BranchWatchDialog: Fix GCC Warnings
...
GCC can't lambda right.
2024-03-02 07:53:23 -08:00
mitaclaw
16c609dcd4
BootManager: Avoid Global System Accessor
2024-03-01 23:39:04 -08:00
mitaclaw
0d4cb5ddc7
State: Avoid Global System Accessor
2024-03-01 10:52:50 -08:00
mitaclaw
26141eece8
Memory(View)Widget: Avoid Global System Accessor
2024-03-01 07:09:20 -08:00
mitaclaw
8eeb93d51a
CodeWidget: Simplify Case-Insensitive Contains
2024-02-27 12:03:38 -08:00
mitaclaw
8134c8a572
BranchWatchDialog: A Total Replacement for CodeDiffDialog
...
With a purpose-built Branch Watch feature built into the emulated system: BranchWatchDialog, replacing CodeDiffDialog, is now better than ever!
2024-02-27 11:40:58 -08:00
mitaclaw
fd8f2c7822
JitArm64: Install BranchWatch
2024-02-26 19:38:27 -08:00
mitaclaw
7cccedca1e
Jit64: Install BranchWatch
2024-02-26 19:38:27 -08:00
mitaclaw
2aa250a68a
Interpreter: Install BranchWatch
2024-02-26 19:38:27 -08:00
mitaclaw
67f60bec7e
PowerPC: Implement BranchWatch
...
This new component can track code paths by watching branch hits.
2024-02-26 19:38:27 -08:00
mitaclaw
085c4d154e
CheatSearch: Remove redundant lambdas
...
Core::RunAsCPUThread is obsoleted by CPUThreadGuard reference already passed into the function. The nonsense lambda in CheatSearchWidget is from changes in fdb7328c73 .
2024-02-01 19:54:47 -08:00
mitaclaw
45481620b8
Add Missing EncodeRegTo64 in JitArm64::dcbx
...
ARM64FloatEmitter::ABI_PushRegisters expects an XReg temporary, not a WReg.
2024-01-30 03:06:32 -08:00
mitaclaw
4805b02893
Arm64RegCache: Use FlushMode everywhere
2023-12-31 02:09:56 -08:00
mitaclaw
01e534a681
Fix Logic Inefficiency in Arm64GPRCache::FlushRegisters
...
This was introduced in 6a9f565ac4 .
2023-12-30 23:44:27 -08:00
mitaclaw
ca443d7f89
Fix Windows ARM64 debug build errors
...
Jit.cpp : Potentially uninitialized local pointer variable 'host_address_after_return' used in a DEBUG_ASSERT on line 470.
dolphin-emu.sln : A copy-paste error.
2023-12-17 11:31:28 -08:00
mitaclaw
70b3db93e0
Announce RSCRATCH clobbering in Jit64 when profiling is enabled
2023-07-19 14:15:42 -07:00