src/share/vm/opto/divnode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/divnode.cpp Mon May 5 12:29:22 2014
--- new/src/share/vm/opto/divnode.cpp Mon May 5 12:29:22 2014
*** 512,522 ****
--- 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 ****
--- 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