OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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_ |
OLD | NEW |