hotspot/src/share/vm/opto/regalloc.cpp
changeset 22872 b6902ee5bc8d
parent 22234 da823d78ad65
parent 22853 308672304981
--- a/hotspot/src/share/vm/opto/regalloc.cpp	Tue Jan 28 11:21:43 2014 -0800
+++ b/hotspot/src/share/vm/opto/regalloc.cpp	Tue Jan 28 12:25:34 2014 -0800
@@ -77,7 +77,9 @@
   assert( reg <  _matcher._old_SP ||
           (reg >= OptoReg::add(_matcher._old_SP,C->out_preserve_stack_slots()) &&
            reg <  _matcher._in_arg_limit) ||
-          reg >=  OptoReg::add(_matcher._new_SP,C->out_preserve_stack_slots()),
+          reg >=  OptoReg::add(_matcher._new_SP, C->out_preserve_stack_slots()) ||
+          // Allow return_addr in the out-preserve area.
+          reg == _matcher.return_addr(),
           "register allocated in a preserve area" );
   return reg2offset_unchecked( reg );
 }