src/share/vm/runtime/stubRoutines.hpp

Print this page




  94 # include "stubRoutines_sparc.hpp"
  95 #elif defined TARGET_ARCH_MODEL_zero
  96 # include "stubRoutines_zero.hpp"
  97 #elif defined TARGET_ARCH_MODEL_ppc_64
  98 # include "stubRoutines_ppc_64.hpp"
  99 #elif defined TARGET_ARCH_MODEL_aarch64
 100 # include "stubRoutines_aarch64.hpp"
 101 #endif
 102 
 103   static jint    _verify_oop_count;
 104   static address _verify_oop_subroutine_entry;
 105 
 106   static address _call_stub_return_address;                // the return PC, when returning to a call stub
 107   static address _call_stub_entry;
 108   static address _forward_exception_entry;
 109   static address _catch_exception_entry;
 110   static address _throw_AbstractMethodError_entry;
 111   static address _throw_IncompatibleClassChangeError_entry;
 112   static address _throw_NullPointerException_at_call_entry;
 113   static address _throw_StackOverflowError_entry;

 114   static address _handler_for_unsafe_access_entry;
 115 
 116   static address _atomic_xchg_entry;
 117   static address _atomic_xchg_ptr_entry;
 118   static address _atomic_store_entry;
 119   static address _atomic_store_ptr_entry;
 120   static address _atomic_cmpxchg_entry;
 121   static address _atomic_cmpxchg_ptr_entry;
 122   static address _atomic_cmpxchg_byte_entry;
 123   static address _atomic_cmpxchg_long_entry;
 124   static address _atomic_add_entry;
 125   static address _atomic_add_ptr_entry;
 126   static address _fence_entry;
 127   static address _d2i_wrapper;
 128   static address _d2l_wrapper;
 129 
 130   static jint    _fpu_cntrl_wrd_std;
 131   static jint    _fpu_cntrl_wrd_24;
 132   static jint    _fpu_cntrl_wrd_64;
 133   static jint    _fpu_cntrl_wrd_trunc;


 258   typedef void (*CallStub)(
 259     address   link,
 260     intptr_t* result,
 261     BasicType result_type,
 262     Method* method,
 263     address   entry_point,
 264     intptr_t* parameters,
 265     int       size_of_parameters,
 266     TRAPS
 267   );
 268 
 269   static CallStub call_stub()                              { return CAST_TO_FN_PTR(CallStub, _call_stub_entry); }
 270 
 271   // Exceptions
 272   static address forward_exception_entry()                 { return _forward_exception_entry; }
 273   // Implicit exceptions
 274   static address throw_AbstractMethodError_entry()         { return _throw_AbstractMethodError_entry; }
 275   static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; }
 276   static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; }
 277   static address throw_StackOverflowError_entry()          { return _throw_StackOverflowError_entry; }

 278 
 279   // Exceptions during unsafe access - should throw Java exception rather
 280   // than crash.
 281   static address handler_for_unsafe_access()               { return _handler_for_unsafe_access_entry; }
 282 
 283   static address atomic_xchg_entry()                       { return _atomic_xchg_entry; }
 284   static address atomic_xchg_ptr_entry()                   { return _atomic_xchg_ptr_entry; }
 285   static address atomic_store_entry()                      { return _atomic_store_entry; }
 286   static address atomic_store_ptr_entry()                  { return _atomic_store_ptr_entry; }
 287   static address atomic_cmpxchg_entry()                    { return _atomic_cmpxchg_entry; }
 288   static address atomic_cmpxchg_ptr_entry()                { return _atomic_cmpxchg_ptr_entry; }
 289   static address atomic_cmpxchg_byte_entry()               { return _atomic_cmpxchg_byte_entry; }
 290   static address atomic_cmpxchg_long_entry()               { return _atomic_cmpxchg_long_entry; }
 291   static address atomic_add_entry()                        { return _atomic_add_entry; }
 292   static address atomic_add_ptr_entry()                    { return _atomic_add_ptr_entry; }
 293   static address fence_entry()                             { return _fence_entry; }
 294 
 295   static address d2i_wrapper()                             { return _d2i_wrapper; }
 296   static address d2l_wrapper()                             { return _d2l_wrapper; }
 297   static jint    fpu_cntrl_wrd_std()                       { return _fpu_cntrl_wrd_std;   }




  94 # include "stubRoutines_sparc.hpp"
  95 #elif defined TARGET_ARCH_MODEL_zero
  96 # include "stubRoutines_zero.hpp"
  97 #elif defined TARGET_ARCH_MODEL_ppc_64
  98 # include "stubRoutines_ppc_64.hpp"
  99 #elif defined TARGET_ARCH_MODEL_aarch64
 100 # include "stubRoutines_aarch64.hpp"
 101 #endif
 102 
 103   static jint    _verify_oop_count;
 104   static address _verify_oop_subroutine_entry;
 105 
 106   static address _call_stub_return_address;                // the return PC, when returning to a call stub
 107   static address _call_stub_entry;
 108   static address _forward_exception_entry;
 109   static address _catch_exception_entry;
 110   static address _throw_AbstractMethodError_entry;
 111   static address _throw_IncompatibleClassChangeError_entry;
 112   static address _throw_NullPointerException_at_call_entry;
 113   static address _throw_StackOverflowError_entry;
 114   static address _throw_delayed_StackOverflowError_entry;
 115   static address _handler_for_unsafe_access_entry;
 116 
 117   static address _atomic_xchg_entry;
 118   static address _atomic_xchg_ptr_entry;
 119   static address _atomic_store_entry;
 120   static address _atomic_store_ptr_entry;
 121   static address _atomic_cmpxchg_entry;
 122   static address _atomic_cmpxchg_ptr_entry;
 123   static address _atomic_cmpxchg_byte_entry;
 124   static address _atomic_cmpxchg_long_entry;
 125   static address _atomic_add_entry;
 126   static address _atomic_add_ptr_entry;
 127   static address _fence_entry;
 128   static address _d2i_wrapper;
 129   static address _d2l_wrapper;
 130 
 131   static jint    _fpu_cntrl_wrd_std;
 132   static jint    _fpu_cntrl_wrd_24;
 133   static jint    _fpu_cntrl_wrd_64;
 134   static jint    _fpu_cntrl_wrd_trunc;


 259   typedef void (*CallStub)(
 260     address   link,
 261     intptr_t* result,
 262     BasicType result_type,
 263     Method* method,
 264     address   entry_point,
 265     intptr_t* parameters,
 266     int       size_of_parameters,
 267     TRAPS
 268   );
 269 
 270   static CallStub call_stub()                              { return CAST_TO_FN_PTR(CallStub, _call_stub_entry); }
 271 
 272   // Exceptions
 273   static address forward_exception_entry()                 { return _forward_exception_entry; }
 274   // Implicit exceptions
 275   static address throw_AbstractMethodError_entry()         { return _throw_AbstractMethodError_entry; }
 276   static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; }
 277   static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; }
 278   static address throw_StackOverflowError_entry()          { return _throw_StackOverflowError_entry; }
 279   static address throw_delayed_StackOverflowError_entry()  { return _throw_delayed_StackOverflowError_entry; }
 280 
 281   // Exceptions during unsafe access - should throw Java exception rather
 282   // than crash.
 283   static address handler_for_unsafe_access()               { return _handler_for_unsafe_access_entry; }
 284 
 285   static address atomic_xchg_entry()                       { return _atomic_xchg_entry; }
 286   static address atomic_xchg_ptr_entry()                   { return _atomic_xchg_ptr_entry; }
 287   static address atomic_store_entry()                      { return _atomic_store_entry; }
 288   static address atomic_store_ptr_entry()                  { return _atomic_store_ptr_entry; }
 289   static address atomic_cmpxchg_entry()                    { return _atomic_cmpxchg_entry; }
 290   static address atomic_cmpxchg_ptr_entry()                { return _atomic_cmpxchg_ptr_entry; }
 291   static address atomic_cmpxchg_byte_entry()               { return _atomic_cmpxchg_byte_entry; }
 292   static address atomic_cmpxchg_long_entry()               { return _atomic_cmpxchg_long_entry; }
 293   static address atomic_add_entry()                        { return _atomic_add_entry; }
 294   static address atomic_add_ptr_entry()                    { return _atomic_add_ptr_entry; }
 295   static address fence_entry()                             { return _fence_entry; }
 296 
 297   static address d2i_wrapper()                             { return _d2i_wrapper; }
 298   static address d2l_wrapper()                             { return _d2l_wrapper; }
 299   static jint    fpu_cntrl_wrd_std()                       { return _fpu_cntrl_wrd_std;   }