summaryrefslogtreecommitdiff
path: root/libretro.c
diff options
context:
space:
mode:
authortwinaphex2014-12-10 17:06:09 +0100
committertwinaphex2014-12-10 17:06:09 +0100
commit51d78afa091d296e5545e69ed11201ee436053a1 (patch)
treede64f89c9c353493b471db18f32d10b89ba6733f /libretro.c
parent512f7f5b275ec011ff0bf406771fcbeada1caf29 (diff)
downloadpicogpsp-51d78afa091d296e5545e69ed11201ee436053a1.tar.gz
picogpsp-51d78afa091d296e5545e69ed11201ee436053a1.tar.bz2
picogpsp-51d78afa091d296e5545e69ed11201ee436053a1.zip
Add HAVE_DYNAREC ifdef
Diffstat (limited to 'libretro.c')
-rw-r--r--libretro.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/libretro.c b/libretro.c
index d834ede..c753f01 100644
--- a/libretro.c
+++ b/libretro.c
@@ -20,6 +20,7 @@ struct retro_perf_callback perf_cb;
static cothread_t main_thread;
static cothread_t cpu_thread;
+int dynarec_enable;
void switch_to_main_thread(void)
{
@@ -33,7 +34,10 @@ static inline void switch_to_cpu_thread(void)
static void cpu_thread_entry(void)
{
- execute_arm_translate(execute_cycles);
+#ifdef HAVE_DYNAREC
+ if (dynarec_enable)
+ execute_arm_translate(execute_cycles);
+#endif
execute_arm(execute_cycles);
}
@@ -97,7 +101,10 @@ void retro_init()
init_gamepak_buffer();
init_sound(1);
-#ifdef HAVE_MMAP
+#if defined(HAVE_DYNAREC)
+ dynarec_enable = 1;
+#if defined(HAVE_MMAP)
+
rom_translation_cache = mmap(NULL, ROM_TRANSLATION_CACHE_SIZE,
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);
ram_translation_cache = mmap(NULL, RAM_TRANSLATION_CACHE_SIZE,
@@ -109,6 +116,9 @@ void retro_init()
ram_translation_ptr = ram_translation_cache;
bios_translation_ptr = bios_translation_cache;
#endif
+#else
+ dynarec_enable = 0;
+#endif
}
void retro_deinit()
@@ -116,7 +126,7 @@ void retro_deinit()
perf_cb.perf_log();
memory_term();
-#ifdef HAVE_MMAP
+#if defined(HAVE_MMAP) && defined(HAVE_DYNAREC)
munmap(rom_translation_cache, ROM_TRANSLATION_CACHE_SIZE);
munmap(ram_translation_cache, RAM_TRANSLATION_CACHE_SIZE);
munmap(bios_translation_cache, BIOS_TRANSLATION_CACHE_SIZE);