cdrom: change pause timing again
[pcsx_rearmed.git] / libpcsxcore / new_dynarec / assem_arm64.h
1 #define HOST_IMM8 1
2
3 /* calling convention:
4    r0 -r17: caller-save
5    r19-r29: callee-save */
6
7 #define HOST_REGS 29
8 #define EXCLUDE_REG -1
9
10 #define SP 31
11 #define WZR SP
12 #define XZR SP
13
14 #define LR 30
15 #define HOST_TEMPREG LR
16
17 // Note: FP is set to &dynarec_local when executing generated code.
18 // Thus the local variables are actually global and not on the stack.
19 #define FP 29
20 #define rFP x29
21
22 #define HOST_CCREG 28
23 #define rCC w28
24
25 #define CALLER_SAVE_REGS 0x0007ffff
26 #define PREFERRED_REG_FIRST 19
27 #define PREFERRED_REG_LAST  27
28
29 #define DRC_DBG_REGMASK 3 // others done by do_insn_cmp_arm64
30 #define do_insn_cmp do_insn_cmp_arm64
31
32 // stack space
33 #define SSP_CALLEE_REGS (8*12) // new_dyna_start caller's
34 #define SSP_CALLER_REGS (8*20)
35 #define SSP_ALL (SSP_CALLEE_REGS+SSP_CALLER_REGS)
36
37 #define TARGET_SIZE_2 24 // 2^24 = 16 megabytes
38
39 #ifndef __ASSEMBLER__
40
41 extern char *invc_ptr;
42
43 struct tramp_insns
44 {
45   u_int ldr;
46   u_int br;
47 };
48
49 static void clear_cache_arm64(char *start, char *end);
50
51 void do_memhandler_pre();
52 void do_memhandler_post();
53
54 #endif // !__ASSEMBLY__