reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/TargetInfo.cpp
 3737     return EmitX86_64VAArgFromMemory(CGF, VAListAddr, Ty);
 3754     gp_offset_p = CGF.Builder.CreateStructGEP(VAListAddr, 0, "gp_offset_p");
 3755     gp_offset = CGF.Builder.CreateLoad(gp_offset_p, "gp_offset");
 3756     InRegs = llvm::ConstantInt::get(CGF.Int32Ty, 48 - neededInt * 8);
 3757     InRegs = CGF.Builder.CreateICmpULE(gp_offset, InRegs, "fits_in_gp");
 3761     fp_offset_p = CGF.Builder.CreateStructGEP(VAListAddr, 1, "fp_offset_p");
 3762     fp_offset = CGF.Builder.CreateLoad(fp_offset_p, "fp_offset");
 3764       llvm::ConstantInt::get(CGF.Int32Ty, 176 - neededSSE * 16);
 3765     FitsInFP = CGF.Builder.CreateICmpULE(fp_offset, FitsInFP, "fits_in_fp");
 3766     InRegs = InRegs ? CGF.Builder.CreateAnd(InRegs, FitsInFP) : FitsInFP;
 3769   llvm::BasicBlock *InRegBlock = CGF.createBasicBlock("vaarg.in_reg");
 3770   llvm::BasicBlock *InMemBlock = CGF.createBasicBlock("vaarg.in_mem");
 3771   llvm::BasicBlock *ContBlock = CGF.createBasicBlock("vaarg.end");
 3772   CGF.Builder.CreateCondBr(InRegs, InRegBlock, InMemBlock);
 3776   CGF.EmitBlock(InRegBlock);
 3788   llvm::Type *LTy = CGF.ConvertTypeForMem(Ty);
 3789   llvm::Value *RegSaveArea = CGF.Builder.CreateLoad(
 3790       CGF.Builder.CreateStructGEP(VAListAddr, 3), "reg_save_area");
 3797     Address Tmp = CGF.CreateMemTemp(Ty);
 3798     Tmp = CGF.Builder.CreateElementBitCast(Tmp, ST);
 3806     llvm::Value *GPAddr = CGF.Builder.CreateGEP(RegSaveArea, gp_offset);
 3807     llvm::Value *FPAddr = CGF.Builder.CreateGEP(RegSaveArea, fp_offset);
 3813     llvm::Value *V = CGF.Builder.CreateAlignedLoad(
 3814         TyLo, CGF.Builder.CreateBitCast(RegLoAddr, PTyLo),
 3816     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0));
 3816     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0));
 3819     V = CGF.Builder.CreateAlignedLoad(
 3820         TyHi, CGF.Builder.CreateBitCast(RegHiAddr, PTyHi),
 3822     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
 3822     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
 3824     RegAddr = CGF.Builder.CreateElementBitCast(Tmp, LTy);
 3826     RegAddr = Address(CGF.Builder.CreateGEP(RegSaveArea, gp_offset),
 3828     RegAddr = CGF.Builder.CreateElementBitCast(RegAddr, LTy);
 3839       Address Tmp = CGF.CreateMemTemp(Ty);
 3840       CGF.Builder.CreateMemCpy(Tmp, RegAddr, TySize, false);
 3845     RegAddr = Address(CGF.Builder.CreateGEP(RegSaveArea, fp_offset),
 3847     RegAddr = CGF.Builder.CreateElementBitCast(RegAddr, LTy);
 3856     Address RegAddrLo = Address(CGF.Builder.CreateGEP(RegSaveArea, fp_offset),
 3859       CGF.Builder.CreateConstInBoundsByteGEP(RegAddrLo,
 3863                          : llvm::StructType::get(CGF.DoubleTy, CGF.DoubleTy);
 3863                          : llvm::StructType::get(CGF.DoubleTy, CGF.DoubleTy);
 3865     Address Tmp = CGF.CreateMemTemp(Ty);
 3866     Tmp = CGF.Builder.CreateElementBitCast(Tmp, ST);
 3867     V = CGF.Builder.CreateLoad(CGF.Builder.CreateElementBitCast(
 3867     V = CGF.Builder.CreateLoad(CGF.Builder.CreateElementBitCast(
 3869     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0));
 3869     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0));
 3870     V = CGF.Builder.CreateLoad(CGF.Builder.CreateElementBitCast(
 3870     V = CGF.Builder.CreateLoad(CGF.Builder.CreateElementBitCast(
 3872     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
 3872     CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
 3874     RegAddr = CGF.Builder.CreateElementBitCast(Tmp, LTy);
 3881     llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, neededInt * 8);
 3882     CGF.Builder.CreateStore(CGF.Builder.CreateAdd(gp_offset, Offset),
 3882     CGF.Builder.CreateStore(CGF.Builder.CreateAdd(gp_offset, Offset),
 3886     llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, neededSSE * 16);
 3887     CGF.Builder.CreateStore(CGF.Builder.CreateAdd(fp_offset, Offset),
 3887     CGF.Builder.CreateStore(CGF.Builder.CreateAdd(fp_offset, Offset),
 3890   CGF.EmitBranch(ContBlock);
 3894   CGF.EmitBlock(InMemBlock);
 3895   Address MemAddr = EmitX86_64VAArgFromMemory(CGF, VAListAddr, Ty);
 3899   CGF.EmitBlock(ContBlock);
 3900   Address ResAddr = emitMergePHI(CGF, RegAddr, InRegBlock, MemAddr, InMemBlock,