| //@ add-core-stubs | 
 | //@ assembly-output: emit-asm | 
 | //@ compile-flags: --target avr-none -C target-cpu=atmega328p | 
 | //@ needs-llvm-components: avr | 
 |  | 
 | #![feature(no_core, asm_experimental_arch)] | 
 | #![crate_type = "rlib"] | 
 | #![no_core] | 
 | #![allow(non_camel_case_types)] | 
 |  | 
 | extern crate minicore; | 
 | use minicore::*; | 
 |  | 
 | type ptr = *const u64; | 
 |  | 
 | macro_rules! check { | 
 |     ($func:ident $hi:literal $lo:literal $reg:tt) => { | 
 |         #[no_mangle] | 
 |         unsafe fn $func() -> i16 { | 
 |             let y; | 
 |             asm!(concat!("mov {0:", $hi, "}, {0:", $lo, "}"), out($reg) y); | 
 |             y | 
 |         } | 
 |     }; | 
 | } | 
 |  | 
 | // CHECK-LABEL: reg_pair_modifiers: | 
 | // CHECK: ;APP | 
 | // CHECK: mov r{{[1-9]?[13579]}}, r{{[1-9]?[24680]}} | 
 | // CHECK: ;NO_APP | 
 | check!(reg_pair_modifiers "h" "l" reg_pair); | 
 |  | 
 | // CHECK-LABEL: reg_iw_modifiers: | 
 | // CHECK: ;APP | 
 | // CHECK: mov r{{[1-9]?[13579]}}, r{{[1-9]?[24680]}} | 
 | // CHECK: ;NO_APP | 
 | check!(reg_iw_modifiers "h" "l" reg_iw); | 
 |  | 
 | // CHECK-LABEL: reg_ptr_modifiers: | 
 | // CHECK: ;APP | 
 | // CHECK: mov r{{[1-9]?[13579]}}, r{{[1-9]?[24680]}} | 
 | // CHECK: ;NO_APP | 
 | check!(reg_ptr_modifiers "h" "l" reg_ptr); |