|  | //@ 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(), | 
|  | ); |