From 1e212a25c55c298490867c2ded029c82db1d2b9d Mon Sep 17 00:00:00 2001 From: notaz Date: Wed, 21 Sep 2016 02:07:16 +0300 Subject: drc: some vita and 3ds support not tested, mostly just guesswork --- libpcsxcore/new_dynarec/assem_arm.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'libpcsxcore/new_dynarec/assem_arm.h') 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 -- cgit v1.2.3