src/share/vm/adlc/formssel.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/adlc/formssel.cpp Fri Jul 15 18:49:50 2011
--- new/src/share/vm/adlc/formssel.cpp Fri Jul 15 18:49:50 2011
*** 3621,3631 ****
--- 3621,3651 ----
// Check that the current operands/operations match
assert( _opType, "Must have _opType");
assert( mNode2->_opType, "Must have _opType");
const Form *form = globals[_opType];
const Form *form2 = globals[mNode2->_opType];
return (form == form2);
+ if( form != form2 ) {
+ return false;
+ }
+
+ // Check that their children also match
+ if (_lChild ) {
+ if( !_lChild->equivalent(globals, mNode2->_lChild) )
+ return false;
+ } else if (mNode2->_lChild) {
+ return false; // I have NULL left child, mNode2 has non-NULL left child.
+ }
+
+ if (_rChild ) {
+ if( !_rChild->equivalent(globals, mNode2->_rChild) )
+ return false;
+ } else if (mNode2->_rChild) {
+ return false; // I have NULL right child, mNode2 has non-NULL right child.
+ }
+
+ // We've made it through the gauntlet.
+ return true;
}
//-------------------------- has_commutative_op -------------------------------
// Recursively check for commutative operations with subtree operands
// which could be swapped.
src/share/vm/adlc/formssel.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File