In tlbdsmiss, do not trash the tlb pointer by mistake. From NetBSD (PR #39257)
authormiod <miod@openbsd.org>
Sun, 29 Dec 2013 21:06:37 +0000 (21:06 +0000)
committermiod <miod@openbsd.org>
Sun, 29 Dec 2013 21:06:37 +0000 (21:06 +0000)
sys/arch/macppc/macppc/locore.S
sys/arch/socppc/socppc/locore.S

index 1004b56..b315f42 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: locore.S,v 1.41 2008/07/28 19:08:46 miod Exp $        */
+/*     $OpenBSD: locore.S,v 1.42 2013/12/29 21:06:37 miod Exp $        */
 /*     $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $    */
 
 /*
@@ -676,7 +676,7 @@ _C_LABEL(tlbdsmiss):
        mfsrin  %r1,%r3                 /* get the segment register */
        mfsrr1  %r3
        rlwinm  %r3,%r3,18,31,31        /* get PR-bit */
-       rlwnm.  %r2,%r2,3,1,1           /* get the key */
+       rlwnm.  %r1,%r1,%r3,1,1         /* get the key */
        bne-    9b                      /* protection violation */
 8:     /* found, set reference/change bits */
        lwz     %r1,4(%r2)              /* reload tlb entry */
index 9095782..d73fd2f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: locore.S,v 1.8 2009/08/25 21:01:35 kettenis Exp $     */
+/*     $OpenBSD: locore.S,v 1.9 2013/12/29 21:06:37 miod Exp $ */
 /*     $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $    */
 
 /*
@@ -695,7 +695,7 @@ _C_LABEL(tlbdsmiss):
        mfsrin  %r1,%r3                 /* get the segment register */
        mfsrr1  %r3
        rlwinm  %r3,%r3,18,31,31        /* get PR-bit */
-       rlwnm.  %r2,%r2,3,1,1           /* get the key */
+       rlwnm.  %r1,%r1,%r3,1,1         /* get the key */
        bne-    9b                      /* protection violation */
 8:     /* found, set reference/change bits */
        lwz     %r1,4(%r2)              /* reload tlb entry */