From: Jakub Jelinek Date: Fri, 6 Sep 2002 18:32:08 +0000 (+0200) Subject: configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets. X-Git-Tag: releases/gcc-3.3.0~2985 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=750db234b16c21c49f0041657957ca884cec795b;p=thirdparty%2Fgcc.git configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets. * configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets. * config/cpu/sparc/bits/atomicity.h: New file. * config/cpu/sparc/sparc32/bits/atomicity.h: Removed. * config/cpu/sparc/sparc64/bits/atomicity.h: Removed. [[Split portion of a mixed commit.]] From-SVN: r56897.2 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b86ca41f4cc5..693edc828343 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2002-09-06 Jakub Jelinek + + * configure.target: Use cpu_include_dir="config/cpu/sparc" for all + sparc targets. + * config/cpu/sparc/atomicity.h: New file. + * config/cpu/sparc/sparc32/atomicity.h: Removed. + * config/cpu/sparc/sparc64/atomicity.h: Removed. + 2002-09-06 Jakub Jelinek * config/os/gnu-linux/ctype_noninline.h diff --git a/libstdc++-v3/config/cpu/sparc/sparc32/atomicity.h b/libstdc++-v3/config/cpu/sparc/atomicity.h similarity index 70% rename from libstdc++-v3/config/cpu/sparc/sparc32/atomicity.h rename to libstdc++-v3/config/cpu/sparc/atomicity.h index aa639e42efb4..23804db00b7f 100644 --- a/libstdc++-v3/config/cpu/sparc/sparc32/atomicity.h +++ b/libstdc++-v3/config/cpu/sparc/atomicity.h @@ -1,6 +1,6 @@ -// Low-level functions for atomic operations: Sparc32 version -*- C++ -*- +// Low-level functions for atomic operations: Sparc version -*- C++ -*- -// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. +// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -30,6 +30,47 @@ #ifndef _BITS_ATOMICITY_H #define _BITS_ATOMICITY_H 1 +#ifdef __arch64__ + +typedef long _Atomic_word; + +static inline _Atomic_word +__attribute__ ((__unused__)) +__exchange_and_add (volatile _Atomic_word *__mem, int __val) +{ + _Atomic_word __tmp1, __tmp2; + + __asm__ __volatile__("1: ldx [%2], %0\n\t" + " add %0, %3, %1\n\t" + " casx [%2], %0, %1\n\t" + " sub %0, %1, %0\n\t" + " brnz,pn %0, 1b\n\t" + " nop" + : "=&r" (__tmp1), "=&r" (__tmp2) + : "r" (__mem), "r" (__val) + : "memory"); + return __tmp2; +} + +static inline void +__attribute__ ((__unused__)) +__atomic_add (volatile _Atomic_word* __mem, int __val) +{ + _Atomic_word __tmp1, __tmp2; + + __asm__ __volatile__("1: ldx [%2], %0\n\t" + " add %0, %3, %1\n\t" + " casx [%2], %0, %1\n\t" + " sub %0, %1, %0\n\t" + " brnz,pn %0, 1b\n\t" + " nop" + : "=&r" (__tmp1), "=&r" (__tmp2) + : "r" (__mem), "r" (__val) + : "memory"); +} + +#else /* __arch32__ */ + typedef int _Atomic_word; template @@ -85,4 +126,6 @@ __atomic_add (volatile _Atomic_word* __mem, int __val) : "memory"); } +#endif /* __arch32__ */ + #endif /* atomicity.h */ diff --git a/libstdc++-v3/config/cpu/sparc/sparc64/atomicity.h b/libstdc++-v3/config/cpu/sparc/sparc64/atomicity.h deleted file mode 100644 index e13ca82fad2d..000000000000 --- a/libstdc++-v3/config/cpu/sparc/sparc64/atomicity.h +++ /dev/null @@ -1,70 +0,0 @@ -// Low-level functions for atomic operations: Sparc64 version -*- C++ -*- - -// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -// USA. - -// As a special exception, you may use this file as part of a free software -// library without restriction. Specifically, if other files instantiate -// templates or use macros or inline functions from this file, or you compile -// this file and link it with other files to produce an executable, this -// file does not by itself cause the resulting executable to be covered by -// the GNU General Public License. This exception does not however -// invalidate any other reasons why the executable file might be covered by -// the GNU General Public License. - -#ifndef _BITS_ATOMICITY_H -#define _BITS_ATOMICITY_H 1 - -typedef long _Atomic_word; - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word *__mem, int __val) -{ - _Atomic_word __tmp1, __tmp2; - - __asm__ __volatile__("1: ldx [%2], %0\n\t" - " add %0, %3, %1\n\t" - " casx [%2], %0, %1\n\t" - " sub %0, %1, %0\n\t" - " brnz,pn %0, 1b\n\t" - " nop" - : "=&r" (__tmp1), "=&r" (__tmp2) - : "r" (__mem), "r" (__val) - : "memory"); - return __tmp2; -} - -static inline void -__attribute__ ((__unused__)) -__atomic_add (volatile _Atomic_word* __mem, int __val) -{ - _Atomic_word __tmp1, __tmp2; - - __asm__ __volatile__("1: ldx [%2], %0\n\t" - " add %0, %3, %1\n\t" - " casx [%2], %0, %1\n\t" - " sub %0, %1, %0\n\t" - " brnz,pn %0, 1b\n\t" - " nop" - : "=&r" (__tmp1), "=&r" (__tmp2) - : "r" (__mem), "r" (__val) - : "memory"); -} - -#endif /* atomicity.h */