--- old/src/cpu/x86/vm/assembler_x86.cpp 2015-10-13 18:20:24.411269600 -0700 +++ new/src/cpu/x86/vm/assembler_x86.cpp 2015-10-13 18:20:24.077236200 -0700 @@ -1539,7 +1539,6 @@ emit_arith(0x3B, 0xC0, dst, src); } - void Assembler::cmpl(Register dst, Address src) { InstructionMark im(this); prefix(src, dst); @@ -2125,6 +2124,16 @@ emit_operand(dst, src); } +void Assembler::movddup(XMMRegister dst, XMMRegister src) { + _instruction_uses_vl = true; + NOT_LP64(assert(VM_Version::supports_sse3(), "")); + int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_F2, /* no_mask_reg */ false, VEX_OPCODE_0F, + /* rex_w */ VM_Version::supports_evex(), AVX_128bit, /* legacy_mode */ false); + emit_int8(0x12); + emit_int8(0xC0 | encode); + +} + void Assembler::kmovql(KRegister dst, KRegister src) { NOT_LP64(assert(VM_Version::supports_evex(), "")); int encode = kreg_prefix_and_encode(dst, knoreg, src, VEX_SIMD_NONE, @@ -3403,6 +3412,20 @@ } } +void Assembler::rcpps(XMMRegister dst, XMMRegister src) { + NOT_LP64(assert(VM_Version::supports_sse(), "")); + int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_NONE, /* no_mask_reg */ false, VEX_OPCODE_0F, /* rex_w */ false, AVX_128bit, /* legacy_mode */ true); + emit_int8(0x53); + emit_int8(0xC0 | encode); +} + +void Assembler::rcpss(XMMRegister dst, XMMRegister src) { + NOT_LP64(assert(VM_Version::supports_sse(), "")); + int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, /* no_mask_reg */ false, VEX_OPCODE_0F, /* rex_w */ false, AVX_128bit, /* legacy_mode */ true); + emit_int8(0x53); + emit_int8(0xC0 | encode); +} + void Assembler::rdtsc() { emit_int8((unsigned char)0x0F); emit_int8((unsigned char)0x31);