142 gen(env, _complete_monitor_locking_Java , complete_monitor_enter_Type , SharedRuntime::complete_monitor_locking_C, 0, false, false, false);
143 gen(env, _monitor_notify_Java , monitor_notify_Type , monitor_notify_C , 0 , false, false, false);
144 gen(env, _monitor_notifyAll_Java , monitor_notify_Type , monitor_notifyAll_C , 0 , false, false, false);
145 gen(env, _rethrow_Java , rethrow_Type , rethrow_C , 2 , true , false, true );
146
147 gen(env, _slow_arraycopy_Java , slow_arraycopy_Type , SharedRuntime::slow_arraycopy_C , 0 , false, false, false);
148 gen(env, _register_finalizer_Java , register_finalizer_Type , register_finalizer , 0 , false, false, false);
149
150 return true;
151 }
152
153 #undef gen
154
155
156 // Helper method to do generation of RunTimeStub's
157 address OptoRuntime::generate_stub( ciEnv* env,
158 TypeFunc_generator gen, address C_function,
159 const char *name, int is_fancy_jump,
160 bool pass_tls,
161 bool save_argument_registers,
162 bool return_pc ) {
163 ResourceMark rm;
164 Compile C( env, gen, C_function, name, is_fancy_jump, pass_tls, save_argument_registers, return_pc );
165 return C.stub_entry_point();
166 }
167
168 const char* OptoRuntime::stub_name(address entry) {
169 #ifndef PRODUCT
170 CodeBlob* cb = CodeCache::find_blob(entry);
171 RuntimeStub* rs =(RuntimeStub *)cb;
172 assert(rs != NULL && rs->is_runtime_stub(), "not a runtime stub");
173 return rs->name();
174 #else
175 // Fast implementation for product mode (maybe it should be inlined too)
176 return "runtime stub";
177 #endif
178 }
179
180
181 //=============================================================================
182 // Opto compiler runtime routines
183 //=============================================================================
184
|
142 gen(env, _complete_monitor_locking_Java , complete_monitor_enter_Type , SharedRuntime::complete_monitor_locking_C, 0, false, false, false);
143 gen(env, _monitor_notify_Java , monitor_notify_Type , monitor_notify_C , 0 , false, false, false);
144 gen(env, _monitor_notifyAll_Java , monitor_notify_Type , monitor_notifyAll_C , 0 , false, false, false);
145 gen(env, _rethrow_Java , rethrow_Type , rethrow_C , 2 , true , false, true );
146
147 gen(env, _slow_arraycopy_Java , slow_arraycopy_Type , SharedRuntime::slow_arraycopy_C , 0 , false, false, false);
148 gen(env, _register_finalizer_Java , register_finalizer_Type , register_finalizer , 0 , false, false, false);
149
150 return true;
151 }
152
153 #undef gen
154
155
156 // Helper method to do generation of RunTimeStub's
157 address OptoRuntime::generate_stub( ciEnv* env,
158 TypeFunc_generator gen, address C_function,
159 const char *name, int is_fancy_jump,
160 bool pass_tls,
161 bool save_argument_registers,
162 bool return_pc) {
163
164 // Matching the default directive, we currently have no method to match.
165 DirectiveSet* directive = DirectivesStack::getDefaultDirective(CompileBroker::compiler(CompLevel_full_optimization));
166 ResourceMark rm;
167 Compile C( env, gen, C_function, name, is_fancy_jump, pass_tls, save_argument_registers, return_pc, directive);
168 DirectivesStack::release(directive);
169 return C.stub_entry_point();
170 }
171
172 const char* OptoRuntime::stub_name(address entry) {
173 #ifndef PRODUCT
174 CodeBlob* cb = CodeCache::find_blob(entry);
175 RuntimeStub* rs =(RuntimeStub *)cb;
176 assert(rs != NULL && rs->is_runtime_stub(), "not a runtime stub");
177 return rs->name();
178 #else
179 // Fast implementation for product mode (maybe it should be inlined too)
180 return "runtime stub";
181 #endif
182 }
183
184
185 //=============================================================================
186 // Opto compiler runtime routines
187 //=============================================================================
188
|