summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-01-20 00:05:46 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-01-20 00:05:46 +0000
commit32c7c25dcbd834f96c7b9a9613acf98bed6144d4 (patch)
tree07037232de2ceb483059d8cdb300694543f6da0b /llvm/lib/Target/X86/X86FastISel.cpp
parent0caa21cb25ae58352e688213a5af604e6dbc3e07 (diff)
downloadbcm5719-llvm-32c7c25dcbd834f96c7b9a9613acf98bed6144d4.tar.gz
bcm5719-llvm-32c7c25dcbd834f96c7b9a9613acf98bed6144d4.zip
Support MSVC x86-32 sret convention. PR11688. Patch by Joe Groff.
llvm-svn: 148513
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FastISel.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp
index bae5ede8d35..13e20f4eb0e 100644
--- a/llvm/lib/Target/X86/X86FastISel.cpp
+++ b/llvm/lib/Target/X86/X86FastISel.cpp
@@ -1855,7 +1855,8 @@ bool X86FastISel::DoSelectCall(const Instruction *I, const char *MemIntName) {
// Issue CALLSEQ_END
unsigned AdjStackUp = TII.getCallFrameDestroyOpcode();
unsigned NumBytesCallee = 0;
- if (!Subtarget->is64Bit() && CS.paramHasAttr(1, Attribute::StructRet))
+ if (!Subtarget->is64Bit() && !Subtarget->isTargetWindows() &&
+ CS.paramHasAttr(1, Attribute::StructRet))
NumBytesCallee = 4;
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(AdjStackUp))
.addImm(NumBytes).addImm(NumBytesCallee);
OpenPOWER on IntegriCloud