--- a/hotspot/src/share/vm/opto/graphKit.cpp Wed Apr 22 17:03:18 2009 -0700
+++ b/hotspot/src/share/vm/opto/graphKit.cpp Thu Apr 23 14:04:24 2009 -0700
@@ -2980,6 +2980,7 @@
// See comments on new_instance for the meaning of the other arguments.
Node* GraphKit::new_array(Node* klass_node, // array klass (maybe variable)
Node* length, // number of array elements
+ int nargs, // number of arguments to push back for uncommon trap
bool raw_mem_only, // affect only raw memory
Node* *return_size_val) {
jint layout_con = Klass::_lh_neutral_value;
@@ -2995,6 +2996,7 @@
Node* cmp_lh = _gvn.transform( new(C, 3) CmpINode(layout_val, intcon(layout_con)) );
Node* bol_lh = _gvn.transform( new(C, 2) BoolNode(cmp_lh, BoolTest::eq) );
{ BuildCutout unless(this, bol_lh, PROB_MAX);
+ _sp += nargs;
uncommon_trap(Deoptimization::Reason_class_check,
Deoptimization::Action_maybe_recompile);
}