Open
Description
- Support
const
operands.- For inline asm (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1350)
- For global asm (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1351)
- Support
sym
operands.- For inline asm (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1350)
- For global asm (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1351, but doesn't work when the function is made private to the codegen unit)
- Support asm goto (Stabilize
asm_goto
feature gate rust#133870 will stabilize it for cg_llvm) - Support register classes. This will require writing a mini register allocator to solve all register constraints. (Improve inline asm support #1206)
- Optimize
- Overlap input and output stack slots. (Improve inline asm support #1206)
- Skip saving caller saved registers. (Improve inline asm support #1206)
- Support more architectures
- aarch64 (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1396)
- riscv64 (Add riscv64 linux support #1398)
- ...
- Support inline asm on macOS (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1397)
- Support inline asm on Windows (Support and stabilize inline asm on all platforms #1403)
- Avoid the object file linking hack. It doesn't work on macOS and Windows but is currently necessary as incr comp expects each codegen unit to provide a single object file instead of allowing an extra object file for the compiled assembly. (Refactorings for enabling parallel compilation (part 1) #1264)
- Use cgu name instead of function name as base for assembly stub names. The same function name may be used in multiple cgus when using
#[inline]
. (1222192) - Run inline asm tests from the rustc test suite (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1397)
- Enable support by default (Support and stabilize inline asm on all platforms #1403)
Tracking issue for stabilizing Has been stabilized.asm!()
: rust-lang/rust#72016