< prev index next >
src/hotspot/cpu/s390/templateTable_s390.cpp
Print this page
*** 3616,3630 ****
receiver, flags);
// Z_R14 (== Z_bytecode) : return entry
// Check for private method invocation - indicated by vfinal
! Label notVFinal;
__ testbit(flags, ConstantPoolCacheEntry::is_vfinal_shift);
__ z_brz(notVFinal);
! __ null_check(receiver);
__ profile_final_call(Z_tmp_2);
__ profile_arguments_type(Z_tmp_2, method, Z_ARG5, true);
__ jump_from_interpreted(method, Z_tmp_2);
--- 3616,3640 ----
receiver, flags);
// Z_R14 (== Z_bytecode) : return entry
// Check for private method invocation - indicated by vfinal
! NearLabel notVFinal;
__ testbit(flags, ConstantPoolCacheEntry::is_vfinal_shift);
__ z_brz(notVFinal);
! // Get receiver klass into klass - also a null check.
! __ load_klass(klass, receiver);
!
! NearLabel subtype, no_such_interface;
!
! __ check_klass_subtype(klass, interface, Z_tmp_2, Z_temp_3, subtype);
! // If we get here the typecheck failed
! __ z_bru(no_such_interface);
! __ bind(subtype);
!
! // do the call
__ profile_final_call(Z_tmp_2);
__ profile_arguments_type(Z_tmp_2, method, Z_ARG5, true);
__ jump_from_interpreted(method, Z_tmp_2);
*** 3632,3642 ****
// Special case of invokeinterface called for virtual method of
// java.lang.Object. See cpCacheOop.cpp for details.
// This code isn't produced by javac, but could be produced by
// another compliant java compiler.
! NearLabel notMethod, no_such_interface, no_such_method;
__ testbit(flags, ConstantPoolCacheEntry::is_forced_virtual_shift);
__ z_brz(notMethod);
invokevirtual_helper(method, receiver, flags);
__ bind(notMethod);
--- 3642,3652 ----
// Special case of invokeinterface called for virtual method of
// java.lang.Object. See cpCacheOop.cpp for details.
// This code isn't produced by javac, but could be produced by
// another compliant java compiler.
! NearLabel notMethod, no_such_method;
__ testbit(flags, ConstantPoolCacheEntry::is_forced_virtual_shift);
__ z_brz(notMethod);
invokevirtual_helper(method, receiver, flags);
__ bind(notMethod);
< prev index next >