Index: src/x64/assembler-x64.cc |
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc |
index b366e66c2ae108136ac71a50c3e4c81e1c166643..b2330b3320b36cafbc2af670e853ea52d6489094 100644 |
--- a/src/x64/assembler-x64.cc |
+++ b/src/x64/assembler-x64.cc |
@@ -935,7 +935,6 @@ void Assembler::cld() { |
emit(0xFC); |
} |
- |
void Assembler::cdq() { |
EnsureSpace ensure_space(this); |
emit(0x99); |
@@ -2892,11 +2891,11 @@ void Assembler::pextrw(Register dst, XMMRegister src, int8_t imm8) { |
DCHECK(is_uint8(imm8)); |
EnsureSpace ensure_space(this); |
emit(0x66); |
- emit_optional_rex_32(dst, src); |
+ emit_optional_rex_32(src, dst); |
emit(0x0F); |
emit(0x3A); |
emit(0x15); |
- emit_sse_operand(dst, src); |
+ emit_sse_operand(src, dst); |
emit(imm8); |
} |
@@ -4636,6 +4635,26 @@ void Assembler::psrldq(XMMRegister dst, uint8_t shift) { |
emit(shift); |
} |
+void Assembler::pshufhw(XMMRegister dst, XMMRegister src, uint8_t shuffle) { |
+ EnsureSpace ensure_space(this); |
+ emit(0xF3); |
+ emit_optional_rex_32(dst, src); |
+ emit(0x0F); |
+ emit(0x70); |
+ emit_sse_operand(dst, src); |
+ emit(shuffle); |
+} |
+ |
+void Assembler::pshuflw(XMMRegister dst, XMMRegister src, uint8_t shuffle) { |
+ EnsureSpace ensure_space(this); |
+ emit(0xF2); |
+ emit_optional_rex_32(dst, src); |
+ emit(0x0F); |
+ emit(0x70); |
+ emit_sse_operand(dst, src); |
+ emit(shuffle); |
+} |
+ |
void Assembler::pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle) { |
EnsureSpace ensure_space(this); |
emit(0x66); |