Răsfoiți Sursa

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.
Rich Felker 9 ani în urmă
părinte
comite
e7a1118984
1 a modificat fișierele cu 4 adăugiri și 2 ștergeri
  1. 4 2
      arch/arm/atomic_arch.h

+ 4 - 2
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");
 }