457 |
457 |
458 //------------------------------builtin_throw---------------------------------- |
458 //------------------------------builtin_throw---------------------------------- |
459 void GraphKit::builtin_throw(Deoptimization::DeoptReason reason, Node* arg) { |
459 void GraphKit::builtin_throw(Deoptimization::DeoptReason reason, Node* arg) { |
460 bool must_throw = true; |
460 bool must_throw = true; |
461 |
461 |
462 if (JvmtiExport::can_post_exceptions()) { |
462 if (env()->jvmti_can_post_exceptions()) { |
463 // Do not try anything fancy if we're notifying the VM on every throw. |
463 // Do not try anything fancy if we're notifying the VM on every throw. |
464 // Cf. case Bytecodes::_athrow in parse2.cpp. |
464 // Cf. case Bytecodes::_athrow in parse2.cpp. |
465 uncommon_trap(reason, Deoptimization::Action_none, |
465 uncommon_trap(reason, Deoptimization::Action_none, |
466 (ciKlass*)NULL, (char*)NULL, must_throw); |
466 (ciKlass*)NULL, (char*)NULL, must_throw); |
467 return; |
467 return; |
767 can_prune_locals = true; |
767 can_prune_locals = true; |
768 stack_slots_not_pruned = inputs; |
768 stack_slots_not_pruned = inputs; |
769 } |
769 } |
770 } |
770 } |
771 |
771 |
772 if (JvmtiExport::can_examine_or_deopt_anywhere()) { |
772 if (env()->jvmti_can_examine_or_deopt_anywhere()) { |
773 // At any safepoint, this method can get breakpointed, which would |
773 // At any safepoint, this method can get breakpointed, which would |
774 // then require an immediate deoptimization. |
774 // then require an immediate deoptimization. |
775 full_info = true; |
775 full_info = true; |
776 can_prune_locals = false; // do not prune locals |
776 can_prune_locals = false; // do not prune locals |
777 stack_slots_not_pruned = 0; |
777 stack_slots_not_pruned = 0; |