JIT: streamline temp usage for returns (dotnet/coreclr#20640)
If the jit decides it needs a return spill temp, and the return value
has already been spilled to a single-def temp, re-use the existing
for the return temp rather than creating a new one.
In conjunction with dotnet/coreclr#20553 this allows late devirtualization for calls where
the object in the virtual call is the result of an inline that provides
a better type, and the objected formerly reached the call via one or more
intermediate temps.
Closes dotnet/coreclr#15873.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccc18a6352c7a6232606131424c0377ea3529991