This repository has been archived by the owner on Nov 1, 2020. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixing a bug with handling HFA of floats for arm64. When passing HFAs…
…, if the struct fits in the SIMD registers, given that the S and D registers overlap and how the UniversalTransitionThunk and CallDescrWorker copy D values, we treat the HFA struct as an HFA of doubles instead of floats (And we double the size of the struct during this processing). The issue however is when there aren't enough SIMD registers to fit the HFA struct, and we're forced to pass it on the stack. In that case, we shouldn't double the size of the struct and treat the floats as doubles. Also fixing the test to exclude invalid scenarios from arm64 (the scenario is invalid because the return buffer pointer is passed using a special x8 register, and not using the x0-7 registers like the rest of the arguments) [tfs-changeset: 1701853]
- Loading branch information