aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec/assem_arm.h
diff options
context:
space:
mode:
authornotaz2016-09-21 02:07:16 +0300
committernotaz2016-09-21 02:07:16 +0300
commit1e212a25c55c298490867c2ded029c82db1d2b9d (patch)
tree9747de48f8382bfcb93530b4f729fe98a6786e97 /libpcsxcore/new_dynarec/assem_arm.h
parent186935dccdeb09590c0858b7510c769f5ccb06de (diff)
downloadpcsx_rearmed-1e212a25c55c298490867c2ded029c82db1d2b9d.tar.gz
pcsx_rearmed-1e212a25c55c298490867c2ded029c82db1d2b9d.tar.bz2
pcsx_rearmed-1e212a25c55c298490867c2ded029c82db1d2b9d.zip
drc: some vita and 3ds support
not tested, mostly just guesswork
Diffstat (limited to 'libpcsxcore/new_dynarec/assem_arm.h')
-rw-r--r--libpcsxcore/new_dynarec/assem_arm.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.h b/libpcsxcore/new_dynarec/assem_arm.h
index acf65bd..bb6114c 100644
--- a/libpcsxcore/new_dynarec/assem_arm.h
+++ b/libpcsxcore/new_dynarec/assem_arm.h
@@ -39,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