Skip to content

Commit a19314b

Browse files
committed
8326101: [PPC64] Need to bailout cleanly if creation of stubs fails when code cache is out of space
Reviewed-by: rrich, mbaesken
1 parent f6d7e30 commit a19314b

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,9 @@ void ArrayCopyStub::emit_code(LIR_Assembler* ce) {
456456
__ extsw(R7_ARG5, length()->as_register());
457457

458458
ce->emit_static_call_stub();
459+
if (ce->compilation()->bailed_out()) {
460+
return; // CodeCache is full
461+
}
459462

460463
bool success = ce->emit_trampoline_stub_for_call(SharedRuntime::get_resolve_static_call_stub());
461464
if (!success) { return; }

src/hotspot/cpu/ppc/ppc.ad

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2027,7 +2027,10 @@ int HandlerImpl::emit_exception_handler(CodeBuffer &cbuf) {
20272027
C2_MacroAssembler _masm(&cbuf);
20282028

20292029
address base = __ start_a_stub(size_exception_handler());
2030-
if (base == nullptr) return 0; // CodeBuffer::expand failed
2030+
if (base == nullptr) {
2031+
ciEnv::current()->record_failure("CodeCache is full");
2032+
return 0; // CodeBuffer::expand failed
2033+
}
20312034

20322035
int offset = __ offset();
20332036
__ b64_patchable((address)OptoRuntime::exception_blob()->content_begin(),
@@ -2044,7 +2047,10 @@ int HandlerImpl::emit_deopt_handler(CodeBuffer& cbuf) {
20442047
C2_MacroAssembler _masm(&cbuf);
20452048

20462049
address base = __ start_a_stub(size_deopt_handler());
2047-
if (base == nullptr) return 0; // CodeBuffer::expand failed
2050+
if (base == nullptr) {
2051+
ciEnv::current()->record_failure("CodeCache is full");
2052+
return 0; // CodeBuffer::expand failed
2053+
}
20482054

20492055
int offset = __ offset();
20502056
__ bl64_patchable((address)SharedRuntime::deopt_blob()->unpack(),

0 commit comments

Comments
 (0)