< prev index next >

hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp

Print this page
rev 7347 : 8078113: 8011102 changes may cause incorrect results
Summary: replace Vzeroupper instruction in stubs with zeroing only used ymm registers.
Reviewed-by: kvn
Contributed-by: sandhya.viswanathan@intel.com

@@ -1326,11 +1326,12 @@
       }
       __ addptr(qword_count, 4);
       __ BIND(L_end);
       if (UseAVX >= 2) {
         // clean upper bits of YMM registers
-        __ vzeroupper();
+        __ vpxor(xmm0, xmm0);
+        __ vpxor(xmm1, xmm1);
       }
     } else {
       // Copy 32-bytes per iteration
       __ BIND(L_loop);
       __ movq(to, Address(end_from, qword_count, Address::times_8, -24));

@@ -1403,11 +1404,12 @@
       }
       __ subptr(qword_count, 4);
       __ BIND(L_end);
       if (UseAVX >= 2) {
         // clean upper bits of YMM registers
-        __ vzeroupper();
+        __ vpxor(xmm0, xmm0);
+        __ vpxor(xmm1, xmm1);
       }
     } else {
       // Copy 32-bytes per iteration
       __ BIND(L_loop);
       __ movq(to, Address(from, qword_count, Address::times_8, 24));
< prev index next >