src/cpu/x86/vm/assembler_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/cpu/x86/vm/assembler_x86.cpp Thu Dec 27 17:06:10 2012
--- new/src/cpu/x86/vm/assembler_x86.cpp Thu Dec 27 17:06:10 2012
*** 3648,3657 ****
--- 3648,3666 ----
emit_operand(src, dst);
// 0x01 - extract from upper 128 bits
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);
emit_int8(0x77);
}
src/cpu/x86/vm/assembler_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File