--- old/src/share/vm/opto/type.cpp 2016-12-13 16:55:42.710288592 +0100 +++ new/src/share/vm/opto/type.cpp 2016-12-13 16:55:42.646288715 +0100 @@ -1835,7 +1835,7 @@ if (type->basic_type() == T_VALUETYPE) { assert(type->is_valuetype(), "inconsistent type"); ciValueKlass* vk = (ciValueKlass*)type; - vt_extra += vk->extra_value_args(); + vt_extra += vk->value_arg_slots()-1; } } assert(((int)arg_cnt) + vt_extra >= 0, "negative number of actual arguments?"); @@ -1847,7 +1847,7 @@ arg_cnt++; if (vt_fields_as_args && recv->is_valuetype()) { ciValueKlass* vk = (ciValueKlass*)recv; - vt_extra += vk->extra_value_args(); + vt_extra += vk->value_arg_slots()-1; } field_array = fields(arg_cnt + vt_extra); // Use get_const_type here because it respects UseUniqueSubclasses: