< prev index next >

src/hotspot/share/opto/mulnode.cpp

Print this page

        

*** 233,249 **** const Type *MulINode::mul_ring(const Type *t0, const Type *t1) const { const TypeInt *r0 = t0->is_int(); // Handy access const TypeInt *r1 = t1->is_int(); // Fetch endpoints of all ranges ! int32_t lo0 = r0->_lo; double a = (double)lo0; ! int32_t hi0 = r0->_hi; double b = (double)hi0; ! int32_t lo1 = r1->_lo; double c = (double)lo1; ! int32_t hi1 = r1->_hi; double d = (double)hi1; // Compute all endpoints & check for overflow int32_t A = java_multiply(lo0, lo1); if( (double)A != a*c ) return TypeInt::INT; // Overflow? --- 233,249 ---- const Type *MulINode::mul_ring(const Type *t0, const Type *t1) const { const TypeInt *r0 = t0->is_int(); // Handy access const TypeInt *r1 = t1->is_int(); // Fetch endpoints of all ranges ! jint lo0 = r0->_lo; double a = (double)lo0; ! jint hi0 = r0->_hi; double b = (double)hi0; ! jint lo1 = r1->_lo; double c = (double)lo1; ! jint hi1 = r1->_hi; double d = (double)hi1; // Compute all endpoints & check for overflow int32_t A = java_multiply(lo0, lo1); if( (double)A != a*c ) return TypeInt::INT; // Overflow?
< prev index next >