RFR (XS) 8211375: Minimal VM build failures after JDK-8211251 (Default mask register for avx512 instructions)
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Oct 2 17:25:04 UTC 2018
Sorry about that. Instructions setvectmask and restorevectmask and code in
restore_cpu_control_state_after_jni() should be moved under #ifdef COMPILER2 instead. We have other
C2 specific code in this file - it is normal.
Thanks,
Vladimir
On 10/2/18 12:36 AM, Aleksey Shipilev wrote:
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8211375
>
> Frankly, I do not understand what business the C2 compiler option has in macroAssembler, which is
> supposed to be compiler-independent? I submitted https://bugs.openjdk.java.net/browse/JDK-8211376
> for that, please assign appropriately.
>
> Anyhow, the build fix for configurations that do not have C2 enabled:
>
> diff -r 4756af2308a1 src/hotspot/cpu/x86/macroAssembler_x86.cpp
> --- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp Mon Oct 01 20:16:55 2018 -0400
> +++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp Tue Oct 02 09:29:00 2018 +0200
> @@ -3268,5 +3268,5 @@
>
> void MacroAssembler::setvectmask(Register dst, Register src) {
> - guarantee(PostLoopMultiversioning == true, "must be");
> + COMPILER2_PRESENT(guarantee(PostLoopMultiversioning, "must be");)
> Assembler::movl(dst, 1);
> Assembler::shlxl(dst, dst, src);
> @@ -3277,5 +3277,5 @@
>
> void MacroAssembler::restorevectmask() {
> - guarantee(PostLoopMultiversioning == true, "must be");
> + COMPILER2_PRESENT(guarantee(PostLoopMultiversioning, "must be");)
> Assembler::knotwl(k1, k0);
> }
> @@ -5029,5 +5029,5 @@
> vzeroupper();
> // Reset k1 to 0xffff.
> - if (PostLoopMultiversioning && VM_Version::supports_evex()) {
> + if (COMPILER2_PRESENT(PostLoopMultiversioning) NOT_COMPILER2(false) && VM_Version::supports_evex()) {
> push(rcx);
> movl(rcx, 0xffff);
>
> Testing: x86_64 (minimal|server) builds
>
> Thanks,
> -Aleksey
>
More information about the hotspot-compiler-dev
mailing list