Index: src/x64/assembler-x64.h |
diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h |
index 4df1801801458acd7359650f7368a9cb9f128875..d9ea95d09de18f28853e6ae0aebaff58855fb1d8 100644 |
--- a/src/x64/assembler-x64.h |
+++ b/src/x64/assembler-x64.h |
@@ -1157,16 +1157,53 @@ class Assembler : public AssemblerBase { |
void punpckhdq(XMMRegister dst, XMMRegister src); |
// SSE 4.1 instruction |
+ void insertps(XMMRegister dst, XMMRegister src, byte imm8); |
void extractps(Register dst, XMMRegister src, byte imm8); |
- |
void pextrd(Register dst, XMMRegister src, int8_t imm8); |
- |
void pinsrd(XMMRegister dst, Register src, int8_t imm8); |
void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8); |
void roundss(XMMRegister dst, XMMRegister src, RoundingMode mode); |
void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); |
+ void cmpps(XMMRegister dst, XMMRegister src, int8_t cmp); |
+ void cmpeqps(XMMRegister dst, XMMRegister src); |
+ void cmpltps(XMMRegister dst, XMMRegister src); |
+ void cmpleps(XMMRegister dst, XMMRegister src); |
+ void cmpneqps(XMMRegister dst, XMMRegister src); |
+ void cmpnltps(XMMRegister dst, XMMRegister src); |
+ void cmpnleps(XMMRegister dst, XMMRegister src); |
+ |
+ void minps(XMMRegister dst, XMMRegister src); |
+ void minps(XMMRegister dst, const Operand& src); |
+ void maxps(XMMRegister dst, XMMRegister src); |
+ void maxps(XMMRegister dst, const Operand& src); |
+ void rcpps(XMMRegister dst, XMMRegister src); |
+ void rcpps(XMMRegister dst, const Operand& src); |
+ void rsqrtps(XMMRegister dst, XMMRegister src); |
+ void rsqrtps(XMMRegister dst, const Operand& src); |
+ void sqrtps(XMMRegister dst, XMMRegister src); |
+ void sqrtps(XMMRegister dst, const Operand& src); |
+ void movups(XMMRegister dst, XMMRegister src); |
+ void movups(XMMRegister dst, const Operand& src); |
+ void movups(const Operand& dst, XMMRegister src); |
+ void paddd(XMMRegister dst, XMMRegister src); |
+ void paddd(XMMRegister dst, const Operand& src); |
+ void psubd(XMMRegister dst, XMMRegister src); |
+ void psubd(XMMRegister dst, const Operand& src); |
+ void pmulld(XMMRegister dst, XMMRegister src); |
+ void pmulld(XMMRegister dst, const Operand& src); |
+ void pmuludq(XMMRegister dst, XMMRegister src); |
+ void pmuludq(XMMRegister dst, const Operand& src); |
+ void punpackldq(XMMRegister dst, XMMRegister src); |
+ void punpackldq(XMMRegister dst, const Operand& src); |
+ void psrldq(XMMRegister dst, uint8_t shift); |
+ void pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle); |
+ void cvtps2dq(XMMRegister dst, XMMRegister src); |
+ void cvtps2dq(XMMRegister dst, const Operand& src); |
+ void cvtdq2ps(XMMRegister dst, XMMRegister src); |
+ void cvtdq2ps(XMMRegister dst, const Operand& src); |
+ |
// AVX instruction |
void vfmadd132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
vfmasd(0x99, dst, src1, src2); |
@@ -1943,6 +1980,7 @@ class Assembler : public AssemblerBase { |
void emit_sse_operand(Register reg, const Operand& adr); |
void emit_sse_operand(XMMRegister dst, Register src); |
void emit_sse_operand(Register dst, XMMRegister src); |
+ void emit_sse_operand(XMMRegister dst); |
// Emit machine code for one of the operations ADD, ADC, SUB, SBC, |
// AND, OR, XOR, or CMP. The encodings of these operations are all |