diff options
| author | 2017-03-15 15:59:10 +0000 | |
|---|---|---|
| committer | 2017-03-15 15:59:10 +0000 | |
| commit | ba05290bb69e6bc9750d2485cd3dbfb013e61412 (patch) | |
| tree | 4bc72784ac56dcaf5fbec530ac9c62cb0dcc574d /compiler/utils/x86/assembler_x86.cc | |
| parent | 92d578f48d2c00497f15d9fe45f7683d9af0e109 (diff) | |
| parent | 21c580bf3f024f3f02d627013fba18a4b4f855d5 (diff) | |
Merge "SIMD and-not for x86/x86_64"
Diffstat (limited to 'compiler/utils/x86/assembler_x86.cc')
| -rw-r--r-- | compiler/utils/x86/assembler_x86.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc index 6a57f45e42..0a6ceefe69 100644 --- a/compiler/utils/x86/assembler_x86.cc +++ b/compiler/utils/x86/assembler_x86.cc @@ -1169,6 +1169,32 @@ void X86Assembler::pand(XmmRegister dst, XmmRegister src) { } +void X86Assembler::andnpd(XmmRegister dst, XmmRegister src) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0x66); + EmitUint8(0x0F); + EmitUint8(0x55); + EmitXmmRegisterOperand(dst, src); +} + + +void X86Assembler::andnps(XmmRegister dst, XmmRegister src) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0x0F); + EmitUint8(0x55); + EmitXmmRegisterOperand(dst, src); +} + + +void X86Assembler::pandn(XmmRegister dst, XmmRegister src) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0x66); + EmitUint8(0x0F); + EmitUint8(0xDF); + EmitXmmRegisterOperand(dst, src); +} + + void X86Assembler::orpd(XmmRegister dst, XmmRegister src) { AssemblerBuffer::EnsureCapacity ensured(&buffer_); EmitUint8(0x66); |