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