hotspot/src/cpu/ppc/vm/methodHandles_ppc.cpp
changeset 46505 fd4bc78630b1
parent 46329 53ccc37bda19
child 46560 388aa8d67c80
equal deleted inserted replaced
46504:38048d4d20e7 46505:fd4bc78630b1
   172   __ verify_oop(recv);
   172   __ verify_oop(recv);
   173   __ load_heap_oop_not_null(method_temp, NONZERO(java_lang_invoke_MethodHandle::form_offset_in_bytes()), recv, temp2);
   173   __ load_heap_oop_not_null(method_temp, NONZERO(java_lang_invoke_MethodHandle::form_offset_in_bytes()), recv, temp2);
   174   __ verify_oop(method_temp);
   174   __ verify_oop(method_temp);
   175   __ load_heap_oop_not_null(method_temp, NONZERO(java_lang_invoke_LambdaForm::vmentry_offset_in_bytes()), method_temp, temp2);
   175   __ load_heap_oop_not_null(method_temp, NONZERO(java_lang_invoke_LambdaForm::vmentry_offset_in_bytes()), method_temp, temp2);
   176   __ verify_oop(method_temp);
   176   __ verify_oop(method_temp);
   177   // The following assumes that a Method* is normally compressed in the vmtarget field:
   177   __ load_heap_oop_not_null(method_temp, NONZERO(java_lang_invoke_MemberName::method_offset_in_bytes()), method_temp);
   178   __ ld(method_temp, NONZERO(java_lang_invoke_MemberName::vmtarget_offset_in_bytes()), method_temp);
   178   __ verify_oop(method_temp);
       
   179   __ ld(method_temp, NONZERO(java_lang_invoke_ResolvedMethodName::vmtarget_offset_in_bytes()), method_temp);
   179 
   180 
   180   if (VerifyMethodHandles && !for_compiler_entry) {
   181   if (VerifyMethodHandles && !for_compiler_entry) {
   181     // Make sure recv is already on stack.
   182     // Make sure recv is already on stack.
   182     __ ld(temp2, in_bytes(Method::const_offset()), method_temp);
   183     __ ld(temp2, in_bytes(Method::const_offset()), method_temp);
   183     __ load_sized_value(temp2, in_bytes(ConstMethod::size_of_parameters_offset()), temp2,
   184     __ load_sized_value(temp2, in_bytes(ConstMethod::size_of_parameters_offset()), temp2,
   359     switch (iid) {
   360     switch (iid) {
   360     case vmIntrinsics::_linkToSpecial:
   361     case vmIntrinsics::_linkToSpecial:
   361       if (VerifyMethodHandles) {
   362       if (VerifyMethodHandles) {
   362         verify_ref_kind(_masm, JVM_REF_invokeSpecial, member_reg, temp2);
   363         verify_ref_kind(_masm, JVM_REF_invokeSpecial, member_reg, temp2);
   363       }
   364       }
   364       __ ld(R19_method, NONZERO(java_lang_invoke_MemberName::vmtarget_offset_in_bytes()), member_reg);
   365       __ load_heap_oop(member_reg, NONZERO(java_lang_invoke_MemberName::method_offset_in_bytes()), member_reg);
       
   366       __ ld(R19_method, NONZERO(java_lang_invoke_ResolvedMethodName::vmtarget_offset_in_bytes()), member_reg);
   365       break;
   367       break;
   366 
   368 
   367     case vmIntrinsics::_linkToStatic:
   369     case vmIntrinsics::_linkToStatic:
   368       if (VerifyMethodHandles) {
   370       if (VerifyMethodHandles) {
   369         verify_ref_kind(_masm, JVM_REF_invokeStatic, member_reg, temp2);
   371         verify_ref_kind(_masm, JVM_REF_invokeStatic, member_reg, temp2);
   370       }
   372       }
   371       __ ld(R19_method, NONZERO(java_lang_invoke_MemberName::vmtarget_offset_in_bytes()), member_reg);
   373       __ load_heap_oop(member_reg, NONZERO(java_lang_invoke_MemberName::method_offset_in_bytes()), member_reg);
       
   374       __ ld(R19_method, NONZERO(java_lang_invoke_ResolvedMethodName::vmtarget_offset_in_bytes()), member_reg);
   372       break;
   375       break;
   373 
   376 
   374     case vmIntrinsics::_linkToVirtual:
   377     case vmIntrinsics::_linkToVirtual:
   375     {
   378     {
   376       // same as TemplateTable::invokevirtual,
   379       // same as TemplateTable::invokevirtual,