--- a/hotspot/src/cpu/ppc/vm/compiledIC_ppc.cpp Fri Dec 04 14:06:38 2015 +0100
+++ b/hotspot/src/cpu/ppc/vm/compiledIC_ppc.cpp Fri Dec 04 16:38:04 2015 +0100
@@ -1,5 +1,6 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012, 2015 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -129,13 +130,20 @@
// - call
__ calculate_address_from_global_toc(reg_scratch, __ method_toc());
AddressLiteral ic = __ allocate_metadata_address((Metadata *)NULL);
- __ load_const_from_method_toc(as_Register(Matcher::inline_cache_reg_encode()), ic, reg_scratch);
+ bool success = __ load_const_from_method_toc(as_Register(Matcher::inline_cache_reg_encode()),
+ ic, reg_scratch, /*fixed_size*/ true);
+ if (!success) {
+ return NULL; // CodeCache is full
+ }
if (ReoptimizeCallSequences) {
__ b64_patchable((address)-1, relocInfo::none);
} else {
AddressLiteral a((address)-1);
- __ load_const_from_method_toc(reg_scratch, a, reg_scratch);
+ success = __ load_const_from_method_toc(reg_scratch, a, reg_scratch, /*fixed_size*/ true);
+ if (!success) {
+ return NULL; // CodeCache is full
+ }
__ mtctr(reg_scratch);
__ bctr();
}
@@ -153,6 +161,7 @@
return stub;
#else
ShouldNotReachHere();
+ return NULL;
#endif
}
#undef __