From: pme Date: Fri, 5 Oct 2001 18:43:43 +0000 (+0000) Subject: 2001-10-05 Phil Edwards X-Git-Tag: upstream/4.9.2~91768 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=de67d2fe44edf56004f9eed9e2d8a141c104b820;p=platform%2Fupstream%2Flinaro-gcc.git 2001-10-05 Phil Edwards * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46038 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 + + * 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 * 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 */