src/share/vm/c1/c1_LIR.cpp

changeset 9143
239e32ede77d
parent 9142
87ee44a01d68
child 9157
2966b0be4027
equal deleted inserted replaced
9142:87ee44a01d68 9143:239e32ede77d
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:

mercurial