From b67a6cbbbf3cb35938dd8fe6f4510dcb457c3f4f Mon Sep 17 00:00:00 2001 From: James Cowgill Date: Sat, 3 Dec 2016 17:25:02 +0000 Subject: Remove unused cruft from config/cpu --- config/cpu/Makefile.am | 2 +- config/cpu/alpha/Makefile.am | 3 - config/cpu/alpha/atomicity.h | 76 ---------------------- config/cpu/alpha/cycles.h | 35 ----------- config/cpu/cris/Makefile.am | 3 - config/cpu/cris/atomicity.h | 78 ----------------------- config/cpu/generic/Makefile.am | 2 +- config/cpu/generic/cycles.h | 38 ----------- config/cpu/i386/Makefile.am | 2 +- config/cpu/i386/cycles.h | 34 ---------- config/cpu/i486/Makefile.am | 3 - config/cpu/i486/cycles.h | 3 - config/cpu/ia64/Makefile.am | 3 - config/cpu/ia64/atomicity.h | 51 --------------- config/cpu/ia64/cycles.h | 36 ----------- config/cpu/ia64/ia64intrin.h | 130 -------------------------------------- config/cpu/m68k/Makefile.am | 3 - config/cpu/m68k/atomicity.h | 140 ----------------------------------------- config/cpu/mips/Makefile.am | 3 - config/cpu/mips/atomicity.h | 83 ------------------------ config/cpu/powerpc/Makefile.am | 2 +- config/cpu/powerpc/cycles.h | 75 ---------------------- config/cpu/s390/Makefile.am | 3 - config/cpu/s390/atomicity.h | 60 ------------------ config/sysdeps/Makefile.am | 1 - config/sysdeps/cycles.h | 28 --------- configure.ac | 7 --- 27 files changed, 4 insertions(+), 900 deletions(-) delete mode 100644 config/cpu/alpha/Makefile.am delete mode 100644 config/cpu/alpha/atomicity.h delete mode 100644 config/cpu/alpha/cycles.h delete mode 100644 config/cpu/cris/Makefile.am delete mode 100644 config/cpu/cris/atomicity.h delete mode 100644 config/cpu/generic/cycles.h delete mode 100644 config/cpu/i386/cycles.h delete mode 100644 config/cpu/i486/Makefile.am delete mode 100644 config/cpu/i486/cycles.h delete mode 100644 config/cpu/ia64/Makefile.am delete mode 100644 config/cpu/ia64/atomicity.h delete mode 100644 config/cpu/ia64/cycles.h delete mode 100644 config/cpu/ia64/ia64intrin.h delete mode 100644 config/cpu/m68k/Makefile.am delete mode 100644 config/cpu/m68k/atomicity.h delete mode 100644 config/cpu/mips/Makefile.am delete mode 100644 config/cpu/mips/atomicity.h delete mode 100644 config/cpu/powerpc/cycles.h delete mode 100644 config/cpu/s390/Makefile.am delete mode 100644 config/cpu/s390/atomicity.h delete mode 100644 config/sysdeps/cycles.h diff --git a/config/cpu/Makefile.am b/config/cpu/Makefile.am index d527e34..93dde0d 100644 --- a/config/cpu/Makefile.am +++ b/config/cpu/Makefile.am @@ -1,2 +1,2 @@ MAINTAINERCLEANFILES = Makefile.in -DIST_SUBDIRS = alpha cris generic i386 i486 ia64 m68k mips powerpc s390 +DIST_SUBDIRS = generic i386 powerpc diff --git a/config/cpu/alpha/Makefile.am b/config/cpu/alpha/Makefile.am deleted file mode 100644 index 2f6ff81..0000000 --- a/config/cpu/alpha/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h cycles.h - diff --git a/config/cpu/alpha/atomicity.h b/config/cpu/alpha/atomicity.h deleted file mode 100644 index 66bd328..0000000 --- a/config/cpu/alpha/atomicity.h +++ /dev/null @@ -1,76 +0,0 @@ -// Low-level functions for atomic operations: Alpha version -*- C++ -*- - -// Copyright (C) 1999, 2000, 2001, 2003 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 _GLIBCXX_ATOMICITY_H -#define _GLIBCXX_ATOMICITY_H 1 - -/* @@@ With gas we can play nice .subsection games to get the - non-predicted branch pointing forward. But Digital assemblers - don't understand those directives. This isn't a terribly - important issue, so just ignore it. */ - -typedef int _Atomic_word; - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - register int __result, __tmp; - - __asm__ __volatile__ ( - "\n$Lxadd_%=:\n\t" - "ldl_l %0,%3\n\t" - "addl %0,%4,%1\n\t" - "stl_c %1,%2\n\t" - "beq %1,$Lxadd_%=\n\t" - "mb" - : "=&r" (__result), "=&r" (__tmp), "=m" (*__mem) - : "m" (*__mem), "r" (__val)); - - return __result; -} - -static inline void -__attribute__ ((__unused__)) -__atomic_add (volatile _Atomic_word* __mem, int __val) -{ - register _Atomic_word __result; - - __asm__ __volatile__ ( - "\n$Ladd_%=:\n\t" - "ldl_l %0,%2\n\t" - "addl %0,%3,%0\n\t" - "stl_c %0,%1\n\t" - "beq %0,$Ladd_%=\n\t" - "mb" - : "=&r" (__result), "=m" (*__mem) - : "m" (*__mem), "r" (__val)); -} - -#endif /* atomicity.h */ diff --git a/config/cpu/alpha/cycles.h b/config/cpu/alpha/cycles.h deleted file mode 100644 index 7e2cf17..0000000 --- a/config/cpu/alpha/cycles.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (C) 2001 Paul Davis - Code derived from various headers from the Linux kernel - - This program 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 of the License, or - (at your option) any later version. - - This program 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 program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - */ - -#ifndef __jack_cycles_h__ -#define __jack_cycles_h__ - -/* alpha */ - -typedef unsigned int cycles_t; -static inline cycles_t get_cycles (void) -{ - cycles_t ret; - - __asm__ __volatile__ ("rpcc %0" : "=r" (ret)); - return ret; -} - -#endif /* __jack_cycles_h__ */ diff --git a/config/cpu/cris/Makefile.am b/config/cpu/cris/Makefile.am deleted file mode 100644 index 166d93d..0000000 --- a/config/cpu/cris/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h - diff --git a/config/cpu/cris/atomicity.h b/config/cpu/cris/atomicity.h deleted file mode 100644 index 2fc1a8c..0000000 --- a/config/cpu/cris/atomicity.h +++ /dev/null @@ -1,78 +0,0 @@ -// Low-level functions for atomic operations: CRIS version -*- C++ -*- - -// Copyright (C) 2001, 2003 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 _GLIBCXX_ATOMICITY_H -#define _GLIBCXX_ATOMICITY_H 1 - -// This entity must not cross a page boundary. -typedef int _Atomic_word __attribute__ ((__aligned__ (4))); - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (_Atomic_word* __mem, int __val) -{ - int __tmp; - _Atomic_word __result; - -#if (__CRIS_arch_version >= 10) - __asm__ __volatile__ (" clearf \n" - "0: \n" - " move.d %4,%2 \n" - " move.d [%3],%0 \n" - " add.d %0,%2 \n" - " ax \n" - " move.d %2,[%3] \n" - " bwf 0b \n" - " clearf \n" - : "=&r" (__result), "=m" (*__mem), "=&r" (__tmp) - : "r" (__mem), "g" (__val), "m" (*__mem)); -#else - __asm__ __volatile__ (" move $ccr,$r9 \n" - " di \n" - " move.d %4,%2 \n" - " move.d [%3],%0 \n" - " add.d %0,%2 \n" - " move.d %2,[%3] \n" - " move $r9,$ccr \n" - : "=&r" (__result), "=m" (*__mem), "=&r" (__tmp) - : "r" (__mem), "g" (__val), "m" (*__mem) - : "r9"); -#endif - - return __result; -} - -static inline void -__attribute__ ((__unused__)) -__atomic_add (_Atomic_word* __mem, int __val) -{ - __exchange_and_add (__mem, __val); -} - -#endif /* atomicity.h */ diff --git a/config/cpu/generic/Makefile.am b/config/cpu/generic/Makefile.am index 2f6ff81..166d93d 100644 --- a/config/cpu/generic/Makefile.am +++ b/config/cpu/generic/Makefile.am @@ -1,3 +1,3 @@ MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h cycles.h +noinst_HEADERS = atomicity.h diff --git a/config/cpu/generic/cycles.h b/config/cpu/generic/cycles.h deleted file mode 100644 index 12ccb8f..0000000 --- a/config/cpu/generic/cycles.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2001 Paul Davis - - This program 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 of the License, or - (at your option) any later version. - - This program 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 program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - */ - -#ifndef __jack_cycles_h__ -#define __jack_cycles_h__ - -/* generic solution that is not really a solution at all */ - -#include - -typedef long cycles_t; - -static inline cycles_t get_cycles (void) -{ - struct timespec time; - - clock_gettime (CLOCK_REALTIME, &time); - - return ((cycles_t)time.tv_sec * 1000000) + time.tv_nsec * 1000; -} - -#endif /* __jack_cycles_h__ */ diff --git a/config/cpu/i386/Makefile.am b/config/cpu/i386/Makefile.am index 2f6ff81..166d93d 100644 --- a/config/cpu/i386/Makefile.am +++ b/config/cpu/i386/Makefile.am @@ -1,3 +1,3 @@ MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h cycles.h +noinst_HEADERS = atomicity.h diff --git a/config/cpu/i386/cycles.h b/config/cpu/i386/cycles.h deleted file mode 100644 index 4a26560..0000000 --- a/config/cpu/i386/cycles.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2001 Paul Davis - Code derived from various headers from the Linux kernel - - This program 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 of the License, or - (at your option) any later version. - - This program 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 program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - */ - -#ifndef __jack_cycles_h__ -#define __jack_cycles_h__ - -typedef unsigned long long cycles_t; - -static inline cycles_t get_cycles (void) -{ - unsigned long long ret; - - __asm__ __volatile__ ("rdtsc" : "=A" (ret)); - return ret; -} - -#endif /* __jack_cycles_h__ */ diff --git a/config/cpu/i486/Makefile.am b/config/cpu/i486/Makefile.am deleted file mode 100644 index ba2deab..0000000 --- a/config/cpu/i486/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = cycles.h - diff --git a/config/cpu/i486/cycles.h b/config/cpu/i486/cycles.h deleted file mode 100644 index 33579d7..0000000 --- a/config/cpu/i486/cycles.h +++ /dev/null @@ -1,3 +0,0 @@ -/* the i386 version of this header is compatible */ - -#include diff --git a/config/cpu/ia64/Makefile.am b/config/cpu/ia64/Makefile.am deleted file mode 100644 index a5f23c7..0000000 --- a/config/cpu/ia64/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h cycles.h ia64intrin.h - diff --git a/config/cpu/ia64/atomicity.h b/config/cpu/ia64/atomicity.h deleted file mode 100644 index 8a581f2..0000000 --- a/config/cpu/ia64/atomicity.h +++ /dev/null @@ -1,51 +0,0 @@ -// Low-level functions for atomic operations: IA64 version -*- C++ -*- - -// Copyright (C) 2000, 2001, 2003 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 _GLIBCXX_ATOMICITY_H -#define _GLIBCXX_ATOMICITY_H 1 - -#include - -typedef int _Atomic_word; - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - return __sync_fetch_and_add (__mem, __val); -} - -static inline void -__attribute__ ((__unused__)) -__atomic_add (volatile _Atomic_word* __mem, int __val) -{ - __sync_fetch_and_add (__mem, __val); -} - -#endif /* atomicity.h */ diff --git a/config/cpu/ia64/cycles.h b/config/cpu/ia64/cycles.h deleted file mode 100644 index 4bd19ed..0000000 --- a/config/cpu/ia64/cycles.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2001 Paul Davis - Code derived from various headers from the Linux kernel - - This program 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 of the License, or - (at your option) any later version. - - This program 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 program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - */ - -#ifndef __jack_cycles_h__ -#define __jack_cycles_h__ - -/* ia64 */ - -typedef unsigned long cycles_t; -static inline cycles_t -get_cycles (void) -{ - cycles_t ret; - - __asm__ __volatile__ ("mov %0=ar.itc" : "=r" (ret)); - return ret; -} - -#endif /* __jack_cycles_h__ */ diff --git a/config/cpu/ia64/ia64intrin.h b/config/cpu/ia64/ia64intrin.h deleted file mode 100644 index 3bdcf9d..0000000 --- a/config/cpu/ia64/ia64intrin.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef _IA64INTRIN_H_INCLUDED -#define _IA64INTRIN_H_INCLUDED - -/* Actually, everything is a compiler builtin, but just so - there's no confusion... */ -#ifdef __cplusplus -extern "C" { -#endif - -extern void __sync_synchronize(void); - -extern int __sync_val_compare_and_swap_si(int *, int, int); -extern long __sync_val_compare_and_swap_di(long *, long, long); -#define __sync_val_compare_and_swap(PTR, OLD, NEW) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR))) \ - __sync_val_compare_and_swap_si ((int*)(PTR), (int)(OLD), (int)(NEW)) \ - : (__typeof__(*(PTR))) \ - __sync_val_compare_and_swap_di ((long*)(PTR), (long)(OLD), (long)(NEW))) - -extern int __sync_bool_compare_and_swap_si(int *, int, int); -extern int __sync_bool_compare_and_swap_di(long *, long, long); -#define __sync_bool_compare_and_swap(PTR, OLD, NEW) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? __sync_bool_compare_and_swap_si ((int*)(PTR), (int)(OLD), (int)(NEW)) \ - : __sync_bool_compare_and_swap_di ((long*)(PTR), (long)(OLD), (long)(NEW))) - -extern void __sync_lock_release_si(int *); -extern void __sync_lock_release_di(long *); -#define __sync_lock_release(PTR) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? __sync_lock_release_si ((int*)(PTR)) \ - : __sync_lock_release_di ((long*)(PTR))) - -extern int __sync_lock_test_and_set_si(int *, int); -extern long __sync_lock_test_and_set_di(long *, long); -#define __sync_lock_test_and_set(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_lock_test_and_set_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_lock_test_and_set_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_fetch_and_add_si(int *, int); -extern long __sync_fetch_and_add_di(long *, long); -#define __sync_fetch_and_add(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_fetch_and_add_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_fetch_and_add_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_fetch_and_sub_si(int *, int); -extern long __sync_fetch_and_sub_di(long *, long); -#define __sync_fetch_and_sub(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_fetch_and_sub_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_fetch_and_sub_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_fetch_and_and_si(int *, int); -extern long __sync_fetch_and_and_di(long *, long); -#define __sync_fetch_and_and(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_fetch_and_and_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_fetch_and_and_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_fetch_and_or_si(int *, int); -extern long __sync_fetch_and_or_di(long *, long); -#define __sync_fetch_and_or(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_fetch_and_or_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_fetch_and_or_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_fetch_and_xor_si(int *, int); -extern long __sync_fetch_and_xor_di(long *, long); -#define __sync_fetch_and_xor(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_fetch_and_xor_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_fetch_and_xor_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_fetch_and_nand_si(int *, int); -extern long __sync_fetch_and_nand_di(long *, long); -#define __sync_fetch_and_nand(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_fetch_and_nand_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_fetch_and_nand_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_add_and_fetch_si(int *, int); -extern long __sync_add_and_fetch_di(long *, long); -#define __sync_add_and_fetch(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_add_and_fetch_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_add_and_fetch_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_sub_and_fetch_si(int *, int); -extern long __sync_sub_and_fetch_di(long *, long); -#define __sync_sub_and_fetch(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_sub_and_fetch_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_sub_and_fetch_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_and_and_fetch_si(int *, int); -extern long __sync_and_and_fetch_di(long *, long); -#define __sync_and_and_fetch(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_and_and_fetch_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_and_and_fetch_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_or_and_fetch_si(int *, int); -extern long __sync_or_and_fetch_di(long *, long); -#define __sync_or_and_fetch(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_or_and_fetch_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_or_and_fetch_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_xor_and_fetch_si(int *, int); -extern long __sync_xor_and_fetch_di(long *, long); -#define __sync_xor_and_fetch(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_xor_and_fetch_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_xor_and_fetch_di ((long*)(PTR), (long)(VAL))) - -extern int __sync_nand_and_fetch_si(int *, int); -extern long __sync_nand_and_fetch_di(long *, long); -#define __sync_nand_and_fetch(PTR, VAL) \ - ((sizeof(*(PTR)) == sizeof(int)) \ - ? (__typeof__(*(PTR)))__sync_nand_and_fetch_si ((int*)(PTR), (int)(VAL)) \ - : (__typeof__(*(PTR)))__sync_nand_and_fetch_di ((long*)(PTR), (long)(VAL))) - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/config/cpu/m68k/Makefile.am b/config/cpu/m68k/Makefile.am deleted file mode 100644 index 166d93d..0000000 --- a/config/cpu/m68k/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h - diff --git a/config/cpu/m68k/atomicity.h b/config/cpu/m68k/atomicity.h deleted file mode 100644 index 8b224e2..0000000 --- a/config/cpu/m68k/atomicity.h +++ /dev/null @@ -1,140 +0,0 @@ -// Low-level functions for atomic operations: m68k version -*- C++ -*- - -// Copyright (C) 2001, 2002, 2003 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 _GLIBCXX_ATOMICITY_H -#define _GLIBCXX_ATOMICITY_H 1 - -typedef int _Atomic_word; - -#if ( defined(__mc68020__) || defined(__mc68030__) \ - || defined(__mc68040__) || defined(__mc68060__) ) \ - && !defined(__mcpu32__) -// These variants support compare-and-swap. - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - register _Atomic_word __result = *__mem; - register _Atomic_word __temp; - - __asm__ __volatile__ ("1: move%.l %0,%1\n\t" - "add%.l %3,%1\n\t" - "cas%.l %0,%1,%2\n\t" - "jne 1b" - : "=d" (__result), "=&d" (__temp), "=m" (*__mem) - : "d" (__val), "0" (__result), "m" (*__mem)); - return __result; -} - -#elif defined(__rtems__) -/* - * TAS/JBNE is unsafe on systems with strict priority-based scheduling. - * Disable interrupts, which we can do only from supervisor mode. - */ -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - _Atomic_word __result; - short __level, __tmpsr; - - __asm__ __volatile__ ("move%.w %%sr,%0\n\tor%.l %0,%1\n\tmove%.w %1,%%sr" - : "=d" (__level), "=d" (__tmpsr) : "1" (0x700)); - - __result = *__mem; - *__mem = __result + __val; - - __asm__ __volatile__ ("move%.w %0,%%sr" : : "d" (__level)); - - return __result; -} - -#else - -template -struct __Atomicity_lock { - static volatile unsigned char _S_atomicity_lock; -}; - -template -volatile unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; - -template volatile unsigned char __Atomicity_lock<0>::_S_atomicity_lock; - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - _Atomic_word __result; - -// bset with no immediate addressing (not SMP-safe) -#if defined(__mcf5200__) || defined(__mcf5300__) - __asm__ __volatile__ ("1: bset.b #7,%0@\n\tjbne 1b" - : /* no outputs */ - : "a" (&__Atomicity_lock<0>::_S_atomicity_lock) - : "cc", "memory"); - -// CPU32 and MCF5400 support test-and-set (SMP-safe). -#elif defined(__mcpu32__) || defined(__mcf5400__) - __asm__ __volatile__ ("1: tas %0\n\tjbne 1b" - : "+m" (__Atomicity_lock<0>::_S_atomicity_lock) - : /* none */ - : "cc"); - -// Use bset with immediate addressing for 68000/68010 (not SMP-safe) -// NOTE: TAS is available on the 68000, but unsupported by some Amiga -// memory controllers. -#else - __asm__ __volatile__ ("1: bset.b #7,%0\n\tjbne 1b" - : "+m" (__Atomicity_lock<0>::_S_atomicity_lock) - : /* none */ - : "cc"); -#endif - - __result = *__mem; - *__mem = __result + __val; - - __Atomicity_lock<0>::_S_atomicity_lock = 0; - - return __result; -} - -#endif /* TAS / BSET */ - -static inline void -__attribute__ ((__unused__)) -__atomic_add (volatile _Atomic_word* __mem, int __val) -{ - // Careful: using add.l with a memory destination is not - // architecturally guaranteed to be atomic. - (void)__exchange_and_add (__mem, __val); -} - -#endif /* !_GLIBCXX_ATOMICITY_H */ diff --git a/config/cpu/mips/Makefile.am b/config/cpu/mips/Makefile.am deleted file mode 100644 index 166d93d..0000000 --- a/config/cpu/mips/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h - diff --git a/config/cpu/mips/atomicity.h b/config/cpu/mips/atomicity.h deleted file mode 100644 index be471af..0000000 --- a/config/cpu/mips/atomicity.h +++ /dev/null @@ -1,83 +0,0 @@ -// Low-level functions for atomic operations. - -// Copyright (C) 2001, 2002, 2003 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 _GLIBCXX_ATOMICITY_H -#define _GLIBCXX_ATOMICITY_H 1 - -typedef int _Atomic_word; - -static inline int -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - int __result, __tmp; - - __asm__ __volatile__ - ("/* Inline exchange & add */\n\t" - "1:\n\t" - ".set push\n\t" -#if _MIPS_SIM == _ABIO32 - ".set mips2\n\t" -#endif - "ll %0,%3\n\t" - "addu %1,%4,%0\n\t" - "sc %1,%2\n\t" - ".set pop\n\t" - "beqz %1,1b\n\t" - "/* End exchange & add */" - : "=&r" (__result), "=&r" (__tmp), "=m" (*__mem) - : "m" (*__mem), "r" (__val)); - - return __result; -} - -static inline void -__attribute__ ((__unused__)) -__atomic_add (volatile _Atomic_word* __mem, int __val) -{ - int __result; - - __asm__ __volatile__ - ("/* Inline atomic add */\n\t" - "1:\n\t" - ".set push\n\t" -#if _MIPS_SIM == _ABIO32 - ".set mips2\n\t" -#endif - "ll %0,%2\n\t" - "addu %0,%3,%0\n\t" - "sc %0,%1\n\t" - ".set pop\n\t" - "beqz %0,1b\n\t" - "/* End atomic add */" - : "=&r" (__result), "=m" (*__mem) - : "m" (*__mem), "r" (__val)); -} - -#endif /* atomicity.h */ diff --git a/config/cpu/powerpc/Makefile.am b/config/cpu/powerpc/Makefile.am index 2f6ff81..166d93d 100644 --- a/config/cpu/powerpc/Makefile.am +++ b/config/cpu/powerpc/Makefile.am @@ -1,3 +1,3 @@ MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h cycles.h +noinst_HEADERS = atomicity.h diff --git a/config/cpu/powerpc/cycles.h b/config/cpu/powerpc/cycles.h deleted file mode 100644 index 2b9097f..0000000 --- a/config/cpu/powerpc/cycles.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2001 Paul Davis - Code derived from various headers from the Linux kernel - - This program 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 of the License, or - (at your option) any later version. - - This program 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 program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - */ - -#ifndef __jack_cycles_h__ -#define __jack_cycles_h__ - -/* PowerPC */ - -#define CPU_FTR_601 0x00000100 -#ifdef __powerpc64__ -#define CPU_FTR_CELL_TB_BUG 0x0000800000000000UL -#endif /* __powerpc64__ */ - -typedef unsigned long cycles_t; - -/* For the "cycle" counter we use the timebase lower half. */ - -extern cycles_t cacheflush_time; - -static inline cycles_t get_cycles (void) -{ - cycles_t ret = 0; - -#ifdef __powerpc64__ -#ifdef ENABLE_CELLBE - asm volatile ( \ - "90: mftb %0;\n" \ - "97: cmpwi %0,0;\n" \ - " beq- 90b;\n" \ - "99:\n" \ - ".section __ftr_fixup,\"a\"\n" \ - ".align 3\n" \ - "98:\n" \ - " .llong %1\n" \ - " .llong %1\n" \ - " .llong 97b-98b\n" \ - " .llong 99b-98b\n" \ - ".previous" \ - : "=r" (ret) : "i" (CPU_FTR_CELL_TB_BUG)); -#else /* !ENABLE_CELLBE */ - __asm__ __volatile__ ("mftb %0" : "=r" (ret)); -#endif /* !ENABLE_CELLBE */ -#else /* !__powerpc64__ */ - __asm__ __volatile__ ( - "98: mftb %0\n" - "99:\n" - ".section __ftr_fixup,\"a\"\n" - " .long %1\n" - " .long 0\n" - " .long 98b\n" - " .long 99b\n" - ".previous" - : "=r" (ret) : "i" (CPU_FTR_601)); -#endif /* !__powerpc64__ */ - return ret; -} - -#endif /* __jack_cycles_h__ */ diff --git a/config/cpu/s390/Makefile.am b/config/cpu/s390/Makefile.am deleted file mode 100644 index 166d93d..0000000 --- a/config/cpu/s390/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -noinst_HEADERS = atomicity.h - diff --git a/config/cpu/s390/atomicity.h b/config/cpu/s390/atomicity.h deleted file mode 100644 index 5d2b3b9..0000000 --- a/config/cpu/s390/atomicity.h +++ /dev/null @@ -1,60 +0,0 @@ -// Low-level functions for atomic operations: S/390 version -*- C++ -*- - -// Copyright (C) 2001, 2003 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 _GLIBCXX_ATOMICITY_H -#define _GLIBCXX_ATOMICITY_H 1 - -typedef int _Atomic_word; - -static inline _Atomic_word -__attribute__ ((__unused__)) -__exchange_and_add (volatile _Atomic_word* __mem, int __val) -{ - register _Atomic_word __old_val, __new_val; - - __asm__ __volatile__ (" l %0,0(%3)\n" - "0: lr %1,%0\n" - " ar %1,%4\n" - " cs %0,%1,0(%3)\n" - " jl 0b" - : "=&d" (__old_val), "=&d" (__new_val), "=m" (*__mem) - : "a" (__mem), "d" (__val), "m" (*__mem) : "cc"); - return __old_val; -} - -static inline void -__attribute__ ((__unused__)) -__atomic_add (volatile _Atomic_word* __mem, int __val) -{ - __exchange_and_add (__mem, __val); -} - -#endif /* atomicity.h */ - - diff --git a/config/sysdeps/Makefile.am b/config/sysdeps/Makefile.am index aa3a725..ca6d438 100644 --- a/config/sysdeps/Makefile.am +++ b/config/sysdeps/Makefile.am @@ -8,7 +8,6 @@ noinst_HEADERS = \ systemtest.c \ sanitycheck.c \ atomicity.h \ - cycles.h \ getopt.h \ ipc.h \ mach_port.h \ diff --git a/config/sysdeps/cycles.h b/config/sysdeps/cycles.h deleted file mode 100644 index 62d86f1..0000000 --- a/config/sysdeps/cycles.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef _jack_sysdep_cycles_h_ -#define _jack_sysdep_cycles_h_ - -#if defined(__i386__) - -/* technically, i386 doesn't have a cycle counter, but - running JACK on a real i386 seems like a ridiculuous - target and gcc defines this for the entire x86 family - including the [456]86 that do have the counter. - */ - -#include - -#elif defined(__x86_64) - -#include - -#elif defined(__powerpc__) || defined(__ppc__) /* linux and OSX gcc use different tokens */ - -#include - -#else - -#include - -#endif /* processor selection */ - -#endif /* _jack_sysdep_cycles_h_ */ diff --git a/configure.ac b/configure.ac index a937019..cab02b0 100644 --- a/configure.ac +++ b/configure.ac @@ -965,16 +965,9 @@ AC_OUTPUT( Makefile config/Makefile config/cpu/Makefile -config/cpu/alpha/Makefile -config/cpu/cris/Makefile config/cpu/generic/Makefile config/cpu/i386/Makefile -config/cpu/i486/Makefile -config/cpu/ia64/Makefile -config/cpu/m68k/Makefile -config/cpu/mips/Makefile config/cpu/powerpc/Makefile -config/cpu/s390/Makefile config/os/Makefile config/os/generic/Makefile config/os/gnu-linux/Makefile -- cgit v1.2.1