hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
changeset 38209 b2a58604e046
parent 38190 ff9ac612c723
child 38931 3cf28d630349
child 39236 c9d756fa846e
equal deleted inserted replaced
38208:ff63d43b0480 38209:b2a58604e046
   823     __ blr();                                   // return
   823     __ blr();                                   // return
   824 
   824 
   825     return start;
   825     return start;
   826   }
   826   }
   827 
   827 
   828   // The following routine generates a subroutine to throw an asynchronous
       
   829   // UnknownError when an unsafe access gets a fault that could not be
       
   830   // reasonably prevented by the programmer.  (Example: SIGBUS/OBJERR.)
       
   831   //
       
   832   address generate_handler_for_unsafe_access() {
       
   833     StubCodeMark mark(this, "StubRoutines", "handler_for_unsafe_access");
       
   834     address start = __ function_entry();
       
   835     __ unimplemented("StubRoutines::handler_for_unsafe_access", 93);
       
   836     return start;
       
   837   }
       
   838 
       
   839 #if !defined(PRODUCT)
   828 #if !defined(PRODUCT)
   840   // Wrapper which calls oopDesc::is_oop_or_null()
   829   // Wrapper which calls oopDesc::is_oop_or_null()
   841   // Only called by MacroAssembler::verify_oop
   830   // Only called by MacroAssembler::verify_oop
   842   static void verify_oop_helper(const char* message, oop o) {
   831   static void verify_oop_helper(const char* message, oop o) {
   843     if (!o->is_oop_or_null()) {
   832     if (!o->is_oop_or_null()) {
  3109     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
  3098     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
  3110     // Handle IncompatibleClassChangeError in itable stubs.
  3099     // Handle IncompatibleClassChangeError in itable stubs.
  3111     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
  3100     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
  3112     StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call), false);
  3101     StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call), false);
  3113 
  3102 
  3114     StubRoutines::_handler_for_unsafe_access_entry         = generate_handler_for_unsafe_access();
       
  3115 
       
  3116     // support for verify_oop (must happen after universe_init)
  3103     // support for verify_oop (must happen after universe_init)
  3117     StubRoutines::_verify_oop_subroutine_entry             = generate_verify_oop();
  3104     StubRoutines::_verify_oop_subroutine_entry             = generate_verify_oop();
  3118 
  3105 
  3119     // arraycopy stubs used by compilers
  3106     // arraycopy stubs used by compilers
  3120     generate_arraycopy_stubs();
  3107     generate_arraycopy_stubs();