equal
deleted
inserted
replaced
259 } |
259 } |
260 CallGenerator* miss_cg; |
260 CallGenerator* miss_cg; |
261 Deoptimization::DeoptReason reason = morphism == 2 ? |
261 Deoptimization::DeoptReason reason = morphism == 2 ? |
262 Deoptimization::Reason_bimorphic : Deoptimization::reason_class_check(speculative_receiver_type != NULL); |
262 Deoptimization::Reason_bimorphic : Deoptimization::reason_class_check(speculative_receiver_type != NULL); |
263 if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL)) && |
263 if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL)) && |
264 !too_many_traps(caller, bci, reason) |
264 !too_many_traps(caller, bci, reason) && |
|
265 !too_many_recompiles(caller, bci, reason) |
265 ) { |
266 ) { |
266 // Generate uncommon trap for class check failure path |
267 // Generate uncommon trap for class check failure path |
267 // in case of monomorphic or bimorphic virtual call site. |
268 // in case of monomorphic or bimorphic virtual call site. |
268 miss_cg = CallGenerator::for_uncommon_trap(callee, reason, |
269 miss_cg = CallGenerator::for_uncommon_trap(callee, reason, |
269 Deoptimization::Action_maybe_recompile); |
270 Deoptimization::Action_maybe_recompile); |