Commit Graph
81 Commits
Author SHA1 Message Date
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