summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-09-04 01:04:15 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-09-04 01:04:15 +0000
commit3152edf4749225bf9eef2f0a8e834dbd5c9ffb61 (patch)
treee69dd538849683011db1d81d53df65458a07bb04
parentda2d80688b68fd1667b74efc9f008b33c347c2a3 (diff)
downloadbcm5719-llvm-3152edf4749225bf9eef2f0a8e834dbd5c9ffb61.tar.gz
bcm5719-llvm-3152edf4749225bf9eef2f0a8e834dbd5c9ffb61.zip
Remove code that pad number of bytes to pop for X86_FastCall CC. The code doesn't do the "aligning" for Cygwin, Mingw, and Windows. But aligning it on Darwin and Linux breaks gcc compatibility. That ruled out all the platforms we support!
llvm-svn: 55756
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp15
-rw-r--r--llvm/test/CodeGen/X86/fast-cc-callee-pops.ll2
2 files changed, 1 insertions, 16 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 9b492fbb1d8..cd01c644260 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -1379,14 +1379,6 @@ X86TargetLowering::LowerFORMAL_ARGUMENTS(SDValue Op, SelectionDAG &DAG) {
}
}
- // Make sure the instruction takes 8n+4 bytes to make sure the start of the
- // arguments and the arguments after the retaddr has been pushed are
- // aligned.
- if (!Is64Bit && CC == CallingConv::X86_FastCall &&
- !Subtarget->isTargetCygMing() && !Subtarget->isTargetWindows() &&
- (StackSize & 7) == 0)
- StackSize += 4;
-
ArgValues.push_back(Root);
// Some CCs need callee pop.
@@ -1494,13 +1486,6 @@ SDValue X86TargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG) {
if (CC == CallingConv::Fast)
NumBytes = GetAlignedArgumentStackSize(NumBytes, DAG);
- // Make sure the instruction takes 8n+4 bytes to make sure the start of the
- // arguments and the arguments after the retaddr has been pushed are aligned.
- if (!Is64Bit && CC == CallingConv::X86_FastCall &&
- !Subtarget->isTargetCygMing() && !Subtarget->isTargetWindows() &&
- (NumBytes & 7) == 0)
- NumBytes += 4;
-
int FPDiff = 0;
if (IsTailCall) {
// Lower arguments at fp - stackoffset + fpdiff.
diff --git a/llvm/test/CodeGen/X86/fast-cc-callee-pops.ll b/llvm/test/CodeGen/X86/fast-cc-callee-pops.ll
index 9b03634b853..941f7087f62 100644
--- a/llvm/test/CodeGen/X86/fast-cc-callee-pops.ll
+++ b/llvm/test/CodeGen/X86/fast-cc-callee-pops.ll
@@ -3,6 +3,6 @@
; Check that a fastcc function pops its stack variables before returning.
-define x86_fastcallcc void @func(i64 %X, i64 %Y, float %G, double %Z) {
+define x86_fastcallcc void @func(i64 %X, i64 %Y, float %G, double %Z) nounwind {
ret void
}
OpenPOWER on IntegriCloud