--- old/src/share/vm/opto/parse3.cpp 2017-06-26 12:50:31.383902896 +0200 +++ new/src/share/vm/opto/parse3.cpp 2017-06-26 12:50:31.303902900 +0200 @@ -317,7 +317,7 @@ } if (bt == T_VALUETYPE && !field->is_static()) { // Store flattened value type to non-static field - val->as_ValueType()->store(this, obj, obj, field->holder(), offset); + val->as_ValueType()->store_flattened(this, obj, obj, field->holder(), offset); } else { store_oop_to_object(control(), obj, adr, adr_type, val, field_type, bt, mo); } @@ -572,7 +572,7 @@ kill_dead_locals(); ciInstanceKlass* target_vcc_klass = target_klass->as_instance_klass(); - ciInstanceKlass* src_vcc_klass = src_vk->vcc_klass();; + ciInstanceKlass* src_vcc_klass = src_vk->vcc_klass(); // TODO: Extend type check below if (and once) value type class hierarchies become available. // (incl. extension to support dynamic type checks). @@ -592,7 +592,7 @@ // The code below relies on the assumption that the VCC has the // same memory layout as the derived value type. // TODO: Once the layout of the two is not the same, update code below. - vt->as_ValueType()->store_values(this, obj, obj, target_vcc_klass); + vt->as_ValueType()->store(this, obj, obj, target_vcc_klass); // Push the new object onto the stack push(obj);