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