about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorTaiki Endo <te316e89@gmail.com>2024-11-24 21:42:22 +0900
committerTaiki Endo <te316e89@gmail.com>2024-11-24 21:42:22 +0900
commitc024d8ccdfb462f4e99b54e6c8456fbc4d745752 (patch)
tree746d303b898bf928538b56a2d50b1b5c05ed28a5 /src
parent2c8f6de1babfd5cce9badd8ff85c0652377edd75 (diff)
downloadrust-c024d8ccdfb462f4e99b54e6c8456fbc4d745752.tar.gz
rust-c024d8ccdfb462f4e99b54e6c8456fbc4d745752.zip
Make s390x non-clobber-only vector register support unstable
Diffstat (limited to 'src')
-rw-r--r--src/doc/unstable-book/src/language-features/asm-experimental-reg.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/doc/unstable-book/src/language-features/asm-experimental-reg.md b/src/doc/unstable-book/src/language-features/asm-experimental-reg.md
new file mode 100644
index 00000000000..a251573d276
--- /dev/null
+++ b/src/doc/unstable-book/src/language-features/asm-experimental-reg.md
@@ -0,0 +1,40 @@
+# `asm_experimental_arch`
+
+The tracking issue for this feature is: [#133416]
+
+[#133416]: https://github.com/rust-lang/rust/issues/133416
+
+------------------------
+
+This tracks support for additional registers in architectures where inline assembly is already stable.
+
+## Register classes
+
+| Architecture | Register class | Registers | LLVM constraint code |
+| ------------ | -------------- | --------- | -------------------- |
+| s390x | `vreg` | `v[0-31]` | `v` |
+
+> **Notes**:
+> - s390x `vreg` is clobber-only in stable.
+
+## Register class supported types
+
+| Architecture | Register class | Target feature | Allowed types |
+| ------------ | -------------- | -------------- | ------------- |
+| s390x | `vreg` | `vector` | `i32`, `f32`, `i64`, `f64`, `i128`, `f128`, `i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` |
+
+## Register aliases
+
+| Architecture | Base register | Aliases |
+| ------------ | ------------- | ------- |
+
+## Unsupported registers
+
+| Architecture | Unsupported register | Reason |
+| ------------ | -------------------- | ------ |
+
+## Template modifiers
+
+| Architecture | Register class | Modifier | Example output | LLVM modifier |
+| ------------ | -------------- | -------- | -------------- | ------------- |
+| s390x | `vreg` | None | `%v0` | None |