================
@@ -3122,9 +3122,25 @@ Address X86_64ABIInfo::EmitVAArg(CodeGenFunction &CGF,
Address VAListAddr,
CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
RegAddr = Tmp.withElementType(LTy);
- } else if (neededInt) {
- RegAddr = Address(CGF.Builder.CreateGEP(CGF.Int8Ty, RegSaveArea,
gp_offset),
- LTy, CharUnits::fromQuantity(8));
+ } else if (neededInt || neededSSE == 1) {
+ llvm::Value *Offset = neededInt ? gp_offset : fp_offset;
+ uint64_t Alignment = neededInt ? 8 : 16;
+ Address Tmp = Address::invalid();
+ if (AI.isDirect() && AI.getDirectOffset() == 8) {
+ Tmp = CGF.CreateMemTemp(Ty);
+ llvm::StructType *ST = cast<llvm::StructType>(LTy);
----------------
efriedma-quic wrote:
ST is also wrong... please write a few more testcases.
https://github.com/llvm/llvm-project/pull/90389
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits