< prev index next >

src/share/vm/runtime/stubRoutines.hpp

Print this page




  67 // Scheme for adding a new entry point:
  68 //
  69 // 1. determine if it's a platform-dependent or independent entry point
  70 //    a) if platform independent: make subsequent changes in the independent files
  71 //    b) if platform   dependent: make subsequent changes in the   dependent files
  72 // 2. add a private instance variable holding the entry point address
  73 // 3. add a public accessor function to the instance variable
  74 // 4. implement the corresponding generator function in the platform-dependent
  75 //    stubGenerator_<arch>.cpp file and call the function in generate_all() of that file
  76 
  77 
  78 class StubRoutines: AllStatic {
  79 
  80  public:
  81   enum platform_independent_constants {
  82     max_size_of_parameters = 256                           // max. parameter size supported by megamorphic lookups
  83   };
  84 
  85   // Dependencies
  86   friend class StubGenerator;
  87 #ifdef TARGET_ARCH_MODEL_x86_32


  88 # include "stubRoutines_x86_32.hpp"
  89 #endif
  90 #ifdef TARGET_ARCH_MODEL_x86_64
  91 # include "stubRoutines_x86_64.hpp"
  92 #endif
  93 #ifdef TARGET_ARCH_MODEL_sparc
  94 # include "stubRoutines_sparc.hpp"
  95 #endif
  96 #ifdef TARGET_ARCH_MODEL_zero
  97 # include "stubRoutines_zero.hpp"
  98 #endif
  99 #ifdef TARGET_ARCH_MODEL_arm
 100 # include "stubRoutines_arm.hpp"
 101 #endif
 102 #ifdef TARGET_ARCH_MODEL_ppc_32
 103 # include "stubRoutines_ppc_32.hpp"
 104 #endif
 105 #ifdef TARGET_ARCH_MODEL_ppc_64
 106 # include "stubRoutines_ppc_64.hpp"
 107 #endif
 108 #ifdef TARGET_ARCH_MODEL_aarch64
 109 # include "stubRoutines_aarch64.hpp"
 110 #endif
 111 
 112 
 113   static jint    _verify_oop_count;
 114   static address _verify_oop_subroutine_entry;
 115 
 116   static address _call_stub_return_address;                // the return PC, when returning to a call stub
 117   static address _call_stub_entry;
 118   static address _forward_exception_entry;
 119   static address _catch_exception_entry;
 120   static address _throw_AbstractMethodError_entry;
 121   static address _throw_IncompatibleClassChangeError_entry;
 122   static address _throw_NullPointerException_at_call_entry;
 123   static address _throw_StackOverflowError_entry;
 124   static address _handler_for_unsafe_access_entry;
 125 
 126   static address _atomic_xchg_entry;
 127   static address _atomic_xchg_ptr_entry;
 128   static address _atomic_store_entry;
 129   static address _atomic_store_ptr_entry;
 130   static address _atomic_cmpxchg_entry;
 131   static address _atomic_cmpxchg_ptr_entry;




  67 // Scheme for adding a new entry point:
  68 //
  69 // 1. determine if it's a platform-dependent or independent entry point
  70 //    a) if platform independent: make subsequent changes in the independent files
  71 //    b) if platform   dependent: make subsequent changes in the   dependent files
  72 // 2. add a private instance variable holding the entry point address
  73 // 3. add a public accessor function to the instance variable
  74 // 4. implement the corresponding generator function in the platform-dependent
  75 //    stubGenerator_<arch>.cpp file and call the function in generate_all() of that file
  76 
  77 
  78 class StubRoutines: AllStatic {
  79 
  80  public:
  81   enum platform_independent_constants {
  82     max_size_of_parameters = 256                           // max. parameter size supported by megamorphic lookups
  83   };
  84 
  85   // Dependencies
  86   friend class StubGenerator;
  87 #if defined STUBROUTINES_MD_HPP
  88 # include STUBROUTINES_MD_HPP
  89 #elif defined TARGET_ARCH_MODEL_x86_32
  90 # include "stubRoutines_x86_32.hpp"
  91 #elif defined TARGET_ARCH_MODEL_x86_64

  92 # include "stubRoutines_x86_64.hpp"
  93 #elif defined TARGET_ARCH_MODEL_sparc

  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;


< prev index next >