104 #endif
105 #ifdef TARGET_ARCH_arm
106 # include "register_arm.hpp"
107 #endif
108 #ifdef TARGET_ARCH_ppc
109 # include "register_ppc.hpp"
110 #endif
111 #ifdef TARGET_ARCH_aarch64
112 # include "register_aarch64.hpp"
113 #endif
114
115
116 // Debugging support
117
118 inline void assert_different_registers(
119 AbstractRegister a,
120 AbstractRegister b
121 ) {
122 assert(
123 a != b,
124 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT "",
125 p2i(a), p2i(b))
126 );
127 }
128
129
130 inline void assert_different_registers(
131 AbstractRegister a,
132 AbstractRegister b,
133 AbstractRegister c
134 ) {
135 assert(
136 a != b && a != c
137 && b != c,
138 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
139 ", c=" INTPTR_FORMAT "",
140 p2i(a), p2i(b), p2i(c))
141 );
142 }
143
144
145 inline void assert_different_registers(
146 AbstractRegister a,
147 AbstractRegister b,
148 AbstractRegister c,
149 AbstractRegister d
150 ) {
151 assert(
152 a != b && a != c && a != d
153 && b != c && b != d
154 && c != d,
155 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
156 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT "",
157 p2i(a), p2i(b), p2i(c), p2i(d))
158 );
159 }
160
161
162 inline void assert_different_registers(
163 AbstractRegister a,
164 AbstractRegister b,
165 AbstractRegister c,
166 AbstractRegister d,
167 AbstractRegister e
168 ) {
169 assert(
170 a != b && a != c && a != d && a != e
171 && b != c && b != d && b != e
172 && c != d && c != e
173 && d != e,
174 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
175 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT "",
176 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e))
177 );
178 }
179
180
181 inline void assert_different_registers(
182 AbstractRegister a,
183 AbstractRegister b,
184 AbstractRegister c,
185 AbstractRegister d,
186 AbstractRegister e,
187 AbstractRegister f
188 ) {
189 assert(
190 a != b && a != c && a != d && a != e && a != f
191 && b != c && b != d && b != e && b != f
192 && c != d && c != e && c != f
193 && d != e && d != f
194 && e != f,
195 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
196 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
197 ", f=" INTPTR_FORMAT "",
198 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f))
199 );
200 }
201
202
203 inline void assert_different_registers(
204 AbstractRegister a,
205 AbstractRegister b,
206 AbstractRegister c,
207 AbstractRegister d,
208 AbstractRegister e,
209 AbstractRegister f,
210 AbstractRegister g
211 ) {
212 assert(
213 a != b && a != c && a != d && a != e && a != f && a != g
214 && b != c && b != d && b != e && b != f && b != g
215 && c != d && c != e && c != f && c != g
216 && d != e && d != f && d != g
217 && e != f && e != g
218 && f != g,
219 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
220 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
221 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT "",
222 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g))
223 );
224 }
225
226
227 inline void assert_different_registers(
228 AbstractRegister a,
229 AbstractRegister b,
230 AbstractRegister c,
231 AbstractRegister d,
232 AbstractRegister e,
233 AbstractRegister f,
234 AbstractRegister g,
235 AbstractRegister h
236 ) {
237 assert(
238 a != b && a != c && a != d && a != e && a != f && a != g && a != h
239 && b != c && b != d && b != e && b != f && b != g && b != h
240 && c != d && c != e && c != f && c != g && c != h
241 && d != e && d != f && d != g && d != h
242 && e != f && e != g && e != h
243 && f != g && f != h
244 && g != h,
245 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
246 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
247 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT "",
248 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h))
249 );
250 }
251
252
253 inline void assert_different_registers(
254 AbstractRegister a,
255 AbstractRegister b,
256 AbstractRegister c,
257 AbstractRegister d,
258 AbstractRegister e,
259 AbstractRegister f,
260 AbstractRegister g,
261 AbstractRegister h,
262 AbstractRegister i
263 ) {
264 assert(
265 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i
266 && b != c && b != d && b != e && b != f && b != g && b != h && b != i
267 && c != d && c != e && c != f && c != g && c != h && c != i
268 && d != e && d != f && d != g && d != h && d != i
269 && e != f && e != g && e != h && e != i
270 && f != g && f != h && f != i
271 && g != h && g != i
272 && h != i,
273 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
274 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
275 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
276 ", i=" INTPTR_FORMAT "",
277 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i))
278 );
279 }
280
281 inline void assert_different_registers(
282 AbstractRegister a,
283 AbstractRegister b,
284 AbstractRegister c,
285 AbstractRegister d,
286 AbstractRegister e,
287 AbstractRegister f,
288 AbstractRegister g,
289 AbstractRegister h,
290 AbstractRegister i,
291 AbstractRegister j
292 ) {
293 assert(
294 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j
295 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j
296 && c != d && c != e && c != f && c != g && c != h && c != i && c != j
297 && d != e && d != f && d != g && d != h && d != i && d != j
298 && e != f && e != g && e != h && e != i && e != j
299 && f != g && f != h && f != i && f != j
300 && g != h && g != i && g != j
301 && h != i && h != j
302 && i != j,
303 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
304 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
305 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
306 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT "",
307 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j))
308 );
309 }
310
311 inline void assert_different_registers(
312 AbstractRegister a,
313 AbstractRegister b,
314 AbstractRegister c,
315 AbstractRegister d,
316 AbstractRegister e,
317 AbstractRegister f,
318 AbstractRegister g,
319 AbstractRegister h,
320 AbstractRegister i,
321 AbstractRegister j,
322 AbstractRegister k
323 ) {
324 assert(
325 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k
326 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k
327 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k
328 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k
329 && e != f && e != g && e != h && e != i && e != j && e !=k
330 && f != g && f != h && f != i && f != j && f !=k
331 && g != h && g != i && g != j && g !=k
332 && h != i && h != j && h !=k
333 && i != j && i !=k
334 && j !=k,
335 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
336 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
337 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
338 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT "",
339 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k))
340 );
341 }
342
343 inline void assert_different_registers(
344 AbstractRegister a,
345 AbstractRegister b,
346 AbstractRegister c,
347 AbstractRegister d,
348 AbstractRegister e,
349 AbstractRegister f,
350 AbstractRegister g,
351 AbstractRegister h,
352 AbstractRegister i,
353 AbstractRegister j,
354 AbstractRegister k,
355 AbstractRegister l
356 ) {
357 assert(
358 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k && a !=l
359 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k && b !=l
360 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k && c !=l
361 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k && d !=l
362 && e != f && e != g && e != h && e != i && e != j && e !=k && e !=l
363 && f != g && f != h && f != i && f != j && f !=k && f !=l
364 && g != h && g != i && g != j && g !=k && g !=l
365 && h != i && h != j && h !=k && h !=l
366 && i != j && i !=k && i !=l
367 && j !=k && j !=l
368 && k !=l,
369 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
370 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
371 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
372 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT
373 ", l=" INTPTR_FORMAT "",
374 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k), p2i(l))
375 );
376 }
377
378 #endif // SHARE_VM_ASM_REGISTER_HPP
|
104 #endif
105 #ifdef TARGET_ARCH_arm
106 # include "register_arm.hpp"
107 #endif
108 #ifdef TARGET_ARCH_ppc
109 # include "register_ppc.hpp"
110 #endif
111 #ifdef TARGET_ARCH_aarch64
112 # include "register_aarch64.hpp"
113 #endif
114
115
116 // Debugging support
117
118 inline void assert_different_registers(
119 AbstractRegister a,
120 AbstractRegister b
121 ) {
122 assert(
123 a != b,
124 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT "", p2i(a), p2i(b)
125 );
126 }
127
128
129 inline void assert_different_registers(
130 AbstractRegister a,
131 AbstractRegister b,
132 AbstractRegister c
133 ) {
134 assert(
135 a != b && a != c
136 && b != c,
137 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
138 ", c=" INTPTR_FORMAT "",
139 p2i(a), p2i(b), p2i(c)
140 );
141 }
142
143
144 inline void assert_different_registers(
145 AbstractRegister a,
146 AbstractRegister b,
147 AbstractRegister c,
148 AbstractRegister d
149 ) {
150 assert(
151 a != b && a != c && a != d
152 && b != c && b != d
153 && c != d,
154 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
155 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT "",
156 p2i(a), p2i(b), p2i(c), p2i(d)
157 );
158 }
159
160
161 inline void assert_different_registers(
162 AbstractRegister a,
163 AbstractRegister b,
164 AbstractRegister c,
165 AbstractRegister d,
166 AbstractRegister e
167 ) {
168 assert(
169 a != b && a != c && a != d && a != e
170 && b != c && b != d && b != e
171 && c != d && c != e
172 && d != e,
173 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
174 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT "",
175 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e)
176 );
177 }
178
179
180 inline void assert_different_registers(
181 AbstractRegister a,
182 AbstractRegister b,
183 AbstractRegister c,
184 AbstractRegister d,
185 AbstractRegister e,
186 AbstractRegister f
187 ) {
188 assert(
189 a != b && a != c && a != d && a != e && a != f
190 && b != c && b != d && b != e && b != f
191 && c != d && c != e && c != f
192 && d != e && d != f
193 && e != f,
194 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
195 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
196 ", f=" INTPTR_FORMAT "",
197 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f)
198 );
199 }
200
201
202 inline void assert_different_registers(
203 AbstractRegister a,
204 AbstractRegister b,
205 AbstractRegister c,
206 AbstractRegister d,
207 AbstractRegister e,
208 AbstractRegister f,
209 AbstractRegister g
210 ) {
211 assert(
212 a != b && a != c && a != d && a != e && a != f && a != g
213 && b != c && b != d && b != e && b != f && b != g
214 && c != d && c != e && c != f && c != g
215 && d != e && d != f && d != g
216 && e != f && e != g
217 && f != g,
218 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
219 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
220 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT "",
221 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g)
222 );
223 }
224
225
226 inline void assert_different_registers(
227 AbstractRegister a,
228 AbstractRegister b,
229 AbstractRegister c,
230 AbstractRegister d,
231 AbstractRegister e,
232 AbstractRegister f,
233 AbstractRegister g,
234 AbstractRegister h
235 ) {
236 assert(
237 a != b && a != c && a != d && a != e && a != f && a != g && a != h
238 && b != c && b != d && b != e && b != f && b != g && b != h
239 && c != d && c != e && c != f && c != g && c != h
240 && d != e && d != f && d != g && d != h
241 && e != f && e != g && e != h
242 && f != g && f != h
243 && g != h,
244 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
245 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
246 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT "",
247 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h)
248 );
249 }
250
251
252 inline void assert_different_registers(
253 AbstractRegister a,
254 AbstractRegister b,
255 AbstractRegister c,
256 AbstractRegister d,
257 AbstractRegister e,
258 AbstractRegister f,
259 AbstractRegister g,
260 AbstractRegister h,
261 AbstractRegister i
262 ) {
263 assert(
264 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i
265 && b != c && b != d && b != e && b != f && b != g && b != h && b != i
266 && c != d && c != e && c != f && c != g && c != h && c != i
267 && d != e && d != f && d != g && d != h && d != i
268 && e != f && e != g && e != h && e != i
269 && f != g && f != h && f != i
270 && g != h && g != i
271 && h != i,
272 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
273 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
274 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
275 ", i=" INTPTR_FORMAT "",
276 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i)
277 );
278 }
279
280 inline void assert_different_registers(
281 AbstractRegister a,
282 AbstractRegister b,
283 AbstractRegister c,
284 AbstractRegister d,
285 AbstractRegister e,
286 AbstractRegister f,
287 AbstractRegister g,
288 AbstractRegister h,
289 AbstractRegister i,
290 AbstractRegister j
291 ) {
292 assert(
293 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j
294 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j
295 && c != d && c != e && c != f && c != g && c != h && c != i && c != j
296 && d != e && d != f && d != g && d != h && d != i && d != j
297 && e != f && e != g && e != h && e != i && e != j
298 && f != g && f != h && f != i && f != j
299 && g != h && g != i && g != j
300 && h != i && h != j
301 && i != j,
302 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
303 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
304 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
305 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT "",
306 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j)
307 );
308 }
309
310 inline void assert_different_registers(
311 AbstractRegister a,
312 AbstractRegister b,
313 AbstractRegister c,
314 AbstractRegister d,
315 AbstractRegister e,
316 AbstractRegister f,
317 AbstractRegister g,
318 AbstractRegister h,
319 AbstractRegister i,
320 AbstractRegister j,
321 AbstractRegister k
322 ) {
323 assert(
324 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k
325 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k
326 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k
327 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k
328 && e != f && e != g && e != h && e != i && e != j && e !=k
329 && f != g && f != h && f != i && f != j && f !=k
330 && g != h && g != i && g != j && g !=k
331 && h != i && h != j && h !=k
332 && i != j && i !=k
333 && j !=k,
334 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
335 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
336 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
337 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT "",
338 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k)
339 );
340 }
341
342 inline void assert_different_registers(
343 AbstractRegister a,
344 AbstractRegister b,
345 AbstractRegister c,
346 AbstractRegister d,
347 AbstractRegister e,
348 AbstractRegister f,
349 AbstractRegister g,
350 AbstractRegister h,
351 AbstractRegister i,
352 AbstractRegister j,
353 AbstractRegister k,
354 AbstractRegister l
355 ) {
356 assert(
357 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k && a !=l
358 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k && b !=l
359 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k && c !=l
360 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k && d !=l
361 && e != f && e != g && e != h && e != i && e != j && e !=k && e !=l
362 && f != g && f != h && f != i && f != j && f !=k && f !=l
363 && g != h && g != i && g != j && g !=k && g !=l
364 && h != i && h != j && h !=k && h !=l
365 && i != j && i !=k && i !=l
366 && j !=k && j !=l
367 && k !=l,
368 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
369 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
370 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
371 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT
372 ", l=" INTPTR_FORMAT "",
373 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k), p2i(l)
374 );
375 }
376
377 #endif // SHARE_VM_ASM_REGISTER_HPP
|