src/share/vm/adlc/formssel.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/adlc/formssel.cpp	Tue May 18 14:06:11 2010
--- new/src/share/vm/adlc/formssel.cpp	Tue May 18 14:06:11 2010

*** 733,743 **** --- 733,743 ---- } // This instruction captures the machine-independent bottom_type // Expected use is for pointer vs oop determination for LoadP ! bool InstructForm::captures_bottom_type(FormDict &globals) const { if( _matrule && _matrule->_rChild && (!strcmp(_matrule->_rChild->_opType,"CastPP") || // new result type !strcmp(_matrule->_rChild->_opType,"CastX2P") || // new result type !strcmp(_matrule->_rChild->_opType,"DecodeN") || !strcmp(_matrule->_rChild->_opType,"EncodeP") ||
*** 746,755 **** --- 746,757 ---- !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception !strcmp(_matrule->_rChild->_opType,"CheckCastPP")) ) return true; else if ( is_ideal_load() == Form::idealP ) return true; else if ( is_ideal_store() != Form::none ) return true; + if (needs_base_oop_edge(globals)) return true; + return false; } // Access instr_cost attribute or return NULL.
*** 1059,1069 **** --- 1061,1071 ---- return _matrule->reduce_left(globals); } // Base class for this instruction, MachNode except for calls ! const char *InstructForm::mach_base_class(FormDict &globals) const { if( is_ideal_call() == Form::JAVA_STATIC ) { return "MachCallStaticJavaNode"; } else if( is_ideal_call() == Form::JAVA_DYNAMIC ) { return "MachCallDynamicJavaNode";
*** 1090,1100 **** --- 1092,1102 ---- return "MachFastLockNode"; } else if (is_ideal_nop()) { return "MachNopNode"; } ! else if (captures_bottom_type(globals)) { return "MachTypeNode"; } else { return "MachNode"; } assert( false, "ShouldNotReachHere()");

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