| OLD | NEW | 
|---|
| 1 //===- subzero/src/IceTargetLoweringX8632.h - x86-32 lowering ---*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringX8632.h - x86-32 lowering ---*- 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 TargetLoweringX8632 class, which | 10 // This file declares the TargetLoweringX8632 class, which | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 167 | 167 | 
| 168   Variable *copyToReg(Operand *Src, int32_t RegNum = Variable::NoRegister); | 168   Variable *copyToReg(Operand *Src, int32_t RegNum = Variable::NoRegister); | 
| 169 | 169 | 
| 170   // Returns a vector in a register with the given constant entries. | 170   // Returns a vector in a register with the given constant entries. | 
| 171   Variable *makeVectorOfZeros(Type Ty, int32_t RegNum = Variable::NoRegister); | 171   Variable *makeVectorOfZeros(Type Ty, int32_t RegNum = Variable::NoRegister); | 
| 172   Variable *makeVectorOfOnes(Type Ty, int32_t RegNum = Variable::NoRegister); | 172   Variable *makeVectorOfOnes(Type Ty, int32_t RegNum = Variable::NoRegister); | 
| 173   Variable *makeVectorOfMinusOnes(Type Ty, | 173   Variable *makeVectorOfMinusOnes(Type Ty, | 
| 174                                   int32_t RegNum = Variable::NoRegister); | 174                                   int32_t RegNum = Variable::NoRegister); | 
| 175   Variable *makeVectorOfHighOrderBits(Type Ty, | 175   Variable *makeVectorOfHighOrderBits(Type Ty, | 
| 176                                       int32_t RegNum = Variable::NoRegister); | 176                                       int32_t RegNum = Variable::NoRegister); | 
|  | 177   Variable *makeVectorOfFabsMask(Type Ty, | 
|  | 178                                  int32_t RegNum = Variable::NoRegister); | 
| 177 | 179 | 
| 178   // Return a memory operand corresponding to a stack allocated Variable. | 180   // Return a memory operand corresponding to a stack allocated Variable. | 
| 179   OperandX8632Mem *getMemoryOperandForStackSlot(Type Ty, Variable *Slot, | 181   OperandX8632Mem *getMemoryOperandForStackSlot(Type Ty, Variable *Slot, | 
| 180                                                 uint32_t Offset = 0); | 182                                                 uint32_t Offset = 0); | 
| 181 | 183 | 
| 182   void makeRandomRegisterPermutation( | 184   void makeRandomRegisterPermutation( | 
| 183       llvm::SmallVectorImpl<int32_t> &Permutation, | 185       llvm::SmallVectorImpl<int32_t> &Permutation, | 
| 184       const llvm::SmallBitVector &ExcludeRegisters) const override; | 186       const llvm::SmallBitVector &ExcludeRegisters) const override; | 
| 185 | 187 | 
| 186   // The following are helpers that insert lowered x86 instructions | 188   // The following are helpers that insert lowered x86 instructions | 
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 387   } | 389   } | 
| 388   void _pshufd(Variable *Dest, Operand *Src0, Operand *Src1) { | 390   void _pshufd(Variable *Dest, Operand *Src0, Operand *Src1) { | 
| 389     Context.insert(InstX8632Pshufd::create(Func, Dest, Src0, Src1)); | 391     Context.insert(InstX8632Pshufd::create(Func, Dest, Src0, Src1)); | 
| 390   } | 392   } | 
| 391   void _psll(Variable *Dest, Operand *Src0) { | 393   void _psll(Variable *Dest, Operand *Src0) { | 
| 392     Context.insert(InstX8632Psll::create(Func, Dest, Src0)); | 394     Context.insert(InstX8632Psll::create(Func, Dest, Src0)); | 
| 393   } | 395   } | 
| 394   void _psra(Variable *Dest, Operand *Src0) { | 396   void _psra(Variable *Dest, Operand *Src0) { | 
| 395     Context.insert(InstX8632Psra::create(Func, Dest, Src0)); | 397     Context.insert(InstX8632Psra::create(Func, Dest, Src0)); | 
| 396   } | 398   } | 
|  | 399   void _psrl(Variable *Dest, Operand *Src0) { | 
|  | 400     Context.insert(InstX8632Psrl::create(Func, Dest, Src0)); | 
|  | 401   } | 
| 397   void _psub(Variable *Dest, Operand *Src0) { | 402   void _psub(Variable *Dest, Operand *Src0) { | 
| 398     Context.insert(InstX8632Psub::create(Func, Dest, Src0)); | 403     Context.insert(InstX8632Psub::create(Func, Dest, Src0)); | 
| 399   } | 404   } | 
| 400   void _push(Variable *Src0) { | 405   void _push(Variable *Src0) { | 
| 401     Context.insert(InstX8632Push::create(Func, Src0)); | 406     Context.insert(InstX8632Push::create(Func, Src0)); | 
| 402   } | 407   } | 
| 403   void _pxor(Variable *Dest, Operand *Src0) { | 408   void _pxor(Variable *Dest, Operand *Src0) { | 
| 404     Context.insert(InstX8632Pxor::create(Func, Dest, Src0)); | 409     Context.insert(InstX8632Pxor::create(Func, Dest, Src0)); | 
| 405   } | 410   } | 
| 406   void _ret(Variable *Src0 = nullptr) { | 411   void _ret(Variable *Src0 = nullptr) { | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 519 }; | 524 }; | 
| 520 | 525 | 
| 521 template <> void ConstantInteger32::emit(GlobalContext *Ctx) const; | 526 template <> void ConstantInteger32::emit(GlobalContext *Ctx) const; | 
| 522 template <> void ConstantInteger64::emit(GlobalContext *Ctx) const; | 527 template <> void ConstantInteger64::emit(GlobalContext *Ctx) const; | 
| 523 template <> void ConstantFloat::emit(GlobalContext *Ctx) const; | 528 template <> void ConstantFloat::emit(GlobalContext *Ctx) const; | 
| 524 template <> void ConstantDouble::emit(GlobalContext *Ctx) const; | 529 template <> void ConstantDouble::emit(GlobalContext *Ctx) const; | 
| 525 | 530 | 
| 526 } // end of namespace Ice | 531 } // end of namespace Ice | 
| 527 | 532 | 
| 528 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_H | 533 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_H | 
| OLD | NEW | 
|---|