Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: src/x64/assembler-x64.h

Issue 974313002: [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed Svens comment. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/x64/assembler-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 void subps(XMMRegister dst, const Operand& src); 1057 void subps(XMMRegister dst, const Operand& src);
1058 void mulps(XMMRegister dst, XMMRegister src); 1058 void mulps(XMMRegister dst, XMMRegister src);
1059 void mulps(XMMRegister dst, const Operand& src); 1059 void mulps(XMMRegister dst, const Operand& src);
1060 void divps(XMMRegister dst, XMMRegister src); 1060 void divps(XMMRegister dst, XMMRegister src);
1061 void divps(XMMRegister dst, const Operand& src); 1061 void divps(XMMRegister dst, const Operand& src);
1062 1062
1063 void movmskps(Register dst, XMMRegister src); 1063 void movmskps(Register dst, XMMRegister src);
1064 1064
1065 // SSE2 instructions 1065 // SSE2 instructions
1066 void movd(XMMRegister dst, Register src); 1066 void movd(XMMRegister dst, Register src);
1067 void movd(XMMRegister dst, const Operand& src);
1067 void movd(Register dst, XMMRegister src); 1068 void movd(Register dst, XMMRegister src);
1068 void movq(XMMRegister dst, Register src); 1069 void movq(XMMRegister dst, Register src);
1069 void movq(Register dst, XMMRegister src); 1070 void movq(Register dst, XMMRegister src);
1070 void movq(XMMRegister dst, XMMRegister src); 1071 void movq(XMMRegister dst, XMMRegister src);
1071 1072
1072 // Don't use this unless it's important to keep the 1073 // Don't use this unless it's important to keep the
1073 // top half of the destination register unchanged. 1074 // top half of the destination register unchanged.
1074 // Used movaps when moving double values and movq for integer 1075 // Used movaps when moving double values and movq for integer
1075 // values in xmm registers. 1076 // values in xmm registers.
1076 void movsd(XMMRegister dst, XMMRegister src); 1077 void movsd(XMMRegister dst, XMMRegister src);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 void sqrtsd(XMMRegister dst, XMMRegister src); 1126 void sqrtsd(XMMRegister dst, XMMRegister src);
1126 void sqrtsd(XMMRegister dst, const Operand& src); 1127 void sqrtsd(XMMRegister dst, const Operand& src);
1127 1128
1128 void ucomisd(XMMRegister dst, XMMRegister src); 1129 void ucomisd(XMMRegister dst, XMMRegister src);
1129 void ucomisd(XMMRegister dst, const Operand& src); 1130 void ucomisd(XMMRegister dst, const Operand& src);
1130 void cmpltsd(XMMRegister dst, XMMRegister src); 1131 void cmpltsd(XMMRegister dst, XMMRegister src);
1131 void pcmpeqd(XMMRegister dst, XMMRegister src); 1132 void pcmpeqd(XMMRegister dst, XMMRegister src);
1132 1133
1133 void movmskpd(Register dst, XMMRegister src); 1134 void movmskpd(Register dst, XMMRegister src);
1134 1135
1136 void punpckldq(XMMRegister dst, XMMRegister src);
1137 void punpckhdq(XMMRegister dst, XMMRegister src);
1138
1135 // SSE 4.1 instruction 1139 // SSE 4.1 instruction
1136 void extractps(Register dst, XMMRegister src, byte imm8); 1140 void extractps(Register dst, XMMRegister src, byte imm8);
1137 1141
1142 void pextrd(Register dst, XMMRegister src, int8_t imm8);
1143
1144 void pinsrd(XMMRegister dst, Register src, int8_t imm8);
1145 void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8);
1146
1138 enum RoundingMode { 1147 enum RoundingMode {
1139 kRoundToNearest = 0x0, 1148 kRoundToNearest = 0x0,
1140 kRoundDown = 0x1, 1149 kRoundDown = 0x1,
1141 kRoundUp = 0x2, 1150 kRoundUp = 0x2,
1142 kRoundToZero = 0x3 1151 kRoundToZero = 0x3
1143 }; 1152 };
1144 1153
1145 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); 1154 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode);
1146 1155
1147 // AVX instruction 1156 // AVX instruction
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
1854 private: 1863 private:
1855 Assembler* assembler_; 1864 Assembler* assembler_;
1856 #ifdef DEBUG 1865 #ifdef DEBUG
1857 int space_before_; 1866 int space_before_;
1858 #endif 1867 #endif
1859 }; 1868 };
1860 1869
1861 } } // namespace v8::internal 1870 } } // namespace v8::internal
1862 1871
1863 #endif // V8_X64_ASSEMBLER_X64_H_ 1872 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/x64/assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698