You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think the current reading of reference isn't really clear on whether this label is allowed to be jumped to indirectly.
I don't think it'll be a huge issue for now if LLVM removes the endbr64 instruction given that this is only recently stabilized and cf-protection is not stable yet in Rust. Also, if GCC doesn't generate endbr64 then a rustc_codegen_gcc probably wouldn't generate endbr64 either. To allow more room for different backend implementations, I'd be inclined to say let's add a line in the Rust reference to say that the labels should only be jumped to directly if there is an architectural distinction.
Activity
Noratrieb commentedon Dec 27, 2023
Where is this coming from? Is there a lang MCP or anything like that?
nbdd0121 commentedon Dec 27, 2023
This is outlined as a future possibility in RFC2873 which I am implementing in #119365.
Auto merge of rust-lang#119365 - nbdd0121:asm-goto, r=Amanieu
Auto merge of rust-lang#119365 - nbdd0121:asm-goto, r=Amanieu
Rollup merge of rust-lang#119365 - nbdd0121:asm-goto, r=Amanieu
Rollup merge of rust-lang#119365 - nbdd0121:asm-goto, r=Amanieu
Unrolled build for rust-lang#119365
Rollup merge of rust-lang#119365 - nbdd0121:asm-goto, r=Amanieu
Rollup merge of rust-lang#119365 - nbdd0121:asm-goto, r=Amanieu
rust: upgrade to Rust 1.78.0
rust: upgrade to Rust 1.78.0
rust: upgrade to Rust 1.78.0
9 remaining items
nikomatsakis commentedon Sep 25, 2024
@nbdd0121 wrote up this document on advanced assembly usage in the Linux kernel.
Rollup merge of rust-lang#131544 - nbdd0121:asm_goto_safe_block, r=pe…
Unrolled build for rust-lang#131544
Rollup merge of rust-lang#131523 - nbdd0121:asm, r=compiler-errors
Unrolled build for rust-lang#131523
Rollup merge of rust-lang#133870 - nbdd0121:asm, r=traviscross,nnethe…
Unrolled build for rust-lang#133870
Rollup merge of #133870 - nbdd0121:asm, r=traviscross,nnethercote
programmerjake commentedon Apr 14, 2025
what happens with indirect branches to labels when stuff like IBT is in use? do labels start with
endbr64or equivalent? LLVM currently has a RFC up for removing generatedendbr64instructions to match GCC and maybe adding a way to add them back laternbdd0121 commentedon Apr 15, 2025
I think the current reading of reference isn't really clear on whether this label is allowed to be jumped to indirectly.
I don't think it'll be a huge issue for now if LLVM removes the
endbr64instruction given that this is only recently stabilized and cf-protection is not stable yet in Rust. Also, if GCC doesn't generateendbr64then a rustc_codegen_gcc probably wouldn't generateendbr64either. To allow more room for different backend implementations, I'd be inclined to say let's add a line in the Rust reference to say that the labels should only be jumped to directly if there is an architectural distinction.Mark-Simulacrum commentedon May 4, 2025
It looks like this is now the tracking issue for the with_outputs variant of the feature since #131523, so updating the title accordingly.
[-]Tracking Issue for asm_goto[/-][+]Tracking Issue for asm_goto_with_outputs[/+]rust: upgrade to Rust 1.78.0
rust: upgrade to Rust 1.78.0
jstarks commentedon Dec 13, 2025
What's necessary to stabilize the with_outputs variant? Do we need to wait until the LLVM fix is available in the oldest supported LLVM version?