Stabilize Arm64EC inline assembly #131781
Open
+6
−34
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This stabilizes inline assembly for Arm64EC ("Emulation Compatible").
Corresponding reference PR: rust-lang/reference#1653
From the requirements of stabilization mentioned in #93335
Done in #131332.
This is possible from the time of the initial implementation.
The registers available in this target are a subset of those available in the AArch64 inline assembly which is already stable.
The following registers cannot be used in Arm64EC compared to AArch64:
x13
,x14
,x23
,x24
,x28
(register class:reg
)v[16-31]
(register class:vreg
)p[0-15]
,ffr
(clobber-only register classpreg
)These are disallowed by the ABI (see also abi docs for
reg
/vreg
and #131332 (comment) forpreg
).Although not listed in the above requirements, preserves_flags is also implemented and the same as AArch64.
cc @dpaoliello
r? @Amanieu
@rustbot label O-windows O-AArch64 +A-inline-assembly +T-lang -T-compiler +needs-fcp
(T-lang FCP is needed after the review by the reviewer per #131258 (comment))