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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 Mov, | 161 Mov, |
162 Movp, | 162 Movp, |
163 Movq, | 163 Movq, |
164 Movsx, | 164 Movsx, |
165 Movzx, | 165 Movzx, |
166 Mul, | 166 Mul, |
167 Mulps, | 167 Mulps, |
168 Mulss, | 168 Mulss, |
169 Neg, | 169 Neg, |
170 Or, | 170 Or, |
| 171 Pand, |
| 172 Pcmpeq, |
| 173 Pcmpgt, |
171 Pop, | 174 Pop, |
172 Push, | 175 Push, |
| 176 Psll, |
| 177 Psra, |
| 178 Psub, |
173 Pxor, | 179 Pxor, |
174 Ret, | 180 Ret, |
175 Sar, | 181 Sar, |
176 Sbb, | 182 Sbb, |
177 Shl, | 183 Shl, |
178 Shld, | 184 Shld, |
179 Shr, | 185 Shr, |
180 Shrd, | 186 Shrd, |
181 Sqrtss, | 187 Sqrtss, |
182 Store, | 188 Store, |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 typedef InstX8632Unaryop<InstX8632::Bsr> InstX8632Bsr; | 452 typedef InstX8632Unaryop<InstX8632::Bsr> InstX8632Bsr; |
447 typedef InstX8632Unaryop<InstX8632::Sqrtss> InstX8632Sqrtss; | 453 typedef InstX8632Unaryop<InstX8632::Sqrtss> InstX8632Sqrtss; |
448 typedef InstX8632Binop<InstX8632::Add> InstX8632Add; | 454 typedef InstX8632Binop<InstX8632::Add> InstX8632Add; |
449 typedef InstX8632Binop<InstX8632::Addps> InstX8632Addps; | 455 typedef InstX8632Binop<InstX8632::Addps> InstX8632Addps; |
450 typedef InstX8632Binop<InstX8632::Adc> InstX8632Adc; | 456 typedef InstX8632Binop<InstX8632::Adc> InstX8632Adc; |
451 typedef InstX8632Binop<InstX8632::Addss> InstX8632Addss; | 457 typedef InstX8632Binop<InstX8632::Addss> InstX8632Addss; |
452 typedef InstX8632Binop<InstX8632::Sub> InstX8632Sub; | 458 typedef InstX8632Binop<InstX8632::Sub> InstX8632Sub; |
453 typedef InstX8632Binop<InstX8632::Subps> InstX8632Subps; | 459 typedef InstX8632Binop<InstX8632::Subps> InstX8632Subps; |
454 typedef InstX8632Binop<InstX8632::Subss> InstX8632Subss; | 460 typedef InstX8632Binop<InstX8632::Subss> InstX8632Subss; |
455 typedef InstX8632Binop<InstX8632::Sbb> InstX8632Sbb; | 461 typedef InstX8632Binop<InstX8632::Sbb> InstX8632Sbb; |
| 462 typedef InstX8632Binop<InstX8632::Psub> InstX8632Psub; |
456 typedef InstX8632Binop<InstX8632::And> InstX8632And; | 463 typedef InstX8632Binop<InstX8632::And> InstX8632And; |
| 464 typedef InstX8632Binop<InstX8632::Pand> InstX8632Pand; |
457 typedef InstX8632Binop<InstX8632::Or> InstX8632Or; | 465 typedef InstX8632Binop<InstX8632::Or> InstX8632Or; |
458 typedef InstX8632Binop<InstX8632::Xor> InstX8632Xor; | 466 typedef InstX8632Binop<InstX8632::Xor> InstX8632Xor; |
459 typedef InstX8632Binop<InstX8632::Pxor> InstX8632Pxor; | 467 typedef InstX8632Binop<InstX8632::Pxor> InstX8632Pxor; |
460 typedef InstX8632Binop<InstX8632::Imul> InstX8632Imul; | 468 typedef InstX8632Binop<InstX8632::Imul> InstX8632Imul; |
461 typedef InstX8632Binop<InstX8632::Mulps> InstX8632Mulps; | 469 typedef InstX8632Binop<InstX8632::Mulps> InstX8632Mulps; |
462 typedef InstX8632Binop<InstX8632::Mulss> InstX8632Mulss; | 470 typedef InstX8632Binop<InstX8632::Mulss> InstX8632Mulss; |
463 typedef InstX8632Binop<InstX8632::Divps> InstX8632Divps; | 471 typedef InstX8632Binop<InstX8632::Divps> InstX8632Divps; |
464 typedef InstX8632Binop<InstX8632::Divss> InstX8632Divss; | 472 typedef InstX8632Binop<InstX8632::Divss> InstX8632Divss; |
465 typedef InstX8632Binop<InstX8632::Shl, true> InstX8632Shl; | 473 typedef InstX8632Binop<InstX8632::Shl, true> InstX8632Shl; |
| 474 typedef InstX8632Binop<InstX8632::Psll> InstX8632Psll; |
466 typedef InstX8632Binop<InstX8632::Shr, true> InstX8632Shr; | 475 typedef InstX8632Binop<InstX8632::Shr, true> InstX8632Shr; |
467 typedef InstX8632Binop<InstX8632::Sar, true> InstX8632Sar; | 476 typedef InstX8632Binop<InstX8632::Sar, true> InstX8632Sar; |
| 477 typedef InstX8632Binop<InstX8632::Psra> InstX8632Psra; |
| 478 typedef InstX8632Binop<InstX8632::Pcmpeq> InstX8632Pcmpeq; |
| 479 typedef InstX8632Binop<InstX8632::Pcmpgt> InstX8632Pcmpgt; |
468 typedef InstX8632Ternop<InstX8632::Idiv> InstX8632Idiv; | 480 typedef InstX8632Ternop<InstX8632::Idiv> InstX8632Idiv; |
469 typedef InstX8632Ternop<InstX8632::Div> InstX8632Div; | 481 typedef InstX8632Ternop<InstX8632::Div> InstX8632Div; |
470 | 482 |
471 // Base class for a lockable x86-32 instruction (emits a locked prefix). | 483 // Base class for a lockable x86-32 instruction (emits a locked prefix). |
472 class InstX8632Lockable : public InstX8632 { | 484 class InstX8632Lockable : public InstX8632 { |
473 public: | 485 public: |
474 virtual void emit(const Cfg *Func) const = 0; | 486 virtual void emit(const Cfg *Func) const = 0; |
475 virtual void dump(const Cfg *Func) const; | 487 virtual void dump(const Cfg *Func) const; |
476 | 488 |
477 protected: | 489 protected: |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 private: | 1048 private: |
1037 InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source); | 1049 InstX8632Xchg(Cfg *Func, Operand *Dest, Variable *Source); |
1038 InstX8632Xchg(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; | 1050 InstX8632Xchg(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; |
1039 InstX8632Xchg &operator=(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; | 1051 InstX8632Xchg &operator=(const InstX8632Xchg &) LLVM_DELETED_FUNCTION; |
1040 virtual ~InstX8632Xchg() {} | 1052 virtual ~InstX8632Xchg() {} |
1041 }; | 1053 }; |
1042 | 1054 |
1043 } // end of namespace Ice | 1055 } // end of namespace Ice |
1044 | 1056 |
1045 #endif // SUBZERO_SRC_ICEINSTX8632_H | 1057 #endif // SUBZERO_SRC_ICEINSTX8632_H |
OLD | NEW |