From d3f3bf09b5b3f1d8b025cc9dbd902eb157aae0b7 Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 1 Oct 2011 01:13:43 +0300 Subject: [PATCH] yet more random armv5 tweaks --- frontend/main.c | 3 +++ frontend/menu.c | 3 +++ frontend/plat_pollux.c | 4 ++++ frontend/plugin_lib.c | 2 +- libpcsxcore/new_dynarec/assem_arm.h | 6 ++++++ libpcsxcore/new_dynarec/emu_if.c | 3 +++ libpcsxcore/new_dynarec/emu_if.h | 4 ---- libpcsxcore/new_dynarec/new_dynarec.c | 2 +- 8 files changed, 21 insertions(+), 6 deletions(-) diff --git a/frontend/main.c b/frontend/main.c index 37a72ac7..0a9bed65 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -121,6 +121,9 @@ static void set_default_paths(void) strcpy(Config.Pad1, "builtin_pad"); strcpy(Config.Pad2, "builtin_pad"); strcpy(Config.Net, "Disabled"); +#if defined(__arm__) && !defined(__ARM_ARCH_7A__) /* XXX */ + strcpy(Config.Gpu, "gpuPCSX4ALL.so"); +#endif Config.PsxAuto = 1; snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR); diff --git a/frontend/menu.c b/frontend/menu.c index ce65ccf4..36c9f915 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -192,6 +192,9 @@ static void menu_set_defconfig(void) iXAPitch = 0; iSPUIRQWait = 1; iUseTimer = 2; +#ifndef __ARM_ARCH_7A__ /* XXX */ + iUseReverb = 0; +#endif menu_sync_config(); } diff --git a/frontend/plat_pollux.c b/frontend/plat_pollux.c index d214b636..4983ec77 100644 --- a/frontend/plat_pollux.c +++ b/frontend/plat_pollux.c @@ -24,6 +24,7 @@ #include "main.h" #include "menu.h" #include "plat.h" +#include "pcnt.h" static int fbdev = -1, memdev = -1, battdev = -1; static volatile unsigned short *memregs; @@ -320,6 +321,7 @@ static void raw_flip_dma(int x, int y) int i; warm_cache_op_all(WOP_D_CLEAN); + pcnt_start(PCNT_BLIT); dst &= ~7; len &= ~7; @@ -354,6 +356,8 @@ static void raw_flip_dma(int x, int y) g_menuscreen_ptr = fb_flip(); pl_flip_cnt++; + + pcnt_end(PCNT_BLIT); } static void raw_flip_soft(int x, int y) diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index 239e8520..c719f48e 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -410,7 +410,7 @@ static void *watchdog_thread(void *unused) int seen_dead = 0; int sleep_time = 5; -#ifndef NDEBUG +#if !defined(NDEBUG) || defined(DRC_DBG) // don't interfere with debug return NULL; #endif diff --git a/libpcsxcore/new_dynarec/assem_arm.h b/libpcsxcore/new_dynarec/assem_arm.h index a289aa18..917d2761 100644 --- a/libpcsxcore/new_dynarec/assem_arm.h +++ b/libpcsxcore/new_dynarec/assem_arm.h @@ -16,6 +16,12 @@ #define PCSX 1 #define RAM_SIZE 0x200000 +#ifndef __ARM_ARCH_7A__ +#define ARMv5_ONLY +//#undef CORTEX_A8_BRANCH_PREDICTION_HACK +//#undef USE_MINI_HT +#endif + #ifdef FORCE32 #define REG_SHIFT 2 #else diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c index 39bbf2ad..02433f10 100644 --- a/libpcsxcore/new_dynarec/emu_if.c +++ b/libpcsxcore/new_dynarec/emu_if.c @@ -200,6 +200,9 @@ static int ari64_init() gte_handlers[0x30] = gte_handlers_nf[0x30] = gteRTPT_neon; gte_handlers[0x12] = gte_handlers_nf[0x12] = gteMVMVA_neon; #endif +#endif +#ifdef DRC_DBG + memcpy(gte_handlers_nf, gte_handlers, sizeof(gte_handlers_nf)); #endif psxH_ptr = psxH; diff --git a/libpcsxcore/new_dynarec/emu_if.h b/libpcsxcore/new_dynarec/emu_if.h index 88749bec..7f625a7c 100644 --- a/libpcsxcore/new_dynarec/emu_if.h +++ b/libpcsxcore/new_dynarec/emu_if.h @@ -1,10 +1,6 @@ #include "new_dynarec.h" #include "../r3000a.h" -#ifndef __ARM_ARCH_7A__ -#define ARMv5_ONLY -#endif - extern char invalid_code[0x100000]; /* weird stuff */ diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index 716b1d41..cbc289e7 100644 --- a/libpcsxcore/new_dynarec/new_dynarec.c +++ b/libpcsxcore/new_dynarec/new_dynarec.c @@ -8601,7 +8601,7 @@ int new_recompile_block(int addr) case 0x04: gte_rt[i]=1ll<