comparison src/share/vm/opto/macro.cpp @ 1609:4311f23817fd

6959430: Make sure raw loads have control edge Summary: check that raw loads have control edge Reviewed-by: never, twisti
author kvn
date Tue, 15 Jun 2010 18:07:27 -0700
parents c18cbe5936b8
children 6027dddc26c6
comparison
equal deleted inserted replaced
1608:2389669474a6 1609:4311f23817fd
1429 InitializeNode* init = alloc->initialization(); 1429 InitializeNode* init = alloc->initialization();
1430 // Store the klass & mark bits 1430 // Store the klass & mark bits
1431 Node* mark_node = NULL; 1431 Node* mark_node = NULL;
1432 // For now only enable fast locking for non-array types 1432 // For now only enable fast locking for non-array types
1433 if (UseBiasedLocking && (length == NULL)) { 1433 if (UseBiasedLocking && (length == NULL)) {
1434 mark_node = make_load(NULL, rawmem, klass_node, Klass::prototype_header_offset_in_bytes() + sizeof(oopDesc), TypeRawPtr::BOTTOM, T_ADDRESS); 1434 mark_node = make_load(control, rawmem, klass_node, Klass::prototype_header_offset_in_bytes() + sizeof(oopDesc), TypeRawPtr::BOTTOM, T_ADDRESS);
1435 } else { 1435 } else {
1436 mark_node = makecon(TypeRawPtr::make((address)markOopDesc::prototype())); 1436 mark_node = makecon(TypeRawPtr::make((address)markOopDesc::prototype()));
1437 } 1437 }
1438 rawmem = make_store(control, rawmem, object, oopDesc::mark_offset_in_bytes(), mark_node, T_ADDRESS); 1438 rawmem = make_store(control, rawmem, object, oopDesc::mark_offset_in_bytes(), mark_node, T_ADDRESS);
1439 1439