Module Name: src
Committed By: rin
Date: Mon Sep 13 11:54:42 UTC 2021
Modified Files:
src/sys/arch/powerpc/include: lock.h
Log Message:
Fix IBM405 errata 77 workaround for __cpu_simple_lock{,_try}();
adjust labels so that dcbt is executed before stwcx. insn.
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/powerpc/include/lock.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/powerpc/include/lock.h
diff -u src/sys/arch/powerpc/include/lock.h:1.15 src/sys/arch/powerpc/include/lock.h:1.16
--- src/sys/arch/powerpc/include/lock.h:1.15 Sun Mar 1 23:23:36 2020
+++ src/sys/arch/powerpc/include/lock.h Mon Sep 13 11:54:42 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lock.h,v 1.15 2020/03/01 23:23:36 rin Exp $ */
+/* $NetBSD: lock.h,v 1.16 2021/09/13 11:54:42 rin Exp $ */
/*-
* Copyright (c) 2000, 2007 The NetBSD Foundation, Inc.
@@ -80,12 +80,12 @@ __cpu_simple_lock(__cpu_simple_lock_t *a
2: lwzx %0,0,%1 \n\
cmpwi %0,%2 \n\
beq+ 1b \n\
- b 2b \n"
+ b 2b \n\
+3: \n"
#ifdef IBM405_ERRATA77
"dcbt 0,%1 \n"
#endif
-" \
-3: stwcx. %3,0,%1 \n\
+ "stwcx. %3,0,%1 \n\
bne- 1b \n\
isync \n\
\n"
@@ -108,12 +108,12 @@ __cpu_simple_lock_try(__cpu_simple_lock_
"dcbt 0,%1 \n"
#endif
"stwcx. %3,0,%1 \n\
- bne- 1b \n"
+ bne- 1b \n\
+2: \n"
#ifdef IBM405_ERRATA77
"dcbt 0,%4 \n"
#endif
-" \
-2: stwcx. %3,0,%4 \n\
+ "stwcx. %3,0,%4 \n\
isync \n\
\n"
: "=&r"(old)