[1] RFR (S) 8179019: Correct range checks for command-line options ArraycopySrcPrefetchDistance and ArraycopyDstPrefetchDistance

Zoltán Majó zoltan.majo at oracle.com
Mon Apr 24 15:20:38 UTC 2017


Hi,


please review the following fix for 8179019.
https://bugs.openjdk.java.net/browse/JDK-8179019
http://cr.openjdk.java.net/~zmajo/8179019/webrev.00/

Currently, the HotSpot allows Arraycopy{Src|Dst}PrefetchDistance only 
one value. Before JDK-8078554, values in the interval [0, 4096] were 
allowed (without explicit checking, though).

This change extends the set of values allowed to the interval [0, 4031]. 
We need the high bound 4032 (instead of 4096) because of [1]: the 
largest value of offset is 64, so 4031 + 64 = 4095 is the maximum that 
fits into the signed range of 13 bits. The change also includes 
suggestions by Vladimir K [2] to avoid using too large immediate values.

I tested the change manually with some values from both ends of the 
range and also with JPRT (incl. the currently disabled 
TestOptionsWithRanges.java test).

Thank you!

Best regards,


Zoltan

[1] 
http://hg.openjdk.java.net/jdk10/hs/hotspot/file/1617b39a1ae4/src/cpu/sparc/vm/stubGenerator_sparc.cpp#l2128
[2] 
https://bugs.openjdk.java.net/browse/JDK-8179019?focusedCommentId=14071776&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14071776



More information about the hotspot-compiler-dev mailing list