1
2
3 package ssacompile
4
5 import (
6 "cmd/compile/internal/ssa/ssabase"
7 "cmd/compile/internal/ssa/ssaop"
8 "cmd/internal/obj/arm"
9 "cmd/internal/obj/arm64"
10 "cmd/internal/obj/loong64"
11 "cmd/internal/obj/mips"
12 "cmd/internal/obj/ppc64"
13 "cmd/internal/obj/riscv"
14 "cmd/internal/obj/s390x"
15 "cmd/internal/obj/wasm"
16 "cmd/internal/obj/x86"
17 )
18
19 var registers386 = [...]ssabase.Register{
20 {Num: 0, ObjNum: x86.REG_AX, Name: "AX"},
21 {Num: 1, ObjNum: x86.REG_CX, Name: "CX"},
22 {Num: 2, ObjNum: x86.REG_DX, Name: "DX"},
23 {Num: 3, ObjNum: x86.REG_BX, Name: "BX"},
24 {Num: 4, ObjNum: x86.REGSP, Name: "SP"},
25 {Num: 5, ObjNum: x86.REG_BP, Name: "BP"},
26 {Num: 6, ObjNum: x86.REG_SI, Name: "SI"},
27 {Num: 7, ObjNum: x86.REG_DI, Name: "DI"},
28 {Num: 8, ObjNum: x86.REG_X0, Name: "X0"},
29 {Num: 9, ObjNum: x86.REG_X1, Name: "X1"},
30 {Num: 10, ObjNum: x86.REG_X2, Name: "X2"},
31 {Num: 11, ObjNum: x86.REG_X3, Name: "X3"},
32 {Num: 12, ObjNum: x86.REG_X4, Name: "X4"},
33 {Num: 13, ObjNum: x86.REG_X5, Name: "X5"},
34 {Num: 14, ObjNum: x86.REG_X6, Name: "X6"},
35 {Num: 15, ObjNum: x86.REG_X7, Name: "X7"},
36 {Num: 16, ObjNum: 0, Name: "SB"},
37 }
38 var paramIntReg386 = []int8(nil)
39 var paramFloatReg386 = []int8(nil)
40 var gpRegMask386 = ssaop.RegMask{V1: 239, V2: 0}
41 var fpRegMask386 = ssaop.RegMask{V1: 65280, V2: 0}
42 var specialRegMask386 = ssaop.RegMask{V1: 0, V2: 0}
43 var framepointerReg386 = int8(5)
44 var linkReg386 = int8(-1)
45 var registersAMD64 = [...]ssabase.Register{
46 {Num: 0, ObjNum: x86.REG_AX, Name: "AX"},
47 {Num: 1, ObjNum: x86.REG_CX, Name: "CX"},
48 {Num: 2, ObjNum: x86.REG_DX, Name: "DX"},
49 {Num: 3, ObjNum: x86.REG_BX, Name: "BX"},
50 {Num: 4, ObjNum: x86.REGSP, Name: "SP"},
51 {Num: 5, ObjNum: x86.REG_BP, Name: "BP"},
52 {Num: 6, ObjNum: x86.REG_SI, Name: "SI"},
53 {Num: 7, ObjNum: x86.REG_DI, Name: "DI"},
54 {Num: 8, ObjNum: x86.REG_R8, Name: "R8"},
55 {Num: 9, ObjNum: x86.REG_R9, Name: "R9"},
56 {Num: 10, ObjNum: x86.REG_R10, Name: "R10"},
57 {Num: 11, ObjNum: x86.REG_R11, Name: "R11"},
58 {Num: 12, ObjNum: x86.REG_R12, Name: "R12"},
59 {Num: 13, ObjNum: x86.REG_R13, Name: "R13"},
60 {Num: 14, ObjNum: x86.REGG, Name: "g"},
61 {Num: 15, ObjNum: x86.REG_R15, Name: "R15"},
62 {Num: 16, ObjNum: x86.REG_X0, Name: "X0"},
63 {Num: 17, ObjNum: x86.REG_X1, Name: "X1"},
64 {Num: 18, ObjNum: x86.REG_X2, Name: "X2"},
65 {Num: 19, ObjNum: x86.REG_X3, Name: "X3"},
66 {Num: 20, ObjNum: x86.REG_X4, Name: "X4"},
67 {Num: 21, ObjNum: x86.REG_X5, Name: "X5"},
68 {Num: 22, ObjNum: x86.REG_X6, Name: "X6"},
69 {Num: 23, ObjNum: x86.REG_X7, Name: "X7"},
70 {Num: 24, ObjNum: x86.REG_X8, Name: "X8"},
71 {Num: 25, ObjNum: x86.REG_X9, Name: "X9"},
72 {Num: 26, ObjNum: x86.REG_X10, Name: "X10"},
73 {Num: 27, ObjNum: x86.REG_X11, Name: "X11"},
74 {Num: 28, ObjNum: x86.REG_X12, Name: "X12"},
75 {Num: 29, ObjNum: x86.REG_X13, Name: "X13"},
76 {Num: 30, ObjNum: x86.REG_X14, Name: "X14"},
77 {Num: 31, ObjNum: x86.REG_X15, Name: "X15"},
78 {Num: 32, ObjNum: x86.REG_X16, Name: "X16"},
79 {Num: 33, ObjNum: x86.REG_X17, Name: "X17"},
80 {Num: 34, ObjNum: x86.REG_X18, Name: "X18"},
81 {Num: 35, ObjNum: x86.REG_X19, Name: "X19"},
82 {Num: 36, ObjNum: x86.REG_X20, Name: "X20"},
83 {Num: 37, ObjNum: x86.REG_X21, Name: "X21"},
84 {Num: 38, ObjNum: x86.REG_X22, Name: "X22"},
85 {Num: 39, ObjNum: x86.REG_X23, Name: "X23"},
86 {Num: 40, ObjNum: x86.REG_X24, Name: "X24"},
87 {Num: 41, ObjNum: x86.REG_X25, Name: "X25"},
88 {Num: 42, ObjNum: x86.REG_X26, Name: "X26"},
89 {Num: 43, ObjNum: x86.REG_X27, Name: "X27"},
90 {Num: 44, ObjNum: x86.REG_X28, Name: "X28"},
91 {Num: 45, ObjNum: x86.REG_X29, Name: "X29"},
92 {Num: 46, ObjNum: x86.REG_X30, Name: "X30"},
93 {Num: 47, ObjNum: x86.REG_X31, Name: "X31"},
94 {Num: 48, ObjNum: x86.REG_K0, Name: "K0"},
95 {Num: 49, ObjNum: x86.REG_K1, Name: "K1"},
96 {Num: 50, ObjNum: x86.REG_K2, Name: "K2"},
97 {Num: 51, ObjNum: x86.REG_K3, Name: "K3"},
98 {Num: 52, ObjNum: x86.REG_K4, Name: "K4"},
99 {Num: 53, ObjNum: x86.REG_K5, Name: "K5"},
100 {Num: 54, ObjNum: x86.REG_K6, Name: "K6"},
101 {Num: 55, ObjNum: x86.REG_K7, Name: "K7"},
102 {Num: 56, ObjNum: 0, Name: "SB"},
103 }
104 var paramIntRegAMD64 = []int8{0, 3, 1, 7, 6, 8, 9, 10, 11}
105 var paramFloatRegAMD64 = []int8{16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}
106 var gpRegMaskAMD64 = ssaop.RegMask{V1: 49135, V2: 0}
107 var fpRegMaskAMD64 = ssaop.RegMask{V1: 2147418112, V2: 0}
108 var simdRegMaskAMD64 = ssaop.RegMask{V1: 2147418112, V2: 0}
109 var specialRegMaskAMD64 = ssaop.RegMask{V1: 71776114766249984, V2: 0}
110 var framepointerRegAMD64 = int8(5)
111 var linkRegAMD64 = int8(-1)
112 var registersARM = [...]ssabase.Register{
113 {Num: 0, ObjNum: arm.REG_R0, Name: "R0"},
114 {Num: 1, ObjNum: arm.REG_R1, Name: "R1"},
115 {Num: 2, ObjNum: arm.REG_R2, Name: "R2"},
116 {Num: 3, ObjNum: arm.REG_R3, Name: "R3"},
117 {Num: 4, ObjNum: arm.REG_R4, Name: "R4"},
118 {Num: 5, ObjNum: arm.REG_R5, Name: "R5"},
119 {Num: 6, ObjNum: arm.REG_R6, Name: "R6"},
120 {Num: 7, ObjNum: arm.REG_R7, Name: "R7"},
121 {Num: 8, ObjNum: arm.REG_R8, Name: "R8"},
122 {Num: 9, ObjNum: arm.REG_R9, Name: "R9"},
123 {Num: 10, ObjNum: arm.REGG, Name: "g"},
124 {Num: 11, ObjNum: arm.REG_R11, Name: "R11"},
125 {Num: 12, ObjNum: arm.REG_R12, Name: "R12"},
126 {Num: 13, ObjNum: arm.REGSP, Name: "SP"},
127 {Num: 14, ObjNum: arm.REG_R14, Name: "R14"},
128 {Num: 15, ObjNum: arm.REG_R15, Name: "R15"},
129 {Num: 16, ObjNum: arm.REG_F0, Name: "F0"},
130 {Num: 17, ObjNum: arm.REG_F1, Name: "F1"},
131 {Num: 18, ObjNum: arm.REG_F2, Name: "F2"},
132 {Num: 19, ObjNum: arm.REG_F3, Name: "F3"},
133 {Num: 20, ObjNum: arm.REG_F4, Name: "F4"},
134 {Num: 21, ObjNum: arm.REG_F5, Name: "F5"},
135 {Num: 22, ObjNum: arm.REG_F6, Name: "F6"},
136 {Num: 23, ObjNum: arm.REG_F7, Name: "F7"},
137 {Num: 24, ObjNum: arm.REG_F8, Name: "F8"},
138 {Num: 25, ObjNum: arm.REG_F9, Name: "F9"},
139 {Num: 26, ObjNum: arm.REG_F10, Name: "F10"},
140 {Num: 27, ObjNum: arm.REG_F11, Name: "F11"},
141 {Num: 28, ObjNum: arm.REG_F12, Name: "F12"},
142 {Num: 29, ObjNum: arm.REG_F13, Name: "F13"},
143 {Num: 30, ObjNum: arm.REG_F14, Name: "F14"},
144 {Num: 31, ObjNum: arm.REG_F15, Name: "F15"},
145 {Num: 32, ObjNum: 0, Name: "SB"},
146 }
147 var paramIntRegARM = []int8(nil)
148 var paramFloatRegARM = []int8(nil)
149 var gpRegMaskARM = ssaop.RegMask{V1: 21503, V2: 0}
150 var fpRegMaskARM = ssaop.RegMask{V1: 4294901760, V2: 0}
151 var specialRegMaskARM = ssaop.RegMask{V1: 0, V2: 0}
152 var framepointerRegARM = int8(-1)
153 var linkRegARM = int8(14)
154 var registersARM64 = [...]ssabase.Register{
155 {Num: 0, ObjNum: arm64.REG_R0, Name: "R0"},
156 {Num: 1, ObjNum: arm64.REG_R1, Name: "R1"},
157 {Num: 2, ObjNum: arm64.REG_R2, Name: "R2"},
158 {Num: 3, ObjNum: arm64.REG_R3, Name: "R3"},
159 {Num: 4, ObjNum: arm64.REG_R4, Name: "R4"},
160 {Num: 5, ObjNum: arm64.REG_R5, Name: "R5"},
161 {Num: 6, ObjNum: arm64.REG_R6, Name: "R6"},
162 {Num: 7, ObjNum: arm64.REG_R7, Name: "R7"},
163 {Num: 8, ObjNum: arm64.REG_R8, Name: "R8"},
164 {Num: 9, ObjNum: arm64.REG_R9, Name: "R9"},
165 {Num: 10, ObjNum: arm64.REG_R10, Name: "R10"},
166 {Num: 11, ObjNum: arm64.REG_R11, Name: "R11"},
167 {Num: 12, ObjNum: arm64.REG_R12, Name: "R12"},
168 {Num: 13, ObjNum: arm64.REG_R13, Name: "R13"},
169 {Num: 14, ObjNum: arm64.REG_R14, Name: "R14"},
170 {Num: 15, ObjNum: arm64.REG_R15, Name: "R15"},
171 {Num: 16, ObjNum: arm64.REG_R16, Name: "R16"},
172 {Num: 17, ObjNum: arm64.REG_R17, Name: "R17"},
173 {Num: 18, ObjNum: arm64.REG_R19, Name: "R19"},
174 {Num: 19, ObjNum: arm64.REG_R20, Name: "R20"},
175 {Num: 20, ObjNum: arm64.REG_R21, Name: "R21"},
176 {Num: 21, ObjNum: arm64.REG_R22, Name: "R22"},
177 {Num: 22, ObjNum: arm64.REG_R23, Name: "R23"},
178 {Num: 23, ObjNum: arm64.REG_R24, Name: "R24"},
179 {Num: 24, ObjNum: arm64.REG_R25, Name: "R25"},
180 {Num: 25, ObjNum: arm64.REG_R26, Name: "R26"},
181 {Num: 26, ObjNum: arm64.REGG, Name: "g"},
182 {Num: 27, ObjNum: arm64.REG_R29, Name: "R29"},
183 {Num: 28, ObjNum: arm64.REG_R30, Name: "R30"},
184 {Num: 29, ObjNum: arm64.REGZERO, Name: "ZERO"},
185 {Num: 30, ObjNum: arm64.REGSP, Name: "SP"},
186 {Num: 31, ObjNum: arm64.REG_F0, Name: "F0"},
187 {Num: 32, ObjNum: arm64.REG_F1, Name: "F1"},
188 {Num: 33, ObjNum: arm64.REG_F2, Name: "F2"},
189 {Num: 34, ObjNum: arm64.REG_F3, Name: "F3"},
190 {Num: 35, ObjNum: arm64.REG_F4, Name: "F4"},
191 {Num: 36, ObjNum: arm64.REG_F5, Name: "F5"},
192 {Num: 37, ObjNum: arm64.REG_F6, Name: "F6"},
193 {Num: 38, ObjNum: arm64.REG_F7, Name: "F7"},
194 {Num: 39, ObjNum: arm64.REG_F8, Name: "F8"},
195 {Num: 40, ObjNum: arm64.REG_F9, Name: "F9"},
196 {Num: 41, ObjNum: arm64.REG_F10, Name: "F10"},
197 {Num: 42, ObjNum: arm64.REG_F11, Name: "F11"},
198 {Num: 43, ObjNum: arm64.REG_F12, Name: "F12"},
199 {Num: 44, ObjNum: arm64.REG_F13, Name: "F13"},
200 {Num: 45, ObjNum: arm64.REG_F14, Name: "F14"},
201 {Num: 46, ObjNum: arm64.REG_F15, Name: "F15"},
202 {Num: 47, ObjNum: arm64.REG_F16, Name: "F16"},
203 {Num: 48, ObjNum: arm64.REG_F17, Name: "F17"},
204 {Num: 49, ObjNum: arm64.REG_F18, Name: "F18"},
205 {Num: 50, ObjNum: arm64.REG_F19, Name: "F19"},
206 {Num: 51, ObjNum: arm64.REG_F20, Name: "F20"},
207 {Num: 52, ObjNum: arm64.REG_F21, Name: "F21"},
208 {Num: 53, ObjNum: arm64.REG_F22, Name: "F22"},
209 {Num: 54, ObjNum: arm64.REG_F23, Name: "F23"},
210 {Num: 55, ObjNum: arm64.REG_F24, Name: "F24"},
211 {Num: 56, ObjNum: arm64.REG_F25, Name: "F25"},
212 {Num: 57, ObjNum: arm64.REG_F26, Name: "F26"},
213 {Num: 58, ObjNum: arm64.REG_F27, Name: "F27"},
214 {Num: 59, ObjNum: arm64.REG_F28, Name: "F28"},
215 {Num: 60, ObjNum: arm64.REG_F29, Name: "F29"},
216 {Num: 61, ObjNum: arm64.REG_F30, Name: "F30"},
217 {Num: 62, ObjNum: arm64.REG_F31, Name: "F31"},
218 {Num: 63, ObjNum: arm64.REG_P0, Name: "P0"},
219 {Num: 64, ObjNum: arm64.REG_P1, Name: "P1"},
220 {Num: 65, ObjNum: arm64.REG_P2, Name: "P2"},
221 {Num: 66, ObjNum: arm64.REG_P3, Name: "P3"},
222 {Num: 67, ObjNum: arm64.REG_P4, Name: "P4"},
223 {Num: 68, ObjNum: arm64.REG_P5, Name: "P5"},
224 {Num: 69, ObjNum: arm64.REG_P6, Name: "P6"},
225 {Num: 70, ObjNum: arm64.REG_P7, Name: "P7"},
226 {Num: 71, ObjNum: arm64.REG_P8, Name: "P8"},
227 {Num: 72, ObjNum: arm64.REG_P9, Name: "P9"},
228 {Num: 73, ObjNum: arm64.REG_P10, Name: "P10"},
229 {Num: 74, ObjNum: arm64.REG_P11, Name: "P11"},
230 {Num: 75, ObjNum: arm64.REG_P12, Name: "P12"},
231 {Num: 76, ObjNum: arm64.REG_P13, Name: "P13"},
232 {Num: 77, ObjNum: arm64.REG_P14, Name: "P14"},
233 {Num: 78, ObjNum: arm64.REG_P15, Name: "P15"},
234 {Num: 79, ObjNum: 0, Name: "SB"},
235 }
236 var paramIntRegARM64 = []int8{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
237 var paramFloatRegARM64 = []int8{31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46}
238 var gpRegMaskARM64 = ssaop.RegMask{V1: 335544319, V2: 0}
239 var fpRegMaskARM64 = ssaop.RegMask{V1: 9223372034707292160, V2: 0}
240 var simdRegMaskARM64 = ssaop.RegMask{V1: 9223372034707292160, V2: 0}
241 var specialRegMaskARM64 = ssaop.RegMask{V1: 9223372036854775808, V2: 32767}
242 var framepointerRegARM64 = int8(-1)
243 var linkRegARM64 = int8(28)
244 var registersLOONG64 = [...]ssabase.Register{
245 {Num: 0, ObjNum: loong64.REGZERO, Name: "ZERO"},
246 {Num: 1, ObjNum: loong64.REG_R1, Name: "R1"},
247 {Num: 2, ObjNum: loong64.REGSP, Name: "SP"},
248 {Num: 3, ObjNum: loong64.REG_R4, Name: "R4"},
249 {Num: 4, ObjNum: loong64.REG_R5, Name: "R5"},
250 {Num: 5, ObjNum: loong64.REG_R6, Name: "R6"},
251 {Num: 6, ObjNum: loong64.REG_R7, Name: "R7"},
252 {Num: 7, ObjNum: loong64.REG_R8, Name: "R8"},
253 {Num: 8, ObjNum: loong64.REG_R9, Name: "R9"},
254 {Num: 9, ObjNum: loong64.REG_R10, Name: "R10"},
255 {Num: 10, ObjNum: loong64.REG_R11, Name: "R11"},
256 {Num: 11, ObjNum: loong64.REG_R12, Name: "R12"},
257 {Num: 12, ObjNum: loong64.REG_R13, Name: "R13"},
258 {Num: 13, ObjNum: loong64.REG_R14, Name: "R14"},
259 {Num: 14, ObjNum: loong64.REG_R15, Name: "R15"},
260 {Num: 15, ObjNum: loong64.REG_R16, Name: "R16"},
261 {Num: 16, ObjNum: loong64.REG_R17, Name: "R17"},
262 {Num: 17, ObjNum: loong64.REG_R18, Name: "R18"},
263 {Num: 18, ObjNum: loong64.REG_R19, Name: "R19"},
264 {Num: 19, ObjNum: loong64.REG_R20, Name: "R20"},
265 {Num: 20, ObjNum: loong64.REG_R21, Name: "R21"},
266 {Num: 21, ObjNum: loong64.REGG, Name: "g"},
267 {Num: 22, ObjNum: loong64.REG_R23, Name: "R23"},
268 {Num: 23, ObjNum: loong64.REG_R24, Name: "R24"},
269 {Num: 24, ObjNum: loong64.REG_R25, Name: "R25"},
270 {Num: 25, ObjNum: loong64.REG_R26, Name: "R26"},
271 {Num: 26, ObjNum: loong64.REG_R27, Name: "R27"},
272 {Num: 27, ObjNum: loong64.REG_R28, Name: "R28"},
273 {Num: 28, ObjNum: loong64.REG_R29, Name: "R29"},
274 {Num: 29, ObjNum: loong64.REG_R31, Name: "R31"},
275 {Num: 30, ObjNum: loong64.REG_F0, Name: "F0"},
276 {Num: 31, ObjNum: loong64.REG_F1, Name: "F1"},
277 {Num: 32, ObjNum: loong64.REG_F2, Name: "F2"},
278 {Num: 33, ObjNum: loong64.REG_F3, Name: "F3"},
279 {Num: 34, ObjNum: loong64.REG_F4, Name: "F4"},
280 {Num: 35, ObjNum: loong64.REG_F5, Name: "F5"},
281 {Num: 36, ObjNum: loong64.REG_F6, Name: "F6"},
282 {Num: 37, ObjNum: loong64.REG_F7, Name: "F7"},
283 {Num: 38, ObjNum: loong64.REG_F8, Name: "F8"},
284 {Num: 39, ObjNum: loong64.REG_F9, Name: "F9"},
285 {Num: 40, ObjNum: loong64.REG_F10, Name: "F10"},
286 {Num: 41, ObjNum: loong64.REG_F11, Name: "F11"},
287 {Num: 42, ObjNum: loong64.REG_F12, Name: "F12"},
288 {Num: 43, ObjNum: loong64.REG_F13, Name: "F13"},
289 {Num: 44, ObjNum: loong64.REG_F14, Name: "F14"},
290 {Num: 45, ObjNum: loong64.REG_F15, Name: "F15"},
291 {Num: 46, ObjNum: loong64.REG_F16, Name: "F16"},
292 {Num: 47, ObjNum: loong64.REG_F17, Name: "F17"},
293 {Num: 48, ObjNum: loong64.REG_F18, Name: "F18"},
294 {Num: 49, ObjNum: loong64.REG_F19, Name: "F19"},
295 {Num: 50, ObjNum: loong64.REG_F20, Name: "F20"},
296 {Num: 51, ObjNum: loong64.REG_F21, Name: "F21"},
297 {Num: 52, ObjNum: loong64.REG_F22, Name: "F22"},
298 {Num: 53, ObjNum: loong64.REG_F23, Name: "F23"},
299 {Num: 54, ObjNum: loong64.REG_F24, Name: "F24"},
300 {Num: 55, ObjNum: loong64.REG_F25, Name: "F25"},
301 {Num: 56, ObjNum: loong64.REG_F26, Name: "F26"},
302 {Num: 57, ObjNum: loong64.REG_F27, Name: "F27"},
303 {Num: 58, ObjNum: loong64.REG_F28, Name: "F28"},
304 {Num: 59, ObjNum: loong64.REG_F29, Name: "F29"},
305 {Num: 60, ObjNum: loong64.REG_F30, Name: "F30"},
306 {Num: 61, ObjNum: loong64.REG_F31, Name: "F31"},
307 {Num: 62, ObjNum: 0, Name: "SB"},
308 }
309 var paramIntRegLOONG64 = []int8{3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}
310 var paramFloatRegLOONG64 = []int8{30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}
311 var gpRegMaskLOONG64 = ssaop.RegMask{V1: 1071644664, V2: 0}
312 var fpRegMaskLOONG64 = ssaop.RegMask{V1: 4611686017353646080, V2: 0}
313 var specialRegMaskLOONG64 = ssaop.RegMask{V1: 0, V2: 0}
314 var framepointerRegLOONG64 = int8(-1)
315 var linkRegLOONG64 = int8(1)
316 var registersMIPS = [...]ssabase.Register{
317 {Num: 0, ObjNum: mips.REG_R0, Name: "R0"},
318 {Num: 1, ObjNum: mips.REG_R1, Name: "R1"},
319 {Num: 2, ObjNum: mips.REG_R2, Name: "R2"},
320 {Num: 3, ObjNum: mips.REG_R3, Name: "R3"},
321 {Num: 4, ObjNum: mips.REG_R4, Name: "R4"},
322 {Num: 5, ObjNum: mips.REG_R5, Name: "R5"},
323 {Num: 6, ObjNum: mips.REG_R6, Name: "R6"},
324 {Num: 7, ObjNum: mips.REG_R7, Name: "R7"},
325 {Num: 8, ObjNum: mips.REG_R8, Name: "R8"},
326 {Num: 9, ObjNum: mips.REG_R9, Name: "R9"},
327 {Num: 10, ObjNum: mips.REG_R10, Name: "R10"},
328 {Num: 11, ObjNum: mips.REG_R11, Name: "R11"},
329 {Num: 12, ObjNum: mips.REG_R12, Name: "R12"},
330 {Num: 13, ObjNum: mips.REG_R13, Name: "R13"},
331 {Num: 14, ObjNum: mips.REG_R14, Name: "R14"},
332 {Num: 15, ObjNum: mips.REG_R15, Name: "R15"},
333 {Num: 16, ObjNum: mips.REG_R16, Name: "R16"},
334 {Num: 17, ObjNum: mips.REG_R17, Name: "R17"},
335 {Num: 18, ObjNum: mips.REG_R18, Name: "R18"},
336 {Num: 19, ObjNum: mips.REG_R19, Name: "R19"},
337 {Num: 20, ObjNum: mips.REG_R20, Name: "R20"},
338 {Num: 21, ObjNum: mips.REG_R21, Name: "R21"},
339 {Num: 22, ObjNum: mips.REG_R22, Name: "R22"},
340 {Num: 23, ObjNum: mips.REG_R24, Name: "R24"},
341 {Num: 24, ObjNum: mips.REG_R25, Name: "R25"},
342 {Num: 25, ObjNum: mips.REG_R28, Name: "R28"},
343 {Num: 26, ObjNum: mips.REGSP, Name: "SP"},
344 {Num: 27, ObjNum: mips.REGG, Name: "g"},
345 {Num: 28, ObjNum: mips.REG_R31, Name: "R31"},
346 {Num: 29, ObjNum: mips.REG_F0, Name: "F0"},
347 {Num: 30, ObjNum: mips.REG_F2, Name: "F2"},
348 {Num: 31, ObjNum: mips.REG_F4, Name: "F4"},
349 {Num: 32, ObjNum: mips.REG_F6, Name: "F6"},
350 {Num: 33, ObjNum: mips.REG_F8, Name: "F8"},
351 {Num: 34, ObjNum: mips.REG_F10, Name: "F10"},
352 {Num: 35, ObjNum: mips.REG_F12, Name: "F12"},
353 {Num: 36, ObjNum: mips.REG_F14, Name: "F14"},
354 {Num: 37, ObjNum: mips.REG_F16, Name: "F16"},
355 {Num: 38, ObjNum: mips.REG_F18, Name: "F18"},
356 {Num: 39, ObjNum: mips.REG_F20, Name: "F20"},
357 {Num: 40, ObjNum: mips.REG_F22, Name: "F22"},
358 {Num: 41, ObjNum: mips.REG_F24, Name: "F24"},
359 {Num: 42, ObjNum: mips.REG_F26, Name: "F26"},
360 {Num: 43, ObjNum: mips.REG_F28, Name: "F28"},
361 {Num: 44, ObjNum: mips.REG_F30, Name: "F30"},
362 {Num: 45, ObjNum: 0, Name: "SB"},
363 }
364 var paramIntRegMIPS = []int8(nil)
365 var paramFloatRegMIPS = []int8(nil)
366 var gpRegMaskMIPS = ssaop.RegMask{V1: 335544318, V2: 0}
367 var fpRegMaskMIPS = ssaop.RegMask{V1: 35183835217920, V2: 0}
368 var specialRegMaskMIPS = ssaop.RegMask{V1: 0, V2: 0}
369 var framepointerRegMIPS = int8(-1)
370 var linkRegMIPS = int8(28)
371 var registersMIPS64 = [...]ssabase.Register{
372 {Num: 0, ObjNum: mips.REGZERO, Name: "ZERO"},
373 {Num: 1, ObjNum: mips.REG_R1, Name: "R1"},
374 {Num: 2, ObjNum: mips.REG_R2, Name: "R2"},
375 {Num: 3, ObjNum: mips.REG_R3, Name: "R3"},
376 {Num: 4, ObjNum: mips.REG_R4, Name: "R4"},
377 {Num: 5, ObjNum: mips.REG_R5, Name: "R5"},
378 {Num: 6, ObjNum: mips.REG_R6, Name: "R6"},
379 {Num: 7, ObjNum: mips.REG_R7, Name: "R7"},
380 {Num: 8, ObjNum: mips.REG_R8, Name: "R8"},
381 {Num: 9, ObjNum: mips.REG_R9, Name: "R9"},
382 {Num: 10, ObjNum: mips.REG_R10, Name: "R10"},
383 {Num: 11, ObjNum: mips.REG_R11, Name: "R11"},
384 {Num: 12, ObjNum: mips.REG_R12, Name: "R12"},
385 {Num: 13, ObjNum: mips.REG_R13, Name: "R13"},
386 {Num: 14, ObjNum: mips.REG_R14, Name: "R14"},
387 {Num: 15, ObjNum: mips.REG_R15, Name: "R15"},
388 {Num: 16, ObjNum: mips.REG_R16, Name: "R16"},
389 {Num: 17, ObjNum: mips.REG_R17, Name: "R17"},
390 {Num: 18, ObjNum: mips.REG_R18, Name: "R18"},
391 {Num: 19, ObjNum: mips.REG_R19, Name: "R19"},
392 {Num: 20, ObjNum: mips.REG_R20, Name: "R20"},
393 {Num: 21, ObjNum: mips.REG_R21, Name: "R21"},
394 {Num: 22, ObjNum: mips.REG_R22, Name: "R22"},
395 {Num: 23, ObjNum: mips.REG_R24, Name: "R24"},
396 {Num: 24, ObjNum: mips.REG_R25, Name: "R25"},
397 {Num: 25, ObjNum: mips.REGSP, Name: "SP"},
398 {Num: 26, ObjNum: mips.REGG, Name: "g"},
399 {Num: 27, ObjNum: mips.REG_R31, Name: "R31"},
400 {Num: 28, ObjNum: mips.REG_F0, Name: "F0"},
401 {Num: 29, ObjNum: mips.REG_F1, Name: "F1"},
402 {Num: 30, ObjNum: mips.REG_F2, Name: "F2"},
403 {Num: 31, ObjNum: mips.REG_F3, Name: "F3"},
404 {Num: 32, ObjNum: mips.REG_F4, Name: "F4"},
405 {Num: 33, ObjNum: mips.REG_F5, Name: "F5"},
406 {Num: 34, ObjNum: mips.REG_F6, Name: "F6"},
407 {Num: 35, ObjNum: mips.REG_F7, Name: "F7"},
408 {Num: 36, ObjNum: mips.REG_F8, Name: "F8"},
409 {Num: 37, ObjNum: mips.REG_F9, Name: "F9"},
410 {Num: 38, ObjNum: mips.REG_F10, Name: "F10"},
411 {Num: 39, ObjNum: mips.REG_F11, Name: "F11"},
412 {Num: 40, ObjNum: mips.REG_F12, Name: "F12"},
413 {Num: 41, ObjNum: mips.REG_F13, Name: "F13"},
414 {Num: 42, ObjNum: mips.REG_F14, Name: "F14"},
415 {Num: 43, ObjNum: mips.REG_F15, Name: "F15"},
416 {Num: 44, ObjNum: mips.REG_F16, Name: "F16"},
417 {Num: 45, ObjNum: mips.REG_F17, Name: "F17"},
418 {Num: 46, ObjNum: mips.REG_F18, Name: "F18"},
419 {Num: 47, ObjNum: mips.REG_F19, Name: "F19"},
420 {Num: 48, ObjNum: mips.REG_F20, Name: "F20"},
421 {Num: 49, ObjNum: mips.REG_F21, Name: "F21"},
422 {Num: 50, ObjNum: mips.REG_F22, Name: "F22"},
423 {Num: 51, ObjNum: mips.REG_F23, Name: "F23"},
424 {Num: 52, ObjNum: mips.REG_F24, Name: "F24"},
425 {Num: 53, ObjNum: mips.REG_F25, Name: "F25"},
426 {Num: 54, ObjNum: mips.REG_F26, Name: "F26"},
427 {Num: 55, ObjNum: mips.REG_F27, Name: "F27"},
428 {Num: 56, ObjNum: mips.REG_F28, Name: "F28"},
429 {Num: 57, ObjNum: mips.REG_F29, Name: "F29"},
430 {Num: 58, ObjNum: mips.REG_F30, Name: "F30"},
431 {Num: 59, ObjNum: mips.REG_F31, Name: "F31"},
432 {Num: 60, ObjNum: 0, Name: "SB"},
433 }
434 var paramIntRegMIPS64 = []int8(nil)
435 var paramFloatRegMIPS64 = []int8(nil)
436 var gpRegMaskMIPS64 = ssaop.RegMask{V1: 167772158, V2: 0}
437 var fpRegMaskMIPS64 = ssaop.RegMask{V1: 1152921504338411520, V2: 0}
438 var specialRegMaskMIPS64 = ssaop.RegMask{V1: 0, V2: 0}
439 var framepointerRegMIPS64 = int8(-1)
440 var linkRegMIPS64 = int8(27)
441 var registersPPC64 = [...]ssabase.Register{
442 {Num: 0, ObjNum: ppc64.REG_R0, Name: "R0"},
443 {Num: 1, ObjNum: ppc64.REGSP, Name: "SP"},
444 {Num: 2, ObjNum: 0, Name: "SB"},
445 {Num: 3, ObjNum: ppc64.REG_R3, Name: "R3"},
446 {Num: 4, ObjNum: ppc64.REG_R4, Name: "R4"},
447 {Num: 5, ObjNum: ppc64.REG_R5, Name: "R5"},
448 {Num: 6, ObjNum: ppc64.REG_R6, Name: "R6"},
449 {Num: 7, ObjNum: ppc64.REG_R7, Name: "R7"},
450 {Num: 8, ObjNum: ppc64.REG_R8, Name: "R8"},
451 {Num: 9, ObjNum: ppc64.REG_R9, Name: "R9"},
452 {Num: 10, ObjNum: ppc64.REG_R10, Name: "R10"},
453 {Num: 11, ObjNum: ppc64.REG_R11, Name: "R11"},
454 {Num: 12, ObjNum: ppc64.REG_R12, Name: "R12"},
455 {Num: 13, ObjNum: ppc64.REG_R13, Name: "R13"},
456 {Num: 14, ObjNum: ppc64.REG_R14, Name: "R14"},
457 {Num: 15, ObjNum: ppc64.REG_R15, Name: "R15"},
458 {Num: 16, ObjNum: ppc64.REG_R16, Name: "R16"},
459 {Num: 17, ObjNum: ppc64.REG_R17, Name: "R17"},
460 {Num: 18, ObjNum: ppc64.REG_R18, Name: "R18"},
461 {Num: 19, ObjNum: ppc64.REG_R19, Name: "R19"},
462 {Num: 20, ObjNum: ppc64.REG_R20, Name: "R20"},
463 {Num: 21, ObjNum: ppc64.REG_R21, Name: "R21"},
464 {Num: 22, ObjNum: ppc64.REG_R22, Name: "R22"},
465 {Num: 23, ObjNum: ppc64.REG_R23, Name: "R23"},
466 {Num: 24, ObjNum: ppc64.REG_R24, Name: "R24"},
467 {Num: 25, ObjNum: ppc64.REG_R25, Name: "R25"},
468 {Num: 26, ObjNum: ppc64.REG_R26, Name: "R26"},
469 {Num: 27, ObjNum: ppc64.REG_R27, Name: "R27"},
470 {Num: 28, ObjNum: ppc64.REG_R28, Name: "R28"},
471 {Num: 29, ObjNum: ppc64.REG_R29, Name: "R29"},
472 {Num: 30, ObjNum: ppc64.REGG, Name: "g"},
473 {Num: 31, ObjNum: ppc64.REG_R31, Name: "R31"},
474 {Num: 32, ObjNum: ppc64.REG_F0, Name: "F0"},
475 {Num: 33, ObjNum: ppc64.REG_F1, Name: "F1"},
476 {Num: 34, ObjNum: ppc64.REG_F2, Name: "F2"},
477 {Num: 35, ObjNum: ppc64.REG_F3, Name: "F3"},
478 {Num: 36, ObjNum: ppc64.REG_F4, Name: "F4"},
479 {Num: 37, ObjNum: ppc64.REG_F5, Name: "F5"},
480 {Num: 38, ObjNum: ppc64.REG_F6, Name: "F6"},
481 {Num: 39, ObjNum: ppc64.REG_F7, Name: "F7"},
482 {Num: 40, ObjNum: ppc64.REG_F8, Name: "F8"},
483 {Num: 41, ObjNum: ppc64.REG_F9, Name: "F9"},
484 {Num: 42, ObjNum: ppc64.REG_F10, Name: "F10"},
485 {Num: 43, ObjNum: ppc64.REG_F11, Name: "F11"},
486 {Num: 44, ObjNum: ppc64.REG_F12, Name: "F12"},
487 {Num: 45, ObjNum: ppc64.REG_F13, Name: "F13"},
488 {Num: 46, ObjNum: ppc64.REG_F14, Name: "F14"},
489 {Num: 47, ObjNum: ppc64.REG_F15, Name: "F15"},
490 {Num: 48, ObjNum: ppc64.REG_F16, Name: "F16"},
491 {Num: 49, ObjNum: ppc64.REG_F17, Name: "F17"},
492 {Num: 50, ObjNum: ppc64.REG_F18, Name: "F18"},
493 {Num: 51, ObjNum: ppc64.REG_F19, Name: "F19"},
494 {Num: 52, ObjNum: ppc64.REG_F20, Name: "F20"},
495 {Num: 53, ObjNum: ppc64.REG_F21, Name: "F21"},
496 {Num: 54, ObjNum: ppc64.REG_F22, Name: "F22"},
497 {Num: 55, ObjNum: ppc64.REG_F23, Name: "F23"},
498 {Num: 56, ObjNum: ppc64.REG_F24, Name: "F24"},
499 {Num: 57, ObjNum: ppc64.REG_F25, Name: "F25"},
500 {Num: 58, ObjNum: ppc64.REG_F26, Name: "F26"},
501 {Num: 59, ObjNum: ppc64.REG_F27, Name: "F27"},
502 {Num: 60, ObjNum: ppc64.REG_F28, Name: "F28"},
503 {Num: 61, ObjNum: ppc64.REG_F29, Name: "F29"},
504 {Num: 62, ObjNum: ppc64.REG_F30, Name: "F30"},
505 {Num: 63, ObjNum: ppc64.REG_XER, Name: "XER"},
506 }
507 var paramIntRegPPC64 = []int8{3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17}
508 var paramFloatRegPPC64 = []int8{33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44}
509 var gpRegMaskPPC64 = ssaop.RegMask{V1: 1073733624, V2: 0}
510 var fpRegMaskPPC64 = ssaop.RegMask{V1: 9223372032559808512, V2: 0}
511 var specialRegMaskPPC64 = ssaop.RegMask{V1: 9223372036854775808, V2: 0}
512 var framepointerRegPPC64 = int8(-1)
513 var linkRegPPC64 = int8(-1)
514 var registersRISCV64 = [...]ssabase.Register{
515 {Num: 0, ObjNum: riscv.REG_X0, Name: "X0"},
516 {Num: 1, ObjNum: riscv.REGSP, Name: "SP"},
517 {Num: 2, ObjNum: riscv.REG_X3, Name: "X3"},
518 {Num: 3, ObjNum: riscv.REG_X4, Name: "X4"},
519 {Num: 4, ObjNum: riscv.REG_X5, Name: "X5"},
520 {Num: 5, ObjNum: riscv.REG_X6, Name: "X6"},
521 {Num: 6, ObjNum: riscv.REG_X7, Name: "X7"},
522 {Num: 7, ObjNum: riscv.REG_X8, Name: "X8"},
523 {Num: 8, ObjNum: riscv.REG_X9, Name: "X9"},
524 {Num: 9, ObjNum: riscv.REG_X10, Name: "X10"},
525 {Num: 10, ObjNum: riscv.REG_X11, Name: "X11"},
526 {Num: 11, ObjNum: riscv.REG_X12, Name: "X12"},
527 {Num: 12, ObjNum: riscv.REG_X13, Name: "X13"},
528 {Num: 13, ObjNum: riscv.REG_X14, Name: "X14"},
529 {Num: 14, ObjNum: riscv.REG_X15, Name: "X15"},
530 {Num: 15, ObjNum: riscv.REG_X16, Name: "X16"},
531 {Num: 16, ObjNum: riscv.REG_X17, Name: "X17"},
532 {Num: 17, ObjNum: riscv.REG_X18, Name: "X18"},
533 {Num: 18, ObjNum: riscv.REG_X19, Name: "X19"},
534 {Num: 19, ObjNum: riscv.REG_X20, Name: "X20"},
535 {Num: 20, ObjNum: riscv.REG_X21, Name: "X21"},
536 {Num: 21, ObjNum: riscv.REG_X22, Name: "X22"},
537 {Num: 22, ObjNum: riscv.REG_X23, Name: "X23"},
538 {Num: 23, ObjNum: riscv.REG_X24, Name: "X24"},
539 {Num: 24, ObjNum: riscv.REG_X25, Name: "X25"},
540 {Num: 25, ObjNum: riscv.REG_X26, Name: "X26"},
541 {Num: 26, ObjNum: riscv.REGG, Name: "g"},
542 {Num: 27, ObjNum: riscv.REG_X28, Name: "X28"},
543 {Num: 28, ObjNum: riscv.REG_X29, Name: "X29"},
544 {Num: 29, ObjNum: riscv.REG_X30, Name: "X30"},
545 {Num: 30, ObjNum: riscv.REG_X31, Name: "X31"},
546 {Num: 31, ObjNum: riscv.REG_F0, Name: "F0"},
547 {Num: 32, ObjNum: riscv.REG_F1, Name: "F1"},
548 {Num: 33, ObjNum: riscv.REG_F2, Name: "F2"},
549 {Num: 34, ObjNum: riscv.REG_F3, Name: "F3"},
550 {Num: 35, ObjNum: riscv.REG_F4, Name: "F4"},
551 {Num: 36, ObjNum: riscv.REG_F5, Name: "F5"},
552 {Num: 37, ObjNum: riscv.REG_F6, Name: "F6"},
553 {Num: 38, ObjNum: riscv.REG_F7, Name: "F7"},
554 {Num: 39, ObjNum: riscv.REG_F8, Name: "F8"},
555 {Num: 40, ObjNum: riscv.REG_F9, Name: "F9"},
556 {Num: 41, ObjNum: riscv.REG_F10, Name: "F10"},
557 {Num: 42, ObjNum: riscv.REG_F11, Name: "F11"},
558 {Num: 43, ObjNum: riscv.REG_F12, Name: "F12"},
559 {Num: 44, ObjNum: riscv.REG_F13, Name: "F13"},
560 {Num: 45, ObjNum: riscv.REG_F14, Name: "F14"},
561 {Num: 46, ObjNum: riscv.REG_F15, Name: "F15"},
562 {Num: 47, ObjNum: riscv.REG_F16, Name: "F16"},
563 {Num: 48, ObjNum: riscv.REG_F17, Name: "F17"},
564 {Num: 49, ObjNum: riscv.REG_F18, Name: "F18"},
565 {Num: 50, ObjNum: riscv.REG_F19, Name: "F19"},
566 {Num: 51, ObjNum: riscv.REG_F20, Name: "F20"},
567 {Num: 52, ObjNum: riscv.REG_F21, Name: "F21"},
568 {Num: 53, ObjNum: riscv.REG_F22, Name: "F22"},
569 {Num: 54, ObjNum: riscv.REG_F23, Name: "F23"},
570 {Num: 55, ObjNum: riscv.REG_F24, Name: "F24"},
571 {Num: 56, ObjNum: riscv.REG_F25, Name: "F25"},
572 {Num: 57, ObjNum: riscv.REG_F26, Name: "F26"},
573 {Num: 58, ObjNum: riscv.REG_F27, Name: "F27"},
574 {Num: 59, ObjNum: riscv.REG_F28, Name: "F28"},
575 {Num: 60, ObjNum: riscv.REG_F29, Name: "F29"},
576 {Num: 61, ObjNum: riscv.REG_F30, Name: "F30"},
577 {Num: 62, ObjNum: riscv.REG_F31, Name: "F31"},
578 {Num: 63, ObjNum: 0, Name: "SB"},
579 }
580 var paramIntRegRISCV64 = []int8{9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 17, 18, 19, 20, 21, 22}
581 var paramFloatRegRISCV64 = []int8{41, 42, 43, 44, 45, 46, 47, 48, 39, 40, 49, 50, 51, 52, 53, 54}
582 var gpRegMaskRISCV64 = ssaop.RegMask{V1: 1006632944, V2: 0}
583 var fpRegMaskRISCV64 = ssaop.RegMask{V1: 9223372034707292160, V2: 0}
584 var specialRegMaskRISCV64 = ssaop.RegMask{V1: 0, V2: 0}
585 var framepointerRegRISCV64 = int8(-1)
586 var linkRegRISCV64 = int8(0)
587 var registersS390X = [...]ssabase.Register{
588 {Num: 0, ObjNum: s390x.REG_R0, Name: "R0"},
589 {Num: 1, ObjNum: s390x.REG_R1, Name: "R1"},
590 {Num: 2, ObjNum: s390x.REG_R2, Name: "R2"},
591 {Num: 3, ObjNum: s390x.REG_R3, Name: "R3"},
592 {Num: 4, ObjNum: s390x.REG_R4, Name: "R4"},
593 {Num: 5, ObjNum: s390x.REG_R5, Name: "R5"},
594 {Num: 6, ObjNum: s390x.REG_R6, Name: "R6"},
595 {Num: 7, ObjNum: s390x.REG_R7, Name: "R7"},
596 {Num: 8, ObjNum: s390x.REG_R8, Name: "R8"},
597 {Num: 9, ObjNum: s390x.REG_R9, Name: "R9"},
598 {Num: 10, ObjNum: s390x.REG_R10, Name: "R10"},
599 {Num: 11, ObjNum: s390x.REG_R11, Name: "R11"},
600 {Num: 12, ObjNum: s390x.REG_R12, Name: "R12"},
601 {Num: 13, ObjNum: s390x.REGG, Name: "g"},
602 {Num: 14, ObjNum: s390x.REG_R14, Name: "R14"},
603 {Num: 15, ObjNum: s390x.REGSP, Name: "SP"},
604 {Num: 16, ObjNum: s390x.REG_F0, Name: "F0"},
605 {Num: 17, ObjNum: s390x.REG_F1, Name: "F1"},
606 {Num: 18, ObjNum: s390x.REG_F2, Name: "F2"},
607 {Num: 19, ObjNum: s390x.REG_F3, Name: "F3"},
608 {Num: 20, ObjNum: s390x.REG_F4, Name: "F4"},
609 {Num: 21, ObjNum: s390x.REG_F5, Name: "F5"},
610 {Num: 22, ObjNum: s390x.REG_F6, Name: "F6"},
611 {Num: 23, ObjNum: s390x.REG_F7, Name: "F7"},
612 {Num: 24, ObjNum: s390x.REG_F8, Name: "F8"},
613 {Num: 25, ObjNum: s390x.REG_F9, Name: "F9"},
614 {Num: 26, ObjNum: s390x.REG_F10, Name: "F10"},
615 {Num: 27, ObjNum: s390x.REG_F11, Name: "F11"},
616 {Num: 28, ObjNum: s390x.REG_F12, Name: "F12"},
617 {Num: 29, ObjNum: s390x.REG_F13, Name: "F13"},
618 {Num: 30, ObjNum: s390x.REG_F14, Name: "F14"},
619 {Num: 31, ObjNum: s390x.REG_F15, Name: "F15"},
620 {Num: 32, ObjNum: 0, Name: "SB"},
621 }
622 var paramIntRegS390X = []int8{2, 3, 4, 5, 6, 7, 8, 9}
623 var paramFloatRegS390X = []int8{16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}
624 var gpRegMaskS390X = ssaop.RegMask{V1: 23551, V2: 0}
625 var fpRegMaskS390X = ssaop.RegMask{V1: 4294901760, V2: 0}
626 var specialRegMaskS390X = ssaop.RegMask{V1: 0, V2: 0}
627 var framepointerRegS390X = int8(-1)
628 var linkRegS390X = int8(14)
629 var registersWasm = [...]ssabase.Register{
630 {Num: 0, ObjNum: wasm.REG_R0, Name: "R0"},
631 {Num: 1, ObjNum: wasm.REG_R1, Name: "R1"},
632 {Num: 2, ObjNum: wasm.REG_R2, Name: "R2"},
633 {Num: 3, ObjNum: wasm.REG_R3, Name: "R3"},
634 {Num: 4, ObjNum: wasm.REG_R4, Name: "R4"},
635 {Num: 5, ObjNum: wasm.REG_R5, Name: "R5"},
636 {Num: 6, ObjNum: wasm.REG_R6, Name: "R6"},
637 {Num: 7, ObjNum: wasm.REG_R7, Name: "R7"},
638 {Num: 8, ObjNum: wasm.REG_R8, Name: "R8"},
639 {Num: 9, ObjNum: wasm.REG_R9, Name: "R9"},
640 {Num: 10, ObjNum: wasm.REG_R10, Name: "R10"},
641 {Num: 11, ObjNum: wasm.REG_R11, Name: "R11"},
642 {Num: 12, ObjNum: wasm.REG_R12, Name: "R12"},
643 {Num: 13, ObjNum: wasm.REG_R13, Name: "R13"},
644 {Num: 14, ObjNum: wasm.REG_R14, Name: "R14"},
645 {Num: 15, ObjNum: wasm.REG_R15, Name: "R15"},
646 {Num: 16, ObjNum: wasm.REG_F0, Name: "F0"},
647 {Num: 17, ObjNum: wasm.REG_F1, Name: "F1"},
648 {Num: 18, ObjNum: wasm.REG_F2, Name: "F2"},
649 {Num: 19, ObjNum: wasm.REG_F3, Name: "F3"},
650 {Num: 20, ObjNum: wasm.REG_F4, Name: "F4"},
651 {Num: 21, ObjNum: wasm.REG_F5, Name: "F5"},
652 {Num: 22, ObjNum: wasm.REG_F6, Name: "F6"},
653 {Num: 23, ObjNum: wasm.REG_F7, Name: "F7"},
654 {Num: 24, ObjNum: wasm.REG_F8, Name: "F8"},
655 {Num: 25, ObjNum: wasm.REG_F9, Name: "F9"},
656 {Num: 26, ObjNum: wasm.REG_F10, Name: "F10"},
657 {Num: 27, ObjNum: wasm.REG_F11, Name: "F11"},
658 {Num: 28, ObjNum: wasm.REG_F12, Name: "F12"},
659 {Num: 29, ObjNum: wasm.REG_F13, Name: "F13"},
660 {Num: 30, ObjNum: wasm.REG_F14, Name: "F14"},
661 {Num: 31, ObjNum: wasm.REG_F15, Name: "F15"},
662 {Num: 32, ObjNum: wasm.REG_F16, Name: "F16"},
663 {Num: 33, ObjNum: wasm.REG_F17, Name: "F17"},
664 {Num: 34, ObjNum: wasm.REG_F18, Name: "F18"},
665 {Num: 35, ObjNum: wasm.REG_F19, Name: "F19"},
666 {Num: 36, ObjNum: wasm.REG_F20, Name: "F20"},
667 {Num: 37, ObjNum: wasm.REG_F21, Name: "F21"},
668 {Num: 38, ObjNum: wasm.REG_F22, Name: "F22"},
669 {Num: 39, ObjNum: wasm.REG_F23, Name: "F23"},
670 {Num: 40, ObjNum: wasm.REG_F24, Name: "F24"},
671 {Num: 41, ObjNum: wasm.REG_F25, Name: "F25"},
672 {Num: 42, ObjNum: wasm.REG_F26, Name: "F26"},
673 {Num: 43, ObjNum: wasm.REG_F27, Name: "F27"},
674 {Num: 44, ObjNum: wasm.REG_F28, Name: "F28"},
675 {Num: 45, ObjNum: wasm.REG_F29, Name: "F29"},
676 {Num: 46, ObjNum: wasm.REG_F30, Name: "F30"},
677 {Num: 47, ObjNum: wasm.REG_F31, Name: "F31"},
678 {Num: 48, ObjNum: wasm.REG_V0, Name: "V0"},
679 {Num: 49, ObjNum: wasm.REG_V1, Name: "V1"},
680 {Num: 50, ObjNum: wasm.REG_V2, Name: "V2"},
681 {Num: 51, ObjNum: wasm.REG_V3, Name: "V3"},
682 {Num: 52, ObjNum: wasm.REG_V4, Name: "V4"},
683 {Num: 53, ObjNum: wasm.REG_V5, Name: "V5"},
684 {Num: 54, ObjNum: wasm.REG_V6, Name: "V6"},
685 {Num: 55, ObjNum: wasm.REG_V7, Name: "V7"},
686 {Num: 56, ObjNum: wasm.REG_V8, Name: "V8"},
687 {Num: 57, ObjNum: wasm.REG_V9, Name: "V9"},
688 {Num: 58, ObjNum: wasm.REG_V10, Name: "V10"},
689 {Num: 59, ObjNum: wasm.REG_V11, Name: "V11"},
690 {Num: 60, ObjNum: wasm.REG_V12, Name: "V12"},
691 {Num: 61, ObjNum: wasm.REG_V13, Name: "V13"},
692 {Num: 62, ObjNum: wasm.REG_V14, Name: "V14"},
693 {Num: 63, ObjNum: wasm.REG_V15, Name: "V15"},
694 {Num: 64, ObjNum: wasm.REGSP, Name: "SP"},
695 {Num: 65, ObjNum: wasm.REGG, Name: "g"},
696 {Num: 66, ObjNum: 0, Name: "SB"},
697 }
698 var paramIntRegWasm = []int8(nil)
699 var paramFloatRegWasm = []int8(nil)
700 var gpRegMaskWasm = ssaop.RegMask{V1: 65535, V2: 0}
701 var fpRegMaskWasm = ssaop.RegMask{V1: 281474976645120, V2: 0}
702 var fp32RegMaskWasm = ssaop.RegMask{V1: 4294901760, V2: 0}
703 var fp64RegMaskWasm = ssaop.RegMask{V1: 281470681743360, V2: 0}
704 var simdRegMaskWasm = ssaop.RegMask{V1: 18446462598732840960, V2: 0}
705 var specialRegMaskWasm = ssaop.RegMask{V1: 0, V2: 0}
706 var framepointerRegWasm = int8(-1)
707 var linkRegWasm = int8(-1)
708
View as plain text