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

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

Issue 2139513002: [Turbofan] Support 128 bit moves/swaps for x64. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Macroassembler supports xorps/vxorps. Created 4 years, 5 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/compiler/x64/code-generator-x64.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 1513 matching lines...) Expand 10 before | Expand all | Expand 10 after
1524 } 1524 }
1525 void vmovss(const Operand& dst, XMMRegister src) { 1525 void vmovss(const Operand& dst, XMMRegister src) {
1526 vss(0x11, src, xmm0, dst); 1526 vss(0x11, src, xmm0, dst);
1527 } 1527 }
1528 void vucomiss(XMMRegister dst, XMMRegister src); 1528 void vucomiss(XMMRegister dst, XMMRegister src);
1529 void vucomiss(XMMRegister dst, const Operand& src); 1529 void vucomiss(XMMRegister dst, const Operand& src);
1530 void vss(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2); 1530 void vss(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1531 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); 1531 void vss(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1532 1532
1533 void vmovaps(XMMRegister dst, XMMRegister src) { vps(0x28, dst, xmm0, src); } 1533 void vmovaps(XMMRegister dst, XMMRegister src) { vps(0x28, dst, xmm0, src); }
1534 void vmovups(XMMRegister dst, XMMRegister src) { vps(0x10, dst, xmm0, src); }
1535 void vmovups(XMMRegister dst, const Operand& src) {
1536 vps(0x11, dst, xmm0, src);
1537 }
1538 void vmovups(const Operand& dst, XMMRegister src) {
1539 vps(0x11, dst, xmm0, src);
1540 }
1534 void vmovapd(XMMRegister dst, XMMRegister src) { vpd(0x28, dst, xmm0, src); } 1541 void vmovapd(XMMRegister dst, XMMRegister src) { vpd(0x28, dst, xmm0, src); }
1535 void vmovmskpd(Register dst, XMMRegister src) { 1542 void vmovmskpd(Register dst, XMMRegister src) {
1536 XMMRegister idst = {dst.code()}; 1543 XMMRegister idst = {dst.code()};
1537 vpd(0x50, idst, xmm0, src); 1544 vpd(0x50, idst, xmm0, src);
1538 } 1545 }
1539 1546
1540 void vps(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2); 1547 void vps(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1541 void vps(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); 1548 void vps(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1549 void vps(byte op, const Operand& dst, XMMRegister src1, XMMRegister src2);
1542 void vpd(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2); 1550 void vpd(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1543 void vpd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); 1551 void vpd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1544 1552
1545 // BMI instruction 1553 // BMI instruction
1546 void andnq(Register dst, Register src1, Register src2) { 1554 void andnq(Register dst, Register src1, Register src2) {
1547 bmi1q(0xf2, dst, src1, src2); 1555 bmi1q(0xf2, dst, src1, src2);
1548 } 1556 }
1549 void andnq(Register dst, Register src1, const Operand& src2) { 1557 void andnq(Register dst, Register src1, const Operand& src2) {
1550 bmi1q(0xf2, dst, src1, src2); 1558 bmi1q(0xf2, dst, src1, src2);
1551 } 1559 }
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
2271 Assembler* assembler_; 2279 Assembler* assembler_;
2272 #ifdef DEBUG 2280 #ifdef DEBUG
2273 int space_before_; 2281 int space_before_;
2274 #endif 2282 #endif
2275 }; 2283 };
2276 2284
2277 } // namespace internal 2285 } // namespace internal
2278 } // namespace v8 2286 } // namespace v8
2279 2287
2280 #endif // V8_X64_ASSEMBLER_X64_H_ 2288 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/compiler/x64/code-generator-x64.cc ('k') | src/x64/assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698