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_arm_h
21 #define _jit_arm_h
22 
23 
24 #define JIT_NEEDS_LITERAL_POOL 1
25 
26 #define _R0     JIT_GPR(0)
27 #define _R1     JIT_GPR(1)
28 #define _R2     JIT_GPR(2)
29 #define _R3     JIT_GPR(3)
30 #define _R4     JIT_GPR(4)
31 #define _R5     JIT_GPR(5)
32 #define _R6     JIT_GPR(6)
33 #define _R7     JIT_GPR(7)
34 #define _R8     JIT_GPR(8)
35 #define _R9     JIT_GPR(9)
36 #define _R10    JIT_GPR(10)
37 #define _R11    JIT_GPR(11)
38 #define _R12    JIT_GPR(12)
39 #define _R13    JIT_GPR(13)
40 #define _R14    JIT_GPR(14)
41 #define _R15    JIT_GPR(15)
42 
43 #define _D0     JIT_FPR(0)
44 #define _D1     JIT_FPR(2)
45 #define _D2     JIT_FPR(4)
46 #define _D3     JIT_FPR(6)
47 #define _D4     JIT_FPR(8)
48 #define _D5     JIT_FPR(10)
49 #define _D6     JIT_FPR(12)
50 #define _D7     JIT_FPR(14)
51 #define _D8     JIT_FPR(16)
52 #define _D9     JIT_FPR(18)
53 #define _D10    JIT_FPR(20)
54 #define _D11    JIT_FPR(22)
55 #define _D12    JIT_FPR(24)
56 #define _D13    JIT_FPR(26)
57 #define _D14    JIT_FPR(28)
58 #define _D15    JIT_FPR(30)
59 
60 #define _S0     JIT_FPR(0)
61 #define _S1     JIT_FPR(1)
62 #define _S2     JIT_FPR(2)
63 #define _S3     JIT_FPR(3)
64 #define _S4     JIT_FPR(4)
65 #define _S5     JIT_FPR(5)
66 #define _S6     JIT_FPR(6)
67 #define _S7     JIT_FPR(7)
68 #define _S8     JIT_FPR(8)
69 #define _S9     JIT_FPR(9)
70 #define _S10     JIT_FPR(10)
71 #define _S11     JIT_FPR(11)
72 #define _S12     JIT_FPR(12)
73 #define _S13     JIT_FPR(13)
74 #define _S14     JIT_FPR(14)
75 #define _S15     JIT_FPR(15)
76 #define _S16     JIT_FPR(16)
77 #define _S17     JIT_FPR(17)
78 #define _S18     JIT_FPR(18)
79 #define _S19     JIT_FPR(19)
80 #define _S20    JIT_FPR(20)
81 #define _S21    JIT_FPR(21)
82 #define _S22    JIT_FPR(22)
83 #define _S23    JIT_FPR(23)
84 #define _S24    JIT_FPR(24)
85 #define _S25    JIT_FPR(25)
86 #define _S26    JIT_FPR(26)
87 #define _S27    JIT_FPR(27)
88 #define _S28    JIT_FPR(28)
89 #define _S29    JIT_FPR(29)
90 #define _S30    JIT_FPR(30)
91 #define _S31    JIT_FPR(31)
92 
93 #define JIT_R0    _R0
94 #define JIT_R1    _R1
95 #define JIT_R2    _R2
96 #define JIT_R3    _R3
97 #define JIT_TMP0  _R12
98 
99 #define JIT_V0    _R4
100 #define JIT_V1    _R5
101 #define JIT_V2    _R6
102 #define JIT_TMP1  _R7
103 #define JIT_V3    _R8
104 #define JIT_V4    _R9
105 #define JIT_V5    _R10
106 #define JIT_V6    _R11
107 
108 #define JIT_LR _R14
109 #define JIT_SP _R13
110 #define _LR _R14
111 #define _PC _R15
112 
113 #define JIT_F0 _D0
114 #define JIT_F1 _D1
115 #define JIT_F2 _D2
116 #define JIT_F3 _D3
117 #define JIT_F4 _D4
118 #define JIT_F5 _D5
119 #define JIT_F6 _D6
120 #define JIT_FTMP _D7
121 
122 #define JIT_VF0 _D8
123 #define JIT_VF1 _D9
124 #define JIT_VF2 _D10
125 #define JIT_VF3 _D11
126 #define JIT_VF4 _D12
127 #define JIT_VF5 _D13
128 #define JIT_VF6 _D14
129 #define JIT_VF7 _D15
130 
131 #define JIT_PLATFORM_CALLEE_SAVE_GPRS _LR, JIT_TMP1
132 
133 
134 #endif /* _jit_arm_h */
135