807 case Bytecodes::_laload:
808 case Bytecodes::_daload:
809 case Bytecodes::_bastore:
810 case Bytecodes::_castore:
811 case Bytecodes::_iastore:
812 case Bytecodes::_sastore:
813 case Bytecodes::_fastore:
814 case Bytecodes::_aastore:
815 case Bytecodes::_lastore:
816 case Bytecodes::_dastore:
817 case Bytecodes::_irem:
818 case Bytecodes::_idiv:
819 case Bytecodes::_lrem:
820 case Bytecodes::_ldiv:
821 case Bytecodes::_frem:
822 case Bytecodes::_fdiv:
823 case Bytecodes::_drem:
824 case Bytecodes::_ddiv:
825 case Bytecodes::_checkcast:
826 case Bytecodes::_instanceof:
827 case Bytecodes::_athrow:
828 case Bytecodes::_anewarray:
829 case Bytecodes::_newarray:
830 case Bytecodes::_multianewarray:
831 case Bytecodes::_new:
832 case Bytecodes::_monitorenter: // can re-run initial null check, only
833 case Bytecodes::_return:
834 return true;
835 break;
836
837 case Bytecodes::_invokestatic:
838 case Bytecodes::_invokedynamic:
839 case Bytecodes::_invokespecial:
840 case Bytecodes::_invokevirtual:
841 case Bytecodes::_invokeinterface:
842 return false;
843 break;
844
845 default:
846 assert(false, "unexpected bytecode produced an exception");
847 return true;
848 }
849 }
850
851 //---------------------------do_exceptions-------------------------------------
852 // Process exceptions arising from the current bytecode.
853 // Send caught exceptions to the proper handler within this method.
854 // Unhandled exceptions feed into _exit.
855 void Parse::do_exceptions() {
856 if (!has_exceptions()) return;
|
807 case Bytecodes::_laload:
808 case Bytecodes::_daload:
809 case Bytecodes::_bastore:
810 case Bytecodes::_castore:
811 case Bytecodes::_iastore:
812 case Bytecodes::_sastore:
813 case Bytecodes::_fastore:
814 case Bytecodes::_aastore:
815 case Bytecodes::_lastore:
816 case Bytecodes::_dastore:
817 case Bytecodes::_irem:
818 case Bytecodes::_idiv:
819 case Bytecodes::_lrem:
820 case Bytecodes::_ldiv:
821 case Bytecodes::_frem:
822 case Bytecodes::_fdiv:
823 case Bytecodes::_drem:
824 case Bytecodes::_ddiv:
825 case Bytecodes::_checkcast:
826 case Bytecodes::_instanceof:
827 case Bytecodes::_anewarray:
828 case Bytecodes::_newarray:
829 case Bytecodes::_multianewarray:
830 case Bytecodes::_new:
831 case Bytecodes::_monitorenter: // can re-run initial null check, only
832 case Bytecodes::_return:
833 return true;
834 break;
835
836 // Don't rerun athrow since it's part of the exception path.
837 case Bytecodes::_athrow:
838 case Bytecodes::_invokestatic:
839 case Bytecodes::_invokedynamic:
840 case Bytecodes::_invokespecial:
841 case Bytecodes::_invokevirtual:
842 case Bytecodes::_invokeinterface:
843 return false;
844 break;
845
846 default:
847 assert(false, "unexpected bytecode produced an exception");
848 return true;
849 }
850 }
851
852 //---------------------------do_exceptions-------------------------------------
853 // Process exceptions arising from the current bytecode.
854 // Send caught exceptions to the proper handler within this method.
855 // Unhandled exceptions feed into _exit.
856 void Parse::do_exceptions() {
857 if (!has_exceptions()) return;
|