// run-pass | |
#![feature(llvm_asm)] | |
#![allow(deprecated)] // llvm_asm!s | |
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] | |
pub fn main() { | |
let x: isize; | |
unsafe { | |
// Treat the output as initialization. | |
llvm_asm!("mov $1, $0" : "=r"(x) : "r"(5_usize)); | |
} | |
assert_eq!(x, 5); | |
let mut x = x + 1; | |
assert_eq!(x, 6); | |
unsafe { | |
// Assignment to mutable. | |
llvm_asm!("mov $1, $0" : "=r"(x) : "r"(x + 7)); | |
} | |
assert_eq!(x, 13); | |
} | |
#[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))] | |
pub fn main() {} |