diff -r 1ee62412a66f -r 3cf28d630349 hotspot/src/cpu/ppc/vm/c1_LIRAssembler_ppc.cpp --- 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);