diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2023-05-08 19:41:50 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-08 19:41:50 +0900 |
| commit | c122ac3e6991544d2d28fbee3ffcf20a1dd4b514 (patch) | |
| tree | 7ee62039f69279432555044d6facf1931877a3c2 /compiler/rustc_codegen_llvm/src | |
| parent | 28b9696a9e0a948b0cafbb72a8ed880d571a8cca (diff) | |
| parent | e61bb8810b26de043d3b4ba2560e78af71121a0e (diff) | |
| download | rust-c122ac3e6991544d2d28fbee3ffcf20a1dd4b514.tar.gz rust-c122ac3e6991544d2d28fbee3ffcf20a1dd4b514.zip | |
Rollup merge of #111331 - taiki-e:s390x-asm-cc, r=Amanieu
Mark s390x condition code register as clobbered in inline assembly Various s390x instructions (arithmetic operations, logical operations, comparisons, etc. see also "Condition Codes" section in [z/Architecture Reference Summary](https://www.ibm.com/support/pages/zarchitecture-reference-summary)) modify condition code register `cc`, but AFAIK there is currently no way to mark it as clobbered in `asm!`. `cc` register definition in LLVM: https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L320 This PR also updates asm_experimental_arch docs in the unstable-book to mention s390x registers. cc `@uweigand` r? `@Amanieu`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/asm.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_llvm/src/asm.rs b/compiler/rustc_codegen_llvm/src/asm.rs index f9af103c9ad..70bcbf92f38 100644 --- a/compiler/rustc_codegen_llvm/src/asm.rs +++ b/compiler/rustc_codegen_llvm/src/asm.rs @@ -238,7 +238,9 @@ impl<'ll, 'tcx> AsmBuilderMethods<'tcx> for Builder<'_, 'll, 'tcx> { InlineAsmArch::Hexagon => {} InlineAsmArch::LoongArch64 => {} InlineAsmArch::Mips | InlineAsmArch::Mips64 => {} - InlineAsmArch::S390x => {} + InlineAsmArch::S390x => { + constraints.push("~{cc}".to_string()); + } InlineAsmArch::SpirV => {} InlineAsmArch::Wasm32 | InlineAsmArch::Wasm64 => {} InlineAsmArch::Bpf => {} |
