[9] RFR(S): 8143208: compiler/c1/6855215/Test6855215.java supports_sse2() failed

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Nov 20 16:52:14 UTC 2015


On 11/20/15 7:07 AM, Zoltán Majó wrote:
> Hi,
>
>
> please review the patch for 8143208.
>
> https://bugs.openjdk.java.net/browse/JDK-8143208
>
> Problem: The failure is triggered on linux_x86_32 with -XX:UseSSE=0
> because the MacroAssembler::has_negatives() method attempts to emit a
> movdl instruction that is available only if UseSSE >= 2.
>
> Solution:
> - Change the has_negatives() method to check if SSE42 intrinsics are
> enabled before attempting to emit SSE instructions. The check is
> performed on the  value of 'UseSSE42Intrinsics' flag for consistency
> reasons: All method emitting string-related intrinsics check the value
> of that flag before emitting SSE instructions.

has_negatives() in .ad files does not have any predicates and there is 
pass in MacroAssembler::has_negatives() where SSE is not used. So 
guarding with UseSSE42Intrinsics does not stand here. I will suggest to 
use (UseSSE >=2) instead.

Otherwise changes are good.

Thanks,
Vladimir

> - Change the processing of command line-flags to not allow setting
> 'UseSSE42Intrinsics' to true if SSE4.2 has been disabled or is not
> available.
> - Add asserts that fail if UseSSE<4 to all places where
> UseSSE42Intrinsic assumed to be true.
>
> Webrev:
> http://cr.openjdk.java.net/~zmajo/8143208/webrev.00/
>
> Testing:
> - JPRT;
> - executed failing test locally with linux_x86_32 build.
>
> Thank you and best regards,
>
>
> Zoltan
>


More information about the hotspot-compiler-dev mailing list