This is an archive of the discontinued LLVM Phabricator instance.

[X86] Properly implement the calling convention for f80 for win64
ClosedPublic

Authored by mstorsjo on Mar 16 2018, 4:08 PM.

Details

Summary

In these cases, both parameters and return values are passed as a pointer to a stack allocation.

MSVC doesn't use the f80 data type at all, while it is used for long doubles on mingw.

The CCIfNotSubtarget part feels rather unclean, is there any other way to match this earlier and have it stop matching, to trigger the same behaviour as if there was no match?

This is an alternative to D44582, fixing the same issue.

Diff Detail

Event Timeline

mstorsjo updated this revision to Diff 138897.Mar 19 2018, 4:51 AM

Added a separate standalone testcase that shows the intended behaviour.

mstorsjo edited the summary of this revision. (Show Details)Mar 19 2018, 4:52 AM
mstorsjo added a reviewer: RKSimon.
rnk accepted this revision.Mar 19 2018, 5:21 PM

lgtm

This revision is now accepted and ready to land.Mar 19 2018, 5:21 PM
This revision was automatically updated to reflect the committed changes.