[Pkg-libatomic-ops-commits] r10 - tarballs trunk/debian trunk/debian/patches

ianw at alioth.debian.org ianw at alioth.debian.org
Sat Aug 16 04:51:59 UTC 2008


Author: ianw
Date: 2008-08-16 04:51:58 +0000 (Sat, 16 Aug 2008)
New Revision: 10

Added:
   tarballs/libatomic-ops_1.2+cvs20080815.orig.tar.gz
Removed:
   trunk/debian/patches/01_s390_include.patch
   trunk/debian/patches/02_mips.patch
   trunk/debian/patches/04_m68k.patch
   trunk/debian/patches/05_powerpc_asm.patch
   trunk/debian/patches/06_double.patch
   trunk/debian/patches/07_pic_cmpxchng.patch
Modified:
   tarballs/Makefile
   trunk/debian/changelog
Log:
update to new upstream from CVS


Modified: tarballs/Makefile
===================================================================
--- tarballs/Makefile	2008-02-01 08:36:41 UTC (rev 9)
+++ tarballs/Makefile	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,16 +1,26 @@
 #simple makefile to make uploading debian package eaiser.
 
-VERSION = 1.2
-BASEPKG = libatomic_ops
-PACKAGE = $(BASEPKG)-$(VERSION)
-ORIGPACKAGE :=`echo $(BASEPKG) | tr '_' '-'`_$(VERSION).orig.tar.gz
-DEBPACKAGE  :=`echo $(BASEPKG) | tr '_' '-'`-$(VERSION)
+# going to look for
+#  libatomic-ops-$(BASEVERSION)+cvs$(CVSDATE).orig.tar.gz
+# which we create by grabbing from CVS
+# This extracts to
+#  libatomic_ops-$(BASEVERSION) -- note _ used by upstream
+# which we move to
+#  libatomic-ops-$(BASEVERSION)+cvs$(CVSDATE) -- note - 
+# for Debian build purposes
 
+BASEVERSION = 1.2
+CVSDATE = 20080815
+
+TARGZ :=libatomic-ops_$(BASEVERSION)+cvs$(CVSDATE).orig.tar.gz
+ORIGSRC :=libatomic_ops-$(BASEVERSION)
+DEBPACKAGE  :=libatomic-ops-$(BASEVERSION)+cvs$(CVSDATE)
+
 all: deb
 
 deb: 
-	tar xfz $(ORIGPACKAGE)
-	mv $(PACKAGE) $(DEBPACKAGE)
+	tar xfz $(TARGZ)
+	mv $(ORIGSRC) $(DEBPACKAGE)
 	svn export ../trunk/debian $(DEBPACKAGE)/debian
 	(cd $(DEBPACKAGE); \
 	DEB_AUTO_UPDATE_DEBIAN_CONTROL=yes ./debian/rules clean; \

Added: tarballs/libatomic-ops_1.2+cvs20080815.orig.tar.gz
===================================================================
(Binary files differ)


Property changes on: tarballs/libatomic-ops_1.2+cvs20080815.orig.tar.gz
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/changelog	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,3 +1,13 @@
+libatomic-ops (1.2+cvs20080815-1) unstable; urgency=low
+
+  * New upstream, taken from CVS repository at
+    bdwgc.cvs.sourceforge.net:/cvsroot/bdwgc
+    which upstream has told me is official home of the package.
+  * Patches now included upstream: 01_s390_include.patch, 02_mips.patch,
+    04_m68k.patch, 05_powerpc_asm.patch, 07_pic_cmpxchng.patch,
+
+ -- Ian Wienand <ianw at debian.org>  Fri, 15 Aug 2008 21:26:06 -0700
+
 libatomic-ops (1.2-4) unstable; urgency=low
 
   * Closes: #463390 -- Add 06_double.patch to fix some issues with double

Deleted: trunk/debian/patches/01_s390_include.patch
===================================================================
--- trunk/debian/patches/01_s390_include.patch	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/patches/01_s390_include.patch	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,15 +0,0 @@
-Index: src/atomic_ops/sysdeps/gcc/s390.h
-===================================================================
---- src/atomic_ops/sysdeps/gcc/s390.h	(revision 90)
-+++ src/atomic_ops/sysdeps/gcc/s390.h	(working copy)
-@@ -30,8 +30,8 @@
- /*   may be delayed.  Otherwise everything is ordered.		*/
- /* - There is a hardware compare-and-swap (CS) instruction.	*/
- 
--#include "ordered_except_wr.h"
--#include "all_aligned_atomic_load_store.h"
-+#include "../ordered_except_wr.h"
-+#include "../all_aligned_atomic_load_store.h"
- 
- #include "../test_and_set_t_is_ao_t.h"
- /* FIXME: Is there a way to do byte-sized test-and-set?	*/

Deleted: trunk/debian/patches/02_mips.patch
===================================================================
--- trunk/debian/patches/02_mips.patch	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/patches/02_mips.patch	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,211 +0,0 @@
-Return-path: <debbugs at bugs.debian.org>
-Envelope-to: ianw at localhost
-Delivery-date: Sun, 04 Nov 2007 02:10:06 +1100
-Received: from localhost
-	([127.0.0.1] helo=morrison.wienand.home ident=ianw)
-	by morrison.wienand.home with esmtp (Exim 4.67)
-	(envelope-from <debbugs at bugs.debian.org>)
-	id 1IoKdS-0006ic-N9
-	for ianw at localhost; Sun, 04 Nov 2007 02:10:06 +1100
-Delivered-To: ian.wienand at gmail.com
-Received: from gmail-pop.l.google.com [72.14.253.109]
-	by morrison.wienand.home with POP3 (fetchmail-6.3.8)
-	for <ianw at localhost> (single-drop); Sun, 04 Nov 2007 02:10:06 +1100 (EST)
-Received: by 10.65.220.15 with SMTP id x15cs362676qbq;
-        Sat, 3 Nov 2007 08:12:48 -0700 (PDT)
-Received: by 10.115.90.1 with SMTP id s1mr3112345wal.1194102767770;
-        Sat, 03 Nov 2007 08:12:47 -0700 (PDT)
-Received: from rietz.debian.org (rietz.debian.org [140.211.166.43])
-        by mx.google.com with ESMTP id n32si9086019wag.2007.11.03.08.12.44;
-        Sat, 03 Nov 2007 08:12:47 -0700 (PDT)
-Received-SPF: pass (google.com: domain of debbugs at bugs.debian.org designates 140.211.166.43 as permitted sender) client-ip=140.211.166.43;
-Authentication-Results: mx.google.com; spf=pass (google.com: domain of debbugs at bugs.debian.org designates 140.211.166.43 as permitted sender) smtp.mail=debbugs at bugs.debian.org
-Received: from debbugs by rietz.debian.org with local (Exim 4.50)
-	id 1IoKcR-0004US-DF; Sat, 03 Nov 2007 15:09:03 +0000
-X-Loop: owner at bugs.debian.org
-Subject: Bug#449152: Improved support for mips/mipsel
-Reply-To: Thiemo Seufer <ths at networkno.de>, 449152 at bugs.debian.org
-Resent-From: Thiemo Seufer <ths at networkno.de>
-Resent-To: debian-bugs-dist at lists.debian.org
-Resent-CC: Ian Wienand <ianw at debian.org>
-Resent-Date: Sat, 03 Nov 2007 15:09:01 +0000
-Resent-Message-ID: <handler.449152.B.119410238116035 at bugs.debian.org>
-X-Debian-PR-Message: report 449152
-X-Debian-PR-Package: libatomic-ops
-X-Debian-PR-Keywords: patch
-Received: via spool by submit at bugs.debian.org id=B.119410238116035
-          (code B ref -1); Sat, 03 Nov 2007 15:09:01 +0000
-Received: (at submit) by bugs.debian.org; 3 Nov 2007 15:06:21 +0000
-X-Spam-Checker-Version: SpamAssassin 3.1.4-bugs.debian.org_2005_01_02 
-	(2006-07-26) on rietz.debian.org
-X-Spam-Level: 
-X-Spam-Status: No, score=-8.9 required=4.0 tests=BAYES_00,FOURLA,HAS_PACKAGE,
-	MURPHY_DRUGS_REL8 autolearn=no 
-	version=3.1.4-bugs.debian.org_2005_01_02
-Received: from relay01.mx.bawue.net ([193.7.176.67])
-	by rietz.debian.org with esmtp (Exim 4.50)
-	id 1IoKZp-0004AP-3y
-	for submit at bugs.debian.org; Sat, 03 Nov 2007 15:06:21 +0000
-Received: from lagash (88-106-176-50.dynamic.dsl.as9105.com [88.106.176.50])
-	(using TLSv1 with cipher AES256-SHA (256/256 bits))
-	(No client certificate requested)
-	by relay01.mx.bawue.net (Postfix) with ESMTP id 8A01248FB3
-	for <submit at bugs.debian.org>; Sat,  3 Nov 2007 15:23:50 +0100 (CET)
-Received: from ths by lagash with local (Exim 4.68)
-	(envelope-from <ths at networkno.de>)
-	id 1IoKZl-0007Mc-SB
-	for submit at bugs.debian.org; Sat, 03 Nov 2007 15:06:17 +0000
-Date: Sat, 3 Nov 2007 15:06:17 +0000
-From: Thiemo Seufer <ths at networkno.de>
-To: submit at bugs.debian.org
-Message-ID: <20071103150617.GB14756 at networkno.de>
-MIME-Version: 1.0
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-User-Agent: Mutt/1.5.16 (2007-06-11)
-Delivered-To: submit at bugs.debian.org
-Resent-Sender: Debian BTS <debbugs at bugs.debian.org>
-Resent-Date: Sat, 03 Nov 2007 15:09:03 +0000
-
-Package: libatomic-ops
-Version: 1.2-2
-Tags: patch
-
-This is an update of the mips patch. It now covers weakly ordered
-systems as allowed by the architecture definition, and also fixes
-some minor omissions.
-
-This update fixes the FTBFS of pulseaudio on mips/mipsel.
-
-
-Thiemo
-
-
---- libatomic-ops-1.0.away/src/atomic_ops/sysdeps/Makefile.am	2005-08-03 02:05:18.000000000 +0200
-+++ libatomic-ops-1.0/src/atomic_ops/sysdeps/Makefile.am	2005-10-27 20:59:59.000000000 +0200
-@@ -26,7 +26,7 @@ nobase_sysdep_HEADERS= generic_pthread.h
- 	  gcc/alpha.h gcc/arm.h gcc/x86.h \
- 	  gcc/hppa.h gcc/ia64.h \
- 	  gcc/powerpc.h gcc/sparc.h \
--	  gcc/hppa.h gcc/m68k.h gcc/s390.h \
-+	  gcc/hppa.h gcc/m68k.h gcc/mips.h gcc/s390.h \
- 	  gcc/ia64.h gcc/x86_64.h gcc/cris.h \
- 	\
- 	  icc/ia64.h \
---- libatomic-ops-1.0.away/src/atomic_ops/sysdeps/gcc/mips.h	1970-01-01 01:00:00.000000000 +0100
-+++ libatomic-ops-1.0/src/atomic_ops/sysdeps/gcc/mips.h	2007-11-02 14:06:23.000000000 +0000
-@@ -0,0 +1,97 @@
-+/* 
-+ * Copyright (c) 2005,2007  Thiemo Seufer <ths at networkno.de>
-+ *
-+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-+ * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
-+ *
-+ * Permission is hereby granted to use or copy this program
-+ * for any purpose,  provided the above notices are retained on all copies.
-+ * Permission to modify the code and to distribute modified code is granted,
-+ * provided the above notices are retained, and a notice that the code was
-+ * modified is included with the above copyright notice.
-+ */
-+
-+#include "../all_aligned_atomic_load_store.h"
-+#include "../acquire_release_volatile.h"
-+#include "../test_and_set_t_is_ao_t.h"
-+#include "../standard_ao_double_t.h"
-+
-+/* Data dependence does not imply read ordering.  */
-+#define AO_NO_DD_ORDERING
-+
-+AO_INLINE void
-+AO_nop_full()
-+{
-+  __asm__ __volatile__(
-+      "       .set push           \n"
-+      "       .set mips2          \n"
-+      "       .set noreorder      \n"
-+      "       .set nomacro        \n"
-+      "       sync                \n"
-+      "       .set pop              "
-+      : : : "memory");
-+}
-+
-+#define AO_HAVE_nop_full
-+
-+AO_INLINE int
-+AO_compare_and_swap(volatile AO_t *addr, AO_t old, AO_t new_val)
-+{
-+  register int was_equal = 0;
-+  register int temp;
-+
-+  __asm__ __volatile__(
-+      "       .set push           \n"
-+      "       .set mips2          \n"
-+      "       .set noreorder      \n"
-+      "       .set nomacro        \n"
-+      "1:     ll      %0, %1      \n"
-+      "       bne     %0, %4, 2f  \n"
-+      "        move   %0, %3      \n"
-+      "       sc      %0, %1      \n"
-+      "       .set pop            \n"
-+      "       beqz    %0, 1b      \n"
-+      "       li      %2, 1       \n"
-+      "2:                           "
-+      : "=&r" (temp), "+R" (*addr), "+r" (was_equal)
-+      : "r" (new_val), "r" (old)
-+      : "memory");
-+  return was_equal;
-+}
-+
-+#define AO_HAVE_compare_and_swap
-+
-+AO_INLINE int
-+AO_compare_and_swap_acquire(volatile AO_t *addr, AO_t old, AO_t new_val) {
-+  int result = AO_compare_and_swap(addr, old, new_val);
-+  AO_nop_full();
-+  return result;
-+}
-+
-+#define AO_HAVE_compare_and_swap_acquire
-+
-+AO_INLINE int
-+AO_compare_and_swap_release(volatile AO_t *addr, AO_t old, AO_t new_val) {
-+  AO_nop_full();
-+  return AO_compare_and_swap(addr, old, new_val);
-+}
-+
-+#define AO_HAVE_compare_and_swap_release
-+
-+AO_INLINE int
-+AO_compare_and_swap_full(volatile AO_t *addr, AO_t old, AO_t new_val) {
-+  AO_t result;
-+  AO_nop_full();
-+  result = AO_compare_and_swap(addr, old, new_val);
-+  AO_nop_full();
-+  return result;
-+}
-+
-+#define AO_HAVE_compare_and_swap_full
-+
-+/*
-+ * FIXME: We should also implement fetch_and_add and or primitives
-+ * directly.
-+ */
-+
-+#include "../ao_t_is_int.h"
---- libatomic-ops-1.0.away/src/atomic_ops.h	2005-08-03 02:05:18.000000000 +0200
-+++ libatomic-ops-1.0/src/atomic_ops.h	2005-10-27 21:01:29.000000000 +0200
-@@ -219,6 +219,9 @@
- # if defined(__cris__) || defined(CRIS)
- #   include "atomic_ops/sysdeps/gcc/cris.h"
- # endif
-+# if defined(__mips__)
-+#   include "atomic_ops/sysdeps/gcc/mips.h"
-+# endif /* __mips__ */
- #endif /* __GNUC__ && !AO_USE_PTHREAD_DEFS */
- 
- #if defined(__INTEL_COMPILER) && !defined(AO_USE_PTHREAD_DEFS)
-
-
-
-
-

Deleted: trunk/debian/patches/04_m68k.patch
===================================================================
--- trunk/debian/patches/04_m68k.patch	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/patches/04_m68k.patch	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,84 +0,0 @@
-- align AO_t
-- fix AO_test_and_set_full: it operates on bytes, better asm constraints
-- add AO_compare_and_swap_full and AO_or_full
-
-Index: libatomic-ops-1.1/src/atomic_ops/sysdeps/gcc/m68k.h
-===================================================================
---- libatomic-ops-1.1.orig/src/atomic_ops/sysdeps/gcc/m68k.h	2006-08-04 13:31:31.000000000 +0200
-+++ libatomic-ops-1.1/src/atomic_ops/sysdeps/gcc/m68k.h	2006-08-04 16:51:36.000000000 +0200
-@@ -15,6 +15,11 @@
-  *
-  */
- 
-+/* The cas instruction causes an emulation trap for the	*/
-+/* 060 with a misaligned pointer, so let's avoid this.	*/
-+#undef AO_t
-+typedef unsigned long AO_t __attribute__ ((aligned (4)));
-+
- /* FIXME.  Very incomplete.  */
- #include "../all_aligned_atomic_load_store.h"
- 
-@@ -22,24 +27,55 @@
- /* AFAIK, Alliants were sequentially consistent.	*/
- #include "../ordered.h"
- 
--#include "../test_and_set_t_is_ao_t.h"
-+#include "../test_and_set_t_is_char.h"
- 
- /* Contributed by Tony Mantler or new.  Should be changed to MIT license? */
- AO_INLINE AO_TS_VAL_t
- AO_test_and_set_full(volatile AO_TS_t *addr) {
--  int oldval;
-+  AO_TS_t oldval;
- 
--  /* The return value is semi-phony. */
--  /* 'tas' sets bit 7 while the return */
--  /* value pretends bit 0 was set */
-+  /* The value at addr is semi-phony.	*/
-+  /* 'tas' sets bit 7 while the return	*/
-+  /* value pretends all bits were set,	*/
-+  /* which at least matches AO_TS_SET.	*/
-   __asm__ __volatile__(
--                 "tas %1@; sne %0; negb %0"
--                 : "=d" (oldval)
--                 : "a" (addr) : "memory");
-+		"tas %1; sne %0"
-+		: "=d" (oldval), "=m" (*addr)
-+		: "m" (*addr)
-+		: "memory");
-    return oldval;
- }
- 
- #define AO_HAVE_test_and_set_full
- 
-+/* Returns nonzero if the comparison succeeded. */
-+AO_INLINE int
-+AO_compare_and_swap_full(volatile AO_t *addr,
-+			 AO_t old, AO_t new_val)
-+{
-+  char result;
-+
-+  __asm__ __volatile__(
-+		"cas.l %3,%4,%1; seq %0"
-+		: "=d" (result), "=m" (*addr)
-+		: "m" (*addr), "d" (old), "d" (new_val)
-+		: "memory");
-+  return -result;
-+}
-+
-+#define AO_HAVE_compare_and_swap_full
-+
-+/* This is not really SMP safe...		*/
-+AO_INLINE void
-+AO_or_full (volatile AO_t *p, AO_t incr)
-+{
-+  __asm__ __volatile__ (
-+		"or.l %1,%0"
-+		: "=m" (*p)
-+		: "d" (incr), "m" (*p)
-+		: "memory");
-+}
- 
-+#define AO_HAVE_or_full
- 
-+#include "../ao_t_is_int.h"

Deleted: trunk/debian/patches/05_powerpc_asm.patch
===================================================================
--- trunk/debian/patches/05_powerpc_asm.patch	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/patches/05_powerpc_asm.patch	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,11 +0,0 @@
---- ../libatomic-ops-1.2/src/atomic_ops/sysdeps/gcc/powerpc.h	2006-03-29 09:49:14.000000000 +1100
-+++ src/atomic_ops/sysdeps/gcc/powerpc.h	2007-08-27 10:51:00.000000000 +1000
-@@ -72,7 +72,7 @@
-   /* registers.  I always got "impossible constraint" when I	*/
-   /* tried the "y" constraint.					*/
-   __asm__ __volatile__ (
--    "lwz %0,%1\n"
-+    "lwz%X1 %0,%1\n"
-     "cmpw cr7,%0,%0\n"
-     "bne- cr7,1f\n"
-     "1: isync\n"

Deleted: trunk/debian/patches/06_double.patch
===================================================================
--- trunk/debian/patches/06_double.patch	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/patches/06_double.patch	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,40 +0,0 @@
-I noticed what looked like two bugs related to compare-and-swap on
-AO_double_t. First, gcc/x86.h declares
-        AO_compare_double_and_swap_double_full
-but sets
-        AO_HAVE_double_compare_and_swap_full
-As I understand it, those should match.
-
-Second, the prototype for AO_compare_and_swap_double_acquire in
-generalize.h doesn't match the call it makes to
-AO_compare_and_swap_double, which seems like probably a bug.
-
-Patch attached for both issues.
-
-Jamey Sharp <sharpone at debian.org>
-
-diff --git a/src/atomic_ops/generalize.h b/src/atomic_ops/generalize.h
-index 0f42b32..35d1b42 100644
---- a/src/atomic_ops/generalize.h
-+++ b/src/atomic_ops/generalize.h
-@@ -1180,7 +1180,7 @@
-     && !defined(AO_HAVE_compare_and_swap_double_acquire)
-    AO_INLINE int
-    AO_compare_and_swap_double_acquire(volatile AO_double_t *addr,
--		   		      	     AO_t o1, AO_t o2,
-+		   		      	     AO_t o1,
- 				             AO_t n1, AO_t n2)
-    {
-      int result = AO_compare_and_swap_double(addr, o1, n1, n2);
-diff --git a/src/atomic_ops/sysdeps/gcc/x86.h b/src/atomic_ops/sysdeps/gcc/x86.h
-index 27e047e..5c1805d 100644
---- a/src/atomic_ops/sysdeps/gcc/x86.h
-+++ b/src/atomic_ops/sysdeps/gcc/x86.h
-@@ -148,6 +148,6 @@ AO_compare_double_and_swap_double_full(volatile AO_double_t *addr,
-   return (int) result;
- }
- 
--#define AO_HAVE_double_compare_and_swap_full
-+#define AO_HAVE_compare_double_and_swap_double_full
- 
- #include "../ao_t_is_int.h"

Deleted: trunk/debian/patches/07_pic_cmpxchng.patch
===================================================================
--- trunk/debian/patches/07_pic_cmpxchng.patch	2008-02-01 08:36:41 UTC (rev 9)
+++ trunk/debian/patches/07_pic_cmpxchng.patch	2008-08-16 04:51:58 UTC (rev 10)
@@ -1,40 +0,0 @@
-cmpxchng8b use ebx which we can't touch in PIC mode.  Also, the arguments
-to cmpxchg8b are a bit funny and were around the wrong way
-
-Write a version that saves and restores and fix up the arguments
-
-Ian Wienand <ianw at ieee.org>
-
---- libatomic-ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h	2008-02-01 19:29:35.000000000 +1100
-+++ libatomic-ops-1.2-new-2/src/atomic_ops/sysdeps/gcc/x86.h	2008-02-01 19:27:41.000000000 +1100
-@@ -141,10 +141,27 @@
- 			               AO_t new_val1, AO_t new_val2) 
- {
-   char result;
--  __asm__ __volatile__("lock; cmpxchg8b %0; setz %1"
-+  #if __PIC__
-+  /* If PIC is turned on, we can't use %ebx as it is reserved for the
-+     GOT poiner.  We can save and restore %ebx because GCC won't be
-+     using it for anything else (such as any of the m operands) */
-+  __asm__ __volatile__("pushl %%ebx;"   /* save ebx used for PIC GOT ptr */
-+		       "movl %6,%%ebx;" /* move new_val2 to %ebx */
-+		       "lock; cmpxchg8b %0; setz %1;"
-+		       "pop %%ebx;"     /* restore %ebx */
- 	    	       : "=m"(*addr), "=q"(result)
--		       : "m"(*addr), "d" (old_val1), "a" (old_val2),
--		         "c" (new_val1), "b" (new_val2) : "memory");
-+		       : "m"(*addr), "d" (old_val2), "a" (old_val1),
-+		         "c" (new_val2), "m" (new_val1) : "memory");
-+  #else
-+  /* We can't just do the same thing in non-PIC mode, because GCC
-+   * might be using %ebx as the memory operand.  We could have ifdef'd
-+   * in a clobber, but there's no point doing the push/pop if we don't
-+   * have to. */
-+  __asm__ __volatile__("lock; cmpxchg8b %0; setz %1;"
-+	    	       : "=m"(*addr), "=q"(result)
-+		       : "m"(*addr), "d" (old_val2), "a" (old_val1),
-+		         "c" (new_val2), "b" (new_val1) : "memory");
-+  #endif
-   return (int) result;
- }
- 




More information about the Pkg-libatomic-ops-commits mailing list