aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Edwards <pme@gcc.gnu.org>2001-10-05 18:43:43 +0000
committerPhil Edwards <pme@gcc.gnu.org>2001-10-05 18:43:43 +0000
commit744ee8b72bb691da99469bab14853e9a4a3e86b7 (patch)
treea454f478ec2a0a24afa4eb4191c141c734a4d034
parent27d95cbe509237647de7892f492fd9d36c1630a5 (diff)
downloadgcc-744ee8b72bb691da99469bab14853e9a4a3e86b7.zip
gcc-744ee8b72bb691da99469bab14853e9a4a3e86b7.tar.gz
gcc-744ee8b72bb691da99469bab14853e9a4a3e86b7.tar.bz2
atomicity.h (__compare_and_swap): Remove unused function.
2001-10-05 Phil Edwards <pme@gcc.gnu.org> * config/cpu/alpha/bits/atomicity.h (__compare_and_swap): Remove unused function. * config/cpu/arm/bits/atomicity.h: Likewise. * config/cpu/generic/bits/atomicity.h: Likewise. * config/cpu/i486/bits/atomicity.h: Likewise. * config/cpu/ia64/bits/atomicity.h: Likewise. * config/cpu/mips/bits/atomicity.h: Likewise. * config/cpu/powerpc/bits/atomicity.h: Likewise. * config/cpu/sparc/sparc32/bits/atomicity.h: Likewise. * config/cpu/sparc/sparc64/bits/atomicity.h: Likewise. From-SVN: r46038
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/config/cpu/alpha/bits/atomicity.h21
-rw-r--r--libstdc++-v3/config/cpu/arm/bits/atomicity.h57
-rw-r--r--libstdc++-v3/config/cpu/generic/bits/atomicity.h11
-rw-r--r--libstdc++-v3/config/cpu/i486/bits/atomicity.h13
-rw-r--r--libstdc++-v3/config/cpu/ia64/bits/atomicity.h7
-rw-r--r--libstdc++-v3/config/cpu/mips/bits/atomicity.h27
-rw-r--r--libstdc++-v3/config/cpu/powerpc/bits/atomicity.h22
-rw-r--r--libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h29
-rw-r--r--libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h23
10 files changed, 13 insertions, 210 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 9674c0c..ae541c3 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,16 @@
+2001-10-05 Phil Edwards <pme@gcc.gnu.org>
+
+ * config/cpu/alpha/bits/atomicity.h (__compare_and_swap): Remove
+ unused function.
+ * config/cpu/arm/bits/atomicity.h: Likewise.
+ * config/cpu/generic/bits/atomicity.h: Likewise.
+ * config/cpu/i486/bits/atomicity.h: Likewise.
+ * config/cpu/ia64/bits/atomicity.h: Likewise.
+ * config/cpu/mips/bits/atomicity.h: Likewise.
+ * config/cpu/powerpc/bits/atomicity.h: Likewise.
+ * config/cpu/sparc/sparc32/bits/atomicity.h: Likewise.
+ * config/cpu/sparc/sparc64/bits/atomicity.h: Likewise.
+
2001-10-04 Phil Edwards <pme@gcc.gnu.org>
* docs/html/faq/index.html: Describe DR #22, and a workaround.
diff --git a/libstdc++-v3/config/cpu/alpha/bits/atomicity.h b/libstdc++-v3/config/cpu/alpha/bits/atomicity.h
index 3f7b5c8..895d87a 100644
--- a/libstdc++-v3/config/cpu/alpha/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/alpha/bits/atomicity.h
@@ -73,25 +73,4 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
: "m" (*__mem), "r"(__val));
}
-static inline int
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long *__p, long __oldval, long __newval)
-{
- int __ret;
-
- __asm__ __volatile__ (
- "\n$Lcas_%=:\n\t"
- "ldq_l %0,%4\n\t"
- "cmpeq %0,%2,%0\n\t"
- "beq %0,3f\n\t"
- "mov %3,%0\n\t"
- "stq_c %0,%1\n\t"
- "beq %0,$Lcas_%=\n\t"
- "mb"
- : "=&r"(__ret), "=m"(*__p)
- : "r"(__oldval), "r"(__newval), "m"(*__p));
-
- return __ret;
-}
-
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/arm/bits/atomicity.h b/libstdc++-v3/config/cpu/arm/bits/atomicity.h
index 4bc984c..2363edf 100644
--- a/libstdc++-v3/config/cpu/arm/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/arm/bits/atomicity.h
@@ -127,63 +127,6 @@ __atomic_add (volatile _Atomic_word *__mem, int __val)
#endif
}
-static inline int
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long *__p, long __oldval, long __newval)
-{
- int __result;
- long __tmp;
-#ifdef __thumb__
- /* Since this function is inlined, we can't be sure of the alignment. */
- __asm__ __volatile__ (
- "ldr %0, 4f \n\t"
- "bx %0 \n\t"
- ".align 0 \n"
- "4:\t"
- ".word 0f \n\t"
- ".code 32 \n"
- "0:\t"
- "ldr %1, [%2] \n\t"
- "mov %0, #0 \n\t"
- "cmp %1, %4 \n\t"
- "bne 1f \n\t"
- "swp %0, %3, [%2] \n\t"
- "cmp %1, %0 \n\t"
- "swpne %1, %0, [%2] \n\t"
- "bne 0b \n\t"
- "mov %0, #1 \n"
- "1:\t"
- "ldr %1, 2f \n\t"
- "bx %1 \n"
- "2:\t"
- ".word 3f \n\t"
- ".code 16\n"
- "3:\n"
- : "=&l"(__result), "=&r"(__tmp)
- : "r" (__p), "r" (__newval), "r" (__oldval)
- : "cc", "memory");
-#else
- __asm__ __volatile__ (
- "\n"
- "0:\t"
- "ldr %1, [%2] \n\t"
- "mov %0, #0 \n\t"
- "cmp %1, %4 \n\t"
- "bne 1f \n\t"
- "swp %0, %3, [%2] \n\t"
- "cmp %1, %0 \n\t"
- "swpne %1, %0, [%2] \n\t"
- "bne 0b \n\t"
- "mov %0, #1 \n"
- "1:\n\t"
- ""
- : "=&r"(__result), "=&r"(__tmp)
- : "r" (__p), "r" (__newval), "r" (__oldval)
- : "cc", "memory");
-#endif
- return __result;
-}
-
static inline long
__attribute__ ((__unused__))
__always_swap (volatile long *__p, long __newval)
diff --git a/libstdc++-v3/config/cpu/generic/bits/atomicity.h b/libstdc++-v3/config/cpu/generic/bits/atomicity.h
index 36fcaf2..fca2b83 100644
--- a/libstdc++-v3/config/cpu/generic/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/generic/bits/atomicity.h
@@ -48,15 +48,4 @@ __atomic_add (_Atomic_word* __mem, int __val)
*__mem += __val;
}
-static inline int
-__attribute__ ((__unused__))
-__compare_and_swap (long *__p, long __oldval, long __newval)
-{
- if (*__p != __oldval)
- return 0;
-
- *__p = __newval;
- return 1;
-}
-
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/i486/bits/atomicity.h b/libstdc++-v3/config/cpu/i486/bits/atomicity.h
index 9dc4e71..92f5011 100644
--- a/libstdc++-v3/config/cpu/i486/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/i486/bits/atomicity.h
@@ -52,19 +52,6 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
: : "ir" (__val), "m" (*__mem) : "memory");
}
-static inline char
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long* __p, long __oldval, long __newval)
-{
- char __ret;
- long __readval;
-
- __asm__ __volatile__ ("lock; cmpxchgl %3, %1; sete %0"
- : "=q" (__ret), "=m" (*__p), "=a" (__readval)
- : "r" (__newval), "m" (*__p), "a" (__oldval));
- return __ret;
-}
-
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/ia64/bits/atomicity.h b/libstdc++-v3/config/cpu/ia64/bits/atomicity.h
index da57f3e..e28e149 100644
--- a/libstdc++-v3/config/cpu/ia64/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/ia64/bits/atomicity.h
@@ -48,11 +48,4 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
__sync_fetch_and_add (__mem, __val);
}
-static inline int
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long *__p, long __oldval, long __newval)
-{
- return __sync_bool_compare_and_swap (__p, __oldval, __newval);
-}
-
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/mips/bits/atomicity.h b/libstdc++-v3/config/cpu/mips/bits/atomicity.h
index cab43eb..7878c6e 100644
--- a/libstdc++-v3/config/cpu/mips/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/mips/bits/atomicity.h
@@ -75,31 +75,4 @@ __atomic_add (volatile _Atomic_word *__mem, int __val)
: "memory");
}
-static inline int
-__attribute__ ((unused))
-__compare_and_swap (volatile long int *__p, long int __oldval,
- long int __newval)
-{
- long int __ret;
-
- __asm__ __volatile__
- ("/* Inline compare & swap */\n\t"
- "1:\n\t"
- "ll %0,%4\n\t"
- ".set push\n"
- ".set noreorder\n\t"
- "bne %0,%2,2f\n\t"
- "move %0,%3\n\t"
- ".set pop\n\t"
- "sc %0,%1\n\t"
- "beqz %0,1b\n"
- "2:\n\t"
- "/* End compare & swap */"
- : "=&r" (__ret), "=m" (*__p)
- : "r" (__oldval), "r" (__newval), "m" (*__p)
- : "memory");
-
- return __ret;
-}
-
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h b/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h
index 35a84f5..05addba 100644
--- a/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h
@@ -69,28 +69,6 @@ __atomic_add (volatile _Atomic_word *__mem, int __val)
: "cr0", "memory");
}
-static inline int
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long *__p, long int __oldval, long int __newval)
-{
- int __res;
- __asm__ __volatile__ (
- "/* Inline compare & swap */\n"
- "0:\t"
- "lwarx %0,0,%1 \n\t"
- "sub%I2c. %0,%0,%2 \n\t"
- "cntlzw %0,%0 \n\t"
- "bne- 1f \n\t"
- "stwcx. %3,0,%1 \n\t"
- "bne- 0b \n"
- "1:\n\t"
- "/* End compare & swap */"
- : "=&b"(__res)
- : "r"(__p), "Ir"(__oldval), "r"(__newval)
- : "cr0", "memory");
- return __res >> 5;
-}
-
static inline long
__attribute__ ((__unused__))
__always_swap (volatile long *__p, long int __newval)
diff --git a/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h b/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h
index fefe3fd..6f9412c 100644
--- a/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h
@@ -76,33 +76,4 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
: "memory");
}
-static int
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long *__p, long __oldval, long __newval)
-{
- static unsigned char __lock;
- long __ret, __tmp;
-
- __asm__ __volatile__("1: ldstub [%1], %0\n\t"
- " cmp %0, 0\n\t"
- " bne 1b\n\t"
- " nop"
- : "=&r" (__tmp)
- : "r" (&__lock)
- : "memory");
- if (*__p != __oldval)
- __ret = 0;
- else
- {
- *__p = __newval;
- __ret = 1;
- }
- __asm__ __volatile__("stb %%g0, [%0]"
- : /* no outputs */
- : "r" (&__lock)
- : "memory");
-
- return __ret;
-}
-
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h b/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h
index c2dc0dc..e13ca82 100644
--- a/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h
+++ b/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h
@@ -67,27 +67,4 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
: "memory");
}
-static inline int
-__attribute__ ((__unused__))
-__compare_and_swap (volatile long *__p, long __oldval, long __newval)
-{
- register int __tmp;
- register long __tmp2;
-
- __asm__ __volatile__("1: ldx [%4], %0\n\t"
- " mov %2, %1\n\t"
- " cmp %0, %3\n\t"
- " bne,a,pn %%xcc, 2f\n\t"
- " mov 0, %0\n\t"
- " casx [%4], %0, %1\n\t"
- " sub %0, %1, %0\n\t"
- " brnz,pn %0, 1b\n\t"
- " mov 1, %0\n\t"
- "2:"
- : "=&r" (__tmp), "=&r" (__tmp2)
- : "r" (__newval), "r" (__oldval), "r" (__p)
- : "memory");
- return __tmp;
-}
-
#endif /* atomicity.h */