equal
deleted
inserted
replaced
2274 const TypeFunc* tf = TypeFunc::make(dest_method); |
2274 const TypeFunc* tf = TypeFunc::make(dest_method); |
2275 int nargs = tf->domain()->cnt() - TypeFunc::Parms; |
2275 int nargs = tf->domain()->cnt() - TypeFunc::Parms; |
2276 int skip = Bytecodes::has_receiver(bc) ? 1 : 0; |
2276 int skip = Bytecodes::has_receiver(bc) ? 1 : 0; |
2277 for (int j = skip, i = 0; j < nargs && i < TypeProfileArgsLimit; j++) { |
2277 for (int j = skip, i = 0; j < nargs && i < TypeProfileArgsLimit; j++) { |
2278 const Type *targ = tf->domain()->field_at(j + TypeFunc::Parms); |
2278 const Type *targ = tf->domain()->field_at(j + TypeFunc::Parms); |
2279 if (targ->basic_type() == T_OBJECT || targ->basic_type() == T_ARRAY) { |
2279 if (is_reference_type(targ->basic_type())) { |
2280 ProfilePtrKind ptr_kind = ProfileMaybeNull; |
2280 ProfilePtrKind ptr_kind = ProfileMaybeNull; |
2281 ciKlass* better_type = NULL; |
2281 ciKlass* better_type = NULL; |
2282 if (method()->argument_profiled_type(bci(), i, better_type, ptr_kind)) { |
2282 if (method()->argument_profiled_type(bci(), i, better_type, ptr_kind)) { |
2283 record_profile_for_speculation(argument(j), better_type, ptr_kind); |
2283 record_profile_for_speculation(argument(j), better_type, ptr_kind); |
2284 } |
2284 } |