< prev index next >

src/hotspot/share/runtime/stubDeclarations.hpp

Print this page

 150 // and require access to TLS and the return pc. jvmti stubs always
 151 // employ jump 0, and require no special access
 152 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)                   \
 153   do_blob(uncommon_trap, UncommonTrapBlob*)                            \
 154   do_blob(exception, ExceptionBlob*)                                   \
 155   do_stub(new_instance, 0, true, false)                                \
 156   do_stub(new_array, 0, true, false)                                   \
 157   do_stub(new_array_nozero, 0, true, false)                            \
 158   do_stub(multianewarray2, 0, true, false)                             \
 159   do_stub(multianewarray3, 0, true, false)                             \
 160   do_stub(multianewarray4, 0, true, false)                             \
 161   do_stub(multianewarray5, 0, true, false)                             \
 162   do_stub(multianewarrayN, 0, true, false)                             \
 163   C2_JVMTI_STUBS_DO(do_jvmti_stub)                                     \
 164   do_stub(complete_monitor_locking, 0, false, false)                   \
 165   do_stub(monitor_notify, 0, false, false)                             \
 166   do_stub(monitor_notifyAll, 0, false, false)                          \
 167   do_stub(rethrow, 2, true, true)                                      \
 168   do_stub(slow_arraycopy, 0, false, false)                             \
 169   do_stub(register_finalizer, 0, false, false)                         \

 170 
 171 #else
 172 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)
 173 #endif
 174 
 175 // Stub Generator Blobs and Stubs Overview
 176 //
 177 // StubGenerator stubs do not require their own individual blob. They
 178 // are generated in batches into one of four distinct BufferBlobs:
 179 //
 180 // 1) Initial stubs
 181 // 2) Continuation stubs
 182 // 3) Compiler stubs
 183 // 4) Final stubs
 184 //
 185 // Creation of each successive BufferBlobs is staged to ensure that
 186 // specific VM subsystems required by those stubs are suitably
 187 // initialized before generated code attempt to reference data or
 188 // addresses exported by those subsystems. The sequencing of
 189 // initialization must be taken into account when adding a new stub

 150 // and require access to TLS and the return pc. jvmti stubs always
 151 // employ jump 0, and require no special access
 152 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)                   \
 153   do_blob(uncommon_trap, UncommonTrapBlob*)                            \
 154   do_blob(exception, ExceptionBlob*)                                   \
 155   do_stub(new_instance, 0, true, false)                                \
 156   do_stub(new_array, 0, true, false)                                   \
 157   do_stub(new_array_nozero, 0, true, false)                            \
 158   do_stub(multianewarray2, 0, true, false)                             \
 159   do_stub(multianewarray3, 0, true, false)                             \
 160   do_stub(multianewarray4, 0, true, false)                             \
 161   do_stub(multianewarray5, 0, true, false)                             \
 162   do_stub(multianewarrayN, 0, true, false)                             \
 163   C2_JVMTI_STUBS_DO(do_jvmti_stub)                                     \
 164   do_stub(complete_monitor_locking, 0, false, false)                   \
 165   do_stub(monitor_notify, 0, false, false)                             \
 166   do_stub(monitor_notifyAll, 0, false, false)                          \
 167   do_stub(rethrow, 2, true, true)                                      \
 168   do_stub(slow_arraycopy, 0, false, false)                             \
 169   do_stub(register_finalizer, 0, false, false)                         \
 170   do_stub(class_init_barrier, 0, false, false)                         \
 171 
 172 #else
 173 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)
 174 #endif
 175 
 176 // Stub Generator Blobs and Stubs Overview
 177 //
 178 // StubGenerator stubs do not require their own individual blob. They
 179 // are generated in batches into one of four distinct BufferBlobs:
 180 //
 181 // 1) Initial stubs
 182 // 2) Continuation stubs
 183 // 3) Compiler stubs
 184 // 4) Final stubs
 185 //
 186 // Creation of each successive BufferBlobs is staged to ensure that
 187 // specific VM subsystems required by those stubs are suitably
 188 // initialized before generated code attempt to reference data or
 189 // addresses exported by those subsystems. The sequencing of
 190 // initialization must be taken into account when adding a new stub
< prev index next >