diff options
author | Dale Johannesen <dalej@apple.com> | 2008-09-26 19:31:26 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2008-09-26 19:31:26 +0000 |
commit | 67cc9b67faa7d6a72d916b52c22e7a33a44097db (patch) | |
tree | ec0d224a2780a707ab69dec8941ae3a64170339a /lib/CodeGen/SelectionDAG/CallingConvLower.cpp | |
parent | c641336847d19f597db7c9ddfdce1bbebc6c4ef9 (diff) | |
download | external_llvm-67cc9b67faa7d6a72d916b52c22e7a33a44097db.zip external_llvm-67cc9b67faa7d6a72d916b52c22e7a33a44097db.tar.gz external_llvm-67cc9b67faa7d6a72d916b52c22e7a33a44097db.tar.bz2 |
Add "inreg" field to CallSDNode (doesn't increase
its size). Adjust various lowering functions to
pass this info through from CallInst. Use it to
implement sseregparm returns on X86. Remove
X86_ssecall calling convention.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56677 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/CallingConvLower.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/CallingConvLower.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/CallingConvLower.cpp b/lib/CodeGen/SelectionDAG/CallingConvLower.cpp index a6f52dd..c007779 100644 --- a/lib/CodeGen/SelectionDAG/CallingConvLower.cpp +++ b/lib/CodeGen/SelectionDAG/CallingConvLower.cpp @@ -126,7 +126,10 @@ void CCState::AnalyzeCallOperands(SmallVectorImpl<MVT> &ArgVTs, void CCState::AnalyzeCallResult(CallSDNode *TheCall, CCAssignFn Fn) { for (unsigned i = 0, e = TheCall->getNumRetVals(); i != e; ++i) { MVT VT = TheCall->getRetValType(i); - if (Fn(i, VT, VT, CCValAssign::Full, ISD::ArgFlagsTy(), *this)) { + ISD::ArgFlagsTy Flags = ISD::ArgFlagsTy(); + if (TheCall->isInreg()) + Flags.setInReg(); + if (Fn(i, VT, VT, CCValAssign::Full, Flags, *this)) { cerr << "Call result #" << i << " has unhandled type " << VT.getMVTString() << "\n"; abort(); |