Lines Matching defs:CGF
16 static RValue complexTempStructure(CodeGenFunction &CGF, Address VAListAddr,
20 emitVoidPtrDirectVAArg(CGF, VAListAddr, CGF.Int8Ty, SlotSize * 2,
25 if (CGF.CGM.getDataLayout().isBigEndian()) {
27 CGF.Builder.CreateConstInBoundsByteGEP(RealAddr, SlotSize - EltSize);
28 ImagAddr = CGF.Builder.CreateConstInBoundsByteGEP(ImagAddr,
31 ImagAddr = CGF.Builder.CreateConstInBoundsByteGEP(RealAddr, SlotSize);
34 llvm::Type *EltTy = CGF.ConvertTypeForMem(CTy->getElementType());
37 llvm::Value *Real = CGF.Builder.CreateLoad(RealAddr, ".vareal");
38 llvm::Value *Imag = CGF.Builder.CreateLoad(ImagAddr, ".vaimag");
43 static bool PPC_initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
49 CodeGen::CGBuilderTy &Builder = CGF.Builder;
51 llvm::IntegerType *i8 = CGF.Int8Ty;
129 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
144 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
240 RValue AIXABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
258 return complexTempStructure(CGF, VAListAddr, Ty, SlotSize, EltSize, CTy);
261 return emitVoidPtrVAArg(CGF, VAListAddr, Ty, /*Indirect*/ false, TypeInfo,
266 CodeGen::CodeGenFunction &CGF, llvm::Value *Address) const {
267 return PPC_initDwarfEHRegSizeTable(CGF, Address, Is64Bit, /*IsAIX*/ true);
349 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
368 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
427 RValue PPC32_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAList,
434 return emitVoidPtrVAArg(CGF, VAList, Ty,
462 CGBuilderTy &Builder = CGF.Builder;
483 llvm::BasicBlock *UsingRegs = CGF.createBasicBlock("using_regs");
484 llvm::BasicBlock *UsingOverflow = CGF.createBasicBlock("using_overflow");
485 llvm::BasicBlock *Cont = CGF.createBasicBlock("cont");
489 llvm::Type *DirectTy = CGF.ConvertType(Ty), *ElementTy = DirectTy;
491 DirectTy = CGF.UnqualPtrTy;
496 CGF.EmitBlock(UsingRegs);
499 RegAddr = Address(Builder.CreateLoad(RegSaveAreaPtr), CGF.Int8Ty,
501 assert(RegAddr.getElementType() == CGF.Int8Ty);
515 CGF.Int8Ty, RegAddr.emitRawPointer(CGF), RegOffset),
525 CGF.EmitBranch(Cont);
531 CGF.EmitBlock(UsingOverflow);
540 auto TypeInfo = CGF.getContext().getTypeInfoInChars(Ty);
543 Size = CGF.getPointerSize();
548 Address(Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), CGF.Int8Ty,
551 CharUnits Align = CGF.getContext().getTypeAlignInChars(Ty);
553 llvm::Value *Ptr = OverflowArea.emitRawPointer(CGF);
554 OverflowArea = Address(emitRoundPointerUpToAlignment(CGF, Ptr, Align),
562 Builder.CreateStore(OverflowArea.emitRawPointer(CGF), OverflowAreaAddr);
563 CGF.EmitBranch(Cont);
566 CGF.EmitBlock(Cont);
569 Address Result = emitMergePHI(CGF, RegAddr, UsingRegs, MemAddr, UsingOverflow,
578 return CGF.EmitLoadOfAnyValue(CGF.MakeAddrLValue(Result, Ty), Slot);
601 PPC32TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
603 return PPC_initDwarfEHRegSizeTable(CGF, Address, /*Is64Bit*/ false,
659 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
679 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
696 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
960 RValue PPC64_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
976 return complexTempStructure(CGF, VAListAddr, Ty, SlotSize, EltSize, CTy);
992 return emitVoidPtrVAArg(CGF, VAListAddr, Ty, /*Indirect*/ false, TypeInfo,
999 CodeGen::CodeGenFunction &CGF,
1001 return PPC_initDwarfEHRegSizeTable(CGF, Address, /*Is64Bit*/ true,
1024 PPC64TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
1026 return PPC_initDwarfEHRegSizeTable(CGF, Address, /*Is64Bit*/ true,