src/hotspot/cpu/s390/templateTable_s390.cpp
changeset 49368 2ed1c37df3a5
parent 49359 59f6547e151f
child 49449 ef5d5d343e2a
child 56348 f3b0961adb3c
equal deleted inserted replaced
49366:f95ef5511e1f 49368:2ed1c37df3a5
  3740   __ bind(no_such_method);
  3740   __ bind(no_such_method);
  3741 
  3741 
  3742   // Throw exception.
  3742   // Throw exception.
  3743   __ restore_bcp();      // Bcp must be correct for exception handler   (was destroyed).
  3743   __ restore_bcp();      // Bcp must be correct for exception handler   (was destroyed).
  3744   __ restore_locals();   // Make sure locals pointer is correct as well (was destroyed).
  3744   __ restore_locals();   // Make sure locals pointer is correct as well (was destroyed).
       
  3745   // Pass arguments for generating a verbose error message.
       
  3746   __ z_lgr(Z_tmp_1, method); // Prevent register clash.
  3745   __ call_VM(noreg,
  3747   __ call_VM(noreg,
  3746              CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
  3748              CAST_FROM_FN_PTR(address,
       
  3749                               InterpreterRuntime::throw_AbstractMethodErrorVerbose),
       
  3750                               klass, Z_tmp_1);
  3747   // The call_VM checks for exception, so we should never return here.
  3751   // The call_VM checks for exception, so we should never return here.
  3748   __ should_not_reach_here();
  3752   __ should_not_reach_here();
  3749 
  3753 
  3750   __ bind(no_such_interface);
  3754   __ bind(no_such_interface);
  3751 
  3755 
  3752   // Throw exception.
  3756   // Throw exception.
  3753   __ restore_bcp();      // Bcp must be correct for exception handler   (was destroyed).
  3757   __ restore_bcp();      // Bcp must be correct for exception handler   (was destroyed).
  3754   __ restore_locals();   // Make sure locals pointer is correct as well (was destroyed).
  3758   __ restore_locals();   // Make sure locals pointer is correct as well (was destroyed).
       
  3759   // Pass arguments for generating a verbose error message.
  3755   __ call_VM(noreg,
  3760   __ call_VM(noreg,
  3756              CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_IncompatibleClassChangeError));
  3761              CAST_FROM_FN_PTR(address,
       
  3762                               InterpreterRuntime::throw_IncompatibleClassChangeErrorVerbose),
       
  3763                               klass, interface);
  3757   // The call_VM checks for exception, so we should never return here.
  3764   // The call_VM checks for exception, so we should never return here.
  3758   __ should_not_reach_here();
  3765   __ should_not_reach_here();
  3759 
  3766 
  3760   BLOCK_COMMENT("} invokeinterface");
  3767   BLOCK_COMMENT("} invokeinterface");
  3761   return;
  3768   return;