Mercurial > hg > truffle
comparison src/share/vm/adlc/archDesc.cpp @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
110:a49a647afe9a | 113:ba764ed4b6f2 |
---|---|
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 |