simplify result value lowering by splitting the selection of *where* to return

registers out from the logic of *how* to return them.

This changes X86-64 to mark EAX live out when returning a 32-bit value,
where before it marked RAX liveout.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34582 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2007-02-25 08:15:11 +00:00
parent 31d16b039a
commit cb18656734
2 changed files with 115 additions and 95 deletions

View File

@@ -76,14 +76,14 @@ namespace llvm {
/// as.
FST,
/// FP_SET_RESULT - This corresponds to FpGETRESULT pseudo instrcuction
/// which copies from ST(0) to the destination. It takes a chain and writes
/// a RFP result and a chain.
/// FP_GET_RESULT - This corresponds to FpGETRESULT pseudo instruction
/// which copies from ST(0) to the destination. It takes a chain and
/// writes a RFP result and a chain.
FP_GET_RESULT,
/// FP_SET_RESULT - This corresponds to FpSETRESULT pseudo instrcuction
/// which copies the source operand to ST(0). It takes a chain and writes
/// a chain and a flag.
/// FP_SET_RESULT - This corresponds to FpSETRESULT pseudo instruction
/// which copies the source operand to ST(0). It takes a chain+value and
/// returns a chain and a flag.
FP_SET_RESULT,
/// CALL/TAILCALL - These operations represent an abstract X86 call