| Index: runtime/vm/assembler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_ia32.cc (revision 12765)
|
| +++ runtime/vm/assembler_ia32.cc (working copy)
|
| @@ -649,6 +649,15 @@
|
| }
|
|
|
|
|
| +void Assembler::orpd(XmmRegister dst, XmmRegister src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x66);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0x56);
|
| + EmitXmmRegisterOperand(dst, src);
|
| +}
|
| +
|
| +
|
| void Assembler::xorps(XmmRegister dst, const Address& src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0x0F);
|
| @@ -674,6 +683,47 @@
|
| }
|
|
|
|
|
| +void Assembler::andpd(XmmRegister dst, XmmRegister src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x66);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0x54);
|
| + EmitXmmRegisterOperand(dst, src);
|
| +}
|
| +
|
| +
|
| +void Assembler::pextrd(Register dst, XmmRegister src, const Immediate& imm) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x66);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0x3A);
|
| + EmitUint8(0x16);
|
| + EmitOperand(src, Operand(dst));
|
| + ASSERT(imm.is_uint8());
|
| + EmitUint8(imm.value());
|
| +}
|
| +
|
| +
|
| +void Assembler::pmovsxdq(XmmRegister dst, XmmRegister src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x66);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0x38);
|
| + EmitUint8(0x25);
|
| + EmitXmmRegisterOperand(dst, src);
|
| +}
|
| +
|
| +
|
| +void Assembler::pcmpeqq(XmmRegister dst, XmmRegister src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x66);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0x38);
|
| + EmitUint8(0x29);
|
| + EmitXmmRegisterOperand(dst, src);
|
| +}
|
| +
|
| +
|
| void Assembler::fldl(const Address& src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0xDD);
|
|
|