Skip to content

Cherry-picking latest swifttailcc changes #2461

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

TNorthover
Copy link

Should fix the AArch64 convention and add support for ARM.

1. We were allocating arg stack space twice for tail calls, once manually and
once in the CallSeq instructions.

2. We sometimes moved sp right to its entry point and then subtracted it again
to "reallocate" argument stack space. During that interval arguments are
vulnerable to clobbering by a  kernel interruption.

3. We weren't reserving space at incoming SP for the largest potential tail
call this function makes, so we clobbered callee-saved registers (and anything
else in the way) with arguments.
@TNorthover
Copy link
Author

@swift-ci please test

@TNorthover TNorthover merged commit 1c33894 into swiftlang:apple/stable/20210107 Feb 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant