90 // do_blob(name, type)
91 #define SHARED_STUBS_DO(do_blob) \
92 do_blob(deopt, DeoptimizationBlob) \
93 /* resolve stubs */ \
94 do_blob(wrong_method, RuntimeStub) \
95 do_blob(wrong_method_abstract, RuntimeStub) \
96 do_blob(ic_miss, RuntimeStub) \
97 do_blob(resolve_opt_virtual_call, RuntimeStub) \
98 do_blob(resolve_virtual_call, RuntimeStub) \
99 do_blob(resolve_static_call, RuntimeStub) \
100 /* handler stubs */ \
101 do_blob(polling_page_vectors_safepoint_handler, SafepointBlob) \
102 do_blob(polling_page_safepoint_handler, SafepointBlob) \
103 do_blob(polling_page_return_handler, SafepointBlob) \
104 /* throw stubs */ \
105 do_blob(throw_AbstractMethodError, RuntimeStub) \
106 do_blob(throw_IncompatibleClassChangeError, RuntimeStub) \
107 do_blob(throw_NullPointerException_at_call, RuntimeStub) \
108 do_blob(throw_StackOverflowError, RuntimeStub) \
109 do_blob(throw_delayed_StackOverflowError, RuntimeStub) \
110 /* other stubs */ \
111 SHARED_JFR_STUBS_DO(do_blob) \
112
113 // C1 stub declarations
114 //
115 // C1 stubs are always generated in a unique associated generic
116 // CodeBlob with a single entry. C1 stubs are stored in an array
117 // indexed by local enum. So, no other code elements need to be
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 */ \
|
90 // do_blob(name, type)
91 #define SHARED_STUBS_DO(do_blob) \
92 do_blob(deopt, DeoptimizationBlob) \
93 /* resolve stubs */ \
94 do_blob(wrong_method, RuntimeStub) \
95 do_blob(wrong_method_abstract, RuntimeStub) \
96 do_blob(ic_miss, RuntimeStub) \
97 do_blob(resolve_opt_virtual_call, RuntimeStub) \
98 do_blob(resolve_virtual_call, RuntimeStub) \
99 do_blob(resolve_static_call, RuntimeStub) \
100 /* handler stubs */ \
101 do_blob(polling_page_vectors_safepoint_handler, SafepointBlob) \
102 do_blob(polling_page_safepoint_handler, SafepointBlob) \
103 do_blob(polling_page_return_handler, SafepointBlob) \
104 /* throw stubs */ \
105 do_blob(throw_AbstractMethodError, RuntimeStub) \
106 do_blob(throw_IncompatibleClassChangeError, RuntimeStub) \
107 do_blob(throw_NullPointerException_at_call, RuntimeStub) \
108 do_blob(throw_StackOverflowError, RuntimeStub) \
109 do_blob(throw_delayed_StackOverflowError, RuntimeStub) \
110 /* shenandoah stubs */ \
111 do_blob(shenandoah_keepalive, RuntimeStub) \
112 do_blob(shenandoah_lrb_strong_narrow, RuntimeStub) \
113 do_blob(shenandoah_lrb_weak_narrow, RuntimeStub) \
114 do_blob(shenandoah_lrb_phantom_narrow, RuntimeStub) \
115 do_blob(shenandoah_lrb_strong, RuntimeStub) \
116 do_blob(shenandoah_lrb_weak, RuntimeStub) \
117 do_blob(shenandoah_lrb_phantom, RuntimeStub) \
118 /* other stubs */ \
119 SHARED_JFR_STUBS_DO(do_blob) \
120
121 // C1 stub declarations
122 //
123 // C1 stubs are always generated in a unique associated generic
124 // CodeBlob with a single entry. C1 stubs are stored in an array
125 // indexed by local enum. So, no other code elements need to be
126 // generated via this macro.
127
128 #ifdef COMPILER1
129 // client macro to operate on c1 stubs
130 //
131 // do_blob(name)
132 #define C1_STUBS_DO(do_blob) \
133 do_blob(dtrace_object_alloc) \
134 do_blob(unwind_exception) \
135 do_blob(forward_exception) \
136 do_blob(throw_range_check_failed) /* throws ArrayIndexOutOfBoundsException */ \
137 do_blob(throw_index_exception) /* throws IndexOutOfBoundsException */ \
|