Mercurial > hg > truffle
diff src/cpu/x86/vm/assembler_x86.cpp @ 7475:e2e6bf86682c
8005544: Use 256bit YMM registers in arraycopy stubs on x86
Summary: Use YMM registers in arraycopy and array_fill stubs.
Reviewed-by: roland, twisti
author | kvn |
---|---|
date | Thu, 03 Jan 2013 16:30:47 -0800 |
parents | 00af3a3a8df4 |
children | ffa87474d7a4 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/assembler_x86.cpp Thu Jan 03 15:09:55 2013 -0800 +++ b/src/cpu/x86/vm/assembler_x86.cpp Thu Jan 03 16:30:47 2013 -0800 @@ -3656,6 +3656,15 @@ emit_int8(0x01); } +// duplicate 4-bytes integer data from src into 8 locations in dest +void Assembler::vpbroadcastd(XMMRegister dst, XMMRegister src) { + assert(VM_Version::supports_avx2(), ""); + bool vector256 = true; + int encode = vex_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_66, vector256, VEX_OPCODE_0F_38); + emit_int8(0x58); + emit_int8((unsigned char)(0xC0 | encode)); +} + void Assembler::vzeroupper() { assert(VM_Version::supports_avx(), ""); (void)vex_prefix_and_encode(xmm0, xmm0, xmm0, VEX_SIMD_NONE);