8199603: Build failures after JDK-8199421 "Add support for vector popcount"
Reviewed-by: thartmann
--- a/src/hotspot/cpu/x86/assembler_x86.cpp Tue Mar 13 16:21:45 2018 -0400
+++ b/src/hotspot/cpu/x86/assembler_x86.cpp Wed Mar 14 15:28:31 2018 +0100
@@ -3915,6 +3915,15 @@
emit_int8((unsigned char)(0xC0 | encode));
}
+void Assembler::vpopcntd(XMMRegister dst, XMMRegister src, int vector_len) {
+ assert(VM_Version::supports_vpopcntdq(), "must support vpopcntdq feature");
+ InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true);
+ attributes.set_is_evex_instruction();
+ int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes);
+ emit_int8(0x55);
+ emit_int8((unsigned char)(0xC0 | encode));
+}
+
void Assembler::popf() {
emit_int8((unsigned char)0x9D);
}
@@ -8709,15 +8718,6 @@
emit_int8((unsigned char)(0xC0 | encode));
}
-void Assembler::vpopcntd(XMMRegister dst, XMMRegister src, int vector_len) {
- assert(VM_Version::supports_vpopcntdq(), "must support vpopcntdq feature");
- InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true);
- attributes.set_is_evex_instruction();
- int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes);
- emit_int8(0x55);
- emit_int8((unsigned char)(0xC0 | encode));
-}
-
void Assembler::popq(Address dst) {
InstructionMark im(this);
prefixq(dst);
--- a/src/hotspot/cpu/x86/assembler_x86.hpp Tue Mar 13 16:21:45 2018 -0400
+++ b/src/hotspot/cpu/x86/assembler_x86.hpp Wed Mar 14 15:28:31 2018 +0100
@@ -1633,13 +1633,13 @@
void popcntl(Register dst, Address src);
void popcntl(Register dst, Register src);
+ void vpopcntd(XMMRegister dst, XMMRegister src, int vector_len);
+
#ifdef _LP64
void popcntq(Register dst, Address src);
void popcntq(Register dst, Register src);
#endif
- void vpopcntd(XMMRegister dst, XMMRegister src, int vector_len);
-
// Prefetches (SSE, SSE2, 3DNOW only)
void prefetchnta(Address src);