hotspot/src/share/vm/adlc/formssel.cpp
changeset 33628 09241459a8b8
parent 33469 30f4811eded0
child 35125 6982b109eeee
equal deleted inserted replaced
33627:c5b7455f846e 33628:09241459a8b8
   605   // but writes none
   605   // but writes none
   606   if( _matrule && _matrule->_rChild &&
   606   if( _matrule && _matrule->_rChild &&
   607       ( strcmp(_matrule->_rChild->_opType,"StrComp"    )==0 ||
   607       ( strcmp(_matrule->_rChild->_opType,"StrComp"    )==0 ||
   608         strcmp(_matrule->_rChild->_opType,"StrEquals"  )==0 ||
   608         strcmp(_matrule->_rChild->_opType,"StrEquals"  )==0 ||
   609         strcmp(_matrule->_rChild->_opType,"StrIndexOf" )==0 ||
   609         strcmp(_matrule->_rChild->_opType,"StrIndexOf" )==0 ||
       
   610         strcmp(_matrule->_rChild->_opType,"StrIndexOfChar" )==0 ||
       
   611         strcmp(_matrule->_rChild->_opType,"HasNegatives" )==0 ||
   610         strcmp(_matrule->_rChild->_opType,"AryEq"      )==0 ))
   612         strcmp(_matrule->_rChild->_opType,"AryEq"      )==0 ))
   611     return true;
   613     return true;
   612 
   614 
   613   // Check if instruction has a USE of a memory operand class, but no defs
   615   // Check if instruction has a USE of a memory operand class, but no defs
   614   bool USE_of_memory  = false;
   616   bool USE_of_memory  = false;
   885 
   887 
   886   if( _matrule->_rChild &&
   888   if( _matrule->_rChild &&
   887       ( strcmp(_matrule->_rChild->_opType,"AryEq"     )==0 ||
   889       ( strcmp(_matrule->_rChild->_opType,"AryEq"     )==0 ||
   888         strcmp(_matrule->_rChild->_opType,"StrComp"   )==0 ||
   890         strcmp(_matrule->_rChild->_opType,"StrComp"   )==0 ||
   889         strcmp(_matrule->_rChild->_opType,"StrEquals" )==0 ||
   891         strcmp(_matrule->_rChild->_opType,"StrEquals" )==0 ||
       
   892         strcmp(_matrule->_rChild->_opType,"StrInflatedCopy"   )==0 ||
       
   893         strcmp(_matrule->_rChild->_opType,"StrCompressedCopy" )==0 ||
   890         strcmp(_matrule->_rChild->_opType,"StrIndexOf")==0 ||
   894         strcmp(_matrule->_rChild->_opType,"StrIndexOf")==0 ||
       
   895         strcmp(_matrule->_rChild->_opType,"StrIndexOfChar")==0 ||
       
   896         strcmp(_matrule->_rChild->_opType,"HasNegatives")==0 ||
   891         strcmp(_matrule->_rChild->_opType,"EncodeISOArray")==0)) {
   897         strcmp(_matrule->_rChild->_opType,"EncodeISOArray")==0)) {
   892         // String.(compareTo/equals/indexOf) and Arrays.equals
   898         // String.(compareTo/equals/indexOf) and Arrays.equals
   893         // and sun.nio.cs.iso8859_1$Encoder.EncodeISOArray
   899         // and sun.nio.cs.iso8859_1$Encoder.EncodeISOArray
   894         // take 1 control and 1 memory edges.
   900         // take 1 control and 1 memory edges.
       
   901         // Also String.(compressedCopy/inflatedCopy).
   895     return 2;
   902     return 2;
   896   }
   903   }
   897 
   904 
   898   // Check for handling of 'Memory' input/edge in the ideal world.
   905   // Check for handling of 'Memory' input/edge in the ideal world.
   899   // The AD file writer is shielded from knowledge of these edges.
   906   // The AD file writer is shielded from knowledge of these edges.