865 |
865 |
866 // Lookup this result operand and get its register class |
866 // Lookup this result operand and get its register class |
867 Form *form = (Form*)_globalNames[result]; |
867 Form *form = (Form*)_globalNames[result]; |
868 assert( form, "Result operand must be defined"); |
868 assert( form, "Result operand must be defined"); |
869 OperandForm *oper = form->is_operand(); |
869 OperandForm *oper = form->is_operand(); |
|
870 if (oper == NULL) form->dump(); |
870 assert( oper, "Result must be an OperandForm"); |
871 assert( oper, "Result must be an OperandForm"); |
871 return reg_mask( *oper ); |
872 return reg_mask( *oper ); |
872 } |
873 } |
873 |
874 |
874 |
875 |
906 |
907 |
907 // !!!!! |
908 // !!!!! |
908 switch( last_char ) { |
909 switch( last_char ) { |
909 case 'I': return "TypeInt::INT"; |
910 case 'I': return "TypeInt::INT"; |
910 case 'P': return "TypePtr::BOTTOM"; |
911 case 'P': return "TypePtr::BOTTOM"; |
|
912 case 'N': return "TypeNarrowOop::BOTTOM"; |
911 case 'F': return "Type::FLOAT"; |
913 case 'F': return "Type::FLOAT"; |
912 case 'D': return "Type::DOUBLE"; |
914 case 'D': return "Type::DOUBLE"; |
913 case 'L': return "TypeLong::LONG"; |
915 case 'L': return "TypeLong::LONG"; |
914 case 's': return "TypeInt::CC /*flags*/"; |
916 case 's': return "TypeInt::CC /*flags*/"; |
915 default: |
917 default: |
942 constructOperand(ident, true); |
944 constructOperand(ident, true); |
943 } |
945 } |
944 // Create InstructForm and assign type for each ideal instruction. |
946 // Create InstructForm and assign type for each ideal instruction. |
945 for ( int j = _last_machine_leaf+1; j < _last_opcode; ++j) { |
947 for ( int j = _last_machine_leaf+1; j < _last_opcode; ++j) { |
946 char *ident = (char *)NodeClassNames[j]; |
948 char *ident = (char *)NodeClassNames[j]; |
947 if(!strcmp(ident, "ConI") || !strcmp(ident, "ConP") || |
949 if(!strcmp(ident, "ConI") || !strcmp(ident, "ConP") || !strcmp(ident, "ConN") || |
948 !strcmp(ident, "ConF") || !strcmp(ident, "ConD") || |
950 !strcmp(ident, "ConF") || !strcmp(ident, "ConD") || |
949 !strcmp(ident, "ConL") || !strcmp(ident, "Con" ) || |
951 !strcmp(ident, "ConL") || !strcmp(ident, "Con" ) || |
950 !strcmp(ident, "Bool") ) { |
952 !strcmp(ident, "Bool") ) { |
951 constructOperand(ident, true); |
953 constructOperand(ident, true); |
952 } |
954 } |
1107 // !!!!! |
1109 // !!!!! |
1108 // These are the current machine-dependent clones |
1110 // These are the current machine-dependent clones |
1109 if ( strcmp(idealName,"CmpI") == 0 |
1111 if ( strcmp(idealName,"CmpI") == 0 |
1110 || strcmp(idealName,"CmpU") == 0 |
1112 || strcmp(idealName,"CmpU") == 0 |
1111 || strcmp(idealName,"CmpP") == 0 |
1113 || strcmp(idealName,"CmpP") == 0 |
|
1114 || strcmp(idealName,"CmpN") == 0 |
1112 || strcmp(idealName,"CmpL") == 0 |
1115 || strcmp(idealName,"CmpL") == 0 |
1113 || strcmp(idealName,"CmpD") == 0 |
1116 || strcmp(idealName,"CmpD") == 0 |
1114 || strcmp(idealName,"CmpF") == 0 |
1117 || strcmp(idealName,"CmpF") == 0 |
1115 || strcmp(idealName,"FastLock") == 0 |
1118 || strcmp(idealName,"FastLock") == 0 |
1116 || strcmp(idealName,"FastUnlock") == 0 |
1119 || strcmp(idealName,"FastUnlock") == 0 |