Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |