< prev index next >

src/share/vm/runtime/stubRoutines.hpp

Print this page




  82 // Scheme for adding a new entry point:
  83 //
  84 // 1. determine if it's a platform-dependent or independent entry point
  85 //    a) if platform independent: make subsequent changes in the independent files
  86 //    b) if platform   dependent: make subsequent changes in the   dependent files
  87 // 2. add a private instance variable holding the entry point address
  88 // 3. add a public accessor function to the instance variable
  89 // 4. implement the corresponding generator function in the platform-dependent
  90 //    stubGenerator_<arch>.cpp file and call the function in generate_all() of that file
  91 
  92 
  93 class StubRoutines: AllStatic {
  94 
  95  public:
  96   enum platform_independent_constants {
  97     max_size_of_parameters = 256                           // max. parameter size supported by megamorphic lookups
  98   };
  99 
 100   // Dependencies
 101   friend class StubGenerator;
 102 #ifdef TARGET_ARCH_MODEL_x86_32


 103 # include "stubRoutines_x86_32.hpp"
 104 #endif
 105 #ifdef TARGET_ARCH_MODEL_x86_64
 106 # include "stubRoutines_x86_64.hpp"
 107 #endif
 108 #ifdef TARGET_ARCH_MODEL_sparc
 109 # include "stubRoutines_sparc.hpp"
 110 #endif
 111 #ifdef TARGET_ARCH_MODEL_zero
 112 # include "stubRoutines_zero.hpp"
 113 #endif
 114 #ifdef TARGET_ARCH_MODEL_arm
 115 # include "stubRoutines_arm.hpp"
 116 #endif
 117 #ifdef TARGET_ARCH_MODEL_ppc_32
 118 # include "stubRoutines_ppc_32.hpp"
 119 #endif
 120 #ifdef TARGET_ARCH_MODEL_ppc_64
 121 # include "stubRoutines_ppc_64.hpp"
 122 #endif
 123 
 124 
 125   static jint    _verify_oop_count;
 126   static address _verify_oop_subroutine_entry;
 127 
 128   static address _call_stub_return_address;                // the return PC, when returning to a call stub
 129   static address _call_stub_entry;
 130   static address _forward_exception_entry;
 131   static address _catch_exception_entry;
 132   static address _throw_AbstractMethodError_entry;
 133   static address _throw_IncompatibleClassChangeError_entry;
 134   static address _throw_NullPointerException_at_call_entry;
 135   static address _throw_StackOverflowError_entry;
 136   static address _handler_for_unsafe_access_entry;
 137 
 138   static address _atomic_xchg_entry;
 139   static address _atomic_xchg_ptr_entry;
 140   static address _atomic_store_entry;
 141   static address _atomic_store_ptr_entry;
 142   static address _atomic_cmpxchg_entry;
 143   static address _atomic_cmpxchg_ptr_entry;




  82 // Scheme for adding a new entry point:
  83 //
  84 // 1. determine if it's a platform-dependent or independent entry point
  85 //    a) if platform independent: make subsequent changes in the independent files
  86 //    b) if platform   dependent: make subsequent changes in the   dependent files
  87 // 2. add a private instance variable holding the entry point address
  88 // 3. add a public accessor function to the instance variable
  89 // 4. implement the corresponding generator function in the platform-dependent
  90 //    stubGenerator_<arch>.cpp file and call the function in generate_all() of that file
  91 
  92 
  93 class StubRoutines: AllStatic {
  94 
  95  public:
  96   enum platform_independent_constants {
  97     max_size_of_parameters = 256                           // max. parameter size supported by megamorphic lookups
  98   };
  99 
 100   // Dependencies
 101   friend class StubGenerator;
 102 #if defined STUBROUTINES_MD_HPP
 103 # include STUBROUTINES_MD_HPP
 104 #elif defined TARGET_ARCH_MODEL_x86_32
 105 # include "stubRoutines_x86_32.hpp"
 106 #elif defined TARGET_ARCH_MODEL_x86_64

 107 # include "stubRoutines_x86_64.hpp"
 108 #elif defined TARGET_ARCH_MODEL_sparc

 109 # include "stubRoutines_sparc.hpp"
 110 #elif defined TARGET_ARCH_MODEL_zero

 111 # include "stubRoutines_zero.hpp"
 112 #elif defined TARGET_ARCH_MODEL_ppc_64







 113 # include "stubRoutines_ppc_64.hpp"
 114 #endif

 115 
 116   static jint    _verify_oop_count;
 117   static address _verify_oop_subroutine_entry;
 118 
 119   static address _call_stub_return_address;                // the return PC, when returning to a call stub
 120   static address _call_stub_entry;
 121   static address _forward_exception_entry;
 122   static address _catch_exception_entry;
 123   static address _throw_AbstractMethodError_entry;
 124   static address _throw_IncompatibleClassChangeError_entry;
 125   static address _throw_NullPointerException_at_call_entry;
 126   static address _throw_StackOverflowError_entry;
 127   static address _handler_for_unsafe_access_entry;
 128 
 129   static address _atomic_xchg_entry;
 130   static address _atomic_xchg_ptr_entry;
 131   static address _atomic_store_entry;
 132   static address _atomic_store_ptr_entry;
 133   static address _atomic_cmpxchg_entry;
 134   static address _atomic_cmpxchg_ptr_entry;


< prev index next >