src/share/vm/opto/divnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/divnode.cpp

src/share/vm/opto/divnode.cpp

Print this page

        

*** 512,522 **** const TypeInt *i1 = t1->is_int(); const TypeInt *i2 = t2->is_int(); int widen = MAX2(i1->_widen, i2->_widen); if( i2->is_con() && i2->get_con() != 0 ) { ! int32 d = i2->get_con(); // Divisor jint lo, hi; if( d >= 0 ) { lo = i1->_lo/d; hi = i1->_hi/d; } else { --- 512,522 ---- const TypeInt *i1 = t1->is_int(); const TypeInt *i2 = t2->is_int(); int widen = MAX2(i1->_widen, i2->_widen); if( i2->is_con() && i2->get_con() != 0 ) { ! int32_t d = i2->get_con(); // Divisor jint lo, hi; if( d >= 0 ) { lo = i1->_lo/d; hi = i1->_hi/d; } else {
*** 534,544 **** return TypeInt::make(lo, hi, widen); } // If the dividend is a constant if( i1->is_con() ) { ! int32 d = i1->get_con(); if( d < 0 ) { if( d == min_jint ) { // (-min_jint) == min_jint == (min_jint / -1) return TypeInt::make(min_jint, max_jint/2 + 1, widen); } else { --- 534,544 ---- return TypeInt::make(lo, hi, widen); } // If the dividend is a constant if( i1->is_con() ) { ! int32_t d = i1->get_con(); if( d < 0 ) { if( d == min_jint ) { // (-min_jint) == min_jint == (min_jint / -1) return TypeInt::make(min_jint, max_jint/2 + 1, widen); } else {
src/share/vm/opto/divnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File