RFR (XS): 8191915: JCK tests produce incorrect results with C2

Rickard Bäckman rickard.backman at oracle.com
Thu Jan 11 09:30:57 UTC 2018


Thank you for catching that. I added a method that negates the jlong.

http://cr.openjdk.java.net/~rbackman/8191915.2/

Thanks
/R

On 01/10, Andrew Haley wrote:
> On 10/01/18 14:17, Rickard Bäckman wrote:
> > I did the multiply as unsigned and then cast to to signed thing.
> > Renamed the test to LongMulOverflowTest.
> > 
> > Updated.
> > 
> > http://cr.openjdk.java.net/~rbackman/8191915.1/
> > 
> > I agree that the best solution would be to use compiler builtins but I'm
> > not sure all the compilers support them and makes portability a pain.
> 
> It's still wrong because
> 
>     jlong ax = (val1 < 0 ? -val1 : val1);
>     jlong ay = (val2 < 0 ? -val2 : val2);
> 
> is undefined when val1 or val2 is Long.MIN_VALUE.
> 
> -- 
> Andrew Haley
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
/R


More information about the hotspot-compiler-dev mailing list