-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Properly support inline asm indirect output operands #29735
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nrc (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way Github handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
r? @pnkfelix (since he reviewed the last one) |
☔ The latest upstream changes (presumably #29647) made this pull request unmergeable. Please resolve the merge conflicts. |
6894a61
to
34ea3d2
Compare
rebased, should work now |
☔ The latest upstream changes (presumably #29903) made this pull request unmergeable. Please resolve the merge conflicts. |
a42ecd2
to
48da5b2
Compare
rebased |
@pnkfelix Have any thoughts about this? |
@@ -888,7 +888,7 @@ pub enum Ty_ { | |||
pub struct InlineAsm { | |||
pub asm: InternedString, | |||
pub asm_str_style: StrStyle, | |||
pub outputs: Vec<(InternedString, P<Expr>, bool)>, | |||
pub outputs: Vec<(InternedString, P<Expr>, bool, bool)>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we use an enum here instead of two bools?
Or at least a struct instead of a tuple.
48da5b2
to
65707df
Compare
Updated to use a struct instead of a tuple for asm output operands |
Sorry for delay; unfortunately I can't guarantee I'll have time for this until a week from Monday. (I might get to it, but there's a lot of other things on my plate in short term) |
(Darn pokey mobile phone interface...) |
Okay, this seems fine, since asm is still unstable (and thus I don't mind landing extensions like this to it, especially since it is arguably a bug fix). For anyone else reading this PR, the |
@bors r+ |
📌 Commit 65707df has been approved by |
This PR reverts #29543 and instead implements proper support for "=*m" and "+*m" indirect output operands. This provides a framework on top of which support for plain memory operands ("m", "=m" and "+m") can be implemented. This also fixes the liveness analysis pass not handling read/write operands correctly.
This PR reverts #29543 and instead implements proper support for "=_m" and "+_m" indirect output operands. This provides a framework on top of which support for plain memory operands ("m", "=m" and "+m") can be implemented.
This also fixes the liveness analysis pass not handling read/write operands correctly.