about summary refs log tree commit diff
path: root/tests/codegen/asm/csky-clobbers.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-02-13 02:13:24 +0000
committerbors <bors@rust-lang.org>2025-02-13 02:13:24 +0000
commit9fcc9cf4a202aadfe1f44722b39c83536eba3dba (patch)
tree4af2d23be4f10713dd414dbbb0848093f0223c3b /tests/codegen/asm/csky-clobbers.rs
parent6dce9f8c2d8dde4c9ea20bab981cd70229c37fdc (diff)
parentd16b067f8cad5c006e967ad030c4ca4a33602966 (diff)
downloadrust-9fcc9cf4a202aadfe1f44722b39c83536eba3dba.tar.gz
rust-9fcc9cf4a202aadfe1f44722b39c83536eba3dba.zip
Auto merge of #136954 - jhpratt:rollup-koefsot, r=jhpratt
Rollup of 12 pull requests

Successful merges:

 - #134090 (Stabilize target_feature_11)
 - #135025 (Cast allocas to default address space)
 - #135841 (Reject `?Trait` bounds in various places where we unconditionally warned since 1.0)
 - #136217 (Mark condition/carry bit as clobbered in C-SKY inline assembly)
 - #136699 (std: replace the `FromInner` implementation for addresses with private conversion functions)
 - #136806 (Fix cycle when debug-printing opaque types from RPITIT)
 - #136807 (compiler: internally merge `PtxKernel` into `GpuKernel`)
 - #136818 (Implement `read*_exact` for `std:io::repeat`)
 - #136927 (Correctly escape hashtags when running `invalid_rust_codeblocks` lint)
 - #136937 (Update books)
 - #136945 (Add diagnostic item for `std::io::BufRead`)
 - #136947 (Reinstate nnethercote in the review rotation.)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'tests/codegen/asm/csky-clobbers.rs')
-rw-r--r--tests/codegen/asm/csky-clobbers.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/codegen/asm/csky-clobbers.rs b/tests/codegen/asm/csky-clobbers.rs
new file mode 100644
index 00000000000..4986d0fe56d
--- /dev/null
+++ b/tests/codegen/asm/csky-clobbers.rs
@@ -0,0 +1,24 @@
+//@ add-core-stubs
+//@ compile-flags: --target csky-unknown-linux-gnuabiv2
+//@ needs-llvm-components: csky
+
+#![crate_type = "rlib"]
+#![feature(no_core, asm_experimental_arch)]
+#![no_core]
+
+extern crate minicore;
+use minicore::*;
+
+// CHECK-LABEL: @flags_clobber
+// CHECK: call void asm sideeffect "", "~{psr}"()
+#[no_mangle]
+pub unsafe fn flags_clobber() {
+    asm!("", options(nostack, nomem));
+}
+
+// CHECK-LABEL: @no_clobber
+// CHECK: call void asm sideeffect "", ""()
+#[no_mangle]
+pub unsafe fn no_clobber() {
+    asm!("", options(nostack, nomem, preserves_flags));
+}