git subrepo pull --force deps/lightning
[pcsx_rearmed.git] / deps / lightning / include / lightning / jit_aarch64.h
CommitLineData
4a71579b 1/*
c0c16242 2 * Copyright (C) 2013-2022 Free Software Foundation, Inc.
4a71579b
PC
3 *
4 * This file is part of GNU lightning.
5 *
6 * GNU lightning is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License as published
8 * by the Free Software Foundation; either version 3, or (at your option)
9 * any later version.
10 *
11 * GNU lightning is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 * License for more details.
15 *
16 * Authors:
17 * Paulo Cesar Pereira de Andrade
18 */
19
20#ifndef _jit_aarch64_h
21#define _jit_aarch64_h
22
23#define JIT_HASH_CONSTS 0
24#define JIT_NUM_OPERANDS 3
25
26/*
27 * Types
28 */
29#define JIT_FP _R29
30typedef enum {
31#define jit_r(i) (_R9 + (i))
32#define jit_r_num() 7
33#define jit_v(i) (_R19 + (i))
34#define jit_v_num() 10
35#define jit_f(i) (_V8 + (i))
36#define jit_f_num() 8
37#define JIT_R0 _R9
38#define JIT_R1 _R10
39#define JIT_R2 _R11
40#define JIT_R3 _R12
41#define JIT_R4 _R13
42#define JIT_R5 _R14
43#define JIT_R6 _R15
44 _R8, /* indirect result */
45 _R18, /* platform register */
46 _R17, /* IP1 */
47 _R16, /* IP0 */
48 _R9, _R10, _R11, _R12, /* temporaries */
49 _R13, _R14, _R15,
50#define JIT_V0 _R19
51#define JIT_V1 _R20
52#define JIT_V2 _R21
53#define JIT_V3 _R22
54#define JIT_V4 _R23
55#define JIT_V5 _R24
56#define JIT_V6 _R25
57#define JIT_V7 _R26
58#define JIT_V8 _R27
59#define JIT_V9 _R28
60 _R19, _R20, _R21, _R22, /* callee save */
61 _R23, _R24, _R25, _R26,
62 _R27, _R28,
63 _SP, /* stack pointer */
64 _R30, /* link register */
65 _R29, /* frame pointer */
66 _R7, _R6, _R5, _R4,
67 _R3, _R2, _R1, _R0,
68#define JIT_F0 _V8
69#define JIT_F1 _V9
70#define JIT_F2 _V10
71#define JIT_F3 _V11
72#define JIT_F4 _V12
73#define JIT_F5 _V13
74#define JIT_F6 _V14
75#define JIT_F7 _V15
76 _V31, _V30, _V29, _V28, /* temporaries */
77 _V27, _V26, _V25, _V24,
78 _V23, _V22, _V21, _V20,
79 _V19, _V18, _V17, _V16,
80 /* callee save */
81 _V8, _V9, _V10, _V11,
82 _V12, _V13, _V14, _V15,
83 _V7, _V6, _V5, _V4, /* arguments */
84 _V3, _V2, _V1, _V0,
85 _NOREG,
86#define JIT_NOREG _NOREG
87} jit_reg_t;
88
89#endif /* _jit_aarch64_h */