|
|
@@ -6,8 +6,8 @@
|
|
|
<rect>
|
|
|
<x>0</x>
|
|
|
<y>0</y>
|
|
|
- <width>400</width>
|
|
|
- <height>321</height>
|
|
|
+ <width>592</width>
|
|
|
+ <height>503</height>
|
|
|
</rect>
|
|
|
</property>
|
|
|
<property name="windowTitle">
|
|
|
@@ -17,140 +17,132 @@
|
|
|
<item>
|
|
|
<layout class="QVBoxLayout">
|
|
|
<item>
|
|
|
- <widget class="QGroupBox">
|
|
|
+ <widget class="QGroupBox" name="groupBox">
|
|
|
<property name="title">
|
|
|
<string>Toggle CPU Optimizations</string>
|
|
|
</property>
|
|
|
<layout class="QVBoxLayout">
|
|
|
<item>
|
|
|
- <widget class="QLabel">
|
|
|
- <property name="wordWrap">
|
|
|
- <bool>1</bool>
|
|
|
- </property>
|
|
|
+ <widget class="QLabel" name="label">
|
|
|
<property name="text">
|
|
|
- <string>
|
|
|
- <div>
|
|
|
- <b>For debugging only.</b>
|
|
|
- <br>
|
|
|
- If you're not sure what these do, keep all of these enabled.
|
|
|
- <br>
|
|
|
- These settings, when disabled, only take effect when CPU Accuracy is "Debug Mode".
|
|
|
- </div>
|
|
|
- </string>
|
|
|
+ <string><html><head/><body><p><span style=" font-weight:600;">For debugging only.</span><br/>If you're not sure what these do, keep all of these enabled. <br/>These settings, when disabled, only take effect when CPU Debugging is enabled. </p></body></html></string>
|
|
|
+ </property>
|
|
|
+ <property name="wordWrap">
|
|
|
+ <bool>false</bool>
|
|
|
</property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_page_tables">
|
|
|
- <property name="text">
|
|
|
- <string>Enable inline page tables</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
- <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div>
|
|
|
- <div style="white-space: nowrap">Enabling it inlines accesses to PageTable::pointers into emitted code.</div>
|
|
|
- <div style="white-space: nowrap">Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.</div>
|
|
|
+ <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div>
|
|
|
+ <div style="white-space: nowrap">Enabling it inlines accesses to PageTable::pointers into emitted code.</div>
|
|
|
+ <div style="white-space: nowrap">Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable inline page tables</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_block_linking">
|
|
|
- <property name="text">
|
|
|
- <string>Enable block linking</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
<div>This optimization avoids dispatcher lookups by allowing emitted basic blocks to jump directly to other basic blocks if the destination PC is static.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable block linking</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_return_stack_buffer">
|
|
|
- <property name="text">
|
|
|
- <string>Enable return stack buffer</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
<div>This optimization avoids dispatcher lookups by keeping track potential return addresses of BL instructions. This approximates what happens with a return stack buffer on a real CPU.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable return stack buffer</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_fast_dispatcher">
|
|
|
- <property name="text">
|
|
|
- <string>Enable fast dispatcher</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
<div>Enable a two-tiered dispatch system. A faster dispatcher written in assembly has a small MRU cache of jump destinations is used first. If that fails, dispatch falls back to the slower C++ dispatcher.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable fast dispatcher</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_context_elimination">
|
|
|
- <property name="text">
|
|
|
- <string>Enable context elimination</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
<div>Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable context elimination</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_const_prop">
|
|
|
- <property name="text">
|
|
|
- <string>Enable constant propagation</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
<div>Enables IR optimizations that involve constant propagation.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable constant propagation</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_misc_ir">
|
|
|
- <property name="text">
|
|
|
- <string>Enable miscellaneous optimizations</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
<div>Enables miscellaneous IR optimizations.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable miscellaneous optimizations</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_reduce_misalign_checks">
|
|
|
- <property name="text">
|
|
|
- <string>Enable misalignment check reduction</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
- <div style="white-space: nowrap">When enabled, a misalignment is only triggered when an access crosses a page boundary.</div>
|
|
|
- <div style="white-space: nowrap">When disabled, a misalignment is triggered on all misaligned accesses.</div>
|
|
|
+ <div style="white-space: nowrap">When enabled, a misalignment is only triggered when an access crosses a page boundary.</div>
|
|
|
+ <div style="white-space: nowrap">When disabled, a misalignment is triggered on all misaligned accesses.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable misalignment check reduction</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
<item>
|
|
|
<widget class="QCheckBox" name="cpuopt_fastmem">
|
|
|
- <property name="text">
|
|
|
- <string>Enable Host MMU Emulation</string>
|
|
|
- </property>
|
|
|
<property name="toolTip">
|
|
|
<string>
|
|
|
- <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div>
|
|
|
- <div style="white-space: nowrap">Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.</div>
|
|
|
- <div style="white-space: nowrap">Disabling this forces all memory accesses to use Software MMU Emulation.</div>
|
|
|
+ <div style="white-space: nowrap">This optimization speeds up memory accesses by the guest program.</div>
|
|
|
+ <div style="white-space: nowrap">Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.</div>
|
|
|
+ <div style="white-space: nowrap">Disabling this forces all memory accesses to use Software MMU Emulation.</div>
|
|
|
</string>
|
|
|
</property>
|
|
|
+ <property name="text">
|
|
|
+ <string>Enable Host MMU Emulation</string>
|
|
|
+ </property>
|
|
|
</widget>
|
|
|
</item>
|
|
|
</layout>
|