Mercurial > hg > truffle
comparison src/share/vm/opto/macro.cpp @ 344:6aae2f9d0294
Merge
author | ysr |
---|---|
date | Thu, 12 Jun 2008 13:50:55 -0700 |
parents | 37f87013dfd8 7793bd37a336 |
children | 73278b62f36c |
comparison
equal
deleted
inserted
replaced
342:37f87013dfd8 | 344:6aae2f9d0294 |
---|---|
456 can_eliminate = false; | 456 can_eliminate = false; |
457 } | 457 } |
458 } | 458 } |
459 } else if (use->is_SafePoint()) { | 459 } else if (use->is_SafePoint()) { |
460 SafePointNode* sfpt = use->as_SafePoint(); | 460 SafePointNode* sfpt = use->as_SafePoint(); |
461 if (sfpt->has_non_debug_use(res)) { | 461 if (sfpt->is_Call() && sfpt->as_Call()->has_non_debug_use(res)) { |
462 // Object is passed as argument. | 462 // Object is passed as argument. |
463 DEBUG_ONLY(disq_node = use;) | 463 DEBUG_ONLY(disq_node = use;) |
464 NOT_PRODUCT(fail_eliminate = "Object is passed as argument";) | 464 NOT_PRODUCT(fail_eliminate = "Object is passed as argument";) |
465 can_eliminate = false; | 465 can_eliminate = false; |
466 } | 466 } |
1286 } else { | 1286 } else { |
1287 mark_node = makecon(TypeRawPtr::make((address)markOopDesc::prototype())); | 1287 mark_node = makecon(TypeRawPtr::make((address)markOopDesc::prototype())); |
1288 } | 1288 } |
1289 rawmem = make_store(control, rawmem, object, oopDesc::mark_offset_in_bytes(), mark_node, T_ADDRESS); | 1289 rawmem = make_store(control, rawmem, object, oopDesc::mark_offset_in_bytes(), mark_node, T_ADDRESS); |
1290 | 1290 |
1291 if (UseCompressedOops) { | |
1292 Node *zeronode = makecon(TypeInt::ZERO); | |
1293 // store uncompressed 0 into klass ptr to zero out gap. The gap is | |
1294 // used for primitive fields and has to be zeroed. | |
1295 rawmem = make_store(control, rawmem, object, oopDesc::klass_gap_offset_in_bytes(), zeronode, T_INT); | |
1296 } | |
1297 rawmem = make_store(control, rawmem, object, oopDesc::klass_offset_in_bytes(), klass_node, T_OBJECT); | 1291 rawmem = make_store(control, rawmem, object, oopDesc::klass_offset_in_bytes(), klass_node, T_OBJECT); |
1298 int header_size = alloc->minimum_header_size(); // conservatively small | 1292 int header_size = alloc->minimum_header_size(); // conservatively small |
1299 | 1293 |
1300 // Array length | 1294 // Array length |
1301 if (length != NULL) { // Arrays need length field | 1295 if (length != NULL) { // Arrays need length field |