Mercurial > hg > truffle
comparison src/share/vm/interpreter/rewriter.cpp @ 856:75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
Summary: remove useless lazy evaluation of intrinsics; add LAST_COMPILER_INLINE to help categorize them
Reviewed-by: kvn
author | jrose |
---|---|
date | Tue, 21 Jul 2009 16:56:06 -0700 |
parents | be93aad57795 |
children | 389049f3f393 |
comparison
equal
deleted
inserted
replaced
854:606c988ff684 | 856:75596850f863 |
---|---|
271 | 271 |
272 // determine index maps for methodOop rewriting | 272 // determine index maps for methodOop rewriting |
273 compute_index_maps(); | 273 compute_index_maps(); |
274 | 274 |
275 if (RegisterFinalizersAtInit && _klass->name() == vmSymbols::java_lang_Object()) { | 275 if (RegisterFinalizersAtInit && _klass->name() == vmSymbols::java_lang_Object()) { |
276 bool did_rewrite = false; | |
276 int i = _methods->length(); | 277 int i = _methods->length(); |
277 while (i-- > 0) { | 278 while (i-- > 0) { |
278 methodOop method = (methodOop)_methods->obj_at(i); | 279 methodOop method = (methodOop)_methods->obj_at(i); |
279 if (method->intrinsic_id() == vmIntrinsics::_Object_init) { | 280 if (method->intrinsic_id() == vmIntrinsics::_Object_init) { |
280 // rewrite the return bytecodes of Object.<init> to register the | 281 // rewrite the return bytecodes of Object.<init> to register the |
281 // object for finalization if needed. | 282 // object for finalization if needed. |
282 methodHandle m(THREAD, method); | 283 methodHandle m(THREAD, method); |
283 rewrite_Object_init(m, CHECK); | 284 rewrite_Object_init(m, CHECK); |
285 did_rewrite = true; | |
284 break; | 286 break; |
285 } | 287 } |
286 } | 288 } |
289 assert(did_rewrite, "must find Object::<init> to rewrite it"); | |
287 } | 290 } |
288 | 291 |
289 // rewrite methods, in two passes | 292 // rewrite methods, in two passes |
290 int i, len = _methods->length(); | 293 int i, len = _methods->length(); |
291 | 294 |