aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authornotaz2011-01-24 00:34:28 +0200
committernotaz2011-01-24 00:38:48 +0200
commite4eb18c1d2acc12f429723a3a65687eb2dc7eefb (patch)
tree24ac41db901997f7d3705743ee221a0e4e935748 /libpcsxcore
parent1e973cb0a85b35524ccc99766b8510534659ff65 (diff)
downloadpcsx_rearmed-e4eb18c1d2acc12f429723a3a65687eb2dc7eefb.tar.gz
pcsx_rearmed-e4eb18c1d2acc12f429723a3a65687eb2dc7eefb.tar.bz2
pcsx_rearmed-e4eb18c1d2acc12f429723a3a65687eb2dc7eefb.zip
drc: don't leave until we really need to
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/new_dynarec/emu_if.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c
index 572c482..a37f7a2 100644
--- a/libpcsxcore/new_dynarec/emu_if.c
+++ b/libpcsxcore/new_dynarec/emu_if.c
@@ -175,7 +175,9 @@ static void ari64_reset()
pending_exception = 1;
}
-static void ari64_execute()
+// execute until predefined leave points
+// (HLE softcall exit and BIOS fastboot end)
+static void ari64_execute_until()
{
schedule_timeslice();
@@ -188,6 +190,14 @@ static void ari64_execute()
psxRegs.cycle, next_interupt, next_interupt - psxRegs.cycle);
}
+static void ari64_execute()
+{
+ while (!stop) {
+ ari64_execute_until();
+ evprintf("drc left @%08x\n", psxRegs.pc);
+ }
+}
+
static void ari64_clear(u32 addr, u32 size)
{
u32 start, end;
@@ -229,7 +239,7 @@ R3000Acpu psxRec = {
ari64_reset,
#if defined(__arm__)
ari64_execute,
- ari64_execute,
+ ari64_execute_until,
#else
intExecuteT,
intExecuteBlockT,