src/share/vm/opto/subnode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/subnode.cpp Mon May 5 12:30:19 2014
--- new/src/share/vm/opto/subnode.cpp Mon May 5 12:30:18 2014
*** 240,251 ****
--- 240,251 ----
//------------------------------sub--------------------------------------------
// A subtract node differences it's two inputs.
const Type *SubINode::sub( const Type *t1, const Type *t2 ) const {
const TypeInt *r0 = t1->is_int(); // Handy access
const TypeInt *r1 = t2->is_int();
! int32_t lo = r0->_lo - r1->_hi;
! int32_t hi = r0->_hi - r1->_lo;
// We next check for 32-bit overflow.
// If that happens, we just assume all integers are possible.
if( (((r0->_lo ^ r1->_hi) >= 0) || // lo ends have same signs OR
((r0->_lo ^ lo) >= 0)) && // lo results have same signs AND
src/share/vm/opto/subnode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File