//! ARMv6 intrinsics. //! //! The reference is [ARMv6-M Architecture Reference Manual][armv6m]. //! //! [armv6m]: //! http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0419c/index. //! html #[cfg(test)] use stdarch_test::assert_instr; /// Reverse the order of the bytes. #[inline] #[cfg_attr(test, assert_instr(rev))] pub unsafe fn _rev_u16(x: u16) -> u16 { x.swap_bytes() as u16 } /// Reverse the order of the bytes. #[inline] #[cfg_attr(test, assert_instr(rev))] pub unsafe fn _rev_u32(x: u32) -> u32 { x.swap_bytes() as u32 } #[cfg(test)] mod tests { use crate::core_arch::arm::v6; #[test] fn _rev_u16() { unsafe { assert_eq!( v6::_rev_u16(0b0000_0000_1111_1111_u16), 0b1111_1111_0000_0000_u16 ); } } #[test] fn _rev_u32() { unsafe { assert_eq!( v6::_rev_u32(0b0000_0000_1111_1111_0000_0000_1111_1111_u32), 0b1111_1111_0000_0000_1111_1111_0000_0000_u32 ); } } }