diff src/cpu/ppc/vm/compiledIC_ppc.cpp @ 24000:c3d0bd36ab28

8130309: Need to bailout cleanly if creation of stubs fails when codecache is out of space Summary: Check for failed expansion of stub section in code buffer and bailout. Reviewed-by: kvn, thartmann
author vkempik
date Thu, 21 Apr 2016 16:19:33 +0300
parents 327e7269f90d
children
line wrap: on
line diff
--- a/src/cpu/ppc/vm/compiledIC_ppc.cpp	Mon Mar 14 12:35:48 2016 +0300
+++ b/src/cpu/ppc/vm/compiledIC_ppc.cpp	Thu Apr 21 16:19:33 2016 +0300
@@ -94,7 +94,7 @@
 
 const int IC_pos_in_java_to_interp_stub = 8;
 #define __ _masm.
-void CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
+address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
 #ifdef COMPILER2
   // Get the mark within main instrs section which is set to the address of the call.
   address call_addr = cbuf.insts_mark();
@@ -106,8 +106,7 @@
   // Start the stub.
   address stub = __ start_a_stub(CompiledStaticCall::to_interp_stub_size());
   if (stub == NULL) {
-    Compile::current()->env()->record_out_of_memory_failure();
-    return;
+    return NULL; // CodeCache is full
   }
 
   // For java_to_interp stubs we use R11_scratch1 as scratch register
@@ -149,6 +148,7 @@
 
  // End the stub.
   __ end_a_stub();
+  return stub;
 #else
   ShouldNotReachHere();
 #endif