| //@ revisions: elfv1-be aix |
| //@ add-core-stubs |
| //@ assembly-output: emit-asm |
| // |
| //@[elfv1-be] compile-flags: --target powerpc64-unknown-linux-gnu |
| //@[elfv1-be] needs-llvm-components: powerpc |
| // |
| //@[aix] compile-flags: --target powerpc64-ibm-aix |
| //@[aix] needs-llvm-components: powerpc |
| |
| #![crate_type = "lib"] |
| #![feature(no_core, asm_experimental_arch, f128, linkage, fn_align)] |
| #![no_core] |
| |
| // tests that naked functions work for the `powerpc64-ibm-aix` target. |
| // |
| // This target is special because it uses the XCOFF binary format |
| // It is tested alongside an elf powerpc target to pin down commonalities and differences. |
| // |
| // https://doc.rust-lang.org/rustc/platform-support/aix.html |
| // https://www.ibm.com/docs/en/aix/7.2?topic=formats-xcoff-object-file-format |
| |
| extern crate minicore; |
| use minicore::*; |
| |
| // elfv1-be: .p2align 2 |
| // aix: .align 2 |
| // CHECK: .globl blr |
| // CHECK-LABEL: blr: |
| // CHECK: blr |
| #[no_mangle] |
| #[unsafe(naked)] |
| extern "C" fn blr() { |
| naked_asm!("blr") |
| } |