Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Aug 2009 15:41:10 +0000 (UTC)
From:      Stanislav Sedov <stas@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r196249 - in stable/7/lib/libc: . arm/string
Message-ID:  <200908151541.n7FFfA4C075853@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: stas
Date: Sat Aug 15 15:41:10 2009
New Revision: 196249
URL: http://svn.freebsd.org/changeset/base/196249

Log:
  - MFC r194583:
      Fix strncmp on arm. Return 0 as result without performing the
      main cycle only if the len passed is equal to 0. If end address
      overflows use last possible address as the end address.

Modified:
  stable/7/lib/libc/   (props changed)
  stable/7/lib/libc/arm/string/strncmp.S

Modified: stable/7/lib/libc/arm/string/strncmp.S
==============================================================================
--- stable/7/lib/libc/arm/string/strncmp.S	Sat Aug 15 15:40:30 2009	(r196248)
+++ stable/7/lib/libc/arm/string/strncmp.S	Sat Aug 15 15:41:10 2009	(r196249)
@@ -33,13 +33,17 @@
 __FBSDID("$FreeBSD$");
 
 ENTRY(strncmp)
-/* if ((len - 1) < 0) return 0 */
-	subs	r2, r2, #1
-	movmi	r0, #0
-	movmi	pc, lr
+/* if (len == 0) return 0 */
+	cmp	r2, #0
+	moveq	r0, #0
+	moveq	pc, lr
 
 /* ip == last src address to compare */
-	add	ip, r0, r2
+	adds	ip, r0, r2
+	sub	ip, ip, #1
+/* Use last possible address on overflow. */
+	movcs	ip, #0
+	subcs	ip, ip, #1
 1:
 	ldrb	r2, [r0], #1
 	ldrb	r3, [r1], #1



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