5306
5307 //------------------------------------------------------------------------------------------------------------------------
5308 // entry points that are platform specific
5309 StubRoutines::Sparc::_test_stop_entry = generate_test_stop();
5310
5311 StubRoutines::Sparc::_stop_subroutine_entry = generate_stop_subroutine();
5312 StubRoutines::Sparc::_flush_callers_register_windows_entry = generate_flush_callers_register_windows();
5313
5314 #if !defined(COMPILER2) && !defined(_LP64)
5315 StubRoutines::_atomic_xchg_entry = generate_atomic_xchg();
5316 StubRoutines::_atomic_cmpxchg_entry = generate_atomic_cmpxchg();
5317 StubRoutines::_atomic_add_entry = generate_atomic_add();
5318 StubRoutines::_atomic_xchg_ptr_entry = StubRoutines::_atomic_xchg_entry;
5319 StubRoutines::_atomic_cmpxchg_ptr_entry = StubRoutines::_atomic_cmpxchg_entry;
5320 StubRoutines::_atomic_cmpxchg_byte_entry = ShouldNotCallThisStub();
5321 StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
5322 StubRoutines::_atomic_add_ptr_entry = StubRoutines::_atomic_add_entry;
5323 #endif // COMPILER2 !=> _LP64
5324
5325 // Build this early so it's available for the interpreter.
5326 StubRoutines::_throw_StackOverflowError_entry = generate_throw_exception("StackOverflowError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
5327 }
5328
5329
5330 void generate_all() {
5331 // Generates all stubs and initializes the entry points
5332
5333 // Generate partial_subtype_check first here since its code depends on
5334 // UseZeroBaseCompressedOops which is defined after heap initialization.
5335 StubRoutines::Sparc::_partial_subtype_check = generate_partial_subtype_check();
5336 // These entry points require SharedInfo::stack0 to be set up in non-core builds
5337 StubRoutines::_throw_AbstractMethodError_entry = generate_throw_exception("AbstractMethodError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError));
5338 StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError));
5339 StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call));
5340
5341 StubRoutines::_handler_for_unsafe_access_entry =
5342 generate_handler_for_unsafe_access();
5343
5344 // support for verify_oop (must happen after universe_init)
5345 StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop_subroutine();
5346
|
5306
5307 //------------------------------------------------------------------------------------------------------------------------
5308 // entry points that are platform specific
5309 StubRoutines::Sparc::_test_stop_entry = generate_test_stop();
5310
5311 StubRoutines::Sparc::_stop_subroutine_entry = generate_stop_subroutine();
5312 StubRoutines::Sparc::_flush_callers_register_windows_entry = generate_flush_callers_register_windows();
5313
5314 #if !defined(COMPILER2) && !defined(_LP64)
5315 StubRoutines::_atomic_xchg_entry = generate_atomic_xchg();
5316 StubRoutines::_atomic_cmpxchg_entry = generate_atomic_cmpxchg();
5317 StubRoutines::_atomic_add_entry = generate_atomic_add();
5318 StubRoutines::_atomic_xchg_ptr_entry = StubRoutines::_atomic_xchg_entry;
5319 StubRoutines::_atomic_cmpxchg_ptr_entry = StubRoutines::_atomic_cmpxchg_entry;
5320 StubRoutines::_atomic_cmpxchg_byte_entry = ShouldNotCallThisStub();
5321 StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
5322 StubRoutines::_atomic_add_ptr_entry = StubRoutines::_atomic_add_entry;
5323 #endif // COMPILER2 !=> _LP64
5324
5325 // Build this early so it's available for the interpreter.
5326 StubRoutines::_throw_StackOverflowError_entry =
5327 generate_throw_exception("StackOverflowError throw_exception",
5328 CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
5329 StubRoutines::_throw_delayed_StackOverflowError_entry =
5330 generate_throw_exception("delayed StackOverflowError throw_exception",
5331 CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError));
5332 }
5333
5334
5335 void generate_all() {
5336 // Generates all stubs and initializes the entry points
5337
5338 // Generate partial_subtype_check first here since its code depends on
5339 // UseZeroBaseCompressedOops which is defined after heap initialization.
5340 StubRoutines::Sparc::_partial_subtype_check = generate_partial_subtype_check();
5341 // These entry points require SharedInfo::stack0 to be set up in non-core builds
5342 StubRoutines::_throw_AbstractMethodError_entry = generate_throw_exception("AbstractMethodError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError));
5343 StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError));
5344 StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call));
5345
5346 StubRoutines::_handler_for_unsafe_access_entry =
5347 generate_handler_for_unsafe_access();
5348
5349 // support for verify_oop (must happen after universe_init)
5350 StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop_subroutine();
5351
|