Kazan will also most likely need inline assembly, so adding this to Kazan's budget. Setting to €400 for now.
Add PowerPC64 support to Rust's new `asm!` macro for inline assembly. This includes writing the code and going through the process of merging it into upstream Rust and addressing any concerns that arise in the process.
A GitHub account is required.
Knowledge of PowerPC assembly and/or Rustc's internals would be useful.
> Adding support for a new architecture is actually quite straightforward since
> most of the work is already done in LLVM. You only need to make 2 changes:
> Add the register definitions to src/librustc_target/asm/.
> Add lowering to LLVM asm to src/librustc_codegen_llvm/asm.rs.
> Have a look at #73214 which added inline asm support for Hexagon.
This is more complex than adding support for Hexagon since PowerPC has many more constraint kinds than Hexagon (the example pull request below).
LLVM inline assembly ISA-specific constraint code list:
LLVM inline assembly reference:
PowerPC Spec (not expected to read all of it):
Example pull request for adding ISA to Rust's `asm!` macro:
RFC for Rust's `asm!` macro:
Relevant issues I discovered with inline assembly in LLVM: