Lines Matching full:variable
98 Inst *createLoweredMove(Variable *Dest, Variable *SrcVar) override { in createLoweredMove()
108 Variable *getPhysicalRegister(RegNumT RegNum,
133 getRegistersForVariable(const Variable *Var) const override { in getRegistersForVariable()
140 getAllRegistersForVariable(const Variable *Var) const override { in getAllRegistersForVariable()
196 ConstantRelocatable *createGetIPForRegister(const Variable *Dest) { in createGetIPForRegister()
205 void emitVariable(const Variable *Var) const override;
235 void finishArgumentLowering(Variable *Arg, Variable *FramePtr,
239 X86Address stackVarToAsmOperand(const Variable *Var) const;
251 /// Initializes the RebasePtr member variable -- if so required by
297 Variable *Base = nullptr;
298 Variable *Index = nullptr;
323 void lowerAtomicCmpxchg(Variable *DestPrev, Operand *Ptr, Operand *Expected,
326 bool tryOptimizedCmpxchgCmpBr(Variable *DestPrev, Operand *Ptr,
328 void lowerAtomicRMW(Variable *Dest, uint32_t Operation, Operand *Ptr,
330 void lowerCountZeros(bool Cttz, Type Ty, Variable *Dest, Operand *FirstVal,
333 void typedLoad(Type Ty, Variable *Dest, Variable *Base, Constant *Offset);
335 void typedStore(Type Ty, Variable *Value, Variable *Base, Constant *Offset);
337 void copyMemory(Type Ty, Variable *Dest, Variable *Src, int32_t OffsetAmt);
346 void lowerIndirectJump(Variable *JumpTarget) { in lowerIndirectJump()
348 // lowerIndirectJmp is a Variable *&, not a Variable *. in lowerIndirectJump()
366 using LowerBinOp = void (TargetX86Base::*)(Variable *, Operand *);
368 Variable *Dest, Operand *Ptr, Operand *Val);
370 void eliminateNextVectorSextInstruction(Variable *SignExtendedResult);
379 /// Emit just the call instruction (without argument or return variable
381 virtual Inst *emitCallToTarget(Operand *CallTarget, Variable *ReturnReg) = 0;
383 virtual Variable *moveReturnValueToRegister(Operand *Value,
393 Variable *esp = in keepEspLiveAtExit()
417 Variable *legalizeToReg(Operand *From, RegNumT RegNum = RegNumT());
426 Variable *makeReg(Type Ty, RegNumT RegNum = RegNumT());
441 Variable *copyToReg8(Operand *Src, RegNumT RegNum = RegNumT());
442 Variable *copyToReg(Operand *Src, RegNumT RegNum = RegNumT());
446 Variable *makeZeroedRegister(Type Ty, RegNumT RegNum = RegNumT());
450 Variable *makeVectorOfZeros(Type Ty, RegNumT RegNum = RegNumT());
451 Variable *makeVectorOfOnes(Type Ty, RegNumT RegNum = RegNumT());
452 Variable *makeVectorOfMinusOnes(Type Ty, RegNumT RegNum = RegNumT());
453 Variable *makeVectorOfHighOrderBits(Type Ty, RegNumT RegNum = RegNumT());
454 Variable *makeVectorOfFabsMask(Type Ty, RegNumT RegNum = RegNumT());
457 /// Return a memory operand corresponding to a stack allocated Variable.
458 X86OperandMem *getMemoryOperandForStackSlot(Type Ty, Variable *Slot,
516 void _adc(Variable *Dest, Operand *Src0) { in _adc()
524 void _add(Variable *Dest, Operand *Src0) { in _add()
532 void _addps(Variable *Dest, Operand *Src0) { in _addps()
536 void _addss(Variable *Dest, Operand *Src0) { in _addss()
543 void _and(Variable *Dest, Operand *Src0) { in _and()
547 void _andnps(Variable *Dest, Operand *Src0) { in _andnps()
551 void _andps(Variable *Dest, Operand *Src0) { in _andps()
559 void _blendvps(Variable *Dest, Operand *Src0, Operand *Src1) { in _blendvps()
577 void _bsf(Variable *Dest, Operand *Src0) { in _bsf()
581 void _bsr(Variable *Dest, Operand *Src0) { in _bsr()
585 void _bswap(Variable *SrcDest) { in _bswap()
589 void _cbwdq(Variable *Dest, Operand *Src0) { in _cbwdq()
593 void _cmov(Variable *Dest, Operand *Src0, BrCond Condition) { in _cmov()
601 void _cmpps(Variable *Dest, Operand *Src0, CmppsCond Condition) { in _cmpps()
605 void _cmpxchg(Operand *DestOrAddr, Variable *Eax, Variable *Desired, in _cmpxchg()
611 Context.insert<InstFakeDef>(Eax, llvm::dyn_cast<Variable>(DestOrAddr)); in _cmpxchg()
615 void _cmpxchg8b(X86OperandMem *Addr, Variable *Edx, Variable *Eax, in _cmpxchg8b()
616 Variable *Ecx, Variable *Ebx, bool Locked) { in _cmpxchg8b()
628 void _cvt(Variable *Dest, Operand *Src0, in _cvt()
633 void _round(Variable *Dest, Operand *Src0, Operand *Imm) { in _round()
637 void _div(Variable *Dest, Operand *Src0, Operand *Src1) { in _div()
641 void _divps(Variable *Dest, Operand *Src0) { in _divps()
645 void _divss(Variable *Dest, Operand *Src0) { in _divss()
661 typename std::enable_if<T::UsesX87, void>::type _fstp(Variable *Dest) { in _fstp()
668 typename std::enable_if<!T::UsesX87, void>::type _fstp(Variable *) { in _fstp() argument
671 void _idiv(Variable *Dest, Operand *Src0, Operand *Src1) { in _idiv()
675 void _imul(Variable *Dest, Operand *Src0) { in _imul()
679 void _imul_imm(Variable *Dest, Operand *Src0, Constant *Imm) { in _imul_imm()
683 void _insertps(Variable *Dest, Operand *Src0, Operand *Src1) { in _insertps()
692 void _lea(Variable *Dest, Operand *Src0) { in _lea()
696 void _push_reg(Variable *Reg) { in _push_reg()
706 /// If Dest=nullptr is passed in, then a new variable is created, marked as
709 typename Traits::Insts::Mov *_mov(Variable *&Dest, Operand *Src0,
719 typename Traits::Insts::Movp *_movp(Variable *Dest, Operand *Src0) { in _movp()
723 void _movd(Variable *Dest, Operand *Src0) { in _movd()
727 void _movq(Variable *Dest, Operand *Src0) { in _movq()
731 void _movss(Variable *Dest, Variable *Src0) { in _movss()
734 void _movsx(Variable *Dest, Operand *Src0) { in _movsx()
738 typename Traits::Insts::Movzx *_movzx(Variable *Dest, Operand *Src0) { in _movzx()
742 void _maxss(Variable *Dest, Operand *Src0) { in _maxss()
746 void _minss(Variable *Dest, Operand *Src0) { in _minss()
750 void _maxps(Variable *Dest, Operand *Src0) { in _maxps()
754 void _minps(Variable *Dest, Operand *Src0) { in _minps()
758 void _mul(Variable *Dest, Variable *Src0, Operand *Src1) { in _mul()
762 void _mulps(Variable *Dest, Operand *Src0) { in _mulps()
766 void _mulss(Variable *Dest, Operand *Src0) { in _mulss()
770 void _neg(Variable *SrcDest) { in _neg()
777 void _or(Variable *Dest, Operand *Src0) { in _or()
781 void _orps(Variable *Dest, Operand *Src0) { in _orps()
789 void _padd(Variable *Dest, Operand *Src0) { in _padd()
793 void _padds(Variable *Dest, Operand *Src0) { in _padds()
797 void _paddus(Variable *Dest, Operand *Src0) { in _paddus()
801 void _pand(Variable *Dest, Operand *Src0) { in _pand()
805 void _pandn(Variable *Dest, Operand *Src0) { in _pandn()
809 void _pblendvb(Variable *Dest, Operand *Src0, Operand *Src1) { in _pblendvb()
813 void _pcmpeq(Variable *Dest, Operand *Src0,
819 void _pcmpgt(Variable *Dest, Operand *Src0) { in _pcmpgt()
823 void _pextr(Variable *Dest, Operand *Src0, Operand *Src1) { in _pextr()
827 void _pinsr(Variable *Dest, Operand *Src0, Operand *Src1) { in _pinsr()
831 void _pmull(Variable *Dest, Operand *Src0) { in _pmull()
835 void _pmulhw(Variable *Dest, Operand *Src0) { in _pmulhw()
839 void _pmulhuw(Variable *Dest, Operand *Src0) { in _pmulhuw()
843 void _pmaddwd(Variable *Dest, Operand *Src0) { in _pmaddwd()
847 void _pmuludq(Variable *Dest, Operand *Src0) { in _pmuludq()
851 void _pop(Variable *Dest) { in _pop()
854 void _por(Variable *Dest, Operand *Src0) { in _por()
858 void _punpckl(Variable *Dest, Operand *Src0) { in _punpckl()
862 void _punpckh(Variable *Dest, Operand *Src0) { in _punpckh()
866 void _packss(Variable *Dest, Operand *Src0) { in _packss()
870 void _packus(Variable *Dest, Operand *Src0) { in _packus()
874 void _pshufb(Variable *Dest, Operand *Src0) { in _pshufb()
878 void _pshufd(Variable *Dest, Operand *Src0, Operand *Src1) { in _pshufd()
882 void _psll(Variable *Dest, Operand *Src0) { in _psll()
886 void _psra(Variable *Dest, Operand *Src0) { in _psra()
890 void _psrl(Variable *Dest, Operand *Src0) { in _psrl()
894 void _psub(Variable *Dest, Operand *Src0) { in _psub()
898 void _psubs(Variable *Dest, Operand *Src0) { in _psubs()
902 void _psubus(Variable *Dest, Operand *Src0) { in _psubus()
909 void _pxor(Variable *Dest, Operand *Src0) { in _pxor()
913 void _ret(Variable *Src0 = nullptr) {
916 void _rol(Variable *Dest, Operand *Src0) { in _rol()
920 void _round(Variable *Dest, Operand *Src, Constant *Imm) { in _round()
928 void _sar(Variable *Dest, Operand *Src0) { in _sar()
932 void _sbb(Variable *Dest, Operand *Src0) { in _sbb()
940 void _setcc(Variable *Dest, BrCond Condition) { in _setcc()
943 void _shl(Variable *Dest, Operand *Src0) { in _shl()
947 void _shld(Variable *Dest, Variable *Src0, Operand *Src1) { in _shld()
951 void _shr(Variable *Dest, Operand *Src0) { in _shr()
955 void _shrd(Variable *Dest, Variable *Src0, Operand *Src1) { in _shrd()
959 void _shufps(Variable *Dest, Operand *Src0, Operand *Src1) { in _shufps()
963 void _movmsk(Variable *Dest, Operand *Src0) { in _movmsk()
967 void _sqrt(Variable *Dest, Operand *Src0) { in _sqrt()
975 void _storep(Variable *Value, X86OperandMem *Mem) { in _storep()
987 void _sub(Variable *Dest, Operand *Src0) { in _sub()
998 void _subps(Variable *Dest, Operand *Src0) { in _subps()
1002 void _subss(Variable *Dest, Operand *Src0) { in _subss()
1016 void _xadd(Operand *Dest, Variable *Src, bool Locked) { in _xadd()
1021 Context.insert<InstFakeDef>(Src, llvm::dyn_cast<Variable>(Dest)); in _xadd()
1025 void _xchg(Operand *Dest, Variable *Src) { in _xchg()
1030 Context.insert<InstFakeDef>(Src, llvm::dyn_cast<Variable>(Dest)); in _xchg()
1034 void _xor(Variable *Dest, Operand *Src0) { in _xor()
1038 void _xorps(Variable *Dest, Operand *Src0) { in _xorps()
1078 bool optimizeScalarMul(Variable *Dest, Operand *Src0, int32_t Src1);
1095 // RebasePtr is a Variable that holds the Rebasing pointer (if any) for the
1097 Variable *RebasePtr = nullptr;
1132 Operand *Src1Lo, Variable *DestLo, Variable *DestHi);
1135 /// the destination variable of the operation if Consumer == nullptr.
1142 void setccOrConsumer(BrCond Condition, Variable *Dest, const Inst *Consumer);
1146 void movOrConsumer(bool IcmpResult, Variable *Dest, const Inst *Consumer);
1154 void lowerSelectMove(Variable *Dest, BrCond Cond, Operand *SrcT,
1156 void lowerSelectIntMove(Variable *Dest, BrCond Cond, Operand *SrcT,
1159 void lowerMove(Variable *Dest, Operand *Src, bool IsRedefinition);
1181 Variable *lowerShuffleVector_AllFromSameSrc(Operand *Src, SizeT Index0,
1185 Variable *lowerShuffleVector_TwoFromSameSrc(Operand *Src0, SizeT Index0,
1190 Variable *lowerShuffleVector_UnifyFromDifferentSrcs(Operand *Src0,
1202 void lowerShuffleVector_UsingPshufb(Variable *Dest, Operand *Src0,