//@ revisions: sparc sparcv8plus sparc64 //@[sparc] compile-flags: --target sparc-unknown-none-elf //@[sparc] needs-llvm-components: sparc //@[sparcv8plus] compile-flags: --target sparc-unknown-linux-gnu //@[sparcv8plus] needs-llvm-components: sparc //@[sparc64] compile-flags: --target sparc64-unknown-linux-gnu //@[sparc64] needs-llvm-components: sparc #![crate_type = "rlib"] #![feature(no_core, rustc_attrs, lang_items, asm_experimental_arch)] #![no_core] #[lang = "sized"] trait Sized {} #[rustc_builtin_macro] macro_rules! asm { () => {}; } // CHECK-LABEL: @cc_clobber // CHECK: call void asm sideeffect "", "~{icc},~{fcc0},~{fcc1},~{fcc2},~{fcc3}"() #[no_mangle] pub unsafe fn cc_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)); } // CHECK-LABEL: @y_clobber // CHECK: call void asm sideeffect "", "~{y}"() #[no_mangle] pub unsafe fn y_clobber() { asm!("", out("y") _, options(nostack, nomem, preserves_flags)); }