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

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

Issue 2747783004: [ia32] Supplement shift instructions for SIMD (Closed)
Patch Set: Created 3 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 | « 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 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after
1054 void movsd(const Operand& dst, XMMRegister src); 1054 void movsd(const Operand& dst, XMMRegister src);
1055 1055
1056 1056
1057 void movss(XMMRegister dst, const Operand& src); 1057 void movss(XMMRegister dst, const Operand& src);
1058 void movss(const Operand& dst, XMMRegister src); 1058 void movss(const Operand& dst, XMMRegister src);
1059 void movss(XMMRegister dst, XMMRegister src) { movss(dst, Operand(src)); } 1059 void movss(XMMRegister dst, XMMRegister src) { movss(dst, Operand(src)); }
1060 void extractps(Register dst, XMMRegister src, byte imm8); 1060 void extractps(Register dst, XMMRegister src, byte imm8);
1061 1061
1062 void ptest(XMMRegister dst, XMMRegister src); 1062 void ptest(XMMRegister dst, XMMRegister src);
1063 1063
1064 void psllw(XMMRegister reg, int8_t shift);
1064 void pslld(XMMRegister reg, int8_t shift); 1065 void pslld(XMMRegister reg, int8_t shift);
1066 void psrlw(XMMRegister reg, int8_t shift);
1065 void psrld(XMMRegister reg, int8_t shift); 1067 void psrld(XMMRegister reg, int8_t shift);
1068 void psraw(XMMRegister reg, int8_t shift);
1069 void psrad(XMMRegister reg, int8_t shift);
1066 void psllq(XMMRegister reg, int8_t shift); 1070 void psllq(XMMRegister reg, int8_t shift);
1067 void psllq(XMMRegister dst, XMMRegister src); 1071 void psllq(XMMRegister dst, XMMRegister src);
1068 void psrlq(XMMRegister reg, int8_t shift); 1072 void psrlq(XMMRegister reg, int8_t shift);
1069 void psrlq(XMMRegister dst, XMMRegister src); 1073 void psrlq(XMMRegister dst, XMMRegister src);
1070 void pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle); 1074 void pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle);
1071 void pextrd(Register dst, XMMRegister src, int8_t offset) { 1075 void pextrd(Register dst, XMMRegister src, int8_t offset) {
1072 pextrd(Operand(dst), src, offset); 1076 pextrd(Operand(dst), src, offset);
1073 } 1077 }
1074 void pextrd(const Operand& dst, XMMRegister src, int8_t offset); 1078 void pextrd(const Operand& dst, XMMRegister src, int8_t offset);
1075 void pinsrw(XMMRegister dst, Register src, int8_t offset) { 1079 void pinsrw(XMMRegister dst, Register src, int8_t offset) {
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1299 vss(0x5f, dst, src1, src2); 1303 vss(0x5f, dst, src1, src2);
1300 } 1304 }
1301 void vminss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { 1305 void vminss(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
1302 vminss(dst, src1, Operand(src2)); 1306 vminss(dst, src1, Operand(src2));
1303 } 1307 }
1304 void vminss(XMMRegister dst, XMMRegister src1, const Operand& src2) { 1308 void vminss(XMMRegister dst, XMMRegister src1, const Operand& src2) {
1305 vss(0x5d, dst, src1, src2); 1309 vss(0x5d, dst, src1, src2);
1306 } 1310 }
1307 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); 1311 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1308 1312
1313 void vpsllw(XMMRegister dst, XMMRegister src, int8_t imm8);
1314 void vpslld(XMMRegister dst, XMMRegister src, int8_t imm8);
1315 void vpsrlw(XMMRegister dst, XMMRegister src, int8_t imm8);
1316 void vpsrld(XMMRegister dst, XMMRegister src, int8_t imm8);
1317 void vpsraw(XMMRegister dst, XMMRegister src, int8_t imm8);
1318 void vpsrad(XMMRegister dst, XMMRegister src, int8_t imm8);
1319
1309 // BMI instruction 1320 // BMI instruction
1310 void andn(Register dst, Register src1, Register src2) { 1321 void andn(Register dst, Register src1, Register src2) {
1311 andn(dst, src1, Operand(src2)); 1322 andn(dst, src1, Operand(src2));
1312 } 1323 }
1313 void andn(Register dst, Register src1, const Operand& src2) { 1324 void andn(Register dst, Register src1, const Operand& src2) {
1314 bmi1(0xf2, dst, src1, src2); 1325 bmi1(0xf2, dst, src1, src2);
1315 } 1326 }
1316 void bextr(Register dst, Register src1, Register src2) { 1327 void bextr(Register dst, Register src1, Register src2) {
1317 bextr(dst, Operand(src1), src2); 1328 bextr(dst, Operand(src1), src2);
1318 } 1329 }
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
1644 Assembler* assembler_; 1655 Assembler* assembler_;
1645 #ifdef DEBUG 1656 #ifdef DEBUG
1646 int space_before_; 1657 int space_before_;
1647 #endif 1658 #endif
1648 }; 1659 };
1649 1660
1650 } // namespace internal 1661 } // namespace internal
1651 } // namespace v8 1662 } // namespace v8
1652 1663
1653 #endif // V8_IA32_ASSEMBLER_IA32_H_ 1664 #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