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 |