Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/sharedRuntime.cpp @ 4559:723df37192d6
Make it possible again to build a real client libjvm, drop the UseGraal flag.
Use the --vm option instead of a special -vm option in the bench command
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 10 Feb 2012 17:04:03 +0100 |
parents | 04b9a2566eec |
children | f9811bcf3402 |
comparison
equal
deleted
inserted
replaced
4558:3706975946e4 | 4559:723df37192d6 |
---|---|
712 t = table.entry_for(catch_pco, -1, 0); | 712 t = table.entry_for(catch_pco, -1, 0); |
713 } | 713 } |
714 | 714 |
715 #ifdef COMPILER1 | 715 #ifdef COMPILER1 |
716 if (t == NULL && nm->is_compiled_by_c1()) { | 716 if (t == NULL && nm->is_compiled_by_c1()) { |
717 if (UseGraal) { | 717 #ifdef GRAAL |
718 nm->make_not_entrant(); | 718 nm->make_not_entrant(); |
719 JavaThread::current()->set_exception_pc(ret_pc); | 719 JavaThread::current()->set_exception_pc(ret_pc); |
720 JavaThread::current()->set_exception_oop(exception()); | 720 JavaThread::current()->set_exception_oop(exception()); |
721 return SharedRuntime::deopt_blob()->unpack_with_exception_in_tls(); | 721 return SharedRuntime::deopt_blob()->unpack_with_exception_in_tls(); |
722 } else { | 722 #else |
723 assert(nm->unwind_handler_begin() != NULL, ""); | 723 assert(nm->unwind_handler_begin() != NULL, ""); |
724 return nm->unwind_handler_begin(); | 724 return nm->unwind_handler_begin(); |
725 } | 725 #endif |
726 } | 726 } |
727 #endif | 727 #endif |
728 | 728 |
729 if (t == NULL) { | 729 if (t == NULL) { |
730 tty->print_cr("MISSING EXCEPTION HANDLER for pc " INTPTR_FORMAT " and handler bci %d", ret_pc, handler_bci); | 730 tty->print_cr("MISSING EXCEPTION HANDLER for pc " INTPTR_FORMAT " and handler bci %d", ret_pc, handler_bci); |
875 } | 875 } |
876 | 876 |
877 #ifndef PRODUCT | 877 #ifndef PRODUCT |
878 _implicit_null_throws++; | 878 _implicit_null_throws++; |
879 #endif | 879 #endif |
880 if (UseGraal) { | 880 #ifdef GRAAL |
881 target_pc = deoptimization_continuation(thread, pc, nm); | 881 target_pc = deoptimization_continuation(thread, pc, nm); |
882 } else { | 882 #else |
883 target_pc = nm->continuation_for_implicit_exception(pc); | 883 target_pc = nm->continuation_for_implicit_exception(pc); |
884 } | 884 #endif |
885 // If there's an unexpected fault, target_pc might be NULL, | 885 // If there's an unexpected fault, target_pc might be NULL, |
886 // in which case we want to fall through into the normal | 886 // in which case we want to fall through into the normal |
887 // error handling code. | 887 // error handling code. |
888 } | 888 } |
889 | 889 |
895 nmethod* nm = CodeCache::find_nmethod(pc); | 895 nmethod* nm = CodeCache::find_nmethod(pc); |
896 guarantee(nm != NULL, "must have containing nmethod for implicit division-by-zero exceptions"); | 896 guarantee(nm != NULL, "must have containing nmethod for implicit division-by-zero exceptions"); |
897 #ifndef PRODUCT | 897 #ifndef PRODUCT |
898 _implicit_div0_throws++; | 898 _implicit_div0_throws++; |
899 #endif | 899 #endif |
900 if (UseGraal) { | 900 #ifdef GRAAL |
901 if (TraceSignals) { | 901 if (TraceSignals) { |
902 tty->print_cr("graal implicit div0"); | 902 tty->print_cr("graal implicit div0"); |
903 } | |
904 target_pc = deoptimization_continuation(thread, pc, nm); | |
905 } else { | |
906 target_pc = nm->continuation_for_implicit_exception(pc); | |
907 } | 903 } |
904 target_pc = deoptimization_continuation(thread, pc, nm); | |
905 #else | |
906 target_pc = nm->continuation_for_implicit_exception(pc); | |
907 #endif | |
908 // If there's an unexpected fault, target_pc might be NULL, | 908 // If there's an unexpected fault, target_pc might be NULL, |
909 // in which case we want to fall through into the normal | 909 // in which case we want to fall through into the normal |
910 // error handling code. | 910 // error handling code. |
911 break; // fall through | 911 break; // fall through |
912 } | 912 } |