src/share/vm/adlc/archDesc.cpp

Print this page
rev 3688 : 7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by:


 951 OperandForm *ArchDesc::constructOperand(const char *ident,
 952                                         bool  ideal_only) {
 953   OperandForm *opForm = new OperandForm(ident, ideal_only);
 954   _globalNames.Insert(ident, opForm);
 955   addForm(opForm);
 956 
 957   return opForm;
 958 }
 959 
 960 
 961 // Import predefined base types: Set = 1, RegI, RegP, ...
 962 void ArchDesc::initBaseOpTypes() {
 963   // Create OperandForm and assign type for each opcode.
 964   for (int i = 1; i < _last_machine_leaf; ++i) {
 965     char        *ident   = (char *)NodeClassNames[i];
 966     constructOperand(ident, true);
 967   }
 968   // Create InstructForm and assign type for each ideal instruction.
 969   for ( int j = _last_machine_leaf+1; j < _last_opcode; ++j) {
 970     char         *ident    = (char *)NodeClassNames[j];
 971     if(!strcmp(ident, "ConI") || !strcmp(ident, "ConP") || !strcmp(ident, "ConN") ||

 972        !strcmp(ident, "ConF") || !strcmp(ident, "ConD") ||
 973        !strcmp(ident, "ConL") || !strcmp(ident, "Con" ) ||
 974        !strcmp(ident, "Bool") ) {
 975       constructOperand(ident, true);
 976     }
 977     else {
 978       InstructForm *insForm  = new InstructForm(ident, true);
 979       // insForm->_opcode       = nextUserOpType(ident);
 980       _globalNames.Insert(ident,insForm);
 981       addForm(insForm);
 982     }
 983   }
 984 
 985   { OperandForm *opForm;
 986   // Create operand type "Universe" for return instructions.
 987   const char *ident = "Universe";
 988   opForm = constructOperand(ident, false);
 989 
 990   // Create operand type "label" for branch targets
 991   ident = "label";




 951 OperandForm *ArchDesc::constructOperand(const char *ident,
 952                                         bool  ideal_only) {
 953   OperandForm *opForm = new OperandForm(ident, ideal_only);
 954   _globalNames.Insert(ident, opForm);
 955   addForm(opForm);
 956 
 957   return opForm;
 958 }
 959 
 960 
 961 // Import predefined base types: Set = 1, RegI, RegP, ...
 962 void ArchDesc::initBaseOpTypes() {
 963   // Create OperandForm and assign type for each opcode.
 964   for (int i = 1; i < _last_machine_leaf; ++i) {
 965     char        *ident   = (char *)NodeClassNames[i];
 966     constructOperand(ident, true);
 967   }
 968   // Create InstructForm and assign type for each ideal instruction.
 969   for ( int j = _last_machine_leaf+1; j < _last_opcode; ++j) {
 970     char         *ident    = (char *)NodeClassNames[j];
 971     if(!strcmp(ident, "ConI") || !strcmp(ident, "ConP") || 
 972        !strcmp(ident, "ConN") || !strcmp(ident, "ConNKlass") ||
 973        !strcmp(ident, "ConF") || !strcmp(ident, "ConD") ||
 974        !strcmp(ident, "ConL") || !strcmp(ident, "Con" ) ||
 975        !strcmp(ident, "Bool") ) {
 976       constructOperand(ident, true);
 977     }
 978     else {
 979       InstructForm *insForm  = new InstructForm(ident, true);
 980       // insForm->_opcode       = nextUserOpType(ident);
 981       _globalNames.Insert(ident,insForm);
 982       addForm(insForm);
 983     }
 984   }
 985 
 986   { OperandForm *opForm;
 987   // Create operand type "Universe" for return instructions.
 988   const char *ident = "Universe";
 989   opForm = constructOperand(ident, false);
 990 
 991   // Create operand type "label" for branch targets
 992   ident = "label";