aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/arm')
-rw-r--r--gcc/config/arm/bpabi.c56
-rw-r--r--gcc/config/arm/fp16.c145
-rw-r--r--gcc/config/arm/linux-atomic-64bit.c166
-rw-r--r--gcc/config/arm/linux-atomic.c279
-rw-r--r--gcc/config/arm/t-arm-elf8
-rw-r--r--gcc/config/arm/t-bpabi24
-rw-r--r--gcc/config/arm/t-linux28
-rw-r--r--gcc/config/arm/t-linux-eabi6
-rw-r--r--gcc/config/arm/t-netbsd24
-rw-r--r--gcc/config/arm/t-strongarm-elf8
-rw-r--r--gcc/config/arm/t-symbian2
-rw-r--r--gcc/config/arm/t-wince-pe4
-rw-r--r--gcc/config/arm/unaligned-funcs.c57
13 files changed, 0 insertions, 807 deletions
diff --git a/gcc/config/arm/bpabi.c b/gcc/config/arm/bpabi.c
deleted file mode 100644
index 283bdc0..0000000
--- a/gcc/config/arm/bpabi.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Miscellaneous BPABI functions.
-
- Copyright (C) 2003, 2004, 2009 Free Software Foundation, Inc.
- Contributed by CodeSourcery, LLC.
-
- This file 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 3, or (at your option) any
- later version.
-
- This file 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.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-extern long long __divdi3 (long long, long long);
-extern unsigned long long __udivdi3 (unsigned long long,
- unsigned long long);
-extern long long __gnu_ldivmod_helper (long long, long long, long long *);
-extern unsigned long long __gnu_uldivmod_helper (unsigned long long,
- unsigned long long,
- unsigned long long *);
-
-
-long long
-__gnu_ldivmod_helper (long long a,
- long long b,
- long long *remainder)
-{
- long long quotient;
-
- quotient = __divdi3 (a, b);
- *remainder = a - b * quotient;
- return quotient;
-}
-
-unsigned long long
-__gnu_uldivmod_helper (unsigned long long a,
- unsigned long long b,
- unsigned long long *remainder)
-{
- unsigned long long quotient;
-
- quotient = __udivdi3 (a, b);
- *remainder = a - b * quotient;
- return quotient;
-}
diff --git a/gcc/config/arm/fp16.c b/gcc/config/arm/fp16.c
deleted file mode 100644
index 936caeb..0000000
--- a/gcc/config/arm/fp16.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Half-float conversion routines.
-
- Copyright (C) 2008, 2009 Free Software Foundation, Inc.
- Contributed by CodeSourcery.
-
- This file 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 3, or (at your option) any
- later version.
-
- This file 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.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-static inline unsigned short
-__gnu_f2h_internal(unsigned int a, int ieee)
-{
- unsigned short sign = (a >> 16) & 0x8000;
- int aexp = (a >> 23) & 0xff;
- unsigned int mantissa = a & 0x007fffff;
- unsigned int mask;
- unsigned int increment;
-
- if (aexp == 0xff)
- {
- if (!ieee)
- return sign;
- return sign | 0x7e00 | (mantissa >> 13);
- }
-
- if (aexp == 0 && mantissa == 0)
- return sign;
-
- aexp -= 127;
-
- /* Decimal point between bits 22 and 23. */
- mantissa |= 0x00800000;
- if (aexp < -14)
- {
- mask = 0x007fffff;
- if (aexp < -25)
- aexp = -26;
- else if (aexp != -25)
- mask >>= 24 + aexp;
- }
- else
- mask = 0x00001fff;
-
- /* Round. */
- if (mantissa & mask)
- {
- increment = (mask + 1) >> 1;
- if ((mantissa & mask) == increment)
- increment = mantissa & (increment << 1);
- mantissa += increment;
- if (mantissa >= 0x01000000)
- {
- mantissa >>= 1;
- aexp++;
- }
- }
-
- if (ieee)
- {
- if (aexp > 15)
- return sign | 0x7c00;
- }
- else
- {
- if (aexp > 16)
- return sign | 0x7fff;
- }
-
- if (aexp < -24)
- return sign;
-
- if (aexp < -14)
- {
- mantissa >>= -14 - aexp;
- aexp = -14;
- }
-
- /* We leave the leading 1 in the mantissa, and subtract one
- from the exponent bias to compensate. */
- return sign | (((aexp + 14) << 10) + (mantissa >> 13));
-}
-
-unsigned int
-__gnu_h2f_internal(unsigned short a, int ieee)
-{
- unsigned int sign = (unsigned int)(a & 0x8000) << 16;
- int aexp = (a >> 10) & 0x1f;
- unsigned int mantissa = a & 0x3ff;
-
- if (aexp == 0x1f && ieee)
- return sign | 0x7f800000 | (mantissa << 13);
-
- if (aexp == 0)
- {
- int shift;
-
- if (mantissa == 0)
- return sign;
-
- shift = __builtin_clz(mantissa) - 21;
- mantissa <<= shift;
- aexp = -shift;
- }
-
- return sign | (((aexp + 0x70) << 23) + (mantissa << 13));
-}
-
-unsigned short
-__gnu_f2h_ieee(unsigned int a)
-{
- return __gnu_f2h_internal(a, 1);
-}
-
-unsigned int
-__gnu_h2f_ieee(unsigned short a)
-{
- return __gnu_h2f_internal(a, 1);
-}
-
-unsigned short
-__gnu_f2h_alternative(unsigned int x)
-{
- return __gnu_f2h_internal(x, 0);
-}
-
-unsigned int
-__gnu_h2f_alternative(unsigned short a)
-{
- return __gnu_h2f_internal(a, 0);
-}
diff --git a/gcc/config/arm/linux-atomic-64bit.c b/gcc/config/arm/linux-atomic-64bit.c
deleted file mode 100644
index af94c7f..0000000
--- a/gcc/config/arm/linux-atomic-64bit.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* 64bit Linux-specific atomic operations for ARM EABI.
- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
- Based on linux-atomic.c
-
- 64 bit additions david.gilbert@linaro.org
-
-This file is part of GCC.
-
-GCC 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 3, or (at your option) any later
-version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/* 64bit helper functions for atomic operations; the compiler will
- call these when the code is compiled for a CPU without ldrexd/strexd.
- (If the CPU had those then the compiler inlines the operation).
-
- These helpers require a kernel helper that's only present on newer
- kernels; we check for that in an init section and bail out rather
- unceremoneously. */
-
-extern unsigned int __write (int fd, const void *buf, unsigned int count);
-extern void abort (void);
-
-/* Kernel helper for compare-and-exchange. */
-typedef int (__kernel_cmpxchg64_t) (const long long* oldval,
- const long long* newval,
- long long *ptr);
-#define __kernel_cmpxchg64 (*(__kernel_cmpxchg64_t *) 0xffff0f60)
-
-/* Kernel helper page version number. */
-#define __kernel_helper_version (*(unsigned int *)0xffff0ffc)
-
-/* Check that the kernel has a new enough version at load. */
-static void __check_for_sync8_kernelhelper (void)
-{
- if (__kernel_helper_version < 5)
- {
- const char err[] = "A newer kernel is required to run this binary. "
- "(__kernel_cmpxchg64 helper)\n";
- /* At this point we need a way to crash with some information
- for the user - I'm not sure I can rely on much else being
- available at this point, so do the same as generic-morestack.c
- write () and abort (). */
- __write (2 /* stderr. */, err, sizeof (err));
- abort ();
- }
-};
-
-static void (*__sync8_kernelhelper_inithook[]) (void)
- __attribute__ ((used, section (".init_array"))) = {
- &__check_for_sync8_kernelhelper
-};
-
-#define HIDDEN __attribute__ ((visibility ("hidden")))
-
-#define FETCH_AND_OP_WORD64(OP, PFX_OP, INF_OP) \
- long long HIDDEN \
- __sync_fetch_and_##OP##_8 (long long *ptr, long long val) \
- { \
- int failure; \
- long long tmp,tmp2; \
- \
- do { \
- tmp = *ptr; \
- tmp2 = PFX_OP (tmp INF_OP val); \
- failure = __kernel_cmpxchg64 (&tmp, &tmp2, ptr); \
- } while (failure != 0); \
- \
- return tmp; \
- }
-
-FETCH_AND_OP_WORD64 (add, , +)
-FETCH_AND_OP_WORD64 (sub, , -)
-FETCH_AND_OP_WORD64 (or, , |)
-FETCH_AND_OP_WORD64 (and, , &)
-FETCH_AND_OP_WORD64 (xor, , ^)
-FETCH_AND_OP_WORD64 (nand, ~, &)
-
-#define NAME_oldval(OP, WIDTH) __sync_fetch_and_##OP##_##WIDTH
-#define NAME_newval(OP, WIDTH) __sync_##OP##_and_fetch_##WIDTH
-
-/* Implement both __sync_<op>_and_fetch and __sync_fetch_and_<op> for
- subword-sized quantities. */
-
-#define OP_AND_FETCH_WORD64(OP, PFX_OP, INF_OP) \
- long long HIDDEN \
- __sync_##OP##_and_fetch_8 (long long *ptr, long long val) \
- { \
- int failure; \
- long long tmp,tmp2; \
- \
- do { \
- tmp = *ptr; \
- tmp2 = PFX_OP (tmp INF_OP val); \
- failure = __kernel_cmpxchg64 (&tmp, &tmp2, ptr); \
- } while (failure != 0); \
- \
- return tmp2; \
- }
-
-OP_AND_FETCH_WORD64 (add, , +)
-OP_AND_FETCH_WORD64 (sub, , -)
-OP_AND_FETCH_WORD64 (or, , |)
-OP_AND_FETCH_WORD64 (and, , &)
-OP_AND_FETCH_WORD64 (xor, , ^)
-OP_AND_FETCH_WORD64 (nand, ~, &)
-
-long long HIDDEN
-__sync_val_compare_and_swap_8 (long long *ptr, long long oldval,
- long long newval)
-{
- int failure;
- long long actual_oldval;
-
- while (1)
- {
- actual_oldval = *ptr;
-
- if (__builtin_expect (oldval != actual_oldval, 0))
- return actual_oldval;
-
- failure = __kernel_cmpxchg64 (&actual_oldval, &newval, ptr);
-
- if (__builtin_expect (!failure, 1))
- return oldval;
- }
-}
-
-typedef unsigned char bool;
-
-bool HIDDEN
-__sync_bool_compare_and_swap_8 (long long *ptr, long long oldval,
- long long newval)
-{
- int failure = __kernel_cmpxchg64 (&oldval, &newval, ptr);
- return (failure == 0);
-}
-
-long long HIDDEN
-__sync_lock_test_and_set_8 (long long *ptr, long long val)
-{
- int failure;
- long long oldval;
-
- do {
- oldval = *ptr;
- failure = __kernel_cmpxchg64 (&oldval, &val, ptr);
- } while (failure != 0);
-
- return oldval;
-}
diff --git a/gcc/config/arm/linux-atomic.c b/gcc/config/arm/linux-atomic.c
deleted file mode 100644
index 80f161d..0000000
--- a/gcc/config/arm/linux-atomic.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/* Linux-specific atomic operations for ARM EABI.
- Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
- Contributed by CodeSourcery.
-
-This file is part of GCC.
-
-GCC 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 3, or (at your option) any later
-version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/* Kernel helper for compare-and-exchange. */
-typedef int (__kernel_cmpxchg_t) (int oldval, int newval, int *ptr);
-#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *) 0xffff0fc0)
-
-/* Kernel helper for memory barrier. */
-typedef void (__kernel_dmb_t) (void);
-#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0)
-
-/* Note: we implement byte, short and int versions of atomic operations using
- the above kernel helpers; see linux-atomic-64bit.c for "long long" (64-bit)
- operations. */
-
-#define HIDDEN __attribute__ ((visibility ("hidden")))
-
-#ifdef __ARMEL__
-#define INVERT_MASK_1 0
-#define INVERT_MASK_2 0
-#else
-#define INVERT_MASK_1 24
-#define INVERT_MASK_2 16
-#endif
-
-#define MASK_1 0xffu
-#define MASK_2 0xffffu
-
-#define FETCH_AND_OP_WORD(OP, PFX_OP, INF_OP) \
- int HIDDEN \
- __sync_fetch_and_##OP##_4 (int *ptr, int val) \
- { \
- int failure, tmp; \
- \
- do { \
- tmp = *ptr; \
- failure = __kernel_cmpxchg (tmp, PFX_OP (tmp INF_OP val), ptr); \
- } while (failure != 0); \
- \
- return tmp; \
- }
-
-FETCH_AND_OP_WORD (add, , +)
-FETCH_AND_OP_WORD (sub, , -)
-FETCH_AND_OP_WORD (or, , |)
-FETCH_AND_OP_WORD (and, , &)
-FETCH_AND_OP_WORD (xor, , ^)
-FETCH_AND_OP_WORD (nand, ~, &)
-
-#define NAME_oldval(OP, WIDTH) __sync_fetch_and_##OP##_##WIDTH
-#define NAME_newval(OP, WIDTH) __sync_##OP##_and_fetch_##WIDTH
-
-/* Implement both __sync_<op>_and_fetch and __sync_fetch_and_<op> for
- subword-sized quantities. */
-
-#define SUBWORD_SYNC_OP(OP, PFX_OP, INF_OP, TYPE, WIDTH, RETURN) \
- TYPE HIDDEN \
- NAME##_##RETURN (OP, WIDTH) (TYPE *ptr, TYPE val) \
- { \
- int *wordptr = (int *) ((unsigned int) ptr & ~3); \
- unsigned int mask, shift, oldval, newval; \
- int failure; \
- \
- shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \
- mask = MASK_##WIDTH << shift; \
- \
- do { \
- oldval = *wordptr; \
- newval = ((PFX_OP (((oldval & mask) >> shift) \
- INF_OP (unsigned int) val)) << shift) & mask; \
- newval |= oldval & ~mask; \
- failure = __kernel_cmpxchg (oldval, newval, wordptr); \
- } while (failure != 0); \
- \
- return (RETURN & mask) >> shift; \
- }
-
-SUBWORD_SYNC_OP (add, , +, unsigned short, 2, oldval)
-SUBWORD_SYNC_OP (sub, , -, unsigned short, 2, oldval)
-SUBWORD_SYNC_OP (or, , |, unsigned short, 2, oldval)
-SUBWORD_SYNC_OP (and, , &, unsigned short, 2, oldval)
-SUBWORD_SYNC_OP (xor, , ^, unsigned short, 2, oldval)
-SUBWORD_SYNC_OP (nand, ~, &, unsigned short, 2, oldval)
-
-SUBWORD_SYNC_OP (add, , +, unsigned char, 1, oldval)
-SUBWORD_SYNC_OP (sub, , -, unsigned char, 1, oldval)
-SUBWORD_SYNC_OP (or, , |, unsigned char, 1, oldval)
-SUBWORD_SYNC_OP (and, , &, unsigned char, 1, oldval)
-SUBWORD_SYNC_OP (xor, , ^, unsigned char, 1, oldval)
-SUBWORD_SYNC_OP (nand, ~, &, unsigned char, 1, oldval)
-
-#define OP_AND_FETCH_WORD(OP, PFX_OP, INF_OP) \
- int HIDDEN \
- __sync_##OP##_and_fetch_4 (int *ptr, int val) \
- { \
- int tmp, failure; \
- \
- do { \
- tmp = *ptr; \
- failure = __kernel_cmpxchg (tmp, PFX_OP (tmp INF_OP val), ptr); \
- } while (failure != 0); \
- \
- return PFX_OP (tmp INF_OP val); \
- }
-
-OP_AND_FETCH_WORD (add, , +)
-OP_AND_FETCH_WORD (sub, , -)
-OP_AND_FETCH_WORD (or, , |)
-OP_AND_FETCH_WORD (and, , &)
-OP_AND_FETCH_WORD (xor, , ^)
-OP_AND_FETCH_WORD (nand, ~, &)
-
-SUBWORD_SYNC_OP (add, , +, unsigned short, 2, newval)
-SUBWORD_SYNC_OP (sub, , -, unsigned short, 2, newval)
-SUBWORD_SYNC_OP (or, , |, unsigned short, 2, newval)
-SUBWORD_SYNC_OP (and, , &, unsigned short, 2, newval)
-SUBWORD_SYNC_OP (xor, , ^, unsigned short, 2, newval)
-SUBWORD_SYNC_OP (nand, ~, &, unsigned short, 2, newval)
-
-SUBWORD_SYNC_OP (add, , +, unsigned char, 1, newval)
-SUBWORD_SYNC_OP (sub, , -, unsigned char, 1, newval)
-SUBWORD_SYNC_OP (or, , |, unsigned char, 1, newval)
-SUBWORD_SYNC_OP (and, , &, unsigned char, 1, newval)
-SUBWORD_SYNC_OP (xor, , ^, unsigned char, 1, newval)
-SUBWORD_SYNC_OP (nand, ~, &, unsigned char, 1, newval)
-
-int HIDDEN
-__sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
-{
- int actual_oldval, fail;
-
- while (1)
- {
- actual_oldval = *ptr;
-
- if (__builtin_expect (oldval != actual_oldval, 0))
- return actual_oldval;
-
- fail = __kernel_cmpxchg (actual_oldval, newval, ptr);
-
- if (__builtin_expect (!fail, 1))
- return oldval;
- }
-}
-
-#define SUBWORD_VAL_CAS(TYPE, WIDTH) \
- TYPE HIDDEN \
- __sync_val_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \
- TYPE newval) \
- { \
- int *wordptr = (int *)((unsigned int) ptr & ~3), fail; \
- unsigned int mask, shift, actual_oldval, actual_newval; \
- \
- shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \
- mask = MASK_##WIDTH << shift; \
- \
- while (1) \
- { \
- actual_oldval = *wordptr; \
- \
- if (__builtin_expect (((actual_oldval & mask) >> shift) != \
- (unsigned int) oldval, 0)) \
- return (actual_oldval & mask) >> shift; \
- \
- actual_newval = (actual_oldval & ~mask) \
- | (((unsigned int) newval << shift) & mask); \
- \
- fail = __kernel_cmpxchg (actual_oldval, actual_newval, \
- wordptr); \
- \
- if (__builtin_expect (!fail, 1)) \
- return oldval; \
- } \
- }
-
-SUBWORD_VAL_CAS (unsigned short, 2)
-SUBWORD_VAL_CAS (unsigned char, 1)
-
-typedef unsigned char bool;
-
-bool HIDDEN
-__sync_bool_compare_and_swap_4 (int *ptr, int oldval, int newval)
-{
- int failure = __kernel_cmpxchg (oldval, newval, ptr);
- return (failure == 0);
-}
-
-#define SUBWORD_BOOL_CAS(TYPE, WIDTH) \
- bool HIDDEN \
- __sync_bool_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \
- TYPE newval) \
- { \
- TYPE actual_oldval \
- = __sync_val_compare_and_swap_##WIDTH (ptr, oldval, newval); \
- return (oldval == actual_oldval); \
- }
-
-SUBWORD_BOOL_CAS (unsigned short, 2)
-SUBWORD_BOOL_CAS (unsigned char, 1)
-
-void HIDDEN
-__sync_synchronize (void)
-{
- __kernel_dmb ();
-}
-
-int HIDDEN
-__sync_lock_test_and_set_4 (int *ptr, int val)
-{
- int failure, oldval;
-
- do {
- oldval = *ptr;
- failure = __kernel_cmpxchg (oldval, val, ptr);
- } while (failure != 0);
-
- return oldval;
-}
-
-#define SUBWORD_TEST_AND_SET(TYPE, WIDTH) \
- TYPE HIDDEN \
- __sync_lock_test_and_set_##WIDTH (TYPE *ptr, TYPE val) \
- { \
- int failure; \
- unsigned int oldval, newval, shift, mask; \
- int *wordptr = (int *) ((unsigned int) ptr & ~3); \
- \
- shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \
- mask = MASK_##WIDTH << shift; \
- \
- do { \
- oldval = *wordptr; \
- newval = (oldval & ~mask) \
- | (((unsigned int) val << shift) & mask); \
- failure = __kernel_cmpxchg (oldval, newval, wordptr); \
- } while (failure != 0); \
- \
- return (oldval & mask) >> shift; \
- }
-
-SUBWORD_TEST_AND_SET (unsigned short, 2)
-SUBWORD_TEST_AND_SET (unsigned char, 1)
-
-#define SYNC_LOCK_RELEASE(TYPE, WIDTH) \
- void HIDDEN \
- __sync_lock_release_##WIDTH (TYPE *ptr) \
- { \
- /* All writes before this point must be seen before we release \
- the lock itself. */ \
- __kernel_dmb (); \
- *ptr = 0; \
- }
-
-SYNC_LOCK_RELEASE (long long, 8)
-SYNC_LOCK_RELEASE (int, 4)
-SYNC_LOCK_RELEASE (short, 2)
-SYNC_LOCK_RELEASE (char, 1)
diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
index a605d26..25b7acb 100644
--- a/gcc/config/arm/t-arm-elf
+++ b/gcc/config/arm/t-arm-elf
@@ -89,11 +89,3 @@ MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600
# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610
# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
-
-LIBGCC = stmp-multilib
-INSTALL_LIBGCC = install-multilib
-
-# Currently there is a bug somewhere in GCC's alias analysis
-# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
-# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -fno-inline
diff --git a/gcc/config/arm/t-bpabi b/gcc/config/arm/t-bpabi
deleted file mode 100644
index c9d5ed4d..0000000
--- a/gcc/config/arm/t-bpabi
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 2004, 2005, 2011 Free Software Foundation, Inc.
-#
-# This file is part of GCC.
-#
-# GCC 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 3, or (at your option)
-# any later version.
-#
-# GCC 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 GCC; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-# Add the BPABI C functions.
-LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \
- $(srcdir)/config/arm/unaligned-funcs.c
-
-LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c
-EXTRA_HEADERS += $(srcdir)/ginclude/unwind-arm-common.h
diff --git a/gcc/config/arm/t-linux b/gcc/config/arm/t-linux
deleted file mode 100644
index a204834..0000000
--- a/gcc/config/arm/t-linux
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006,
-# 2008, 2011 Free Software Foundation, Inc.
-#
-# This file is part of GCC.
-#
-# GCC 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 3, or (at your option)
-# any later version.
-#
-# GCC 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 GCC; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-# Just for these, we omit the frame pointer since it makes such a big
-# difference.
-TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
-
-# MULTILIB_OPTIONS = mfloat-abi=hard/mfloat-abi=soft
-# MULTILIB_DIRNAMES = hard-float soft-float
-
-# LIBGCC = stmp-multilib
-# INSTALL_LIBGCC = install-multilib
diff --git a/gcc/config/arm/t-linux-eabi b/gcc/config/arm/t-linux-eabi
index 3030229..8004a7d 100644
--- a/gcc/config/arm/t-linux-eabi
+++ b/gcc/config/arm/t-linux-eabi
@@ -16,9 +16,6 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-# These functions are included in shared libraries.
-TARGET_LIBGCC2_CFLAGS = -fPIC
-
# We do not build a Thumb multilib for Linux because the definition of
# CLEAR_INSN_CACHE in linux-gas.h does not work in Thumb mode.
MULTILIB_OPTIONS =
@@ -27,6 +24,3 @@ MULTILIB_DIRNAMES =
#MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
#MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te
#MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te*
-
-LIB2FUNCS_STATIC_EXTRA += $(srcdir)/config/arm/linux-atomic.c
-LIB2FUNCS_STATIC_EXTRA += $(srcdir)/config/arm/linux-atomic-64bit.c
diff --git a/gcc/config/arm/t-netbsd b/gcc/config/arm/t-netbsd
deleted file mode 100644
index d659b5a..0000000
--- a/gcc/config/arm/t-netbsd
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2011 Free Software Foundation, Inc.
-#
-# This file is part of GCC.
-#
-# GCC 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 3, or (at your option)
-# any later version.
-#
-# GCC 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 GCC; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-# Just for these, we omit the frame pointer since it makes such a big
-# difference. It is then pointless adding debugging.
-TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fpic
-LIBGCC2_DEBUG_CFLAGS = -g0
-LIB2FUNCS_EXTRA = $(srcdir)/config/floatunsidf.c $(srcdir)/config/floatunsisf.c
diff --git a/gcc/config/arm/t-strongarm-elf b/gcc/config/arm/t-strongarm-elf
index 4d51e66..0639e69 100644
--- a/gcc/config/arm/t-strongarm-elf
+++ b/gcc/config/arm/t-strongarm-elf
@@ -21,11 +21,3 @@ MULTILIB_OPTIONS = mlittle-endian/mbig-endian mfloat-abi=hard/mfloat-abi=sof
MULTILIB_DIRNAMES = le be fpu soft
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle
-
-LIBGCC = stmp-multilib
-INSTALL_LIBGCC = install-multilib
-
-# Currently there is a bug somewhere in GCC's alias analysis
-# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
-# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -fno-inline
diff --git a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian
index 736a01d..473957e 100644
--- a/gcc/config/arm/t-symbian
+++ b/gcc/config/arm/t-symbian
@@ -17,8 +17,6 @@
# <http://www.gnu.org/licenses/>.
EXTRA_HEADERS += $(srcdir)/ginclude/unwind-arm-common.h
-# Include half-float helpers.
-LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c
# Create a multilib for processors with VFP floating-point, and a
# multilib for those without -- using the soft-float ABI in both
diff --git a/gcc/config/arm/t-wince-pe b/gcc/config/arm/t-wince-pe
index 8a8c65f..becda7f 100644
--- a/gcc/config/arm/t-wince-pe
+++ b/gcc/config/arm/t-wince-pe
@@ -29,7 +29,3 @@ MULTILIB_DIRNAMES = fpu
# yet...
# MULTILIB_OPTIONS += thumb
# MULTILIB_DIRNAMES += thumb
-
-LIBGCC = stmp-multilib
-INSTALL_LIBGCC = install-multilib
-TARGET_LIBGCC2_CFLAGS =
diff --git a/gcc/config/arm/unaligned-funcs.c b/gcc/config/arm/unaligned-funcs.c
deleted file mode 100644
index 4e684f4..0000000
--- a/gcc/config/arm/unaligned-funcs.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* EABI unaligned read/write functions.
-
- Copyright (C) 2005, 2009 Free Software Foundation, Inc.
- Contributed by CodeSourcery, LLC.
-
- This file 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 3, or (at your option) any
- later version.
-
- This file 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.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-int __aeabi_uread4 (void *);
-int __aeabi_uwrite4 (int, void *);
-long long __aeabi_uread8 (void *);
-long long __aeabi_uwrite8 (long long, void *);
-
-struct __attribute__((packed)) u4 { int data; };
-struct __attribute__((packed)) u8 { long long data; };
-
-int
-__aeabi_uread4 (void *ptr)
-{
- return ((struct u4 *) ptr)->data;
-}
-
-int
-__aeabi_uwrite4 (int data, void *ptr)
-{
- ((struct u4 *) ptr)->data = data;
- return data;
-}
-
-long long
-__aeabi_uread8 (void *ptr)
-{
- return ((struct u8 *) ptr)->data;
-}
-
-long long
-__aeabi_uwrite8 (long long data, void *ptr)
-{
- ((struct u8 *) ptr)->data = data;
- return data;
-}