rust/src
Matthias Krüger 041ecb124a
Rollup merge of #146949 - pmur:murp/improve-ppc-inline-asm, r=Amanieu
Add vsx register support for ppc inline asm, and implement preserves_flag option

This should address the last(?) missing pieces of inline asm for ppc:

* Explicit VSX register support. ISA 2.06 (POWER7) added a 64x128b register overlay extending the fpr's to 128b, and unifies them with the vmx (altivec) registers. Implementations details within gcc/llvm percolate up, and require using the `x` template modifier. I have updated the inline asm to implicitly include this for vsx arguments which do not specify it. ~~Support for the gcc codegen backend is still a todo.~~

* Implement the `preserves_flags` option. All ABI's, and all ISAs store their flags in `cr`, and the carry bit lives inside `xer`. The other status registers hold sticky bits or control bits which do not affect branch instructions.

There is some interest in the e500 (powerpcspe) port. Architecturally, it has a very different FP ISA, and includes a simd extension called SPR (which is not IBM's cell SPE). Notably, it does not have altivec/fpr/vsx registers. It also has an SPE accumulator register which its ABI marks as volatile, but I am not sure if the compiler uses it.
2025-10-15 07:09:54 +02:00
..
bootstrap Auto merge of #147675 - lnicola:sync-from-ra, r=lnicola 2025-10-14 17:45:05 +00:00
build_helper Include additional hashes in src/stage0 2025-09-27 08:43:22 -04:00
ci Auto merge of #147662 - Zalathar:rollup-j8ci0f2, r=Zalathar 2025-10-14 12:32:31 +00:00
doc Allow vector-scalar (vs) registers in ppc inline assembly 2025-10-14 09:52:56 -05:00
etc Rollup merge of #147178 - Walnut356:msvc_enum_summary, r=Mark-Simulacrum 2025-10-12 19:07:46 +02:00
gcc@4e995bd73c Update GCC submodule 2025-08-26 18:09:42 +02:00
librustdoc Auto merge of #147475 - matthiaskrgr:rollup-iyrkv0g, r=matthiaskrgr 2025-10-08 16:07:07 +00:00
llvm-project@4f74b76fb6 Update LLVM to 21.1.3 2025-10-09 18:23:56 +08:00
rustc-std-workspace
rustdoc-json-types Add new doc(attribute = "...") attribute 2025-08-28 15:56:29 +02:00
tools Auto merge of #147692 - matthiaskrgr:rollup-bqhlwyw, r=matthiaskrgr 2025-10-14 20:56:53 +00:00
README.md
stage0 Update stage0 per previous commmit 2025-09-27 08:45:40 -04:00
version Bump version to 1.92.0 2025-09-13 10:09:15 -04:00

This directory contains some source code for the Rust project, including:

  • The bootstrapping build system
  • Various submodules for tools, like cargo, tidy, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.