Mercurial > hg > truffle
diff src/cpu/x86/vm/vtableStubs_x86_32.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 | f95d63e2154a |
children | da91efe96a93 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/vtableStubs_x86_32.cpp Mon Jul 23 13:04:59 2012 -0700 +++ b/src/cpu/x86/vm/vtableStubs_x86_32.cpp Tue Jul 24 10:51:00 2012 -0700 @@ -76,8 +76,7 @@ // get receiver klass address npe_addr = __ pc(); __ movptr(rax, Address(rcx, oopDesc::klass_offset_in_bytes())); - // compute entry offset (in words) - int entry_offset = instanceKlass::vtable_start_offset() + vtable_index*vtableEntry::size(); + #ifndef PRODUCT if (DebugVtables) { Label L; @@ -93,7 +92,8 @@ const Register method = rbx; // load methodOop and target address - __ movptr(method, Address(rax, entry_offset*wordSize + vtableEntry::method_offset_in_bytes())); + __ lookup_virtual_method(rax, vtable_index, method); + if (DebugVtables) { Label L; __ cmpptr(method, (int32_t)NULL_WORD);