--- old/src/hotspot/share/opto/callGenerator.cpp 2018-10-10 16:48:19.854883956 +0200 +++ new/src/hotspot/share/opto/callGenerator.cpp 2018-10-10 16:48:19.494703961 +0200 @@ -927,7 +927,11 @@ } if (sig_type->is_valuetypeptr() && !arg->is_ValueType()) { kit.inc_sp(nargs); // restore arguments - arg = ValueTypeNode::make_from_oop(&kit, arg, t->as_value_klass(), /* buffer_check */ false, /* null2default */ false); + if (t->as_value_klass()->is_scalarizable()) { + arg = ValueTypeNode::make_from_oop(&kit, arg, t->as_value_klass(), /* buffer_check */ false, /* null2default */ false); + } else { + arg = kit.filter_null(arg); + } kit.dec_sp(nargs); kit.set_argument(arg_nb, arg); }