260 assert(t != unknown_type, "not set"); |
260 assert(t != unknown_type, "not set"); |
261 return t == object_type; |
261 return t == object_type; |
262 } |
262 } |
263 } |
263 } |
264 |
264 |
265 |
265 #ifdef MIPS |
|
266 bool LIR_OprDesc::has_common_register(LIR_Opr opr) const { |
|
267 #ifdef _LP64 |
|
268 return is_same_register(opr); |
|
269 #else |
|
270 if (!(is_register() && opr->is_register())) return false; |
|
271 if (!(kind_field() == opr->kind_field())) return false; |
|
272 |
|
273 if (is_single_cpu()) { |
|
274 if (opr->is_single_cpu()) { |
|
275 return as_register() == opr->as_register(); |
|
276 } else { |
|
277 Register dst = as_register(); |
|
278 Register lo = opr->as_register_lo(); |
|
279 Register hi = opr->as_register_hi(); |
|
280 if (dst == lo || dst == hi) return true; |
|
281 } |
|
282 |
|
283 } else { |
|
284 Register dst_lo = as_register_lo(); |
|
285 Register dst_hi = as_register_hi(); |
|
286 |
|
287 if (opr->is_single_cpu()) { |
|
288 Register src = opr->as_register(); |
|
289 if (dst_lo == src || dst_hi == src) return true; |
|
290 } else { |
|
291 Register src_lo = opr->as_register_lo(); |
|
292 Register src_hi = opr->as_register_hi(); |
|
293 if (dst_lo == src_lo || |
|
294 dst_lo == src_hi || |
|
295 dst_hi == src_lo || |
|
296 dst_hi == src_hi) return true; |
|
297 } |
|
298 } |
|
299 return false; |
|
300 #endif |
|
301 } |
|
302 #endif |
266 |
303 |
267 void LIR_Op2::verify() const { |
304 void LIR_Op2::verify() const { |
268 #ifdef ASSERT |
305 #ifdef ASSERT |
269 switch (code()) { |
306 switch (code()) { |
270 case lir_cmove: |
307 case lir_cmove: |