| 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 |