1
Fork 0
rust/compiler/rustc_codegen_ssa
bors 1daec069fb Auto merge of #128004 - folkertdev:naked-fn-asm, r=Amanieu
codegen `#[naked]` functions using global asm

tracking issue: https://github.com/rust-lang/rust/issues/90957

Fixes #124375

This implements the approach suggested in the tracking issue: use the existing global assembly infrastructure to emit the body of `#[naked]` functions. The main advantage is that we now have full control over what gets generated, and are no longer dependent on LLVM not sneakily messing with our output (inlining, adding extra instructions, etc).

I discussed this approach with `@Amanieu` and while I think the general direction is correct, there is probably a bunch of stuff that needs to change or move around here. I'll leave some inline comments on things that I'm not sure about.

Combined with https://github.com/rust-lang/rust/pull/127853, if both accepted, I think that resolves all steps from the tracking issue.

r? `@Amanieu`
2024-12-11 21:51:07 +00:00
..
src Auto merge of #128004 - folkertdev:naked-fn-asm, r=Amanieu 2024-12-11 21:51:07 +00:00
Cargo.toml Rollup merge of #133456 - clubby789:cargo-update, r=ChrisDenton 2024-12-10 08:55:56 +01:00
messages.ftl fix: rust-lang/rust#47446 2024-11-15 15:25:19 +01:00
README.md

Please read the rustc-dev-guide chapter on Backend Agnostic Codegen.