hotspot/src/share/vm/adlc/archDesc.cpp

Print this page
rev 611 : Merge

*** 1,7 **** // ! // Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 only, as // published by the Free Software Foundation. --- 1,7 ---- // ! // Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 only, as // published by the Free Software Foundation.
*** 137,147 **** if ((res == _resultStr) || (res && _resultStr && !strcmp(res, _resultStr))) { if ((lch == _lchild) || (lch && _lchild && !strcmp(lch, _lchild))) { if ((rch == _rchild) || (rch && _rchild && !strcmp(rch, _rchild))) { char * predStr = get_pred(); char * prStr = pr?pr->_pred:NULL; ! if ((prStr == predStr) || (prStr && predStr && !strcmp(prStr, predStr))) { return true; } } } } --- 137,147 ---- if ((res == _resultStr) || (res && _resultStr && !strcmp(res, _resultStr))) { if ((lch == _lchild) || (lch && _lchild && !strcmp(lch, _lchild))) { if ((rch == _rchild) || (rch && _rchild && !strcmp(rch, _rchild))) { char * predStr = get_pred(); char * prStr = pr?pr->_pred:NULL; ! if (ADLParser::equivalent_expressions(prStr, predStr)) { return true; } } } }
*** 209,221 **** _internal_errs = 0; // Initialize I/O Files _ADL_file._name = NULL; _ADL_file._fp = NULL; // Machine dependent output files ! _DFA_file._name = "dfa_i486.cpp"; _DFA_file._fp = NULL; ! _HPP_file._name = "ad_i486.hpp"; _HPP_file._fp = NULL; ! _CPP_file._name = "ad_i486.cpp"; _CPP_file._fp = NULL; _bug_file._name = "bugs.out"; _bug_file._fp = NULL; // Initialize Register & Pipeline Form Pointers _register = NULL; _encode = NULL; --- 209,221 ---- _internal_errs = 0; // Initialize I/O Files _ADL_file._name = NULL; _ADL_file._fp = NULL; // Machine dependent output files ! _DFA_file._name = NULL; _DFA_file._fp = NULL; ! _HPP_file._name = NULL; _HPP_file._fp = NULL; ! _CPP_file._name = NULL; _CPP_file._fp = NULL; _bug_file._name = "bugs.out"; _bug_file._fp = NULL; // Initialize Register & Pipeline Form Pointers _register = NULL; _encode = NULL;
*** 864,873 **** --- 864,874 ---- // Lookup this result operand and get its register class Form *form = (Form*)_globalNames[result]; assert( form, "Result operand must be defined"); OperandForm *oper = form->is_operand(); + if (oper == NULL) form->dump(); assert( oper, "Result must be an OperandForm"); return reg_mask( *oper ); }
*** 905,914 **** --- 906,916 ---- // !!!!! switch( last_char ) { case 'I': return "TypeInt::INT"; case 'P': return "TypePtr::BOTTOM"; + case 'N': return "TypeNarrowOop::BOTTOM"; case 'F': return "Type::FLOAT"; case 'D': return "Type::DOUBLE"; case 'L': return "TypeLong::LONG"; case 's': return "TypeInt::CC /*flags*/"; default:
*** 941,951 **** constructOperand(ident, true); } // Create InstructForm and assign type for each ideal instruction. for ( int j = _last_machine_leaf+1; j < _last_opcode; ++j) { char *ident = (char *)NodeClassNames[j]; ! if(!strcmp(ident, "ConI") || !strcmp(ident, "ConP") || !strcmp(ident, "ConF") || !strcmp(ident, "ConD") || !strcmp(ident, "ConL") || !strcmp(ident, "Con" ) || !strcmp(ident, "Bool") ) { constructOperand(ident, true); } --- 943,953 ---- constructOperand(ident, true); } // Create InstructForm and assign type for each ideal instruction. for ( int j = _last_machine_leaf+1; j < _last_opcode; ++j) { char *ident = (char *)NodeClassNames[j]; ! if(!strcmp(ident, "ConI") || !strcmp(ident, "ConP") || !strcmp(ident, "ConN") || !strcmp(ident, "ConF") || !strcmp(ident, "ConD") || !strcmp(ident, "ConL") || !strcmp(ident, "Con" ) || !strcmp(ident, "Bool") ) { constructOperand(ident, true); }
*** 1106,1115 **** --- 1108,1118 ---- // !!!!! // These are the current machine-dependent clones if ( strcmp(idealName,"CmpI") == 0 || strcmp(idealName,"CmpU") == 0 || strcmp(idealName,"CmpP") == 0 + || strcmp(idealName,"CmpN") == 0 || strcmp(idealName,"CmpL") == 0 || strcmp(idealName,"CmpD") == 0 || strcmp(idealName,"CmpF") == 0 || strcmp(idealName,"FastLock") == 0 || strcmp(idealName,"FastUnlock") == 0