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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 Mov, | 158 Mov, |
159 Movp, | 159 Movp, |
160 Movq, | 160 Movq, |
161 Movsx, | 161 Movsx, |
162 Movzx, | 162 Movzx, |
163 Mul, | 163 Mul, |
164 Mulps, | 164 Mulps, |
165 Mulss, | 165 Mulss, |
166 Neg, | 166 Neg, |
167 Or, | 167 Or, |
| 168 Pand, |
| 169 Pcmpeq, |
| 170 Pcmpgt, |
168 Pop, | 171 Pop, |
169 Push, | 172 Push, |
| 173 Psll, |
| 174 Psra, |
| 175 Psub, |
170 Pxor, | 176 Pxor, |
171 Ret, | 177 Ret, |
172 Sar, | 178 Sar, |
173 Sbb, | 179 Sbb, |
174 Shl, | 180 Shl, |
175 Shld, | 181 Shld, |
176 Shr, | 182 Shr, |
177 Shrd, | 183 Shrd, |
178 Sqrtss, | 184 Sqrtss, |
179 Store, | 185 Store, |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 | 446 |
441 typedef InstX8632Unaryop<InstX8632::Neg> InstX8632Neg; | 447 typedef InstX8632Unaryop<InstX8632::Neg> InstX8632Neg; |
442 typedef InstX8632Binop<InstX8632::Add> InstX8632Add; | 448 typedef InstX8632Binop<InstX8632::Add> InstX8632Add; |
443 typedef InstX8632Binop<InstX8632::Addps> InstX8632Addps; | 449 typedef InstX8632Binop<InstX8632::Addps> InstX8632Addps; |
444 typedef InstX8632Binop<InstX8632::Adc> InstX8632Adc; | 450 typedef InstX8632Binop<InstX8632::Adc> InstX8632Adc; |
445 typedef InstX8632Binop<InstX8632::Addss> InstX8632Addss; | 451 typedef InstX8632Binop<InstX8632::Addss> InstX8632Addss; |
446 typedef InstX8632Binop<InstX8632::Sub> InstX8632Sub; | 452 typedef InstX8632Binop<InstX8632::Sub> InstX8632Sub; |
447 typedef InstX8632Binop<InstX8632::Subps> InstX8632Subps; | 453 typedef InstX8632Binop<InstX8632::Subps> InstX8632Subps; |
448 typedef InstX8632Binop<InstX8632::Subss> InstX8632Subss; | 454 typedef InstX8632Binop<InstX8632::Subss> InstX8632Subss; |
449 typedef InstX8632Binop<InstX8632::Sbb> InstX8632Sbb; | 455 typedef InstX8632Binop<InstX8632::Sbb> InstX8632Sbb; |
| 456 typedef InstX8632Binop<InstX8632::Psub> InstX8632Psub; |
450 typedef InstX8632Binop<InstX8632::And> InstX8632And; | 457 typedef InstX8632Binop<InstX8632::And> InstX8632And; |
| 458 typedef InstX8632Binop<InstX8632::Pand> InstX8632Pand; |
451 typedef InstX8632Binop<InstX8632::Or> InstX8632Or; | 459 typedef InstX8632Binop<InstX8632::Or> InstX8632Or; |
452 typedef InstX8632Binop<InstX8632::Xor> InstX8632Xor; | 460 typedef InstX8632Binop<InstX8632::Xor> InstX8632Xor; |
453 typedef InstX8632Binop<InstX8632::Pxor> InstX8632Pxor; | 461 typedef InstX8632Binop<InstX8632::Pxor> InstX8632Pxor; |
454 typedef InstX8632Binop<InstX8632::Imul> InstX8632Imul; | 462 typedef InstX8632Binop<InstX8632::Imul> InstX8632Imul; |
455 typedef InstX8632Binop<InstX8632::Mulps> InstX8632Mulps; | 463 typedef InstX8632Binop<InstX8632::Mulps> InstX8632Mulps; |
456 typedef InstX8632Binop<InstX8632::Mulss> InstX8632Mulss; | 464 typedef InstX8632Binop<InstX8632::Mulss> InstX8632Mulss; |
457 typedef InstX8632Binop<InstX8632::Divps> InstX8632Divps; | 465 typedef InstX8632Binop<InstX8632::Divps> InstX8632Divps; |
458 typedef InstX8632Binop<InstX8632::Divss> InstX8632Divss; | 466 typedef InstX8632Binop<InstX8632::Divss> InstX8632Divss; |
459 typedef InstX8632Binop<InstX8632::Shl, true> InstX8632Shl; | 467 typedef InstX8632Binop<InstX8632::Shl, true> InstX8632Shl; |
| 468 typedef InstX8632Binop<InstX8632::Psll> InstX8632Psll; |
460 typedef InstX8632Binop<InstX8632::Shr, true> InstX8632Shr; | 469 typedef InstX8632Binop<InstX8632::Shr, true> InstX8632Shr; |
461 typedef InstX8632Binop<InstX8632::Sar, true> InstX8632Sar; | 470 typedef InstX8632Binop<InstX8632::Sar, true> InstX8632Sar; |
| 471 typedef InstX8632Binop<InstX8632::Psra> InstX8632Psra; |
| 472 typedef InstX8632Binop<InstX8632::Pcmpeq> InstX8632Pcmpeq; |
| 473 typedef InstX8632Binop<InstX8632::Pcmpgt> InstX8632Pcmpgt; |
462 typedef InstX8632Ternop<InstX8632::Idiv> InstX8632Idiv; | 474 typedef InstX8632Ternop<InstX8632::Idiv> InstX8632Idiv; |
463 typedef InstX8632Ternop<InstX8632::Div> InstX8632Div; | 475 typedef InstX8632Ternop<InstX8632::Div> InstX8632Div; |
464 | 476 |
465 // Base class for a lockable x86-32 instruction (emits a locked prefix). | 477 // Base class for a lockable x86-32 instruction (emits a locked prefix). |
466 class InstX8632Lockable : public InstX8632 { | 478 class InstX8632Lockable : public InstX8632 { |
467 public: | 479 public: |
468 virtual void emit(const Cfg *Func) const = 0; | 480 virtual void emit(const Cfg *Func) const = 0; |
469 virtual void dump(const Cfg *Func) const; | 481 virtual void dump(const Cfg *Func) const; |
470 | 482 |
471 protected: | 483 protected: |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1010 private: | 1022 private: |
1011 InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source); | 1023 InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source); |
1012 InstX8632Xchg(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; | 1024 InstX8632Xchg(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; |
1013 InstX8632Xchg &operator=(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; | 1025 InstX8632Xchg &operator=(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; |
1014 virtual ~InstX8632Xchg() {} | 1026 virtual ~InstX8632Xchg() {} |
1015 }; | 1027 }; |
1016 | 1028 |
1017 } // end of namespace Ice | 1029 } // end of namespace Ice |
1018 | 1030 |
1019 #endif // SUBZERO_SRC_ICEINSTX8632_H | 1031 #endif // SUBZERO_SRC_ICEINSTX8632_H |
OLD | NEW |