//@ assembly-output: emit-asm //@ revisions: att intel //@ [att] compile-flags: -Cllvm-args=-x86-asm-syntax=att //@ [intel] compile-flags: -Cllvm-args=-x86-asm-syntax=intel //@ only-x86_64 #![crate_type = "lib"] // CHECK-LABEL: naked_att: // intel-CHECK: mov rax, qword ptr [rdi] // intel-CHECK: ret // att-CHECK: movq (%rdi), %rax // att-CHECK: retq #[unsafe(naked)] #[unsafe(no_mangle)] extern "sysv64" fn naked_att() { std::arch::naked_asm!( " movq (%rdi), %rax retq ", options(att_syntax), ); } // CHECK-LABEL: naked_intel: // intel-CHECK: mov rax, rdi // intel-CHECK: ret // att-CHECK: movq (%rdi), %rax // att-CHECK: retq #[unsafe(naked)] #[unsafe(no_mangle)] extern "sysv64" fn naked_intel() { std::arch::naked_asm!( " mov rax, rdi ret ", options(), ); } // CHECK-LABEL: global_att: // intel-CHECK: mov rax, rdi // intel-CHECK: ret // att-CHECK: movq (%rdi), %rax // att-CHECK: retq core::arch::global_asm!( " .globl global_att global_att: movq (%rdi), %rax retq ", options(att_syntax), ); // CHECK-LABEL: global_intel: // intel-CHECK: mov rax, rdi // intel-CHECK: ret // att-CHECK: movq (%rdi), %rax // att-CHECK: retq core::arch::global_asm!( " .globl global_intel global_intel: mov rax, rdi ret ", options(), );