summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlcaro2014-12-13 22:05:06 +0100
committerAlcaro2014-12-13 22:05:06 +0100
commit3c1474e99df836dbe81819f50884f0aa2a153e6b (patch)
tree8a18d4c1f220a2bc37f288b5fe7c8c5a6ea1a2a9
parent7e08f8c67b17ac8b1b9a318bede250caecad3818 (diff)
downloadpicogpsp-3c1474e99df836dbe81819f50884f0aa2a153e6b.tar.gz
picogpsp-3c1474e99df836dbe81819f50884f0aa2a153e6b.tar.bz2
picogpsp-3c1474e99df836dbe81819f50884f0aa2a153e6b.zip
Implement idle loop skipping. The framerate on SMA4 is NINE times faster this way!
-rw-r--r--cpu_orig.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cpu_orig.c b/cpu_orig.c
index 493bb69..9cde70e 100644
--- a/cpu_orig.c
+++ b/cpu_orig.c
@@ -3275,6 +3275,8 @@ skip_instruction:
/* End of Execute ARM instruction */
cycles_remaining -= cycles_per_instruction;
+
+ if (pc == idle_loop_target_pc && cycles_remaining > 0) cycles_remaining = 0;
} while(cycles_remaining > 0);
collapse_flags();
@@ -4242,6 +4244,8 @@ thumb_loop:
/* End of Execute THUMB instruction */
cycles_remaining -= cycles_per_instruction;
+
+ if (pc == idle_loop_target_pc && cycles_remaining > 0) cycles_remaining = 0;
} while(cycles_remaining > 0);
collapse_flags();