hotspot/src/share/vm/opto/regalloc.cpp
changeset 22853 308672304981
parent 15241 87d217c2d183
child 22872 b6902ee5bc8d
--- a/hotspot/src/share/vm/opto/regalloc.cpp	Thu Nov 21 18:29:34 2013 -0800
+++ b/hotspot/src/share/vm/opto/regalloc.cpp	Thu Nov 21 19:00:57 2013 -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 );
 }