< prev index next >

src/hotspot/share/c1/c1_Runtime1.cpp

Print this page




 688   char* message = SharedRuntime::generate_class_cast_message(
 689     thread, object->klass());
 690   SharedRuntime::throw_and_post_jvmti_exception(
 691     thread, vmSymbols::java_lang_ClassCastException(), message);
 692 JRT_END
 693 
 694 
 695 JRT_ENTRY(void, Runtime1::throw_incompatible_class_change_error(JavaThread* thread))
 696   NOT_PRODUCT(_throw_incompatible_class_change_error_count++;)
 697   ResourceMark rm(thread);
 698   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_IncompatibleClassChangeError());
 699 JRT_END
 700 
 701 
 702 JRT_ENTRY_NO_ASYNC(void, Runtime1::monitorenter(JavaThread* thread, oopDesc* obj, BasicObjectLock* lock))
 703   NOT_PRODUCT(_monitorenter_slowcase_cnt++;)
 704   if (PrintBiasedLockingStatistics) {
 705     Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
 706   }
 707   Handle h_obj(thread, obj);



 708   assert(obj == lock->obj(), "must match");
 709   ObjectSynchronizer::enter(h_obj, lock->lock(), THREAD);
 710 JRT_END
 711 
 712 
 713 JRT_LEAF(void, Runtime1::monitorexit(JavaThread* thread, BasicObjectLock* lock))
 714   NOT_PRODUCT(_monitorexit_slowcase_cnt++;)
 715   assert(thread == JavaThread::current(), "threads must correspond");
 716   assert(thread->last_Java_sp(), "last_Java_sp must be set");
 717   // monitorexit is non-blocking (leaf routine) => no exceptions can be thrown
 718   EXCEPTION_MARK;
 719 
 720   oop obj = lock->obj();
 721   assert(oopDesc::is_oop(obj), "must be NULL or an object");
 722   ObjectSynchronizer::exit(obj, lock->lock(), THREAD);
 723 JRT_END
 724 
 725 // Cf. OptoRuntime::deoptimize_caller_frame
 726 JRT_ENTRY(void, Runtime1::deoptimize(JavaThread* thread, jint trap_request))
 727   // Called from within the owner thread, so no need for safepoint




 688   char* message = SharedRuntime::generate_class_cast_message(
 689     thread, object->klass());
 690   SharedRuntime::throw_and_post_jvmti_exception(
 691     thread, vmSymbols::java_lang_ClassCastException(), message);
 692 JRT_END
 693 
 694 
 695 JRT_ENTRY(void, Runtime1::throw_incompatible_class_change_error(JavaThread* thread))
 696   NOT_PRODUCT(_throw_incompatible_class_change_error_count++;)
 697   ResourceMark rm(thread);
 698   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_IncompatibleClassChangeError());
 699 JRT_END
 700 
 701 
 702 JRT_ENTRY_NO_ASYNC(void, Runtime1::monitorenter(JavaThread* thread, oopDesc* obj, BasicObjectLock* lock))
 703   NOT_PRODUCT(_monitorenter_slowcase_cnt++;)
 704   if (PrintBiasedLockingStatistics) {
 705     Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
 706   }
 707   Handle h_obj(thread, obj);
 708   if (!UseFastLocking) {
 709     lock->set_obj(obj);
 710   }
 711   assert(obj == lock->obj(), "must match");
 712   ObjectSynchronizer::enter(h_obj, lock->lock(), THREAD);
 713 JRT_END
 714 
 715 
 716 JRT_LEAF(void, Runtime1::monitorexit(JavaThread* thread, BasicObjectLock* lock))
 717   NOT_PRODUCT(_monitorexit_slowcase_cnt++;)
 718   assert(thread == JavaThread::current(), "threads must correspond");
 719   assert(thread->last_Java_sp(), "last_Java_sp must be set");
 720   // monitorexit is non-blocking (leaf routine) => no exceptions can be thrown
 721   EXCEPTION_MARK;
 722 
 723   oop obj = lock->obj();
 724   assert(oopDesc::is_oop(obj), "must be NULL or an object");
 725   ObjectSynchronizer::exit(obj, lock->lock(), THREAD);
 726 JRT_END
 727 
 728 // Cf. OptoRuntime::deoptimize_caller_frame
 729 JRT_ENTRY(void, Runtime1::deoptimize(JavaThread* thread, jint trap_request))
 730   // Called from within the owner thread, so no need for safepoint


< prev index next >