comparison src/share/vm/classfile/javaClasses.cpp @ 1507:cd5dbf694d45

6939134: JSR 292 adjustments to method handle invocation Summary: split MethodHandle.invoke into invokeExact and invokeGeneric; also clean up JVM-to-Java interfaces Reviewed-by: twisti
author jrose
date Sat, 01 May 2010 02:42:18 -0700
parents 6484c4ee11cb
children c18cbe5936b8
comparison
equal deleted inserted replaced
1506:2338d41fbd81 1507:cd5dbf694d45
2444 } 2444 }
2445 2445
2446 2446
2447 // Support for java_dyn_CallSite 2447 // Support for java_dyn_CallSite
2448 2448
2449 int java_dyn_CallSite::_type_offset;
2450 int java_dyn_CallSite::_target_offset; 2449 int java_dyn_CallSite::_target_offset;
2451 int java_dyn_CallSite::_vmmethod_offset; 2450 int java_dyn_CallSite::_caller_method_offset;
2451 int java_dyn_CallSite::_caller_bci_offset;
2452 2452
2453 void java_dyn_CallSite::compute_offsets() { 2453 void java_dyn_CallSite::compute_offsets() {
2454 if (!EnableInvokeDynamic) return; 2454 if (!EnableInvokeDynamic) return;
2455 klassOop k = SystemDictionary::CallSite_klass(); 2455 klassOop k = SystemDictionary::CallSite_klass();
2456 if (k != NULL) { 2456 if (k != NULL) {
2457 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_dyn_MethodType_signature(), true); 2457 compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature());
2458 compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature(), true); 2458 compute_offset(_caller_method_offset, k, vmSymbols::vmmethod_name(), vmSymbols::sun_dyn_MemberName_signature());
2459 compute_offset(_vmmethod_offset, k, vmSymbols::vmmethod_name(), vmSymbols::object_signature(), true); 2459 compute_offset(_caller_bci_offset, k, vmSymbols::vmindex_name(), vmSymbols::int_signature());
2460 } 2460 }
2461 }
2462
2463 oop java_dyn_CallSite::type(oop site) {
2464 return site->obj_field(_type_offset);
2465 } 2461 }
2466 2462
2467 oop java_dyn_CallSite::target(oop site) { 2463 oop java_dyn_CallSite::target(oop site) {
2468 return site->obj_field(_target_offset); 2464 return site->obj_field(_target_offset);
2469 } 2465 }
2470 2466
2471 void java_dyn_CallSite::set_target(oop site, oop target) { 2467 void java_dyn_CallSite::set_target(oop site, oop target) {
2472 site->obj_field_put(_target_offset, target); 2468 site->obj_field_put(_target_offset, target);
2473 } 2469 }
2474 2470
2475 oop java_dyn_CallSite::vmmethod(oop site) { 2471 oop java_dyn_CallSite::caller_method(oop site) {
2476 return site->obj_field(_vmmethod_offset); 2472 return site->obj_field(_caller_method_offset);
2477 } 2473 }
2478 2474
2479 void java_dyn_CallSite::set_vmmethod(oop site, oop ref) { 2475 void java_dyn_CallSite::set_caller_method(oop site, oop ref) {
2480 site->obj_field_put(_vmmethod_offset, ref); 2476 site->obj_field_put(_caller_method_offset, ref);
2477 }
2478
2479 jint java_dyn_CallSite::caller_bci(oop site) {
2480 return site->int_field(_caller_bci_offset);
2481 }
2482
2483 void java_dyn_CallSite::set_caller_bci(oop site, jint bci) {
2484 site->int_field_put(_caller_bci_offset, bci);
2481 } 2485 }
2482 2486
2483 2487
2484 // Support for java_security_AccessControlContext 2488 // Support for java_security_AccessControlContext
2485 2489