Mercurial > hg > graal-compiler
diff src/share/vm/opto/divnode.cpp @ 568:30663ca5e8f4
6805724: ModLNode::Ideal() generates functionally incorrect graph when divisor is any (2^k-1) constant.
Summary: C2, ModLNode::Ideal() generates functionally incorrect graph when divisor is any (2^k-1) constant.
Reviewed-by: rasbold
author | twisti |
---|---|
date | Mon, 16 Feb 2009 07:19:26 -0800 |
parents | bbef4344adb2 |
children | 98cb887364d3 |
line wrap: on
line diff
--- a/src/share/vm/opto/divnode.cpp Fri Feb 13 09:09:35 2009 -0800 +++ b/src/share/vm/opto/divnode.cpp Mon Feb 16 07:19:26 2009 -0800 @@ -1007,7 +1007,7 @@ // Expand mod if( con >= 0 && con < max_jlong && is_power_of_2_long(con+1) ) { - uint k = log2_long(con); // Extract k + uint k = exact_log2_long(con+1); // Extract k // Basic algorithm by David Detlefs. See fastmod_long.java for gory details. // Used to help a popular random number generator which does a long-mod