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

Side by Side Diff: src/assembler_ia32.h

Issue 617593002: Handle imul, pcmpeq, pcmpgt. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: go ahead and optimize i8 Created 6 years, 2 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // 4 //
5 // Modified by the Subzero authors. 5 // Modified by the Subzero authors.
6 // 6 //
7 //===- subzero/src/assembler_ia32.h - Assembler for x86-32 ----------------===// 7 //===- subzero/src/assembler_ia32.h - Assembler for x86-32 ----------------===//
8 // 8 //
9 // The Subzero Code Generator 9 // The Subzero Code Generator
10 // 10 //
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 void xorps(XmmRegister dst, const Address &src); 528 void xorps(XmmRegister dst, const Address &src);
529 void xorps(XmmRegister dst, XmmRegister src); 529 void xorps(XmmRegister dst, XmmRegister src);
530 530
531 void andpd(XmmRegister dst, const Address &src); 531 void andpd(XmmRegister dst, const Address &src);
532 void andpd(XmmRegister dst, XmmRegister src); 532 void andpd(XmmRegister dst, XmmRegister src);
533 533
534 void orpd(XmmRegister dst, XmmRegister src); 534 void orpd(XmmRegister dst, XmmRegister src);
535 535
536 void pextrd(GPRRegister dst, XmmRegister src, const Immediate &imm); 536 void pextrd(GPRRegister dst, XmmRegister src, const Immediate &imm);
537 void pmovsxdq(XmmRegister dst, XmmRegister src); 537 void pmovsxdq(XmmRegister dst, XmmRegister src);
538 void pcmpeqq(XmmRegister dst, XmmRegister src); 538
539 void pcmpeq(Type Ty, XmmRegister dst, XmmRegister src);
540 void pcmpeq(Type Ty, XmmRegister dst, const Address &src);
541 void pcmpgt(Type Ty, XmmRegister dst, XmmRegister src);
542 void pcmpgt(Type Ty, XmmRegister dst, const Address &src);
539 543
540 enum RoundingMode { 544 enum RoundingMode {
541 kRoundToNearest = 0x0, 545 kRoundToNearest = 0x0,
542 kRoundDown = 0x1, 546 kRoundDown = 0x1,
543 kRoundUp = 0x2, 547 kRoundUp = 0x2,
544 kRoundToZero = 0x3 548 kRoundToZero = 0x3
545 }; 549 };
546 void roundsd(XmmRegister dst, XmmRegister src, RoundingMode mode); 550 void roundsd(XmmRegister dst, XmmRegister src, RoundingMode mode);
547 551
548 void flds(const Address &src); 552 void flds(const Address &src);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 void cbw(); 606 void cbw();
603 void cwd(); 607 void cwd();
604 void cdq(); 608 void cdq();
605 609
606 void div(Type Ty, GPRRegister reg); 610 void div(Type Ty, GPRRegister reg);
607 void div(Type Ty, const Address &address); 611 void div(Type Ty, const Address &address);
608 612
609 void idiv(Type Ty, GPRRegister reg); 613 void idiv(Type Ty, GPRRegister reg);
610 void idiv(Type Ty, const Address &address); 614 void idiv(Type Ty, const Address &address);
611 615
612 void imull(GPRRegister dst, GPRRegister src); 616 void imul(Type Ty, GPRRegister dst, GPRRegister src);
613 void imull(GPRRegister reg, const Immediate &imm); 617 void imul(Type Ty, GPRRegister reg, const Immediate &imm);
614 void imull(GPRRegister reg, const Address &address); 618 void imul(Type Ty, GPRRegister reg, const Address &address);
615 619
616 void imull(GPRRegister reg); 620 void imul(Type Ty, GPRRegister reg);
617 void imull(const Address &address); 621 void imul(Type Ty, const Address &address);
618 622
619 void mul(Type Ty, GPRRegister reg); 623 void mul(Type Ty, GPRRegister reg);
620 void mul(Type Ty, const Address &address); 624 void mul(Type Ty, const Address &address);
621 625
622 void incl(GPRRegister reg); 626 void incl(GPRRegister reg);
623 void incl(const Address &address); 627 void incl(const Address &address);
624 628
625 void decl(GPRRegister reg); 629 void decl(GPRRegister reg);
626 void decl(const Address &address); 630 void decl(const Address &address);
627 631
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) { 754 inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) {
751 buffer_.EmitFixup(fixup); 755 buffer_.EmitFixup(fixup);
752 } 756 }
753 757
754 inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); } 758 inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); }
755 759
756 } // end of namespace x86 760 } // end of namespace x86
757 } // end of namespace Ice 761 } // end of namespace Ice
758 762
759 #endif // SUBZERO_SRC_ASSEMBLER_IA32_H_ 763 #endif // SUBZERO_SRC_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698