Top


定義場所(file name)

hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp

名前(function name)

  void generate_all() {

本体部(body)

  {- -------------------------------------------
  (1) 
      ---------------------------------------- -}

        // Generates all stubs and initializes the entry points

        // These entry points require SharedInfo::stack0 to be set up in
        // non-core builds and need to be relocatable, so they each
        // fabricate a RuntimeStub internally.
        StubRoutines::_throw_AbstractMethodError_entry =
          generate_throw_exception("AbstractMethodError throw_exception",
                                   CAST_FROM_FN_PTR(address,
                                                    SharedRuntime::
                                                    throw_AbstractMethodError),
                                   false);

        StubRoutines::_throw_IncompatibleClassChangeError_entry =
          generate_throw_exception("IncompatibleClassChangeError throw_exception",
                                   CAST_FROM_FN_PTR(address,
                                                    SharedRuntime::
                                                    throw_IncompatibleClassChangeError),
                                   false);

        StubRoutines::_throw_ArithmeticException_entry =
          generate_throw_exception("ArithmeticException throw_exception",
                                   CAST_FROM_FN_PTR(address,
                                                    SharedRuntime::
                                                    throw_ArithmeticException),
                                   true);

        StubRoutines::_throw_NullPointerException_entry =
          generate_throw_exception("NullPointerException throw_exception",
                                   CAST_FROM_FN_PTR(address,
                                                    SharedRuntime::
                                                    throw_NullPointerException),
                                   true);

        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);

        StubRoutines::_throw_StackOverflowError_entry =
          generate_throw_exception("StackOverflowError throw_exception",
                                   CAST_FROM_FN_PTR(address,
                                                    SharedRuntime::
                                                    throw_StackOverflowError),
                                   false);

        // entry points that are platform specific
        StubRoutines::x86::_f2i_fixup = generate_f2i_fixup();
        StubRoutines::x86::_f2l_fixup = generate_f2l_fixup();
        StubRoutines::x86::_d2i_fixup = generate_d2i_fixup();
        StubRoutines::x86::_d2l_fixup = generate_d2l_fixup();

        StubRoutines::x86::_float_sign_mask  = generate_fp_mask("float_sign_mask",  0x7FFFFFFF7FFFFFFF);
        StubRoutines::x86::_float_sign_flip  = generate_fp_mask("float_sign_flip",  0x8000000080000000);
        StubRoutines::x86::_double_sign_mask = generate_fp_mask("double_sign_mask", 0x7FFFFFFFFFFFFFFF);
        StubRoutines::x86::_double_sign_flip = generate_fp_mask("double_sign_flip", 0x8000000000000000);

        // support for verify_oop (must happen after universe_init)
        StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop();

        // arraycopy stubs used by compilers
        generate_arraycopy_stubs();

        generate_math_stubs();
      }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.