diff options
| author | Taiki Endo <te316e89@gmail.com> | 2025-01-29 06:46:05 +0900 |
|---|---|---|
| committer | Taiki Endo <te316e89@gmail.com> | 2025-01-29 06:46:05 +0900 |
| commit | 93465e6c3106043b8db7089ff7a1a4d610d8f79f (patch) | |
| tree | 2da40315bd0435474c19cda59a127ad5edc81c79 /tests/codegen | |
| parent | fdd1a3b02687817cea41f6bacae3d5fbed2b2cd0 (diff) | |
| download | rust-93465e6c3106043b8db7089ff7a1a4d610d8f79f.tar.gz rust-93465e6c3106043b8db7089ff7a1a4d610d8f79f.zip | |
Mark condition/carry bit as clobbered in C-SKY inline assembly
Diffstat (limited to 'tests/codegen')
| -rw-r--r-- | tests/codegen/asm/csky-clobbers.rs | 24 |
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)); +} |
