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