cdrom: change pause timing again
[pcsx_rearmed.git] / libpcsxcore / new_dynarec / assem_arm64.h
CommitLineData
be516ebe 1#define HOST_IMM8 1
be516ebe 2
be516ebe 3/* calling convention:
4 r0 -r17: caller-save
5 r19-r29: callee-save */
6
b7ec323c 7#define HOST_REGS 29
b7ec323c 8#define EXCLUDE_REG -1
9
d1e4ebd9 10#define SP 31
11#define WZR SP
12#define XZR SP
687b4580 13
be516ebe 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
b7ec323c 25#define CALLER_SAVE_REGS 0x0007ffff
26#define PREFERRED_REG_FIRST 19
27#define PREFERRED_REG_LAST 27
28
33a1eda1 29#define DRC_DBG_REGMASK 3 // others done by do_insn_cmp_arm64
30#define do_insn_cmp do_insn_cmp_arm64
31
687b4580 32// stack space
33a1eda1 33#define SSP_CALLEE_REGS (8*12) // new_dyna_start caller's
687b4580 34#define SSP_CALLER_REGS (8*20)
35#define SSP_ALL (SSP_CALLEE_REGS+SSP_CALLER_REGS)
36
2a014d73 37#define TARGET_SIZE_2 24 // 2^24 = 16 megabytes
38
be516ebe 39#ifndef __ASSEMBLER__
40
41extern char *invc_ptr;
42
2a014d73 43struct tramp_insns
44{
45 u_int ldr;
46 u_int br;
47};
be516ebe 48
2a014d73 49static void clear_cache_arm64(char *start, char *end);
be516ebe 50
277718fa 51void do_memhandler_pre();
52void do_memhandler_post();
53
be516ebe 54#endif // !__ASSEMBLY__