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

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

Issue 2870253003: [ia32] Add rcpps, rsqrtps, cvtdq2ps, cvttps2dq (Closed)
Patch Set: Created 3 years, 7 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 | « no previous file | src/ia32/assembler-ia32.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 962 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 void orps(XMMRegister dst, XMMRegister src) { orps(dst, Operand(src)); } 973 void orps(XMMRegister dst, XMMRegister src) { orps(dst, Operand(src)); }
974 974
975 void addps(XMMRegister dst, const Operand& src); 975 void addps(XMMRegister dst, const Operand& src);
976 void addps(XMMRegister dst, XMMRegister src) { addps(dst, Operand(src)); } 976 void addps(XMMRegister dst, XMMRegister src) { addps(dst, Operand(src)); }
977 void subps(XMMRegister dst, const Operand& src); 977 void subps(XMMRegister dst, const Operand& src);
978 void subps(XMMRegister dst, XMMRegister src) { subps(dst, Operand(src)); } 978 void subps(XMMRegister dst, XMMRegister src) { subps(dst, Operand(src)); }
979 void mulps(XMMRegister dst, const Operand& src); 979 void mulps(XMMRegister dst, const Operand& src);
980 void mulps(XMMRegister dst, XMMRegister src) { mulps(dst, Operand(src)); } 980 void mulps(XMMRegister dst, XMMRegister src) { mulps(dst, Operand(src)); }
981 void divps(XMMRegister dst, const Operand& src); 981 void divps(XMMRegister dst, const Operand& src);
982 void divps(XMMRegister dst, XMMRegister src) { divps(dst, Operand(src)); } 982 void divps(XMMRegister dst, XMMRegister src) { divps(dst, Operand(src)); }
983 void rcpps(XMMRegister dst, const Operand& src);
984 void rcpps(XMMRegister dst, XMMRegister src) { rcpps(dst, Operand(src)); }
985 void rsqrtps(XMMRegister dst, const Operand& src);
986 void rsqrtps(XMMRegister dst, XMMRegister src) { rsqrtps(dst, Operand(src)); }
983 987
984 void minps(XMMRegister dst, const Operand& src); 988 void minps(XMMRegister dst, const Operand& src);
985 void minps(XMMRegister dst, XMMRegister src) { minps(dst, Operand(src)); } 989 void minps(XMMRegister dst, XMMRegister src) { minps(dst, Operand(src)); }
986 void maxps(XMMRegister dst, const Operand& src); 990 void maxps(XMMRegister dst, const Operand& src);
987 void maxps(XMMRegister dst, XMMRegister src) { maxps(dst, Operand(src)); } 991 void maxps(XMMRegister dst, XMMRegister src) { maxps(dst, Operand(src)); }
988 992
989 void cmpps(XMMRegister dst, const Operand& src, int8_t cmp); 993 void cmpps(XMMRegister dst, const Operand& src, int8_t cmp);
990 #define SSE_CMP_P(instr, imm8) \ 994 #define SSE_CMP_P(instr, imm8) \
991 void instr##ps(XMMRegister dst, XMMRegister src) { \ 995 void instr##ps(XMMRegister dst, XMMRegister src) { \
992 cmpps(dst, Operand(src), imm8); \ 996 cmpps(dst, Operand(src), imm8); \
(...skipping 23 matching lines...) Expand all
1016 void cvtsi2sd(XMMRegister dst, Register src) { cvtsi2sd(dst, Operand(src)); } 1020 void cvtsi2sd(XMMRegister dst, Register src) { cvtsi2sd(dst, Operand(src)); }
1017 void cvtsi2sd(XMMRegister dst, const Operand& src); 1021 void cvtsi2sd(XMMRegister dst, const Operand& src);
1018 void cvtss2sd(XMMRegister dst, const Operand& src); 1022 void cvtss2sd(XMMRegister dst, const Operand& src);
1019 void cvtss2sd(XMMRegister dst, XMMRegister src) { 1023 void cvtss2sd(XMMRegister dst, XMMRegister src) {
1020 cvtss2sd(dst, Operand(src)); 1024 cvtss2sd(dst, Operand(src));
1021 } 1025 }
1022 void cvtsd2ss(XMMRegister dst, const Operand& src); 1026 void cvtsd2ss(XMMRegister dst, const Operand& src);
1023 void cvtsd2ss(XMMRegister dst, XMMRegister src) { 1027 void cvtsd2ss(XMMRegister dst, XMMRegister src) {
1024 cvtsd2ss(dst, Operand(src)); 1028 cvtsd2ss(dst, Operand(src));
1025 } 1029 }
1030 void cvtdq2ps(XMMRegister dst, XMMRegister src) {
1031 cvtdq2ps(dst, Operand(src));
1032 }
1033 void cvtdq2ps(XMMRegister dst, const Operand& src);
1034 void cvttps2dq(XMMRegister dst, XMMRegister src) {
1035 cvttps2dq(dst, Operand(src));
1036 }
1037 void cvttps2dq(XMMRegister dst, const Operand& src);
1038
1026 void addsd(XMMRegister dst, XMMRegister src) { addsd(dst, Operand(src)); } 1039 void addsd(XMMRegister dst, XMMRegister src) { addsd(dst, Operand(src)); }
1027 void addsd(XMMRegister dst, const Operand& src); 1040 void addsd(XMMRegister dst, const Operand& src);
1028 void subsd(XMMRegister dst, XMMRegister src) { subsd(dst, Operand(src)); } 1041 void subsd(XMMRegister dst, XMMRegister src) { subsd(dst, Operand(src)); }
1029 void subsd(XMMRegister dst, const Operand& src); 1042 void subsd(XMMRegister dst, const Operand& src);
1030 void mulsd(XMMRegister dst, XMMRegister src) { mulsd(dst, Operand(src)); } 1043 void mulsd(XMMRegister dst, XMMRegister src) { mulsd(dst, Operand(src)); }
1031 void mulsd(XMMRegister dst, const Operand& src); 1044 void mulsd(XMMRegister dst, const Operand& src);
1032 void divsd(XMMRegister dst, XMMRegister src) { divsd(dst, Operand(src)); } 1045 void divsd(XMMRegister dst, XMMRegister src) { divsd(dst, Operand(src)); }
1033 void divsd(XMMRegister dst, const Operand& src); 1046 void divsd(XMMRegister dst, const Operand& src);
1034 void xorpd(XMMRegister dst, XMMRegister src); 1047 void xorpd(XMMRegister dst, XMMRegister src);
1035 void sqrtsd(XMMRegister dst, XMMRegister src) { sqrtsd(dst, Operand(src)); } 1048 void sqrtsd(XMMRegister dst, XMMRegister src) { sqrtsd(dst, Operand(src)); }
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 vss(0x5f, dst, src1, src2); 1337 vss(0x5f, dst, src1, src2);
1325 } 1338 }
1326 void vminss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { 1339 void vminss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1327 vminss(dst, src1, Operand(src2)); 1340 vminss(dst, src1, Operand(src2));
1328 } 1341 }
1329 void vminss(XMMRegister dst, XMMRegister src1, const Operand& src2) { 1342 void vminss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1330 vss(0x5d, dst, src1, src2); 1343 vss(0x5d, dst, src1, src2);
1331 } 1344 }
1332 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); 1345 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1333 1346
1347 void vrcpps(XMMRegister dst, XMMRegister src) { vrcpps(dst, Operand(src)); }
1348 void vrcpps(XMMRegister dst, const Operand& src) {
1349 vinstr(0x53, dst, xmm0, src, kNone, k0F, kWIG);
1350 }
1351 void vrsqrtps(XMMRegister dst, XMMRegister src) {
1352 vrsqrtps(dst, Operand(src));
1353 }
1354 void vrsqrtps(XMMRegister dst, const Operand& src) {
1355 vinstr(0x52, dst, xmm0, src, kNone, k0F, kWIG);
1356 }
1357
1334 void vpsllw(XMMRegister dst, XMMRegister src, int8_t imm8); 1358 void vpsllw(XMMRegister dst, XMMRegister src, int8_t imm8);
1335 void vpslld(XMMRegister dst, XMMRegister src, int8_t imm8); 1359 void vpslld(XMMRegister dst, XMMRegister src, int8_t imm8);
1336 void vpsrlw(XMMRegister dst, XMMRegister src, int8_t imm8); 1360 void vpsrlw(XMMRegister dst, XMMRegister src, int8_t imm8);
1337 void vpsrld(XMMRegister dst, XMMRegister src, int8_t imm8); 1361 void vpsrld(XMMRegister dst, XMMRegister src, int8_t imm8);
1338 void vpsraw(XMMRegister dst, XMMRegister src, int8_t imm8); 1362 void vpsraw(XMMRegister dst, XMMRegister src, int8_t imm8);
1339 void vpsrad(XMMRegister dst, XMMRegister src, int8_t imm8); 1363 void vpsrad(XMMRegister dst, XMMRegister src, int8_t imm8);
1340 1364
1365 void vcvtdq2ps(XMMRegister dst, XMMRegister src) {
1366 vcvtdq2ps(dst, Operand(src));
1367 }
1368 void vcvtdq2ps(XMMRegister dst, const Operand& src) {
1369 vinstr(0x5B, dst, xmm0, src, kNone, k0F, kWIG);
1370 }
1371 void vcvttps2dq(XMMRegister dst, XMMRegister src) {
1372 vcvttps2dq(dst, Operand(src));
1373 }
1374 void vcvttps2dq(XMMRegister dst, const Operand& src) {
1375 vinstr(0x5B, dst, xmm0, src, kF3, k0F, kWIG);
1376 }
1377
1341 // BMI instruction 1378 // BMI instruction
1342 void andn(Register dst, Register src1, Register src2) { 1379 void andn(Register dst, Register src1, Register src2) {
1343 andn(dst, src1, Operand(src2)); 1380 andn(dst, src1, Operand(src2));
1344 } 1381 }
1345 void andn(Register dst, Register src1, const Operand& src2) { 1382 void andn(Register dst, Register src1, const Operand& src2) {
1346 bmi1(0xf2, dst, src1, src2); 1383 bmi1(0xf2, dst, src1, src2);
1347 } 1384 }
1348 void bextr(Register dst, Register src1, Register src2) { 1385 void bextr(Register dst, Register src1, Register src2) {
1349 bextr(dst, Operand(src1), src2); 1386 bextr(dst, Operand(src1), src2);
1350 } 1387 }
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
1699 Assembler* assembler_; 1736 Assembler* assembler_;
1700 #ifdef DEBUG 1737 #ifdef DEBUG
1701 int space_before_; 1738 int space_before_;
1702 #endif 1739 #endif
1703 }; 1740 };
1704 1741
1705 } // namespace internal 1742 } // namespace internal
1706 } // namespace v8 1743 } // namespace v8
1707 1744
1708 #endif // V8_IA32_ASSEMBLER_IA32_H_ 1745 #endif // V8_IA32_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « no previous file | src/ia32/assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698