src/cpu/sparc/vm/stubGenerator_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6829193 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/stubGenerator_sparc.cpp

Print this page




2900     // Generate partial_subtype_check first here since its code depends on
2901     // UseZeroBaseCompressedOops which is defined after heap initialization.
2902     StubRoutines::Sparc::_partial_subtype_check                = generate_partial_subtype_check();
2903     // These entry points require SharedInfo::stack0 to be set up in non-core builds
2904     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
2905     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
2906     StubRoutines::_throw_ArithmeticException_entry         = generate_throw_exception("ArithmeticException throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_ArithmeticException),  true);
2907     StubRoutines::_throw_NullPointerException_entry        = generate_throw_exception("NullPointerException throw_exception",         CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException), true);
2908     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);
2909     StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError),   false);
2910 
2911     StubRoutines::_handler_for_unsafe_access_entry =
2912       generate_handler_for_unsafe_access();
2913 
2914     // support for verify_oop (must happen after universe_init)
2915     StubRoutines::_verify_oop_subroutine_entry     = generate_verify_oop_subroutine();
2916 
2917     // arraycopy stubs used by compilers
2918     generate_arraycopy_stubs();
2919 










2920     // Don't initialize the platform math functions since sparc
2921     // doesn't have intrinsics for these operations.
2922   }
2923 
2924 
2925  public:
2926   StubGenerator(CodeBuffer* code, bool all) : StubCodeGenerator(code) {
2927     // replace the standard masm with a special one:
2928     _masm = new MacroAssembler(code);
2929 
2930     _stub_count = !all ? 0x100 : 0x200;
2931     if (all) {
2932       generate_all();
2933     } else {
2934       generate_initial();
2935     }
2936 
2937     // make sure this stub is available for all local calls
2938     if (_atomic_add_stub.is_unbound()) {
2939       // generate a second time, if necessary




2900     // Generate partial_subtype_check first here since its code depends on
2901     // UseZeroBaseCompressedOops which is defined after heap initialization.
2902     StubRoutines::Sparc::_partial_subtype_check                = generate_partial_subtype_check();
2903     // These entry points require SharedInfo::stack0 to be set up in non-core builds
2904     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
2905     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
2906     StubRoutines::_throw_ArithmeticException_entry         = generate_throw_exception("ArithmeticException throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_ArithmeticException),  true);
2907     StubRoutines::_throw_NullPointerException_entry        = generate_throw_exception("NullPointerException throw_exception",         CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException), true);
2908     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);
2909     StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError),   false);
2910 
2911     StubRoutines::_handler_for_unsafe_access_entry =
2912       generate_handler_for_unsafe_access();
2913 
2914     // support for verify_oop (must happen after universe_init)
2915     StubRoutines::_verify_oop_subroutine_entry     = generate_verify_oop_subroutine();
2916 
2917     // arraycopy stubs used by compilers
2918     generate_arraycopy_stubs();
2919 
2920     // generic method handle stubs
2921     if (EnableMethodHandles && SystemDictionary::MethodHandle_klass() != NULL) {
2922       for (MethodHandles::EntryKind ek = MethodHandles::_EK_FIRST;
2923            ek < MethodHandles::_EK_LIMIT;
2924            ek = MethodHandles::EntryKind(1 + (int)ek)) {
2925         StubCodeMark mark(this, "MethodHandle", MethodHandles::entry_name(ek));
2926         MethodHandles::generate_method_handle_stub(_masm, ek);
2927       }
2928     }
2929 
2930     // Don't initialize the platform math functions since sparc
2931     // doesn't have intrinsics for these operations.
2932   }
2933 
2934 
2935  public:
2936   StubGenerator(CodeBuffer* code, bool all) : StubCodeGenerator(code) {
2937     // replace the standard masm with a special one:
2938     _masm = new MacroAssembler(code);
2939 
2940     _stub_count = !all ? 0x100 : 0x200;
2941     if (all) {
2942       generate_all();
2943     } else {
2944       generate_initial();
2945     }
2946 
2947     // make sure this stub is available for all local calls
2948     if (_atomic_add_stub.is_unbound()) {
2949       // generate a second time, if necessary


src/cpu/sparc/vm/stubGenerator_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File