src/share/vm/adlc/formssel.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7201026 Sdiff src/share/vm/adlc

src/share/vm/adlc/formssel.cpp

Print this page




4032 
4033 
4034 Form::DataType MatchRule::is_ideal_load() const {
4035   Form::DataType ideal_load = Form::none;
4036 
4037   if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) {
4038     const char *opType = _rChild->_opType;
4039     ideal_load = is_load_from_memory(opType);
4040   }
4041 
4042   return ideal_load;
4043 }
4044 
4045 bool MatchRule::is_vector() const {
4046   static const char *vector_list[] = {
4047     "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4048     "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4049     "MulVS","MulVI","MulVF","MulVD",
4050     "DivVF","DivVD",
4051     "AndV" ,"XorV" ,"OrV",

4052     "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4053     "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4054     "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4055     "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4056     "LoadVector","StoreVector",
4057     // Next are not supported currently.
4058     "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4059     "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4060   };
4061   int cnt = sizeof(vector_list)/sizeof(char*);
4062   if (_rChild) {
4063     const char  *opType = _rChild->_opType;
4064     for (int i=0; i<cnt; i++)
4065       if (strcmp(opType,vector_list[i]) == 0)
4066         return true;
4067   }
4068   return false;
4069 }
4070 
4071 




4032 
4033 
4034 Form::DataType MatchRule::is_ideal_load() const {
4035   Form::DataType ideal_load = Form::none;
4036 
4037   if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) {
4038     const char *opType = _rChild->_opType;
4039     ideal_load = is_load_from_memory(opType);
4040   }
4041 
4042   return ideal_load;
4043 }
4044 
4045 bool MatchRule::is_vector() const {
4046   static const char *vector_list[] = {
4047     "AddVB","AddVS","AddVI","AddVL","AddVF","AddVD",
4048     "SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
4049     "MulVS","MulVI","MulVF","MulVD",
4050     "DivVF","DivVD",
4051     "AndV" ,"XorV" ,"OrV",
4052     "LShiftCntV","RShiftCntV",
4053     "LShiftVB","LShiftVS","LShiftVI","LShiftVL",
4054     "RShiftVB","RShiftVS","RShiftVI","RShiftVL",
4055     "URShiftVB","URShiftVS","URShiftVI","URShiftVL",
4056     "ReplicateB","ReplicateS","ReplicateI","ReplicateL","ReplicateF","ReplicateD",
4057     "LoadVector","StoreVector",
4058     // Next are not supported currently.
4059     "PackB","PackS","PackI","PackL","PackF","PackD","Pack2L","Pack2D",
4060     "ExtractB","ExtractUB","ExtractC","ExtractS","ExtractI","ExtractL","ExtractF","ExtractD"
4061   };
4062   int cnt = sizeof(vector_list)/sizeof(char*);
4063   if (_rChild) {
4064     const char  *opType = _rChild->_opType;
4065     for (int i=0; i<cnt; i++)
4066       if (strcmp(opType,vector_list[i]) == 0)
4067         return true;
4068   }
4069   return false;
4070 }
4071 
4072 


src/share/vm/adlc/formssel.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File