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

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

Issue 1044793002: [turbofan] Add backend support for float32 operations. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add MachineOperator unit tests. Created 5 years, 8 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
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 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 // SSE instructions 1039 // SSE instructions
1040 void addss(XMMRegister dst, XMMRegister src); 1040 void addss(XMMRegister dst, XMMRegister src);
1041 void addss(XMMRegister dst, const Operand& src); 1041 void addss(XMMRegister dst, const Operand& src);
1042 void subss(XMMRegister dst, XMMRegister src); 1042 void subss(XMMRegister dst, XMMRegister src);
1043 void subss(XMMRegister dst, const Operand& src); 1043 void subss(XMMRegister dst, const Operand& src);
1044 void mulss(XMMRegister dst, XMMRegister src); 1044 void mulss(XMMRegister dst, XMMRegister src);
1045 void mulss(XMMRegister dst, const Operand& src); 1045 void mulss(XMMRegister dst, const Operand& src);
1046 void divss(XMMRegister dst, XMMRegister src); 1046 void divss(XMMRegister dst, XMMRegister src);
1047 void divss(XMMRegister dst, const Operand& src); 1047 void divss(XMMRegister dst, const Operand& src);
1048 1048
1049 void maxss(XMMRegister dst, XMMRegister src);
1050 void maxss(XMMRegister dst, const Operand& src);
1051 void minss(XMMRegister dst, XMMRegister src);
1052 void minss(XMMRegister dst, const Operand& src);
1053
1054 void sqrtss(XMMRegister dst, XMMRegister src);
1055 void sqrtss(XMMRegister dst, const Operand& src);
1056
1049 void ucomiss(XMMRegister dst, XMMRegister src); 1057 void ucomiss(XMMRegister dst, XMMRegister src);
1050 void ucomiss(XMMRegister dst, const Operand& src); 1058 void ucomiss(XMMRegister dst, const Operand& src);
1051 void movaps(XMMRegister dst, XMMRegister src); 1059 void movaps(XMMRegister dst, XMMRegister src);
1052 void movss(XMMRegister dst, const Operand& src); 1060 void movss(XMMRegister dst, const Operand& src);
1053 void movss(const Operand& dst, XMMRegister src); 1061 void movss(const Operand& dst, XMMRegister src);
1054 void shufps(XMMRegister dst, XMMRegister src, byte imm8); 1062 void shufps(XMMRegister dst, XMMRegister src, byte imm8);
1055 1063
1056 void cvttss2si(Register dst, const Operand& src); 1064 void cvttss2si(Register dst, const Operand& src);
1057 void cvttss2si(Register dst, XMMRegister src); 1065 void cvttss2si(Register dst, XMMRegister src);
1058 void cvtlsi2ss(XMMRegister dst, Register src); 1066 void cvtlsi2ss(XMMRegister dst, Register src);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1126 1134
1127 void addsd(XMMRegister dst, XMMRegister src); 1135 void addsd(XMMRegister dst, XMMRegister src);
1128 void addsd(XMMRegister dst, const Operand& src); 1136 void addsd(XMMRegister dst, const Operand& src);
1129 void subsd(XMMRegister dst, XMMRegister src); 1137 void subsd(XMMRegister dst, XMMRegister src);
1130 void subsd(XMMRegister dst, const Operand& src); 1138 void subsd(XMMRegister dst, const Operand& src);
1131 void mulsd(XMMRegister dst, XMMRegister src); 1139 void mulsd(XMMRegister dst, XMMRegister src);
1132 void mulsd(XMMRegister dst, const Operand& src); 1140 void mulsd(XMMRegister dst, const Operand& src);
1133 void divsd(XMMRegister dst, XMMRegister src); 1141 void divsd(XMMRegister dst, XMMRegister src);
1134 void divsd(XMMRegister dst, const Operand& src); 1142 void divsd(XMMRegister dst, const Operand& src);
1135 1143
1144 void maxsd(XMMRegister dst, XMMRegister src);
1145 void maxsd(XMMRegister dst, const Operand& src);
1146 void minsd(XMMRegister dst, XMMRegister src);
1147 void minsd(XMMRegister dst, const Operand& src);
1148
1136 void andpd(XMMRegister dst, XMMRegister src); 1149 void andpd(XMMRegister dst, XMMRegister src);
1137 void orpd(XMMRegister dst, XMMRegister src); 1150 void orpd(XMMRegister dst, XMMRegister src);
1138 void xorpd(XMMRegister dst, XMMRegister src); 1151 void xorpd(XMMRegister dst, XMMRegister src);
1139 void sqrtsd(XMMRegister dst, XMMRegister src); 1152 void sqrtsd(XMMRegister dst, XMMRegister src);
1140 void sqrtsd(XMMRegister dst, const Operand& src); 1153 void sqrtsd(XMMRegister dst, const Operand& src);
1141 1154
1142 void ucomisd(XMMRegister dst, XMMRegister src); 1155 void ucomisd(XMMRegister dst, XMMRegister src);
1143 void ucomisd(XMMRegister dst, const Operand& src); 1156 void ucomisd(XMMRegister dst, const Operand& src);
1144 void cmpltsd(XMMRegister dst, XMMRegister src); 1157 void cmpltsd(XMMRegister dst, XMMRegister src);
1145 void pcmpeqd(XMMRegister dst, XMMRegister src); 1158 void pcmpeqd(XMMRegister dst, XMMRegister src);
1146 1159
1147 void movmskpd(Register dst, XMMRegister src); 1160 void movmskpd(Register dst, XMMRegister src);
1148 1161
1149 void punpckldq(XMMRegister dst, XMMRegister src); 1162 void punpckldq(XMMRegister dst, XMMRegister src);
1150 void punpckhdq(XMMRegister dst, XMMRegister src); 1163 void punpckhdq(XMMRegister dst, XMMRegister src);
1151 1164
1152 void maxsd(XMMRegister dst, XMMRegister src);
1153 void maxsd(XMMRegister dst, const Operand& src);
1154 void minsd(XMMRegister dst, XMMRegister src);
1155 void minsd(XMMRegister dst, const Operand& src);
1156
1157 // SSE 4.1 instruction 1165 // SSE 4.1 instruction
1158 void extractps(Register dst, XMMRegister src, byte imm8); 1166 void extractps(Register dst, XMMRegister src, byte imm8);
1159 1167
1160 void pextrd(Register dst, XMMRegister src, int8_t imm8); 1168 void pextrd(Register dst, XMMRegister src, int8_t imm8);
1161 1169
1162 void pinsrd(XMMRegister dst, Register src, int8_t imm8); 1170 void pinsrd(XMMRegister dst, Register src, int8_t imm8);
1163 void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8); 1171 void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8);
1164 1172
1165 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); 1173 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode);
1166 1174
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1344 } 1352 }
1345 void vmaxsd(XMMRegister dst, XMMRegister src1, const Operand& src2) { 1353 void vmaxsd(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1346 vsd(0x5f, dst, src1, src2); 1354 vsd(0x5f, dst, src1, src2);
1347 } 1355 }
1348 void vminsd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { 1356 void vminsd(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1349 vsd(0x5d, dst, src1, src2); 1357 vsd(0x5d, dst, src1, src2);
1350 } 1358 }
1351 void vminsd(XMMRegister dst, XMMRegister src1, const Operand& src2) { 1359 void vminsd(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1352 vsd(0x5d, dst, src1, src2); 1360 vsd(0x5d, dst, src1, src2);
1353 } 1361 }
1362 void vucomisd(XMMRegister dst, XMMRegister src);
1363 void vucomisd(XMMRegister dst, const Operand& src);
1354 void vsd(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2); 1364 void vsd(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1355 void vsd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); 1365 void vsd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1356 1366
1367 void vaddss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1368 vss(0x58, dst, src1, src2);
1369 }
1370 void vaddss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1371 vss(0x58, dst, src1, src2);
1372 }
1373 void vsubss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1374 vss(0x5c, dst, src1, src2);
1375 }
1376 void vsubss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1377 vss(0x5c, dst, src1, src2);
1378 }
1379 void vmulss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1380 vss(0x59, dst, src1, src2);
1381 }
1382 void vmulss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1383 vss(0x59, dst, src1, src2);
1384 }
1385 void vdivss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1386 vss(0x5e, dst, src1, src2);
1387 }
1388 void vdivss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1389 vss(0x5e, dst, src1, src2);
1390 }
1391 void vmaxss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1392 vss(0x5f, dst, src1, src2);
1393 }
1394 void vmaxss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1395 vss(0x5f, dst, src1, src2);
1396 }
1397 void vminss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1398 vss(0x5d, dst, src1, src2);
1399 }
1400 void vminss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1401 vss(0x5d, dst, src1, src2);
1402 }
1403 void vucomiss(XMMRegister dst, XMMRegister src);
1404 void vucomiss(XMMRegister dst, const Operand& src);
1405 void vss(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1406 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1407
1357 // Debugging 1408 // Debugging
1358 void Print(); 1409 void Print();
1359 1410
1360 // Check the code size generated from label to here. 1411 // Check the code size generated from label to here.
1361 int SizeOfCodeGeneratedSince(Label* label) { 1412 int SizeOfCodeGeneratedSince(Label* label) {
1362 return pc_offset() - label->pos(); 1413 return pc_offset() - label->pos();
1363 } 1414 }
1364 1415
1365 // Mark address of the ExitJSFrame code. 1416 // Mark address of the ExitJSFrame code.
1366 void RecordJSReturn(); 1417 void RecordJSReturn();
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
1886 private: 1937 private:
1887 Assembler* assembler_; 1938 Assembler* assembler_;
1888 #ifdef DEBUG 1939 #ifdef DEBUG
1889 int space_before_; 1940 int space_before_;
1890 #endif 1941 #endif
1891 }; 1942 };
1892 1943
1893 } } // namespace v8::internal 1944 } } // namespace v8::internal
1894 1945
1895 #endif // V8_X64_ASSEMBLER_X64_H_ 1946 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698