mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
6695810: null oop passed to encode_heap_oop_not_null
Fix several problems in C2 related to Escape Analysis and Compressed Oops. Reviewed-by: never, jrose
This commit is contained in:
parent
dbf60cec88
commit
757229db71
19 changed files with 1085 additions and 248 deletions
|
@ -1282,12 +1282,6 @@ PhaseMacroExpand::initialize_object(AllocateNode* alloc,
|
|||
}
|
||||
rawmem = make_store(control, rawmem, object, oopDesc::mark_offset_in_bytes(), mark_node, T_ADDRESS);
|
||||
|
||||
if (UseCompressedOops) {
|
||||
Node *zeronode = makecon(TypeInt::ZERO);
|
||||
// store uncompressed 0 into klass ptr to zero out gap. The gap is
|
||||
// used for primitive fields and has to be zeroed.
|
||||
rawmem = make_store(control, rawmem, object, oopDesc::klass_gap_offset_in_bytes(), zeronode, T_INT);
|
||||
}
|
||||
rawmem = make_store(control, rawmem, object, oopDesc::klass_offset_in_bytes(), klass_node, T_OBJECT);
|
||||
int header_size = alloc->minimum_header_size(); // conservatively small
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue