Commit | Line | Data |
---|---|---|
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_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 */ |