| 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 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 Push, | 164 Push, |
| 165 Pxor, | 165 Pxor, |
| 166 Ret, | 166 Ret, |
| 167 Sar, | 167 Sar, |
| 168 Sbb, | 168 Sbb, |
| 169 Shl, | 169 Shl, |
| 170 Shld, | 170 Shld, |
| 171 Shr, | 171 Shr, |
| 172 Shrd, | 172 Shrd, |
| 173 Store, | 173 Store, |
| 174 Storep, |
| 174 StoreQ, | 175 StoreQ, |
| 175 Sub, | 176 Sub, |
| 176 Subss, | 177 Subss, |
| 177 Test, | 178 Test, |
| 178 Ucomiss, | 179 Ucomiss, |
| 179 UD2, | 180 UD2, |
| 180 Xadd, | 181 Xadd, |
| 181 Xor | 182 Xor |
| 182 }; | 183 }; |
| 183 static const char *getWidthString(Type Ty); | 184 static const char *getWidthString(Type Ty); |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 virtual void dump(const Cfg *Func) const; | 616 virtual void dump(const Cfg *Func) const; |
| 616 static bool classof(const Inst *Inst) { return isClassof(Inst, Store); } | 617 static bool classof(const Inst *Inst) { return isClassof(Inst, Store); } |
| 617 | 618 |
| 618 private: | 619 private: |
| 619 InstX8632Store(Cfg *Func, Operand *Value, OperandX8632 *Mem); | 620 InstX8632Store(Cfg *Func, Operand *Value, OperandX8632 *Mem); |
| 620 InstX8632Store(const InstX8632Store &) LLVM_DELETED_FUNCTION; | 621 InstX8632Store(const InstX8632Store &) LLVM_DELETED_FUNCTION; |
| 621 InstX8632Store &operator=(const InstX8632Store &) LLVM_DELETED_FUNCTION; | 622 InstX8632Store &operator=(const InstX8632Store &) LLVM_DELETED_FUNCTION; |
| 622 virtual ~InstX8632Store() {} | 623 virtual ~InstX8632Store() {} |
| 623 }; | 624 }; |
| 624 | 625 |
| 626 // Store packed - wrapper for storing vectors |
| 627 class InstX8632Storep : public InstX8632 { |
| 628 public: |
| 629 static InstX8632Storep *create(Cfg *Func, Operand *Value, OperandX8632 *Mem) { |
| 630 return new (Func->allocate<InstX8632Storep>()) |
| 631 InstX8632Storep(Func, Value, Mem); |
| 632 } |
| 633 virtual void emit(const Cfg *Func) const; |
| 634 virtual void dump(const Cfg *Func) const; |
| 635 static bool classof(const Inst *Inst) { return isClassof(Inst, Storep); } |
| 636 |
| 637 private: |
| 638 InstX8632Storep(Cfg *Func, Operand *Value, OperandX8632 *Mem); |
| 639 InstX8632Storep(const InstX8632Storep &) LLVM_DELETED_FUNCTION; |
| 640 InstX8632Storep &operator=(const InstX8632Storep &) LLVM_DELETED_FUNCTION; |
| 641 virtual ~InstX8632Storep() {} |
| 642 }; |
| 643 |
| 625 // Move/assignment instruction - wrapper for mov/movss/movsd. | 644 // Move/assignment instruction - wrapper for mov/movss/movsd. |
| 626 class InstX8632Mov : public InstX8632 { | 645 class InstX8632Mov : public InstX8632 { |
| 627 public: | 646 public: |
| 628 static InstX8632Mov *create(Cfg *Func, Variable *Dest, Operand *Source) { | 647 static InstX8632Mov *create(Cfg *Func, Variable *Dest, Operand *Source) { |
| 629 return new (Func->allocate<InstX8632Mov>()) | 648 return new (Func->allocate<InstX8632Mov>()) |
| 630 InstX8632Mov(Func, Dest, Source); | 649 InstX8632Mov(Func, Dest, Source); |
| 631 } | 650 } |
| 632 virtual bool isRedundantAssign() const; | 651 virtual bool isRedundantAssign() const; |
| 633 virtual void emit(const Cfg *Func) const; | 652 virtual void emit(const Cfg *Func) const; |
| 634 virtual void dump(const Cfg *Func) const; | 653 virtual void dump(const Cfg *Func) const; |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 | 869 |
| 851 InstX8632Xadd(Cfg *Func, Operand *Dest, Variable *Source, bool Locked); | 870 InstX8632Xadd(Cfg *Func, Operand *Dest, Variable *Source, bool Locked); |
| 852 InstX8632Xadd(const InstX8632Xadd &) LLVM_DELETED_FUNCTION; | 871 InstX8632Xadd(const InstX8632Xadd &) LLVM_DELETED_FUNCTION; |
| 853 InstX8632Xadd &operator=(const InstX8632Xadd &) LLVM_DELETED_FUNCTION; | 872 InstX8632Xadd &operator=(const InstX8632Xadd &) LLVM_DELETED_FUNCTION; |
| 854 virtual ~InstX8632Xadd() {} | 873 virtual ~InstX8632Xadd() {} |
| 855 }; | 874 }; |
| 856 | 875 |
| 857 } // end of namespace Ice | 876 } // end of namespace Ice |
| 858 | 877 |
| 859 #endif // SUBZERO_SRC_ICEINSTX8632_H | 878 #endif // SUBZERO_SRC_ICEINSTX8632_H |
| OLD | NEW |