Mercurial > hg > graal-compiler
comparison src/share/vm/code/codeBlob.cpp @ 6266:1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author | twisti |
---|---|
date | Tue, 24 Jul 2012 10:51:00 -0700 |
parents | d2a62e0f25eb |
children | da91efe96a93 8c5333c80cfd |
comparison
equal
deleted
inserted
replaced
6241:aba91a731143 | 6266:1d7922586cf6 |
---|---|
357 return p; | 357 return p; |
358 } | 358 } |
359 | 359 |
360 | 360 |
361 //---------------------------------------------------------------------------------------------------- | 361 //---------------------------------------------------------------------------------------------------- |
362 // Implementation of RicochetBlob | |
363 | |
364 RicochetBlob::RicochetBlob( | |
365 CodeBuffer* cb, | |
366 int size, | |
367 int bounce_offset, | |
368 int exception_offset, | |
369 int frame_size | |
370 ) | |
371 : SingletonBlob("RicochetBlob", cb, sizeof(RicochetBlob), size, frame_size, (OopMapSet*) NULL) | |
372 { | |
373 _bounce_offset = bounce_offset; | |
374 _exception_offset = exception_offset; | |
375 } | |
376 | |
377 | |
378 RicochetBlob* RicochetBlob::create( | |
379 CodeBuffer* cb, | |
380 int bounce_offset, | |
381 int exception_offset, | |
382 int frame_size) | |
383 { | |
384 RicochetBlob* blob = NULL; | |
385 ThreadInVMfromUnknown __tiv; // get to VM state in case we block on CodeCache_lock | |
386 { | |
387 MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); | |
388 unsigned int size = allocation_size(cb, sizeof(RicochetBlob)); | |
389 blob = new (size) RicochetBlob(cb, size, bounce_offset, exception_offset, frame_size); | |
390 } | |
391 | |
392 trace_new_stub(blob, "RicochetBlob"); | |
393 | |
394 return blob; | |
395 } | |
396 | |
397 | |
398 //---------------------------------------------------------------------------------------------------- | |
399 // Implementation of DeoptimizationBlob | 362 // Implementation of DeoptimizationBlob |
400 | 363 |
401 DeoptimizationBlob::DeoptimizationBlob( | 364 DeoptimizationBlob::DeoptimizationBlob( |
402 CodeBuffer* cb, | 365 CodeBuffer* cb, |
403 int size, | 366 int size, |