aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec/assem_arm.h
diff options
context:
space:
mode:
authornotaz2016-09-21 02:24:37 +0300
committernotaz2016-09-21 02:24:37 +0300
commit9766e77ddec3157cbf8b7da407b99f47467a8f72 (patch)
tree4684ad5828896ca870ffa6fe8fe53af943141cc2 /libpcsxcore/new_dynarec/assem_arm.h
parent38b1da12aade33bf94bdbe71a3988db6f57fb012 (diff)
parent1e212a25c55c298490867c2ded029c82db1d2b9d (diff)
downloadpcsx_rearmed-9766e77ddec3157cbf8b7da407b99f47467a8f72.tar.gz
pcsx_rearmed-9766e77ddec3157cbf8b7da407b99f47467a8f72.tar.bz2
pcsx_rearmed-9766e77ddec3157cbf8b7da407b99f47467a8f72.zip
Merge branch 'mainline' into libretro
Diffstat (limited to 'libpcsxcore/new_dynarec/assem_arm.h')
-rw-r--r--libpcsxcore/new_dynarec/assem_arm.h40
1 files changed, 14 insertions, 26 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.h b/libpcsxcore/new_dynarec/assem_arm.h
index 2254638..bb6114c 100644
--- a/libpcsxcore/new_dynarec/assem_arm.h
+++ b/libpcsxcore/new_dynarec/assem_arm.h
@@ -5,31 +5,10 @@
#define HOST_IMM8 1
#define HAVE_CMOV_IMM 1
-#define CORTEX_A8_BRANCH_PREDICTION_HACK 1
-#define USE_MINI_HT 1
-//#define REG_PREFETCH 1
#define HAVE_CONDITIONAL_CALL 1
-#define DISABLE_TLB 1
-//#define MUPEN64
-#define FORCE32 1
-#define DISABLE_COP1 1
-#define PCSX 1
#define RAM_SIZE 0x200000
-#ifndef __ARM_ARCH_7A__
-//#undef CORTEX_A8_BRANCH_PREDICTION_HACK
-//#undef USE_MINI_HT
-#endif
-
-#ifndef BASE_ADDR_FIXED
-#define BASE_ADDR_FIXED 0
-#endif
-
-#ifdef FORCE32
#define REG_SHIFT 2
-#else
-#define REG_SHIFT 3
-#endif
/* ARM calling convention:
r0-r3, r12: caller-save
@@ -60,10 +39,19 @@ extern char *invc_ptr;
#define TARGET_SIZE_2 24 // 2^24 = 16 megabytes
// Code generator target address
-#if BASE_ADDR_FIXED
-// "round" address helpful for debug
-#define BASE_ADDR 0x1000000
+#if defined(BASE_ADDR_FIXED)
+ // "round" address helpful for debug
+ // this produces best code, but not many platforms allow it,
+ // only use if you are sure this range is always free
+ #define BASE_ADDR 0x1000000
+ #define translation_cache (char *)BASE_ADDR
+#elif defined(BASE_ADDR_DYNAMIC)
+ // for platforms that can't just use .bss buffer, like vita
+ // otherwise better to use the next option for closer branches
+ extern char *translation_cache;
+ #define BASE_ADDR (u_int)translation_cache
#else
-extern char translation_cache[1 << TARGET_SIZE_2];
-#define BASE_ADDR (u_int)translation_cache
+ // using a static buffer in .bss
+ extern char translation_cache[1 << TARGET_SIZE_2];
+ #define BASE_ADDR (u_int)translation_cache
#endif