git subrepo pull --force deps/lightning
[pcsx_rearmed.git] / deps / lightning / include / lightning / jit_ppc.h
1 /*
2  * Copyright (C) 2012-2022  Free Software Foundation, Inc.
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_ppc_h
21 #define _jit_ppc_h
22
23 #define JIT_HASH_CONSTS         1
24 #define JIT_NUM_OPERANDS        3
25
26 /*
27  * Types
28  */
29 typedef enum {
30 #define jit_r(i)                (_R28 + (i))
31 #define jit_r_num()             3
32 #define jit_v(i)                (_R27 - (i))
33 #define jit_v_num()             14
34 #define jit_f(i)                (_F14 + (i))
35 #define jit_f_num()             8
36     _R0,
37 #define JIT_R0                  _R28
38 #define JIT_R1                  _R29
39 #define JIT_R2                  _R30
40     _R11,       _R12,   _R13,   _R2,
41 #define JIT_V0                  jit_v(0)
42 #define JIT_V1                  jit_v(1)
43 #define JIT_V2                  jit_v(2)
44 #define JIT_V3                  jit_v(3)
45 #define JIT_V4                  jit_v(4)
46 #define JIT_V5                  jit_v(5)
47 #define JIT_V6                  jit_v(6)
48 #define JIT_V7                  jit_v(7)
49 #define JIT_V8                  jit_v(8)
50 #define JIT_V9                  jit_v(9)
51 #define JIT_V10                 jit_v(10)
52 #define JIT_V11                 jit_v(11)
53 #define JIT_V12                 jit_v(12)
54 #define JIT_V13                 jit_v(13)
55     _R14,       _R15,   _R16,   _R17,   _R18,   _R19,   _R20,   _R21,
56     _R22,       _R23,   _R24,   _R25,   _R26,   _R27,   _R28,   _R29,
57     _R30,
58     _R1,
59 #define JIT_FP                  _R31
60     _R31,
61     _R10,       _R9,    _R8,    _R7,    _R6,    _R5,    _R4,    _R3,
62     _F0,
63     _F14,       _F15,   _F16,   _F17,   _F18,   _F19,   _F20,   _F21,
64 #define JIT_F0                  _F14
65 #define JIT_F1                  _F15
66 #define JIT_F2                  _F16
67 #define JIT_F3                  _F17
68 #define JIT_F4                  _F18
69 #define JIT_F5                  _F19
70 #define JIT_F6                  _F20
71 #define JIT_F7                  _F21
72     /* FIXME _F20-_F31 not (easily) accessible and only _F14-_F21
73      * saved/restored (if used) */
74     _F22,       _F23,   _F24,   _F25,   _F26,   _F27,   _F28,   _F29,
75     _F30,       _F31,
76     _F13,       _F12,   _F11,   _F10,   _F9,    _F8,    _F7,    _F6,
77     _F5,        _F4,    _F3,    _F2,    _F1,
78     _NOREG,
79 #define JIT_NOREG               _NOREG
80 } jit_reg_t;
81
82 #endif /* _jit_ppc_h */