<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_cranelift/src/inline_asm.rs, branch try-perf</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try-perf</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try-perf'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-06-06T02:15:56+00:00</updated>
<entry>
<title>Update `InterpCx::project_field` to take `FieldIdx`</title>
<updated>2025-06-06T02:15:56+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2025-06-04T08:44:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8bce2255e826a11d1aa345d1786f85d22c5f921a'/>
<id>urn:sha1:8bce2255e826a11d1aa345d1786f85d22c5f921a</id>
<content type='text'>
As suggested by Ralf in 142005.

</content>
</entry>
<entry>
<title>Use cg_ssa's version of codegen_naked_asm in cg_clif</title>
<updated>2025-04-14T09:38:04+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2024-12-12T20:31:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f5c93fa3feb29b1161acf07191ff2684776b9abf'/>
<id>urn:sha1:f5c93fa3feb29b1161acf07191ff2684776b9abf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit 'ba315abda789c9f59f2100102232bddb30b0d3d3' into sync_cg_clif-2025-03-30</title>
<updated>2025-03-30T15:43:48+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-03-30T15:43:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1111a9788650b6cde6f78250a81328f6ab211b51'/>
<id>urn:sha1:1111a9788650b6cde6f78250a81328f6ab211b51</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit '557ed8ebb7e981817d03c87352892c394183dd70' into sync_cg_clif-2025-02-15</title>
<updated>2025-02-15T14:13:01+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-02-15T14:13:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7a6206e9c4067b54b386213cbdb0ccfc527ffc8b'/>
<id>urn:sha1:7a6206e9c4067b54b386213cbdb0ccfc527ffc8b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rustfmt</title>
<updated>2025-02-08T22:12:13+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-02-08T22:12:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1fcae03369abb4c2cc180cd5a49e1f4440a81300'/>
<id>urn:sha1:1fcae03369abb4c2cc180cd5a49e1f4440a81300</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit '918acafef682d0d0ca30b47de4768210417ff362' into sync_cg_clif-2025-01-05</title>
<updated>2025-01-05T15:44:46+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-01-05T15:44:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a94e2d513b8b3113ea53e5abf4403ef4e91914e3'/>
<id>urn:sha1:a94e2d513b8b3113ea53e5abf4403ef4e91914e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit '57845a397ec15e4e6a561ed2c4bfa3dcf49144fb' into sync_cg_clif-2024-12-06</title>
<updated>2024-12-06T12:10:30+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2024-12-06T12:10:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b3d837afe1190420464ccd6933b90b01be338ca2'/>
<id>urn:sha1:b3d837afe1190420464ccd6933b90b01be338ca2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #133422 - taiki-e:riscv-e-clobber-abi, r=Amanieu</title>
<updated>2024-11-28T11:06:01+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2024-11-28T11:06:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=89ae19ee0dba8966f21153794358da8c5ac05a51'/>
<id>urn:sha1:89ae19ee0dba8966f21153794358da8c5ac05a51</id>
<content type='text'>
Fix clobber_abi in RV32E and RV64E inline assembly

Currently clobber_abi in RV32E and RV64E inline assembly is implemented using InlineAsmClobberAbi::RiscV, but broken since x16-x31 cannot be used in RV32E and RV64E.

```
error: cannot use register `x16`: register can't be used with the `e` target feature
  --&gt; &lt;source&gt;:42:14
   |
42 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
   |              ^^^^^^^^^^^^^^^^

error: cannot use register `x17`: register can't be used with the `e` target feature
  --&gt; &lt;source&gt;:42:14
   |
42 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
   |              ^^^^^^^^^^^^^^^^

error: cannot use register `x28`: register can't be used with the `e` target feature
  --&gt; &lt;source&gt;:42:14
   |
42 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
   |              ^^^^^^^^^^^^^^^^

error: cannot use register `x29`: register can't be used with the `e` target feature
  --&gt; &lt;source&gt;:42:14
   |
42 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
   |              ^^^^^^^^^^^^^^^^

error: cannot use register `x30`: register can't be used with the `e` target feature
  --&gt; &lt;source&gt;:42:14
   |
42 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
   |              ^^^^^^^^^^^^^^^^

error: cannot use register `x31`: register can't be used with the `e` target feature
  --&gt; &lt;source&gt;:42:14
   |
42 |     asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
   |              ^^^^^^^^^^^^^^^^
```

r? `@Amanieu`

`@rustbot` label O-riscv +A-inline-assembly
</content>
</entry>
<entry>
<title>Rollup merge of #131664 - taiki-e:s390x-asm-vreg-inout, r=Amanieu</title>
<updated>2024-11-25T06:01:37+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-11-25T06:01:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3f86eddf837191f61ab9ca203b5742278f98d758'/>
<id>urn:sha1:3f86eddf837191f61ab9ca203b5742278f98d758</id>
<content type='text'>
Support input/output in vector registers of s390x inline assembly (under asm_experimental_reg feature)

This extends currently clobber-only vector registers (`vreg`) support to allow passing `#[repr(simd)]` types, floats (f32/f64/f128), and integers (i32/i64/i128) as input/output.

This is unstable and gated under new `#![feature(asm_experimental_reg)]` (tracking issue: https://github.com/rust-lang/rust/issues/133416). If the feature is not enabled, only clober is supported as before.

| Architecture | Register class | Target feature | Allowed types |
| ------------ | -------------- | -------------- | -------------- |
| s390x | `vreg` | `vector` | `i32`, `f32`, `i64`, `f64`, `i128`, `f128`, `i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` |

This matches the list of types that are supported by the vector registers in LLVM:
https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L301-L313

In addition to `core::simd` types and floats listed above, custom `#[repr(simd)]` types of the same size and type are also allowed. All allowed types other than i32/f32/i64/f64/i128, and relevant target features are currently unstable.

Currently there is no SIMD type for s390x in `core::arch`, but this is tracked in https://github.com/rust-lang/rust/issues/130869.

cc https://github.com/rust-lang/rust/issues/130869 about vector facility support in s390x
cc https://github.com/rust-lang/rust/issues/125398 &amp; https://github.com/rust-lang/rust/issues/116909 about f128 support in asm

`@rustbot` label +O-SystemZ +A-inline-assembly
</content>
</entry>
<entry>
<title>Fix clobber_abi in RV32E and RV64E inline assembly</title>
<updated>2024-11-24T15:36:22+00:00</updated>
<author>
<name>Taiki Endo</name>
<email>te316e89@gmail.com</email>
</author>
<published>2024-11-24T15:36:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=736c397f41f9030e500199fc28b56a7fab703759'/>
<id>urn:sha1:736c397f41f9030e500199fc28b56a7fab703759</id>
<content type='text'>
</content>
</entry>
</feed>
