Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/powerpc/include Fix IBM405 errata 77 workaround for...



details:   https://anonhg.NetBSD.org/src/rev/75c2d27a29a7
branches:  trunk
changeset: 1023541:75c2d27a29a7
user:      rin <rin%NetBSD.org@localhost>
date:      Mon Sep 13 11:54:42 2021 +0000

description:
Fix IBM405 errata 77 workaround for __cpu_simple_lock{,_try}();
adjust labels so that dcbt is executed before stwcx. insn.

diffstat:

 sys/arch/powerpc/include/lock.h |  14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diffs (41 lines):

diff -r a6b85a9514ce -r 75c2d27a29a7 sys/arch/powerpc/include/lock.h
--- a/sys/arch/powerpc/include/lock.h   Mon Sep 13 06:11:51 2021 +0000
+++ b/sys/arch/powerpc/include/lock.h   Mon Sep 13 11:54:42 2021 +0000
@@ -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 @@
 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 @@
        "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)



Home | Main Index | Thread Index | Old Index