Work in progress. This patch *fixes* x86-64 calls which are modelled as StructRet...
authorEvan Cheng <evan.cheng@apple.com>
Tue, 29 Jan 2008 19:34:22 +0000 (19:34 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 29 Jan 2008 19:34:22 +0000 (19:34 +0000)
commit0d9e976ad2c5479f3d67f8cb09a5908cfc29985c
treec7efc3708431f9b9d224129af3ad75915b168376
parentc748412c421fe8afc774d68b56f83d6f46f9e464
Work in progress. This patch *fixes* x86-64 calls which are modelled as StructRet but really should be return in registers, e.g. _Complex long double, some 128-bit aggregates. This is a short term solution that is necessary only because llvm, for now, cannot model i128 nor call's with multiple results.
Status: This only works for direct calls, and only the caller side is done. Disabled for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46527 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FloatingPoint.cpp
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86Instr64bit.td
lib/Target/X86/X86InstrFPStack.td