rust/tests/codegen/asm
Guillaume Gomez 470c4f94e8
Rollup merge of #133452 - taiki-e:hexagon-asm-pred, r=Amanieu
Support predicate registers (clobber-only) in Hexagon inline assembly

The result of the Hexagon instructions such as comparison, store conditional, etc. is stored in predicate registers (`p[0-3]`), but currently there is no way to mark it as clobbered in `asm!`.

This is also needed for `clobber_abi` (although implementing `clobber_abi` will require the addition of support for [several more register classes](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp#L71-L90). see also https://github.com/rust-lang/rust/issues/93335#issuecomment-2395210055).

Refs:
- [Section 6 "Conditional Execution" in Qualcomm Hexagon V73 Programmer’s Reference Manual](https://docs.qualcomm.com/bundle/publicresource/80-N2040-53_REV_AB_Qualcomm_Hexagon_V73_Programmers_Reference_Manual.pdf#page=90)
- [Register definition in LLVM](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td#L155)

cc `@androm3da` (target maintainer of hexagon-unknown-{[none-elf](https://doc.rust-lang.org/nightly/rustc/platform-support/hexagon-unknown-none-elf.html#target-maintainers),[linux-musl](https://doc.rust-lang.org/nightly/rustc/platform-support/hexagon-unknown-linux-musl.html#target-maintainers)})

r? `@Amanieu`

`@rustbot` label +A-inline-assembly
(Currently there is no O-hexagon label...)
2024-11-28 12:06:02 +01:00
..
arm64ec-clobbers.rs Stabilize Arm64EC inline assembly 2024-11-10 17:43:46 +09:00
foo.s Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
global_asm.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
global_asm_include.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
global_asm_x2.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
goto.rs Make asm_goto_with_outputs a separate feature gate 2024-11-24 15:24:01 +00:00
hexagon-clobbers.rs Support predicate registers (clobber-only) in Hexagon inline assembly 2024-11-25 23:11:17 +09:00
may_unwind.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
maybe-uninit.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
msp430-clobbers.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
multiple-options.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
options.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
powerpc-clobbers.rs Support clobber_abi and vector registers (clobber-only) in PowerPC inline assembly 2024-11-02 20:26:08 +09:00
riscv-clobbers.rs Fix clobber_abi in RV32E and RV64E inline assembly 2024-11-25 00:36:22 +09:00
s390x-clobbers.rs Stabilize s390x inline assembly 2024-11-08 10:46:00 +09:00
sanitize-llvm.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
sparc-clobbers.rs Basic inline assembly support for SPARC and SPARC64 2024-11-07 21:19:03 +09:00
x86-clobber_abi.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
x86-clobbers.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00
x86-target-clobbers.rs Move remaining inline assembly test files into asm directory 2024-11-01 22:12:55 +09:00