OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/globals.h" | 5 #include "vm/globals.h" |
6 #if defined(TARGET_ARCH_IA32) | 6 #if defined(TARGET_ARCH_IA32) |
7 | 7 |
8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
9 #include "vm/code_generator.h" | 9 #include "vm/code_generator.h" |
10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 | 914 |
915 void Assembler::cvtpd2ps(XmmRegister dst, XmmRegister src) { | 915 void Assembler::cvtpd2ps(XmmRegister dst, XmmRegister src) { |
916 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 916 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
917 EmitUint8(0x66); | 917 EmitUint8(0x66); |
918 EmitUint8(0x0F); | 918 EmitUint8(0x0F); |
919 EmitUint8(0x5A); | 919 EmitUint8(0x5A); |
920 EmitXmmRegisterOperand(dst, src); | 920 EmitXmmRegisterOperand(dst, src); |
921 } | 921 } |
922 | 922 |
923 | 923 |
| 924 void Assembler::shufpd(XmmRegister dst, XmmRegister src, const Immediate& imm) { |
| 925 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 926 EmitUint8(0x66); |
| 927 EmitUint8(0x0F); |
| 928 EmitUint8(0xC6); |
| 929 EmitXmmRegisterOperand(dst, src); |
| 930 ASSERT(imm.is_uint8()); |
| 931 EmitUint8(imm.value()); |
| 932 } |
| 933 |
| 934 |
924 void Assembler::subsd(XmmRegister dst, XmmRegister src) { | 935 void Assembler::subsd(XmmRegister dst, XmmRegister src) { |
925 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 936 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
926 EmitUint8(0xF2); | 937 EmitUint8(0xF2); |
927 EmitUint8(0x0F); | 938 EmitUint8(0x0F); |
928 EmitUint8(0x5C); | 939 EmitUint8(0x5C); |
929 EmitXmmRegisterOperand(dst, src); | 940 EmitXmmRegisterOperand(dst, src); |
930 } | 941 } |
931 | 942 |
932 | 943 |
933 void Assembler::subsd(XmmRegister dst, const Address& src) { | 944 void Assembler::subsd(XmmRegister dst, const Address& src) { |
(...skipping 1714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2648 | 2659 |
2649 const char* Assembler::FpuRegisterName(FpuRegister reg) { | 2660 const char* Assembler::FpuRegisterName(FpuRegister reg) { |
2650 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); | 2661 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); |
2651 return xmm_reg_names[reg]; | 2662 return xmm_reg_names[reg]; |
2652 } | 2663 } |
2653 | 2664 |
2654 | 2665 |
2655 } // namespace dart | 2666 } // namespace dart |
2656 | 2667 |
2657 #endif // defined TARGET_ARCH_IA32 | 2668 #endif // defined TARGET_ARCH_IA32 |
OLD | NEW |