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 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ | 5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ |
6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ | 6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/base/flags.h" | 10 #include "src/base/flags.h" |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 void Cvtqui2sd(XMMRegister dst, Register src, Register tmp); | 824 void Cvtqui2sd(XMMRegister dst, Register src, Register tmp); |
825 | 825 |
826 void Cvtsd2si(Register dst, XMMRegister src); | 826 void Cvtsd2si(Register dst, XMMRegister src); |
827 | 827 |
828 void Cvttss2si(Register dst, XMMRegister src); | 828 void Cvttss2si(Register dst, XMMRegister src); |
829 void Cvttss2si(Register dst, const Operand& src); | 829 void Cvttss2si(Register dst, const Operand& src); |
830 void Cvttsd2si(Register dst, XMMRegister src); | 830 void Cvttsd2si(Register dst, XMMRegister src); |
831 void Cvttsd2si(Register dst, const Operand& src); | 831 void Cvttsd2si(Register dst, const Operand& src); |
832 void Cvttss2siq(Register dst, XMMRegister src); | 832 void Cvttss2siq(Register dst, XMMRegister src); |
833 void Cvttss2siq(Register dst, const Operand& src); | 833 void Cvttss2siq(Register dst, const Operand& src); |
| 834 void Cvtss2siq(Register dst, XMMRegister src); |
| 835 void Cvtss2siq(Register dst, const Operand& src); |
834 void Cvttsd2siq(Register dst, XMMRegister src); | 836 void Cvttsd2siq(Register dst, XMMRegister src); |
835 void Cvttsd2siq(Register dst, const Operand& src); | 837 void Cvttsd2siq(Register dst, const Operand& src); |
| 838 void Cvtsd2siq(Register dst, XMMRegister src); |
| 839 void Cvtsd2siq(Register dst, const Operand& src); |
836 | 840 |
837 // Move if the registers are not identical. | 841 // Move if the registers are not identical. |
838 void Move(Register target, Register source); | 842 void Move(Register target, Register source); |
839 | 843 |
840 // TestBit and Load SharedFunctionInfo special field. | 844 // TestBit and Load SharedFunctionInfo special field. |
841 void TestBitSharedFunctionInfoSpecialField(Register base, | 845 void TestBitSharedFunctionInfoSpecialField(Register base, |
842 int offset, | 846 int offset, |
843 int bit_index); | 847 int bit_index); |
844 void LoadSharedFunctionInfoSpecialField(Register dst, | 848 void LoadSharedFunctionInfoSpecialField(Register dst, |
845 Register base, | 849 Register base, |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
931 AVX_OP2_WITH_TYPE(macro_name, name, const Operand&) | 935 AVX_OP2_WITH_TYPE(macro_name, name, const Operand&) |
932 #define AVX_OP2_XO(macro_name, name) \ | 936 #define AVX_OP2_XO(macro_name, name) \ |
933 AVX_OP2_X(macro_name, name) \ | 937 AVX_OP2_X(macro_name, name) \ |
934 AVX_OP2_O(macro_name, name) | 938 AVX_OP2_O(macro_name, name) |
935 | 939 |
936 AVX_OP2_XO(Addsd, addsd) | 940 AVX_OP2_XO(Addsd, addsd) |
937 AVX_OP2_XO(Subsd, subsd) | 941 AVX_OP2_XO(Subsd, subsd) |
938 AVX_OP2_XO(Mulsd, mulsd) | 942 AVX_OP2_XO(Mulsd, mulsd) |
939 AVX_OP2_XO(Divsd, divsd) | 943 AVX_OP2_XO(Divsd, divsd) |
940 AVX_OP2_X(Andpd, andpd) | 944 AVX_OP2_X(Andpd, andpd) |
| 945 AVX_OP2_X(Andps, andps) |
941 AVX_OP2_X(Orpd, orpd) | 946 AVX_OP2_X(Orpd, orpd) |
| 947 AVX_OP2_X(Orps, orps) |
942 AVX_OP2_X(Xorpd, xorpd) | 948 AVX_OP2_X(Xorpd, xorpd) |
943 AVX_OP2_X(Pcmpeqd, pcmpeqd) | 949 AVX_OP2_X(Pcmpeqd, pcmpeqd) |
944 AVX_OP2_WITH_TYPE(Psllq, psllq, byte) | 950 AVX_OP2_WITH_TYPE(Psllq, psllq, byte) |
| 951 AVX_OP2_WITH_TYPE(Pslld, pslld, byte) |
945 AVX_OP2_WITH_TYPE(Psrlq, psrlq, byte) | 952 AVX_OP2_WITH_TYPE(Psrlq, psrlq, byte) |
946 | 953 |
947 #undef AVX_OP2_O | 954 #undef AVX_OP2_O |
948 #undef AVX_OP2_X | 955 #undef AVX_OP2_X |
949 #undef AVX_OP2_XO | 956 #undef AVX_OP2_XO |
950 #undef AVX_OP2_WITH_TYPE | 957 #undef AVX_OP2_WITH_TYPE |
951 | 958 |
952 void Movsd(XMMRegister dst, XMMRegister src); | 959 void Movsd(XMMRegister dst, XMMRegister src); |
953 void Movsd(XMMRegister dst, const Operand& src); | 960 void Movsd(XMMRegister dst, const Operand& src); |
954 void Movsd(const Operand& dst, XMMRegister src); | 961 void Movsd(const Operand& dst, XMMRegister src); |
955 void Movss(XMMRegister dst, XMMRegister src); | 962 void Movss(XMMRegister dst, XMMRegister src); |
956 void Movss(XMMRegister dst, const Operand& src); | 963 void Movss(XMMRegister dst, const Operand& src); |
957 void Movss(const Operand& dst, XMMRegister src); | 964 void Movss(const Operand& dst, XMMRegister src); |
958 | 965 |
959 void Movd(XMMRegister dst, Register src); | 966 void Movd(XMMRegister dst, Register src); |
960 void Movd(XMMRegister dst, const Operand& src); | 967 void Movd(XMMRegister dst, const Operand& src); |
961 void Movd(Register dst, XMMRegister src); | 968 void Movd(Register dst, XMMRegister src); |
962 void Movq(XMMRegister dst, Register src); | 969 void Movq(XMMRegister dst, Register src); |
963 void Movq(Register dst, XMMRegister src); | 970 void Movq(Register dst, XMMRegister src); |
964 | 971 |
965 void Movaps(XMMRegister dst, XMMRegister src); | 972 void Movaps(XMMRegister dst, XMMRegister src); |
966 void Movapd(XMMRegister dst, XMMRegister src); | 973 void Movapd(XMMRegister dst, XMMRegister src); |
967 void Movmskpd(Register dst, XMMRegister src); | 974 void Movmskpd(Register dst, XMMRegister src); |
968 | 975 |
969 void Roundss(XMMRegister dst, XMMRegister src, RoundingMode mode); | 976 void Roundss(XMMRegister dst, XMMRegister src, RoundingMode mode); |
| 977 void Roundss(XMMRegister dst, XMMRegister src, Register tmp, XMMRegister xtmp, |
| 978 RoundingMode mode); |
970 void Roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); | 979 void Roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); |
| 980 void Roundsd(XMMRegister dst, XMMRegister src, Register tmp, XMMRegister xtmp, |
| 981 RoundingMode mode); |
971 void Sqrtsd(XMMRegister dst, XMMRegister src); | 982 void Sqrtsd(XMMRegister dst, XMMRegister src); |
972 void Sqrtsd(XMMRegister dst, const Operand& src); | 983 void Sqrtsd(XMMRegister dst, const Operand& src); |
973 | 984 |
974 void Ucomiss(XMMRegister src1, XMMRegister src2); | 985 void Ucomiss(XMMRegister src1, XMMRegister src2); |
975 void Ucomiss(XMMRegister src1, const Operand& src2); | 986 void Ucomiss(XMMRegister src1, const Operand& src2); |
976 void Ucomisd(XMMRegister src1, XMMRegister src2); | 987 void Ucomisd(XMMRegister src1, XMMRegister src2); |
977 void Ucomisd(XMMRegister src1, const Operand& src2); | 988 void Ucomisd(XMMRegister src1, const Operand& src2); |
978 | 989 |
979 // Control Flow | 990 // Control Flow |
980 void Jump(Address destination, RelocInfo::Mode rmode); | 991 void Jump(Address destination, RelocInfo::Mode rmode); |
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1744 } \ | 1755 } \ |
1745 masm-> | 1756 masm-> |
1746 #else | 1757 #else |
1747 #define ACCESS_MASM(masm) masm-> | 1758 #define ACCESS_MASM(masm) masm-> |
1748 #endif | 1759 #endif |
1749 | 1760 |
1750 } // namespace internal | 1761 } // namespace internal |
1751 } // namespace v8 | 1762 } // namespace v8 |
1752 | 1763 |
1753 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 1764 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |