svn commit: r195382 - projects/mips/sys/mips/include
Warner Losh
imp at FreeBSD.org
Sun Jul 5 21:16:27 UTC 2009
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)
More information about the svn-src-projects
mailing list