]> git.lizzy.rs Git - rust.git/blob - tests/codegen/asm-powerpc-clobbers.rs
Rollup merge of #107015 - cuviper:ra-riscv64, r=Mark-Simulacrum
[rust.git] / tests / codegen / asm-powerpc-clobbers.rs
1 // revisions: powerpc powerpc64 powerpc64le
2 //[powerpc] compile-flags: --target powerpc-unknown-linux-gnu
3 //[powerpc] needs-llvm-components: powerpc
4 //[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu
5 //[powerpc64] needs-llvm-components: powerpc
6 //[powerpc64le] compile-flags: --target powerpc64le-unknown-linux-gnu
7 //[powerpc64le] needs-llvm-components: powerpc
8
9 #![crate_type = "rlib"]
10 #![feature(no_core, rustc_attrs, lang_items, asm_experimental_arch)]
11 #![no_core]
12
13 #[lang = "sized"]
14 trait Sized {}
15
16 #[rustc_builtin_macro]
17 macro_rules! asm {
18     () => {};
19 }
20
21 // CHECK-LABEL: @cr_clobber
22 // CHECK: call void asm sideeffect "", "~{cr}"()
23 #[no_mangle]
24 pub unsafe fn cr_clobber() {
25     asm!("", out("cr") _, options(nostack, nomem));
26 }
27
28 // CHECK-LABEL: @cr0_clobber
29 // CHECK: call void asm sideeffect "", "~{cr0}"()
30 #[no_mangle]
31 pub unsafe fn cr0_clobber() {
32     asm!("", out("cr0") _, options(nostack, nomem));
33 }
34
35 // CHECK-LABEL: @cr5_clobber
36 // CHECK: call void asm sideeffect "", "~{cr5}"()
37 #[no_mangle]
38 pub unsafe fn cr5_clobber() {
39     asm!("", out("cr5") _, options(nostack, nomem));
40 }
41
42 // CHECK-LABEL: @xer_clobber
43 // CHECK: call void asm sideeffect "", "~{xer}"()
44 #[no_mangle]
45 pub unsafe fn xer_clobber() {
46     asm!("", out("xer") _, options(nostack, nomem));
47 }