Merge pull request #377 from pcercuei/libretro
[pcsx_rearmed.git] / deps / lightning / include / lightning / jit_s390.h
1 /*
2  * Copyright (C) 2013-2019  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_s390_h
21 #define _jit_s390_h
22
23 #define JIT_HASH_CONSTS         1
24 #define JIT_NUM_OPERANDS        2
25
26 /*
27  * Types
28  */
29 #define JIT_FP                  _R13
30 typedef enum {
31 #define jit_r(i)                (_R12 + ((i) << 1))
32 #define jit_r_num()             3
33 #define jit_v(i)                (_R11 + ((i) << 1))
34 #define jit_v_num()             3
35 #define jit_f(i)                (_F8 + (i))
36 #define jit_f_num()             6
37 #define JIT_R0                  _R12
38 #define JIT_R1                  _R10
39 #define JIT_R2                  _R8
40 #define JIT_V0                  _R11
41 #define JIT_V1                  _R9
42 #define JIT_V2                  _R7
43      _R0,  _R1,                 /* Volatile */
44     _R12,                       /* Saved, GOT */
45     _R11,  _R10,  _R9,  _R8,    /* Saved */
46      _R7,                       /* Saved */
47      _R6,                       /* Saved, parameter */
48      _R5,  _R4,  _R3,           /* Parameter passing */
49      _R2,                       /* Volatile, parameter and return value */
50     _R13,                       /* Saved, literal pool pointer */
51     _R14,                       /* Volatile, return address */
52     _R15,                       /* Saved, stack pointer */
53 #define JIT_F0                  _F8
54 #define JIT_F1                  _F9
55 #define JIT_F2                  _F10
56 #define JIT_F3                  _F11
57 #define JIT_F4                  _F12
58 #define JIT_F5                  _F13
59      _F1,  _F3,  _F5,  _F7,     /* Volatile */
60     _F14, _F15,  _F8,  _F9,     /* Saved */
61     _F10, _F11, _F12, _F13,     /* Saved */
62      _F6,  _F4,  _F2,           /* Volatile, parameter */
63      _F0,                       /* Volatile, parameter and return value */
64     _NOREG,
65 #define JIT_NOREG               _NOREG
66 } jit_reg_t;
67
68 #endif /* _jit_s390_h */