Lines Matching defs:VarArgAMD64Helper
3632 struct VarArgAMD64Helper : public VarArgHelper { struct
3635 static const unsigned AMD64GpEndOffset = 48; // AMD64 ABI Draft 0.99.6 p3.5.7
3636 static const unsigned AMD64FpEndOffsetSSE = 176;
3638 static const unsigned AMD64FpEndOffsetNoSSE = AMD64GpEndOffset;
3640 unsigned AMD64FpEndOffset;
3641 Function &F;
3642 MemorySanitizer &MS;
3643 MemorySanitizerVisitor &MSV;
3644 Value *VAArgTLSCopy = nullptr;
3645 Value *VAArgTLSOriginCopy = nullptr;
3646 Value *VAArgOverflowSize = nullptr;
3648 SmallVector<CallInst*, 16> VAStartInstrumentationList;
3650 enum ArgKind { AK_GeneralPurpose, AK_FloatingPoint, AK_Memory };
3652 VarArgAMD64Helper(Function &F, MemorySanitizer &MS, in VarArgAMD64Helper() function
3666 ArgKind classifyArgument(Value* arg) { in classifyArgument()
3686 void visitCallSite(CallSite &CS, IRBuilder<> &IRB) override { in visitCallSite()
3782 Value *getShadowPtrForVAArgument(Type *Ty, IRBuilder<> &IRB, in getShadowPtrForVAArgument()
3794 Value *getOriginPtrForVAArgument(Type *Ty, IRBuilder<> &IRB, int ArgOffset) { in getOriginPtrForVAArgument()
3804 void unpoisonVAListTagForInst(IntrinsicInst &I) { in unpoisonVAListTagForInst()
3821 void visitVAStartInst(VAStartInst &I) override { in visitVAStartInst()
3828 void visitVACopyInst(VACopyInst &I) override { in visitVACopyInst()
3833 void finalizeInstrumentation() override { in finalizeInstrumentation()