--- old/src/share/vm/opto/graphKit.cpp 2017-06-16 17:48:40.734828682 +0200 +++ new/src/share/vm/opto/graphKit.cpp 2017-06-16 17:48:35.797843302 +0200 @@ -2126,7 +2126,7 @@ int skip = Bytecodes::has_receiver(bc) ? 1 : 0; for (int j = skip, i = 0; j < nargs && i < TypeProfileArgsLimit; j++) { const Type *targ = tf->domain_sig()->field_at(j + TypeFunc::Parms); - if (targ->basic_type() == T_OBJECT || targ->basic_type() == T_ARRAY) { + if (targ->isa_oopptr() && !targ->isa_valuetypeptr()) { bool maybe_null = true; ciKlass* better_type = NULL; if (method()->argument_profiled_type(bci(), i, better_type, maybe_null)) {