Fix some bugs from D5988

Summary:
Ed Maste found some problems with the commit in D5988.  Address most of these.
While here, also add floating point return handling.  This doesn't handle
128-bit long double yet.  Since I don't have any system that uses it, I don't
currently have plans to implement it.

Reviewers: emaste

Reviewed By: emaste

Subscribers: emaste, lldb-commits

Differential Revision: http://reviews.llvm.org/D6049

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@220963 91177308-0d34-0410-b5e6-96231b3b80d8