src/share/vm/opto/memnode.cpp

changeset 2346
4da76e32c0be
parent 2314
f95d63e2154a
child 2599
5a41a201d08c
equal deleted inserted replaced
2345:dbbf44db0107 2346:4da76e32c0be
3597 zeroes_done = align_size_down(zeroes_done, BytesPerInt); 3597 zeroes_done = align_size_down(zeroes_done, BytesPerInt);
3598 // if it is the last unused 4 bytes of an instance, forget about it 3598 // if it is the last unused 4 bytes of an instance, forget about it
3599 intptr_t size_limit = phase->find_intptr_t_con(size_in_bytes, max_jint); 3599 intptr_t size_limit = phase->find_intptr_t_con(size_in_bytes, max_jint);
3600 if (zeroes_done + BytesPerLong >= size_limit) { 3600 if (zeroes_done + BytesPerLong >= size_limit) {
3601 assert(allocation() != NULL, ""); 3601 assert(allocation() != NULL, "");
3602 Node* klass_node = allocation()->in(AllocateNode::KlassNode); 3602 if (allocation()->Opcode() == Op_Allocate) {
3603 ciKlass* k = phase->type(klass_node)->is_klassptr()->klass(); 3603 Node* klass_node = allocation()->in(AllocateNode::KlassNode);
3604 if (zeroes_done == k->layout_helper()) 3604 ciKlass* k = phase->type(klass_node)->is_klassptr()->klass();
3605 zeroes_done = size_limit; 3605 if (zeroes_done == k->layout_helper())
3606 zeroes_done = size_limit;
3607 }
3606 } 3608 }
3607 if (zeroes_done < size_limit) { 3609 if (zeroes_done < size_limit) {
3608 rawmem = ClearArrayNode::clear_memory(rawctl, rawmem, rawptr, 3610 rawmem = ClearArrayNode::clear_memory(rawctl, rawmem, rawptr,
3609 zeroes_done, size_in_bytes, phase); 3611 zeroes_done, size_in_bytes, phase);
3610 } 3612 }

mercurial