--- a/hotspot/src/cpu/ppc/vm/c1_LIRAssembler_ppc.cpp Thu Jun 02 09:44:41 2016 +0200
+++ b/hotspot/src/cpu/ppc/vm/c1_LIRAssembler_ppc.cpp Fri May 13 15:22:48 2016 +0200
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016 SAP SE. 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
@@ -1242,7 +1242,7 @@
void LIR_Assembler::return_op(LIR_Opr result) {
- const Register return_pc = R11;
+ const Register return_pc = R31; // Must survive C-call to enable_stack_reserved_zone().
const Register polling_page = R12;
// Pop the stack before the safepoint code.
@@ -1265,6 +1265,10 @@
// Move return pc to LR.
__ mtlr(return_pc);
+ if (StackReservedPages > 0 && compilation()->has_reserved_stack_access()) {
+ __ reserved_stack_check(return_pc);
+ }
+
// We need to mark the code position where the load from the safepoint
// polling page was emitted as relocInfo::poll_return_type here.
__ relocate(relocInfo::poll_return_type);