--- a/hotspot/src/share/vm/opto/callnode.cpp Wed Jan 08 11:24:00 2014 -0800
+++ b/hotspot/src/share/vm/opto/callnode.cpp Fri Dec 20 13:51:14 2013 +0100
@@ -595,6 +595,18 @@
}
}
+// Adapt offsets in in-array after adding or removing an edge.
+// Prerequisite is that the JVMState is used by only one node.
+void JVMState::adapt_position(int delta) {
+ for (JVMState* jvms = this; jvms != NULL; jvms = jvms->caller()) {
+ jvms->set_locoff(jvms->locoff() + delta);
+ jvms->set_stkoff(jvms->stkoff() + delta);
+ jvms->set_monoff(jvms->monoff() + delta);
+ jvms->set_scloff(jvms->scloff() + delta);
+ jvms->set_endoff(jvms->endoff() + delta);
+ }
+}
+
//=============================================================================
uint CallNode::cmp( const Node &n ) const
{ return _tf == ((CallNode&)n)._tf && _jvms == ((CallNode&)n)._jvms; }