hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp
changeset 35166 23125410af16
parent 34651 07b1cc0f6040
child 35214 d86005e0b4c2
equal deleted inserted replaced
35165:7f80c81ddb05 35166:23125410af16
   455   __ restore_LR_CR(R0);
   455   __ restore_LR_CR(R0);
   456 
   456 
   457   // Reset JavaFrameAnchor from call_VM_leaf above.
   457   // Reset JavaFrameAnchor from call_VM_leaf above.
   458   __ reset_last_Java_frame();
   458   __ reset_last_Java_frame();
   459 
   459 
   460 #ifdef CC_INTERP
       
   461   // Return to frame manager, it will handle the pending exception.
       
   462   __ blr();
       
   463 #else
       
   464   // We don't know our caller, so jump to the general forward exception stub,
   460   // We don't know our caller, so jump to the general forward exception stub,
   465   // which will also pop our full frame off. Satisfy the interface of
   461   // which will also pop our full frame off. Satisfy the interface of
   466   // SharedRuntime::generate_forward_exception()
   462   // SharedRuntime::generate_forward_exception()
   467   __ load_const_optimized(R11_scratch1, StubRoutines::forward_exception_entry(), R0);
   463   __ load_const_optimized(R11_scratch1, StubRoutines::forward_exception_entry(), R0);
   468   __ mtctr(R11_scratch1);
   464   __ mtctr(R11_scratch1);
   469   __ bctr();
   465   __ bctr();
   470 #endif
       
   471 
   466 
   472   return entry;
   467   return entry;
   473 }
   468 }
   474 
   469 
   475 // Interpreter intrinsic for WeakReference.get().
   470 // Interpreter intrinsic for WeakReference.get().
   516 
   511 
   517     // In the G1 code we don't check if we need to reach a safepoint. We
   512     // In the G1 code we don't check if we need to reach a safepoint. We
   518     // continue and the thread will safepoint at the next bytecode dispatch.
   513     // continue and the thread will safepoint at the next bytecode dispatch.
   519 
   514 
   520     // If the receiver is null then it is OK to jump to the slow path.
   515     // If the receiver is null then it is OK to jump to the slow path.
   521     __ ld(R3_RET, Interpreter::stackElementSize, CC_INTERP_ONLY(R17_tos) NOT_CC_INTERP(R15_esp)); // get receiver
   516     __ ld(R3_RET, Interpreter::stackElementSize, R15_esp); // get receiver
   522 
   517 
   523     // Check if receiver == NULL and go the slow path.
   518     // Check if receiver == NULL and go the slow path.
   524     __ cmpdi(CCR0, R3_RET, 0);
   519     __ cmpdi(CCR0, R3_RET, 0);
   525     __ beq(CCR0, slow_path);
   520     __ beq(CCR0, slow_path);
   526 
   521