summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2026-02-14 14:42:42 +0100
committerJosJuice <josjuice@gmail.com>2026-02-23 23:01:49 +0100
commitc1a26808ce5a09bcc08e029b71d4b1fb47bc4d57 (patch)
tree6c9a139f680818afbf96552ba6208bd5a5da7db4 /Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp
parent36f45dce44ddf8074df70fe1c217e08735189d57 (diff)
Jit: Use RangeSet for physical_addresses
This makes JitBaseBlockCache::ErasePhysicalRange around 50% faster and PPCAnalyzer::Analyze around 40% faster. Rogue Squadron 2's notoriously laggy action of switching to and from cockpit view is made something like 20-30% faster by this, though this is a very rough measurement.
Diffstat (limited to 'Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp')
-rw-r--r--Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp b/Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp
index 25701d26f4..61f5851380 100644
--- a/Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp
+++ b/Source/Core/DolphinQt/Debugger/JitBlockTableModel.cpp
@@ -236,7 +236,8 @@ QVariant JitBlockTableModel::DisplayRoleData(const QModelIndex& index) const
case Column::CodeBufferSize:
return QString::number(jit_block.originalSize * sizeof(UGeckoInstruction));
case Column::RepeatInstructions:
- return QString::number(jit_block.originalSize - jit_block.physical_addresses.size());
+ return QString::number(jit_block.originalSize - jit_block.physical_addresses.get_stats().first /
+ sizeof(UGeckoInstruction));
case Column::HostNearCodeSize:
return QString::number(jit_block.near_end - jit_block.near_begin);
case Column::HostFarCodeSize:
@@ -329,7 +330,9 @@ QVariant JitBlockTableModel::SortRoleData(const QModelIndex& index) const
case Column::CodeBufferSize:
return static_cast<qulonglong>(jit_block.originalSize);
case Column::RepeatInstructions:
- return static_cast<qulonglong>(jit_block.originalSize - jit_block.physical_addresses.size());
+ return static_cast<qulonglong>(jit_block.originalSize -
+ jit_block.physical_addresses.get_stats().first /
+ sizeof(UGeckoInstruction));
case Column::HostNearCodeSize:
return static_cast<qulonglong>(jit_block.near_end - jit_block.near_begin);
case Column::HostFarCodeSize: