Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Feb 2003 22:45:05 -0800 (PST)
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 25411 for review
Message-ID:  <200302190645.h1J6j5Vf068703@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=25411

Change 25411 by jmallett@jmallett_dalek on 2003/02/18 22:44:59

	Avoid branch conditional issues, real and imagined.  Use unsigned
	byte loads, to fetch one character.

Affected files ...

.. //depot/projects/mips/sys/mips/mips/support.S#5 edit

Differences ...

==== //depot/projects/mips/sys/mips/mips/support.S#5 (text+ko) ====

@@ -44,13 +44,14 @@
  */
 ENTRY(bcopy)
 	beqz	a2, 2f
+	nop
 	subu	a2, 1
-1:	lb	t0, (a0)
+1:	lbu	t0, (a0)
 	addu	a0, 1
 	sb	t0, (a1)
+	subu	a2, 1
+	bnezl	a2, 1b
 	addu	a1, 1
-	bnezl	a2, 1b
-	subu	a2, 1
 2:	jr	ra
 	nop
 END(bcopy)
@@ -61,11 +62,12 @@
  */
 ENTRY(bzero)
 	beqz	a1, 2f
+	nop
 	subu	a1, 1
 1:	sb	zero, (a0)
+	subu	a1, 1
+	bnezl	a1, 1b
 	addu	a0, 1
-	bnezl	a1, 1b
-	subu	a1, 1
 2:	jr	ra
 	nop
 END(bzero)
@@ -75,15 +77,15 @@
  * <v0>void *memcpy(<a0>void *dst, <a1>const void *src, <a2>size_t len)
  */
 ENTRY(memcpy)
+	beqz	a2, 2f
 	move	v0, a0
-	beqz	a2, 2f
 	subu	a2, 1
-1:	lb	t0, (a1)
+1:	lbu	t0, (a1)
 	addu	a1, 1
 	sb	t0, (a0)
+	subu	a2, 1
+	bnezl	a2, 1b
 	addu	a0, 1
-	bnezl	a2, 1b
-	subu	a2, 1
 2:	jr	ra
 	nop
 END(memcpy)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200302190645.h1J6j5Vf068703>