diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-25 13:41:10 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-25 13:41:10 +0000 |
commit | 1cee71099c0477c6bf0e8ff76a55b8873ce146b4 (patch) | |
tree | 13dad778c8a1fc7d4676d9c731e70a18f08ff67c /lib/Target/X86/X86FastISel.cpp | |
parent | 742f2c9a43af3bae65922d2679de8835a6d4f302 (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.cpp | 2 |
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; } |