drc: new far call mechanism
[pcsx_rearmed.git] / libpcsxcore / new_dynarec / assem_arm64.h
1 #define HOST_REGS 29
2 #define HOST_BTREG 27
3 #define EXCLUDE_REG -1
4
5 #define HOST_IMM8 1
6 #define RAM_SIZE 0x200000
7
8 /* calling convention:
9    r0 -r17: caller-save
10    r19-r29: callee-save */
11
12 #define SP 31
13 #define WZR SP
14 #define XZR SP
15
16 #define LR 30
17 #define HOST_TEMPREG LR
18
19 // Note: FP is set to &dynarec_local when executing generated code.
20 // Thus the local variables are actually global and not on the stack.
21 #define FP 29
22 #define rFP x29
23
24 #define HOST_CCREG 28
25 #define rCC w28
26
27 // stack space
28 #define SSP_CALLEE_REGS (8*12)
29 #define SSP_CALLER_REGS (8*20)
30 #define SSP_ALL (SSP_CALLEE_REGS+SSP_CALLER_REGS)
31
32 #define TARGET_SIZE_2 24 // 2^24 = 16 megabytes
33
34 #ifndef __ASSEMBLER__
35
36 extern char *invc_ptr;
37
38 struct tramp_insns
39 {
40   u_int ldr;
41   u_int br;
42 };
43
44 static void clear_cache_arm64(char *start, char *end);
45
46 #endif // !__ASSEMBLY__