[9] RFR(XS): 8157842: indexOfChar intrinsic is not emitted on x86
Tobias Hartmann
tobias.hartmann at oracle.com
Tue May 31 09:32:42 UTC 2016
Hi Vladimir,
thanks for the review!
On 30.05.2016 19:45, Vladimir Kozlov wrote:
> match_rule_supported() should check UseSSE42Intrinsics instead since it is used in predicate:
>
> predicate(UseSSE42Intrinsics);
> match(Set result (StrIndexOfChar (Binary str1 cnt1) ch));
Right, checking for UseSSE42Intrinsics is more consistent.
> Also we can remove "assert(UseSSE >= 4" in MacroAssembler::string_indexof_char() because UseSSE42Intrinsics will be false if UseSSE < 4. See code in vm_version_x86.cpp
Okay, I also removed the same checks from the other string intrinsics.
Here's the new webrev:
http://cr.openjdk.java.net/~thartmann/8157842/webrev.01/
While testing I noticed that the VM crashes if UseSSE < 4 is set. I filed JDK-8158214.
Thanks,
Tobias
[1] https://bugs.openjdk.java.net/browse/JDK-8158214
>
> Thanks,
> Vladimir
>
> On 5/30/16 4:22 AM, Tobias Hartmann wrote:
>> Hi,
>>
>> please review the following patch:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8157842
>> http://cr.openjdk.java.net/~thartmann/8157842/webrev.00/
>>
>> Andrew Haley noticed that there is a typo in x86.ad that prevents the StrIndexOfChar intrinsic from being emitted [1]. The problem is that we check for UseSSE > 4 instead of UseSSE >= 4 in Matcher::match_rule_supported() on x86.
>>
>> Tested with JPRT, RBT is running.
>>
>> Thanks,
>> Tobias
>>
>> [1] http://mail.openjdk.java.net/pipermail/hotspot-dev/2016-May/023218.html
>>
More information about the hotspot-compiler-dev
mailing list