Skip to content

Conversation

@compnerd
Copy link
Member

Adjust the frame setup code for Windows ARM64 to attempt to align pair-wise spills to 16-byte boundaries. This enables us to properly emit the spills for custom clang calling convensions such as preserve most which spills r9-r15 which are normally nonvolatile registers. Even when using the ARM64EC opcodes for the unwinding, we cannot represent the spill if it is unaligned.

(cherry picked from commit 2d8563f)

Adjust the frame setup code for Windows ARM64 to attempt to align
pair-wise spills to 16-byte boundaries. This enables us to properly emit
the spills for custom clang calling convensions such as preserve most
which spills r9-r15 which are normally nonvolatile registers. Even when
using the ARM64EC opcodes for the unwinding, we cannot represent the
spill if it is unaligned.

(cherry picked from commit 2d8563f)
@compnerd
Copy link
Member Author

@swift-ci please test

@compnerd compnerd merged commit 1d03981 into swiftlang:stable/21.x Nov 12, 2025
3 checks passed
@compnerd compnerd deleted the unwind branch November 14, 2025 00:50
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