--- old/src/cpu/x86/vm/assembler_x86.cpp 2016-10-03 19:05:52.104540300 -0700 +++ new/src/cpu/x86/vm/assembler_x86.cpp 2016-10-03 19:05:51.350848400 -0700 @@ -4261,8 +4261,9 @@ void Assembler::sha1rnds4(XMMRegister dst, XMMRegister src, int imm8) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_3A, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x3A); emit_int8((unsigned char)0xCC); emit_int8((unsigned char)(0xC0 | encode)); emit_int8((unsigned char)imm8); @@ -4270,24 +4271,27 @@ void Assembler::sha1nexte(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_38, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x38); emit_int8((unsigned char)0xC8); emit_int8((unsigned char)(0xC0 | encode)); } void Assembler::sha1msg1(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_38, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x38); emit_int8((unsigned char)0xC9); emit_int8((unsigned char)(0xC0 | encode)); } void Assembler::sha1msg2(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_38, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x38); emit_int8((unsigned char)0xCA); emit_int8((unsigned char)(0xC0 | encode)); } @@ -4295,24 +4299,27 @@ // xmm0 is implicit additional source to this instruction. void Assembler::sha256rnds2(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_38, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x38); emit_int8((unsigned char)0xCB); emit_int8((unsigned char)(0xC0 | encode)); } void Assembler::sha256msg1(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_38, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x38); emit_int8((unsigned char)0xCC); emit_int8((unsigned char)(0xC0 | encode)); } void Assembler::sha256msg2(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sha(), ""); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ true, /* no_mask_reg */ false, /* uses_vl */ false); - int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, VEX_OPCODE_0F_38, &attributes); + int encode = prefix_and_encode(dst->encoding(), src->encoding()); + emit_int8((unsigned char)0x0F); + emit_int8((unsigned char)0x38); emit_int8((unsigned char)0xCD); emit_int8((unsigned char)(0xC0 | encode)); }