OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/x64/assembler-x64.h" | 5 #include "src/x64/assembler-x64.h" |
6 | 6 |
7 #include <cstring> | 7 #include <cstring> |
8 | 8 |
9 #if V8_TARGET_ARCH_X64 | 9 #if V8_TARGET_ARCH_X64 |
10 | 10 |
(...skipping 2945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2956 } else { | 2956 } else { |
2957 emit(0x66); | 2957 emit(0x66); |
2958 emit_optional_rex_32(dst, src); | 2958 emit_optional_rex_32(dst, src); |
2959 emit(0x0F); | 2959 emit(0x0F); |
2960 emit(0x28); | 2960 emit(0x28); |
2961 emit_sse_operand(dst, src); | 2961 emit_sse_operand(dst, src); |
2962 } | 2962 } |
2963 } | 2963 } |
2964 | 2964 |
2965 | 2965 |
| 2966 void Assembler::movupd(XMMRegister dst, const Operand& src) { |
| 2967 EnsureSpace ensure_space(this); |
| 2968 emit(0x66); |
| 2969 emit_optional_rex_32(dst, src); |
| 2970 emit(0x0F); |
| 2971 emit(0x10); |
| 2972 emit_sse_operand(dst, src); |
| 2973 } |
| 2974 |
| 2975 void Assembler::movupd(const Operand& dst, XMMRegister src) { |
| 2976 EnsureSpace ensure_space(this); |
| 2977 emit(0x66); |
| 2978 emit_optional_rex_32(src, dst); |
| 2979 emit(0x0F); |
| 2980 emit(0x11); |
| 2981 emit_sse_operand(src, dst); |
| 2982 } |
| 2983 |
2966 void Assembler::addss(XMMRegister dst, XMMRegister src) { | 2984 void Assembler::addss(XMMRegister dst, XMMRegister src) { |
2967 EnsureSpace ensure_space(this); | 2985 EnsureSpace ensure_space(this); |
2968 emit(0xF3); | 2986 emit(0xF3); |
2969 emit_optional_rex_32(dst, src); | 2987 emit_optional_rex_32(dst, src); |
2970 emit(0x0F); | 2988 emit(0x0F); |
2971 emit(0x58); | 2989 emit(0x58); |
2972 emit_sse_operand(dst, src); | 2990 emit_sse_operand(dst, src); |
2973 } | 2991 } |
2974 | 2992 |
2975 | 2993 |
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3598 void Assembler::andpd(XMMRegister dst, XMMRegister src) { | 3616 void Assembler::andpd(XMMRegister dst, XMMRegister src) { |
3599 EnsureSpace ensure_space(this); | 3617 EnsureSpace ensure_space(this); |
3600 emit(0x66); | 3618 emit(0x66); |
3601 emit_optional_rex_32(dst, src); | 3619 emit_optional_rex_32(dst, src); |
3602 emit(0x0F); | 3620 emit(0x0F); |
3603 emit(0x54); | 3621 emit(0x54); |
3604 emit_sse_operand(dst, src); | 3622 emit_sse_operand(dst, src); |
3605 } | 3623 } |
3606 | 3624 |
3607 | 3625 |
| 3626 void Assembler::andpd(XMMRegister dst, const Operand& src) { |
| 3627 EnsureSpace ensure_space(this); |
| 3628 emit(0x66); |
| 3629 emit_optional_rex_32(dst, src); |
| 3630 emit(0x0F); |
| 3631 emit(0x54); |
| 3632 emit_sse_operand(dst, src); |
| 3633 } |
| 3634 |
| 3635 |
3608 void Assembler::orpd(XMMRegister dst, XMMRegister src) { | 3636 void Assembler::orpd(XMMRegister dst, XMMRegister src) { |
3609 EnsureSpace ensure_space(this); | 3637 EnsureSpace ensure_space(this); |
3610 emit(0x66); | 3638 emit(0x66); |
3611 emit_optional_rex_32(dst, src); | 3639 emit_optional_rex_32(dst, src); |
3612 emit(0x0F); | 3640 emit(0x0F); |
3613 emit(0x56); | 3641 emit(0x56); |
3614 emit_sse_operand(dst, src); | 3642 emit_sse_operand(dst, src); |
3615 } | 3643 } |
3616 | 3644 |
3617 | 3645 |
| 3646 void Assembler::orpd(XMMRegister dst, const Operand& src) { |
| 3647 EnsureSpace ensure_space(this); |
| 3648 emit(0x66); |
| 3649 emit_optional_rex_32(dst, src); |
| 3650 emit(0x0F); |
| 3651 emit(0x56); |
| 3652 emit_sse_operand(dst, src); |
| 3653 } |
| 3654 |
| 3655 |
3618 void Assembler::xorpd(XMMRegister dst, XMMRegister src) { | 3656 void Assembler::xorpd(XMMRegister dst, XMMRegister src) { |
3619 DCHECK(!IsEnabled(AVX)); | 3657 DCHECK(!IsEnabled(AVX)); |
3620 EnsureSpace ensure_space(this); | 3658 EnsureSpace ensure_space(this); |
3621 emit(0x66); | 3659 emit(0x66); |
3622 emit_optional_rex_32(dst, src); | 3660 emit_optional_rex_32(dst, src); |
3623 emit(0x0F); | 3661 emit(0x0F); |
3624 emit(0x57); | 3662 emit(0x57); |
3625 emit_sse_operand(dst, src); | 3663 emit_sse_operand(dst, src); |
3626 } | 3664 } |
3627 | 3665 |
3628 | 3666 |
| 3667 void Assembler::xorpd(XMMRegister dst, const Operand& src) { |
| 3668 DCHECK(!IsEnabled(AVX)); |
| 3669 EnsureSpace ensure_space(this); |
| 3670 emit(0x66); |
| 3671 emit_optional_rex_32(dst, src); |
| 3672 emit(0x0F); |
| 3673 emit(0x57); |
| 3674 emit_sse_operand(dst, src); |
| 3675 } |
| 3676 |
| 3677 |
3629 void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) { | 3678 void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) { |
3630 DCHECK(!IsEnabled(AVX)); | 3679 DCHECK(!IsEnabled(AVX)); |
3631 EnsureSpace ensure_space(this); | 3680 EnsureSpace ensure_space(this); |
3632 emit(0xF2); | 3681 emit(0xF2); |
3633 emit_optional_rex_32(dst, src); | 3682 emit_optional_rex_32(dst, src); |
3634 emit(0x0F); | 3683 emit(0x0F); |
3635 emit(0x51); | 3684 emit(0x51); |
3636 emit_sse_operand(dst, src); | 3685 emit_sse_operand(dst, src); |
3637 } | 3686 } |
3638 | 3687 |
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4566 | 4615 |
4567 bool RelocInfo::IsInConstantPool() { | 4616 bool RelocInfo::IsInConstantPool() { |
4568 return false; | 4617 return false; |
4569 } | 4618 } |
4570 | 4619 |
4571 | 4620 |
4572 } // namespace internal | 4621 } // namespace internal |
4573 } // namespace v8 | 4622 } // namespace v8 |
4574 | 4623 |
4575 #endif // V8_TARGET_ARCH_X64 | 4624 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |