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

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

Issue 1072343002: [x86] Introduce vandps/vandpd/vxorps/vxorpd. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase 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
« no previous file with comments | « src/compiler/x64/instruction-selector-x64.cc ('k') | 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 1380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1391 shrx(dst, Operand(src1), src2); 1391 shrx(dst, Operand(src1), src2);
1392 } 1392 }
1393 void shrx(Register dst, const Operand& src1, Register src2) { 1393 void shrx(Register dst, const Operand& src1, Register src2) {
1394 bmi2(kF2, 0xf7, dst, src2, src1); 1394 bmi2(kF2, 0xf7, dst, src2, src1);
1395 } 1395 }
1396 void rorx(Register dst, Register src, byte imm8) { 1396 void rorx(Register dst, Register src, byte imm8) {
1397 rorx(dst, Operand(src), imm8); 1397 rorx(dst, Operand(src), imm8);
1398 } 1398 }
1399 void rorx(Register dst, const Operand& src, byte imm8); 1399 void rorx(Register dst, const Operand& src, byte imm8);
1400 1400
1401 #define PACKED_OP_LIST(V) \
1402 V(and, 0x54) \
1403 V(xor, 0x57)
1404
1405 #define AVX_PACKED_OP_DECLARE(name, opcode) \
1406 void v##name##ps(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1407 vps(opcode, dst, src1, Operand(src2)); \
1408 } \
1409 void v##name##ps(XMMRegister dst, XMMRegister src1, const Operand& src2) { \
1410 vps(opcode, dst, src1, src2); \
1411 } \
1412 void v##name##pd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1413 vpd(opcode, dst, src1, Operand(src2)); \
1414 } \
1415 void v##name##pd(XMMRegister dst, XMMRegister src1, const Operand& src2) { \
1416 vpd(opcode, dst, src1, src2); \
1417 }
1418
1419 PACKED_OP_LIST(AVX_PACKED_OP_DECLARE);
1420 void vps(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1421 void vps(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1422 void vpd(byte op, XMMRegister dst, XMMRegister src1, XMMRegister src2);
1423 void vpd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2);
1424
1401 // Prefetch src position into cache level. 1425 // Prefetch src position into cache level.
1402 // Level 1, 2 or 3 specifies CPU cache level. Level 0 specifies a 1426 // Level 1, 2 or 3 specifies CPU cache level. Level 0 specifies a
1403 // non-temporal 1427 // non-temporal
1404 void prefetch(const Operand& src, int level); 1428 void prefetch(const Operand& src, int level);
1405 // TODO(lrn): Need SFENCE for movnt? 1429 // TODO(lrn): Need SFENCE for movnt?
1406 1430
1407 // Check the code size generated from label to here. 1431 // Check the code size generated from label to here.
1408 int SizeOfCodeGeneratedSince(Label* label) { 1432 int SizeOfCodeGeneratedSince(Label* label) {
1409 return pc_offset() - label->pos(); 1433 return pc_offset() - label->pos();
1410 } 1434 }
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1574 private: 1598 private:
1575 Assembler* assembler_; 1599 Assembler* assembler_;
1576 #ifdef DEBUG 1600 #ifdef DEBUG
1577 int space_before_; 1601 int space_before_;
1578 #endif 1602 #endif
1579 }; 1603 };
1580 1604
1581 } } // namespace v8::internal 1605 } } // namespace v8::internal
1582 1606
1583 #endif // V8_IA32_ASSEMBLER_IA32_H_ 1607 #endif // V8_IA32_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/compiler/x64/instruction-selector-x64.cc ('k') | src/ia32/assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698