RFR: 8073108: GHASH Intrinsics
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Feb 17 21:14:49 UTC 2015
Florian's concern is valid.
"Range check elimination" means that C2 moves checks from a loop. Checks
are still present. Since 'state' array is not final we can't eliminate
range check. An other thing is an additional indirect load to access
arrays elements.
I would suggest to keep original code for 'subkey' and 'state' which use
separate values instead of arrays.
Regards,
Vladimir
On 2/17/15 1:00 PM, Anthony Scarpino wrote:
> On 02/17/2015 12:05 PM, Florian Weimer wrote:
>> On 02/17/2015 08:59 PM, Anthony Scarpino wrote:
>>> On 02/17/2015 12:57 AM, Florian Weimer wrote:
>>>> On 02/16/2015 10:11 PM, Anthony Scarpino wrote:
>>>>> http://cr.openjdk.java.net/~ascarpino/8073108/jdk/webrev/
>>>>
>>>> I think the “state” field in GHASH should be final. Is C2 able to
>>>> eliminate the array bounds checks? (Although it's not in the inner
>>>> loop
>>>> and thus probably not relevant for performance.)
>>>
>>> I'm not sure want you asking about in regard to the bounds checking? Are
>>> you asking about checking the bounds of "state"?
>>
>> state[0] and state[1]—I wonder if those expressions need array bounds
>> checks when compiled.
>
> The glossary says C2 eliminates array range checking.
> http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html
>
> Tony
>
More information about the security-dev
mailing list