aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-07-25 13:41:10 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-07-25 13:41:10 +0000
commit1cee71099c0477c6bf0e8ff76a55b8873ce146b4 (patch)
tree13dad778c8a1fc7d4676d9c731e70a18f08ff67c /lib/Target/X86/X86FastISel.cpp
parent742f2c9a43af3bae65922d2679de8835a6d4f302 (diff)
When a return struct pointer is passed in registers, the called has nothing
to pop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160725 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86FastISel.cpp')
-rw-r--r--lib/Target/X86/X86FastISel.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp
index 08ad7fa11d..4eeefae631 100644
--- a/lib/Target/X86/X86FastISel.cpp
+++ b/lib/Target/X86/X86FastISel.cpp
@@ -1527,6 +1527,8 @@ static unsigned computeBytesPopedByCalle(const X86Subtarget &Subtarget,
return 0;
if (!CS.paramHasAttr(1, Attribute::StructRet))
return 0;
+ if (CS.paramHasAttr(1, Attribute::InReg))
+ return 0;
return 4;
}