From e7a1118984d071fdd65c486c52271ad4f1561fb8 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 25 Jan 2016 21:59:55 +0000 Subject: [PATCH] fix arm a_crash for big endian contrary to commit 89e149d275a7699a4a5e4c98bab267648f64cbba, big endian arm does need the instruction bytes in big endian order. rather than trying to use a special encoding that works as arm or thumb, simply encode the simplest/canonical undefined instructions dependent on whether __thumb__ is defined. --- arch/arm/atomic_arch.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/atomic_arch.h b/arch/arm/atomic_arch.h index a74cf3b7..21db6b22 100644 --- a/arch/arm/atomic_arch.h +++ b/arch/arm/atomic_arch.h @@ -66,9 +66,11 @@ static inline void a_barrier() #define a_crash a_crash static inline void a_crash() { - __asm__ __volatile__(".byte 0xf1, 0xde" + __asm__ __volatile__( #ifndef __thumb__ - ", 0xfd, 0xe7" + ".word 0xe7f000f0" +#else + ".short 0xdeff" #endif : : : "memory"); } -- 2.25.1