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

Side by Side Diff: src/IceInstX8632.h

Issue 412353005: Use movss to implement insertelement when elements = 4 and index = 0. (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Created 6 years, 4 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/IceInstX8632.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceInstX8632.h - Low-level x86 instructions --*- C++ -*-===// 1 //===- subzero/src/IceInstX8632.h - Low-level x86 instructions --*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file declares the InstX8632 and OperandX8632 classes and 10 // This file declares the InstX8632 and OperandX8632 classes and
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 virtual ~InstX8632ThreeAddressop() {} 545 virtual ~InstX8632ThreeAddressop() {}
546 static const char *Opcode; 546 static const char *Opcode;
547 }; 547 };
548 548
549 typedef InstX8632Inplaceop<InstX8632::Bswap> InstX8632Bswap; 549 typedef InstX8632Inplaceop<InstX8632::Bswap> InstX8632Bswap;
550 typedef InstX8632Inplaceop<InstX8632::Neg> InstX8632Neg; 550 typedef InstX8632Inplaceop<InstX8632::Neg> InstX8632Neg;
551 typedef InstX8632Unaryop<InstX8632::Bsf> InstX8632Bsf; 551 typedef InstX8632Unaryop<InstX8632::Bsf> InstX8632Bsf;
552 typedef InstX8632Unaryop<InstX8632::Bsr> InstX8632Bsr; 552 typedef InstX8632Unaryop<InstX8632::Bsr> InstX8632Bsr;
553 typedef InstX8632Unaryop<InstX8632::Lea> InstX8632Lea; 553 typedef InstX8632Unaryop<InstX8632::Lea> InstX8632Lea;
554 typedef InstX8632Unaryop<InstX8632::Movd> InstX8632Movd; 554 typedef InstX8632Unaryop<InstX8632::Movd> InstX8632Movd;
555 typedef InstX8632Unaryop<InstX8632::Movss> InstX8632Movss;
556 typedef InstX8632Unaryop<InstX8632::Sqrtss> InstX8632Sqrtss; 555 typedef InstX8632Unaryop<InstX8632::Sqrtss> InstX8632Sqrtss;
557 typedef InstX8632Binop<InstX8632::Add> InstX8632Add; 556 typedef InstX8632Binop<InstX8632::Add> InstX8632Add;
558 typedef InstX8632Binop<InstX8632::Addps> InstX8632Addps; 557 typedef InstX8632Binop<InstX8632::Addps> InstX8632Addps;
559 typedef InstX8632Binop<InstX8632::Adc> InstX8632Adc; 558 typedef InstX8632Binop<InstX8632::Adc> InstX8632Adc;
560 typedef InstX8632Binop<InstX8632::Addss> InstX8632Addss; 559 typedef InstX8632Binop<InstX8632::Addss> InstX8632Addss;
561 typedef InstX8632Binop<InstX8632::Padd> InstX8632Padd; 560 typedef InstX8632Binop<InstX8632::Padd> InstX8632Padd;
562 typedef InstX8632Binop<InstX8632::Sub> InstX8632Sub; 561 typedef InstX8632Binop<InstX8632::Sub> InstX8632Sub;
563 typedef InstX8632Binop<InstX8632::Subps> InstX8632Subps; 562 typedef InstX8632Binop<InstX8632::Subps> InstX8632Subps;
564 typedef InstX8632Binop<InstX8632::Subss> InstX8632Subss; 563 typedef InstX8632Binop<InstX8632::Subss> InstX8632Subss;
565 typedef InstX8632Binop<InstX8632::Sbb> InstX8632Sbb; 564 typedef InstX8632Binop<InstX8632::Sbb> InstX8632Sbb;
(...skipping 13 matching lines...) Expand all
579 typedef InstX8632Binop<InstX8632::Divps> InstX8632Divps; 578 typedef InstX8632Binop<InstX8632::Divps> InstX8632Divps;
580 typedef InstX8632Binop<InstX8632::Divss> InstX8632Divss; 579 typedef InstX8632Binop<InstX8632::Divss> InstX8632Divss;
581 typedef InstX8632Binop<InstX8632::Rol, true> InstX8632Rol; 580 typedef InstX8632Binop<InstX8632::Rol, true> InstX8632Rol;
582 typedef InstX8632Binop<InstX8632::Shl, true> InstX8632Shl; 581 typedef InstX8632Binop<InstX8632::Shl, true> InstX8632Shl;
583 typedef InstX8632Binop<InstX8632::Psll> InstX8632Psll; 582 typedef InstX8632Binop<InstX8632::Psll> InstX8632Psll;
584 typedef InstX8632Binop<InstX8632::Shr, true> InstX8632Shr; 583 typedef InstX8632Binop<InstX8632::Shr, true> InstX8632Shr;
585 typedef InstX8632Binop<InstX8632::Sar, true> InstX8632Sar; 584 typedef InstX8632Binop<InstX8632::Sar, true> InstX8632Sar;
586 typedef InstX8632Binop<InstX8632::Psra> InstX8632Psra; 585 typedef InstX8632Binop<InstX8632::Psra> InstX8632Psra;
587 typedef InstX8632Binop<InstX8632::Pcmpeq> InstX8632Pcmpeq; 586 typedef InstX8632Binop<InstX8632::Pcmpeq> InstX8632Pcmpeq;
588 typedef InstX8632Binop<InstX8632::Pcmpgt> InstX8632Pcmpgt; 587 typedef InstX8632Binop<InstX8632::Pcmpgt> InstX8632Pcmpgt;
588 typedef InstX8632Binop<InstX8632::Movss> InstX8632Movss;
Jim Stichnoth 2014/07/25 20:07:12 Could you add a TODO here, or somewhere appropriat
wala 2014/07/25 22:57:41 Done. Per our discussion, movss is a binary op on
589 typedef InstX8632Ternop<InstX8632::Idiv> InstX8632Idiv; 589 typedef InstX8632Ternop<InstX8632::Idiv> InstX8632Idiv;
590 typedef InstX8632Ternop<InstX8632::Div> InstX8632Div; 590 typedef InstX8632Ternop<InstX8632::Div> InstX8632Div;
591 typedef InstX8632Ternop<InstX8632::Pinsrw> InstX8632Pinsrw; 591 typedef InstX8632Ternop<InstX8632::Pinsrw> InstX8632Pinsrw;
592 typedef InstX8632Ternop<InstX8632::Shufps> InstX8632Shufps; 592 typedef InstX8632Ternop<InstX8632::Shufps> InstX8632Shufps;
593 typedef InstX8632ThreeAddressop<InstX8632::Pextrw> InstX8632Pextrw; 593 typedef InstX8632ThreeAddressop<InstX8632::Pextrw> InstX8632Pextrw;
594 typedef InstX8632ThreeAddressop<InstX8632::Pshufd> InstX8632Pshufd; 594 typedef InstX8632ThreeAddressop<InstX8632::Pshufd> InstX8632Pshufd;
595 595
596 // Base class for a lockable x86-32 instruction (emits a locked prefix). 596 // Base class for a lockable x86-32 instruction (emits a locked prefix).
597 class InstX8632Lockable : public InstX8632 { 597 class InstX8632Lockable : public InstX8632 {
598 public: 598 public:
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1173 private: 1173 private:
1174 InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source); 1174 InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source);
1175 InstX8632Xchg(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; 1175 InstX8632Xchg(const InstX8632Xchg &) LLVM_DELETED_FUNCTION;
1176 InstX8632Xchg &operator=(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; 1176 InstX8632Xchg &operator=(const InstX8632Xchg &) LLVM_DELETED_FUNCTION;
1177 virtual ~InstX8632Xchg() {} 1177 virtual ~InstX8632Xchg() {}
1178 }; 1178 };
1179 1179
1180 } // end of namespace Ice 1180 } // end of namespace Ice
1181 1181
1182 #endif // SUBZERO_SRC_ICEINSTX8632_H 1182 #endif // SUBZERO_SRC_ICEINSTX8632_H
OLDNEW
« no previous file with comments | « no previous file | src/IceInstX8632.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698