Commit | Line | Data |
---|---|---|
4a71579b PC |
1 | /* |
2 | * Copyright (C) 2012-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_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 */ |