Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Jul 2009 21:16:26 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r195382 - projects/mips/sys/mips/include
Message-ID:  <200907052116.n65LGQfO059892@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Sun Jul  5 21:16:26 2009
New Revision: 195382
URL: http://svn.freebsd.org/changeset/base/195382

Log:
  addu and subu are special.  We need to use daddu and dsubu here to get
  proper behavior.
  
  Submitted by:	jmallet@

Modified:
  projects/mips/sys/mips/include/atomic.h

Modified: projects/mips/sys/mips/include/atomic.h
==============================================================================
--- projects/mips/sys/mips/include/atomic.h	Sun Jul  5 20:44:50 2009	(r195381)
+++ projects/mips/sys/mips/include/atomic.h	Sun Jul  5 21:16:26 2009	(r195382)
@@ -220,7 +220,7 @@ atomic_add_64(__volatile uint64_t *p, ui
 	__asm __volatile (
 		"1:\n\t"
 		"lld	%0, %3\n\t"		/* load old value */
-		"addu	%0, %2, %0\n\t"		/* calculate new value */
+		"daddu	%0, %2, %0\n\t"		/* calculate new value */
 		"scd	%0, %1\n\t"		/* attempt to store */
 		"beqz	%0, 1b\n\t"		/* spin if failed */
 		: "=&r" (temp), "=m" (*p)
@@ -236,7 +236,7 @@ atomic_subtract_64(__volatile uint64_t *
 	__asm __volatile (
 		"1:\n\t"
 		"lld	%0, %3\n\t"		/* load old value */
-		"subu	%0, %2\n\t"		/* calculate new value */
+		"dsubu	%0, %2\n\t"		/* calculate new value */
 		"scd	%0, %1\n\t"		/* attempt to store */
 		"beqz	%0, 1b\n\t"		/* spin if failed */
 		: "=&r" (temp), "=m" (*p)



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