Arm hard float ABI can use floating point registers for returning structures containing all 4 or 8 byte floating point elements.
Arm ABI documentation call such structs a Homogeneous Aggregate, which is a Composite Type where all of the Fundamental Data Types that compose the type
are the same.
With Arm Hard float ABI a Homogeneous Aggregate with a Base Type of a single- or double-precision floating-point type with one to four Elements can be returned using register s0-s3 and d0-d3.
This patch updates ABISysV_arm::GetReturnValueObjectImpl to handle these cases.
ReturnValueTestCase passes on armhf based linux target after applying this patch.
I think this should be an "else if" to fix the issue I mentioned in line 636