Index: src/x64/assembler-x64.h |
diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h |
index 291ee7fcb4587f2c48b7c7583ac4a669f76569cb..27f04419a3f79abf12e62194ea06496393ac021e 100644 |
--- a/src/x64/assembler-x64.h |
+++ b/src/x64/assembler-x64.h |
@@ -1582,6 +1582,30 @@ class Assembler : public AssemblerBase { |
void rorxl(Register dst, Register src, byte imm8); |
void rorxl(Register dst, const Operand& src, byte imm8); |
+#define PACKED_OP_LIST(V) \ |
+ V(and, 0x54) \ |
+ V(xor, 0x57) |
+ |
+#define AVX_PACKED_OP_DECLARE(name, opcode) \ |
+ void v##name##ps(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \ |
+ vps(opcode, dst, src1, src2); \ |
+ } \ |
+ void v##name##ps(XMMRegister dst, XMMRegister src1, const Operand& src2) { \ |
+ vps(opcode, dst, src1, src2); \ |
+ } \ |
+ void v##name##pd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \ |
+ vpd(opcode, dst, src1, src2); \ |
+ } \ |
+ void v##name##pd(XMMRegister dst, XMMRegister src1, const Operand& src2) { \ |
+ vpd(opcode, dst, src1, src2); \ |
+ } |
+ |
+ PACKED_OP_LIST(AVX_PACKED_OP_DECLARE); |
+ void vps(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2); |
+ void vps(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); |
+ void vpd(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2); |
+ void vpd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); |
+ |
// Debugging |
void Print(); |