summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp15
-rw-r--r--clang/test/CodeGen/ppc64-varargs-struct.c6
2 files changed, 0 insertions, 21 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index 0a6ebb897e9..58cbf2e2068 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -2755,21 +2755,6 @@ llvm::Value *PPC64_SVR4_ABIInfo::EmitVAArg(llvm::Value *VAListAddr,
llvm::Value *VAListAddrAsBPP = Builder.CreateBitCast(VAListAddr, BPP, "ap");
llvm::Value *Addr = Builder.CreateLoad(VAListAddrAsBPP, "ap.cur");
- // Handle address alignment for type alignment > 64 bits. Although
- // long double normally requires 16-byte alignment, this is not the
- // case when it is passed as an argument; so handle that special case.
- const BuiltinType *BT = Ty->getAs<BuiltinType>();
- unsigned TyAlign = CGF.getContext().getTypeAlign(Ty) / 8;
-
- if (TyAlign > 8 && (!BT || !BT->isFloatingPoint())) {
- assert((TyAlign & (TyAlign - 1)) == 0 &&
- "Alignment is not power of 2!");
- llvm::Value *AddrAsInt = Builder.CreatePtrToInt(Addr, CGF.Int64Ty);
- AddrAsInt = Builder.CreateAdd(AddrAsInt, Builder.getInt64(TyAlign - 1));
- AddrAsInt = Builder.CreateAnd(AddrAsInt, Builder.getInt64(~(TyAlign - 1)));
- Addr = Builder.CreateIntToPtr(AddrAsInt, BP);
- }
-
// Update the va_list pointer.
unsigned SizeInBytes = CGF.getContext().getTypeSize(Ty) / 8;
unsigned Offset = llvm::RoundUpToAlignment(SizeInBytes, 8);
diff --git a/clang/test/CodeGen/ppc64-varargs-struct.c b/clang/test/CodeGen/ppc64-varargs-struct.c
index 3c7e7cb6bc1..e69332ead43 100644
--- a/clang/test/CodeGen/ppc64-varargs-struct.c
+++ b/clang/test/CodeGen/ppc64-varargs-struct.c
@@ -18,12 +18,6 @@ void testva (int n, ...)
// CHECK: bitcast %struct.x* %{{[0-9]+}} to i8*
// CHECK: call void @llvm.memcpy
- __int128_t u = va_arg (ap, __int128_t);
-// CHECK: ptrtoint i8* %{{[a-z.0-9]*}} to i64
-// CHECK: add i64 %{{[0-9]+}}, 15
-// CHECK: and i64 %{{[0-9]+}}, 4294967280
-// CHECK: inttoptr i64 %{{[0-9]+}} to i8*
-
int v = va_arg (ap, int);
// CHECK: ptrtoint i8* %{{[a-z.0-9]*}} to i64
// CHECK: add i64 %{{[0-9]+}}, 4
OpenPOWER on IntegriCloud