diff options
author | Duncan Sands <baldrick@free.fr> | 2008-02-14 17:28:50 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2008-02-14 17:28:50 +0000 |
commit | 4c95dbd69fef80c1fc1eaf340458ff2e24a56186 (patch) | |
tree | d8d132fcac142c37ca7eb165602a027e766ad601 /llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | |
parent | 53e1b3f9d580383862aedf41e7e83f7aab0c250e (diff) | |
download | bcm5719-llvm-4c95dbd69fef80c1fc1eaf340458ff2e24a56186.tar.gz bcm5719-llvm-4c95dbd69fef80c1fc1eaf340458ff2e24a56186.zip |
In TargetLowering::LowerCallTo, don't assert that
the return value is zero-extended if it isn't
sign-extended. It may also be any-extended.
Also, if a floating point value was returned
in a larger floating point type, pass 1 as the
second operand to FP_ROUND, which tells it
that all the precision is in the original type.
I think this is right but I could be wrong.
Finally, when doing libcalls, set isZExt on
a parameter if it is "unsigned". Currently
isSExt is set when signed, and nothing is
set otherwise. This should be right for all
calls to standard library routines.
llvm-svn: 47122
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index e58c2f76ff1..eb0370aaf6d 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -264,8 +264,8 @@ SDOperand TargetLowering::LowerMEMCPYCall(SDOperand Chain, Entry.Node = Source; Args.push_back(Entry); Entry.Node = Count; Args.push_back(Entry); std::pair<SDOperand,SDOperand> CallResult = - LowerCallTo(Chain, Type::VoidTy, false, false, CallingConv::C, false, - DAG.getExternalSymbol("memcpy", IntPtr), Args, DAG); + LowerCallTo(Chain, Type::VoidTy, false, false, false, CallingConv::C, + false, DAG.getExternalSymbol("memcpy", IntPtr), Args, DAG); return CallResult.second; } |