Skip to content

Conversation

noncombatant
Copy link
Contributor

Also, the Unsupported Register table should mention that LLVM reserves rbx (as noted in a previous PR I filed tonight.)

Also, the Unsupported Register table should mention that LLVM reserves `rbx` (as noted in a previous PR I filed tonight.)
@rust-highfive
Copy link
Contributor

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @GuillaumeGomez (or someone else) soon.

Please see the contribution instructions for more information.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 20, 2021
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-10 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Set({"src/doc/edition-guide"}) not skipped for "bootstrap::doc::EditionGuide" -- not in ["src/tools/tidy"]
Rustbook (x86_64-unknown-linux-gnu) - edition-guide
Building stage0 tool linkchecker (x86_64-unknown-linux-gnu)
    Finished release [optimized] target(s) in 0.17s
unstable-book/print.html:4192: broken link fragment `#Options` pointing to `unstable-book/library-features/asm.html`
unstable-book/library-features/asm.html:495: broken link fragment `#Options` pointing to `unstable-book/library-features/asm.html`
number of HTML files scanned: 28916
number of HTML redirects found: 9002
number of links checked: 1815013
number of links ignored due to external: 68350

@JohnTitor
Copy link
Member

Could you move the changes in #90082 and #90084 to this PR? It doesn't make much sense to separate those and reviewing at once would be easier.


As a consequence, you should only use GNU assembler **numeric** [local labels] inside inline assembly code. Defining symbols in assembly code may lead to assembler and/or linker errors due to duplicate symbol definitions.

Moreover, on x86 when using the default intel syntax, due to [an llvm bug], you shouldn't use labels exclusively made of `0` and `1` digits, e.g. `0`, `11` or `101010`, as they may end up being interpreted as binary values. Using `options(att_syntax)` will avoid any ambiguity, but that affects the syntax of the _entire_ `asm!` block.
Moreover, on x86 when using the default Intel syntax, due to [an LLVM bug], you shouldn't use labels exclusively made of `0` and `1` digits, e.g. `0`, `11` or `101010`, as they may end up being interpreted as binary values. Using `options(att_syntax)` will avoid any ambiguity, but that affects the syntax of the _entire_ `asm!` block. (See [Options](#Options), below, for more on `options`.)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link should be to #options (lower case o).

@apiraino apiraino added the T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. label Oct 28, 2021
@camelid camelid added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. A-inline-assembly Area: Inline assembly (`asm!(…)`) A-docs Area: Documentation for any part of the project, including the compiler, standard library, and tools S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 3, 2021
@Amanieu
Copy link
Member

Amanieu commented Dec 2, 2021

@noncombatant Are you still working on this PR? I am currently preparing the asm! documentation for inclusion in the reference and in rust by example, based on the current contents of the unstable book page.

@noncombatant
Copy link
Contributor Author

I don't have time, unfortunately.

Amanieu added a commit to Amanieu/reference that referenced this pull request Dec 9, 2021
@Amanieu
Copy link
Member

Amanieu commented Dec 11, 2021

I've incorporated the fixes from this PR in rust-lang/reference#1105 and rust-lang/rust-by-example#1483. Thanks @noncombatant

@Amanieu Amanieu closed this Dec 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-docs Area: Documentation for any part of the project, including the compiler, standard library, and tools A-inline-assembly Area: Inline assembly (`asm!(…)`) S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants