[XCore] Support functions returning more than 4 words.
authorRichard Osborne <richard@xmos.com>
Thu, 27 Feb 2014 14:00:40 +0000 (14:00 +0000)
committerRichard Osborne <richard@xmos.com>
Thu, 27 Feb 2014 14:00:40 +0000 (14:00 +0000)
commitad4ffce35ffe77b25f4a670823225a9151725630
treeacb7e0d50d078b14eec5a10372aa88e50da337aa
parent6257ef873272c6a09638a80872dfce65a7946fb6
[XCore] Support functions returning more than 4 words.

Summary:
If a function returns a large struct by value return the first 4 words
in registers and the rest on the stack in a location reserved by the
caller. This is needed to support the xC language which supports
functions returning an arbitrary number of return values.

Reviewers: robertlytton

Reviewed By: robertlytton

CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2889

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202397 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/XCore/XCoreCallingConv.td
lib/Target/XCore/XCoreISelLowering.cpp
lib/Target/XCore/XCoreISelLowering.h
lib/Target/XCore/XCoreInstrInfo.td
lib/Target/XCore/XCoreMachineFunctionInfo.h
test/CodeGen/XCore/bigstructret.ll