X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=source%2Fmupen64plus-core%2Fsrc%2Fr4300%2Fnew_dynarec%2Fassem_arm.h;fp=source%2Fmupen64plus-core%2Fsrc%2Fr4300%2Fnew_dynarec%2Fassem_arm.h;h=a9db4f87c709eb31b2f6932ceec41911f24fa9a2;hb=451ab91e3827a6384981b3300e2a7000d2eaba58;hp=0000000000000000000000000000000000000000;hpb=a2ab25365b5b0dddbee476d695d8a31151407581;p=mupen64plus-pandora.git diff --git a/source/mupen64plus-core/src/r4300/new_dynarec/assem_arm.h b/source/mupen64plus-core/src/r4300/new_dynarec/assem_arm.h new file mode 100644 index 0000000..a9db4f8 --- /dev/null +++ b/source/mupen64plus-core/src/r4300/new_dynarec/assem_arm.h @@ -0,0 +1,43 @@ +#define HOST_REGS 13 +#define HOST_CCREG 10 +#define HOST_BTREG 8 +#define EXCLUDE_REG 11 + +#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 RAM_OFFSET 1 + +/* ARM calling convention: + r0-r3, r12: caller-save + r4-r11: callee-save */ + +#define ARG1_REG 0 +#define ARG2_REG 1 +#define ARG3_REG 2 +#define ARG4_REG 3 + +/* GCC register naming convention: + r10 = sl (base) + r11 = fp (frame pointer) + r12 = ip (scratch) + r13 = sp (stack pointer) + r14 = lr (link register) + r15 = pc (program counter) */ + +#define FP 11 +#define LR 14 +#define HOST_TEMPREG 14 + +// Note: FP is set to &dynarec_local when executing generated code. +// Thus the local variables are actually global and not on the stack. + +extern char *invc_ptr; +extern char extra_memory[33554432]; + +#define BASE_ADDR ((int)(&extra_memory)) +//#define TARGET_SIZE_2 24 // 2^24 = 16 megabytes +#define TARGET_SIZE_2 25 // 2^25 = 32 megabytes