< prev index next >

src/hotspot/share/runtime/stubDeclarations.hpp

Print this page

 118 // generated via this macro.
 119 
 120 #ifdef COMPILER1
 121 // client macro to operate on c1 stubs
 122 //
 123 // do_blob(name)
 124 #define C1_STUBS_DO(do_blob)                                           \
 125   do_blob(dtrace_object_alloc)                                         \
 126   do_blob(unwind_exception)                                            \
 127   do_blob(forward_exception)                                           \
 128   do_blob(throw_range_check_failed)       /* throws ArrayIndexOutOfBoundsException */ \
 129   do_blob(throw_index_exception)          /* throws IndexOutOfBoundsException */ \
 130   do_blob(throw_div0_exception)                                        \
 131   do_blob(throw_null_pointer_exception)                                \
 132   do_blob(register_finalizer)                                          \
 133   do_blob(new_instance)                                                \
 134   do_blob(fast_new_instance)                                           \
 135   do_blob(fast_new_instance_init_check)                                \
 136   do_blob(new_type_array)                                              \
 137   do_blob(new_object_array)                                            \

 138   do_blob(new_multi_array)                                             \





 139   do_blob(handle_exception_nofpu)         /* optimized version that does not preserve fpu registers */ \
 140   do_blob(handle_exception)                                            \
 141   do_blob(handle_exception_from_callee)                                \
 142   do_blob(throw_array_store_exception)                                 \
 143   do_blob(throw_class_cast_exception)                                  \
 144   do_blob(throw_incompatible_class_change_error)                       \


 145   do_blob(slow_subtype_check)                                          \
 146   do_blob(is_instance_of)                                              \
 147   do_blob(monitorenter)                                                \
 148   do_blob(monitorenter_nofpu)             /* optimized version that does not preserve fpu registers */ \
 149   do_blob(monitorexit)                                                 \
 150   do_blob(monitorexit_nofpu)              /* optimized version that does not preserve fpu registers */ \
 151   do_blob(deoptimize)                                                  \
 152   do_blob(access_field_patching)                                       \
 153   do_blob(load_klass_patching)                                         \
 154   do_blob(load_mirror_patching)                                        \
 155   do_blob(load_appendix_patching)                                      \
 156   do_blob(fpu2long_stub)                                               \
 157   do_blob(counter_overflow)                                            \
 158   do_blob(predicate_failed_trap)                                       \
 159 
 160 #else
 161 #define C1_STUBS_DO(do_blob)
 162 #endif
 163 
 164 // C2 stub declarations

 229 // employs jump 0, and requires no special access
 230 
 231 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)                   \
 232   do_blob(uncommon_trap, UncommonTrapBlob)                             \
 233   do_blob(exception, ExceptionBlob)                                    \
 234   do_stub(new_instance, 0, true, false)                                \
 235   do_stub(new_array, 0, true, false)                                   \
 236   do_stub(new_array_nozero, 0, true, false)                            \
 237   do_stub(multianewarray2, 0, true, false)                             \
 238   do_stub(multianewarray3, 0, true, false)                             \
 239   do_stub(multianewarray4, 0, true, false)                             \
 240   do_stub(multianewarray5, 0, true, false)                             \
 241   do_stub(multianewarrayN, 0, true, false)                             \
 242   C2_JVMTI_STUBS_DO(do_jvmti_stub)                                     \
 243   do_stub(complete_monitor_locking, 0, false, false)                   \
 244   do_stub(monitor_notify, 0, false, false)                             \
 245   do_stub(monitor_notifyAll, 0, false, false)                          \
 246   do_stub(rethrow, 2, true, true)                                      \
 247   do_stub(slow_arraycopy, 0, false, false)                             \
 248   do_stub(register_finalizer, 0, false, false)                         \


 249 
 250 #else
 251 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)
 252 #endif
 253 
 254 // Stubgen stub declarations
 255 //
 256 // Stub Generator Blobs, Stubs and Entries Overview
 257 //
 258 // StubGenerator stubs do not require their own individual blob. They
 259 // are generated in batches into one of five distinct BufferBlobs:
 260 //
 261 // 1) PreUniverse stubs
 262 // 2) Initial stubs
 263 // 3) Continuation stubs
 264 // 4) Compiler stubs
 265 // 5) Final stubs
 266 //
 267 // Most StubGen stubs have a single entry point. However, in some
 268 // cases there are additional entry points.

 118 // generated via this macro.
 119 
 120 #ifdef COMPILER1
 121 // client macro to operate on c1 stubs
 122 //
 123 // do_blob(name)
 124 #define C1_STUBS_DO(do_blob)                                           \
 125   do_blob(dtrace_object_alloc)                                         \
 126   do_blob(unwind_exception)                                            \
 127   do_blob(forward_exception)                                           \
 128   do_blob(throw_range_check_failed)       /* throws ArrayIndexOutOfBoundsException */ \
 129   do_blob(throw_index_exception)          /* throws IndexOutOfBoundsException */ \
 130   do_blob(throw_div0_exception)                                        \
 131   do_blob(throw_null_pointer_exception)                                \
 132   do_blob(register_finalizer)                                          \
 133   do_blob(new_instance)                                                \
 134   do_blob(fast_new_instance)                                           \
 135   do_blob(fast_new_instance_init_check)                                \
 136   do_blob(new_type_array)                                              \
 137   do_blob(new_object_array)                                            \
 138   do_blob(new_null_free_array)                                         \
 139   do_blob(new_multi_array)                                             \
 140   do_blob(load_flat_array)                                             \
 141   do_blob(store_flat_array)                                            \
 142   do_blob(substitutability_check)                                      \
 143   do_blob(buffer_inline_args)                                          \
 144   do_blob(buffer_inline_args_no_receiver)                              \
 145   do_blob(handle_exception_nofpu)         /* optimized version that does not preserve fpu registers */ \
 146   do_blob(handle_exception)                                            \
 147   do_blob(handle_exception_from_callee)                                \
 148   do_blob(throw_array_store_exception)                                 \
 149   do_blob(throw_class_cast_exception)                                  \
 150   do_blob(throw_incompatible_class_change_error)                       \
 151   do_blob(throw_illegal_monitor_state_exception)                       \
 152   do_blob(throw_identity_exception)                                    \
 153   do_blob(slow_subtype_check)                                          \
 154   do_blob(is_instance_of)                                              \
 155   do_blob(monitorenter)                                                \
 156   do_blob(monitorenter_nofpu)             /* optimized version that does not preserve fpu registers */ \
 157   do_blob(monitorexit)                                                 \
 158   do_blob(monitorexit_nofpu)              /* optimized version that does not preserve fpu registers */ \
 159   do_blob(deoptimize)                                                  \
 160   do_blob(access_field_patching)                                       \
 161   do_blob(load_klass_patching)                                         \
 162   do_blob(load_mirror_patching)                                        \
 163   do_blob(load_appendix_patching)                                      \
 164   do_blob(fpu2long_stub)                                               \
 165   do_blob(counter_overflow)                                            \
 166   do_blob(predicate_failed_trap)                                       \
 167 
 168 #else
 169 #define C1_STUBS_DO(do_blob)
 170 #endif
 171 
 172 // C2 stub declarations

 237 // employs jump 0, and requires no special access
 238 
 239 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)                   \
 240   do_blob(uncommon_trap, UncommonTrapBlob)                             \
 241   do_blob(exception, ExceptionBlob)                                    \
 242   do_stub(new_instance, 0, true, false)                                \
 243   do_stub(new_array, 0, true, false)                                   \
 244   do_stub(new_array_nozero, 0, true, false)                            \
 245   do_stub(multianewarray2, 0, true, false)                             \
 246   do_stub(multianewarray3, 0, true, false)                             \
 247   do_stub(multianewarray4, 0, true, false)                             \
 248   do_stub(multianewarray5, 0, true, false)                             \
 249   do_stub(multianewarrayN, 0, true, false)                             \
 250   C2_JVMTI_STUBS_DO(do_jvmti_stub)                                     \
 251   do_stub(complete_monitor_locking, 0, false, false)                   \
 252   do_stub(monitor_notify, 0, false, false)                             \
 253   do_stub(monitor_notifyAll, 0, false, false)                          \
 254   do_stub(rethrow, 2, true, true)                                      \
 255   do_stub(slow_arraycopy, 0, false, false)                             \
 256   do_stub(register_finalizer, 0, false, false)                         \
 257   do_stub(load_unknown_inline, 0, true, false)                         \
 258   do_stub(store_unknown_inline, 0, true, false)                        \
 259 
 260 #else
 261 #define C2_STUBS_DO(do_blob, do_stub, do_jvmti_stub)
 262 #endif
 263 
 264 // Stubgen stub declarations
 265 //
 266 // Stub Generator Blobs, Stubs and Entries Overview
 267 //
 268 // StubGenerator stubs do not require their own individual blob. They
 269 // are generated in batches into one of five distinct BufferBlobs:
 270 //
 271 // 1) PreUniverse stubs
 272 // 2) Initial stubs
 273 // 3) Continuation stubs
 274 // 4) Compiler stubs
 275 // 5) Final stubs
 276 //
 277 // Most StubGen stubs have a single entry point. However, in some
 278 // cases there are additional entry points.
< prev index next >