Wed Jan 19 02:47:01 2011 UTC ()
Fix some bugs introduced when switching to new GOT/PLT format.


(matt)
diff -r1.9 -r1.10 src/lib/libc/arch/powerpc/string/bzero.S

cvs diff -r1.9 -r1.10 src/lib/libc/arch/powerpc/string/bzero.S (expand / switch to context diff)
--- src/lib/libc/arch/powerpc/string/bzero.S 2011/01/16 02:43:10 1.9
+++ src/lib/libc/arch/powerpc/string/bzero.S 2011/01/19 02:47:01 1.10
@@ -1,4 +1,4 @@
-/*	$NetBSD: bzero.S,v 1.9 2011/01/16 02:43:10 matt Exp $ */
+/*	$NetBSD: bzero.S,v 1.10 2011/01/19 02:47:01 matt Exp $ */
 
 /*-
  * Copyright (C) 2001	Martin J. Laubach <mjl@NetBSD.org>
@@ -32,7 +32,7 @@
 
 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: bzero.S,v 1.9 2011/01/16 02:43:10 matt Exp $")
+__RCSID("$NetBSD: bzero.S,v 1.10 2011/01/19 02:47:01 matt Exp $")
 #endif /* LIBC_SCCS && !lint */
 
 #ifdef _KERNEL
@@ -74,8 +74,8 @@
 /*----------------------------------------------------------------------*/
 #ifndef _KERNEL
 		/* First find out cache line size */
-#ifdef PIC
 		mflr	%r9
+#ifdef PIC
 		PIC_GOTSETUP(%r10)
 		mtlr	%r9
 		lwz	%r5,cache_info@got(%r10)
@@ -157,24 +157,27 @@
 		li	%r8, 0
 		bl	PIC_PLT(_C_LABEL(sysctl))
 1:
-		lwz	%r8, R8_SAVE(%r1)
 		lwz	%r3, R3_SAVE(%r1)
 		lwz	%r4, R4_SAVE(%r1)
+		lwz	%r8, R8_SAVE(%r1)
 		lwz	%r0, R0_SAVE(%r1)
 		lwz	%r9, 4(%r31)
 		lwz	%r31, R31_SAVE(%r1)
 #ifdef PIC
 		lwz	%r30, R30_SAVE(%r1)
 #endif
-		la	%r1, STKFRAME_SZ(%r1)
-		lwz	%r5, 4(%r1)
-		mtlr	%r5
+		addi	%r1, %r1, STKFRAME_SZ
+		lwz	%r0, 4(%r1)
+		mtlr	%r0
 
 		cntlzw	%r6, %r9			/* compute shift value */
 		li	%r5, 31
 		subf	%r5, %r6, %r5
 
 #ifdef PIC
+		mflr	%r9
+		PIC_GOTSETUP(%r10)
+		mtlr	%r9
 		lwz	%r6, cache_sh@got(%r10)
 		stw	%r5, 0(%r6)
 #else